----+++++++++++++++-+----++++++----+++---+++--+-+--+-++-+-+-+-+-+--++-++-+--++--+-++--++--++--++-+