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