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