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