+---------..............-----------.........         .......--------+++++------------..........-----++++OOOOOO#############OOOOOOOO+++++++++++++++++OOOOOOOOOOO########OOOOOOOOOO++++++-------.......                       .......----++++++OOOOOOOOOOOOO
----------............------------.........            ......----------------------.............----++++OOOOO################OOOOOOOOO+++++++++OOOOOOOOOO#################OOOOOOO++++++-------.......                          .....-----+++++OOOOOOOOOOOO
----------........-----------------.......              ......-------------------...............----++++OOOO##################OOOOOOOOOOOOOOOOOOOOOOOO#####################OOOOOOO+++++-------......                             ....-----+++++OOOOOOOOOOO
-----------------------------------.......              .......---------------..................----++++OOOO###################OOOOOOOOOOOOOOOOOOOOOO######################OOOOOOO++++++------......                             .....-----+++++OOOOOOOOOO
------------------------------------......               .......-------------..................-----+++OOOO####################OOOOOOOOOOOOOOOOOOOOO#######################OOOOOOOO++++++------.....                             ......-----++++++OOOOOOOO
-------------------------------------......              .......-----------...................-----++++OOOO###################OOOOOOOOOOOOOOOOOOOOOO#####################OOOOOOOOOO++++++-------.....                            ......------++++++OOOOOOO
----------------------++++++++-------......             ........-----------..................-----++++OOOO##################OOOOOOOOOOOOOOOOOOOOOOOOOOO##########OOOOOOOOOOOOOOOOOOO+++++++------.....                        .........-------++++++++OOOO
-------------------+++++++++++++------......           ........------------.................------++++OOOO################OOOOOOOOOO+++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO++++++++-----.....                    ............---------++++++++++O
-----------------++++++++++++++++-----.......         ........---------------.............-------++++OOOO################OOOOOO+++++++++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO++++++++-----.....                ...........---------------+++++++++
---------------++++++++++++++++++------.......      ........-------------------.........--------++++OOOOO##############OOOOO+++++++++++++++++++++++++++OOOOO++++++++++++++OOOOOOOOOOO++++++++------......           ........-------------------------+++++
--------------+++++++++++++++++++------...................------------------------...----------+++++OOOOO############OOOOO+++++++++--------++++++++++++++++++++++++++++++++++++++OO+++++++++++-----.......      ........---------------------------------+
------------++++++++++++++++++++------...................-------++++++-------------------------+++++OOOOO##########OOOOOO++++++-------------------++++++++++++------+++++++++++++++++++++++++------...................--------+++++++---------------------
+++++++++++++++++++++++++++++++------..................------++++++++++++----------------------+++++OOOOOO########OOOOOO+++++-------------------------------------------+++++++++++++++++++++-----..................------++++++++++++++------------------
++++++++++++++++++++++++++++++-------................------+++++++++++++++++--------------------+++++OOOOOOOO##OOOOOOOO+++++-----------------------------------------------+++++++++++++++++------................------++++++++++++++++++----------------
OO+++++++++++++++++++++++++++--------..............------++++++OOOOOOO+++++++--------------------+++++OOOOOOOOOOOOOOOO++++++---------------------------------------------------++++++++++++-------..............------++++++OOOOOOO++++++++--------.......
OOOOOOOOOO++++++++++++++++++----------..........-------+++++OOOOOOOOOOOO++++++---------....-------+++++OOOOOOOOOOOOOOO++++++----------------------------------------------------------++-----------..........-------+++++OOOOOOOOOOOOO++++++------........
OOOOOOOOOOOOOO+++++++++++++--------------------------+++++OOOOOOOOOOOOOOOO+++++-------.......------++++++OOOOOOOOOOOO+++++++------------------------------------.........-----------------------------...---------+++++OOOOOOOOOOOOOOOO+++++-----.........
####OOOOOOOOOOO+++++++++++-------------------------++++++OOOOOO#####OOOOOOO+++++------........------+++++++OOOOOOOOO+++++++++-----------------------------------.............-----------------------------------++++++OOOOOOO#####OOOOOO++++-----.........
######OOOOOOOOO++++++++++------------------------+++++++OOOOOO########OOOOO+++++------.........------++++++++OOOOOO+++++++++++++++++++++++++++++++++++----------..................----------------------------+++++++OOOOOO########OOOOO+++++----.........
#######OOOOOOOO++++++++++---------------------+++++++++OOOOOOO########OOOOOO++++------..........------+++++++++++++++++++++++++++++++++++++++++++++++++++--------....................-----------------------++++++++OOOOOOO########OOOOO+++++----.........
#######OOOOOOO++++++++++--------------+++++++++++++++++OOOOOOOO#######OOOOOO++++------..........-------+++++++++++++++++++++++++++++++++++++++++++++++++++--------....................-------------------+++++++++++OOOOOOOO#######OOOOO+++++----.........
######OOOOOOO+++++++++-----------++++++++++++++++++++++OOOOOOOOO#####OOOOOOO++++------..........-------++++++++++++++++++++++++++++++++OOOOOOOOOOOO++++++++-------.....................------------+++++++++++++++++OOOOOOOOO#####OOOOOO+++++-----........
O#OOOOOOOOOO++++++++------------++++++++++++++++++++++++OOOOOOOOOOOOOOOOOOO++++++------.........-------++++++++++++++++++++++++++++++OOOOOOOOOOOOOOOOO+++++++------.......       .......--------++++++++++++++++++++++OOOOOOOOOOOOOOOOOO+++++-----........
OOOOOOOOOO++++++++-------------+++++++++++++++++++++++++++++OOOOOOOOOOOOOO+++++++-------......---------++++++++++++++++++++++++++++OOOOOOOOOOOOOOOOOOOO+++++++-----......         ......-------+++++++++++++++++++++++++++OOOOOOOOOOOOO+++++-------.......
OOOOOOO+++++++++---------------+++++++++++++++++++++++++++++++++OOOOOOOOO++++++++---------------------+++++++++++++++++++++++++++++OOOOOOOOOOOOOOOOOOOOO++++++-----.....           ......-----+++++++++++++++++++++++++++++++OOOOOOOO+++++++---------....-
+++++++++++++------------------++++++++++++++++++++++++++++++++++++++++++++++++++-------------------++++++++++++++++++++++++++++++++OOOOOOOOOOOOOOOOOOOOO++++++----.....            .....-----+++++++++++++++++++++++++++++++++++++++++++++---------------
+++++++++----------------------+++++++++++++++++++++++-------++++++++++++++++++++----------------++++++++++++++++++++++++++++++++++++OOOOOOOOOOOOOOOOOOOO+++++-----.....            .....----++++++++++++++++++++++-------+++++++++++++++++---------------
--++----------------..----------+++++++++++++++++++-------------++++++++++++++++++-------------+++++++++++++++++++++++---------++++++++OOOOOOOOOOOOOOOOO++++++----.....             .....----++++++++++++++++++++------------++++++++++++-----------------
--------------............--------++++++++++++++------------------++++++++++++++++++++++++++++++++++++++++++++++++++--------------+++++++OOOOOOOOOOOOOO++++++-----....               ....-----++++++++++++++++------------------+++++++-------------------
------------.................--------++++++++------------------------+++++++++++++++++++++++++++++OOOOOOO++++++++++-----------------++++++++OOOOOOOOO+++++++-----.....               ....-----+++++++++++++----------------------------------------------+
-----------....................----------------------------------------++++++++++++++++++++++OOOOOOOOOOOOOO++++++++-------------------+++++++++++++++++++++------.....               ....-------+++++++----------...........--------------------------++++
-----------......................----------------------------------------++++++++++++++OOOOOOOOOOOOOOOOOOOOOO++++++-------.......--------++++++++++++++++++------.....               .....-------------------..................--------------------+++++++
-----------........................---------------------------------------++++++++++OOOOOOOOOOOO#####OOOOOOOOO+++++-------.........-------++++++++++++++++------......              ......----------------........................---------------+++++++++
------------..........       ........--------------------------------------++++++++OOOOOOOOO###########OOOOOOO++++++------...........-------++++++++++++++------......             .......-------------.........          .........------------++++++++++O
-------------.........        .........------------------------------------++++++++OOOOOOO##############OOOOOOO+++++------............--------++++++++++++-------......          .........----------........                ........----------++++++++++OO
--------------.........        ........-------------------------------------+++++++OOOOOOO##############OOOOOOOO+++++------...........---------+++++++++++-------.......... .............---------........                  ........----------+++++++++OOO
+++++++---------.........     ........---------++++++++----------------------++++++OOOOOOO##############OOOOOOOO++++++------...........---------+++++++++++------......................----------.......                   ........----------++++++++++OOO
++++++++++-------....................-------++++++++++++++-------------------+++++++OOOOOOO#########OOOOOOOOOOOOO++++++-------........----------+++++++++++-------..................------------.......                   ........----------+++++++++++OOO
+++++++++++--------.................------+++++++++++++++++++-----------------+++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOO++++++++-------.....-----------++++++++++++-------.............----------------......                   .......-----------++++++++++++++O
+++++++++++++---------.............-----+++++++++OOOO+++++++++------------------+++++++OOOOOOOOOOOOOOOOOOOOOOOOOOO+++++++++---------------------+++++++++++++---------....----------------------......                 .......------------++++++++++++++++
+++++++++++++++-----------.....--------++++++OOOOOOOOOOO+++++++------------------+++++++++OOOOOO+++++OOOOOOOOOOOOOO+++++++++-------------------++++++++++++++------------------------------------.....                ......----------++++++++++++++++++++
+++++++++++++++++--------------------+++++OOOOOOOOOOOOOOOO+++++---------------------+++++++++++++++++++++++++OOOOOOO++++++++++-----------------+++++++++++++++---------------------++++++++------......             ......--------++++++++++++++++++++++++
++++++++++++++++++++--------------++++++OOOOOOOOOOOOOOOOOO++++++-----------------------++++++++++++++++++++++++++OOOO+++++++++----------------++++++++++++++++------------------+++++++++++++-----.....           ......------++++++++++++++++++++--------
--++++++++++++++++++++++-----++++++++++OOOOOOOOOOOOOOOOOOO+++++----------....-------------------------++++++++++++++++++++++++----------------++++++++++++++++-----------------+++++++++++++++-----......        ......-----+++++++++++++++++++-----------
-------++++++++++++++++++++++++++++++OOOOOOOOO####OOOOOOOO+++++--------...........------------------------++++++++++++++++++++-----------------++++++++++++++-------------------++++++++++++++-----........    .......-----++++++++++++++++++-------------
-----------+++++++++++++++++++++++++OOOOOOOOO#####OOOOOOOO+++++-------..................-------.....----------+++++++++++++++--------------------+++++++++++---------------------+++++++++++++-----...................-----++++++++++++++++----------.....
...----------++++++++++++++++++++++OOOOOOOOOO####OOOOOOOO++++++------....................................----------+++++++-------------------------+++++++---------....------------++++++++++------...................-----++++++++++++++--------.........
.....--------+++++++++++++++++++++OOOOOOOOOOOOOOOOOOOOOOO++++++------........................................--------------------.......------------------------...........------------+++++-------...................------+++++++++++--------...........
.......------++++++++++++++++++++OOOOOOOOOOOOOOOOOOOOOOOO+++++------..........                         .........---------------...........---------------------...............---------------------...................-------++++++++--------........     
 ......------++++++++++OOOOOOOO++++OOOOOOOOOOOOOOOOOOOOO++++++------........                              ..........--------..............--------------------...................-----------------....................----------------------.......       
  .....-----++++++++OOOOOOOOOO++++++++OOOOOOOOOOOOOOOOOO++++++------........                                ...............................------------------.......................-------------......................--------------------.......        
 ......-----++++++OOOOOOOOOOO+++++++++++++OOOOOOOOOOOOO++++++++-----........                                  ............................-------------------.........................-----------......................-------------------........        
