1
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMA11))
++X+X+XXXXXXXX+X++XXX+X+XXXXXXXXXXXXXXX+XXXXX++++++++X+X++++++X++++++++++++++++++++=+=+-==+=+=+=+=--=-
+''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+.........................................................................  .....
+=-=-=H-------=-==---=-=------H-H------=-----========-=-======-= ==
+     C                       C C
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMMAXZ))+
++X+++XXXXXXXXX+XXXXXXXXXXXXX++XXXXXXXXXXXXXX++++++XXXXXXXX++X+++++++++++++++++++++++++=++==++++++=-
+'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''          '''''
+..........................................................................   . .            ..
+=-===---------=------H-H----==---H--HH------==== =---H----==-====        =
+                     C C         C  CC               C
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOMMAMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMAA1))+
++XXXXXXXXXXXXXXXXXXXXXXX+++-    -+++XX+++++++++++++XXXXX+XXX+XX++++++++++++++++++++++++++++++++++==--
+''''''''''''''''''''''''''       '''''''''''''''''''''''''''''''''''''''''''''''     '''  ''''''
+..........................       ...............................................       .   ....
+=----HH------H-----H----==         =-- ==== = == ==-----=---=--=====       =
+     CC      C     C
 OOOOOOOOOOOOOOOOOOOOOOOOOOAAZZ)+=)XOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMXZ1)1)
+++XXXXXXXXXXXXXXXXXXXX+++-         ++++++++==++++++++++XXXXX+XX+++++++++++++++++++++++++++++++++++---
+''''''''''''''''''''''''           '''''         '''''''''''''''''''''''''''''''   ' ''' '''''''
+........................           .....         ..............................              .
+==---H-HHH----HH--HHH-==            == =         =  ===--H-H=--==
+     C CCC    CC  CCC                                    C C
 OOOOOOOOOOOOOOOOOOOOOOOOOOAXX1))=- ZOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMMZ111)
++++XXXXXXXXXXXXXXXXXX+++--          +X++++++===+++---=+++++++X++++++++++++++++++=---====-==-=++=-==+
+''''''''''''''''''''''''            ''''''''           ''''''''''''''''''''''  '             '
+.......................             ........           ............... ..  .
+===--H-H-H-H-H---H-HH==              -= ==               ====-=====  =
+     C C C C C   C CC
 OOOOOOOOOOOOOOOOOOOOOOOOOOAAZZ1Z)=--ZOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMAX1Z))
++++XXXXXXXXXXXXXXXXXX+++=-           ++X+XXX+++++++++=-=-+++++X+++++++++++++++++=+=+=+=++++++++==++--
+''''''''''''''''''''''''             '''''''''''''''     ''''''''''''''''' ''  '       '   ' '
+.......................              ...............      ................ .
+===--H-HHH-------H-H-==              ==H=---======         ===-=====
+     C CCC       C C                   C
 OOOOOOOOOOOOOOOOOOOOOOOOOOMAXZ11)+- -OOOOOOOOOOOOOOOOOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMXZ11
++++XXXXXXXXXXXXXXXXXX+++==           +XXXXXXX+XXXXX+++== -=+++++++++++++++++++++++++++++=+++++++++++==
+''''''''''''''''''''''''             ''''''''''''''''      ''''''''''''''' '' '' '     '     ' ' '
+.......................              ................      .............   .
+===----HHH-----H-HHH-==              =-HHHHH-=--HH-=        ====
+       CCC     C BCC                   BCCCC    CC
 OOOOOOOOOOOOOOOOOOOOOOOOOOOMAX111)-- OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOAZX1Z
++XXX+XXXXXXXXXXXXXXXX++++=-          +XXXXXXXX+X++++++++--==++++++++++++++++++++++++++=+=++++++++++++=-
+'''''''''''''''''''''''''            '''''''''''''''''''    '''''''''''''' ''''' '       ' ''''''' '
+........................              ................      .............  ...               .   .
+=---=--H---H-H---HHH-=                -HHH----=-===          ==== ====
+       C   C C   CCC                   BCC
 OOOOOOOOOOOOOOOOOOOOOOOOOOOMAX)))+-  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMXZZ1
++X+++XXXXX+XXXXXXXXXXX+++=-          ++XXXXX++++++++++=++=-++X+X+++++++++++++++++==++++++++++++++++++=
+'''''''''''''''''''''''''             '''''''''''''''  '   ''''''''''''''''''''''   '' ''' ' ' ' '
+........................              ..............       .............   .....     .
+=-===--H-H=--H--HH----=               =HHH--== ====         =-=-=====
+       C C   C  CC                     BBB
 OOOOOOOOOOOOOOOOOOOOOOOOOOMMAZ11)+=  OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMAXZ
++++XXX+XXX+XXXXXXXXX+++++=           ++XXXXX++++++XXX++++++++++XXX++++++++++++++++==++++++=+++++++-=-=--
+''''''''''''''''''''''''             '''''''''  '''''' ' '''''''''''''''''''''''     ' ' ' '''' '
+.......................               ........  ......   . ............... .....           . .
+===---=---=---------===               =HH---==  ==---        ==---   = =
+                                       CC
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOMAZZ1)= =OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOMAXZ
++++++XXXXXXXXXXXXXXXX++++==-         +XXXXXXX++++XXXX++++==++++X++++++++++++++++++++=+++++=+++++++---- -
+''''''''''''''''''''''''             ''''''''''''''''''''  ''''''''''''''''''''      ''    ''''''
+........................             .......... ........   ......... ..... ....            . ...
+=====--H----------HH-==              =HHHHHHH=  =HHH-==      ==-====
+       C          CC                  CBBBCBC    CCC
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOMMZ11+==MOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMOAXXZ
+++++XX+XXX+XXXXX+XXXXX++++=-         XXXXXXXXX+++XXXXX++++++++++++++++++++++++++++++++=+++++++++++++=  -
+'''''''''''''''''''''''''            '''''''''''''''''''''  ''''''''''''''''''''           ' ' '''
+........................             .....................  .................. .               ..
+== =--=---=-----=HHHH-               -HHHHHHH-===HHHH-==     ======   ==    =
+                 CCBC                 CBCBBBC    CCBC
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOMXZ1)+-)OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMXZZ1Z
++++++++X+X++XXXXXXXXX+++++-=        +XXXXXXXXX+++XXXXXX++++=++++++++++++++++++++++=+++++=+++++++++---
+''''''''''''''''''''''''             ''''''''''''''''''''''  ''''''''''''''''' '     '     ''' ''
+........................             ....................    ...............
+= =====-=-==-----HHHH==              HHHHHHHHH===HHH-HH=     =         =
+                 CBBB                CBBBBBBBC   BCC CC
+                   V                     V
 OOOOOOOOOOOOOOOOOOOOOOOOOOOMMMZZ)=-1OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMXZZ1
++++XXXXXXXXX+XXXXXXXX++++=-         +XXXXXXXXXXXXXXXXX++++==-+++++++++++++++++++++++=+++=++++++++++---
+''''''''''''''''''''''''            ''''''''''''''''''''''   ''''''''''''''''' '       '   ''''' '
+........................            ......................   ............. ..  .           . .
+ ==--H---H-H=H-H-HHHH=               HHHHHHHHH---HHHHH====    ====       =
+     C   C C C C CCBC                CBBBBBBBB   BBBBC
+                   V                   VVV VV     VV
+                   A                       A
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOMMZ1+=-AOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMAAZX1)
++++++X+XXXXXXXXXXXXXX+++++--        +XXXXXXXXXXXXXXXXXX++++==-++++++++++++++++++=+=+=+++++++++++++=-
+''''''''''''''''''''''''            '''''''''''''''''''''''    '''''''''''''''       '''   ''''' '
+.......................             .......................    ..............               ..
+=====-=H-------H-HHHH=               HHHHHHHHHH--HHHHHH==        === =     =
+       C       C CCBC                BBBBBBBBBC  BBBBBC
+                   V                  VVVV VV      V
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOAX1)--MOOOOOOOOOOOOOOOOOOOOOOOOOMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMMZXXZ1+
++++++XXXXX+XXXXXXXXXX++++=---       +XXXXXXXXXXXXXXXXXXX++++=  ++++++++++++++++=-+=++++++++++++++=-
+'''''''''''''''''''''''''           ''''''''''''''''''''''''   '''''''''''''''     ' '     '   '
+.......................             ........................   .............
+ ====--HH-=----HHHHH-               =HHHHHHHHHHHHHHHHHHH  ==    = =    = = =
+       CC      CCCBB                 BBBBBBBBBCCCBBBBCCB
+                   V                  VVVVVVVV     V
+                                       A    A
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOMX1Z+--OOOOOOOOOOOOOOOOOOOOOOOOOOMZOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMAMZZ11)+
+++++XXXX+XXX+XXXXXXX+++++==-       =+XXXXXXXXXXXXXXXXXXXX++++  =++++++++++++++=====++=+=+=--=+++==-
+''''''''''''''''''''''''            '''''''''''''''''''''' '    '''''' ''''
+......................              ...................... .    ......  ..
+ ===----=---=-------=               =HHHHHHHHHHHHHHHHH-H-  =     =
+                                     BBBBBBBBBCBCBCBCC B
+                                       V V V V
 OOOOOOOOOOOOOOOOOOOOOOOOOOOMMAZZ)==OOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMX1Z1Z==
++X+XXXXXXX+++XXXXXX+++++++=        +XXXXXXXXXXXXXXXXXX+XXX+++- -++++++++++++++=+++=+++++++==-==+=--
+'''''''''''''''''''''''             '''''''''''''''''''''''''    ''''''''' '''                 '
+......................              ....................... .    .......
+=-=-------===H-----==               -HHHHHHHHHH-HHHHH-=-H-       ==
+             C                       BBBBBBBBBC CBBBC   C
+                                      VVVVVV       V
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOMMX1++=OOOOOOOOOOOOOOOOOOOOOOOOOOOOAMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOAX111)-=
++XXXXXXXXXXXXXXXXXX+++++++=-       +XXXXXXXXX++++XXXXX+++XX+=+-  +++++++==++++=+=+++==++==---==+=---
+'''''''''''''''''''''' '           ''''''''''''''''''''''''' '    ''''     '''
+......................             ........................  .     .
+=-------HH-----H-H-=                -HHHHHHH-====HHHHH===H-
+        CC     C C                   BBBBBBC     CBBBC   C
+                                     VVV V
+                                       A
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOMXZ)+)OOOOOOOOOOOOOOOOOOOOOOOOOOOOOAOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMA1++==
++++++XXXXXXX+XXXXX++++++=+=--      +XXXXX++++++++XXXXXX++XX+-++- ++++++++=++++=+=+++++++=+=++++====+-
+'''''''''''''''''''''' '           ''''''''''' ''''''''''''' '    ''''''   '''   '
+.....................              ........... .............      ......    ..
+== ==H-H-HH-=--HHH===              =-HHHH=       --HHH-= --          =
+     C C CC    CCC                   BBCC          BCB
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOMMAZ1+ZOOOOOOOOOOOOOOOOOOOOOOOOOOOOMXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOMAZ++-+
++++++XXXXXXXXXXXXX++++++==--       +XXXX++++===+=+++XXX++++X+-+  =++++++++++++++++-======-=+++++-=- -
+''''''''''''''''''''''             '''''''       ''''''''''''     '''''  ' '               '''
+.................... .             .......        ..........       ....    .
+=====------H------==               =HHHH==         =-HH= ==-
+           C                        CBBC             BC
+                                     V
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOMA1Z)1OOOOOOOOOOMOOOAMOOOOOOOOOOOOOOAMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMAX1==-
++++++XXXXXXXXXXXX++++++++---      -XXXX+++== ---  -++XXX+++X+=--  ++++++++++++++==-=-=-+-+==++=+----
+'''''''''''''''''''''' '           '''''''         ''''''''''      '''''   ''' '
+....................               .......         ..........      . ...
+ === --H-HHH-HHHH==                -HHH==           =HHH= =H=
+       C CCC CCCC                   CBC              CBB   C
+                                                      VV
 OOOOOOOOOOOOOOOOOOOOOOOOOOMOOMZ1)1OOOOOOOOOOMMAMXXXOOOOOOOOOOOOOXAOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMMMXZ++=-
+++++XXXXXXXXXXXXX+++++=+== --     =XXXX+++=-       -+XXXX++XX+--  -+++++=+=+==-===---=====--====--
+'''''''''''''''''''''              '''''''           '''''''''      ''''
+....................               .......           ........        .
+====-HHHHHHHHHHH-==                HH--==            -HHH==H-
+     CCBCBCBCCCC                   CC                 BBC  C
+                                                       V
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOMAZZ)XOOOOOOOOOOMAZAXZ))AOOOOOOOOOOOXXMOOOOOOOOOOOOOOOMOMOOOMOOOOOOOOOMMXX11==-=
++++++XXXXXXXXXXXX+++++=+=---      +XXXX++++-         ++XXX+XX+--   +++++++++==-=-= - --- ---=+++--
+'''''''''''''''''''' ' '          ''''''''           '''''''''     ' ''' ' '
+....................              ........           .........       .
+ = ==H-HHHHHHH-H-=                 --H-==             =HHH=-H=       =
+     C CCCCCCC C                     C                 BBC  C
+                                                        V
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOMX111MOOOOOOOOOOMMAMAA11ZOOOOOOOOOOOMZAOOOOOOOOOOOOOOOMOMOOMMMOOOOOOOOMMXZ1==---
+++++XXXXXXXXXXXXX++++=+++---      +XXX++++==         =+XXXX+XX+=   +++++=+++=----- - --   --=+++==
+''''''''''''''''''''              ''''''''            ''''''''       '''                       '
+...................               .......             ........       .
+ ===-HHHHHHHHH-H-=                 ---==               HHH-=-H
+     CCCCCCCCC C                                       CBB   C
+                                                        VV
 OOOOOOOOOOOOOOOOOOOOOOOOOOOMMZ))1OOOOOOOOOOOOOMXXZ)1)MOOOOOOOOOOOAZOOOOOOOOOOOOOOMOMMOMOOMMOMOOOOOMAZZ1+----
+++++XXXXXXXXXXXXX+++++++=--      =+XXX+++++=--        +XXXX+XX+--  -+++++++++=--= -  - --  - +++--
+'''''''''''''''''''''  '          ''''''''             ''''''''      '''   '
+...................               ........             ........      .
+ ===--HHHHHHHH-H-==               =H--==               -HHH=-H=
+      CCCBCBCB C                   C                    BBB  B
+                                                         V
 OOOOOOOOOOOOOOOOOOOOOOOOOOOMAZ1)1OOOOOOOOOOOOMMXZZ)1+1MOOOOOOOOOMX1MOOOOOOOOOOOOOOMOOOOOMMOOMOOOMOMAZZ)+==--
