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