......-----++++++OOOOOOOOOOO+++++++++++++++++++++OOO+++++++++++-----........                                   ..........................--------------------..........     .............--------......................-------------------.........       
.....----++++++OOOOOOOOOOOO++++++++++++++++++++++++++++++++++++------.........                                 ........................----------------------..........       ............--------.....................-------------------............    
...-----+++++OOOOOOOOOOOOOO++++++++++++++++++++++++++++++++++++------............................           .........................-------------------------.........        ...........---------------...........------------------------..............
.-----+++++OOOOOOOOOOOOOOOO++++++----------++++++++++++++++++++------............................................................-------------++++++++---------...........    ............------------------------------------------------------..........
-----++++OOOOOOOOOOOOOOOOOO+++++--------------+++++++++++++++++-------...................------........................------------------++++++++++++++++--------........................-----------------------------------------------------------------
---+++++OOOOOO######OOOOOOO+++++---------------++++++++++++++++--------............---------------------........----------------------+++++++++++++++++++++--------....................-------------------------------------------------------------------
-+++++OOOOOO##########OOOOO+++++---------------+++++++++++++++++--------.......--------------------------------------------------++++++++++++++++++++++++++++--------...............------------++++++++++++++++++----------------++++++++++++++++++++----
+++++OOOOOO###########OOOOO+++++---------------++++++++++++++++---------....------------++++++++++---------------------++++++++++++++++++OOOOOOOOOOOOO+++++++++--------..........----------+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++OOOOO############OOOOO+++++---------------++++++++++++++++--------.....-----------++++++++++++++++++----+++++++++++++++++++++++++OOOOOOOOOOOOOOOOOO++++++++------------------------++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++OOOOOO##########OOOOOO+++++-----------------++++++++++++--------.........--------+++++++++++++++++++++++++++++++++++++++++++OOOOOOOOOOOOOOOOOOOOOOO+++++++++----------------------++++++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO++++++++++
++++++OOOOOOOOOOOOOOOOOOO++++++---------------------++++++---------............--------+++++++++++++++++++++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO++++++++++----------------------+++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO++++++
+++++++OOOOOOOOOOOOOOOO++++++------------------------------------................-------++++++++++++++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO+++++++++++++---------------------++++++++++++OOOOOOOOOOOOOO################OOOOOOOOOOOOOOOOOOOOOOOOOO
++++++++++OOOOOOOOO+++++++++------------------------------------..................-------++++++++++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO++++++++++++++++++-----------------------+++++++++++OOOOOOOOO#########################OOOOOOOOOOOOOOOO+++++O
+++++++++++++++++++++++++------------.------------------------.....................-------+++++++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO++++++++++++++++++++++-------------------------++++++++++OOOOOOOO###########################OOOOOOOOOOO++++++++++
----+++++++++++++++++------------.......---------------------...........   ..........-------++++++++++++OOOOOOOOOOO#######OOOOOOOOOOOO+++++++++++++++------------------------------------++++++++++OOOOOO###########################OOOOOOOOO+++++++++++++
--------------------------------.........-------------------..........        ........--------++++++++++OOOOOOOOO#########OOOOOOOOOO++++++++-----------------------------------------------++++++++OOOOOO##########################OOOOOOO++++++++++++++++
------------------------------..........--------------------..........         ........----------+++++++OOOOOOO##########OOOOOOOOO++++++-----------------------------------------------------+++++++OOOOOO#######################OOOOOO+++++++++++++++++++
----------------------------..........-----------------------..........         .........---------++++++OOOOOOO#########OOOOOOOO++++++--------........----------------------------------------++++++OOOOOO#####################OOOOOO++++++-------------++
--------....................----------------------------------...........        ........---------++++++OOOOOO########OOOOOOOO++++++------...............--------------------------------------++++++OOOOOO###############OOOOOOOO++++++------------------
-------....................--------------------------------------..........     ..........--------+++++OOOOOOO#######OOOOOOO++++++-----..................--------------------------------------++++++OOOOOOOO########OOOOOOOOOOO+++++-------........------
------...................-------------------+++++++++++------------.......................--------+++++OOOOOOO######OOOOOOO+++++-----.......      .......--------------------------------------++++++OOOOOOOOOOOOOOOOOOOOOO++++++++-----..............----
-------................----------------+++++++++++++++++++++---------....................--------+++++OOOOOOO######OOOOOOO+++++-----......         ......---------++++-------------------------++++++OOOOOOOOOOOOOOOOOOO++++++++------.................---
----------.........--------------++++++++++++++++++++++++++++++---------...............--------++++++OOOOOOO#######OOOOOO+++++-----......         ......------+++++++++++++------------------+++++++OOOOOOOOOOOOOOOOO++++++++-------......... .........---
+++-----------------------++++++++++++++++++OOOOOOOOOO++++++++++++---------........---------++++++++OOOOOO#########OOOOOO+++++-----.......      ......------++++++++++++++++++++------------+++++++OOOOOOOOOOOOOOOOO++++++--------........     .......----
+++++----------------+++++++++++++++OOOOOOOOOOOOOOOOOOOOOO++++++++++---------------------++++++++OOOOOOOO#########OOOOOO+++++------.................-----+++++++++++++++++++++++++++------+++++++++OOOOOOOOOOOOOOO+++++++-------.........     .......-----
++++++++++++++++++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO+++++++++---------------+++++++++OOOOOOOOO##########OOOOOO+++++-------...............-----+++++OOOOOOOOOOOOO+++++++++++++---++++++++++OOOOOOOOOOOOOO++++++--------.........     .......-----+
++++++++++++++++++++OOOOOOOOOOOOOOOOOOO#############OOOOOOOOOO+++++++++++--------+++++++++OOOOOOOOOOO##########OOOOOOO+++++-------.............------+++++OOOOOOOOOOOOOOOOOO+++++++++++----+++++++++OOOOOOOOOOOO+++++++------..........     .......----+++
++++++++++++++OOOOOOOOOOOOO###########################OOOOOOOOO++++++++++++++++++++++++OOOOOOOOOOO##########OOOOOOOO++++++--------..........-------+++++OOOOOO######OOOOOOOOO+++++++++------++++++++++OOOOOOOOO+++++++-------.........     .......----++++
++++++++OOOOOOOOOOOOO##################################OOOOOOOOO+++++++++++++++++++++OOOOOOOO############OOOOOOOOO++++++-----------....---------++++++OOOOO###########OOOOOOOO+++++++---------+++++++++++OOOO+++++++++------..........    .......----+++++
++++OOOOOOOOOOOOO#######################################OOOOOOO++++++++++++++++++++OOOOOOOO############OOOOOOOO+++++++------------------------++++++OOOOOO#############OOOOOOO+++++++-----------++++++++++++++++++++++------........... .........----++++O
+++OOOOOOOOOOO#########################################OOOOOOOO+++++++++++++++++++OOOOOOOO###########OOOOOOOO+++++++-----------------------+++++++OOOOOO###############OOOOOO+++++++--------------++++++++++++++++++++-------...................----++++OO
+++OOOOOOOOO##########################################OOOOOOOO++++++++++++++++++++OOOOOOOO#########OOOOOOO+++++++------------------------+++++++OOOOOOOO##############OOOOOOO++++++----------------++++++++++++++++++++-------..................----++++OO
++++OOOOOOO##########################################OOOOOOOO++++++++++++++++++++++OOOOOOOO#####OOOOOOOO+++++--------------------------+++++++OOOOOOOOOO#############OOOOOOO+++++++-----------------++++++++++++++++++++-------.................----++++OO
++++OOOOOOO########################################OOOOOOOOO+++++++--------+++++++++OOOOOOOOOOOOOOOOO++++++-------.........----------++++++++OOOOOOOOOOOOOOO#####OOOOOOOOOO+++++++------------------++++++++++++++++++++++------................----+++++O
+++++OOOOOO#################OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO++++++------------+++++++++OOOOOOOOOOOOO+++++------.............--------++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOO++++++++--------------------++++++++++OO++++++++++------...............-----+++++
+++++OOOOOO##############OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO+++++++---------------+++++++++OOOOOOOO++++++-----................-------+++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOO+++++++++++--------------------+++++++++OOOOOOO++++++++------...............-----++++
++++++OOOOOO#########OOOOOOOO+++++++++++++OOOOOOOOOOOOOO++++++++------------------+++++++++++++++++-----..................------+++++++OOOOOOOOOOOOOOOOO+++++++++++++++++++++++--------------------++++++++OOOOOOOOOOO+++++++-----................------++
-+++++OOOOOOO#####OOOOOOOO++++++++++++++++++++++OOOOOO+++++++++---------------------+++++++++++++-----........    ........-----+++++++OOOOOOOOOOOOOOO+++++++++++++++++++++++---------------------++++++++OOOOOOOOOOOOO+++++++-----..................------
-+++++OOOOOOOOOOOOOOOOOO+++++++-------++++++++++++++++++++++++++-----------------------+++++++-------.......      .......-----+++++++OOOOOOOOOOOOO++++++++++--------------------------+++++++++++++++++OOOOOOOOOOOOOOO+++++++-----.........  .........----
++++++OOOOOOOOOOOOOOOO++++++-------------+++++++++++++++++++++++------------------------------------........     .......-----+++++++OOOOOOOOOOOOO+++++++-------------------------+++++++++++++++++++++OOOOOOOOOOOOOOOO++++++-----.......        .......---
+++++OOOOOOOOOOOOOOO+++++--------.----------+++++++++OOOO++++++++----------------------------------...................-----+++++++OOOOOOOOOOOOO+++++++---------------------------++++++++++++++++++++OOOOOOOOOOOOOOO++++++------......            .......-
++++OOOOOOOOOOOOO++++++-----...........------++++++++OOOOOO++++++++---------------------------------................------++++++OOOOOOOOOOOOOOO++++++------...........-----------++++++++++++++++++++OOOOOOOOOOOO++++++++------......              .......
++++OOOOOOOOOO+++++++-----...............-----++++++OOOOOOOOO+++++++---------------------------------...........-------++++++OOOOOOOOOOOOOOOOO++++++-----................---------++++++++++++++++++++++++++++++++++++-------.......                ......
++OOOOOOOOOO+++++++-----.....        .....----++++++OOOOOOOOOO++++++-------------------------------------------------++++++OOOOOOOOOOOOOOOOOOO+++++-----...................--------+++++++++++++++++++++++++++++++++-------........                 ......
OOOOOOOOOO+++++++-----.....           ....-----+++++OOOOOOOOOOO++++++--------------------------------------------++++++++OOOOOOOOOOOOOOOOOOOOO+++++-----....................-------+++++++++++++++++++++++++++++---------.........                 .......
OOOOOOOO+++++++-----......            .....----+++++OOOOOOOOOOO++++++-------------------------------------++++++++++++OOOOOOOOOOOOOOOOOOOOOOOO+++++-----.....................-------++++++++++++++++++++++-------------..........               ..........
OOOOOO++++++++-----......             ....----+++++OOOOOOOOOOOOO+++++---------.....----------------++++++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOO+++++-----.....................--------++++++++++++++------------------.............       .................
OOOOO+++++++------......             .....----+++++OOOOOOOOOOOOO+++++-------........-----------+++++++++++++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO+++++++-----.....................--------++++++++++-----------------.........................................