++++++XXXXXXXXXXX++++++++---      +XXXX+++++--          +XXX+XX+=    =+++=+++==---- --=-=  -- -== -
+''''''''''''''''''''  '          '''''''''             ''''''''      '''
+....................              .......              ........        .
+=====--H-HHHHHH-==                -HH-==               =-HH=-H=
+       C BCBCCC                    CC                    BB  C
 OOOOOOOOOOOOOOOOOOOOOOOOOOOMAXZ)ZOOOOOOOOOOOOMAXZXZZ1XMOOOOOOOOOOAZMOOOOOOOOOOOOOOOOOMOOOOMMOOOOOOMMXZ)==--
++++++XXXXXXXXXXX++++++++---      +XXXX++++==-          +XXX++XX+-   -+++==-=====-=--- ----  --==--
+''''''''''''''''''''             ''''''''              ''''''''        '
+...................              ........              ........
+=====--H-HHHHHH-==               =-HHH==               =-HH==HH
+       C CCCCCC                    BCC                   BB  BC
+                                                         VV
 OOOOOOOOOOOOOOOOOOOOOOOOOMMXXZ))ZOOOOOOOOOOOOMMAXMAZAOOOOOOOOOOOMMZAOOOOOOOOOOMOOMMOMOAMMMOOOOOOMMAAXZ))-- -
++++X+++X+XXXXXX++++=-===-        +XXX+XXX++=-        -+XXXX++XX=    -==+===--- --  - -    ---=--
+''''''''''''''''''               '''''''''            '''''''''
+.................                .........             ..... ..
+===-===-=--H---=                 =-H-=---=             -HHH= --
+           C                       C                    CBB
+                                                         V
 OOOOOOOOOOOOOOOOOOOOOOOOOOAXZ1)ZMOOOOOOOOOOOOMXZAMOOOOOOOOOOOOOOMOZ1MOOOOOOOOOMOOOMMAMAMMOMOOOMOMMAMZZ)+=--
++++++++X+XXX++++++++++----       +XXXXXXXX++=     -++++++XX+=+X+ -   +-+=====- --=       - --= -
+''''''''''''''''''               '''''''''''       ''''''''' ''
+..................               ...........       ......... ..
+ ===== -=---====                 =-HHHHH--=         =====HH  =-
+                                   CCCCC                 CC
 OOOOOOOOOOOOOOOOOOOOOOOOMMXZZ11XOOOOOOOOOOOOOMZXMOOOOOOOOOOOMOOOMMXZAOOOOOOOOOOOOOMMXMMMMAMOMMMMMXZAZ1+=----
++++++++++++X++++++++=+==        =XXXXXXXXXX++    ++X+XXXXXX+ +X+     --=-=====----         -
+'''''''''''''''''''              ''''''''''''    ''''''''''' '''
+..................               ............     .........  ..
+   = = ====-= =                  --HHHHHHH-=      =-=---HHH  =-
+                                   BBBBBBB              CCC
+                                      VV
 OOOOOOOOOOOOOOOOOOOOOOOOOMXX111MOOOOOOOOOOOOOO)ZOOOOOOOOOOOOMOOOMOA1ZMOOOOOOOOMMOOOMMMAMXAMOMMMOXZZZ11)=-=--
+++++++++++++++++++++++==-       +XXXXXXX+XX++-  -+XXXXXXXXX+ +X+ -    -+=+==--  ---        -   -
+'''''''''''''''''' '            '''''''''''''    ''''''''''  '''
+..................               ............    ..........   ..
+==============                   --HHHHH=--=     =-HHHHHHHH   -
+                                   CBBCC           CBBBBBBC
+                                                     V  VV
 OOOOOOOOOOOOOOOOOOOOOOOOOOXX111OOOOOOOOOOOOOOM1ZOOOOOOOOOOOOOOOOOMM1ZMMOOOOOMMMOAOMMXMMMXAXMAMMMAZ1Z1Z++----
++++XX+++++++++++++++++=---     -+XXXXX+++++++   -+++XXXXXXX--+++-      ---=-   - -
+'''''''''''''''''' '            '''''''''''''    ''''''''''  '''
+..................              .............    ..........   ..
+===H-======== ==                =-----======     ===---HHH-   =
+   C                                                   BBB
 OOOOOOOOOOOOOOOOOOOOOOOOOOXZ)11OOOOOOOOOOOOOOM)1MOOOOOOOOOOOOOOOOOMX1AOOMOOMMOMMMMMMZXZAXAAAAAAMXAZ111)=-= -
++++XXX+++X++++++++++++----     ++X+++++++++++    ++++XXXXX++-+++--    -= --  -
+'''''''''''''''''' '            '''''''''''''    ''''''''''   ''
+.................               .............     .........   ..
+= =---===-====                  =H===  = ==        ==-HHHH=   ==
+                                 C                    CBCC
 )XOOOOOOOOOOOOOOOOOOOOOOOAZ111XOOOOOOOOOOOOOOM))XOOOOOOOOOOOMOOOOMMMZXOOOAMOOMAAXMAMXAZAXAXAXAXXXAZ1))==----
+  -+X++XXXXX+++++++++=-=-      ++X+++++++++++    -=++++X+X++ =++-     ---  --
+   '''''''''''''''             ''''''''''''''      '''''''''  ''
+   ............                .......   ....      ........   ..
+   =-==-----                   ==-==                = =-=-=
 -=ZOOOOOOOOOOOOOOOOOOOOOOMA11)AOOOOOOOOOOOOOOM))ZOOOOOOOOOOOOOOOOMMMZXAOMAMOOOMAAMMMMAAMZAAAXMXAXMZ1)1++ ---
+   ++++XXXX+++++++++++=+-      +XX+++++++++++    --++++++X++--++=      -   ---
+   '''''''''''''''''           '''''''   ''''      '''''''''  ''
+   ..............              ......    ...        ........   .
+   ====----==                  =--=        =            =-=    =
  --OOOOOOOOOOOOOOOOOOOOOOAZZ1)OOOOOOOOOOOOOOOX=)XOOOOOOOOOOOOOOOOOMOMAAMMMMMMOMMMMMMAX1AZXXXZZ1AAAZZ1+)+--
+   ++X+++++++++++++++=+--     -XXX+++++++++++    -+++++++X+++-=++- -         -
+    '''' ''''''''''            '''''''   '''       ''''''''''  ''
+    .... . ......              ......    ...         .......   .
+    =-=  =  =                  -HH==                   ==-==
+                                CC
 ---OOOOMZMAOOOOOOOOOOOMMMAXZZOOOOOOOOOOOOOOOOZ-=XOOOOOOOOOOOOOOOOMOOOXXMXAMOMMXAXMZAXXZAXZZAXXXMMMZ1)))+=--
+   ++X+    ++++++++++=       -+XXXX+++++++++=    =++++++XX+++--++ ---      -
+   ''''    '''''''            ''''''''   '''      ''''''''''   ''
+    ...     ....              ........   ...       .........   ..
+    =-=      =                 -H--==                 ==-H=    =
+                                C                        C
 --)OOOOM+1MOOOOOOOOOOOOOOMZZ1OOOOOOOOOOOOOOOOOAOOOOOOOOOOOOOOOMOOOOOOXZXMMMAAMAMXX1ZZZZXZZZAXAAMXX1)))))=- -
+   ++X+    +++++++++++---    ++XXXX+++++-++++- --+++++++XXX++- ++--+-
+   ''''    '''''''  '         ''''''''    '''      ''''''''''  ''
+   ....    ... ..             .......      .       . ........  ..
+    =-=                        H---=                  ==-H-
+                               C                         B
 XAOOOOOO+ZOOOOOOOOOOOOOOMXZXMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOMXAOOOMMMMMXXZAXZXZ1ZZXXAAMXA11)11)+=--
+  -+XX+-  =+++++++++++--     +XXXX+++++==+++++-++==++++XXXX+++ +++-++   ---
+   ''''    '''''''           '''''''''    ''''     ''''''''''' ''  '
+   ....    ... .             .........    ...        ........   .
+   =--=                      =-HHH==                 = -HHH
+                               BCC                      CBB
 OOOOOOOO+OOOOOOOOOOOOOOMAZZAOOOOOOOOOOOOOOOOOOMZ1MMOOOOOOOOOOOOOOOMOOM1AMMMMMMAAZZZAZXXXZXZX1XXAMAXZ11))=---
+=++++X+- -++++++++==+=-     =XXXXXX+++++++++--     ++++XXXXX++-+++ ++
+ ''''''    '''''             ''''''''''' ' '        ''''''''''  ''
+  .....    .   .             .........               ....... .  .
+   ==-=                      -HHHH-==                ==-HHH-    =
+                              BBBC                      CBB
+                               V                         VV
 OOOOOOOOZOOOOOOOOOOOOOMMAXZOOOOOOOOOOOOOOOOOOOMXMOOOOOOOOOOOOOOOOOOOOOZAMMMOMOMAXXZZXAXXXAZXXAAMXAZXZ1++==--
+=+++++++ =++++++++++--     -+XXXXXXX++++++++--   -=++++XXXXX+++-++-++-     - -
+  '''''    '''   '          ''''''''''''''''       '''''''''''  ''  '
+   ....                     ...............        ...........   .  .
+      =                      HHHHHH-=   ==           ==HHHHH=
+                             CBBBBC                    CBBBB
+                                                         VV
+                                                         A
 OOOOOOOOOOOOOOOOOOOOOMAAZZZOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOXXAMMMMMXMAAZZ1AXMXXXAAMMMAMAAX1))+=--
+=+++++++=+++++++=+==-      =+XXXXXX++++++++++++++++++++XXXXXX++-++-=+=
+ '''''''     '              ''''''''''''''''''''''''''''''''''' ''  '
+   .....                    .......... ......   ..............   .  .
+     ==                     =HHHHHH==    ==         ===HHHHHH       =
+                             BBBBBC                    BBBBBC
+                                                        VVVV
+                                                         AA
 OOOOOOOOOOOOOOOOOOOOMMAAZXXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMZAAAAAAMMMAZZZXZXXXZMAMMMXXXAXZ)1)---
+-+++++++++++++==-=--       +XXXXXXXX+++++++++=-+++++++XXXXXXXX+-+++-++
+   '''''''''''             '''''''''''''''''    ''''''''''''''' ''   '
+     .....                 .................     ..............  .
+     ===                    -HHHHHH-=    =           =-HHHHHH-   =
+                             BBBBBC                    BBBBBB
+                             V V                        VVVVV
+                                                         AAA
 MMMOOOOOOOOOOOOOOOOOOMXXZAAOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOZ1XZAXMAMAAXZ1XZXXZXXAAXAZXZ1Z1))+=--
+   -+++++++++++++==--      +XXXXXXXX+++++++++++++++++XXXXXXXXX+=++++++-
+     ''''''' ' ''          '''''''''''''''''''''''''''''''''''' ''' ''
+     .....   .             ............. ......................  ..  .
+     == =                  =-HHHHHH-==              =-HHHHHHHH=  =
+                             BBBBBB                   CBBBBBBC
+                             VVVV                      VVVVVV
+                                                         AAA
 --=XOOOOOOOOOOOOOOOOMMXXZMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOZZZZMMAMMAMAX1XAMAMZAZMMMMA1Z11)++=--
+    -+++++++++++++--       +XXXXXXXXX+++++++===++++++XXXXXXXXX+++++=++-
+     '''''' ''             ''''''''''''' ' '     ''''''''''''''' '' ''
+     .....                 ............. .       ............... .. ..
+      ===                   -HHHHHHH-=            = =HHHHHHHHH=  ==
+                             BBBBBBB                 CBBBBBBBB
+                              VV                       VVVVVVV
+                                                       AAAAA
 -   =OOOOOOOOOOOOOOOMAXXZXMOOOOOOOOOOOOOOOOOMMAOOOOOOOOOOOOOOOOOOOOOOOOX1ZXAAMAOAAZA1XXXZAAAAOMOOMZZXZ))==--
+     =++++++++++++--       ++XXXXXXXXX++++--   --+++XXXXXXXXXXX++++++++        -             - --
+      '''' ' '             ''''''''''''''        ''''''''''''''' '' ''
+      ....                 .............         ............... ..  .
+      ==                    =HHHHHHHH-==           =-HHHHHHHHH-  ==
+                             CBBBBBBC                BBBBBBBBB
+                               VV  V                  VVVVVVVV
+                                                       AAA
      ZOOOOOOOOOOOOOMAAAXZAMOOOOOOOOOOOOOOOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOO1ZZAMMMAZXZZZAZXZAAAMAAMAOAXZZ)+----
+      ++++++++++==-        ++XXXXXXXXXX++++- ---+++XXXXXXXXXXXX+=++=++=-                         -
+       '''''''             '''''''''''''''       ''''''''''''''' ''  '
+       ...                  ..............       ............... ..  .
+       =                     -HHHHHHHHH=           HHHHHHHHHHH-  ==
+                              CBBBBBBBC            CBBBBBBBBBB
+                               V   VV                VVVVVVV
+                                   A                 AAAA
 --   -ZOOOOOOOOOOOMOAMAAXXMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOX1XXAAMAZZXZZZZXZAZMAMMMOMZXXX1)+=--
+       +++++++++== -       =++XXXXXXXXXXX++++++++XXXXXXXXXXXXXX+++X++++-                        -
+       '''''                '''''''''''''''''''''''''''''''''''' ''' '
+        ..                   ................................... ..  .
+                             =-HHHHHHHHH-= =     --HHHHHHHHHHHH= =-
+                               CBBBBBBBB           BBBBBBBBBBBB
+                                  VV V             VVVVVVVVVVV
+                                                     AAAAAAA
 - -   -OOOOOOOOOOOOOMMMMXZMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOAZ1XAMAAAAXXXAZXZAAMXAAMMMAAXA11== -
+       =++++++++=---       =+++XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+++++=++-
+        '''' '               ''''''''''''''''''''''''''''''''''' ''' ''
+        ..                   ................................... ... .
+         =                     HHHHHHHHHHHHHHHHH-HHHHHHHHHHHHHH=  =
+                               CBBBBBBBBCBBCCCCC CBBBBBBBBBBBBB
+                                   V               VVVVVVVVVVV
+                                                    AAAA A A
 --    -OOOOOOOOOOOMOAAMMZXXMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOAXZAAAXXXAXMAAAAAMAMAMMOMOMMXAX1+=--
