~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppppppfppfffpppppfpppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppppppppppffffffffffpffffppfffffffpppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~hh^^^^^HHHHHH~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppppppppppppppppppppppffffffffffffppffffpffffffffpppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~hhhhH^^^^^^^^^^^HHHHHHHhhhhh~~~~~~~~~~~~~pppppppppppppppppppppppppppppppppppppppffffffffffffffffffffffffffffffpfffppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~hhhhhhH^^^^^^^^^^^^^^HHHHHHHHhhhhhhhhppppppppppppppppppppppppppppppppppppppppppppffffffffffffffffffffffffffffffffffpppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~hhhhhhhhHHHHHHHHH^^^^^^^^^^^^^HHHHhhhhhhpppppppppppppppppppppppppppppppppppppppppppppffffffffffffffffffffffffffffffffpppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^~~~^HHHHHhhhhhhhhhhhhhHHHH^^^^^^^^HHH^^HHHHHHHHhhhppppppppppppppppppppppppppppppppppppppppppfffffffffffffffffffffffffffffppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^HhhhHHhhhhhhhhhhhhHHHH^^^^^HHHHHHH^^^^HHhhhhhhppppppppppppppppppppppppppppppppppppppfffffffffffffffffffffffffffppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppphhHHHH^^^^^^HHHHHHHHhhhhhhhhhhhhHHH^^^^^^^^^^^^^^^^^HHHhhhhhhhpppppppppppppppppppppppppppppppppppfffffffffffffffffffffffffpppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppphhhhHHHHH^^^^^^^HHHhhhhhhhhhhhhhhHHH^^^HHHH^^^^^^^^^^^HHHHHhhhpppppppppppppppppppppppppppppppppppffffffffFFFFFffffffffffffffpppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppphhhhhhHHHH^^^^HHHHHHffffffhhhhhhhHHHHHHHHHHHH^^^^^^^^^^^HHhhhppppppppppppppppppppppppppppppppppfffffffFFFFFFFFFffffffffffffppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppfffffffffffhhhhhHHH^^^^^HHHHHfffffffhhhhhhhhHHHH^^HHHHHH^^^^^^^^HhhhppppppppppppppppppppppfpppppppfffffffffFFFFFFFFFFffffffffffffffppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppfffffffffffffffhhhhHHH^^^^^HHHHffffffffhhhhhhhhhH^^^^^^HHHH^^^^^^HHHhhhhppppppppppppppppppffffppppfffffffffFFFFFFFFFFFFFFFfffffffffpppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppffffffFFFFffFFfffFfhhhhhHHH^^HHHhhhhHHffffhhhhhhhhhHHH^^^HHHHHH^^^^^^HHhhhhppppppppppppppppfffffffffffffffffFFFFFFFFFFFFFFFFfffffffffppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppffffffffFFFFFFFFFFFFfffffhhhhHHHHHHhh^^^HHhhhHHHHHHhhhhhhH^^^^^HHHHH^^^^^HHhhhppppppppppppppffffffffffffffffffFFFFFFFFFFFFFFFFfffffffffppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppfffffffffFFFFFFFFFFFFFFFfffffhhhhHHHhhhhhHHhHHHH^^^^HHHHhhHHH^^^^^^^HHHH^^^^^HhhhppppppppppppfffffffffffffffffffFFFFFFFFFFFFFFFFfffffffppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppffffffffffFFFFFFFFFFFFFFFFFFffFffhhhHHhhhhhhhh^HHHH^^^^^HHHHHHHH^^^^^^^^HH^^^^^HhhppppppppppppfffffffffffffffffffFFFFFFFFFFFFFFFFffffffppppppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppfffffffffffffFFFFFFFFFFFFFFFFFFFfffffhhhHhhhfhhhhhhhHHHHH^^^^^^^^^^^^^^^^^^HHHH^^HHhhppppppppppppfffffffffffffffffFFFFFFFFFFFFFFFFfffffffppppppppppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppffffffffffffffFFFFFFFFFFFFFFFFFFFFFFFFFfffhhhhhhfffhhhhhhhHhHHH^^^^^^^^^^^^^^^^HHHHHHHHhhhpppppppppppppfffffffffffFFFFFFFFFFFFFFFffffffffffffpppppppppppppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppffffffFffffFFffFFFFFFFFFFFFFFFFFFFFFFFFFFFFfffhhhhffffffffhhHHhhhHHHH^^^^^^^^^^^^^^HHHHHHHhhhhppppppppppppppppfffffffFFFFFFFFFFFFfffffffffffffffpppppppppppppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppfffffffFFFFfFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFfffhfffffFFFffhhhhhhhffhhhhH^^^^^^^^^^^^HHHHHHhhhhhpppppppppppppppppfffffffFFFFFFFFFfffffffffffffffffpppppppppppppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~###~~~~~~~~~~~~~~~~ppppppppppppffffffFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFfffffFFFFffffffffffffffhhhhhHH^^^^^^^^^^^^^^^HhhhhppppppppppppppppppfffffffFFFFFFFFffffffffffffffffffppppppppppppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~###~~~~~ppppppppppppppppppppppfffffffFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFffffffffffffffffhhhhhhHH^^^^^^^^^^^^^^HhhhhhppppppppppppppppfffffffffFFFFFFfffffffffffffffffffppppppppppppppppppppppppppphpppppp~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppp###pp~~pppppppppppppppppppppppfffffffFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFffffffffffffffffhhhhhHHH^^^^^^^^^^^^^^HhhhhpppppppppppppppfffffffffffFFFffffffffpfffffffppffppppppppppppppppppppppppphhhppppppp~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppp|pppp~~ppppppppppppppppppppppffffffFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFfFfffffffffffffhhhhhhHH^^^^^^^^^^^^^^^hhhhhpppppppppppppffffffffffffffffffffffpppffffffppppppppppppppppppppppppppphhhhppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppp?ppppppppp|pppp~~~pppppppppppppppppppppffffffFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFffffffffffffhhhhhhHHH^^^^^^^^^^^^^^Hhhhhhhhhhhhpppppffffffffffffffffffffffppppfffffpppppppppppppppppppppppppphhhhhppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppp+---------+ppppp~~ppppppppppppppppppppppfffffFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFffffffffffffhhhhhhHHHH^^^^^^^^^^^^^HHHHHHHHHhhhhhpppfffffffpppfffffffffffpppppfffffpppppppppppppppppppppphhhhHhhhppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppp~~~~~pppppppppppppppppppppppppppp|ppppp~~~pppppppppppppppppppppffffffFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFfffffffffffhhhhhhHHHHHH^^^^^^^^^^^^^^^^^HHHHhhhhhhpfffffpppppppfffffffffppppppfppppppppppppppppppppphhhhhHHHhhhppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppphhhppppppppppppppppppppppppppppppppppp+---+--===ppppppppppppppppppppppfffffFFFFFFFFFfFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFfffffffffffphhhhHHHHHHH^^^^^^^^^^^^^^^^^HHHHHHhhhhhhhhhhppppppppffffffppppppppppppppppppppppppppphhhHHHHHHhhhppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppphhhhhpppppppppppppppppppppppppppppppppppppp|pppp~~ppppppppppppppppppppppfffffffFFFFFFfffFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFfffffffffpphhhhhHHHHH^^^^^^^^^^^^HHhHH^^^HHHHHHHHHHHhhhhhhhppppppffppppppppppppppppppppppphhhhhhhhH^^HHhhhpppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppphhhHHHhhppppppppppppppppppppppppppppppppppppp|pppp~~ppppppppppppppppppppppffffffffffFFfffffFFFFFFFFFFFFFFFFFFFFFfFFFFFFFFFFFFFFFFFFFFffffffffffpphhhhhHHHH^^^^^^^^^^^^^HHhHHHHHHHHHHHHHHHHHHhhhhhhhhhhpppppppppppppppppppppppphhhhhhhHHH^^^Hhhhpppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppphhhhhhhhpppppppppppppppppppppppppppppppppppp|ppppp~~pppppppppppppppppppppppfffffffffffffffffffffffFFFFFFFFFFFFffffFFFFFFFFFFFFFFFFFfffffffffffppphhhhHHHH^^^^^^^^^^^^^^HHhhHHH^^^^^^^^HHHHHHHHHHHHhhhhhhhpppppppppppppppppphhhhhhHHH^^^^HHhhhhppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppppphhhhppppppppppppppppppppppppppppppppppppp|ppppp~~~pppppppppppppppppppppppppppffffffffffffffffffffffffFFFFfffffffffffffffffffffffffffffffffppppphhhhHHHH^^^^^^^^^^^^^^HHhhhHHHH^^^^^^HHHHHHHHhhhhhhhppppppppppppppppphhhhhhhHHHH^^^^^Hhhhhhpppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppppppppppppppppppppppppppppppppppppppppppp|ppppppp~~pppppppppppppppppppppppppppppppfffffffffffffffffffffffffffffffffffffffffffffffffffpppppppppphhhhHHHHHH^^^^^^^^^^^^^HhhpphhHHHHH^^^HHHHHHHHhhhhhhppppppppphhhhhhhhhhhhhhH^^^^^^^^Hhhhppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp|ppppppp~~~ppppppppppppppppppppppppppppppppfffffffffffffffffffffffffffffffffffffffffffffffpppppppppppphhhhhHHHHH^^^^^^^^^^^^^HhhppphhhHHHHHHHHHHHhhhhhhhhhhhhhhppphhhhhhhhhhhhHHH^^^^^^^^Hhhhhpppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp|pppppppp~~ppppppppppppppppppppppppppppppppppppppppppffffffffffffffffffffffffffffffffffffppppppppppppphhhhhhHHHHH^^^^^^^^^^^HHhpphhhhhhhhh^^^^^hhhhhhhhhhhhhhhhhhhhhhhhhhhHHHH^^^^^^^^^HHhhppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppppppfpppppppppppppppppppppppppppppppppppppppppppp|pppppppp~~ppppppppppppppppppppppppppppppppppppppppppppppppppffffffffffffppppppffffffppppppppppppppppphhhhhhhhHHHHH^^^^^^^^^^HHH^^HHHHHhhhhh^^^^^^hhhhhHhhHhhhhhhhhHHHHHHH^^^^^^^^^^HHHHhppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppffffppppppppppppppppppppppppppppppppppppppppppp+--+pppp~~~pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp+--------------+pppppppppppppppphhhhhhhhHHHHH^^^^^^^^^^HHHH^^^^HHHhhHhhh^^^^^HHHHhhHHHHHHHHHHHHHHH^^^^^^^^HHHHHhpppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppppppffffffpfppppppppppppppppppppppppppppppppppppppppppp|pppp~~pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp/ppppppppppppppppppppppppppppppppphhhhhhhhhHHHH^^^^^^^^^^^^^^^^^^^HHHHHHHH^^^^^^^HHhHH^^^^HHHH^^HHHHHH^^^HHHHhhpppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppppfffffffffffpppppppppppppppppppppppppppppppppppppppprr|rrrr~~ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp/pppppppppppppppppppppppppppppppppppphhhhhhhhhHHHH^^^^^^^^^^^^^^^^^^^^^^^HH^^^^^^^^HHhHH^^^^^^^^^^HHHHHHHHHhhhhppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~pppppppppppppppffffffffffffppppppppppppppppppppppppppppppppppprrrrrrp|pppprrrppppppppppppppppppppppppppppppppppppppppppppppppppppppppp/pppppppppppppppppppppppppppppppppppppphhhhhhhhhHhHHhh^^^^^^^^^~^^^^^^^^^^^^^^^^^^^^^HHHH^^^^^^^^^^^^HHHhhhhhhppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~pppppppppppppppppfffffffffffpppppppppppppppppppppppppppppppppprrrpppppp|pppppprrppppppppppppppppppppppppppppppppp+---------------------+ppppppppppppppppppppppppppppppppppppppppphhhhhhhhhhhhhhppp^^^~~~~^^^^^^^^^^^^^^^^^^^^^HHHH^^^^^^^^^HHHhhhhhppppppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~pppppppppppppppppffffffffffpppppppppppppphhpppppppppprrrrrppprrpppppppp|pppppprrpppppppppppppppppppppppppppppppp/pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppphhhppphhhhppppppph~~~~^^^^^^^^^^^^^^^^^^^^^^H^^^^^^^^^^HHhhhhppppppppppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~pppppppppppppppfffffffffffffpppppppppppphH^^Hhhppppprrrppprrrrrppppppppp+---+ppprrpppppppppppppppppppppppppppppp/ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppprrr~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^HHHhhhhppppppppppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~ppppppppppppppffffffffffffffpppppppppphH^^^^^rrrrrrrrppppppppppppppppppppppp|pppprrpppppppppppppppppppppppppppp/pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppprrrHHH^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^HHHhhhhppppppppppppppppppppppppp###ppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~ppppppppppppffffffffffffffffppppppppphhH^^^^^^~~hppppppppppppppppppppppppppp+--+pprrppppppppppppppppppp+------+-#ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppprrrhhHHH^^^^^^^^^^^^^^^^HHH^^^^^^^^^^^HHHhhhpppppp+--------------------###-+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~ppppppppppfpffffffffffffffffffffppppppphhH^^?^Hhpppppppppppppppppppppppppppppppp|ppprrppppppppp+--------+pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppprrrhhhhhHHHH^^^^^^^^^^^^^HHhHHH^^^^^^^HHHhhhppppppp/ppppppppppppppppppppp###p|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~pppppppppffffffffffffffffffffffffpppppppphhh|hhppppppppppppppppppppppppppppppp#####pprppppppppp|pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppprrrphhhhhhHHHHHH^^^^^^^^^^^HHhhHHHHH^^^HHhhpppppppp/pppppfffpppppppppppppppppp|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~ppppppppfffffffffffffffffffffffffpfppppppppp+---+ppppppppppppppppp+-----------#####--=---------+ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppprrppphhhhhHHHHHHHH^^^^^^^^^^^^HHhhhHH^HHHhhpppppppp/pppppfffffppppppppppppppppp+pp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~pppppppppffffffffffffffffffffffffffffpppppppppppp|ppppppppppppppppp|ppppppppppp#####pprppppppppp|pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppprrppppphhhHHHHHHHH^^^^^^^^^^^^^^^HHhhhHhhhhpppppppp/pppppffffffpppppppppppppppp/ppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~ppppppppffffffffffffffffffffffffffffffppppppppppp#-----------------+ppppppppppppp|pppprrpppppppp|ppppppppppppppppppppppppppppppppppppppffffpppppppppppppppppppppppppppppppppppppppppppppppppprpppppphhhHHHHHH^^^^^^^^^^^^^^^^^^HHhhhhhppppppppp/ppppppfffffffpppppppppppppp/ppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~ppppppppfffffffffffffffffffffffffffffffpppppppppppppppppppppppppppppppppppppppppp|pffpprrppppppp|pppppppppppppppppppppppppppppppppppffffffffppppppppppppppppppppppppppppppppppppppppppppppppprpppppphhHHHHH^^^^^rr^^^^^^^^^^HHHHhhhppppppppppp/pppppfffffffffppppppppppppp/pppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~pppppppppffffffffffffffffFfffffffffffffffppppppppppppppppppppppppppppppppppppppppp|ppfffprrpppppp|ppppppppppppppppppppppppppppppppffffffffffffpppppppppppppppppppppppppppppppppppppppppppppppprppppphhh~~~~~^^^^rr^^^^^HHHHHHhhhhhhppppppppppp/pppppffffffffffpppppppppppp/ppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~pppppppppffffffffFfFffffFFFffFfffffffffffffppppppppppppppppppppppppppppppppppppppp|ppppppprrppppp?pppppppppppppppppppppppppppppppfffffffFFfffffppppppppppppppppppppppppppppppppppppppppppprrrrrppppphh~~~~~~~^^^r^^^^^^HHhhhhhhhhpppppppppppp/pppppfffffffffffppppppppppp/ppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~ppppppppppffffffFFFFFFffFFFFFFFFffffffffffffpppppppppppppppppppppppppppppppppppppp|pppppppprrppppppppppppppppppppppppppppppppppfffffffFFFFFfffpppppppppppppppppppppppppppppppppppppppppppprpppppppphh~~~~~~~~rrrr^^^^HHHhhhhpppppppppppppppp/ppppppfffffffFffffppppppppp/ppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~ppppppppppffffffFFFFFFFFffFFFFFFFFffffffffffffffppppppppppppppppppppppppppppppppppp|ppppppppprrppppppppppppppppppppppppppppppppfffffffFFFFFFFfffppppppppppppppppppppppppppppppppppppppppppprppppp~~~~~~~~~~~~~~^^^^^^HHhhhhppppppppppppppppp/ppppppffffffffFfffffppppppp/pppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~pppppppppfffffffFFFFFFFFFFFFFFFFFFFfffffffffffffffppppppppppppppppppppppppppppppppp|pppppppppprrrppppppppppppppppppppppppppppppfffffffFFFFFFfffffppppppppppppppppppppppppppppppppppppppppprrpppp~~hhhHH~~~~~~~^^^^^^^Hhhhhppppppppppppppppp/pppppppfffffffFffffffffpppp+ppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~pppppppppfffffffFFFFFFFFFFFFFFFFFFFFfffffffffffffffpppppppppppppppppppppppppppppppp|pppppppppppprrrhhpppppppppppppppppppppppppppffffffffFFfffffffpppppppppppppppppppppppppppppppppppppppprrppp~~~hhhhHHH~~~^^^^^^^^^Hhhhppppppppppppp+----+ppfppppfffffffFFffffffffppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~ppppppppffffffffFFFFFFFFFFFFFFFFFFFFFFffffffffffffppppppppppppppppppppppppppppppppp|ppppppppppppphrrHHhppppppppppppppppppppppppppfffffffffffffffpppppppppppppppppppppppppppppppppppppppp~~~~~~~phhhhhHHHH^^^^^^^^^^^Hhpppppppppppppp/pppppppfffpffffffffFFFFfffffffpppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~ppppppppfffffffffFFFFFFFFFFFFFFFFFFFFFFffffffffffppppp+----------------------------+----------+phH^^^^^Hhppppppppppppppppppppppppppffffffffffffpppppppppppppppppppppppppppppppppppppp~~~~ppppphhhhhhhHHH^^^^^^^^^^^^hhppppppppppppp/pppppppfffffffffffffFFFFfffffffppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~pppppppfffffffffffFFFFFFFFFFFFFFFFFFFfffffffffffffffp/pppppppppppppppppppppppppppp/ppppppppppp|pphH^?^Hhppppppppppppppppppppppppppppfffffffppffppppppppppppppppppppppppppppppppppp~~~~pppppppphhhhhhhHHH^^^^^^^^^^^Hhppppppppppppp/ppppffpfffffffffffffFFFFFfffffffppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~pppppppfffffffffffFFFFFFFFFFFFFFFFFFFFffffffffffffff/pppppppppppppppppppppppppppp/pppppppppppp|ppppp|pppppppppppppppppppppppppppppppppffffpppppppppppppppppppppppppppppppppppp~~~~~ppppppppppphhhhhhhHH^^^^^^^^^^^HHhpppppppppppp/pppffffffffffffffffffFFFFffffffffpppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~pppppppffffffffffffFFFFFFFFFFFFFFFFFFFFFFffffffffff/pppppppppppppppppppppppppppp/ppppppppppppp+-----+ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp~~~~~~~~~ppppppppppppppphhhhhhhHH^^^^^^^^HHHHhpppppppppppp/ppfffffffffffffffffffFFFFFfffffffppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~pppppppfffffffffffffFFFFFFFFFFFFFFFFFFFFFFFFffffff/ffpppppppppppppppppppppppppp/ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp~~~~ppppppppppppppppppppppphhhhhhHHH^^^^^^^^HHHhpppppppppppp/ppffffffffffffffffffffFFFFfffffffppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~ppppppppffffffffffffffffFFFFFFFFFFFFFFFFFFFF-----+ffpppppppppppppppppppppppppp/pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp~~~~~pppppppppppppppppppppppphhhhhhHHH^^^^^^^^Hhhhppppppppppp/ppffffffffffffffffffffFFFFFffffffppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~pppppppppfffffffffffffffFFFFFFFFFFFFFFFFFFFFFFffffffppppppppppppppppppppppppp/pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp~~~~~pppppppp~~~~~~pppppppppppppppppppppppppphhhhhHH^^^^^^^^HHhhhpppppppppp/ppppfffffffffffffffFFFFFFFFFffffffppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~pppppppppffffffffffffffFFFFFFFFFFFFFFFFFFFFFFFfffffffpppppppppppppppppppppp/ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp~~~~~~~~~~pp~~~p~~~~~~ppppppppppppppppppppppppppphhhhHH^^^^^^^^^HHhhpppppppppp/ppppppffffffffffffFFFFFFFFFFffffffppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~ppppppppppfffffffffffffffffFFFFFFFFFFFFFFFFFFffffffffpppppppppppppppppppp+pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppppppppppppppppphhhhHH^^^^^^^^^HHhhpppppppppp/ppppppfffffffffffFFFFFFFFFFfffffffppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~pppppppppppffffffffffffffffFFFFFFFFFFFFFFFFFFfffffffffppppppppppppppppppp|pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppppppppppppphhhhHH^^^^^^^^^HHhhpppppppp/pppppppppffffffffffFFFFFFFFFfffffffffpppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~ppppppppppppppfffffffffffffFFFFFFFFFFFFFFFFFFFfffffffffpppppppppppppppppp|ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppppppppppppphhhHH^^^^^^^^^^HHhhppppppp/ppppppppppfffffffffFFFFFFFFFFffffffffffppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~pppppppppppppppfffffffffffffFFFFFFFFFFFFFFFFFFFfffffffppppppppppppppppppp|pppppppppppppppphhhhhhhhpppppppppppppppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppppppppppppppppphhhhHHH^^^^^^^^^^^Hhhpppppp/pppppppppppfffffffffFFFFFFFFFFfffffffffffpppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~pppppppppppppppffffffffffffFFFFFFFFFFFFFFFFFFFFffffffffppppppppppppppppp|pppppppppppppphhhhhhhhhhhhhhhpppppppppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppppppppppppppphhhhhHH^^^^^^^^^^^^Hhhppppp/pppppppppppppffffffffFFFFFFFFFffffffffffffpppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~pppppppppppppppppffffffffffffFFFFFFFFFFFFFFFFFFFFfffffffppppppppppppppp###pppppppppppphhhhhHHhhhhhhhhhpppppppppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppppppppppppppphhhhhHH^^^r^^^^^^^^Hhhpppp/ppppppppppppppfffffffFFFFFFFFFFffffffffffffpppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~pppppppppppppppffffffffffffffFFFFFFFFFFFFFFFFFFFffffffffpppppppppppppp###pppppppppppphhhhhHHHhhhhhhhhhhppppppppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppppppppppppphhhhhhhHH^^r^^^^^^^HHHHhppp/ppppppppppppppffffffffFFFFFFFFFffffffffffffpppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~ppppppppppppppppffffffffffffffFFFFFFFFFFFFFFFFFFFfffffffpppppppppppppp###pppppppppppphhhHHHHHHhhhhhhhhhhhhpppppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppppphrrrrhhHH^^rr^^^^^^^HHHHhpp/ppppppppppppfpffffffffFFFFFFFFFFffffffffpppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~pppppppppppppppfffffffffffffffFFFFFFFFFFFFFFFFFFfffffffffffppppppppppp|pppppppppppphhhHHH^HHHHhHhhhhhhhhhppppppppppppppppppppppppppp~~~~~~~~~~~ppp~~~~~~~~~~~~~~~pppppppppppppppprrrrrhhrrrrrrrr^^^^^^^HHHHhpp/ppppppffpppppffffffffFFFFFFFFFFFffffffffppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~ppppppppppppppfffffffffffffffFFFFFFFFFFFFFFFFFFFffffffffffffppppppppp|ppppppppppphhhHHHH^^^HHHHHhHhHhhhhhpppppppppppppppppppppppppp~~~~~~~~~~ppppp~~~~~~~~~ppprrrrrrppppppprrrrrrpphhhhhhhHH^^^r^^^^^^HHHhhp+ppppppfffppppffffffffFFFFFFFFFffffffffffppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~pppppppppppppfffffffffffffffFFFFFFFFFFFFFFFFFFfffffffffffffppppppppp+----+pppppphhhhHHH^^^^^^HHHHHHhhhhhhppppppppppppppppppppppppp~~~~~~~~~~~pppp~~~~~~~~pppppprrrrrrrrrrrrppppppphhhhhhhHH^^^r^^^^^^HHhhpp|ppppppfffffpfffffffffFFFFFFFFFFfffffffffpppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~pppppppppppppffffffffffffffFFFFFFFFFFFFFFFFFFFffffffffffffppppppppp|pppp|pppppppphhhHHHH^^^HHHHHHHHhhhhhppppppppppppppppppppppp~~~~~~~~~~~~~~~pp~~~~~pppppppppppppppppppppppppppphhhhhhHH^^^^^r^^^^^HHhhpp|ppppppfffffffffffffffFFFFFFFFFfffffffffpppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppffffffffffffffFFFFFFFFFFFFFFFFFFFFffffffffffffppppppp|pppp|pppppppphhhhHHHH^^^^^^^HHHHhhhhhppppppppppppppppppppp~~~~~~~~~~~~~~~~~~p~ppppppppppppppppppppppppppppppphhhhhhHH^^^^^^^^^^HHhhppp|ppppppfffffffffffffFFFFFFFFFFFfffffffpppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppffffffffffffffFFFFFFFFFFFFFFFFFFFFfffffffffffffffffpp|pppp|ppppppphhhhhHHHH^^^^^^^^HHHhhhhhhppppppppppppppppppppp~~~~~~~~~~~~~~~~pppppppppppppppppppppppppppppppppphhhhhHHH^^^^^^^^HHHhhhppp|pppppfffffffffffFFFFFFFFFFFFFfffffffpppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppffffffffffffffFFfFFFFFFFFFFFFFFFFfffffffffffffffffff|pppp?pppppphhhhhHHHH^^^HHHH^^HHHHHhhhhhpppppppppppppppppppp~~~~~~~~~~~~~~~~pppppppppppppppppppppppppppppppppphhhhhHH^^^^^^^^HHHHhhpppp|ppppfffffffffffFFFFFFFFFFFFFFfffffffppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppfffffffffffffffffFFFFFFFFFFFFFFFFFFFffffffffffffffff|fppppppppphhhhhhHHHH^^HHHHHH^^HHHHHhhhhppppppppppppppppppppp~~~~~~~~~~~~~~ppppppppppppppppppppppppppppppppppphhhhhHH^^^^^^^^HHHhhppppp|ppppffffffffFFFFFFFFFFFFFFFFFfffffffpppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppfpppfffffffffffffffFfFFFFFFFFFFFFFFFFfffffffffffffff|pppppppppphhhhhHHHHH^^HHHHHHHHHHHHHhhhhpppppppppppppppppppppp~~~~~~~~~~~~ppppppppppppppppppppppppppppppppppphhhhhhH^^^^^^^^^HHHhpppppp|ppppfffffffffffFFFffFFFFFFFFffffffffppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppffffffffffffffffffFFFFFFFFffFFFffffffffffffffpp|pppppppppphhhhhHHHH^^HHHhHHHHHHHHHHhhhhppppppppppppppppppppppppp~~~~~~~~ppppppppppppppppppppppppppppppppppppphhhhhH^^^^^^^^^HHhppppppp|ppppfffffffffffffffffffFFFFffffffffppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppppppffffffffffffffffffFFFffffffffffffffffffffffffp|ppppppppppphhhhhHHH^^HHHhhhHHHHhhhhhhhhpppppppppppppppppppppppppp~~~~ppppppppppppppppppppppppppppppppppppppppphhhhH^^^^^^^HHHhpppppppp|ppppfffffffffffffffffffffffffffffffppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppppppfffffffffffffffffffffffffffffffffffffffffffffp|pppppppppppphhhhHHH^^HHhhhhhhHhhhhhhhhpppppppppppppppppppppppppp~~~pppppppppppppppppppppppppppppppppppppppppphhhhHH^^^^^^HHHhhpppppppp|ppppfffffffffffffffffffffffffffffpfpppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppffffpppppppffffffffffffffffffffffffffffffffppp|pppppppppppphhhhhHH^HHHhhhhhhhhhhhhhpppppppppppppppppppppppppppp~~ppppppppppppppppppppppppppppppppppppppppppphhhhHH^^^^^HHHhhppppppppp|ppppffffffffffffffffffffffffffffpppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppppppffpppppppppppfffffffffffffffffffffffffpffpppp|ppppppppppppphhhhHHHHHhhhhhhhhhhhhhhppppppppppppppppppppppppppp~~pppppppppppppppppppppppppppppppppppppppppppphhhhhH^^^^^HHhhhppppppppp|ppppffffffffpffffffffffpfffffffpppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppppppppppppppffffffffffffffffffffffppppppppp|ppppppppppppphhhhhHHHHhhhhppphhhhhhpppppppppppppppppppppppppp~~~pppppppppppppppppppppppppssspsssssppppppppppphhhhhH^^^^^HHhhpppppppppp+pppppfffffffpppfffffpppppppfffffpppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppppppppppppppppppfffffffffffffffffffpppppppp|pppppppppppppphhhhHHHhhhhpppppppppppppppppppppppppppppppppp~~~ppppppppppppppppppppppppsssssssssssssppppppppppphhhhHH^^^^HHhhppppppppp/ppppppffffffppppppppppppppppffffpppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppppppppppppppppppppppppfffFFpppffffffpppppppppppp|ppppppppppppppphhhHHHhhhpppppppppppppppppppppppppppppppp~~~~ppppppppppppppppppppppppsssssssssssssssspppppppppphhhhHH^^^HHHhhpppppppp/pppppppppffffpppppppppppppppppffffppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppppppppppppppppppppppppppppffffppppppppppppp|ppppppppppppppphhhHHhhhppppppppppppppppppppppppppppp~~~~~ppppppppppppppppppppppppppsssssssssssssssssspppppppphhhhHHH^^HHHHhhppppppp/ppppppppppppfppppppppppppppppppfffffppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppppppppppppppppppppppppppppppfpppppppppppppp|ppppppppppppppphhhHhhhpppppppppppppppppppppppppp~~~~~pppppppppppppppppppppppppppppsssssssssssssssssspppppppppphhhHHHH^HHHHhppppppp/pppppppppppppppppppppppppppppppffffffppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp|ppppppppppppppphhhhhhpppppppppppppppppppppppp~~~~ppppppppppppppppppppppppppppppppsssssssssssssssssssspppppppppphhhHHHHHHHHhpppppp/pppppppppppppppppppppppppppppppppffffppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppppppppppppppppppppppppppppppppppp###ppppppp|ppppppppppppppphhhhhhppppppppppppppppppppppp~~pppppppppppppppppppppppppppppppppsssssssssssssssssssssssppppppppphhhhHHHHHHhhppppp/ppppppppppppppppppppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppppppppppppppppppppppppppppppppppp###-------+pppppppppppppphhhhhhppppppppppppppppppppp~~~~ppppppppppppppppppppppppppppppppsssssssssssssssssssssssssppppppppphhhhHHHHHhhppppp/ppppppppppppppppppppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppppppppppppppfffpppppppppppppppppp###pppppppppppppppppppppphhhhhpppppppppppppppppppp~~~pppppppppppppppppppppppppppppsssssssssssssssssssssssssssssss-----+pppphhhhHHHHhhpppp/ppppppppppppppppppppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppppppppppfffpppppfffffffppppppppppppppppppppppppppppppppppppppppphhhhhppppppppppppppppppp~~ppppppppppppppppppppppppppppsssssssssssssssssssssssssssssssssspppppp\ppphhhhHHHhhhppp/ppppppppppppppppppppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppppfffffppffffffffffpppppppppppppppppppppppppppppppppppppppphhhhppppppppppppppppppp~~ppppppppppppppppppppppppppppsssssssssssssssssssssssssssssssssspppppppp\pphhhhhHhhhppp/ppppppppppppppppppppppppppppppppp~~~~~pppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppppffffffffffffffffffpppppppppppppppppppppppppppppppppppppphhhhhppppppppppppp~~~~~~~ppppppppppppppppppppppppppppsssssssssssssssssssssssssssssssssppppppppppp\pphhhhhhhhpp/pppppppppppppppppppppppppppppp~~~~~~~~~~pppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppppfffffffffffffffffppppppppppppppppppppppppppppppppppppphhhhhpppppppppppp~~~~~~~ppppppppppppppppppppppppppssssssssssssssssssssssssssssssssssspppppppppppppp\ppphhhhhpp/pppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~pp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppppppppfffffffFFFFffffffppppppppppppppppppppppppppppppppppppphhhhhppppppppppp~~~~~~~~~~pppppppppppppppppppppppssssssssssssssssssssssssssssssssssspppppppppppppppp\pphhhhhp/pppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~pp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppfffffFFFFFFFffffpppppppppppppppppppppppppppppppppppppphhhhpppppppppppp~~~~~~~~~~~pppppppppppppppppppppssssssssssssssssssssssssssssssssssspppppppppppppppppp\pphhhp/ppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~pp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppppfffffffFFFFFFFFfffffppppppppppppppppppppppppppppppppppphhhhhpppppppppppp~~~~~~~~~~~~ppppppppppppppppppssssssssssssssssssssssssssssssssssssppppppppppp~~~pppppp+----+pppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~pppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppffffffffffFFfFffffffffpppppppppppppppppppppppppppppppppphhhhhppppp~~~~~~~~~~~~~~~~~~~~~pppppppppppppppsssssssssssssssssssssssssssssssssppppppppp~~~~~~~~~~pppppppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppffffffffffffffffffffffpppppppppppppppppppppppppppppppphhhhhppppp~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppssssssssssssssssssssssssssssssssppppppppp~~~~~~~~~~~~ppppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppfffffffffffffffffffpppppppppppppppppppppppppppppppppphhhhhppppp~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppppsssssssssssssssssssssssssssspppppppppppp~~~~~~~~~~~~~~~ppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppfffffffpffffffppppppppppppppppppppppppppppppppppppphhhhhppp~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppsssssssssssssssssssssssssssppppppppppppp~~~~~~~~~~~~~~~~~ppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppppfffppppffffppppppppppppppppppppppppppppppppppppppphhhhppp~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppssssssssssssssssssssssspppppppppppppppp~~~~~~~~~~~~~~~~~~~pppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppppppppfffpppppppppppppppppppppppppppppppp~~pppppphhhppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppssssssssssssssssssssppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppppppppppppppppppppppppppppppppppp~~~~pppphhhpppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppsssssssssssssssssssppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppppppppppppppppppppppppppppppppp~~~~~~pppphpppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppssssssssssssssssspppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppppppppppppppppppppppppppppppppppppp~~~~~~~pppphpppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppssssssssssssssssspppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppppppppp~~~~~pppppppppppppppppp~~~~~~~~ppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppssssssssssssssssppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppppppp~~~~~~~pppppppppppppppp~~~~~~~~~pppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppssssssssssssppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppppp~~~~~~~~ppppppppppppppp~~~~~~~~~~~pppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppsssssssssspppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppp~~~~~~~~~~ppppppppppppp~~~~~~~~~~~~~pp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppssssssssppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppppppp~~~~~~~~~~~~ppppppppppp~~~~~~~~~~~~~~pp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppssssssppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppppppp~~~~~~~~~~~~~ppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppsssssppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppppp~~~~~~~~~~~~~~~ppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppsssppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ppppppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~pppppppppp~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
