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