+       =++++++++=- -        -+++XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+++++++-                       - -
+        '''                   '''''''''''''''''''''''''''''''''' ''' ''
+         .                     ................................. ... ..
+                               =-HHHHHHHHHHHHHHHHHHHHHHHHHHHHHH-  == ==
+                                 BBBBBBBCBCBBBBBBCBBBBBBBBBBBBB
+                                   VV              VVVVVVVVVVV
+                                                    AAAAAAAA A
 -   --=OOOOOOOOOOMMMAMMXZZXOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMAMMAXAAMAMMMMMMOMOOOOOOOOMXMAX1+=-
+       =++++++==-          - ==++XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX++X++++=                 - ------=-
+        '' '                   ''''''''''''''''''''''''''''''''''''' ''
+                               ..................................... ..
+                                =HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH==-= =
+                                 CCBBBBBCBCBCBBBBCCBBBBBBBBBBBBC
+                                   V V       V     VVVVVVVVVVV
+                                                   AAAAAAAAAA
 --   1MOOOOOOOOOMMAAXMAX1Z1MOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMAMMMMOMOMMMAMAMAMMMOOOOOOMAMMXZ)+=+
+       ++++++=--            -=-++++XXXXXXX+XXXXXXXXXXXXXXXXXXXXX++++++++      - -           ---=--
+       '''                     ''''''''''''''''''''''''''''''''''''''''
+       ...                      .......................................
+                                 ==HHHHH--=H-HHHH--HHHHHHHHHHHHH= ==  =
+                                   BBBBC   C CCCC  BBBBBBBBBBBBB
+                                     V              VVVVVVVVVVV
+                                                     AAAAAAA
 --  -XOOOOOOOOOOOMXZ1ZZZ111OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMZZXAMMOOMMOMMMOAMMMMOOOOOMMXAXXZ)--
+      ++++++++=--          ----++++X+XXXXXXXXXXXX++XXXXXXXXXXXXX+++X++++       --  -   -     -----
+      ''''                     '''''''''''''''''''''''''''''''''''''''''
+       ...                       .......................................
+       ==                          -=HHHHHH--HHH-==HHHHHHHHHHHHH===-
+                                     BBBCCC  CCC   CBBBBBBBBBBBB
+                                                     VVVVVVVVV
+                                                       A
 --   XOOOOOOOOMMMA11)ZZZ1)1MMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOA1)XXMMMAMAAZXXAZAXAMAAMMOAMXX11)=--
+      +++++++=               --==++++++XXXXXXXXXX+++XXXXXXXXXXXX++++++++                         -
+      ''''                       '''''''''''''''''''''''''''''''''''''''
+       ...                        ...................................
+       =                           =  =-HH-------===HHHHHHHHHHHH== =
+                                        CC          CBBBBBBBBBBC
+                                                      VVVV V
 -    ZOOOOOOOOMOMZZZ1ZZZ1ZXMMOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOA)+ZXMMOMMMMXAZAAAMMMMMOOOMMMAX11+==
+      ++++++== -             - --+++++++++++++++XX+++XXXXXXXXXXX+++X++++       -               --=
+       ''''                        ' '''''''''''''''''''''''''''''''''''
+       ....                          .................................
+        =                              = =======--  =HHHHHHHHHHH= =-=
+                                                     BBBBBBBBBBB
+                                                       VVVVV V
      )OOOOOOOOMMAAXZZZZ11XAOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOZ+-))MOOMMOMMMMMMOMOMOOOOOOMMMXX1===
+      +++++++=             - =-====++++++++++++XXXX++XXXXXXXXXXX++++++++      -=  -      - - --=-=-
+       ''''                          '''''''''''''''''''''''''''''''''''
+       ...                            .................................
+       ==                               =======--H-==-HHHHHHHHHH=====
+                                                 C    CBBBBBBBBB
+                                                         VVVVVV
+                                                           A
    - )OOOOOOOOMOMMAMXZ111XAOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOA+=+=XMOOOMOMOMOOOOOOOMOOOOOOOMAZ1==
+      =++++++= -           --=-----==++++++++++X+XXXXXXXXXXXXXXX++++++++       --- - - ------- ++=----
+       ''''                          '''''''''''''''''''''''''''''''''''
+       ...                             .................................
+       ==                                  = ==-=-HH---HHHHHHHHH======
+                                                  CC   BBBBBBBBC
+                                                        VVVVV
+                                                         A
 -    +OOOOOOOOOOMMAAZZ11ZMMOMOOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOX=-==AOOOMMOMOOOMOOOMOMOOOOOMMXX1)+=
+      =+++++==--           - ---- ----=++++++++++++X+X++XXXXXXXXXXX+++++      -+-  - --- --- - --=--
+       '''''                           '''''''''''''''''''''''''''''''''
+       ....                            . . . ..........................
+       ===                                     ====-=-==-HHHHHHH---==
+                                                         BBBBBBC
+                                                          VV V
      )OOOOOOOOOMAMAZ1ZZZZMMOOOOOOMMMXAMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOM=-=)MOOOOMOMOMOOMMOOOOOOOMMMOXZ))++
+      =+++++==-            --=---      ++++++++++++++XXX+XXXXXXXXXX+++++      -+=- - - --  ----=-=   -
+       '''''                             '''''''''''''''''''''''''''''''
+       ....                               ..............................
+       ===                                        ===---=-HHHHHH--H= =
+                                                          CBBBBC  C
+                                                           VVV
  -   =OOOOOOOOMMMX1Z)1)Z1MOOOMMOMMAZ1Z1MMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOM=-)1OOOOOMOOOOOOOOOMOOOOOOMMOMMZX11
+      -+++++=-            ---  -         =++++++++++++XXXX+XXXXXXXX+++++     -+++- --=------ -=+++=  -
+       '''''                               '''''''''''''''''''''''''''''        '              ' '
+       ....                                  ...........................
+       =                                          ====-H--=-HHHHHHH=== =
+                                                       C    CBBBCCC
      -OOOOOOOOMMAZZZ1XZXAOOOMOMOMXZZZ1ZXAOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO+-)XOOOOOOOOOOOMOOOOOOOOOOOOMMMAX1)
+      -+++++=-           --- - -         --==++++++++++XXXX++XXXXXXX++X++    ++++======= ----=-+++++-
+       '' ''                                 '''''''''''''''''''''''''''                         ''
+       ..                                      .........................
+       ==                                          == =--H-  -HHHH--==-=
+                                                         C    CCCC
 -    =OOOOOOOOOMMMAAZXXMOOOOOOOOM111111ZZZMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOO)-+ZOOOOOOOOOOOOOOOOOOOOOOOOMMMMAZ1
+      -++=+++=-         -----=--            -+=+=++++++++XXXXXXXXXX+++XX+    =+==+=+=+=======+=+++++-
+       '' ''                                     ''''''''''''''''''''''''
+       ..                                          ......................
+       ==                                            == =----HHH-H-===--=
+                                                             CCC B
  -   =OOOOOOOOMMAXXAXMMOOOOOOOOOAZ)1)Z11Z)ZMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOA)1ZOOOOOOOOOOOOOOOOOOOOOOOOOMOMMX1
+      -++=+++-         ---------             ------==++++++XXXXXXXX++++X+    =++++++++=====+=+=+++++-- -
+       '' ''                                         ''''''''''''''''''''      '   '             '
+       ..                                             ...................
+       ==                                               ===--HH--HH====-
+                                                             BC  CC
 -    =OOOOOOOMMMXMAMXOMOOOOOOOOOZ1)++)1Z11)Z1MAMMOOOMOOOOOOOOOOOOOOOOOOOOO))ZOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMX
+      =++-++=        - -----=+=-                 --- -=+++++XXXXX+X++++X+=   -++=+++++++===+=+++++++-=-=-
+       '' ''                                             ''''''''''''''''      '             '''''
+       ..                                                ................                      .
+       ==                                                  =-HHHH=-====-=
+                                                             BCCC
      -OOOOOOOOMMMMMMMMMOOOOOOOOMZ)))+++)+)1)1ZXMAAAMMMMOOOOOOOOOOOOOOOOOOOX)1OOOOOOOOOOOOOOOOOOOOOOOOOOOOMXX
+      -++++++-         --======                        -=++++XXXXXXX++++++   =++++++++++=+++=+++++++++==-
+       '''''                                              ''''''''''''''''     ''  '''       ' '''''
+       .....                                               ...............     .               .
+       ==  =                                                =-HHHH--=====
+                                                              CCCC
      -OOOOOOOOMMMMAMMOOOOOOOOOOA1==----=---====11ZZXAAAMMMOOOOOOOOOOOOOOOOM11OOOOOOOOOOOOOOOOOOOOOOOOOOOMMAX
+      -++X+++-       =---==+=+-                           -=+=++++XX++++++   =++++=+++=+=+=+=+++++++++==
+       '''''                                                   '''''''''''    '''  ''' '   ' '''''''
+       .....                                                    ..........     .                .. .
+        =-=                                                     ==--======
 -    -OOOOOOOOMMMOMOOOOOOOOOOOMZ)+===----------=)1111Z1XZZ1XXXZXXOOOOOOOOOOZ1OOOOOOOOOOOOOOOOOOOOOOOOOMOOOMZ
+      -++XX+==   - ----=-=++++                                   -=+++++++-  -++++=+++++===+=++++++++= ==-
+       '''''               '                                       '''''''     '      '       ''''''
+       .....                                                       ......      .               ...
+       ==H-                                                         =
+         C
       AOOOOOOOMMMOOOOMMOOOOOOOX1))===+-----  -  -+++)11Z1)+111)1)1ZAOOOOOOOO1OOOOOOOOOOOOOOOOOOOOOOOOOOOOOMA
+       ++++++-   ----  --+++=-                                      -++++++- -++++++++++++=+++++++++++===-
+       '''''                                                         ''''''    '' '''''''    ''''''''
+       .....                                                         .....     .     ..      .......
+       ====                                                                                    =
      -OOOOOOOOOOOOOOOOOOOOOOOOXZ+)++)++11)= --  -==++))1+))1)))1++++=XMOOOOOAMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+      -++X+++=---=---===+++++-                                         =+++=  -+++++++++++++++++++++++++=+=-
+       ''''''            '                                                     ''  '''''''''''''''''''''
+       ......                                                                      .....     .......
+       ==-==                                                                                   =
 -    =MOOOOOOOOOOOOOOOOOOOOOOMZ1+++++)ZMMA1=-  - ---+=-==)+11Z11)+=----1MOOOOAOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+       +++X++=------==-=++++-                                            --=- -++++++++++++++++++++++++++===
+       ''''''            '                                                     '''''''''''''''''''''''''
+       .....                                                                    .  .......   ........ .
+       ===-=                                                                                     =
      =OOOOOOOOOOOOOOOOMOOOOOMZ1)=+=-=ZXOOZZ+-       +=-==+)11XZZ)1++=- -=ZMOOMAOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+      -+++X+++---=---- ==+=-           --                                  --  +++++++++++++++++++++++++++=-
+       ''''''                                                                  '''''''''''''''''''''''''
+       ......                                                                   ............ ...........
+        ==-                                                                      =
      +OOOOOOOOOOOOMMMOOOOOOOX1++=+==+XMOM1)+=       -====))ZZZ1ZZZ1+---- -=AMOXOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+      =++X++++-=--   ----=--           =                                     - +++++++++++++++++++++++++++=-
+       ''''''                                                                   '''''''''''''''''''''''''
+       ......                                                                    ... ........... . ... .
+       ==-==                                                                               =
      )OOOOOOOOOOOOOOMOMOOOOA11)++++++AOOOOOX)=       --++11ZXXZX1Z))++=--  =1MXMOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+      +++X+X++==---- - --==           -+++-                                     ++++++++++++++++++++++++++=-
+       '''''''                          ''                                       ''''''''''''''''''''''''
+       .......                                                                   .......................
+       ==-=-==                                                                      == =  ===   = ==  =
      XOOOOOOOOOOOOOOOOMOOOOX1)))))))+ZMOOOOA1=       --))ZXAAMMMXXZZ11=-     +1AOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+      +++X+X+++=------ ===-            +=+-                                     -+++++++++++++++++++++++++=+
+      '''''''''                                                                  '''''''''''''''''''''''''
+       .......                                                                   ........................
+       ==-=-==                                                                    ===    = === === = = =
      AOOOOOOOOOOOOOOOOOOOOMA1111))1111ZOOOOAZ---     =+11ZXAXMMMMMMAZ)=-       )MOOOOOOOOOOOOOOOOOOOOOOOOOOO
+      ++XXXXX+++===----===             --=-                                      +++++++++++X+++++++++++++++
+      '''''''''                                                                  '''''''''''''''''''''''''''
+      .........                                                                  ......................... .
+       =-----                                                                      ==  =====-========== =
      MOOOOOOOOOOOOOMOOOOOOMAZXZ1))+))ZZXMOA1+=-- -   =+)1XXMMMMMOMAA1)+- -    - =MOOOOOOOOOOOOOOOOOOOOOOOOOO
+      +++XXXX+++=== ---++=               -                      -                 +++++++X+++++X++++++++++++
+      '''''''''                                                                   ''''''''''''''''''''''''''
+      ........                                                                     .........................
+       ==----                                                                      === ==-=====-====== ==
      OOOOOOOOOOOOOOOOOOOOOMAXXXZ111Z1Z1ZZZ1)+==-   - )111AXXMMMOOMAX1)-  -    -=)XXOOOOOOOOOOOOOOOOOOOOOOOOO
+     -++++XXX+++==-=-=-===                                     --                  ++++X+++++++X+XXX+X++++++
+      '''''''''                                                                    '''''''''''''''''''''''''
+      .........                                                                    .........................
+       ===-H-==                                                                     ===-=======-=---=-===  =
+           C
 =---=OOOOOOOOOOOOOMOOOOOOOOOAAXZZZZXZAZZZZ11++===-- -)ZZXAXMMOOOOOAZ1+----  -  -+AAOOOOOOOOOOOOOOOOOOOOOOOOO
