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