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