+     +++XXXXX+++== =-==+++--                                 -----                 +++++XX+X++++XX++++++++++
+      '''''''''                                                                    '''''''''''''''''''''''''
+      .........                                                                    .........................
+      ==---H-=                                                                      ====--=-====--=======
+           C
 MMMMMOOOOOOOOOOOOOOOOOOOOOOMXAAXXMXAXAAAXZ1)))+===---1XAXAAMMMOMMOX1+=--  --   --+=OOOOOOOOOOOOOOOOOOOOOOOOO
+     +++++XXX+++++-=---+=+-                                   -  -                 ++++X+XXX+X+XXXXX+XXXX+++
+     '''''''''''                                                                   '''''''''''''''''''''''''
+      ..........                                                                    ........................
+      ====-H-=                                                                       ==-=---=-=-----=----==
+           C
 OOOOOOOOOOOOOOOOOOOOOOOOOOMMAMAAAAMMMMAMXZ1ZZ1))+=--=ZAAAXXXXOMMAX1)=--------- - - OOOOOOOOOOOOOOOOOOOOOOOOO
+-=-==++++XXXXX++++-=-=====                                   -                     -+++++X+XXXX+XXXXXX+XX+++
+      '''''''''''                                                                   ''''''''''''''''''''''''
+      ..........                                                                    ........................
+      ===--H--                                                                       ====-=H-H-=-H----=--= =
+           C                                                                               C C   C
 OOOOOOOOOOOOOOOOOOOOOOOOOOMMMMMMXAXMMMMMMMAZZZ11)+==-)XMMAXAAOMOAZ1=-----=-=--- -  OOOOOOOOOOOOOOOOOOOOOOOOO
+-==+==+++XXXX+++++==------                                   - -                   -+++X+XXXXXXXXXXXXXXX+X++
+      '''''''''''                                                                   ''''''''''''''''''''''''
+       .........                                                                    ........................
+       ==----===                                                                     ==-=----H-H-------H=-==
+                                                                                             C C       C
 OOOOOOOOOOOOOOOOOOOOOOOOOMMMAMMMAMMOMOMOMMAXZZ1)+=---)ZAXXZXZXXXZ+=--------=-=--   MOOOOOOOOOOOOOOOOOOOOOOOO
+=+=++++++XXXXX++++==-=-=-          - - -                                            +++X+XXXXXXXXX+++X+X+X++
+   '''''''''''''''                                                                  ''''''''''''''''''''''''
+       ..........                                                                    .......................
+        =--H--==                                                                     ==-=H-H------ ==-=-=-==
+           C                                                                             C C
 OOOOOOOOOOOOOOOOOOOOOOOOOMMMMOMMMMMOOMMOAOAAXX1)+==--+1ZZXZXZXZZ1)==---=-==++=--  -OOOOOOOOOOOOOOOOOOOOOOOOO
+++++++++XXXXXX++++==-=---    -     --  - -                                         -++XXXXXXXX++X+=+++++++++
+'''''''''''''''''                                                                   '''''''''''''' '''''''''
+.................                                                                    .............  ........
+ = =====-HHH--=                                                                      =---H----==-=  =======
+         CCC                                                                             C
 OOOOOOOOOOOOOOOOOOOOOOOOOOAMOOOMMOMOOOOMMMMMZX)1)))=++)1)XXZ11))=+--=++++)+)+=--- AOOOOOOOOOOOOOOOOOOOOOOOOO
++XXXXXXXXXXXXX+++++=------  ---  - ----                                            +++++++X++X+X++-++++XX+++
+''''''''''''''''''                                                                   '''''''''''''  ''''''''
+.................                                                                    .............  ........
+=--H-HHHHH----==                                                                      ====-==-=-=    ==--==
+   C CCCCB
 OOOOOOOOOOOOOOOOOOOOMOOOOMAOMMMMMOOOMOMOMOMMXXZ11Z111XZZAOMMXX11)+=++)+)))++=+== +OOOOOOOOOOOOOOOOOOOOOOOOOO
++XXXX+XXXXXXXXX+++== ----  -     --- - - -               -                        +++++++XXXX+++X+-+++++++++
+'''''''''''''''''                                                                  ''''''''''''''' '''''''''
+................                                                                   . .............  .......
+=-HH-=-HHHHH-H-                                                                      = ==----===-   =======
+  CC   BBBCC C
 AOOOAOOOOOOOOOOOOOOOMOMOMMAMMOOMOOOOOOOOMOMMMMMMAAMMAMAAOMMMAAZXZZ1Z1))1)1)+===  MOOOOOOOOOOOOOOOOXOOOOOOOOO
+ ++= -+++X+X+XX+++== - -     -- -------- -              -                         ++++++++++++++++ -+++++++-
+  '   ''''''''''''                                                                ''''''''''''''''  '''''''
+  .   ..........                                                                  ...............   .......
+       ==-=-=--=                                                                  ===   ==== =      = =====
 +ZM1=ZOOOOOOOOOOOOOOOOMMMAAMMOOOOOOOMMOMMMMMMMMOMOMMAMXAMOMMAZ111XXAZZ11)Z)+==---MOOOOOOOOOOOOOOOO1ZOOOOOOOZ
+      ++XX+XXX++++=---       ------=  -        - -       -                        ++++=+++++====--  =+++++-
+       ''''''''''                                                                 '''  ''''          '''''
+       ..........                                                                  ..  ....          . ...
+       =--=---==                                                                   =     =
 )MOZ=XOOOOOOOOOOOOOOOOOOOOMOOOOOOOOOOOOOOOOOMOMMMOMMMMAXXMAMAZ1)+)+11AZZAOAZ1Z))1OOOOOOOOOOOOOOOOOZZOOOOOOOM
+  =   ++XX+X++X++++=-=---- =-=-+=++++++===== -   -                       -       -+X++++++X+++++++  =+++++-
+       '''''''''''                                                                '''''''''''''''    '''''
+       ...........                                                                .... ..........    .....
+       =--=-==-==                                                                  -== ===-=
 ZOOM1OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMMOOMOOMMOOOOOMMAXZZZZ1Z1)+ZAZXMOZAOOOOOOOOOOOOOOOOOAXOOOOOOMO
+ =+  -++XXXXXXXX++++++=++++==+++++++++++=+=--   -- --  ----=                  =  ++X+++++XX+++++++  -+++++ -
+  '   ''''''''''''''             ' ' ''                                           ''''''''''''''''   '''''
+  .    ............                .                                              ............  ..   .  .
+       =-HHH-H--==                                                                 -=== =--= =  =       =
+         CCC C
 MOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOMOMMOOMOMOMOAX111Z11+- -++1OOAXOOOOOOOOOOOOOOOOOMZMMMMOOMO
+ ++++++XXXXXXXX+++++++++++++++=+++++++++++-=---- - -  -- - = -               -=  ++++++++++++++=++      -- +
+ ''' ''''''''''''''''''' '           ''' '                                        '''''''''''''  '
+ ... ............... .   .                                                        ............
+  =   =----H---= =                                                                 === = == ==
+           C
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMMMMMMMOOOMAXZ))1))=  --))OOOAOOOOOOOOOOOOOOOOOO1ZZZMOOOO
++++XXXXX+X+X+XX+++++++++++++=+=+-=-==+===+=-------        -=-                -+= =++X++++++++++==+-     ---=
+''''''''''''''''''   '                                                        '   ''''''''''''
+..................                                                            .   ............
+ ==-----=-=-=--==                                                                  =- ==== = =
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOMMMMMOOOOOAMXX11)1+   =+-MOOOOOOOOOOOOOOOOOOOOOMXMMOOMMM
++XXXXXXXXXXXXXX+++++++===+=++=-+=+==-+=====+=----- -     --==-                ++=-+++++XXX++++++++=    -=
+''''''''''''''''''''       '                                                  ''   '''''''''''''''
+....................                                                          ..   ...............
+=H-HHHHH-------==                                                              =   ====H--  ==  =
+ C BBBCC                                                                               C
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOMMOOOOOMMMZZ)+===- -+)-ZOOOOOOOOOOOOOOOOOOOOOMZZZAMAAO
++XXXXXXXXXXXXXXX++++++++-+=+++++=+==-+===+-+-------- -  --==-                 =+++=++X+++++==+-++++        -
+''''''''''''''''''''         '                                                 ''  '''''''      ''
+....................                                                           .    ......      ..
+=H-HHHHH---H-HH-=                                                              =     -====       =
+ C BCBCC   C CC
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOMMOOOOOOOOOOOMAZ)+=-   +Z=+AOOOOOOOOOA1+==+=)OOOXZAMOMMOO
++XXXXXXXXXXX++XX++++++++===+=+=++++==--=-=-=-- ----  ----==++=--               +++=+=++-        -+-    -  -=
+''''''''''''''''''''''                                                               '           '
+....................                                                                 .
+ --H-H------==--
+   C C
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOMMMMOMMAMOMMOOOOOOOMMZ)==    )Z+-+OOOOOMOOOMAZZZX)-=+1AAOMOOOAA
++++++++XXXXX+++++=+++===---=-====+=+=--=--- -    -    -  --===--               --+=- ---             - +==
+'''''''''''''  ''  ''
+.... ........  .   .
+==   ==-----
 OOOZ)OOOOOOOOZ+AOAOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOOOOOOOOOOOOOOOOOAZ)=--  1X)--MOOOOMOMOOOOMMOOX++AOOOOOOA)A
++++  =++XXX+=   - -+++++++++++++=+++++++--- -=-------------==+++--              +++= - +++=  +=    =--+++
+''    ''''''       ''' ' ' '''   ''''                        '                   ''      '             '
+..    ......       ..            ..                                              .
+ =     =---=
 OO1==)AOOOOOZ)=++11OOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOOOOMOOOOOOOOOMZ1=- -1MZ--OOOOOOOOOOOOX1XX+=XOOOOOOO1ZO
++-     ++++-       +++++++++++++++++++++++==-=- -==+-==-- -+++++-=-            -++===+==++-       ++++++-  +
+'       '''        ''''    '''   ' ''''''                                       ''      ''         ' '''
+        ...         .              . .                                          ..
+         =
 Z)+XX1)ZAOM)ZOO1++-MOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOOOOOMZ+   ZMA)-XOMMOOOOOOOZ1+ZM))OOOOOOOXOOO
+         =   --     ++++=+++++++=+++++++++++++==-+=+=++=- -==+++==--            +  =+++++-       =+++++- -++
+                    '''  '''' '    '''''''''                                           ''         '''''    '
+                     .               ... .                                             ..         .....    .
+                                                                                                   =
 +)AOOOZ)=)+)OOOOMZ==OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOAX1- -)OM1=+Z1XOOOOOOAXO1XA1MOOOOOOOOOOO
+   +++      -+++    -+++=+++++++++++++++++++=+===+++++==-=-++++++=-=       -       +==-==  -     +++++++++++
+   ''        ''      ''    ' ' '   ' ' ''''          '       '                                   '''''''''''
+    .        ..      .                 ...                                                       .... .  ..
+             ==                                                                                  ====    =
 1OOOOOOA+=)OOOOOOM=-=OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOM1-  =OOZ)--=1OOMOA1XOOA)1ZOOOOOOOOOOOO
+ -+++++    =+++++    =++--==++=+++++++=+++++=+++++++++++-==+=+=+==---      --      =- -   ++    -+++++++++--
+  '''''     '''''                      ''' '   ''    '                                     '     '''''''''
+  ....      .....                                                                                .... ....
+   ===      ===                                                                                        =
 OOOOOOOOOOOOOOOOOO)--OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMZ-- -OOMZ=-=ZMOOOOMOOOMXOOOOOOOOOOOOOA
+++++++X+++++++++++   -++++++++++++++++++++++++++++++++++=+++++++=+==-      -=       =++- +++  --=++++++++++
+'''''''''  ''''''     '''' ''''''''''' ''''''''''''''      '''                       ''  '''     ''''''''''
+ .......   ......      .         ... . . ..........                                  ..   ..     ....  ....
+ =====-=   === ==                                                                    =    =        ==    =
 OOOX1OOOOOOOOM1OOO)--MOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMX= - 1OMA)--1MOOAXOOOOXOOOOOOOOOOOOOOO
++X+  -++XX+X+  -++    ++++++++++++++++++++++++++++++++++=+++++++++++=       -       -=  -+X+ -=-++++++++XXX+
+'''   '''''''   '     '''''''''''''''''''''''''''''''' ' ' '''''''                       '''    '''''''''''
+...   .......   .      ..... . .......................      ..                           ...     ..........
+=-     =--=-           =           =   =       = ===                                      -=     =     =-HH
+                                                                                                         CC
 OO1---ZOOOOOZ=-+XA)--MOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOM)----)MMX+=+MOOAOOOOOMMAOOOMOOOOOOOOO
++=     ++X++          +++++++++++++++++++++++++++++++++++++++++++++++=              -- -++++   +++ =+++XXXX+
+'      ''''           ''''''''''''''''''''''''''''''''''''''''''''''                     '''   '''   '''''''
+.      ....            ..... ......... ... ........... . . ........                      ..     ..   .......
+        =H=            = =         =         =                                           =      =    ==--H-
+         C                                                                                               C
 A=  -- ZOOM+-   -+---1MOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOM1-----11A1=+MZMMOOOOOOOXOOOZOOOOOOOOO
+        =+             ++++++++++++++++++++++++++++++++++++++++++++++=                 -=+++++ ++- +++++X+++
+         '             ''''''''''''''''''' '''''''''''''''''''''''''                       ''  ''  '''''''''
+                       ......... ..... . .   ...........   .........                       ..  ..  ........
+                                                 =         =   =                           ==   =    ===-=
 ----  -=+1+ -- - --=))+MOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOZ====- =ZX=-1AOMMMOOOOOOOOXMOOOOOOOOO
