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