+                        ++++++++++++++++++++++++++++++++++++++++++++++-              -   +XXX+=++  +++++++++
+                        ''''''''''''''''''''''''''''''''''''''''''''''                   ''''' ''  '''''''''
+                         ............................................                    ..... ..  .........
+                             = =   ===== = =   ===     =          =                       -HH= ==  ======
+                                                                                           CC
 -------==++====++1ZOOOZZOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOM)=-=---+Z1==OOMOOOOOOOOOOXMOOOOOOOOO
+                   -=-  -+++++++++++++++++++++++++++++++++++++++++++++=             -+ -+XXXX++++  +XX+++++X
+                         '''''''''''''''''''''''''''''''''''''''''''''                  '''''' ''  '''''''''
+                         ............................... ............                    ..... ..  .........
+                         =     = == ==   ===== =  ==             = =                     -HHH= ==  =--=    -
+                                                                                          BBB
+                                                                                            V
 OOOOOOOOOOOOOOOOOOOOOOOXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMZ+=+=-- =1==)MOOOOOOOOOOOZOOOOOOOOOO
+----=++++++++++++++XXX+ -++++++++++++++++++++++++++++++++++++++++++++++               -++XXXX+-++ -XXX++++XX
+       '''''''''''''''   ''''''''''''''''''''''''''''''' ' '''''''''''                 ''''''' '   '''''''''
+        ..............   .............................     ...........                 ....... .   .........
+               = ==---         = = =  === == =     =                                    =HHHH=     -HH== =-H
+                                                                                         CBBC       CC     C
 OOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMZ))++=- =)=-=OOOOOOOM)OM1MOOOOOOOOO
+XXXXXXXXXXXXXXXXXXXXXXX- ++++++++++++++++++++++++++++++++++++++++++++++=              -+XXXXX  -   ++++++XXX
+'''''''''''''''''''''''  ''''''''''''''''''''''''''''''''''''''''''''''                ''''''      '''''''''
+.......................  ...............................  .. .........                 ......      .........
+--HHHHHHHHHHHHHHHHHHHH-    =       =  =  =     ===                   =                 =HHHH-      ======-H-
+  CBCBCBBBCBBBBBBBBBBB                                                                  CBBB              C
+         V       V V                                                                      VV
 OOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOAZZ11==- -)+ 1OOOOOOA+OMZMOOOOOOOOO
+XXXXXXXXXXXXXXXXXXXXXXX- +++++++++++++++++++++++++++++++++++++++++++++++-              +XXXX+  -   +++++++++
+'''''''''''''''''''''''  ''''''''''''''''''''''''''''''''''''''''''''''                ''''''      '''''''''
+.......................   .... ......................... . . .........                 ......      ... .....
+-HHHHHHHHHHHHHHHHHHHHHH        =   ====   =    =                                       =-H--=           ====
+ CBBBBBBBBBBBBBBBBBBBBC                                                                  C
+     V           V V V
 OOOOOOOOOOOOOOOOOOOOOOOOXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMXZZ1)+=   -=-AOOOOOM1MMZOOOOOOOOOO
+XXXXXXXXXXXXXXXXXXXXXXX- +++++++++++++++++++++++++++++++++++++++++++++++-               ++++=     =+++++++++
+'''''''''''''''''''''''  ''''''''''''''''''''''''''''''''''''''''''''''                 '''        '''''''''
+.......................   ..............................  ............                  ...        ..  .....
+-HHHHHHHHHHHHHHHHHHHHHH           = === === == = = = =          =                        ==        =     ==
+ CCCBBCBBBCBBBCBCBBBBBC
+                     V
 OOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMAAA1)==-  ==-XOOM1ZXOMXOOOMOOOOMA
+XXXXXXXXXXXXXXXXXXXXXXX+ +++++++++++++++++++++++++++++++++++++++++++++++=-               =-    =  -+= -===
+'''''''''''''''''''''''   '''''''''''''''''''''''''''''''''''''''''''''                            '
+.......................   .......................................... .
+-HHHHHHHHHHHHHHHHHHHHHH   ===     = == ===== =======       = ==
+ BBBBBBBBBBBBBCBBBBBBBB
+     VVV V   V     V V
+                   A
 OOOOOOOOOOOOOOOOOOOOOOOOAOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMMMX1++-  -=--1XM1)1MX1Z111)Z)=--
+XXXXXXXXXXXXXXXXXXXXXXX+ =+X++++++++++++++++++++++++++++++++++++++++++++==
+''''''''''''''''''''''''  '''''''''''''''''''''''''''''''''''''''''' ''
+........................  .........................................  .
+-HHHHHHHHHHHHHHHHHHHHHH    -        ======   == == =       = = ===
+ BCBBBBBBBBBBBBBBBBBBBB
+        VV     V VVVVVV
+                   A
 OOOOOOOOOOOOOOOOOOOOOOOOAOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMAMX11)---  +-=1Z1)+1111+++==--
+XXXXXXXXXXXXXXXXXXXXXXX+ ++X+++++++++++++++++++++++++++++++++++++++++++=---
+''''''''''''''''''''''''  ''''''''''''''''''''''''''''''''''''''''''
+.......................   ................................ .......
+-HHHHHHHHHHHHHHHHHHHHHH    -=      =  === ===   =            =
+ BBBBBBBCBBBBBBBBBBBBBB
+     V     V VV  V V  V
 OOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMAAXZZZ)=-  -=- )1+=)))))++-=---
+XXXXXXXXXXXXXXXXXXXXXXX+ ++++++++++++++++++++++++++++++++++++++++++=-----=
+'''''''''''''''''''''''' '''''''''''''''''''''''''''''''   '''''''
+........................  ....   .....................     ..... .
+-HHHHHHHHHHHHHHHHHHHHHH   =          =   = = = =  =         =
+ CBBBBBBBBBBBBBBCBCBBBC
 OOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOMMMMXAXX1+-   ---=1)+1ZZ)+++----
++XXXXXXXXXXXXXXXXXXXXXX- +++++++++++++++++++++++++++++++++=++++++++=---- -
+'''''''''''''''''''''''  ''''''''''''''''''''''''''''' '   '''''''
+.......................  ........  ...................     .....
+=HHHHHHHHHHHHHHHHHHHHHH    =           = ==   =
+ CCBBBCBCBBBCBCBCBCBBBC
+         V
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMMMOMMXMXZ=--  ---+)+)))++-==- -
++XXXXXXXXXXXXXXXXXXXXXX+=+++++++++++++++++++++++++++++++++=++++++++=-----    -
+'''''''''''''''''''''''' ''''''''''''''''''''''''''''''    '''''''
+.......................  ..... . ... ........... .   .      .....
+=HHHHHHHHHHHHHHHHHHHHHH   ===          =                    ===
+ CCBBBBBBBBBBBBBBBBBBBC
+     V V VVV V V VVVVV
+             A
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOMMMOAX1- -+=  -11111))++==
+XXXXXXXXXXXXXXXXXXXXXXXXXXX+++++++++++++++++++++++++++++++=++X++++++++++=--- -   -
+'''''''''''''''''''''''''''''''''''''''''''''''''''''' '   ''''''''
+.................................................... .      ....
+-HHHHHHHHHHHHHHHHHHHHHHH-H-==      ==          =   =        =-==
+ BBBBBBBBBBBBBBBBBBBBBBC C
+     VVVVVVVV  V  VV V
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOM1=-XO= =-=ZMZZZZ))===---
++XXXXXXXXXXXXXXXXXXXXXXXXX+++++++++++++++++++++++++++++++===++++++++++++==---------     -
+'''''''''''''''''''''''''''''''''' '''''''''''''''''''''     '''''''''
+............................ ..... ...................       ...  .
+=HHHHHHHHHHHHHHHHHHHHHHHHH==                 =                =
+ BBBBBBBBBBBBBBBBBCBBBCBBB
+     V V   V     V
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOMOOOOOMMX))OOX++--=AXX111)+)=+--
+XXXXXXXXXXXXXXXXXXXXXXXXXXX++++++++++++++++++++++++++++++++=-+++++++++=+ --= --=--     ++
+''''''''''''''''''''''''''''''''''''''''''''''''''''''''''     ' ' '                   ''
+........................................................                               ..
+-HHHHHHHHHHHHHHHHHHHHHHHHH-=        =    =   =                                          =
+ CBBBBCBBBBBBBBBBBBBBBBBCB
+         V   V       V
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOMMOOOOMMXZMOOO))= -ZXZ11))+1+++=
++XXXXXXXXXXXXXXXXXXXXXXXXX++++++++++++++++++++++++++++++++++==-+++++++=+== -  ----     +++
+''''''''''''''''''''''''''''''''''''''''''''''''''''''''''       ' ' '                 '''
+............................ . . .......................                               ...
+=HHHHHHHHHHHHHHHHHHHHHHHH-=              =   =   ===                                    =
+ BBBBBBBBBBBBBBBBBBBBBCBC
+ V      VVV
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO)Z1--ZOOOOOOOOOOOM
+XXXXXXXXXXXXXXXXXXXXXXXXXX++++++++++++++++++++++++++++++++++++++++++++++++==-+++++==-=++++      +++++++===-
+'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '     '        ''       '''''
+............................................................   .........                 .       ...
+-HHHHHHHHHHHHHHHHHHHHHHHH-   ==       = =====  ====       =      =  =                              =
+ BBBBBBBBBBBBBBBBBBBBBBBB
+   VV  V V V V V VVVVVVVV
+                 A AAA A
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO--=-+Z)--OOOOOOOOOOOO
++XXXXXXXXXXXXXXXXXXXXXXXX++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++         -++X++++++++
+'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''      ' '''''           '''''''''''
+............................................................ . .........         .  ..           ...........
+=HHHHHHHHHHHHHHHHHHHHHHHH=         ==     ==   ====  = =       = ==                              ==-======
+ BBBBBBBBBBBBBBBBBBBBBBBC
+    V  VV VVVVVV VVVVVVV
+               A A A A
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOZ11--1A)-)OOOOOOOOOOO
+XXXXXXXXXXXXXXXXXXXXXXXXX++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++X+          ++XX+++++++
+'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' ''''''''''          '''''''''''
+................................ .........................................       ......          ..........
+-HHHHHHHHHHHHHHHHHHHHHHH-= =   =   =    =    === == =======    =    ==             ==-            =--==  =
+ BBBBBBBBBBBBBBBBBBBBBBB
+  VV V VVV VVVVVVVVVVVVV
+                 A A A
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOZ) =AX=-OOOOOOOOOOO
++XXXXXXXXXXXXXXXXXXXXXXXX++++++++++++++++++++++++++++++++++++++++++++++++++++++++++XXXX+-        -++++--=++-
+'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '  '''''''''           '''    '
+.............................. . .........................................      .......            ..    .
+=HHHHHHHHHHHHHHHHHHHHHHH-  =               === = == ==== ===== = ==== =          = HHH-
+ BBBBBBBBBBBBBBBBBBBBBBB                                                           CCB
+     V V V VVVVVVVVVVVVV
+                 A
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOA1  ZA) =AMOOMOOOOO
+XXXXXXXXXXXXXXXXXXXXXXXX+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++XX+-           -- =++++
+'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''                '''
+.......................... ... ...........................................     .........                 .
+-HHHHHHHHHHHHHHHHHHHHHHH                     === === == ====  == = ==  =        = ===H-
+ BBBBBBBBBBBBBBBBBBBBBBB                                                             C
+     VVVVV VVVVVVVVVVVV
+               A AA
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO)1OOOOO1- -XX+--111)1ZAMM
+XXXXXXXXXXXXXXXXXXXXXXXX+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  +++=-
+'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''  '''
+........................    ..   ..........................................  ......  ..
+-HHHHHHHHHHHHHHHHHHHHHH-                 = ====  = = =  =====  = = = =   =   =  ==
+ BBBBBBBBBBBBBBBBBBBBBB
+   VVVVVVVVVVVVVVVVVVV
+     AA          A A
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOZMOOOOM)-  1OX+-+))=+====
++XXXXXXXXXXXXXXXXXXXXXX+++++++++++++++++++++++++++++++++++++++++++++++++++++++++XX+  +++=      -
+'''''''''''''''''''''''''''''''  ''''''''''''''''''''''''''''''''''''''''''''''''''  '''
+........................             . . ..........................................  ..
+=HHHHHHHHHHHHHHHHHHHHHH                     == ========= = === ===== =  =    = =--
+ BBBBBBBBBBBBBBBBBBBBBC
+  VVVVVVVVVVVVVVVVVVVV
+   A AA  A   A   A A
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO1--  -AM1-=ZMAAX1++
+XXXXXXXXXXXXXXXXXXXXXX+++++++++++++++++++++++++++++++++++++++++++++++++++++++++XXX++++++-
+''''''''''''''''''''''''   ' ''''' ' ''''''''''''''''''''''''''''''''''''''''''''''''''
+.......................            .   ...............................................
+-HHHHHHHHHHHHHHHHHHHHH=                      ====  ==================  = = = ==HH-
+ BBBBBBBBBBBBBBBBBBBBB                                                         CC
+   VVVVVVVVVVVVVVVVV V
+           A A A
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOA)=-- - ZOM1 )OOOOOMA
++XXXXXXXXXXXXXXXXXXXXX++++++++++++++++++++++++++++++++++++++++++++++++++++++++XXXXX+++-         -    =++=-
+'''''''''''''''''''''' ''''''' '''''''''''''''''''''''''''''''''''''''''''''''''''''''
+......................   . . . ...    ...............................................
+=HHHHHHHHHHHHHHHHHHHH-                 = =       = ====== ==============  =  =-HHH-
+ BBBBBBBBBBBBBBBBBBBB                                                          BBC
+   V VVVVV VVV VVVVVV
+       A       A A A
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMX1)+=+-- +OOA=-OOOOOOO
+XXXXXXXXXXXXXXXXXXXXXX-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++            --   -+++++-
+'''''''''''''''''''''' ''''''' ' ''''''''''''''''''''''''''''''''''''''''''''''''''                   '' '
+......................   .. .       .... ..................................... . .                    ..
+-HHHHHHHHHHHHHHHHHHHH-   =                   = = =   ====== == ========== ===  =
+ BBBBBBBBBBBBBBBBBBBB
+   VVVVVVV VVVVVVVVVV
+             A   A A
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO1OMMOOMXZZ1111+=--MOO1-1OOOOOO
+XXXXXXXXXXXXXXXXXXXXXX+++++++++++++++++++++++++++++++++++++++++++++++++++++XX- =  --             +-   +++++-
+''''''''''''''''''''''''''''''''   ' ''''''''''''''''''''''''''''''''''''''''                          ''''
+...........................          .     ..................................                          ....
+-HHHHHHHHHHHHHHHHHHHHH   =                   == = == === = ===== ===== = ==H-                          =
+ BBBBBBBBBBBBBBBBBBBBB                                                     C
+    VV VVV VVVVVVVVVV
+       A   A     AA
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMX1)ZZAXX)=--1OOMZ=MOOOOO
+XXXXXXXXXXXXXXXXXXXXXX++++++++++++=++++++++++++++++++++++++++++++++++++++XXXX+++XX+              =-    +++++
+'''''''''''''''''''''''  ''''''''  ''''''''''''''''''''''''''''''''''''''''''' '''                     '''''
+.......................  ... . .       . ... ................................. ...                     .....
+-HHHHHHHHHHHHHHHHHHHHH=   =                     =  = =========   = ======HHHH= =--                     =  =
+ BBBBBBBBBBBBBBBBBBBBC                                                   CCCB
+  VVVVVVVVVVVVVVVVVVV
+     A   AAA A  AAAA
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMAMAMMOMA1+- =OOOM+=OOOOO
+XXXXXXXXXXXXXXXXXXXXXX+++++++++++++++++++++++++++++++++++++X+++++++++++XXXXXXX+XXX+      -       +==   +++++
+'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''                    '''''
+........................  ... .  .....   ... ......................................                     ....
+-HHHHHHHHHHHHHHHHHHHHH=    =                     == ==== ==-== = === ==--HHH-- -HH                      == =
+ BBBBBBBBBBBBBBBBBBBBC                                                   BBC    CB
+ VVVVVVVVVVVVVVVVVVVV
+       AAA A   A A A
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOXZ1XOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMOOOOOMZ)- -OOOOX=MOOOO
++XXXXXXXXXXXXXXXXXXXXX++++++-    ++++++++++++++++++++++++++++++++++++++XXXXX+++X+X+=  -+=--      =++-   ++++
+'''''''''''''''''''''''''''      '''''''     ''''''''''''''''''''''''''''''''''''''               ''    ''''
+..........................       .....        .....................................                     ....
+ -HHHHHHHHHHHHHHHHHHHH =          ===          =   =  == = ===== ======--HHH===-=H=                      ===
+  CBBBBBBBBBBBBBBBBBBC                                                   BBB     C
+   V VVVVVVVVVVVVVVVV
+         A       AAA
 MMOOOOOOOOOOOOOOOOOOOOOOOOOOOOX+AOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMZ1-- OOOOOZ+MOOO
+  -++++XXXXXXXXXXXXXXX+++++++-   +XXX+--=++++++++++++++++++++++++++XXX+++XXX+++++X++==++++-      -+++-   +XX
+    '''''''''''''''''''''''''    '''''   '''''''''''''''''''''''''''''' ''''''''''''   '          ''     '''
+    .........................    .....   .............................. ...........                .     ...
+      =--HHHHHHHHHHHH-==         =-H-            = ========= = = ==--H   HHH   ==-=                      =--
+         CCBBBBBBBBBB              C                                 C   CBB
+           V V VVVVV
+             A A   A
 +====)+))AMOOOOOOOOOOOOOOOOOOOOOOOOOOO) -OOOOOOOOOOOOOOOOOOOOOOOOOOOOOO MOOOOOOOOOOOOOOOOOOOX1==-OOOOOO+-OOO
+           -++++XXXXX++++++++++++XXXX+   ++++++++++++++++++X+++++XXXXX=  XXX=+++++++++++=+--     -++++-  +++
+             '''''''''''''''''''''''''   '''''''''''''''''''''''''''''   ''' ''''''''' '          '''     ''
+             .........................    ............................   ... .......              ..      ..
+              ==-HHH-= =       ==--HH     ====   ===== ====-=====--HHH   -H- ==  ==                       ==
+                 CCC               CC                              BCC    B
 1)++)1++=)==-=-1AMOOOOOOOOOOOOOOOOOOOOOOOOOOOOZXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMZ)=-XOOOOOA=+OO
+                  -+++++++++++++++XX+++--++X++  +++++++++++++++++XX+XX+++XX+-++X++++++++++--      ++++=   =+
+                   ''''''''''''''''''''  '''''   ''''''''''''''''''''''''''' '''''''''''          '''      '
+                   ..  ................  .....   ..........................  ..........            ..      .
+                    =  ===== =====--==   ==-=    ======= ===== ==--=--= =HH  ==-= ==                       =
+                                                                         CB
 -- -11=  1++==---- -+OOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMZ)=-)OOOOOOZ-1O
+                     -+++++++++++++X+++++XXXX+- +XX++=-++X++++-++XXXXXXXXXX-=X+XX++X++++=+--      +++++-   +
+                       '''''''''''''''''''''''  '''''  ''''''  ''''''''''''  ''''''''''            '''     '
+                       .......................  .....  ......  ............  ..........            ...     .
+                         ==========-== ==--HH=   H-==  ==-===   =HH-HHHHHHH  -=--==-                =
+                                           BC    C               CC CBBBCBC
      =   =)+)+-==+=--MOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOM1OOOOOOA=MOOOOOOOOOOO1AOOOOOOOOOOOOOOMMZ1+=+OOOOOOM)=O
+                      -++++++++++XX+X++XXX+XXXXXXXX++  +XXX++   +XXXXXXXXXX  +XXXXXX++++++=       =+++++   +
+                       ''''''''''''''''''''''''''''''  ''''''   '''''''''''  '''''''''''           ''''    '
+                        .............................  ......   ...........  .........             ....    .
+                          =======--=-==---=H-H--HHH=    -H-==   =HHHHHHHHH-  =---H--=                =
+                                           C C  CBB      C       BBBBBBBBB       C
+                                                                   V VVV V
           )Z))==-=1MXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMAOOOOOOOOOOOOOOOOOOOOOO+)OOOOOOOOOOOOOOOMA)=-=OOOOOOM1-M
+                     =-++++++++X++XXXXXXXXXXXXXXXX+  ++++XXXXX+XXXXXXXXXXXX  +++XXXX++++++--      -+++++
+                        '''''''''''''''''''''''''''  ''''''''''''''''''''''   ''''''''''           '''''
+                         ..........................  ......................   ........             ....
+                           ====-==-------------HHH=  === -HHH-=HHHHHHHHHHH-    =----=
+                                               CCC        CBC  CCBBBBBBBBB
+                                                                  VV VVVVV
           1MA1))==)OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO+ZOOOOOOOOOOOOOOOOMZ)==MOOOOOMX)1
+                   -=+=+++++++XXXXXXXXXXXXXXXXXX+++XXXXX++XXXXXXXXXXXXXXXX+  ++XXXXXX+=+++=+-      +++++
+                         ''''''''''''''''''''''''''''''''''''''''''''''''''  ''''''''' '''         ''''
+                         ..................................................  .........             ....
+                            ==-----H-H-HHH-H-HH-===HH--- =HHHHHHHHHHHHHHHH=   =--H-HH=             ===
+                                   C C CCC C CC    CC     CCCBBBBBBBBBBBBB       C CC
+                                                                 V VVVVVVV
+                                                                 A   A
     --    +OO1)==++MOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO=1OOOOOOOOOZMMOOOOOZ)+-XOOOOOZZ))
+           --       ++++++++++++++XX+XXXXX+++++++++XXXXX++XXXXXXXXXXXXXXXX+  ++XXXXX++   --=--     ++++-
+                    '''''''''''''''''''''''''''''''''''''''''''''''''''''''   '''''''              ''''
+                     ..... ................................................   .......              ...
+                             =====--=--H--=========HHHH-==-HHHHHHHHHHHHHHH=    --H--=              ===
+                                       C           CBBC    BBBCBCBCBBBBBBB       B
+                                                                   VVV VV
     -)1= -=MOX)1+))MOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO-)OOOOOOOZ-  -AOOOOAZ)=ZOOOOXZX)1
+            -       ++++++++++++++++++++++++++++++XXXXXXX+XXXXXXXXXXXXXXXX+  -+XXXX+      =+=-     +++=
+                    '''''''''''''''''''''''''''''''''''''''''''''''''''''''   ''''''               '''
+                     ......................................................   .....                ...
+                     =======   ==    ====    == ==-HHH-H-=HHHHHHHHHHHHHHHH     --H-                =
+                                                   BBB C  CBBBBBBBBBBBBBBB       B
+                                                                   VVVVVVV
+                                                                       A
      =1)-=+1MAZ1)Z)XOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO ZOOOOOO+-    +MOOOMZ1++OOO1=-=)1
+                    =+++++++++++++++++++++++++++++XXXXXXXXXXXXXXXXXXXXXXXX=  ++XXX+        +=-     ++-
+                     ''''''''''''''' '    ''''''''''''''''''''''''''''''''   ''''''                ''
+                     .............         ...............................    .....                ..
+                     ===========            = ====-HHHHH-H---HHHHHHHHHHHHH     -HH
+                                                   BBCCC C   CCBBBBBBBCCBB      CC
+                                                                 V V V
      -+Z1++1AOZ)+11XOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO+AOOOOOO=     1OOOOOAZ1)OOA)=- -Z
+             -      =++++++++++X++++++=+=+++++++++XXXXXXXXXXXXXXXXX++XX+XX-  ++XXX=       -++=-    ++
+                     '''''''''''''''''    ''''''''''''''''''''''''''''''''   '''''         '       '
+                     ................      ...............................   .....
+                     ==========-==         == == =-HHHHHHH----HHHHH= --=HH    =-HH
+                                                   BBBBBBC    CBBBB     CC      CC
+                                                   V           V V
       -Z1))+1MA1))+MOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOX=ZOOOOOM---   =OOOOOOZ1)OOZ=-- -Z
+                    +++++++++++++++++++++++++++++++XXXXXXXXXXXXXXXXX+XXXX+   ++XXX        -++=--   =-
+                    ''''''''''''''''''''''''''''''''''''''''''''''''''''''    ''''         '
+                     ..................    ...............................    ....
+                     = == = = =  = ===           ==HHHHHHH-HHHHHHHHH=HHHH=     HH-
+                                                   BCCCBCC CCCCBBBBC CCCC      CC
+                                                               V
       -1Z1+11MMX11)OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO)-ZOOOOOZ=--   -AOOOOMAZ1OOZ== -=M
+                   -++++++++++++++++++++++++++++++XXXXXX+XXXX+XXXXXXXXXXX+   ++XX+         ++==    +=
+                    ''''''''''''''''''''''''''''''''''''''''''''''''''''''    ''''         '
+                    ......................................................    ....         .
+                     === ========  === = ====    =-HHHH-=H-H-=-HHHHHHHHHH     =HH=
+                                                   BBBC  C C   BBBBBBBCBC      CC
+                                                   V             V V V
        )X)=1)AMAX11OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO)=AOOOOOZ=      MOOOOOAXAOOM1- =+O
+                   ++++++++++++++++++++++++++++++++XXX+XXXX+++XXXXXXXXX++=   ++XX+         +++=-   ++      -
+                   '''''''''''''''''''''''''''''''''''''''''''''''''''' '    '''''         '''     ''
+                    ............................ ...................... .    .....          ..     .
+                    ========  =  ===   = = ===   ==HHH=--HH= =-HHHHHHH-      ==HH=
+                                                   BBC   CC    BBBBBBB         CB
+                                                                 VVV V
        ))1=++1MMXZAOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO11MOOOOOZ=--    =OOOOOMAAOOA11)11O
+                   +++++++++++++++++++++++XXX++++++XXXXXXXXX+++XXXXXXXX+++   ++XX+         =+++-   ++      +
+                   '''''''''''''''''''''''''''''''''''''''''''''''''''''''   '''''          ''     ''
+                   ......................................................    .....          ..     .
+                    == ======= =  =  = = =---=    =HHH-HHHH- ==HHHHHHHH==    ==HH=
+                                                   BBC CCBB    BBBBBBBC        BB
+                                                         V       VVVVV
+                                                                     A
 -      =)1))+1AMXXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO1=XOOOOOX+- -    AOOOOMMOOOZ)1MXAO
+                  -++++++++++++++++++++++X+X+X+++++XXXXXXXXX+++XXXXXXXXXX+   ++XX+          +++-  -+=      +
+                   '''''''''''''''''''''''''''''  ''''''''''' ''''''''''''   '''''           '     '       '
+                   .............................  ........... ............    ....           .     .       .
+                    = == ===== = =  =   =-=-=-     ----HHH--   HHHHH-HHHH=    =HH                          =
+                                                       CCC     CBBBC BBBC      CC
+                                                                 V
 =      -)Z1+)1XOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOZ1+=)AOOOOOOOOOMOOOOOOOOOOOM1MOOOOOZ=- -    ZOOOOOMOOMZ)MOXMO
+               +-=++++++++++++++++++++++++XXX+-      ++XXXXX+- XXXX++XXXX+   ++XX+          +++=- =+    -  +
+                  ''''''''''''''''''''''''''''       ''''''''  '''''''''''   '''''           ''    '       '
+                   ...........................        .......  ...........   ....            .     .       .
+                     ==  = = ==   = =   ==---          --HHH=  -HHH==HHHH=    =HH                          =
+                                                         CCC    CBC  CBBC      CC
 +       +MX+-1MOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOXX+-    -MOOOOOOOOOOOOOOOOOOOMXMOOOOOZ+=      ZOOOOOOOOZ1ZOOAOO
+               ++++++++++++++++++++++++++XX++          +++XX++-=+XX++XXXX-   ++XX+          ++++--++   =- -+
+               ''''''''''''''''''''''''''''''          ''''''   '''''''''    ''''            '             '
+               .............................           ......   .........    ....            .             .
+               ==========   = == =      =--=            ==--     H-==HHH-    ==HH                          =
+                                                                 C   CBB       CC
+                                                                       V
 )       -ZX+=ZOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOM1+=-    -ZMOOOOOOZAOOOOOOOOOOOOOOOOOZ+=--    )OOOOOOOOZAOOOMOO
+              +XXX++++++++++++++++++++++XXX++            ++++++  XXXXXXXX+=-++XXX+          =++++++-  =+= ++
+              ''''''''''''''''''''''''''''''             ''''''  '''''''''  ''''''           ''' ''    '  ''
+               .............................             ......  .........   ....            ..  ..        .
+               ---== = === = == =  =   =-H-=              ====   -HHHHHHH    =-HH                          =
+                                         C                        CBCBBBC      BC
+                                                                       V
 Z-      -1X1=1MOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOA1+= - ---)OOOOOOXZOOOOOOOOOOOOOOOOOX)-- -    AOOOOOOO1AOOAZOO
+               ++++++++++++++++++++++++++XXX++           ++X+++  XXXXXXXXX+++XXXX+           ++++++=  ==  ++
+               ''''''''''''''''''''''''''''''            ''''''  '''''''''''''''''           ''''''        '
+               ..............................            ......  .................           ... ..        .
+               ========  ======  ===  ===-H-=             =-===  --HHHHHHH===HHHH                =         =
+                                          C                        BBBBBCB   CBBB
+                                                                     VVV       V
 A=       1XA))ZOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOZ1-  - - =OOOOOOOOOOOOOOOOOOOOOOOOOZ)=- -    )OOOOOOOOOOOZXOO
+               +++++++++++++++++++++++++XXXX++-          ++XX++=+XXXXXXX=++X+XXXX+           +++++++--+-  ++
+                ''''''''''''''''''''''''''''''            ''''' '''''''' '''''''''           '''''''  '   ''
+                ..............................            .....  ....... .........            ......       .
+                 === ===   =   =   ==  =--HH=              HH==  -HHHH--  =-=-HHH                ==        =
+                                          CC               CC     CBCC        CBB
 A1       +ZX)11OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOM)= --=-- OOOOOOOOOOOOOM))MOOAOOOOOA)=---    +OOOOOOOOOOOMMOO
+               -+++++++++++++++++++++++XXXXXXX+          -+XXX+++XXX++    += =+XX+           +++++++-++=  ++
+                '''''''''''''''''''''''''''''''           ''''''''''''    '   ''''           ''''''  ''   ''
+                 ..............................           ...........     .   ....            .....  ..   ..
+                   == ===     == = = ==--HHH--            =---===-HH=         =HH             =      ==    =
+                                         BCC                      BC           CC
 XZ-      +ZM111OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOZ1+  -=-=)OOOOOOOOOOOOZ)--+1)1MOOOOO1+=-      OOOOOOXMOOOMMOO
+               -+++++++++++++++++++++++XXXXX+X+          -+XXXX++X++-         ++X+-          -+++++  +++  ++
+                '''''''''''''''''''''''''''''''           ''''''''''           '''            ''''   '''  ''
+                ...............................           ..........           ...            ....   ..   ..
+                 =      =  = = =  =  ==--HH-=-             ----==-=            =-              =      =    =
+                                         CC
 XM1-     -XMXZ1OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOZ1= -==-=+OOOOOOOOOOOMM)-   -+OOOOOOZ1+=-     OOOOOOAOOOO+=MO
+               +++++++++++++++++++++++XXXXXXX++          -+XXXXX++++         =++X+-          -++++= -++-   +
+                '''''''''''''''''''''''''''''''           ''''''''''          ''''            ''''   ''    '
+                ..............................            ..........          ....            ....   ..    .
+                   = === == ==    = ==-----H-=            =--HH-===            =-=             =     ==    =
+                                           C                 BC
 1XX-      ZOMZZOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOXZ)- -====OOOOOOOOOOOOOO+  -- +OOOOOX1)==-    OOOOOOMMOOM+ XO
+           -   ++++++++++++++++++++++++XXXXXXX+          -++XXXX+X++++=       +XX+=          +++++-  ++    +
+               ''''''''''''''''''''''''''''''''           ''''''''''''         '''            ''''   ''    '
+                ...............................           ............         ...            ....   ..    .
+                ==== ====        = ====HHH-H--             =-HH-=-==           -H=            =       =
+                                       CCC C                 CC                 C
 1AX-     -)MMMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOZ11---=+==MOOOOOOOOOOOOO1- -----OOOOAZ1)+=---)OOOOOOAMOOOZXOO
+              -++++++++++++++++++++++++XXXXXXX+           +++XXX+XXXXX+        +XX+          +++++=  ++-  ++
+               ''''''''''''''''''''''''''''''''           '''''''''''''        ''''          '''''   ''    '
+               ................................            ............         ...          ....    ..    .
+               ==== = = ==== ==  =  ===--H---H             ==---=HHHHH          -H                   =     =
+                                         B   C                   BBBCC           C
 ZMM+-     =OMXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOAZ1- ===-=AOOOOOOOOOOOOOM+  ---=OOOOOMMMA)ZX1XOOOOOOMMOOOXOOO
+           -  -+++++++++++++++++++++++++XXXXXX+           ++++XXXXXXXXX        -++++         +++++=  +++ -++
+               ''''''''''''''''''''''''''''''''            ''''''''''''         '''          '''''   ''   ''
+               ................................            ............         ...          .....   ..   ..
+               = === = =  == === =   ===-HH--H=            = =---HHHHH-         ==            ===    ==
+                                         CC  C                   BBBBC
 ZMO)-     -MMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOA11- -=-+=ZOOOOOOOOOOOOOO)  -   +OOOOOOOOOMMOMOOOOOOOOOOOMOOO
+  -          -++++++++++++++++++++++++X+XXXXXX+           -+X+XXXXXXXXX=        =X++++++-  - ++++++--+++ -++
+              '''''''''''''''''''''''''''''''''            ''''''''''''          ''''''      '''''   '''  ''
+               ................................            ............          ...         .....   ..    .
+               =======         = =  ==-=-HH--H             =-=---HHHHHH          -==            =    ==    =
+                                         CC  C                   CCBBBB
+                                                                     V
 MMMX-     -XOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOM11=--+-==)MOOOOOOOOOOOOM)-- - - =OOOOOOOOOOOOOOOOOOOMOOOMOOO
+            -++++++++++++++++++++++++++XXXXXXX+            ++++XXXXXXXX          ++X+++++++++++++++= ++= +++
+             ''''''''''''''''''''''''''''''''''            ''''''''''''          ''''''''''''''''''  ''   ''
+              .................................            ............          ......... .......   ..   ..
+                ====  =  = =   =  =====--H-H--=            ====---HHHHH          ==-====    ======   ==
+                                         C C                      CBBBC
+                                                                   VVV
 OOMA-      1OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOZ)+- ==+-)MOOOOOOOOOOOOZ11  - ---OOOOOOOOOOOOOOOOOOOMOOOXOOO
+--          -++++++++++++++++++++++++++X+XXXXXX-           ++++XXXXXXX+          -+XXXXXXXXX+XX++++- ++- =++
+             ''''''''''''''''''''''''''''''''''            ''''''''''''           '''''''''''''''''  ''   ''
+             ..................................            . ..........           ................   ..    .
+              ====     == =   =    = ==-=H-HHH-               =----HHH=           =H-HHH----=--==
+                                         C CCC                     CCB             C CCC
 OOOM)-     )MOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMZ1) -===-)OOOOOOOOOOOOOM1Z- - ---)OOOOOOOOOOOOOOOOOOMOOOMOOO
+=+-          ++++++++++++++++++++++++++X+XXXXXX           =++++++++XXX+           +XXXXXXXXXXX+++++= ++= =++
+             ''''''''''''''''''''''''''''''''''            ''''''''''''           '''''''''''''''''  ''    '
+             ................... ..............            ............            ...............   ..    .
+              ======== =   =      = == -=H-H-H-            ========--H=            HHHHHHHHHHH===     =
+                                         C C C                       C             CBBBBBBCBCC
+                                                                                       V V
 OOOOZ      -OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMZ))- =-===MOOOOOOOOOOOOOZZ)- ---- MOOOOOOOOOOOOOOOOOOOOMZOOO
+-+=-        -++X+++++++++++++++++++++++++X+XXXX            +++++X++++X+-           XXXXXXXXXXX+++++=-++  =++
+ '           ''''''''''''''''''''''''''''''''''             '''''''''''            ''''''''''''''''  ''    '
+ .           ................... ..............             ...........            ...............   ..
+             ==-== =                 ====-=--H-              ===-=  =-=            -HHHHHHHHH-===
+                                             C                                      CBBBBBBBC
+                                                                                       V V
 OOOOA-     =OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOZ1)=--==-=)MOOOOOOOOOOOOXZZ=------=OOOOOOOOOOOOOOOOOOOOXZOOO
+-++-        -++++++++++++++++++++++++++X+X+X+XX+            -+++++++++++           +XXXXXXXXXX+++++=-++  -=+
+             ''''''''''''''''''''''''''''''''''              '''' '''''            ''''''''''''''''  ''    '
+             ................... ..............               ...  ....            ...............   .
+             =  = ==  =  =           ==-=-=-=H-                =   = ==             -HHHHHHHH-===
+                                             C                                       BBBBBBBC
+                                                                                        VV
 AOOOM+     AOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMZ1+-==)+)+OOOOOOOOOOOOOOAX1-=--=- 1OOOOOOOOOOOOOOOOOOOMMOOO
+ =++        +++++++++++++++++++++++++++++XXXXXX+           -+++++++XX+++-           +XXXXXXXXX++++++=++  =++
+  '         '''''''''''''''''''''''''''''''''''             ''''''''''''            '''''''''''''''  ''
+            ...................................             ............            ...............  ..
+             ========= = =  =  =  =======H-HHH-                ====H-  =             HHHHHHHHH====   ==
+                                         C CCC                     C                 BBBBBBBBC
+                                                                                       VVVVV
+                                                                                         A
 XOOOM1-  -=OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMZZZ)--+)+)+OOOOOOOOOOOOOOMX1=----=--AOOOOOOOOOOOOOOOOOOOOOOO
+ -=-       ++X+++++++++++++++++++++++++++XXXXX+            =+++X++++XX+++            XXXXXXXXXX+++++=++--+++
+            '''''''''''''''''''''''''''''''''''             '''''''''''''            ''''''''''''''' ''   ''
+            .................. ................             ............             ..............
+             - ==  = == ==       =  =====--HHH=              ==-=== --=              -HHHHHHHH-= =
+                                           CCC                                        CBBBBBBC
+                                                                                       VVVVV
+                                                                                         A
 OOOOOO1=--1OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOXZZ11==+)))=MOOOOOOOOOOOOOOX1+--=-=---OOOOOOOOOOOOOOOOOOOOOOO
+---=--     ++++++++++++++++++++++++++++X+XXXX+=             +++++++++XXX+-           +XXXXXXXXXX+X++=--=-=++
+           '''''''''''''''''''''''''''''''''''              '''''''''''''            '''''''''''''''      ''
+           ................... ...............              .............            ...............
+           ===== = = ==  =   = =   ====-=-HHH=               =  ==   HHH=             HHHHHHHH--=-
+                                          CBC                        BCB              CBBBBBBC
+                                                                                       VVVVV
+                                                                                       AAA
 MOOOOOA- -MOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOAZ1XZZ+=+1)))ZOOOOOOOOOOOOOOZ11--=-----1OOOOOOOOOOOOOOOXXMXOOO
+ -++==     ++++++++++++++++++++++++++++X+XXXX+              +++++++++XXXX+            +XXXXXXXX+++++=    -++
+   '       '''''''''''''''''''''''''''''''''''              ''''''''''''''            ''''''''''''''       '
+   .       ..................................               ........ ....             ..............
+            ======   =          =  ====-=-HH-                = ====  HHHH             =HHHHHHH-===
+                                          CC                         CBBB              BBBBBBC
+                                                                       V                VVVV
+                                                                                         A
 AOOOOOA- +OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMAX1AXX)--)+)+1OOOOOOOOOOOOOOA1)=------- XOOOOOOOOOOOOOOX===MOO
+ -++++    +++++++++++++++++++++++++++++++XXX+               -++X+++++XXXX+             XXXXXXXXX++++-     =+
+   '''     ''''''''''''''''''''''''''''''''''                '''''''''''''             '''''''''''''       '
+   .       ..................................                .............             .............
+           =========   =     = =      ===--H=                ==-=== =HHHH=             -HHHHHH--==
+                                           C                         CBBB               BBBBCC
+                                                                       VV                V
 OOOOOOM- MOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOXX11XX11==+)1))XOOOOOOOOOOOOOOZ)1=--=- - -OOOOOOOOOOOOOMZ=--MOO
+--=+++    +++++++++++++++++++++++++++++X+XX+-                ++++++++XXXXX-            +XXXXXXXX++++      -+
+   '''    ''''''''''''''''''''''''''''''''''                 ''''''' '''''              ''''''''''''
+   ...    ..................................                  ...... .....              ............
+             = =  = =    = = =    = ===-=HH=                   ===== -HHHH              -HHHHH--==
+                                         CC                           BBBC               BBBCC
+                                                                       V
 OOOOOOO=)OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOAXAZZAMAZ)=))Z)XXOOOOOOOOOOOOOOX1Z)--==--  ZOOOOOOOOOOOOOX=  AOO
+++++++-  +++++++++++++++++++++++++++++XXXXX+                 =+++++++XXXXX+             +XXXXXXX++++=     -+
+''''''   ''''''''''''''''''''''''''''''''''                   '''''''''''''             ''''''''''''
+.. ...    .................................                   ............              ............
+=   =     ==== == ======== =  = =  ===---HH                    ===   HHHHH               HHHHH--====
+                                         BC                          BBBBB               BBBBC
+                                                                       VV                  V
 OOOOOOA)MOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMZAMMMOOOMZ=))1ZMOMOOOOOOOOOOOOOO1ZZ)-)+---- MOOOOOOOOOOOOA+  1OO
+++++++   ++++++++++++++++++++++++++++++XXX+      ---        - =++++++XXXXXX-             XXXXXXXXX+++     -=
+''''''   ''''''''''''''''''''''''''''''''''                    ''''''''''''              '''''''''''
+......   ..................................                    ............              ...........
+=====    = ======= = = = = ===  === ===--H=                    =   ==HHHHHH              -HHHHHH--==
+                                         C                           BBBBBC               BBBBCC
+                                                                      VVVV
+                                                                       A A
 OOOOOOXMOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOXXOMMMMOOOMZ1+MOOOOOOOOOOOOOOOOOOAZZ1==+1Z1 -=OOOOOOOOOOOOX=  1OO
+XX++++  ++X++++++++++++++++++++++++++++XX+-  -    =++     -====+++=++XXXXXX+             +XXXXXX+++++     -+
+''''''   '''''''''''''''''''''''''''''''''         '           ''' '''''''''             '''''''''''
+......   .................................         .           .   .........             ...........
+--===    =-===========    == === === ==-H=                          =HHHHHH=             =HHHHH-===
+                                        C                            BBBBBB               CBBBC
+                                                                      VV VV
+                                                                       A
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOAMOOOOOMAOOOOOOOOOOOOOOOOOOOOMZZ1+=)))+--OOOOOOOOOOOOM= -ZOO
+XXXXX+=++++X+++++++++++++++++++++++XXXXXX+==----  +++++  -++++++=-+XXXXXXXXX+            -+XXXXXXX+++     =+
+'''''' '''''''''''''''''''''''''''''''''''        ''''     '''''  ''''''''''              '''''''''''      '
+......  ..................................         ...     .....   .........              ..........
+---HH   ===-=========  ===== ======-----H          ==       =      HHH-HHHHH              =HHHHHH-==
+   CC                                   C                          CBB BBBBB               BBBCCC
+                                                                        VVV
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOAXOOOOOOOOOOOOOOOOOOOOOOOOOOOOXZX1+)11)+-+OOOOOOOOOOOM=- 1OO
++XXX+==++X+++++++++++++++++++++++++XXXXXX+== ---  -XXX+++++X+++++=+XXXXXXXXX+-            +XXXXXXX+++     -+
+'''''  '''''''''''''''''''''''''''''''''''         ''''''''''' '' '''''''''''              '''''''''       '
+.....  ...................................         ..... ..... .  ...........              .........
+=---    =- =  == == ====  =========----H-          -HH=    -== =  =HHHHHHHHH               HHHHHH-=
+                                       C            CC             BBBBBBBBB               CBBBCC
+                                                                    VV VVVVV
+                                                                     A
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMMXAAOOOOOOOOOOOOOOOOOOOOOOOOOOOOOXAZA1)1Z1)- =OOOOOOOOOOM=--)MO
++++++=-++X+++++++++++++++++++++++++++XX++=-      -+XXXXXXXXXXXX++++XXXXXXXXXX=             +XXXXXX+++      +
+       ''''''''''''''''''''''''''''''''''          '''''''''''''' '''''''''''              ''''''''''      '
+       ..................................          .............  ...........               ........
+       ==-====  = =  ==  =  == ======--=           HHHHH-H-HHHH=  =HHHHHHHHHH               -HHH--==
+                                                   CBBBC C BBBC    BBBBBBBBBB                CCC
+                                                     V              VVVVVVVVV
+                                                                     A A A A
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMMXAXAMOOOOOOOOOOOOOOOOOOOOOOOOOOOOO++)ZA1+ZZZ=  -OOOOOOOOOM+  1OO
++++++++++++++++++++++++++++++++++++X+XX++=       -=XXXXXXXXXXXXX+-+XXXXXXXXXX+              -XXX+X+++     -+
+''''''''''''''''''''''''''''''''''''''''           '''''''''''''' ''''''''''''               ''''''''      '
+ .......................................           .............  ............               ........
+ ====    === ==  =  == == =========-=--            -HHHHHHHHHHHH  =HHHHHHHHHH=               -HH=-==
+                                                    CBBBBBBBBBBC   BBBBBBBBBB                 CC
+                                                     V  V  V VV      V V VVVV
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOOOOOOOOOOOOOOOOOOOMOOOOOOOOOOOOO=-=)1)1)1+==)XOOOOOOOOO+- +OO
++XXX++++++++++++++++++++++++++++++++XX++++-- ----+=+XXXXXXXXXXXX+ +XXXXXXXXXXX+              ++XXX+++-    -+
+''''''''''''''''''''''''''''''''''''''''           '''''''''''''' '''''''''''''              ''''''''
+........................................           .............. .............              ........
+ ---========= == ==  = === = =======--=            =-HHHHHHHHHHH   HHHHHHHHHHH                =---==
+                                                     BBBBBBBBBBB   BBBBBBBBBBB
+                                                     VVVVVVVVVVV     VVVVVVVVV
+                                                       AA AA A       A     A
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO1MOOOOOOOOOOOOO+- -==--=ZMOOOOOOOOOOM)  )OO
+=+++-++++++++++++++++++++++++++++++X++++++-----==++++XXXXXXXXXXXX  XXXXXXXXXXXX=           =+++XXX+++     -+
+ ''' ''''''''''''''''''''''''''''''''''          ' ''''''''''''''  ''''''''''''              ''''''''
+ ..   .................................            ..............  ............              ........
+       ==          ===== = = = = ==-==              =HHHHHHHHHHH-  -HHHHHHHHHHH               =---==
+                                                     BBBBBBBBBBB    BBBBBBBBBBB
+                                                       VVVVVVVVV     V VVVVVVV
+                                                         A               A
 -===-OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO1OOOOOOOOOOOOOO= --+-=1OOOOOOOOOOOOO1  1OO
+     -+++++++++++++++++++++++++++++XX+++++--===+++++XXXXXXXXXXXXX+ +XXXXXXXXXXXX+        +++XXXXXX+++-    -+
+      ''''''''''''''''''''''''''''''''''         ''''''''''''''''  ''''''''''''''        ''''''''''''
+      .................................          ................  .............          ...........
+       = ==   === == ========= = ==--==           = -HHHHHHHHHHHH  =HHHHHHHHHHHH           =-HHHH-==
+                                                     BBBBBBBBBBBB   CBBBBBBBBBBC             CCCC
+                                                      VVVVVVVVVVV     VV VVVVVV
+                                                       AAAAAAAAA           A A
 -- --OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO1=-AOOOOOOOOOOOOOOOO1  )MO
+     +++++++++++++++++++++++++++++++++++++=++++++++XXXXXXXXXXXXXXX++XXXXXXXXXXXXX+    -=++XXXXXXXX+++-     +
+     ''''''''''''''''''''''''''''''''''''      ''''''''''''''''''' ''''''''''''''       '''''''''''''
+      ..................................       ...................  .............        ............
+      ==== =  =  == == = =  = =  =====          ===-HHHHHHHHHHHHHH  -HHHHHHHHHHHH        =HHHHHHHH==
+                                                    CBBBBBBBBBBBBB   BBBBBBBBBBBB         CBBBBBCC
+                                                       VVVVVVVVVVV    VVVVVVVVVV             VVV
+                                                       A AAAAAAAA          A AA              A
 MMXAOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO)  =MO
+    -++++++++++++++++++++++++++++++X+X++++=++++++XXXXXXXXXXXXXXXXX+ +XXXXXXXXXXXXXX++++XXXXXXXXXXXXX+=     =
+     '''''''''''''''''''''''''''''''''''''   ''''''''''''''''''''''  ''''''''''''''' ''''''''''''''''
+     ....................................    ......................  ...............  ...............
+      === = ========     =====   ==-=- =         --HHHHHHHHHHHHHHH   HHHHHHHHHHHHH-   =--HHHHHHHHH--
+                                                   BCBBBBBBBBBBBBB   CCBBBBBBBBBBB       BBBBBBBBB
+                                                     VVVVVVVVVVVVV     VVVVVVVVVV         VVVVVVV
+                                                       AAA A AAA         A AAAAAA            AAA
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO)- -MO
+-++++++++++++++++++++++++++++++++++XX+++++++++++XXXXXXXXXXXXXXXXXXX+-+XXXXXXXXXXXXXXXXXXXXXXXXXXXXX++-     =
+    '''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''  ''''''''''''''''''''''''''''''''
+    ......................................   ......................  ................................
+     = ======= ====== ==     ======--====     ==-H-HHHHHHHHHHHHHHHH  =-HHHHHHHHHHHHHH-HHHHHHHHHHHHH=
+                                                 C CCCCBBBBBBBBBBBB    CBBBBBBBBBBBBC CBBBBBBBBBBBC
+                                                         VVVVVVVVV       VVV VVVVVV     VVVVVVVVVV
+                                                         A AAAAAAA                         AAA AA
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO1  =MO
+-++++++++++++++++++++++++++++++++++XX++++++++++XXX++++=++XXXXXXXXXXX++++XXXXXXXXXXXXXXXXXXXXXXXXXXXX+=     =
+   ''''''''''''''''''''''''''''''''''''''''''''''''''  ''''''''''''''''''''''''''''''''''''''''''''''
+    .................................................   .............................................
+    ================ ======  =   ==--=====   ==HH-=     =HHHHHHHHHHH = =-HHHHHHHHHHHHHHHHHHHHHHHHHHH=
+                                               CC        BBBBBBBBBBB     CBBBBBBBBBBBBBBBBBBBBBBBBBC
+                                                          VVVVVVVVV          V V VVVVV VVVVVVVVVVVV
+                                                           AAAAAAAA          A A       AAAAA A
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO)  -MO
+=+++++++++++++++++++++++++++++++++++++++++++X+++XX++++---+XXXXXXXXXXXXXXXX+++XXXXXXXXXXXXXXXXXXXXXXXX=     +
+ ''''''''''''''''''''''''''''''''''''''''''''''''''''    ''''''''''''''''''''''''''''''''''''''''''''
+  ...................................................    ............................................
+    === = ========== ==== ===  = =======  ==-===--==      -HHHHHHHHHHHHHHH=  -HHHHHHHHHHHHHHHHHHHHHH-
+                                                           BBBBBBBBBCCBBBB    CBBBBBBBBBBBBBBBBBBBBB
+                                                           VVVVVVVVV           V VVVVVVVVVVVVVVVVVV
+                                                           A AAAAAAA                 A A AAAAAAAAA
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOM  -XO
++++++X+++++++++++++++++++++++++++++++X++++++X++++++++++++++XXXXXXXXXXXXXXXX+-++X+XXX+++XXXXXXXXXXXXXX+     +
+''''''''''''''''''''''''''''''''''''''''''''''   ''''''''''''''''''''''''''' '''''''''''''''''''''''''
+..............................................   ...  ... .................  .........................
+ ====-======== ======= ==  =    =====- =====-=   ==    =   HHHHHHHHHHHHHHHH   =-=---===HHHHHHHHHHHHHH=
+                                                           CBBBBBBBBBBBBBBB            CBBBBBBBBBBBBB
+                                                             VVVVVVVVVVVVV               VVVVVVVVVVVV
+                                                             AAAAAAA AAA                   A A AAAA
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO1=)AO
++XX++X+++++++++++++++++++++++++++++++++++++XXXXXXXXXXXXXX+XXXXXXXXXXXXXXXXXXXXXXXXXX+++++++XXXXXXXXXX+=    -
+''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+......................................................................................................
+=HH==-==   ==   === ==== == =   ===========-HH--HHHH-----=-HHHHHHHHHHHHHHHHHHHHHHHH-===  ==--HHHHH---=
+ CC                                         CC  CBBB       CBBBBBBBBBBBBBBBCCBBBCCC          CCCCC
+                                                             VVVVVVVVVVVVV     V
+                                                             AAAAA AAA AAA
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOOO
++XXXXX+++++++++++++++++++++++++++++++++++XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+=+++++++++++++++=- =-=
+''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''  '  '''''''''''
+......................................................................................      .........
+ H----== ========= ======    =   === ====-HHHHHHHHHHHHHH---HHHHHHHHHHHHHHHHHHHHH-HH--       ===  ===
+ C                                        CBBBBBBBBBBBCC   CBBBBBBBBBBBBBBBBBBBC CC
+                                             V VVVVVV        VVVVVVVVVVVVVVVVVV
+                                               A AA          AAAAAAA A   A
 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOAZ+=-)XMO1)AMOOOOMAAOO
++++++X+X+X+++++++++++++++++++++++++++++++XXXXXXXXXXXX++++XXXXXXXXXXXXX+++++++++++++++=        -    +=+=   -+
+ ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''                '     '
+ ....................................................................................                .
+  ===-=-=-==========   =====   = =   ====-HHHHHHHHHHH== =--HHHHH-H----= == ==   == ==
+                                          CBBBBBBBBBC      BBBBC C
+                                           VVVVVVVV        VVV
+                                                AA
 XOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMOMAOMMOOOO)==1MOOOOMXXZ)=1XOOOOOOOMOOOOOOO
+ =++X++X++++++++++++++++++++++++++++++XXXXXXXXXXXXXXXXXXXXXXX+++= -  -  -==-     ----        --+=--- --=-+==
+  '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+  .............................................................
+   =-==-====== = == == ===== = ===== =---HHHHHHHHHHH-H--HHHH-=
+                                         CCBBBBBBBBB C  CBBB
+                                              VVVV       V
 ZOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOAZ+=+====-=-  --=)++MOOOOAA1ZAOOOOOOOOOOOOOOO
+ ++X++XX+++++++++++++++++++++++++++++X+XXXXXXXXXXXXXXXXXX+XX++-                     -++-     -=++++++++++++=
+  ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''                        '        ''''' ' '''
+  ............................................................                                 .....   ...
+  =-==--========  = =   ==  = =======-=-HHHHHHHHHHHHHHHH-=--=                                  =         =
+                                        CBBBBBBBBBBBBBBC
+                                         VVVVVVVVV V V
+                                           A A A A
 +OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMA1)))==    --+Z)))1MOOOOOOOOOOOOOOOOOOOOOOOOO
+ ++++++X+XXX+++++++++++++++++++++++X+XXXXXXXXXXXXXXXXX+++XXX++                     +++==--=+++++++++++++++++
+ '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''                     ''      '''''''''''''''''
+  ...........................................................                      .        ........ .......
+  =====-=---===== == ===  ==   ====-=-HHHHHHHHHHHHHHH-===---=                                 == =     === =
+                                      CBBBBBBBBBBBBBB
+                                         VVVVVVVVVVV
+                                           AAA   A
 1OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMZ)Z1)+-  -)1ZZAZMOOOOOOOOOOOOOOOOOOOOOOOOOOOO
+ ++XXXXXX++++X++++++++++++++++++X+XXXXXXXXXXXXXXXXXXXXXXXXX++-                  -++++--=+++XXXXX+XXXXXXX++++
+ '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''                      '''    '''''''''''''''''''
+ ...........................................................                      ..     ...................
+ ==--H---====-=============  ===-=---HHHHHHHHHHHHH-HHHHHHHH                        =     ==HHH-H=--H-H-H=
+     C                               CCBBBBBBBBCCC CCCCBBBC                                BBC C   C C C
+                                       VVVVVVV
+                                         A A


















