Google
 

Trailing-Edge - PDP-10 Archives - decuslib10-11 - 43,50536/spock1.dat
There are no other files named spock1.dat in the archive.
*-"--"---"---""-----------+++""---------------"-"----++=+---------""=+==="""----"==+""""-----"""--"-""---"""=MMM="-"""--"""""""""""""
+.C..+...C...CC...........CCC++...............+.+....CCCC.........++CCCCC+++....+CCC++++.....+++..+.++...+++C   C+.+++..+++++++++++++
+'B''C'''B'''BB'''''''''''   CC'''''''''''''''C'C''''    '''''''''CC     CCC''''C   CCCC'''''CCC''C'CC'''CCC     C'CCC''CCCCCCCCCCCCC
+XHXX XXXHXXXHHXXXXXXXXXXX     XXXXXXXXXXXXXXX X XXXX    XXXXXXXXX          XXXX        XXXXX   XX X  XXX         X   XX
+CXCC CCCXCCCXXCCCCCCCCCCC     CCCCCCCCCCCCCCC C CCCC    CCCCCCCCC          CCCC        CCCCC   CC C  CCC         C   CC
*---""---"---------"-----"++"-----------------------"+=+"----------"-"++===++""++==""-------"--"-""-"----""MMM===-"-""""-""""""""""""
+...++...C.........+.....+CC+.......................+CCC+..........+.+CCCCCCC++CCCC++.......+..+.++.+....++   CCC.+.++++.++++++++++++
+'''CC'''B'''''''''C'''''C  C'''''''''''''''''''''''C   C''''''''''C'C       CC    CC'''''''C''C'CC'C''''CC      'C'CCCC'CCCCCCCCCCCC
+XXX  XXXHXXXXXXXXX XXXXX    XXXXXXXXXXXXXXXXXXXXXXX     XXXXXXXXXX X                XXXXXXX XX X  X XXXX        X X    X
+CCC  CCCXCCCCCCCCC CCCCC    CCCCCCCCCCCCCCCCCCCCCCC     CCCCCCCCCC C                CCCCCCC CC C  C CCCC        C C    C
*--""-------------------"+=+-------------"--"------"+=+"-----"-"""---""""+===+====+""-"""-"--"-""-"""-"""+=-M="""-""+"""""""""+""""""
+..++...................+CCC.............+..+......+CCC+.....+.+++...++++CCCCCCCCCC++.+++.+..+.++.+++.+++CCC C+++.++C+++++++++C++++++
+''CC'''''''''''''''''''C   '''''''''''''C''C''''''C   C'''''C'CCC'''CCCC          CC'CCC'C''C'CC'CCC'CCC     CCC'CC CCCCCCCCC CCCCCC
+XX  XXXXXXXXXXXXXXXXXXX    XXXXXXXXXXXXX XX XXXXXX     XXXXX X   XXX                X   X XX X  X   X           X
+CC  CCCCCCCCCCCCCCCCCCC    CCCCCCCCCCCCC CC CCCCCC     CCCCC C   CCC                C   C CC C  C   C           C
*--+"-------------------"++"--------------------"--"+=""------"""--""""""""++=MMM="""--""--""-"""""-""""+MMM=""-"--"""""""""""""""""+
+..C+...................+CC+....................+..+CC++......+++..++++++++CCC   C+++..++..++.+++++.++++C   C++.+..+++++++++++++++++C
+'' C'''''''''''''''''''C  C''''''''''''''''''''C''C  CC''''''CCC''CCCCCCCC       CCC''CC''CC'CCCCC'CCCC     CC'C''CCCCCCCCCCCCCCCCC
+XX  XXXXXXXXXXXXXXXXXXX    XXXXXXXXXXXXXXXXXXXX XX     XXXXXX   XX                  XX  XX  X     X           X XX
+CC  CCCCCCCCCCCCCCCCCCC    CCCCCCCCCCCCCCCCCCCC CC     CCCCCC   CC                  CC  CC  C     C           C CC
*--+"--------"---------"+=+---------"-------"="-"-"+=""-""-"-"-""""""""""-"""=MM-=+++"-"----"""""""-"""=M-M+"-"""""""""""""""""""+"+M
+..C+........+.........+CCC.........+.......+C+.+.+CC++.++.+.+.++++++++++.+++C  CCCCC+.+....+++++++.+++C C C+.+++++++++++++++++++C+C
+'' C''''''''C'''''''''C   '''''''''C'''''''C C'C'C  CC'CC'C'C'CCCCCCCCCC'CCC        C'C''''CCCCCCC'CCC     C'CCCCCCCCCCCCCCCCCCC C
+XX  XXXXXXXX XXXXXXXXX    XXXXXXXXX XXXXXXX   X X     X  X X X          X            X XXXX       X         X
+CC  CCCCCCCC CCCCCCCCC    CCCCCCCCC CCCCCCC   C C     C  C C C          C            C CCCC       C         C
*-""-------------------"++"--"--------"---"-"+---"==+--"-----""---"-""-"-"""+===++==+++"""-"""-""+"""+=--M=""-""""""-"+""""""""""+MM-
+.++...................+CC+..+........+...+.+C...+CCC..+.....++...+.++.+.+++CCCCCCCCCCC+++.+++.++C+++CCCC C++.++++++.+C++++++++++C  C
+'CC'''''''''''''''''''C  C''C''''''''C'''C'C '''C   ''C'''''CC'''C'CC'C'CCC           CCC'CCC'CC CCC      CC'CCCCCC'C CCCCCCCCCC
+X  XXXXXXXXXXXXXXXXXXX    XX XXXXXXXX XXX X  XXX    XX XXXXX  XXX X  X X                 X   X              X      X
+C  CCCCCCCCCCCCCCCCCCC    CC CCCCCCCC CCC C  CCC    CC CCCCC  CCC C  C C                 C   C              C      C
*"""-------------------+++------------"-"""""M+-"+=="-"-----""""""""""""-"""=M="""+++=M==++""""+"+""+M-ZM+"""""""""""+"""""""""+=M--M
++++...................CCC............+.+++++ C.+CCC+.+.....++++++++++++.+++C C+++CCCC CCCC++++C+C++C C  C+++++++++++C+++++++++CC CC
+CCC'''''''''''''''''''   ''''''''''''C'CCCCC  'C   C'C'''''CCCCCCCCCCCC'CCC   CCC         CCCC C CC      CCCCCCCCCCC CCCCCCCCC
+   XXXXXXXXXXXXXXXXXXX   XXXXXXXXXXXX X       X     X XXXXX            X
+   CCCCCCCCCCCCCCCCCCC   CCCCCCCCCCCC C       C     C CCCCC            C
*""------------------""=+"=-------------""---"--"=="-------"-""""""""""""""==M+"""""+++=MM==++"+"""+MZZM+""""""""""""="""""""""=M-M=+
+++..................++CC+C.............++...+..+CC+.......+.++++++++++++++CC C+++++CCCC  CCCC+C+++C    C++++++++++++C+++++++++C C CC
+CC''''''''''''''''''CC  C '''''''''''''CC'''C''C  C'''''''C'CCCCCCCCCCCCCC    CCCCC          C CCC      CCCCCCCCCCCC CCCCCCCCC
+  XXXXXXXXXXXXXXXXXX      XXXXXXXXXXXXX  XXX XX    XXXXXXX X
+  CCCCCCCCCCCCCCCCCC      CCCCCCCCCCCCC  CCC CC    CCCCCCC C
*+"------------------"+++---------"--""-"------"+=="--"-""--""""""""-"""""+=M+"""""-""""+=M--M="""+M-Z-+""+""""""""+""+""""++=M-ZM"""
+C+..................+CCC.........+..++.+......+CCC+..+.++..++++++++.+++++CC C+++++.++++CC CC C+++C C CC++C++++++++C++C++++CCC C  +++
+ C''''''''''''''''''C   '''''''''C''CC'C''''''C   C''C'CC''CCCCCCCC'CCCCC    CCCCC'CCCC       CCC      CC CCCCCCCC CC CCCC       CCC
+  XXXXXXXXXXXXXXXXXX    XXXXXXXXX XX  X XXXXXX     XX X  XX        X              X
+  CCCCCCCCCCCCCCCCCC    CCCCCCCCC CC  C CCCCCC     CC C  CC        C              C
*""------------"-----"++"--------------------"""=="---""--"-"-""-""""""""+=M=""""-""""--"""==--MMM---M+"""""""""""-"""+""""+=---=+"""
+++............C.....+CC+....................+++CC+...++..+.+.++.++++++++CC C++++.++++..+++CCCC   CCC C+++++++++++.+++C++++CCCCCCC+++
+CC''''''''''''B'''''C  C''''''''''''''''''''CCC  C'''CC''C'C'CC'CCCCCCCC    CCCC'CCCC''CCC            CCCCCCCCCCC'CCC CCCC       CCC
+  XXXXXXXXXXXXHXXXXX    XXXXXXXXXXXXXXXXXXXX      XXX  XX X X  X                X    XX                          X
+  CCCCCCCCCCCCXCCCCC    CCCCCCCCCCCCCCCCCCCC      CCC  CC C C  C                C    CC                          C
*"------------------"+="--------------"-"----"+=="---"-""-"""""""""""""""=MM+""""-"""""""""""+=M-ZZZZ=""""""""""""""""""""=---M++""""
++..................+CC+..............+.+....+CCC+...+.++.+++++++++++++++C  C++++.+++++++++++CC C    C++++++++++++++++++++CCCC CC++++
+C''''''''''''''''''C  C''''''''''''''C'C''''C   C'''C'CC'CCCCCCCCCCCCCCC    CCCC'CCCCCCCCCCC         CCCCCCCCCCCCCCCCCCCC       CCCC
+ XXXXXXXXXXXXXXXXXX    XXXXXXXXXXXXXX X XXXX     XXX X  X                       X
+ CCCCCCCCCCCCCCCCCC    CCCCCCCCCCCCCC C CCCC     CCC C  C                       C
*------""--------"--"=+"----------------"--"""+=+"---""-""""-""""-""""""+=M=+""""""""""""""""""+-ZZZZ-M++""""""""""""""""=M--="""""""
+......CC........C..+CC+................+..+++CCC+...++.++++.++++.++++++CC CC++++++++++++++++++CC    C CC++++++++++++++++C CCC+++++++
+''''''BB''''''''B''C  C''''''''''''''''C''CCC   C'''CC'CCCC'CCCC'CCCCCC     CCCCCCCCCCCCCCCCCC          CCCCCCCCCCCCCCCC     CCCCCCC
+XXXXXXHHXXXXXXXXHXX    XXXXXXXXXXXXXXXX XX       XXX  X    X    X
+CCCCCCXXCCCCCCCCXCC    CCCCCCCCCCCCCCCC CC       CCC  C    C    C
*----------""------"+=+---"-"-------"-"""""""+=="--"""""""""""""+""+"""+MM="""""""""""""""""""+MX-ZMM---M=+""""""+""""""=-XM++"""""""
+..........++......+CCC...+.+.......+.+++++++CCC+..+++++++++++++C++C+++C  C+++++++++++++++++++C  C   CCC CC++++++C++++++CC  CC+++++++
+''''''''''CC''''''C   '''C'C'''''''C'CCCCCCC   C''CCCCCCCCCCCCC CC CCC    CCCCCCCCCCCCCCCCCCC             CCCCCC CCCCCC      CCCCCCC
+XXXXXXXXXX  XXXXXX    XXX X XXXXXXX X           XX
+CCCCCCCCCC  CCCCCC    CCC C CCCCCCC C           CC
*------------------"+="-"------------------""+=""-"-""""""""""""""""""+=MM+"""""""""""""""""""=-X-=++=MM---M++""""""""+M--M+"""""""""
+..................+CC+.+..................++CC++.+.++++++++++++++++++CC  C+++++++++++++++++++CC CCCCC  CCC CC++++++++C CC C+++++++++
+''''''''''''''''''C  C'C''''''''''''''''''CC  CC'C'CCCCCCCCCCCCCCCCCC     CCCCCCCCCCCCCCCCCCC                CCCCCCCC      CCCCCCCCC
+XXXXXXXXXXXXXXXXXX    X XXXXXXXXXXXXXXXXXX      X X
+CCCCCCCCCCCCCCCCCC    C CCCCCCCCCCCCCCCCCC      C C
*------------"-----+=+"--------------------""+="-"""""""""""""""""""""+=M+"""""""""""""""""""+MZA=++""++=M---M==+"+""+=-ZM+""""+"""""
+............+.....CCC+....................++CC+.+++++++++++++++++++++CC C+++++++++++++++++++C   CCC++CCC CCC CCC+C++CCC  C++++C+++++
+''''''''''''C'''''   C''''''''''''''''''''CC  C'CCCCCCCCCCCCCCCCCCCCC    CCCCCCCCCCCCCCCCCCC       CC           C CC      CCCC CCCCC
+XXXXXXXXXXXX XXXXX    XXXXXXXXXXXXXXXXXXXX     X
+CCCCCCCCCCCC CCCCC    CCCCCCCCCCCCCCCCCCCC     C
*-----------------"+="-----------"---------"+=+"-"""""""-"""""""""""""=MM+"""""""""""""""""""=---+"+"+""""+M-----==+=MZZ-++""+"""+"+"
+.................+CC+...........+.........+CCC+.+++++++.+++++++++++++C  C+++++++++++++++++++CCCCC+C+C++++C CCCCCCCCC   CCC++C+++C+C+
+'''''''''''''''''C  C'''''''''''C'''''''''C   C'CCCCCCC'CCCCCCCCCCCCC    CCCCCCCCCCCCCCCCCCC     C C CCCC                 CC CCC C C
+XXXXXXXXXXXXXXXXX    XXXXXXXXXXX XXXXXXXXX     X       X
+CCCCCCCCCCCCCCCCC    CCCCCCCCCCC CCCCCCCCC     C       C
*---------------"-+=="----"-"----""-"----""+==""""""""""""+"""""""""+=MM=""+"""++"""""+++"""=ZX-=+"++"+""""+"=-XXZ----X-="""""++"""++
+...............+.CCC+....+.+....++.+....++CCC++++++++++++C+++++++++CC  C++C+++CC+++++CCC+++C  CCC+CC+C++++C+CC   CCCC CC+++++CC+++CC
+'''''''''''''''C'   C''''C'C''''CC'C''''CC   CCCCCCCCCCCC CCCCCCCCC     CC CCC  CCCCC   CCC      C  C CCCC C            CCCCC  CCC
+XXXXXXXXXXXXXXX X    XXXX X XXXX  X XXXX
+CCCCCCCCCCCCCCC C    CCCC C CCCC  C CCCC
*-----------------"=="--------------------"+M+""""""-"""""""""""""""+M-=""""""""""""+""""""=---="""""+""""""""""=-XXXXXM=+=+""+"++"""
+.................+CC+....................+C C++++++.+++++++++++++++C CC++++++++++++C++++++CCCCC+++++C++++++++++CC      CCCC++C+CC+++
+'''''''''''''''''C  C''''''''''''''''''''C   CCCCCC'CCCCCCCCCCCCCCC    CCCCCCCCCCCC CCCCCC     CCCCC CCCCCCCCCC            CC C  CCC
+XXXXXXXXXXXXXXXXX    XXXXXXXXXXXXXXXXXXXX          X
+CCCCCCCCCCCCCCCCC    CCCCCCCCCCCCCCCCCCCC          C
*----------------"+=+-----"---"--------"""+MM+""""""""""""""+""""""+=M-+"""+""""""""""+"+"+=-Z-+"""+"+"""""""""""+MZXAXAA-M==+++++"""
+................+CCC.....+...+........+++C  C++++++++++++++C++++++CC CC+++C++++++++++C+C+CCC CC+++C+C+++++++++++C       C CCCCCCC+++
+''''''''''''''''C   '''''C'''C''''''''CCC    CCCCCCCCCCCCCC CCCCCC     CCC CCCCCCCCCC C C      CCC C CCCCCCCCCCC                 CCC
+XXXXXXXXXXXXXXXX    XXXXX XXX XXXXXXXX
+CCCCCCCCCCCCCCCC    CCCCC CCC CCCCCCCC
*----------------"+=+---------"------"-"-"==="""""""""+""""+"""""""+=-M""""""""""""""""""++-Z-M""""""""""+"""""""=MZZ-=ZXXZZ-=+++++++
+................+CCC.........+......+.+.+CCC+++++++++C++++C+++++++CCC ++++++++++++++++++CCC C ++++++++++C+++++++C   CC     CCCCCCCCC
+''''''''''''''''C   '''''''''C''''''C'C'C   CCCCCCCCC CCCC CCCCCCC    CCCCCCCCCCCCCCCCCC      CCCCCCCCCC CCCCCCC
+XXXXXXXXXXXXXXXX    XXXXXXXXX XXXXXX X X
+CCCCCCCCCCCCCCCC    CCCCCCCCC CCCCCC C C
*----------------"==""---""-----"--"""-""+==="""""""+""+""+"+""""""+MM="""""""""""""+"+""+M-X-+"+"""""""+""""++++MXZ-+"==MXXXZZM+++++
+................+CC++...++.....+..+++.++CCCC+++++++C++C++C+C++++++C  C+++++++++++++C+C++C C CC+C+++++++C++++CCCC   CC+CC       CCCCC
+''''''''''''''''C  CC'''CC'''''C''CCC'CC    CCCCCCC CC CC C CCCCCC    CCCCCCCCCCCCC C CC      C CCCCCCC CCCC         C
+XXXXXXXXXXXXXXXX     XXX  XXXXX XX   X
+CCCCCCCCCCCCCCCC     CCC  CCCCC CC   C
*----------------+=="--"------""""--"""""=MM+""""+"""""+""""+"""""+=M=+""""""+"""""""""""=---="""""""""""""""+"+MZXX=+"=++=M-XXXX-M=+
+................CCC+..+......++++..+++++C  C++++C+++++C++++C+++++CC CC++++++C+++++++++++CCCCC+++++++++++++++C+C    CC+CCCC C    C CC
+''''''''''''''''   C''C''''''CCCC''CCCCC    CCCC CCCCC CCCC CCCCC     CCCCCC CCCCCCCCCCC     CCCCCCCCCCCCCCC C       C
+XXXXXXXXXXXXXXXX    XX XXXXXX    XX
+CCCCCCCCCCCCCCCC    CC CCCCCC    CC
*---------------"+=+"--------"-"""""""""+=M=+""""+""""""""""""""""+=-=""""""""""""""""""+M-Z-""""""""""""+"+++"=ZXXM+++++++++=M-ZZX--
+...............+CCC+........+.+++++++++CC CC++++C++++++++++++++++CCCC++++++++++++++++++C C C++++++++++++C+CCC+C    CCCCCCCCCC C   CC
+'''''''''''''''C   C''''''''C'CCCCCCCCC     CCCC CCCCCCCCCCCCCCCC    CCCCCCCCCCCCCCCCCC     CCCCCCCCCCCC C   C
+XXXXXXXXXXXXXXX     XXXXXXXX X
+CCCCCCCCCCCCCCC     CCCCCCCC C
*---------------"+=+------------"--""-""+MM+"""-+""+""""""+""""""+===+""""""""""+""""""+=-Z-=""+"""""+""++"++"+MXXZ=+++++++++++=MZXXZ
+...............+CCC............+..++.++C  C+++.C++C++++++C++++++CCCCC++++++++++C++++++CCC CC++C+++++C++CC+CC+C    CCCCCCCCCCCCC
+'''''''''''''''C   ''''''''''''C''CC'CC    CCC' CC CCCCCC CCCCCC     CCCCCCCCCC CCCCCC      CC CCCCC CC  C  C
+XXXXXXXXXXXXXXX    XXXXXXXXXXXX XX  X         X
+CCCCCCCCCCCCCCC    CCCCCCCCCCCC CC  C         C
*----"----------"+=+"-------"----------"+=M+""""-""""""""""""""-"+=-=""""""""""+"+"""""+---M+"""""+"+"""""""++=XXXM+++++"=+++++++=M-Z
+....C..........+CCC+.......+..........+CC C++++.++++++++++++++.+CCCC++++++++++C+C+++++CCCC C+++++C+C+++++++CCC    CCCCC+CCCCCCCCC C
+''''B''''''''''C   C'''''''C''''''''''C    CCCC'CCCCCCCCCCCCCC'C    CCCCCCCCCC C CCCCC      CCCCC C CCCCCCC            C
+XXXXHXXXXXXXXXX     XXXXXXX XXXXXXXXXX         X              X
+CCCCXCCCCCCCCCC     CCCCCCC CCCCCCCCCC         C              C
*---------------"=="---------"-"""-""--+=M=+=""""""""""""+"""""""=MM+""+"""""""""""""""=-Z-=""""""++""++++++"+MXXM+""+++++++++++++++=
+...............+CC+.........+.+++.++..CC CCC++++++++++++C+++++++C  C++C+++++++++++++++CC CC++++++CC++CCCCCC+C    C++CCCCCCCCCCCCCCCC
+'''''''''''''''C  C'''''''''C'CCC'CC''      CCCCCCCCCCCC CCCCCCC    CC CCCCCCCCCCCCCCC     CCCCCC  CC      C      CC
+XXXXXXXXXXXXXXX    XXXXXXXXX X   X  XX
+CCCCCCCCCCCCCCC    CCCCCCCCC C   C  CC
*---------------"=="-----"-"-"--"-"---"+==="""""""""""""""""""""+=MM""""""""""""""""""+MZ-M"+"""+"+"+++++++++=-XXM+"++++++++++++++++=
+...............+CC+.....+.+.+..+.+...+CCCC+++++++++++++++++++++CC  ++++++++++++++++++C  C +C+++C+C+CCCCCCCCCCC   C+CCCCCCCCCCCCCCCCC
+'''''''''''''''C  C'''''C'C'C''C'C'''C    CCCCCCCCCCCCCCCCCCCCC    CCCCCCCCCCCCCCCCCC     C CCC C C               C
+XXXXXXXXXXXXXXX    XXXXX X X XX X XXX
+CCCCCCCCCCCCCCC    CCCCC C C CC C CCC
*--------"------+=+"-----"----"""-"--""=M=+"""""""""""""""""""""+MM+""""+"""""""""""+++-Z-+"++""+++++"++++++=-XX-++++++=++++++++++++M
+........+......CCC+.....+....+++.+..++C CC+++++++++++++++++++++C  C++++C+++++++++++CCCC CC+CC++CCCCC+CCCCCCCC  CCCCCCCCCCCCCCCCCCCC
+''''''''C''''''   C'''''C''''CCC'C''CC    CCCCCCCCCCCCCCCCCCCCC    CCCC CCCCCCCCCCC       C  CC     C
+XXXXXXXX XXXXXX    XXXXX XXXX   X XX
+CCCCCCCC CCCCCC    CCCCC CCCC   C CC
*--------------"+M=----------"""""""""+MM=""""+++"""+++"""""+"-"=-M"""""""++"""""+"""+MZZ=""+"+"++"+""+++"++=ZXZM++++++++++++++++++=Z
+..............+C C..........+++++++++C  C++++CCC+++CCC+++++C+.+CC +++++++CC+++++C+++C   C++C+C+CC+C++CCC+CCC    CCCCCCCCCCCCCCCCCCC
+''''''''''''''C   ''''''''''CCCCCCCCC    CCCC   CCC   CCCCC C'C   CCCCCCC  CCCCC CCC     CC C C  C CC   C
+XXXXXXXXXXXXXX    XXXXXXXXXX                                 X
+CCCCCCCCCCCCCC    CCCCCCCCCC                                 C
*--------------+==+-------""-"""-"""""+MM++""++"++"++""""""""""+M-=""+"++++""+"+"+""+=ZX-+++++++"++++++++++=ZXX-+++++++=++=++++++++-X
+..............CCCC.......++.+++.+++++C  CC++CC+CC+CC++++++++++C CC++C+CCCC++C+C+C++CC  CCCCCCCC+CCCCCCCCCCC   CCCCCCCCCCCCCCCCCCCCC
+''''''''''''''    '''''''CC'CCC'CCCCC     CC  C  C  CCCCCCCCCC    CC C    CC C C CC            C
+XXXXXXXXXXXXXX    XXXXXXX  X   X
+CCCCCCCCCCCCCC    CCCCCCC  C   C
*--------------+==+"-------""""""""""+=MM+"""""+"""++""""""""""+-M+"""""""+""++""+""+MXZM++++++++++++++++++=ZZX=++++++++++++++++++=ZX
+..............CCCC+.......++++++++++CC  C+++++C+++CC++++++++++CC C+++++++C++CC++C++C    CCCCCCCCCCCCCCCCCCC   CCCCCCCCCCCCCCCCCCCC
+''''''''''''''    C'''''''CCCCCCCCCC     CCCCC CCC  CCCCCCCCCC    CCCCCCC CC  CC CC
+XXXXXXXXXXXXXX     XXXXXXX
+CCCCCCCCCCCCCC     CCCCCCC
*--------------+M+"--------"""-""""""+=MM+""""""""""""""""""""+=-M""""""""""""""++""+-XZ="+"+"++++++"+++"++-ZX-++++++++++++++++++=ZXX
+..............C C+........+++.++++++CC  C++++++++++++++++++++CCC ++++++++++++++CC++CC  C+C+C+CCCCCC+CCC+CCC  CCCCCCCCCCCCCCCCCCCC
+''''''''''''''   C''''''''CCC'CCCCCC     CCCCCCCCCCCCCCCCCCCC    CCCCCCCCCCCCCC  CC     C C C      C   C
+XXXXXXXXXXXXXX    XXXXXXXX   X
+CCCCCCCCCCCCCC    CCCCCCCC   C
*-------------"+ZM"----""""""-""""""+=-M=+"+""""""+"""""""""""+M-+""""""""++"""+"""+=-Z-+""+""+++++++++++++-ZXM+++++"++++"+++++++-XXX
+.............+C  +....++++++.++++++CCC CC+C++++++C+++++++++++C CC++++++++CC+++C+++CCC CC++C++CCCCCCCCCCCCCC   CCCCC+CCCC+CCCCCCCC
+'''''''''''''C   C''''CCCCCC'CCCCCC      C CCCCCC CCCCCCCCCCC    CCCCCCCC  CCC CCC      CC CC                      C    C
+XXXXXXXXXXXXX     XXXX      X
+CCCCCCCCCCCCC     CCCC      C
*-----""------"==Z"-"-""""""""""""""+=MM="+++"+""""""""""""+"+=--+""+"+"""+""""""+"+MZX="+"+"++++++++"++++=-ZZ++++++++++++++++++MZXXZ
+.....++......+CC +.+.++++++++++++++CC  C+CCC+C++++++++++++C+CCCCC++C+C+++C++++++C+C   C+C+C+CCCCCCCC+CCCCCC  CCCCCCCCCCCCCCCCCC
+'''''CC''''''C   C'C'CCCCCCCCCCCCCC     C   C CCCCCCCCCCCC C     CC C CCC CCCCCC C     C C C        C
+XXXXX  XXXXXX     X X
+CCCCC  CCCCCC     C C
*-----""------"==-+--"""""""""""""""+MMM=+"++++""""""""""""""+M-M""""+""++""+"+""+"=-ZZ+++"+++++++++++++++-ZZM+++++++++++++++++MZXAZM
+.....++......+CCCC..+++++++++++++++C   CC+CCCC++++++++++++++C C ++++C++CC++C+C++C+CC  CCC+CCCCCCCCCCCCCCCC   CCCCCCCCCCCCCCCCC
+'''''CC''''''C    ''CCCCCCCCCCCCCCC      C    CCCCCCCCCCCCCC    CCCC CC  CC C CC C       C
+XXXXX  XXXXXX     XX
+CCCCC  CCCCCC     CC
*--"------"---"M=M+-"-"""""""""""""++MMM=++""+"""+"""""""""""=MZ="""++"""+"++"+""+"=-ZM+""+++"+++++"+"++++-ZZ=++++++++=++++++++MXXAZ=
+..+......+...+ C C.+.+++++++++++++CC   CCC++C+++C+++++++++++C  C+++CC+++C+CC+C++C+CC  C++CCC+CCCCC+C+CCCCC  CCCCCCCCCCCCCCCCCC     C
+''C''''''C'''C    'C'CCCCCCCCCCCCC        CC CCC CCCCCCCCCCC    CCC  CCC C  C CC C     CC   C     C C
+XX XXXXXX XXX     X X
+CC CCCCCC CCC     C C
*-----"""-"---+=="-""""""""""-"""+""=MMM++""+""""""""""""""""=--+""MM+"++"+++++++"+MMZM++"""""+++++"+++++MZXX++++==+=+++++++++=ZAAXM=
+.....+++.+...CCC+.++++++++++.+++C++C   CC++C++++++++++++++++CCCC++  C+CC+CCCCCCC+C    CC+++++CCCCC+CCCCC    CCCCCCCCCCCCCCCCCC     C
+'''''CCC'C'''   C'CCCCCCCCCC'CCC CC      CC CCCCCCCCCCCCCCCC    CC   C  C       C       CCCCC     C
+XXXXX   X XXX    X          X
+CCCCC   C CCC    C          C
*-------""""-"+=="""--"---""""+""""+=MMM++""""""""""""+"""""+M-Z===+"""""+""""""++"=--="+++++"++++++"++++MZXZ+++++++++++++++++=ZXXX==
+.......++++.+CCC+++..+...++++C++++CC   CC++++++++++++C+++++C C CCCC+++++C++++++CC+CCCC+CCCCC+CCCCCC+CCCC    CCCCCCCCCCCCCCCCCC    CC
+'''''''CCCC'C   CCC''C'''CCCC CCCC       CCCCCCCCCCCC CCCCC        CCCCC CCCCCC  C    C     C      C
+XXXXXXX    X       XX XXX
+CCCCCCC    C       CC CCC
*"-----"+++"+"+MM+""""--"""""+=+=+++=MMM+""+""""""""++++""""+--M+M+"""+"++++++"++++MZ-=++++"+"+++++=+++++MXZ-+"++++++++=+++=++=ZXX-++
++.....+CCC+C+C  C++++..+++++CCCCCCCC   C++C++++++++CCCC++++CCC C C+++C+CCCCCC+CCCC  CCCCCC+C+CCCCCCCCCCC   CC+CCCCCCCCCCCCCCCC   CCC
+C'''''C   C C    CCCC''CCCCC            CC CCCCCCCC    CCCC       CCC C      C            C C                C
+ XXXXX               XX
+ CCCCC               CC
*-----"+===++++==""""-----""+M====+"=MMM+"+"+""""""+=MMM=+""+--MM+""""+"+++===+=+"+MZM"""++"""++=M-MM==++ZXX=+"++=++++=M==M=++MZXXM=+
+.....+CCCCCCCCCC++++.....++C CCCCC+C   C+C+C++++++CC   CC++CCC  C++++C+CCCCCCCCC+C   +++CC+++CCC C  CCCC   CC+CCCCCCCC CC CCC     CC
+'''''C          CCCC'''''CC       C     C C CCCCCC       CC      CCCC C         C    CCC  CCC                C
+XXXXX               XXXXX
+CCCCC               CCCCC
*""----"+=++=+===""-"-"""-""+====+++=MMM+""""""+"""+=MM-M=+"+--M-"""""+++++M-=-M+++MZM+"+"+++++=MZZXZ--==ZAXM++++++"++M-XZZ-MM-ZZXM==
+++....+CCCCCCCCC++.+.+++.++CCCCCCCCC   C++++++C+++CC  C CC+CCC C+++++CCCCC CCC CCC   C+C+CCCCCC     CCCC    CCCCCC+CC C   C  C    CC
+CC''''C         CC'C'CCC'CC             CCCCCC CCC        C     CCCCC                 C C                         C
+  XXXX            X X   X
+  CCCC            C C   C
*""----"+=====M=="--"-"-""""=MM===+++MMM+"""+""""""+=MM-M++"=M-=+""""""""+=MMMM-M++--=+""+++"++=-XZZZZM=+-ZZ="+++++++=MZXZZ---ZXAZ===
+++....+CCCCCC CC+..+.+.++++C  CCCCCC   C+++C++++++CC  C CC+C CCC++++++++CC    C CCCCCC++CCC+CCCC      CCC  C+CCCCCCCC     CCC    CCC
+CC''''C         C''C'C'CCCC             CCC CCCCCC        C     CCCCCCCC              CC   C                C
+  XXXX           XX X X
+  CCCC           CC C C
*------"+++++==M="""""""""++=====+++=MMM+"""""""""++MM--M++"=M-+""""++"""++=MMMM=+=-Z=++"++++++=-ZZZ--===-Z-+"+++++++=-XXZXZZ-XXXZ===
+......+CCCCCCC C+++++++++CCCCCCCCCCC   C+++++++++CC  CC CC+C CC++++CC+++CCC    CCCC CCC+CCCCCCCC   CCCCCC CC+CCCCCCCCC      C    CCC
+''''''C         CCCCCCCCC               CCCCCCCCC         C    CCCC  CCC               C                    C
+XXXXXX
+CCCCCC
*"""""""+"+"+====++++++++++==+=+=+++=MMM++"""+""""+==---M=++M--=""""++"+"+====MM=+M-Z=++""+++++=-ZZZZM===--Z=+"++++++=-ZZZX---XZX-===
++++++++C+C+CCCCCCCCCCCCCCCCCCCCCCCCC   CC+++C++++CCCCCC CCC CCC++++CC+C+CCCCC  CC C CCC++CCCCCCC     CCCCC CC+CCCCCCCC    CCC   CCCC
+CCCCCCC C C                              CCC CCCC              CCCC  C C               CC                    C
*====M=========MM====M==MMMM=M=MMM=MM--MMM===MMMM----ZXZ--M--Z-MM==MMM=M=MM----M---ZX-+++++++++MZXXX-M==MZZZ==+=+++++=-Z-ZZ--ZXXXM===
+CCCC CCCCCCCCC  CCCC CC    C C   C  CC   CCC    CCCC   CC CC C  CC   C C  CCCC CCC  CCCCCCCCCC     C CC    CCCCCCCCCCC C  CC     CCC
*==M==MM=MMM==MMMMMM-MMMMM--MM---M--------M----ZZZZZZZZZZXZZXXXZXXZZZXZXXZZZZZ-XZZX-ZZZZ--------XXXXZ----XXX-MMMMMMMM--ZZZ-ZZXZXAX---
+CC CC  C   CC      C     CC  CCC CCCCCCCC CCCC                               C    C    CCCCCCCC     CCCC   C        CC   C       CCC
*===+========MMMMMMMMMMMMM--MM-M---M-------Z--ZXXXZZXZZZZZXXXXXZXXXXXAXXXXXXZAXXXXXXAXXXXXXXZXXXXXAAXXAAXAXXXXXXXXAXXXXXXXXAXXXAAXAXA
+CCCCCCCCCCCC             CC  C CCC CCCCCCC CC
*""""""""+"++==MMMM====MM=MMM=M=MMM=M----MMM----ZZ--Z-Z---ZZZZXZZXZXXXXXXXXXXXZXXXAXAXXXXXXXXXXAXXXAXAAAXAXXAAAXAAAXAAAAAAAAAAAAAAIAI
+++++++++C+CCCC    CCCC  C   C C   C CCCC   CCCC  CC C CCC
+CCCCCCCC C
*-------""-""++MM=+"+++"++++"""""++"+M--M+++++++++++++=++=+M-ZZ-+====MMMMMMMM-M-MZXAX-ZMM------ZZXZXXXXXAAAXAXAXXXAAAAAIIXIIAAIIIIAII
+.......++.++CC  CC+CCC+CCCC+++++CC+C CC CCCCCCCCCCCCCCCCCC C  CCCCCC        C C     C   CCCCCC
+'''''''CC'CC      C   C    CCCCC  C
+XXXXXXX  X
+CCCCCCC  C
*--------"""""=M==+"""""+"""""""""""+MMM=+""""""""++"+++""++MZ-="+++"+++++++++"++=-ZXM+++++++++++=+=====ZXXX-M-Z-----ZZZZXXZXXXAIAXXX
+........+++++C CCC+++++C+++++++++++C   CC++++++++CC+CCC++CC  CC+CCC+CCCCCCCCC+CCCC   CCCCCCCCCCCCCCCCCC    C C CCCCC
+''''''''CCCCC     CCCCC CCCCCCCCCCC      CCCCCCCC  C   CC      C   C         C
+XXXXXXXX
+CCCCCCCC
*------""""""+=MM=+++"""""++"""""""""M--M+"""""""""+"+++"+++M--+""++++++"++++++++=-XZ=++=+++++++++++++++MXXZM+=========MMM===MXAAZ-M=
+......++++++CC  CCCC+++++CC+++++++++ CC C+++++++++C+CCC+CCC CCC++CCCCCC+CCCCCCCCCC  CCCCCCCCCCCCCCCCCCC     CCCCCCCCCC   CCC     C C
+''''''CCCCCC        CCCCC  CCCCCCCCC     CCCCCCCCC C   C       CC      C
+XXXXXX
+CCCCCC
*-------""""""=MMM++"+"""""""""""""""=M-M+"""""""""+""+""+"+MZ-++""++++++++++++"+=MZZ=++=+"++++++=++++++MXXXM=+==============M-AAZ==+
+.......++++++C   CC+C+++++++++++++++C C C+++++++++C++C++C+C  CCC++CCCCCCCCCCCC+CC   CCCCC+CCCCCCCCCCCCC     CCCCCCCCCCCCCCCC C   CCC
+'''''''CCCCCC      C CCCCCCCCCCCCCCC     CCCCCCCCC CC CC C      CC            C          C
+XXXXXXX
+CCCCCCC
*"-------"+"""+=MM++"""""""""""""""""=MM=""-+"""""""""+""+++=-Z=+"+++++++"++++++++MX-M++++++++++++++++++=ZXX-=++=++===MM======ZXXXM++
+C.......+C+++CC  CC+++++++++++++++++C  C++.C+++++++++C++CCCCC CC+CCCCCCC+CCCCCCCC  C CCCCCCCCCCCCCCCCCCC   CCCCCCCCCC  CCCCCC     CC
+B'''''''C CCC      CCCCCCCCCCCCCCCCC    CC' CCCCCCCCC CC        C       C
+HXXXXXXX                                  X
+XCCCCCCC                                  C
*----"""""""""+MM=+""+++"""""""""""-"=--M+""""""++""+""+""++M-Z=+"++"+++++++++++"+MXZM++++++"+++++++++++=XXXZ=++======MMM===+=MXAZM++
+....+++++++++C  CC++CCC+++++++++++.+CCC C++++++CC++C++C++CC C CC+CC+CCCCCCCCCCC+C    CCCCCC+CCCCCCCCCCCC    CCCCCCCCC   CCCCC     CC
+''''CCCCCCCCC     CC   CCCCCCCCCCC'C     CCCCCC  CC CC CC       C  C           C           C
+XXXX                              X
+CCCC                              C
*---""""""""""+M==+"""""""""""-""""""=---+""""""++"+"""+""++M--=+""+++++"+++++++"+=XZ-++++++++++=++=++++=XXXZ=++====MM======+==XXX-=+
+...++++++++++C CCC+++++++++++.++++++CCCCC++++++CC+C+++C++CC CCCC++CCCCC+CCCCCCC+CC  CCCCCCCCCCCCCCCCCCCC    CCCCCCC  CCCCCCCCC   CCC
+'''CCCCCCCCCC     CCCCCCCCCCC'CCCCCC     CCCCCC  C CCC CC       CC     C       C
+XXX                          X
+CCC                          C
*---"""""""+""+===+""""""""""""-"""""=M-Z+""""""++++""+""+"+M--=""""+"++"++"++++"+=-A-+++++"+++++++++=++=XXXXM+====---=======++ZXAXM+
+...+++++++C++CCCCC++++++++++++.+++++C C C++++++CCCC++C++C+C CCC++++C+CC+CC+CCCC+CCC CCCCCC+CCCCCCCCCCCCC     CCCCCCCCCCCCCCCCC     C
+'''CCCCCCC CC     CCCCCCCCCCCC'CCCCC     CCCCCC    CC CC C     CCCC C  C  C    C          C
+XXX                           X
+CCC                           C
*"""""+++"+""++=MM="""+""""""""""""""=MZ-="""+"+++++""++++"+=ZZ=""+"++++++"+++++++=-XZ=+++++++++=++======XXAXM=MMMMMMMM===M=+==MZAX-+
++++++CCC+C++CCC  C+++C++++++++++++++C  CC+++C+CCCCC++CCCC+CC  C++C+CCCCCC+CCCCCCCCC  CCCCCCCCCCCCCCCCCCC     C        CCC CCCC    CC
+CCCCC   C CC      CCC CCCCCCCCCCCCCC     CCC C     CC    C     CC C      C
*"""""""""+++"+=MM=""""""""""""""""""+=-ZM"+"++++++++++""""+=--M+++++++++++"++++++=MZZM++++++++++=+=====+MZXZZM+M=M=M=======+=+=-XXXM
++++++++++CCC+CC  C++++++++++++++++++CCC  +C+CCCCCCCCCC++++CCCC CCCCCCCCCCC+CCCCCCC    CCCCCCCCCCCCCCCCCC      C C C CCCCCCCCCCCC
+CCCCCCCCC   C     CCCCCCCCCCCCCCCCCC     C C          CCCC                C
*-""""""+++++"+=MMM+""""""""""""""""""=-Z-=""""+++"+++++"++++MZ-=++++++++++++++++++=ZXZ+"+++++++======+===-XXX-=M=M=M===++=M+===MZXAZ
+.++++++CCCCC+CC   C++++++++++++++++++CC CC++++CCC+CCCCC+CCCC  CCCCCCCCCCCCCCCCCCCCC   C+CCCCCCCCCCCCCCCCCC   CC C C CCCCCC CCCC
+'CCCCCC     C      CCCCCCCCCCCCCCCCCC     CCCC   C     C                               C
+X
+C
*---"""""""""""=MMM+"-"-"""-""""""""""+-Z-M""""++"+++++"+++++M--=++++++"+++++"+++++=--ZM++"++++===++++++==MXXZZMM=====+=++++++++=-XXX
+...+++++++++++C   C+.+.+++.++++++++++CC C ++++CC+CCCCC+CCCCC CCCCCCCCC+CCCCC+CCCCCCCC  CC+CCCCCCCCCCCCCCC       CCCCCCCCCCCCCCCCC
+'''CCCCCCCCCCC     C'C'CCC'CCCCCCCCCC     CCCC  C     C               C     C            C
+XXX                 X X   X
+CCC                 C C   C
*-""""""""""""""MM-+"""""+"+=""""""++""M-Z-++"+=M++++=+++++++M--=+++++++++=++++++++=-XXM+++=+=+M=+=+=+====MXXZXM===+==+==+=+++++=MXXX
+.++++++++++++++  CC+++++C+CC++++++CC++ C CCC+CC CCCCCCCCCCCC CCCCCCCCCCCCCCCCCCCCCCC   CCCCCCC CCCCCCCCCC      CCCCCCCCCCCCCCCCC
+'CCCCCCCCCCCCCC    CCCCC C  CCCCCC  CC      C
+X
+C
*"--"-----"-""""=MM+""""""=-M"""+""+""+=-X-+"+++=++++"+++"+++=M-M+"++"+++++++"+++"++MXX-=++++===+==========-XXXX===M=+++++=++++=++MXA
++..+.....+.++++C  C++++++C  +++C++C++CCC CC+CCCCCCCC+CCC+CCCC C C+CC+CCCCCCC+CCC+CC   CCCCCCCCCCCCCCCCCCCCC    CCC CCCCCCCCCCCCCC
+C''C'''''C'CCCC    CCCCCC   CCC CC CC      C        C   C        C  C       C   C
+ XX XXXXX X
+ CC CCCCC C
*---------"""-""+MMM+"-"""-Z+""""""""""+-XXM++++++"++++++++++=M--=++++++++++=+++++++=-ZZM++++====+==++===MMMZXZZ-===++++++++++++++=ZX
+.........+++.++C   C+.+++C C++++++++++CC   CCCCCC+CCCCCCCCCCC CCCCCCCCCCCCCCCCCCCCCCC   CCCCCCCCCCCCCCCC       CCCCCCCCCCCCCCCCCCC
+'''''''''CCC'CC     C'CCC   CCCCCCCCCC           C
+XXXXXXXXX   X        X
+CCCCCCCCC   C        C
*-"-"----""""-"-+MMM+"-"-+M+"""""""""+"+MXXZ++++++++"++"+"++++=--=+++"++++"+=+++++++=-ZZ-++=+==+====+===MMMM-XXZ-+=+++++++++++++++MZX
+.+.+....++++.+.C   C+.+.C C+++++++++C+C    CCCCCCCC+CC+C+CCCCCCCCCCC+CCCC+CCCCCCCCCCC  CCCCCCCCCCCCCCCC    C   CCCCCCCCCCCCCCCCCC
+'C'C''''CCCC'C'     C'C'   CCCCCCCCC C             C  C C           C    C
+X X XXXX    X X      X X
+C C CCCC    C C      C C
*"------"""--"--"M--M--""""""+"""""""""+-XXZ++""+"++"""++"++""=--=++"""+++"+++++"++++MZ-Z-=++++====+=M===MM=M-XXZM+++++++++++++=ZAAII
++......+++..+..+ CC ..++++++C+++++++++CC   CC++C+CC+++CC+CC++CCCCCC+++CCC+CCCCC+CCCC  C CCCCCCCCCCCC CCC  C C    CCCCCCCCCCCCCC
+C''''''CCC''C''C    ''CCCCCC CCCCCCCCC       CC C  CCC  C  CC      CCC   C     C
+ XXXXXX   XX XX     XX
+ CCCCCC   CC CC     CC
*---"-"""""""""-"=---+"""""""""++"""""+"=XZZM"+"+"+++++"+"""+++M-M++"++++"++++""+++++=-XX-===+=====+==MM=MM==M-ZZM=+++++++++=MX+====1
+...+.+++++++++.+CCCCC+++++++++CC+++++C+C    +C+C+CCCCC+C+++CCC C CC+CCCC+CCCC++CCCCCCC  CCCCCCCCCCCCC  C  CC C   CCCCCCCCCCC
+'''C'CCCCCCCCC'C     CCCCCCCCC  CCCCC C     C C C     C CCC        C    C    CC
+XXX X         X
+CCC C         C
*--""""""""""""""=-ZZM""""""""""+++++++++-ZX-++"+"+++"+"+"+"+++M--=+++++++++++"+++++++-XXZM=++========MM======MXZZM=+++++=M-ZI+1====1
+..++++++++++++++CC   ++++++++++CCCCCCCCCC  CCC+C+CCC+C+C+C+CCC CCCCCCCCCCCCCC+CCCCCCCC    CCCCCCCCCCC  CCCCCC     CCCCCCC C
+''CCCCCCCCCCCCCC     CCCCCCCCCC               C C   C C C C                  C
+XX
+CC
*""-"""-"""""""""+MZX-+"""""""""+""++"+"+M-XZ=+"+""++"+"+""""""=M-M+"+"++"++++++=+++++MXXXZ=+==+==========++++=-ZZZ=+++M-XAI=++==++11
+++.+++.+++++++++C   CC+++++++++C++CC+C+C C  CC+C++CC+C+C++++++C C C+C+CC+CCCCCCCCCCCC     CCCCCCCCCCCCCCCCCCCCC   CCCC C
+CC'CCC'CCCCCCCCC      CCCCCCCCC CC  C C       C CC  C C CCCCCC     C C  C
+  X   X
+  C   C
*"--"""""""""""-"+MZZ-="""""""""""+""+""+=-XX="++"+"+"++"++""-"+MMM+"+""""+"+++++==+++MXXXZM==+++=+=++++=====++M-XZM=-AII====++=++=1-
++..+++++++++++.+C   CC+++++++++++C++C++CCC  C+CC+C+C+CC+CC++.+C   C+C++++C+CCCCCCCCCC      CCCCCCCCCCCCCCCCCCC C   CC
+C''CCCCCCCCCCC'C      CCCCCCCCCCC CC CC      C  C C C  C  CC'C     C CCCC C
+ XX           X                                             X
+ CC           C                                             C
*""-"""""""""""-""=-Z-M"""""""""+""""""""=-ZZM+""""""+"+""+"""++=M-=+""""++"+++"+++++++=-ZXM+++++++++=++++++++++MZXXXII==+==1+++=++1-
+++.+++++++++++.++CC C +++++++++C++++++++CC   C++++++C+C++C+++CCC CCC++++CC+CCC+CCCCCCCCC   CCCCCCCCCCCCCCCCCCCC
+CC'CCCCCCCCCCC'CC     CCCCCCCCC CCCCCCCC      CCCCCC C CC CCC       CCCC  C   C
+  X           X
+  C           C
*+""""""""""""""""+----="""""""""""""""""=-ZZ-="+""""+"+"""++"""+M-M+""""++++"+++++++++=MZZ-=++++++++=+++++++++=-XAII====++=11+++++1-
+C++++++++++++++++CCCCCC+++++++++++++++++CC  CC+C++++C+C+++CC+++C C C++++CCCC+CCCCCCCCCC   CCCCCCCCCCCCCCCCCCCCCC
+ CCCCCCCCCCCCCCCC      CCCCCCCCCCCCCCCCC      C CCCC C CCC  CCC     CCCC    C
*=""""""""""""""""+--XZM"""+""+""""++""""+MZZX=+""""++"+""++""""+MM-=+"""+++++"++=++++++=-ZX-=+=+=+=+++++++++MZXII==+=+++++=++++++111
+C++++++++++++++++CCC   +++C++C++++CC++++C    CC++++CC+C++CC++++C  CCC+++CCCCC+CCCCCCCCCCC  CCCCCCCCCCCCCCCCC
+ CCCCCCCCCCCCCCCC      CCC CC CCCC  CCCC       CCCC  C CC  CCCC      CCC     C
*M"""""+"""""""""""MXZX-="""""""""+""""+++=-XZ-++"""+++++"+""++++M--=+++++++++++++++++++M-ZXZ-=====++++++==MZI======++=+++++1++11 +1-
+ +++++C+++++++++++    CC+++++++++C++++CCCCC  CCC+++CCCCC+C++CCCC CCCCCCCCCCCCCCCCCCCCCC C   CCCCCCCCCCCCCC
+ CCCCC CCCCCCCCCCC      CCCCCCCCC CCCC          CCC     C CC
*-=""""""""""""""""=-ZX-M""""""""""""""++"+-ZZZ="""+""+""""+"""""+MZ-=+++++"+++++++++++==-ZZ--===++=++++=ZXI=II=+=+++++++1111+111+11-
+CC++++++++++++++++CC  C ++++++++++++++CC+CC   C+++C++C++++C+++++C  CCCCCCC+CCCCCCCCCCCCCC  CCCCCCCCCCCCC
+  CCCCCCCCCCCCCCCC      CCCCCCCCCCCCCC  C      CCC CC CCCC CCCCC          C
*Z-+"""""""""""""""+M-ZZ-M"""""+""""+"""+""=Z-Z-=""++"""++"""""""+=--M=+"+++++++++++++====MZXZ-=+++=+=M-AII====+=+1++1111111++1+11111
+ CC+++++++++++++++C C  C +++++C++++C+++C++C C CC++CC+++CC+++++++CCCC CC+CCCCCCCCCCCCCCCCC    CCCCCCCC C
+   CCCCCCCCCCCCCCC       CCCCC CCCC CCC CC      CC  CCC  CCCCCCC       C
*XZ="--"""""""""""""=MZZZ-+""""""+""""""+""+M-ZXM+"+="""""""""""+"+M--M+""++++=+=++=+++==+MM--ZM=++=-XAII==+=+=+++1+1111111++=1+1++1+
+  C+..+++++++++++++C    CC++++++C++++++C++C C   C+CC+++++++++++C+C CC C++CCCCCCCCCCCCCCCC  CC  CCCCC
+   C''CCCCCCCCCCCCC       CCCCCC CCCCCC CC       C  CCCCCCCCCCC C      CC
+    XX
+    CC
*XAM""""""""""""""""+M-ZXX-"""+""++""""""""+MXXX-=++"""""+"""+"+"++M-ZZ=+++++++++===+M=====M-XZ-MMZXA+II= +++++=++1++1-1-+11-++=+1-=+
+   ++++++++++++++++C C   C+++C++CC++++++++C    CCCC+++++C+++C+C+CC C  CCCCCCCCCCCCCC CCCCC C  C
+   CCCCCCCCCCCCCCCC       CCC CC  CCCCCCCC         CCCCC CCC C C
*XXZ=--"""""""+""""""M-ZXXZ+""""""+"+"++""""+-ZZZM=++""""""""""""+++=-ZM++++++++++++========M-ZXXII=+=====++=+++=1++111111111++=+1-=+
+   C..+++++++C++++++ C    C++++++C+C+CC++++CC    CCC++++++++++++CCCCC  CCCCCCCCCCCCCCCCCCCC C
+    ''CCCCCCC CCCCCC       CCCCCC C C  CCCC         CCCCCCCCCCCC
+    XX
+    CC
*ZXX-""""""""""""""""+MZXXX-+"+"+"+"+"+++"""+MZXXZM+=++""""++++++++++MZ-=++++=++++++=======M-AAII======+=+++++1++11+11111111111==+1 -
+   C++++++++++++++++C     CC+C+C+C+C+CCC+++C      CCCC++++CCCCCCCCCC  CCCCCCCCCCCCCCCCCCCC C
+    CCCCCCCCCCCCCCCC        C C C C C   CCC           CCCC
*XXX-=""""+"""""""+""+=-ZXXXM+""+++++"+""+""++-ZXZ-=++++++"+++"++++""=---=+++++++++=+++==MZZAIIII======+1+++1+11111+1111111-1--1+++ -
+   CC++++C+++++++C++CCC     C++CCCCC+C++C++CCC   CCCCCCCC+CCC+CCCC++CCCCCCCCCCCCCCCCCCCC
+     CCCC CCCCCCC CC         CC     C CC CC              C   C    CC
*ZXXX-"""""""+""""""""+MZXXX-++"""++"+""""++++M-XXZ-=++++""+"+++"++""+---M+++++++++====ZXAIII==I=+=+=++1+1+1+111+++1111+1+ --   ++++
+    C+++++++C++++++++C     CCC+++CC+C++++CCCC C   CCCCCC++C+CCC+CC++CCCC CCCCCCCCCCCCC
+     CCCCCCC CCCCCCCC         CCC  C CCCC               CC C   C  CC
*MZXZZ=""""""""""""""""+-XAAX="""+""""""+""+++=ZXXX-="+++""+""++++"+++=M--M++++++++=MZXIII==I==+=+++++1+1+1+1111-111---1----     -+++
+     C++++++++++++++++CC    C+++C++++++C++CCCC    CC+CCC++C++CCCC+CCCC CC CCCCCCCCC
+      CCCCCCCCCCCCCCCC       CCC CCCCCC CC          C   CC CC    C
*M-ZXX-+""""""+""""""""+MZXAA-="""+"""+"+++++"+MZXXX-="""""++"""+++++++M-Z-===++==-XI====I======+=++1111111111-111---             -1+
+ C   CC++++++C++++++++C     CC+++C+++C+CCCCC+C     CC+++++CC+++CCCCCCC C CCCCCCCCC
+       CCCCCC CCCCCCCC        CCC CCC C     C        CCCCC  CCC
*+MZXXXM"""""""""""+""""+-XXAXM"""""""+""++"+"++MZAXXM"+""""++""+++"++++M-ZM===MZII==II=====I==+++++11111---11-+1--                 -
+C      +++++++++++C++++CC     +++++++C++CC+C+CC      +C++++CC++CCC+CCCC C  CCC
+       CCCCCCCCCCC CCCC       CCCCCCC CC  C C        C CCCC  CC   C
*"=-ZXX-+"""""""+++""""""=ZXXXX=+"""++""+++"+++"+-XIXZ=+"++++++++""+"+++=---ZXA=+++I===I===+++++1++-111-1-1-+----                  -
++CC   CC+++++++CCC++++++C     CC+++CC++CCC+CCC+CC    CC+CCCCCCCC++C+CCCCCCC
+C       CCCCCCC   CCCCCC        CCC  CC   C   C        C        CC C
*""M-ZXZM""""""""""""""""+MZXXX-=""""""++"++""++"=ZXXXM+++""++"+++"++++++-ZAI=+=====I====+=++++++111------------              - ---
+++ C    ++++++++++++++++C     CC++++++CC+CC++CC+C     CCC++CC+CCC+CCCCCCC
+CC      CCCCCCCCCCCCCCCC        CCCCCC  C  CC  C         CC  C   C
*""=-ZXXZ+""""""""""""""""=ZXXXZM+"""""+++++""++"=-XXAX="+++++++"+++++=-XI==+++==+==I==++++++++111-1---- -                   --111+=I
+++CC    C++++++++++++++++C      C+++++CCCCC++CC+CC    C+CCCCCCC+CCCCCCC
+CC       CCCCCCCCCCCCCCCC        CCCCC     CC  C       C       C
*+""=-ZXX-+"""""""""+""+""+MZXXXZM"""++"++++"+"""+=-XAAZ=+++++++"+"+=XA=+++======+==+=+++11111111---- --                 ----111=X="-
+C++CC   CC+++++++++C++C++C       +++CC+CCCC+C+++CCC    CCCCCCCC+C+CC                                                             C+.
+ CC       CCCCCCCCC CC CC        CCC  C    C CCC               C C                                                                C'
+                                                                                                                                   X
+                                                                                                                                   C
*"""+M-XZX-""""++""""""""+"+-ZXAAZM""""+++++"+"+""+MXXAXZ+"++++++=-I=+1++======++++++111+11111111- -- -                 --1-1+1+ZZ="-
++++C C   C++++CC++++++++C+CC      ++++CCCCC+C+C++C      C+CCCCCCCC                                                               C+.
+CCC       CCCC  CCCCCCCC C        CCCC     C C CC        C                                                                        C'
+                                                                                                                                   X
+                                                                                                                                   C
*""""+M-XXZ=""""""+"""""""""+-XAXXZ+"""+"++"+"+""+"+MZXXZ=+""+=-X=++1+==III+==++++++1++11+11111-1---                --111+1==I=++++=I
+++++C C   C++++++C+++++++++CC     C+++C+CC+C+C++C+C     CC++CCC
+CCCC       CCCCCC CCCCCCCCC        CCC C  C C CC C        CC
*""""+=ZZXX-+""+"""+"""""""""=ZXAAXM+"""""+""+"""++"+MZXXZM=MXI+111==IIIII====+++++1++1+111111----             ---11-11++==I=====+111
+++++CC    CC++C+++C+++++++++C      C+++++C++C+++CC+C      C
+CCCC        CC CCC CCCCCCCCC        CCCCC CC CCC  C
*"""""+M-ZZZ-+"+"++""""""""""+=ZXXAXM""""""""""+++++"+MXZAA=+-11+==AIIII=I==+=+++++11111+111--- -         ---11111++==I=====+++++++++
++++++C C   CC+C+CC++++++++++CC      ++++++++++CCCCC+C
+CCCCC        C C  CCCCCCCCCC        CCCCCCCCCC     C
*"+""""+M-XXZM""++""""""""""""+-XAAAXM+""+"++"+"++""++-AI1---1=IAAAAA=I=+==++===+++1+11-11- - --       -  111++1++11I-MA=+-+++++===+=
++C++++C C    ++CC++++++++++++CC      C++C+CC+C+CC++CCC                                                              C
+C CCCC       CC  CCCCCCCCCCCC         CC C  C C  CC
*""""-""=-ZXXZ="""""""""""+""""=-XAAXZ+"""""""+""++=-I+1---+=IAXXAAIIIIII==I==+++=++111-1- --        --1111+1++++=+IM++=+-ZI===++++++
+++++.++CC    C+++++++++++C++++CC     C+++++++C++CCCC                                                                CCCCC
+CCCC'CC       CCCCCCCCCCC CCCC        CCCCCCC CC
+    X
+    C
*""""""""MZZXX-=""""""""""""""""=ZAAAXZ=""""""++=-I+-  -1=AAXAAAAIAIIIIII==I++++++1+111 --     -   --111+====+=IIZXMM==+====MMZXA==++
+++++++++     CC++++++++++++++++C      C++++++CCCC                                                                   CCCCCCC
+CCCCCCCC       CCCCCCCCCCCCCCCC        CCCCCC
*+"+"""""+M-XZXZ=""""""""""""""""=ZXAAX-=""""+MA+-   11IAXXXXAAAAIIIII===I==+++++1111---   - ----1111++IAZA+1-1Z==M--M-=========M--XA
+C+C+++++C C    C++++++++++++++++C     CC++++C                                                                  CC CC CCCCCCCCCC CC
+ C CCCCC        CCCCCCCCCCCCCCCC        CCCC
*""""+"+""+--ZXXZ+"-""""""""""""""=ZXAXA-++-A1     1+AXZXXAAAAIIAIIIII+===+=+1+++1-1 -- -----11++11+=X-ZI1-  =M+===M--Z-MM====M=M=M=M
+++++C+C++CCC    C+.++++++++++++++C     CCCC                                                          C        CCCC CC C  CCCC C C C
+CCCC C CC        C'CCCCCCCCCCCCCC
+                  X
+                  C
*"++""+""""=--XXZM+"""""""+""""""""=-XXAAI1-    -+IXZXXAXAAAAAIAAI==I===I++11++1--- ----11111+++=AX--X= --=X=+=======--ZZ--=M=======M
++CC++C++++CCC    C+++++++C++++++++CC                                                              CC       CCCCCCCCCCC  CCC CCCCCCC
+C  CC CCCC        CCCCCCC CCCCCCCC
*"""""""""""=-ZXXX-+""""""""""""""""MA=+-     -+IAXZXXAAAAAAAIIIII======++++11-------1-11+1=+=AXZZXI+-1=A-M=+========MM--Z--M====M===
++++++++++++CC    CC++++++++++++++++                                                                     C CCCCCCCCCC  CC CC CCCC CCC
+CCCCCCCCCCC        CCCCCCCCCCCCCCCC
*""+"""""""""=-XXXZM+""""--"""""""=A=-      1IXXXXXXXAAAXAAIIAIIII=====++++1+----1-11++====AXMMX=+-1=ZM==+===========MMMMZ--ZMM======
+++C+++++++++CC     C++++..+++++++C                                                                    CCCCCCCCCCCCCC     CC   CCCCCC
+CC CCCCCCCCC        CCCC''CCCCCCC
+                        XX
+                        CC
*""""""+""+"""=-ZXXXZ+""""""""""M=       -+A-Z-AXXXAAAAIAAAAII=III====+=111111-11111+==IIA---A+--1AM++=+========M=====M==MMM--Z-MMM==
+++++++C++C+++CC     C++++++++++            C C                                           CCC       CCCCCCCCCCCC CCCCC CC   CC C   CC
+CCCCCC CC CCC        CCCCCCCCCC
*"""""""""""""+=-ZXZZM+""--"+MA-      -1=X---XXXXAAAAAAAAAAAAAIIIII+++++-11-1+++1+=IIAZM=-X=11+=Z++++==+=++==++==========M=-MZ--Z--MM
++++++++++++++CCC     C++..+C             CCC                                           CC       CCCCCCCCCCCCCCCCCCCCCCCC CC  CC CC
+CCCCCCCCCCCCC         CC''C
+                        XX
+                        CC
*""""""""""""""+M-ZXZXM""+MX=1     -1=IZ--ZZXAAAAXAAAAAAIAAAAIIA===++1++-1++=====AXZMM-XI+1=IZZZ-===+=====+================M=MM--ZXZ-
+++++++++++++++C C     ++C              CC                                            C         CCCCCCCCCCCCCCCCCCCCCCCCCCC C  CC   C
+CCCCCCCCCCCCCC        CC
*"""""""""""""""=M-ZZXZMX+1      1+A----ZXXXXXAAAXAAAAAIAAAAA===+++++1+1+==I=IAAXM=MXI11+X-M==M-Z--=++==+=+======M=======M===MMMM--AX
++++++++++++++++C C                 CCCC                                          C       C CC C CCCCCCCCCCCCCCCC CCCCCCC CCC    CC
+CCCCCCCCCCCCCCC
*=+""+"""""""""""+M-ZI+        1=X-MMZZXXXXAAAAAAAAAAAAIIIAII====++====+=IIAAX-ZXAI=++IM+++=+=M--ZZ-M====+======MM====+M=M======MM-MZ
+CC++C+++++++++++C C              C                                           C         CCCCCC CC  C CCCCCCCCCCC  CCCCC C CCCCCC  C
+  CC CCCCCCCCCCC
*M+""""""""""""""+Z=1 -    11+A-MM-ZZXXXXXXAAIAAAAAAAAAAAIAII===I=IIAIA+AXX=+++=-XAX-=++++++++=MMMZZZ-M==========M=======M==========M
+ C++++++++++++++C             C  C                                        CCCCCC   CCCCCCCCCCC      C CCCCCCCCCC CCCCCCC CCCCCCCCCC
+  CCCCCCCCCCCCCC
*ZM+""""""""-""MXI1-- - --+IX-M----ZZXXZXXAXAAAAAAAIAAAAIIIIIIIIIAXXXZZXXXZM+=+++++++++++++++++=+=M-ZX--M=======M========M=M======M==
+  C++++++++.++              C CCCC                                         CCCCCCCCCCCCCCCCCCCCCC C  CC CCCCCCC CCCCCCCC C CCCCCC CC
+   CCCCCCCC'CC
+           X
+           C
*-M="--+M-M++Z=1-  --+AXXXXZ---ZZ-XZXXXXXXXAAAXAAAAAAAAAAAIAAXXZ-Z--M==MZZZ-MMM+++++++"++=+++++=M+=MM-ZXX-M=M+==M++======M=M=M=======
+C C+..C C CC               CCC  C                              C CC CC    C   CCCCCCC+CCCCCCCCC CC  C   C C CCC CCCCCCCC C C CCCCCCC
+   C''                                                                               C
+    XX
+    CC
*ZZM=MA+1=I=- ---  =Z=+==M-ZZ-ZZZXXXXXAXAAAAAAIXIAAAAAAAXXXZZ--M-==+"++=MZZXXM++++=++++=+++++++-=+===-ZXXX-M==+=Z==+===MMMM=MMM===M==
+   C                CCCC C  C                               CC CCCC+CCC      CCCCCCCCCCCCCCCCCCCCCCCC    C CCCC CCCCCC    C   CCC CC
+                                                                   C
*-XA+----1--   -1I-+""+=M-ZZZZXZXZZZXXXXAXAXXAXXAAAAXXZZZ-MM===+++++"++"+=MXZMM=+++++++=++++=+==++++++M-ZXXZZM=+M==+=M=+=M===M=======
+C                CC++CC C                               C  CCCCCCCC+CC+CC     CCCCCCCCCCCCCCCCCCCCCCC C      CC CCCC CCC CCC CCCCCCC
+                   CC                                              C  C
*I1-----1--- -=ZM+++=M---ZZXZZZZXZZXXXXXXXXXXAXXXXXXZ-M===++++++++"+++++++=MM--M=++++++=++++++=+++++=++=M-XXZZ-=====+==+====MM======-
+                CCCC CCC                            C CCCCCCCCCCC+CCCCCCCC  CC CCCCCCCCCCCCCCCCCCCCCCCC C    CCCCCCCCCCCCCC  CCCCCCC
+                                                                 C
*-----1+1--+AM++++=M-ZZZZZZZ-ZZXZZZZXZXXXXXXXAXXZZ-M=+=M=+++++++++++++++++++=----M=++++++++++++++++++++===--ZZXZZM==========+======-Z
+             CCCCC C       C                     C CCC CCCCCCCCCCCCCCCCCCCCCCCCC CCCCCCCCCCCCCCCCCCCCCCCCCC      CCCCCCCCCCCCCCCCCC
*  11++++A-+""+=M---ZZZXZZZXZZXXXXXXXZXAXXXXXZZ-MM++M-XAX=+++++++=+++=++++=+==M-X--M=+++=++======++======+==--ZXXXZ-MM===MM=======-XA
+         CC++CC CCC                           C  CC C   CCCCCCCCCCCCCCCCCCCCC C CC CCCCCCCCCCCCCCCCCCCCCCCCCC     C  CCC  CCCCCCCC
+           CC
*+====IX=""++=MM---ZZZZ-ZZ-ZXZZZZZZXZXXXXXXXZ-M=+++=-XAAAZ=++++++++++++"++++++=M--Z-M=+++++++=====++===+=+===MMZXAAXZ-M==M-====M=-XAA
+       C++CCC  CCC    C  C                  C CCCCCC     CCCCCCCCCCCCC+CCCCCCC CC C CCCCCCCCCCCCCCCCCCCCCCCC        C CC CCCCC CC
+        CC                                                            C
*AAAZ-=""++MMM----ZZZXZZZZ-ZZZZXZXZ-ZZXZZ--M==++++++MZAAAAX=++++++++++++++++++===M----M=+++++===+==+++=+=======--XXAXAZ-M======M-ZAAX
+    CC++CC   CCCC        C        C     CC CCCCCCCC       CCCCCCCCCCCCCCCCCCCCCC CCCC CCCCCCCCCCCCCCCCCCCCCCCCCC      C CCCCCC C
+      CC
*-M+"""++=M-----ZZZ-ZZZZ-ZZZZZZZZ--ZZ--MM==++=+++++++=ZAXAXZM+"+++++++++++++++++++=M-ZZM==+++==++++=++=+=========M-XXAAAX--M===MZAAAX
+C C+++CCC CCCCC   C    C        CC  CC  CCCCCCCCCCCCC       C+CCCCCCCCCCCCCCCCCCCC C   CCCCCCCCCCCCCCCCCCCCCCCCC C      CC CCC
+   CCC                                                       C
*"-""+=-M-------ZXZZXZZZ-ZZZ-Z-XZ--MM==++"++++++++++++=-ZAAXXM++"+++++=++=+=+++++++=M-XZZM==+=+===+=+==========M==MM--XXXAXZ-M--AAAZ=
++.++CCC CCCCCCC        C   C C  CC  CCCC+CCCCCCCCCCCCCC      CC+CCCCCCCCCCCCCCCCCCC C    CCCCCCCCCCCCCCCCCCCCC CC  CC      C CC    C
+C'CC                                    C                      C
+ X
+ C
*+++=MMMM-------ZZ-------ZZ--Z--ZZZ-=++""+"+++++++++++++-XXXXXM++++++++++++++++++++==M-ZXX-M==++========+===+==M=====MM-XXXXXAIAAAZ-=
+CCCC    CCCCCCC  CCCCCCC  CC CC   CCCC++C+CCCCCCCCCCCCCC      CCCCCCCCCCCCCCCCCCCCCC C   C CCCCCCCCCCCCCCCCCCC CCCCC  C           CC
+                                      CC C
*===MMMMM-----Z-----Z--Z--Z---MMXAIA--=+"+++++"+++++++++=M-XXA-M=+++++++=++++++++==++=M-ZZX--M===+======================M--XAAAIIIA-=
+CCC     CCCCC CCCCC CC CC CCC      CCCC+CCCCC+CCCCCCCCCC C   C CCCCCCCCCCCCCCCCCCCCCC C   CC CCCCCCCCCCCCCCCCCCCCCCCCCC CC        CC
+                                       C     C
*=MMMMMMMM-M-----Z------Z---M=+=XIIIXXZ="""++""+++++"+"+++=-ZXXZ-=++++++=+++++++=+=++===M-ZZZX-MM===+========+============MZAIIIIIIXZ
+C        C CCCCC CCCCCC CCC CCC       C+++CC++CCCCC+C+CCCCC    CCCCCCCCCCCCCCCCCCCCCCCC C    C  CCCCCCCCCCCCCCCCCCCCCCCCC
+                                       CCC  CC     C C
*=M=MMMMM------M------Z-MM=++"+ZAIAAAXX-=+""""+"++""++++++++M--XX-M+++++++"++++==+++++++==--ZXZZ-==========+=========+====A-XAIIXXXXA
+C C     CCCCCC CCCCCC C  CCC+C        CCC++++C+CC++CCCCCCCC CC  C CCCCCCC+CCCCCCCCCCCCCCCCC    CCCCCCCCCCCCCCCCCCCCCCCCCC C
+                            C            CCCC C  CC                      C
*MMMM-MMM---M----M----M==++==-ZXAXXZXXAAX=+""""""+"++""+""""+=MZZXZM=+++++++++=+++++=++++===MZXAXZ-===+=====++========M=MMAAXXX--M-XX
+    C   CCC CCCC CCCC CCCCCCC           CC++++++C+CC++C++++CC      CCCCCCCCCCCCCCCCCCCCCCCC      CCCCCCCCCCCCCCCCCCCC C       CC C
+                                          CCCCCC C  CC CCCC
*MMMMMM-M-----Z--MM==++++=MZXAXX-M+=-ZXAAX-+"""""++"""+++++""++M-ZXZ-=++++++++=+++++=+===+====-ZXXXZ-==++===============M-XIX-M==MMM-
+      C CCCCC CC  CCCCCCC      C CCC     CC+++++CC+++CCCCC++CC C   CCCCCCCCCCCCCCCCCCCCCCCCCCC     CCCCCCCCCCCCCCCCCCCC C   C CC   C
+                                           CCCCC  CCC     CC
*MMMMMM----M---MM==+++=-ZXXXZ-M=+"""+-XAAAX-="""++++++"+++""++++=MZXX-M++++++++==+++++===+=+=+=MMZXXXX-M===============M-XAIZMM====MM
+      CCCC CCC  CCCCCCC     C CC+++CC     CC+++CCCCCC+CCC++CCCCC    C CCCCCCCCCCCCCCCCCCCCCCCC       C CCCCCCCCCCCCCCC C      CCCC
+                                CCC         CCC      C   CC
*M-MM-MMMMM-M==++"++M-ZAXX-M+""""""""+-XAAAIAM++"+++++++++"+"+++=+M-XXZ-==++++=++====+=====+======MZXXAXZ======M=======-ZAAXZ==M=M=MM
+ C  C     C CCCC+CC C    C C++++++++CC       CC+CCCCCCCCC+C+CCCCC C   CCCCCCCCCCCCCCCCCCCCCCCCCCC       CCCCCC CCCCCCCC     CC C C
+                C           CCCCCCCC           C         C C
*MMM=M======++++==-ZXXX-M+""""+"""""""+MZAAAAX-="+"++++""++"+++++++=M-XZ-M==+=++=+===M+==++=====++=--ZZXAZ--=========MMZXXZM-=MM====M
+   C CCCCCCCCCCCCC    C C++++C+++++++C       CC+C+CCCC++CC+CCCCCCCC C  C CCCCCCCCCCC CCCCCCCCCCCCCCC     CCCCCCCCCCC       CC  CCCC
+                         CCCC CCCCCCC          C C    CC  C
*=M===MMM=+"++=-ZZXZXZX-="-""""""+""""""=ZXAAAX-=+"""++""++++++++"+++=M-ZZ-=+++++++==++==++=+=+=+====M--XXZXZM==+===MM-XX-MMMM=MM==MM
+C CCC   CC+CCCC       CC+.++++++C++++++C      CCC+++CC++CCCCCCCC+CCCC C  CCCCCCCCCCCCCCCCCCCCCCCCCCC CC      CCCCCC  C  C    C  CC
+          C             C'CCCCCC CCCCCC          CCC  CC        C
+                         X
+                         C
*=====M---==M-ZZZ----XXX-+"-"""""""""""""=-XXAAAZ=++"+++++++++++++++"+=M--Z-==+++=++==+++=+=+=++++=====MM--XX--M====M--Z-M===-MMM=MMM
+CCCCC CCCCC C   CCCC   CC+.+++++++++++++CC      CCC+CCCCCCCCCCCCCCC+CC CC CCCCCCCCCCCCCCCCCCCCCCCCCCCC  CC  CC CCCC CC C CCCC   C
+                         C'CCCCCCCCCCCCC           C               C
+                          X
+                          C
*==+==--XX--ZZ-M=++-ZXXXXZ=+""""""""""""""+-XXAIAXM+"++"+++++"+++++"+"+==MZXZ-M=+++=++++=+===++=+=++M++++MM----MMMMMM-M-M==M=-=M=M=MM
+CCCCCCC  CC  C CCCC      CC++++++++++++++CC       C+CC+CCCCC+CCCCC+C+CCC    C CCCCCCCCCCCCCCCCCCCCC CCCC  CCCC      C C CC CCC C C
+                           CCCCCCCCCCCCCC          C  C     C     C C
*++"++=ZZ-Z-M++""""+MZXXXXZM+""""""+""""+""+=-XXAXX-=++++++++++++++++++++==--XZ-M==+=+=++=+=+==+========++===MMMMM-MMMM=M==MMM-MMMMMM
+CC+CCC  C C CC++++C        C++++++C++++C++CCC     CCCCCCCCCCCCCCCCCCCCCCCCCC  C CCCCCCCCCCCCCCCCCCCCCCCCCCCC     C    C CC   C
+  C           CCCC          CCCCCC CCCC CC
*++""+=--Z--+""--"-""=--ZZXX-=+""""""""+"""""+M-XXXZ-=++"+++++++++++++++++=MM-ZZ-M===+++=++=+=====+++===+===+===MMMMMM=======MZMM=MMM
+CC++CCCC CCC++..+.++CCC    CCC++++++++C+++++C C    CCCC+CCCCCCCCCCCCCCCCCC  C  C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCC      CCCCCCC    C
+  CC        CC''C'CC          CCCCCCCC CCCCC           C
+              XX X
+              CC C
*"""-+M-ZZXZ-="--""--""MZZXXXZM+"""""""""""""""+M-ZXX-M+++++"+"++++++++++M+++=M--MM=====+=+==++=+=+=======+=+=================M-===M=
++++.C C    CC+..++..++        C+++++++++++++++C C   C CCCCC+C+CCCCCCCCCC CCCC CC  CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC CCCC C
+CCC'         C''CC''CC         CCCCCCCCCCCCCCC             C C
+   X          XX  XX
+   C          CC  CC
*----""=-ZXXX-M"--"-"--"=-XXXXXM"-""""""""+++"""+=MXXXZ-=+++""""+++++++++=++++==M=MM=++=+=+=+===M=============+======M=M======M-===M=
+....C+CC    C +..+.+..+CC      +.++++++++CCC+++CC     CCCCC++++CCCCCCCCCCCCCCCC C  CCCCCCCCCCCC CCCCCCCCCCCCCCCCCCCC C CCCCCC CCCC C
+''''BC        C''C'C''C        C'CCCCCCCC   CCC            CCCC
+XXXXH          XX X XX          X
+CCCCX          CC C CC          C
*------"=M--ZZZM+"--"--""=MZXXXZM+""""""""""""+"""+MMZ---==+"+"+++++++++=++"++++++=====+=-M------M=M=M==========M==+====+======MM====
+......+C CC    C+..+..++C       C++++++++++++C+++C   CCCCCC+C+CCCCCCCCCCCC+CCCCCCCCCCCCCC CCCCCC C C CCCCCCCCCC CCCCCCCCCCCCCC  CCCC
+''''''C         C''C''CC         CCCCCCCCCCCC CCC          C C            C
+XXXXXX           XX XX
+CCCCCC           CC CC
*"-------+=-ZZXZ-+"----"--"=--ZXZ-=+""""""""""""""""+=M--MM=++++"++++"+++++++++++++++++=M=++++===MMM========================+===M====
++.......CCC    CC+....+..+CCC   CCC++++++++++++++++CC CC  CCCCC+CCCC+CCCCCCCCCCCCCCCCCC CCCCCCCC   CCCCCCCCCCCCCCCCCCCCCCCCCCCC CCCC
+C'''''''         C''''C''C         CCCCCCCCCCCCCCCC            C    C
+ XXXXXXX          XXXX XX
+ CCCCCCC          CCCC CC
*=+-------"=-ZZZZZM"""-"""--+M-ZZZ-=+"""""""""""""""+++==MMM=++++++++++++++++++=++++++=-=++=++===M=M=================================
+CC.......+CC      +++.+++..C C   CCC+++++++++++++++CCCCC   CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+  '''''''C        CCC'CCC''         CCCCCCCCCCCCCCC
+  XXXXXXX            X   XX
+  CCCCCCC            C   CC
*MM"--------"M--ZZZM"--""-"-""+MM-Z-=+"""""""""""+""+""+++==+++++++"++++++++++++++++=+MM==+++=+====+===+===+==+==========+=+==+=+M===
+  +........+ CC    +..++.+.++C  C CCC+++++++++++C++C++CCCCCCCCCCCC+CCCCCCCCCCCCCCCCCC  CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC CCC
+  C''''''''C       C''CC'C'CC        CCCCCCCCCCC CC CC            C
+   XXXXXXXX         XX  X X
+   CCCCCCCC         CC  C C
*-M=+"-------"MM-Z--=+"-"-"""-"+=MMM==++"+""+"""""+"""""+++===++=+++++++++"++++++=++++-++=+++++====+======++=+=======================
+C CC+.......+  C CCCC+.+.+++.+CC   CCCC+C++C+++++C+++++CCCCCCCCCCCCCCCCCC+CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+    C'''''''C        C'C'CCC'C         C CC CCCCC CCCCC                  C
+     XXXXXXX          X X   X
+     CCCCCCC          C C   C
*MM-M="--------+=M---M=""""""""""++====+++"""""""+""+""+++=++++++++++++++++++++===++++-=+=++=++=+==+=======+===+================+=M==
+  C C+........CC CCC C++++++++++CCCCCCCCC+++++++C++C++CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC CC
+     C''''''''        CCCCCCCCCC         CCCCCCC CC CC
+      XXXXXXXX
+      CCCCCCCC
*=MMMM="---------+==MM==+"-"-"""--"""+++++"""""""""++"""""+"+++++++++++++++++M=M-M==+=X=+++++++=+=+++=+====+++==+=====+=+===++===+===
+C    C+.........CCC  CCC+.+.+++..+++CCCCC+++++++++CC+++++C+CCCCCCCCCCCCCCCCC C C CCCC CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+      C'''''''''        C'C'CCC''CCC     CCCCCCCCC  CCCCC C
+       XXXXXXXXX         X X   XX
+       CCCCCCCCC         C C   CC
*"+=MMM++--"------"+===+="""-""""""""+++++"++""""""+""++++++++++++=+=+++++=-I-=M-M+-"MM=======++=======M++=+=+=========+=====+=+==MM=
++CC   CC..+......+CCCCCC+++.++++++++CCCCC+CC++++++C++CCCCCCCCCCCCCCCCCCCCCC CC C C.+  CCCCCCCCCCCCCCCC CCCCCCCCCCCCCCCCCCCCCCCCCC  C
+C       ''C''''''C      CCC'CCCCCCCC     C  CCCCCC CC                             'C
+        XX XXXXXX          X                                                      X
+        CC CCCCCC          C                                                      C
*--"++==+"---------"""+=++"""-"""""""+""""""++"""""""+""""""+++"+++++++MMMM++--"---"--+""--"++=++++++==+++===+====+========+=+==+===+
+..+CCCCC+.........+++CCCC+++.+++++++C++++++CC+++++++C++++++CCC+CCCCCCC    CC..+C..C..C++..+CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+''C     C'''''''''CCC    CCC'CCCCCCC CCCCCC  CCCCCCC CCCCCC   C             ''C ''B'' CC''C
+XX       XXXXXXXXX          X                                               XX  XXHXX   XX
+CC       CCCCCCCCC          C                                               CC  CCXCC   CC
*----""++""----------"""++++""""-"-""""""""""+""""+""""""+"""++"+++++=--MM=M=+"+M--""--"""""""-"""""""---+"++"+++==========++=++====+
+....++CC++..........+++CCCC++++.+.++++++++++C++++C++++++C+++CC+CCCCCCCC  C CC+C ..CC..+++++++.+++++++...C+CC+CCCCCCCCCCCCCCCCCCCCCCC
+''''CC  CC''''''''''CCC    CCCC'C'CCCCCCCCCC CCCC CCCCCC CCC  C              C  ''BB''CCCCCCC'CCCCCCC''' C  C
+XXXX      XXXXXXXXXX           X X                                              XXHHXX       X       XXX
+CCCC      CCCCCCCCCC           C C                                              CCXXCC       C       CCC
*-----""""+"""--------"""+++"""""-"--""""""+"+"++""""""""+"+"++"++++M-XA=-MM+"=+-------""+------"-----"=+=+XXAZXX-=====+=+=+==+==M===
+.....++++C+++........+++CCC+++++.+..++++++C+C+CC++++++++C+C+CC+CCCC C  CC  C+CC.......++C......+.....+CCCC      CCCCCCCCCCCCCCCC CCC
+'''''CCCC CCC''''''''CCC   CCCCC'C''CCCCCC C C  CCCCCCCC C C  C             C  '''''''CC ''''''C'''''C
+XXXXX        XXXXXXXX           X XX                                           XXXXXXX   XXXXXX XXXXX
+CCCCC        CCCCCCCC           C CC                                           CCCCCCC   CCCCCC CCCCC
*--------""+"+""--------"""+++++"-""""""""""""++++++"""""++++"+"""MZX-ZM"----AX---"-----"""""-""=""-"-==MAZ++AAXAAA+==+=IXXAA=I==++=I
+........++C+C++........+++CCCCC+.++++++++++++CCCCCC+++++CCCC+C+++   C  +CCCC  ...C.....+++++.++C++.+CCC
+''''''''CC C CC''''''''CCC     C'CCCCCCCCCCCC      CCCCC    C CCC      C      '''B'''''CCCCC'CC CC'C
+XXXXXXXX       XXXXXXXX         X                                             XXXHXXXXX     X     X
+CCCCCCCC       CCCCCCCC         C                                             CCCXCCCCC     C     C
*"-------""""+"""--------""""++++"+""""""""""""++++""+""+++""+=++M-MM-ZM-+"-+==----"-"==+1--1111 -11++=-+==-IIIIIAAAAI+=======+==I==I
++.......++++C+++........++++CCCC+C++++++++++++CCCC++C++CCC++CCCC C  C  CC+.CCC....+.+C                CCCCC
+C'''''''CCCC CCC''''''''CCCC    C CCCCCCCCCCCC    CC CC   CC             C'   ''''C'C
+ XXXXXXX        XXXXXXXX                                                  X   XXXX X
+ CCCCCCC        CCCCCCCC                                                  C   CCCC C
*+"---"----""+++"""""-----""""+++++""""""""""""""+"+++++"++"++I--Z=MZX-+"-""""-----""+=AI=+=I=I+1=I++I==ZM===IIIIAAAZMMIII==+++===+==
+C+...+....++CCC+++++.....++++CCCCC++++++++++++++C+CCCCC+CC+CC CC C   CC+.CCCC.....++CC                   CCC
+ C'''C''''CC   CCCCC'''''CCCC     CCCCCCCCCCCCCC C     C  C            C'BBBB'''''CC
+  XXX XXXX          XXXXX                                               XHHHHXXXXX
+  CCC CCCC          CCCCC                                               CXXXXCCCCC
*""""-------"""+++""""---"--"""++"++"""""""""""""""+++++++"+++MXX---ZM+----"""------""+MI=IAAIA+=IA+=I+==-MM=-IIIIIM"="XII++=+=++===+
+++++.......+++CCC++++...+..+++CC+CC+++++++++++++++CCCCCCC+CCC   CCC  C....CCC......++C                  C  CC      +C+
+CCCC'''''''CCC   CCCC'''C''CCC  C  CCCCCCCCCCCCCCC       C            ''''BBB''''''CC                              C C
+    XXXXXXX          XXX XX                                           XXXXHHHXXXXXX
+    CCCCCCC          CCC CC                                           CCCCXXXCCCCCC
*""+""-------"""++""""""--"""""+++"+++"+"""++"""+"+++++++++++MAMZ=+---------"-------+=MZZAIIAIXIIIA=I+I==I-=""Z=++A-"+-A==++++1++1-1-
+++C++.......+++CC++++++..+++++CCC+CCC+C+++CC+++C+CCCCCCCCCCC    CC.........C.......CC                    CC++     .+C.
+CC CC'''''''CCC  CCCCCC''CCCCC   C   C CCC  CCC C                 '''''''''B'''''''                        CC     'C '
+     XXXXXXX           XX                                         XXXXXXXXXHXXXXXXX                               X  X
+     CCCCCCC           CC                                         CCCCCCCCCXCCCCCCC                               C  C
*""""""------"--""++++"""-"""""-""++++++""""""""""""+++==++""=="--"-"-"-"--""""---+--A--XII=IAA==IAI=====IX=M=X=+++-=M=-=1+++111+-111
+++++++......+..++CCCC+++.+++++.++CCCCCC++++++++++++CCCCCCC++CC+..+.C.C.C..CCCC...C.C CC                   C C    C.C CC
+CCCCCC''''''C''CC    CCC'CCCCC'CC      CCCCCCCCCCCC       CC  C''C'B'B'B''BBBB''' '                               '
+      XXXXXX XX         X     X                                XX XHXHXHXXHHHHXXX X                               X
+      CCCCCC CC         C     C                                CC CXCXCXCCXXXXCCC C                               C
*--""-"""-------""""+""""--"-"-""""+++++"""""""""""""+++==--""-""""-"-""""-""-"---=+=IAZXIIIIAII=II==+=====Z-Z-++X-Z11I-=+===+1++++11
+..++.+++.......++++C++++..+.+.++++CCCCC+++++++++++++CCCCC..++.CC++.C.CCCC.CC.C...CCC                       C C   .    C
+''CC'CCC'''''''CCCC CCCC''C'C'CCCC     CCCCCCCCCCCCC     ''CC'BBCC'B'BBBB'BB'B'''                                '
+XX  X   XXXXXXX         XX X X                           XX  XHH  XHXHHHHXHHXHXXX                                X
+CC  C   CCCCCCC         CC C C                           CC  CXX  CXCXXXXCXXCXCCC                                C
*---"-"""""-------""""+"""""""--""""++++++"+"""""""""++++"-"=+"---"---"-""--"-"---+==IAAAAI==AI=II=+++=+=IIA-ZM+-""A  +MI+++==++++++1
+...+.+++++.......++++C+++++++..++++CCCCCC+C+++++++++CCCC+.+CC+...C...C.CC..C.C...CCC                       C    ++
+'''C'CCCCC'''''''CCCC CCCCCCC''CCCC      C CCCCCCCCC    C'C  C'''B'''B'BB''B'B'''                               CC
+XXX X     XXXXXXX            XX                          X    XXXHXXXHXHHXXHXHXXX
+CCC C     CCCCCCC            CC                          C    CCCXCCCXCXXCCXCXCCC
*-----""""+"--"----""++++++"--"""""""""+"++++"""""+"""+"--===M+"-------"------"-"-"=M=AIAI===AII=A==+==+==IIX-M+=""+X 1-I1++=111+++++
+.....++++C+..+....++CCCCCC+..+++++++++C+CCCC+++++C+++C+..CCC C+.......C......C.C.+C                         C   CCC   C
+'''''CCCC C''C''''CC      C''CCCCCCCCC C    CCCCC CCC C''     C'''''''B''''''B'B'C                              BB
+XXXXX      XX XXXX         XX                          XX      XXXXXXXHXXXXXXHXHX                               HH
+CCCCC      CC CCCC         CC                          CC      CCCCCCCXCCCCCCXCXC                               XX
*------""""""""-----""++++"+""""-""""""""""++++++""""+"-"+"MZ+----"------"------"--+M==II===IA=I=I=====++++1AX-AI-"+1+=Z=++++1+1111++
+......++++++++.....++CCCC+C++++.++++++++++CCCCCC++++C+.+C+  C....C......C......C..C                          C  .+C
+''''''CCCCCCCC'''''CC    C CCCC'CCCCCCCCCC      CCCC C'C C   ''''B''''''B''''''B''                              'C
+XXXXXX        XXXXX            X                      X      XXXXHXXXXXXHXXXXXXHXX                              X
+CCCCCC        CCCCC            C                      C      CCCCXCCCCCCXCCCCCCXCC                              C
*------""""""""--""---"""""+++"""""""""""""++++++""""""+++M-"-----"--"--------"----+=+======IAII=I=====++-++=A-ZM-=---=A++=+1+111+111
+......++++++++..++...+++++CCC+++++++++++++CCCCCC++++++CCC C+.....C..C........C....CC                         C  .C.CC
+''''''CCCCCCCC''CC'''CCCCC   CCCCCCCCCCCCC      CCCCCC     C'''''B''B''''''''B''''                              ' '
+XXXXXX        XX  XXX                                       XXXXXHXXHXXXXXXXXHXXXX                              X X
+CCCCCC        CC  CCC                                       CCCCCXCCXCCCCCCCCXCCCC                              C C
*------"-"""""""""-----""""++"++""""""""""""++++++++"-"-"+Z=---------""------""----+=A+======AI==I=====++1+++IZMZ--"=+AA++++++1+++111
+......+.+++++++++.....++++CC+CC++++++++++++CCCCCCCC+.+.+C C.........CC......CC....CC                            ..+CC
+''''''C'CCCCCCCCC'''''CCCC  C  CCCCCCCCCCCC        C'C'C   '''''''''BB''''''BB''''                              ''C
+XXXXXX X         XXXXX                              X X    XXXXXXXXXHHXXXXXXHHXXXX                              XX
+CCCCCC C         CCCCC                              C C    CCCCCCCCCXXCCCCCCXXCCCC                              CC
*-------"--""++""""-"-""--"""++++"+"""""""""""+++==+""=-M+--"---""-"------------"-+-=A+=+====I====I+=1+11++++I-MM""M+=Z=+=+++++1=1111
+.......+..++CC++++.+.++..+++CCCC+C+++++++++++CCCCCC++C. C..C...CC.C............+.C.C                         C  C+ CC
+'''''''C''CC  CCCC'C'CC''CCC    C CCCCCCCCCCC      CC '  ''B'''BB'B''''''''''''C' '                             BC
+XXXXXXX XX        X X  XX                             X  XXHXXXHHXHXXXXXXXXXXXX X X                             H
+CCCCCCC CC        C C  CC                             C  CCXCCCXXCXCCCCCCCCCCCC C C                             X
*""--------"-"-""""""--"--""""""++""""""-""""""++"--"++==+---"-"""-"--""""---------="X=++===+=II===++++1-++++=AM-M"-ZAX++==+1++++111+
+++........+.+.++++++..+..++++++CC++++++.++++++CC+..+CCCCC...C.CCC.C..CCCC.........C+                           C +C
+CC''''''''C'C'CCCCCC''C''CCCCCC  CCCCCC'CCCCCC  C''C     '''B'BBB'B''BBBB''''''''' C                             C
+  XXXXXXXX X X      XX XX              X         XX      XXXHXHHHXHXXHHHHXXXXXXXXX
+  CCCCCCCC C C      CC CC              C         CC      CCCXCXXXCXCCXXXXCCCCCCCCC
*""""---------""""""""----"""-"""""""""""""""""+++++=MMM"--"""-"----"-""-"--"------=+-=++++=+=======+1+1-+++=IIXZAX11ZA+++++1+=++=+==
+++++.........++++++++....+++.+++++++++++++++++CCCCCC   +..CCC.C....C.CC.C..C......CCC
+CCCC'''''''''CCCCCCCC''''CCC'CCCCCCCCCCCCCCCCC         C''BBB'B''''B'BB'B''B''''''
+    XXXXXXXXX        XXXX   X                           XXHHHXHXXXXHXHHXHXXHXXXXXX
+    CCCCCCCCC        CCCC   C                           CCXXXCXCCCCXCXXCXCCXCCCCCC
*"""-""--------"""""""----++""""""++"++"""""+"+""=-XII=---"-""-"-"---"-"-"------"+""++=+=++=+==+==+I=++1+=+=I==AZXIXXZA=++=+=+==III==
++++.++........+++++++....CC++++++CC+CC+++++C+C++CC   C...C.CC.C.C...C.C.C......+C++CC
+CCC'CC''''''''CCCCCCC''''  CCCCCC  C  CCCCC C CC      '''B'BB'B'B'''B'B'B''''''C CC
+   X  XXXXXXXX       XXXX                             XXXHXHHXHXHXXXHXHXHXXXXXX
+   C  CCCCCCCC       CCCC                             CCCXCXXCXCXCCCXCXCXCCCCCC
*-""""""----"---"""""""""=+""""""""+"++++"""""+""-Z-+----------""-------------"-"++-"--1+1+++==++I==++=-=1+1+==IAAAIAZA+++==IIIIII===
+.++++++....+...+++++++++CC++++++++C+CCCC+++++C++C CC..........CC.............C.+CC.+.C
+'CCCCCC''''C'''CCCCCCCCC  CCCCCCCC C    CCCCC CC    ''''''''''BB'''''''''''''B'C  'C'
+X      XXXX XXX                                     XXXXXXXXXXHHXXXXXXXXXXXXXHX   X X
+C      CCCC CCC                                     CCCCCCCCCCXXCCCCCCCCCCCCCXC   C C
*---"""""--------"""""""++"""-"-"""""""+++++++"+ZXA-+---"""-""---"----""--"------"Z="-"+1++++I=+=++1==+++=+++==IIAIII=+==II=======+1+
+...+++++........+++++++CC+++.+.+++++++CCCCCCC+C   CC...CCC.CC...C....CC..C......+ C+.+
+'''CCCCC''''''''CCCCCCC  CCC'C'CCCCCCC       C      '''BBB'BB'''B''''BB''B''''''C  C'C
+XXX     XXXXXXXX            X X                     XXXHHHXHHXXXHXXXXHHXXHXXXXXX    X
+CCC     CCCCCCCC            C C                     CCCXXXCXXCCCXCCCCXXCCXCCCCCC    C
*"-""""""""----"-"-""""""""""""""""""""+=====--+=+"------"-----"---""----------"-++-Z"-A1+++1=+==+++=+++===++==++======+=++++++111--1
++.++++++++....+.+.++++++++++++++++++++CCCCCC..CCC+......C.....C...CC..........+.CCC +.
+C'CCCCCCCC''''C'C'CCCCCCCCCCCCCCCCCCCC      ''   C''''''B'''''B'''BB''''''''''C'    C'
+ X        XXXX X X                          XX    XXXXXXHXXXXXHXXXHHXXXXXXXXXX X     X
+ C        CCCC C C                          CC    CCCCCCXCCCCCXCCCXXCCCCCCCCCC C     C
*-----"""""""---------"-""""""""+"--"""+"+=M+-"=-=---"----"---""-"-"""---"-------"MMZ++X111======+++==+=+=+=====+++++11++++1111+-11--
+.....+++++++.........+.++++++++C+..+++C+CC C.+CCC...C....C...CC.C.CCC...C.......+   CC
+'''''CCCCCCC'''''''''C'CCCCCCCC C''CCC C    'C   '''B''''B'''BB'B'BBB'''B'''''''C
+XXXXX       XXXXXXXXX X          XX         X    XXXHXXXXHXXXHHXHXHHHXXXHXXXXXXX
+CCCCC       CCCCCCCCC C          CC         C    CCCXCCCCXCCCXXCXCXXXCCCXCCCCCCC
*-"""""""""++""----"-"-"+"""""+""""""-"""+==-----""---"-"-"""""--"--"----""--"""+"+=M-A-11+=+===+===I=+++1=++1+++1111-111++1-111+11-
+.+++++++++CC++....+.+.+C+++++C++++++.+++CCC.....+C...C.C.CCCCC..C..C....CC..+++C+CC C
+'CCCCCCCCC  CC''''C'C'C CCCCC CCCCCC'CCC   '''''CB'''B'B'BBBBB''B''B''''BB''CCC C
+X             XXXX X X              X      XXXXX HXXXHXHXHHHHHXXHXXHXXXXHHXX
+C             CCCC C C              C      CCCCC XCCCXCXCXXXXXCCXCCXCCCCXXCC
*--"""+"""""++++""-----"-""""+""""+""""""++-----""-"--""""""-""---"""--"-"---"+=M=+"-XA1++=+==I==+===++=+=++++1+11-1111+111111111+111
+..+++C+++++CCCC++.....+.++++C++++C++++++CC.....CC.C..CCCCCC.CC...CCC..C.C...+CC CC+.
+''CCC CCCCC    CC'''''C'CCCC CCCC CCCCCC  '''''BB'B''BBBBBB'BB'''BBB''B'B'''C     C'
+XX               XXXXX X                  XXXXXHHXHXXHHHHHHXHHXXXHHHXXHXHXXX       X
+CC               CCCCC C                  CCCCCXXCXCCXXXXXXCXXCCCXXXCCXCXCCC       C
*---"""""+""+++++""--------""""++++""+""++--"-""---""-"--"""-"-""---""-------++=--Z+-M==+=+===I+=+=II==++=++++111--1+++++++++++1+++++
+...+++++C++CCCCC++........++++CCCC++C++CC..+.CC...CC.C..CCC.C.CC...CC.......CCCCC C.
+'''CCCCC CC     CC''''''''CCCC    CC CC  ''C'BB'''BB'B''BBB'B'BB'''BB'''''''       '
+XXX               XXXXXXXX               XX XHHXXXHHXHXXHHHXHXHHXXXHHXXXXXXX       X
+CCC               CCCCCCCC               CC CXXCCCXXCXCCXXXCXCXXCCCXXCCCCCCC       C
*----""""+"""++++++""-"------""++++++++==+-"--"----"----"-""-""""""""""----"++-M=-M+-=1+++++I===+II=++=+1++++====++==III=II=++===+==I
+....++++C+++CCCCCC++.+......++CCCCCCCCCCC.+..C....C....C.CC.CCCCCCCCCC....+CCC CC C.C
+''''CCCC CCC      CC'C''''''CC           'C''B''''B''''B'BB'BBBBBBBBBB''''C        '
+XXXX                X XXXXXX             X XXHXXXXHXXXXHXHHXHHHHHHHHHHXXXX         X
+CCCC                C CCCCCC             C CCXCCCCXCCCCXCXXCXXXXXXXXXXCCCC         C
*--"--"""+""++"++==++""----"--"""""++=MX+--"==""-----"--"""-""""---"-"-----+M+-XZ+--+=1+++====+1==I=++++11+=IIXAIAXAAXXXAIAII==AAAIII
+..C..+++C++CC+CCCCCC++....+..+++++CCC  C..+CC++.....C..CCC.CCCC...C.C.....C CC  C..C
+''B''CCC CC  C      CC''''C''CCCCC      ''C  CC'''''B''BBB'BBBB'''B'B'''''       ''
+XXHXX                 XXXX XX           XX     XXXXXHXXHHHXHHHHXXXHXHXXXXX       XX
+CCXCC                 CCCC CC           CC     CCCCCXCCXXXCXXXXCCCXCXCCCCC       CC
*-----"""""+"""""+++==+""-"--""""""++MZ=+-"="---------"----"--"---"--------+=--=="---11+====I+1=I+++===++++=IIZXZ-MM=M--MM-ZXAAAIXXXX
+.....+++++C+++++CCCCCC++.+..++++++CC  CC.+C+.........C....C..C...C........CCCCCC+..C                            C  C CC  C
+'''''CCCCC CCCCC      CC'C''CCCCCC      'C C'''''''''B''''B''B'''B''''''''      C''
+XXXXX                   X XX            X   XXXXXXXXXHXXXXHXXHXXXHXXXXXXXX       XX
+CCCCC                   C CC            C   CCCCCCCCCXCCCCXCCXCCCXCCCCCCCC       CC
*--""---""""""""""++====+""""""-""""+MM+---"-------"--"-"--"-"---""-----"-"M-XM="---=1+===+==++II++==++==1+IAX--M=M-ZZXXXZ----ZXAAXZZ
+..++...++++++++++CCCCCCC++++++.++++C  C...+.......C..C.C..C.C...CC.....+.+ C  C+...                          CC C C      CCCC
+''CC'''CCCCCCCCCC       CCCCCC'CCCC    '''C'''''''B''B'B''B'B'''BB'''''C'C     C'''
+XX  XXX                       X        XXX XXXXXXXHXXHXHXXHXHXXXHHXXXXX X       XXX
+CC  CCC                       C        CCC CCCCCCCXCCXCXCCXCXCCCXXCCCCC C       CCC
*----------"""""--""+++==++++"-"--"""M="-"=----"-------"-"-----"-""-"---"+"-=Z+""-"=1+=======+=I====+==+===AX--=M-ZAXIIIIIIAXZZXAAAZZ
+..........+++++..++CCCCCCCCC+.+..+++ C+.+CC...C.......C.C.....C.CC.C...+C+C  C++.CC                         CCC C
+''''''''''CCCCC''CC         C'C''CCC  C'C  '''B'''''''B'B'''''B'BB'B'''C C    CC'B
+XXXXXXXXXX     XX            X XX      X   XXXHXXXXXXXHXHXXXXXHXHHXHXXX         XH
+CCCCCCCCCC     CC            C CC      C   CCCXCCCCCCCXCXCCCCCXCXXCXCCC         CX
*----------""""+"---""++====++""--"""+"--M1=-----""-""-"-"--"--"-"-----""-XMZX=-"--I1+=+I===++AA+=I++=+=1IAZMM-M-Z-AAAIAI=IIIAXXAAAAX
+..........++++C+...++CCCCCCCC++..+++C+..  C.....CC.CC.C.C..C..C.C.....++C    C.C..                           C C C
+''''''''''CCCC C'''CC        CC''CCC C''   '''''BB'BB'B'B''B''B'B'''''CC      'B''
+XXXXXXXXXX      XXX            XX     XX   XXXXXHHXHHXHXHXXHXXHXHXXXXX        XHXX
+CCCCCCCCCC      CCC            CC     CC   CCCCCXXCXXCXCXCCXCCXCXCCCCC        CXCC
*-----------""+""-----""+++===+++""""="-"Z""--""----"--"----"""""-"----+MMZ--+----Z1+++=====+AAI=I+=++=+IX-==MMM-Z-I1=IAAIIAIIIAAAXAA
+...........++C++.....++CCCCCCCCC++++C+.+ ++..CC....C..C....CCCCC.C....C   CCC....                        CCC   C C
+'''''''''''CC CC'''''CC         CCCC C'C CC''BB''''B''B''''BBBBB'B''''       ''''
+XXXXXXXXXXX     XXXXX                 X    XXHHXXXXHXXHXXXXHHHHHXHXXXX       XXXX
+CCCCCCCCCCC     CCCCC                 C    CCXXCCCCXCCXCCCCXXXXXCXCCCC       CCCC
*"-----------"""""-------""++==++++"++"---"----"-""--"-"--"-"""---""--"=MXAM="-""-A11++=III==AI===I==+==XMM+=----XX1+++=IAI=IIIAIIAAA
++...........+++++.......++CCCCCCCC+CC+...+....C.++..C.C..C.CCC...CC..+C    C+.CC.                         CCCCCC
+C'''''''''''CCCCC'''''''CC        C  C'''C''''B'CC''B'B''B'BBB'''BB''C      C'BB'
+ XXXXXXXXXXX     XXXXXXX              XXX XXXXHX  XXHXHXXHXHHHXXXHHXX        XHHX
+ CCCCCCCCCCC     CCCCCCC              CCC CCCCXC  CCXCXCCXCXXXCCCXXCC        CXXC
*""-"--------""+""----"-----"+"=+===M++---"--------"""-"--"-""----""-"=M=X="---""-=++++I=I===II==AI==+=IM=+"-XZ-Z-AIA+1++===I==IIIIAA
+++.C........++C++....+.....+C+CCCCC CC...+........CCC.C..C.CC....CC.+C C C+...CC.                       CC+C  C C
+CC'B''''''''CC CC''''C'''''C C        '''C''''''''BBB'B''B'BB''''BB'C     C'''BB'                         C
+  XHXXXXXXXX     XXXX XXXXX           XXX XXXXXXXXHHHXHXXHXHHXXXXHHX       XXXHHX
+  CXCCCCCCCC     CCCC CCCCC           CCC CCCCCCCCXXXCXCCXCXXCCCCXXC       CCCXXC
*""--------"--"""""-----""""""++++=M-+=-"-"----------"------"----"---+=XIX--"---""1++1=II===II=IIII=+=IZ=="+IAMZXA=MZ-1+++++++-1++III
+++........+..+++++.....++++++CCCCC CCC.+.+..........C......C....C...CC   C.C...C+                      CC+C
+CC''''''''C''CCCCC'''''CCCCCC         'C'C''''''''''B''''''B''''B'''      'B'''BC                        C
+  XXXXXXXX XX     XXXXX               X X XXXXXXXXXXHXXXXXXHXXXXHXXX      XHXXXH
+  CCCCCCCC CC     CCCCC               C C CCCCCCCCCCXCCCCCCXCCCCXCCC      CXCCCX
*"""-----------""""----"-"+"++++==--=M"=M"""-"---"------"-"-----""---=-ZA=+--"--"=1++=III=IIA==AA==I=A-==-"XIZ+XXXM1X++==+=+1+1++1+1+
++++...........++++....+.+C+CCCCCCCCC +C ++C.+...C......C.C.....CC...CC  CC..C..CC                    CCC.+   C
+CCC'''''''''''CCCC''''C'C C          C  CCB'C'''B''''''B'B'''''BB'''      ''B''B                        'C
+   XXXXXXXXXXX    XXXX X                  HX XXXHXXXXXXHXHXXXXXHHXXX      XXHXXH                        X
+   CCCCCCCCCCC    CCCC C                  XC CCCXCCCCCCXCXCCCCCXXCCC      CCXCCX                        C
*"""-----------"""""--""+===+++++=-M="-==""-"+---M+"-""-"----"""----"MZXZM+--""""X+++=IIII=AI=IXA====A==+"-=IZ+Z-+AIM++===+++++++11+1
++++...........+++++..++CCCCCCCCCCC C+.CC++.+C... C+.CC.C....CCC....+     C..CCCC                     CCC+C   C CC
+CCC'''''''''''CCCCC''CC             C'  CC'C '''  C'BB'B''''BBB''''C      ''BBBB                        C
+   XXXXXXXXXXX     XX                X    X  XXX   XHHXHXXXXHHHXXXX       XXHHHH
+   CCCCCCCCCCC     CC                C    C  CCC   CXXCXCCCCXXXCCCC       CCXXXX
*""""---------""""""--"+==MM++++++=M="++=+-""-"Z-+"+--"-"----""-----"MXZM+"-"""-"Z+==III==IAI=AAI=I=X-=+++I=I-"-"A1AZ=+===++++++1111-
+++++.........++++++..+CCC  CCCCCCC C+CCCC.++.+ CC+C..C.C....CC.....+    C+.+CC.C                    CCCCC   C+C+
+CCCC'''''''''CCCCCC''C              C    'CC'C   C ''B'B''''BB'''''C     C'CBB'B                             C C
+    XXXXXXXXX      XX                    X  X      XXHXHXXXXHHXXXXX       X HHXH
+    CCCCCCCCC      CC                    C  C      CCXCXCCCCXXCCCCC       C XXCX
*++"-------""-"+"++""-"+=M-M+""""++M=++M+"--"="=-"M"--"---"------"--+ZZZ"---"----X====III=III=AI==AAZ==M-X=AAMX"=  1-I===++++1++11111
+CC+.......++.+C+CC++.+CC C C++++CC CCC C+..+C+C.+ +..+...C......C..C   +...C....                    CC .      +C   C
+  C'''''''CC'C C  CC'C      CCCC        C''C C 'C C''C'''B''''''B''    C'''B''''                       '      C
+   XXXXXXX  X       X                    XX    X   XX XXXHXXXXXXHXX     XXXHXXXX                       X
+   CCCCCCC  C       C                    CC    C   CC CCCXCCCCCCXCC     CCCXCCCC                       C
*"""-----------""++"---"=MM+"-----"M-M="---="---"=""+"-"--"----"---"+-M+"-----""-A+=IIAAIAAXIAAI==AX=++"+==IAMZ-1   A-I==II++++++1+11
++++...........++CC+...+C  C+.....+ C C+...C+...+C++C+.C..C....C...+CC C+.....++.                   CCC+C      .     C
+CCC'''''''''''CC  C'''C    C'''''C    C''' C'''C CC C'B''B''''B'''C    C'''''CC'                      C       '
+   XXXXXXXXXXX     XXX      XXXXX      XXX  XXX      XHXXHXXXXHXXX      XXXXX  X                              X
+   CCCCCCCCCCC     CCC      CCCCC      CCC  CCC      CXCCXCCCCXCCC      CCCCC  C                              C
*"""----------""+++"---"=MM=+"----"-Z-+=+""-"-"""+++"""-"-""-"-----"MXA+---""-"-=I==IIAIIIAAIAAI=IAM+-""A+==I-A"+1  =XI======++++111+
++++..........++CCC+...+C  CC+....+C CCCC++.C.+++CCC+++.+.CC.C.....+   C...++.+.C                   C.++     C +
+CCC''''''''''CC   C'''C     C''''C      CC'B'CCC   CCC'C'BB'B'''''C    '''CC'C'                     'CC       C
+   XXXXXXXXXX      XXX       XXXX         XHX         X XHHXHXXXXX     XXX  X X                     X
+   CCCCCCCCCC      CCC       CCCC         CXC         C CXXCXCCCCC     CCC  C C                     C
*"""--------"-""+++"---"+=M=+-----"M-++="--+="--"+"+=+++"-"--"-----"--Z++-"-==--==I=IAXIAIXIIAA==IX+--"-+===I-X-"==X+=I=======+++++++
++++........+.++CCC+...+CC CC.....+ CCCC+..CC+..+C+CCCCC+.C..C.....+CC CC.C.CC..C                  C..+C     C .+CC
+CCC''''''''C'CC   C'''C     '''''C     C''  C''C C     C'B''B'''''C     'B'  ''                    ''C        'C
+   XXXXXXXX X      XXX      XXXXX       XX   XX         XHXXHXXXXX      XHX  XX                    XX         X
+   CCCCCCCC C      CCC      CCCCC       CC   CC         CXCCXCCCCC      CXC  CC                    CC         C
*""--------+""-"""""---"+==++--"---MMM+=+"+Z+"+=-=-+"-ZZM"-""----""+Z+""--""-I-"===IAAXAIIXIIXIIAAM---=I=++=IZA--=++--I=I=I+++++==++1
+++........C++.+++++...+CCCCC..+...   CCC+C C+CCCCCC+C   +.CC....++C C++..CC. C+C                  ...C        ..CCCCC
+CC'''''''' CC'CCCCC'''C     ''C'''      C   C      C    C'BB''''CC   CC''BB'  C                   '''         ''
+  XXXXXXXX   X     XXX      XX XXX                       XHHXXXX       XXHHX                      XXX         XX
+  CCCCCCCC   C     CCC      CC CCC                       CXXCCCC       CCXXC                      CCC         CC
*""--------"---"+"+"---"+=M=+---""--M=+"+Z+MM=+-"M+==M=="--------+MMZ-"""--""X=XZAIA=XAAAAAIAAIAAX+"-"Z=I=I=IXA---""XZAIII+==+=+1++++
+++........+...+C+C+...+CC CC...++.C CC+C C  CC.+ CCC CC+........C   C+++..CC                     C+.+         ...C+
+CC''''''''C'''C C C'''C     '''CC'    C       'C       C''''''''     CCC''BB                      C'C         '''BC
+  XXXXXXXX XXX     XXX      XXX  X            X         XXXXXXXX        XXHH                       X          XXXH
+  CCCCCCCC CCC     CCC      CCC  C            C         CCCCCCCC        CCXX                       C          CCCX
*"-----------""""""----"+MM=+"-----M=++-+"+==""+=++""------------=-XMM=-----"--=XAAIAAAXAAAAAXIAX-=""MI=====IAZ-""-"-ZIIII+==++++++++
++...........++++++....+C  CC+..... CCC.C+CCC++CCCC++............CC   C.....C.C                  CC++          .C+.+C
+C'''''''''''CCCCCC''''C     C'''''    ' C   CC    CC''''''''''''      '''''B'                     CC          'BC'C
+ XXXXXXXXXXX      XXXX       XXXXX    X             XXXXXXXXXXXX      XXXXXHX                                 XH X
+ CCCCCCCCCCC      CCCC       CCCCC    C             CCCCCCCCCCCC      CCCCCXC                                 CX C
*------------""""-"----"+M=M+"-----=Z=+-"+M+MZZ-=-----------"----+-Z=-"+--"-"-"ZAIIIAAAAAAAIAXIIZM+-"X=IIIIIIIX+--"=Z=XIII=+====+==++
+............++++.+....+C C C+.....C CC.+C C   CC...........C....CC C.+C..C.C.+                   C.+          C..+C C
+''''''''''''CCCC'C''''C     C'''''    'C        '''''''''''B''''    'C ''B'B'C                    'C           ''C
+XXXXXXXXXXXX    X XXXX       XXXXX    X         XXXXXXXXXXXHXXXX    X  XXHXHX                     X            XX
+CCCCCCCCCCCC    C CCCC       CCCCC    C         CCCCCCCCCCCXCCCC    C  CCXCXC                     C            CC
*----------""""""="-"--++=M=+"--""-MA+---"-MA-Z+""---+"+=M"-"-"Z"-M----"+-------ZII=AIAAAAIIAZIAZ+-"Z=A==IIIIIXM--+A==Z===+1===1=++++
+..........++++++C+.+..CCC CC+..++.  C...+.  C C++...C+CC +.+.+ +. CC..+C.......                 C.+            ..C CC
+''''''''''CCCCCC C'C''      C''CC'   '''C'     CC''' C   C'C'C C'   ''C '''''''                  'C            ''
+XXXXXXXXXX        X XX       XX  X   XXX X       XXX      X X   X   XX  XXXXXXX                  X             XX
+CCCCCCCCCC        C CC       CC  C   CCC C       CCC      C C   C   CC  CCCCCCC                  C             CC
*-----"----""""""-"----"+MMM="--"----""--+M=Z=+"-----"----+-"-"MM+-ZM"--------"+=AIAIIAAAIA+XZ==X"""ZII=IAIIIIAZ=-XM=-AI==+=+++++++=+
+.....+....++++++.+....+C   C+..+..CC++..C C CC+.C...C....CC+.+  CC  +........+CC                +++            C.  CC
+'''''C''''CCCCCC'C''''C     C''C''  CC''      C' '''B''''  C'C      C''''''''C                  CCC             '
+XXXXX XXXX      X XXXX       XX XX    XX       X XXXHXXXX   X        XXXXXXXX                                   X
+CCCCC CCCC      C CCCC       CC CC    CC       C CCCXCCCC   C        CCCCCCCC                                   C
*----------"""""--"--"-"+=MM="-----=M"-""=---+=--"---+"""-----+"==XA+"-""-----"MMXIAAAAAAAA=IX+AM=+===IIAAAAAAXXM+==MXAI==+=+++++++++
+..........+++++..+..+.+CC  C+.....C +.++CCCCCC..+...C+++.....C+CC  C+.CC.....+                  CCC             CCC
+''''''''''CCCCC''C''C'C     C'''''  C'CC      ''C''' CCC''''' C     C'BB'''''C
+XXXXXXXXXX     XX XX X       XXXXX   X        XX XXX    XXXXX        XHHXXXXX
+CCCCCCCCCC     CC CC C       CCCCC   C        CC CCC    CCCCC        CXXCCCCC
*----------""""--------"+=M=+"---"-+Z"---"=M=+=+---MM+"---""""""-"-IM--""""-"--+=XAAAAXXAIX=+XAAMM=X+-=AXAXXXXZZZZM-IAI==I+===+++=+=+
+..........++++........+CC CC+...+.C +...+C CCCC...  C+...CCCC++.+C  ..CCCC.C..CC                 C                C
+''''''''''CCCC''''''''C     C'''C'  C'''C      '''   C'''BBBBCC'C   ''BBBB'B''
+XXXXXXXXXX    XXXXXXXX       XXX X   XXX       XXX    XXXHHHH  X    XXHHHHXHXX
+CCCCCCCCCC    CCCCCCCC       CCC C   CCC       CCC    CCCXXXX  C    CCXXXXCXCC
*------""""""----------"=MM=+-----""XM+---=--M"-"-MM""-"----"--""=--X"------"---=XXIAAIA=+I11AXI+AX1=- +IAAZXXZ-XMZ=+========++=+=+++
+......++++++..........+C  CC.....++  C...CC. +.+C  ++.+....C..++CCC +......C...C                              C
+''''''CCCCCC''''''''''C     '''''CC   '''  ' C'C   CC'C''''B''CC    C''''''B'''
+XXXXXX      XXXXXXXXXX      XXXXX     XXX  X  X      X XXXXHXX       XXXXXXHXXX
+CCCCCC      CCCCCCCCCC      CCCCC     CCC  C  C      C CCCCXCC       CCCCCCXCCC
*--------"""-----------"=MM=+------"X+----="M""-+"---------"---"M"MZM=-""-"""""-+-ZXAAXXI=II1=AX1 -1+=1-1=A-ZXZZZZXII====II==II=I=I==
+........+++...........+C  CC......+ C....C+ ++.C+.........+...+ +   C.CC.CCCCC.CC                         C
+''''''''CCC'''''''''''C     ''''''C  '''' C CC' C'''''''''C'''C C    'BB'BBBBB'
+XXXXXXXX   XXXXXXXXXXX      XXXXXX   XXXX     X  XXXXXXXXX XXX       XHHXHHHHHX
+CCCCCCCC   CCCCCCCCCCC      CCCCCC   CCCC     C  CCCCCCCCC CCC       CXXCXXXXXC
*----------------------"=MM++------"AZ"""-"+M=+"++-"""+--"--++---"=M-+++-"-"""--"MXAAXZXAAII+=IZI11--1111+=AZ-ZZXIIAI==I=I===========
+......................+C  CC......+  +++.+C CC+CC.+++C..+..CC...+C CCCC.C.CCC..+                            C
+''''''''''''''''''''''C     ''''''C  CCC'C    C  'CCC ''C''  '''C      'B'BBB''C
+XXXXXXXXXXXXXXXXXXXXXX      XXXXXX      X        X    XX XX  XXX       XHXHHHXX
+CCCCCCCCCCCCCCCCCCCCCC      CCCCCC      C        C    CC CC  CCC       CXCXXXCC
*----------------------"+==+"-------M-+""-+""=-""=++""-""""+-+=Z""++M-X==-"""-"-"M-ZXXXXAAXXXXZXXIA+-  -11+IA--ZXAAII====I=I=====IAII
+......................+CCCC+....... CC++.C++C.++CCC++.++++C.CC ++CC C CC.CCC.C.+ C                          CC
+''''''''''''''''''''''C    C'''''''   CC' CC 'CC   CC'CCCC '   CC       'BBB'B'C
+XXXXXXXXXXXXXXXXXXXXXX      XXXXXXX     X    X       X     X            XHHHXHX
+CCCCCCCCCCCCCCCCCCCCCC      CCCCCCC     C    C       C     C            CXXXCXC
*---"---"----------"----"+=+"------"+A+"--"----""+"+"++-"""++---Z+-MZX--M=""-"""-+M-XXZXXXZXXXZXXZXXX1 - 11=AAXXXAAAIIII=I=III++=IIII
+...+...+..........+....+CCC+......+C C+..+....++C+C+CC.++CCC..C CC   CC C+C.CCC.C C
+'''C'''C''''''''''C''''C   C''''''C   C''C''''CC C C  'CCB  ''           CB'BBB'
+XXX XXX XXXXXXXXXX XXXX     XXXXXX     XX XXXX        X  H  XX            HXHHHX
+CCC CCC CCCCCCCCCC CCCC     CCCCCC     CC CCCC        C  X  CC            XCXXXC
*"---------------""----""+=++"-""-"++X=---"-+"-+=-"=-=+==M+-"=+""--M=-M"+M=-----"+-XXXXXAAXXXXXAZXXZXA+- 1-1+IIXXXXAIIIII=I=1======II
++...............++....++CCCC+.++.+CC C...+.C+.CC.+CCCCCC C.+CC++CC CC +C C.....+CC
+C'''''''''''''''CC''''CC    C'CC'C    '''C' C'  'C        'C  CC      C   '''''C
+ XXXXXXXXXXXXXXX  XXXX       X  X     XXX X  X  X         X               XXXXX
+ CCCCCCCCCCCCCCC  CCCC       C  C     CCC C  C  C         C               CCCCC
*-------------"--------"""+++""""""=+MZ"--"-"="-"+====MX-XX---="-"=ZX-XA-"------+M-XXZZXZXZXXAAXXXXZXAAA+-- -1+IIXAA=IIA====++==I=IIA
+.............+........+++CCC++++++CC  +..+.+C+.+CCCCC  C  CCCC+.+C  C  C+......C C
+'''''''''''''C''''''''CCC   CCCCCC    C''C'C C'C              C'C       C''''''
+XXXXXXXXXXXXX XXXXXXXX                 XX X   X                X         XXXXXX
+CCCCCCCCCCCCC CCCCCCCC                 CC C   C                C         CCCCCC
*-------------------------"+++"""""+++X+"----=---"MM=XXXXMZAXZXM=+-=MX-XXX+"""--+MM----XZZ-AXXAX-ZX---MZXI1--11+=AII=IIA=I===+=+I==IA
+.........................+CCC+++++CCC C+....C...+  C           CC.C  C   CCCC..C  CCCC   C     C  CCC
+'''''''''''''''''''''''''C   CCCCC     C'''' '''C                '        BBB''
+XXXXXXXXXXXXXXXXXXXXXXXXX               XXXX XXX                 X        HHHXX
+CCCCCCCCCCCCCCCCCCCCCCCCC               CCCC CCC                 C        XXXCC
*--------------"---------""""""""""""+M++-----"-"--""X=IM"-+"""ZZZ-"=-XZAA-"-""--=-=MMMZZ-ZX-ZXZZXZZZX--ZXX+-- -++=+=+++I=+AI+=1+I+II
+..............+.........++++++++++++C CC...C.C.C..++ C  +.C+++   C+CC    C+.CC..CCC     C  C         CC
+''''''''''''''C'''''''''CCCCCCCCCCCC    ''' 'B'B''CC    C' CCC    C       C'BB''
+XXXXXXXXXXXXXX XXXXXXXXX                XXX XHXHXX       X                 XHHXX
+CCCCCCCCCCCCCC CCCCCCCCC                CCC CXCXCC       C                 CXXCC
*"---"-------------"-----------"----"""ZM-"-"=-""----++Z-ZM"""+"+MXIZM=-ZIIZ+-""""=MMMM=MM--M--ZXXXAXZZXZZZAI=1--11+I+++++1=+1+=-=II=
+C...C.............C...........+....+++  .+.+C.++....CC C  +++C+C     CC    C.CCC+C    C  CC CC
+B'''B'''''''''''''B'''''''''''C''''CCC  'C'C 'CC''''      CCC C             'BBBC
+HXXXHXXXXXXXXXXXXXHXXXXXXXXXXX XXXX     X X  X  XXXX                        XHHH
+XCCCXCCCCCCCCCCCCCXCCCCCCCCCCC CCCC     C C  C  CCCC                        CXXX
*---------------------"--""""""""-"""""=A"---=-"+"""+M-MIM+M-=M+"+"ZAAXZMIAX-+-"""=MMMMM=MM=MZMM-ZXXXXZXXXXA=I++--111111111-+1++====I
+.....................+..++++++++.+++++C +...C.+C+++C C   C CC C+C+         CC.CC+C     C  C    C
+'''''''''''''''''''''C''CCCCCCCC'CCCCC  C''' 'C CCC            C C           'BBC
+XXXXXXXXXXXXXXXXXXXXX XX        X        XXX X                               XHH
+CCCCCCCCCCCCCCCCCCCCC CC        C        CCC C                               CXX
*""""+"""""""""+++"++"+++++++++++++++++=-="""-----"+=M-XX+"=M"+=MM===-ZA-MMXX-M---"==M==MMM=MM-MMM-ZXXXXZXXAA=+=+1---1111-1-+1+-I++-I
+++++C+++++++++CCC+CC+CCCCCCCCCCCCCCCCCCCC+++.....+CC C  C+C +CC  CCCC  C    C ...+CC CC   C  C   C
+CCCC CCCCCCCCC   C  C                    CCC'''''C       C  C                 '''C
+                                            XXXXX                             XXX
+                                            CCCCC                             CCC
*=======M+=M===M=MM=M==M=M=MMM=M=MMMMMMM-----"""---""+-""M=--+"+=AXAIXMXA-M"-ZA+---"M+=M+MZZM==-=-M=ZXZZZ-Z--ZA+=--11--+-1-11+=+=++=I
+CCCCCCC CC CCC C  C CC C C   C C       CC...CCC...++C.++ CCCC+CC        C +.  C...+ CC C    CCCCC C     C CC
+                                         '''BBB'''CC 'CC     C            C'   '''C
+                                         XXXHHHXXX   X                     X   XXX
+                                         CCCXXXCCC   C                     C   CCC
*M===M=M==MMMMMMMM=MM-MMMM---MMMM-M-------"--"--"++-MZZM===+++=M=+"=+MM--ZA-=++MM"--"M+M===MMM=-==-M-XXZXZ-ZZZZXI1----1-1+-11+1++=+=+
+ CCC C CC        C  C    CCC    C CCCCCCC+..C..+CCC    CCCCCCC CC+CC  CC  CCCC  +..+ C CCC   CCCCC C     C
+                                         C''B''C                 C              C''C
+                                          XXHXX                                  XX
+                                          CCXCC                                  CC
*==M===M=MM==M=MMM=MMMMMMM---MMMMMMMMM----M"""-++++++M+==--=+=+=MMMMMZZAXAAA-+""-A+""==-=-X=+MM==MMXXZZXAXZXZXXXAI+--1- 1+1-111++I=II
+CC CCC C  CC C   C       CCC         CCCC +++.CCCCCC CCCCCCCCCC            CC++C C++CCCCC CC  CC
+                                          CCC'                               CC   CC
+                                             X
+                                             C
*+=+=====+======M===M==M==MMM==MM=MMMMM--M-="+""+=""-+=-M+"==MM=--XZAX-IAA-M==+--=Z-++XZ-===+=+""++=MAZZXAAXXXZXZXAI+1--11+1=1++==II=
+CCCCCCCCCCCCCCC CCC CC CC   CC  C     CC CC+C++CC++.CCC C+CC  CCC    C   C CCC..C CCC  CCCCCCC++CCC
+                                           C CC  CC'     C                    ''              CC
+                                                   X                          XX
+                                                   C                          CC
*+++++++++++++======+M===M====M===M=M=MMM=--++"""--"--+MMM-M=MZM--XZZIIX-XXAZX=-+""IXXM--X-"-+Z+-----"XXA--ZZ-ZZXZZXA+1- -++=+=+=+=XA
+CCCCCCCCCCCCCCCCCCCC CCC CCCC CCC C C   CCCCC+++..+..C   C C   CC      C     C.CC+    CC C+.C C.....+   CC  C
+                                             CCC''C''                         ' BC        C'   '''''C
+                                                XX XX                         X H          X   XXXXX
+                                                CC CC                         C X          C   CCCCC
*++++++++++++===+==+=====M=========M====MM=X=---"+=++=M-Z-M++==MZZZZZXXAAAIX--A-M=-MZ-=++M--+"-+-------"+-MMZ--M-M---ZI+++1++===IXA==
+CCCCCCCCCCCCCCCCCCCCCCCC CCCCCCCCC CCCC  C C...+CCCCC C C CCCC             CC C C.  CCCC CCC+.C.......+CC   CC C CCC
+                                            '''C                                 '          C' '''''''C
+                                            XXX                                  X           X XXXXXXX
+                                            CCC                                  C           C CCCCCCC
*"++++++++++++=++===================M=MM-MMM-"--+==MMMX-=+==M-Z-ZXAXZXXAIIAAXZZXXZ=+=+=="+"+MM+"--"----++"==MMMM--MMM--ZAI=+++IX-=X==
++CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C  C   C+..CCC    CCCCC C C                  CCCCCC+C+C  C+..C....CC+CC    CC   CC         CC
+C                                           C''                                        C C    C''B''''  C
+                                             XX                                                XXHXXXX
+                                             CC                                                CCXCCCC
*"++++++++++++++=+===========M==M==MMMMMM-MMM"-"-"M-XZ-"+"=-ZXX-MMMZ=--AXXIIIAMM===M+--++="-"+"="-"------++-"++MZZM=MMMMZMZMZMM+"MA=I
++CCCCCCCCCCCCCCCCCCCCCCCCCCC CC CC      C   +.C.+ C  C+C+CC   C    CCC         CCC C..CCC+.+C+C+.C......CC.+CC    C           C+
+C                                           C'B'C     C C                           ''   C'C C C'B''''''  'C                   C
+                                             XHX                                    XX    X     XHXXXXXX  X
+                                             CXC                                    CC    C     CXCCCCCC  C
*+"+++++++++"+=+==+=++====MM==M=MMMMMMMM-MMM-M"--"+XZM++-M-M+MZMA=IZZ-=--I+11==XZZ-ZM--""-----M-"+="-""M=-+-ZX="ZM++"--="M=="=-==+=II
+C+CCCCCCCCC+CCCCCCCCCCCCC  CC C        C   C +..+C   CCC C C        CCCC         C  ..CC..... .+CC+.C+ C.CC  C+   C+CCC+ CC+CCCC
+ C         C                                 C''C                                   ''BB''''' 'C  C'BC  '     C    C   C   C
+                                              XX                                    XXHHXXXXX X    XH   X
+                                              CC                                    CCXXCCCCC C    CX   C
*""""+"""++""++++++++=++=+==+===========MM=MMM=+""++=+=+MM==+Z-MM"=+++MM=M--ZAIAXM=++++++++--"+="=+M+"-----""+MA--Z=A+"++---+++X=AIAI
+++++C+++CC++CCCCCCCCCCCCCCCCCCCCCCCCCCC  C   CC++CCCCCC  CCC C  +CCCC  C CC      CCCCCCCCC..+CC+CC C+.....++C  CC   C+CC...CCC
+CCCC CCC  CC                                   CC               C                         ''C  C    C'''''CC         C  '''
+                                                                                          XX         XXXXX              XXX
+                                                                                          CC         CCCCC              CCC
*"""-""""""""""""+""+"++"+++++++++++=++==========+"+"""+=++=++"-"-++M=M=M-=+MMM=M======++===""+"--"+==+==++====-AAZXAAZ+"-"ZZ-AXZ-XIA
++++.++++++++++++C++C+CC+CCCCCCCCCCCCCCCCCCCCCCCCC+C+++CCCCCCC+.C.CC C C CCC   C CCCCCCCCCCC++C+..+CCCCCCCCCCCCC       C+.+  C   C
+CCC'CCCCCCCCCCCC CC C  C                         C CCC       C'B'                          CC C''C                     C'C
+   X                                                          XHX                              XX                       X
+   C                                                          CXC                              CC                       C
*--------------""""""""""""""""++"+++++++++++====+------"M=-=""""="++"MAXXZX-ZZ=""""-+-""--""==MM==""++MM--===+M-++==MMM-AIIX-Z-M-XXX
+..............++++++++++++++++CC+CCCCCCCCCCCCCCCC......+ CCC++++C+CC+      C  C++++.C.++..++CC  CC++CC  CCCCCC CCCCC   C    C C C
+''''''''''''''CCCCCCCCCCCCCCCC  C                ''''''C    CCCC C  C          CCCC' 'CC''CC      CC
+XXXXXXXXXXXXXX                                   XXXXXX                            X X  XX
+CCCCCCCCCCCCCC                                   CCCCCC                            C C  CC
*----""----+Z""-""-"""""""+++"""+++++++=++++=======---""=-MMMM+-Z----ZM=-AI-===-XZ="---"===="+"""-"--""""--"-""""--"--""A+===+==AXAII
+....++....C ++.++.+++++++CCC+++CCCCCCCCCCCCCCCCCCC...++CC    CC CCCC  CC  CCCCC  C+...+CCCC+C+++.+..++++..C.++CC..+..++
+''''CC''''  CC'CC'CCCCCCC   CCC                   '''CC                           C'''C    C CCC'C''CCCC''B'CCBB''C''CC
+XXXX  XXXX    X  X                                XXX                              XXX          X XX    XXHX  HHXX XX
+CCCC  CCCC    C  C                                CCC                              CCC          C CC    CCXC  XXCC CC
*-------"--"+"-""""""""""""++"+"+++++++=+++=====M==-+-"----"MZZZZ-XXXZXA-ZAXXM=++++++M=+"""-"++"""+++++=MMM-M+"+MM=+++"-"= -1=A==I=II
+.......+..+C+.++++++++++++CC+C+CCCCCCCCCCCCCCCC CCCC.C....+     C      C     CCCCCCC CC+++.+CC+++CCCCCC   C C+C  CCCC+.+
+'''''''C''C C'CCCCCCCCCCCC  C C                     'B''''C                            CCC'C  CCC            C       C'C
+XXXXXXX XX   X                                      XHXXXX                                X                           X
+CCCCCCC CC   C                                      CXCCCC                                C                           C
*-----""""-"""""""""""+"""++++"++++++++++=======MMMM-----""+==-===MXZAII=IIXAXXZ-MM++""""""--+==-=+"+=MMM=-MM=M+M=-MM++--"+-1++1+=+I=
+.....++++.+++++++++++C+++CCCC+CCCCCCCCCCCCCCCCC    C....++CCCCCCC              C  CC++++++..CCCCCC+CC   CC  C C CC  CC..+
+'''''CCCC'CCCCCCCCCCC CCC    C                      ''''CC                          CCCCCC''      C                   ''C
+XXXXX    X                                          XXXX                                  XX                          XX
+CCCCC    C                                          CCCC                                  CC                          CC
*-""--"""""""""+""+++++"++++++++===============MMMMM--"---"=M-Z-Z---ZX-ZAXAXX=++=M-M=+++++""-+"MM=+"--"++-"++"--"""--+++"-+-A   1=IA-
+.++..+++++++++C++CCCCC+CCCCCCCCCCCCCCCCCCCCCCC     CC+...+C C C CCC  C      CCCC C CCCCCC++.C+  CC+..+CC.+CC+..+++..CCC+.CC        C
+'CC''CCCCCCCCC CC     C                              C'''C                               CC' C    C''C  'C  C''CCC''   C'
+X  XX                                                 XXX                                  X       XX   X    XX   XX    X
+C  CC                                                 CCC                                  C       CC   C    CC   CC    C
*++"""""+++++++++======+=++========M==MMMMMMM-MM=MM-----------+ZIA=IAAIX=IXXZ-AXMM++"""--""-"--"++=M-ZAZZXAZZMM-"+"+Z--XM+"---M- =M""
+CC+++++CCCCCCCCCCCCCCCCCCCCCCCCCCC CC       C  C  CCCC.......C              C    CC+++..++.+..+CCC C          .+C+C CC  C+...     ++
+  CCCCC                                               '''''''                      CCC''CC'C''C               'C C       C'''     CC
+                                                      XXXXXXX                         XX  X XX                X           XXX
+                                                      CCCCCCC                         CC  C CC                C           CCC
*++"+"++++++++++==+==+==+++=M==MMMMMMM==MMM-MMMM-M-----Z="-+"+=+==-XXZZZZZMZIX-=MMMMZ=MMM-M=MZ=M-==-==M====++=-M-XZXIA--M-"-"""---"+"
+CC+C+CCCCCCCCCCCCCCCCCCCCCC CC       CC   C    C CCCCC C+.C+CCCCCC           CC     C   C C  C CCCCCC CCCCCCCC C     CC .+.CCC...+C+
+  C C                                                   C' C                                                            'C'BBB'''C C
+                                                         X                                                              X XHHHXXX
+                                                         C                                                              C CXXXCCC
*+++++++++++++++=========+====MMMM---MMMMMM-MMMM-M------A-+++M=M-M-ZZ-ZZZZXZAXXZXXZMM===ZIAAXXX-M-M+-+MM--XZM+""-+=IIAZ+-MAXZZ="--"+"
+CCCCCCCCCCCCCCCCCCCCCCCCCCCCC    CCC      C    C CCCCCC CCCC C C C  C               CCC       C C C.C  CC   C++C      C.     C+..+C+
+                                                                                                   '         CC        '      C''C C
+                                                                                                   X                   X       XX
+                                                                                                   C                   C       CC
*""+"+++++++++=+=====+=======MMMM=MM-MMMMMMMMM-M-M-----MZXZZ-==+=XXXXIIIAAAXAXIIIZ-=++"+==MM=-XM=+""="+=ZM=+"+I==+=IA="-MX==1=+=Z"-"-
+++C+CCCCCCCCCCCCCCCCCCCCCCCC    C  C         C C CCCCC     CCCCC                 CCCC+CCC  CC  CC++C+CC  CC+C       C+.         +.+C
+CC C                                                                                 C           CC C      C         C'         C'C
+                                                                                                                      X          X
+                                                                                                                      C          C
*""""++"++++"++=+++++++=====M===M===M=M=MMMMMMMM-MM-MMMMMM=M---XM-ZZA=IXAIAXZZ-ZZM+---"-+MX====M="-+"""=M"--=AI==AA-""-XAAA=+11++1+1+
+++++CC+CCCC+CCCCCCCCCCCCCCC CCC CCC C C        C  C      C CCC  C            C   C...C.C  CCCC C+.C+++C +..C      C+C.
+CCCC  C    C                                                                      '''B'         C' CCC  C''        CB'
+                                                                                  XXXHX          X       XX         HX
+                                                                                  CCCXC          C       CC         XC
*-"""""""+""++++++++++++=+=+++============M==MMMZMMMM=MMMMM=M=====ZZXAAAI=IIAIXIAXXZZZXXZZZ---=="""++-++-"=I+1+IAXZ+-+XZIIA=+=+1111+1
+.+++++++C++CCCCCCCCCCCCCCCCCCCCCCCCCCCCCC CC        C     C CCCCC                         CCCCC+++CCCCC.+C        C.C
+'CCCCCCC CC                                                                                    CCC     'C          '
+X                                                                                                      X           X
+C                                                                                                      C           C
*----""""""""""""+"+"+"+"++++++++++++=+==========M=M=======+====++=MZXAAXMM--XX===11++==IIAXZMM+-"---""-=XI===AXM-Z=Z+II++===II=+11+=
+....++++++++++++C+C+C+C+CCCCCCCCCCCCCCCCCCCCCCCC C CCCCCCCCCCCCCCC        CC                  C.+...++.C        C C
+''''CCCCCCCCCCCC C C C C                                                                       'C'''CC'
+XXXX                                                                                           X XXX  X
+CCCC                                                                                           C CCC  C
*----"--""-""""""""""""""+"++++"++++++++++=+=+==================+==++M-A==IXM""=--XXZAI+=1+1+XA-MM+""--ZXXI==IZ---ZX=--      1+++=+1=
+....+..++.++++++++++++++C+CCCC+CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C      ++CCC             C  C++..        CCC
+''''C''CC'CCCCCCCCCCCCCC C    C                                             CC                    CC''
+XXXX XX  X                                                                                          XX
+CCCC CC  C                                                                                          CC
*------"-"""""""""""""""""""+""+++++=+=+=+===+==+=M=MM====+====M===M==++=X=11IIIAAI=I++11++=1+I+=X+-"XZXA=++AX---XI=III==+----  -+I="
+......+.+++++++++++++++++++C++CCCCCCCCCCCCCCCCCCC C  CCCCCCCCC CCC CCCCC                         C.+         CCC                  C+
+''''''C'CCCCCCCCCCCCCCCCCCC CC                                                                    'C                               C
+XXXXXX X                                                                                          X
+CCCCCC C                                                                                          C
*-------"-"""--""""""""""++++"++++++++=++==+==M===M=======M===M==M====M==+++MZAAXX--MM=+"++"+AAAXZAIAAA==1==IAAZZZXZIAIXZ-M-AIAXMM-I+
+.......+.+++..++++++++++CCCC+CCCCCCCCCCCCCCCC CCC CCCCCCC CCC CC CCCC CCCCC      CC  CC+CC+C                            C C      C
+'''''''C'CCC''CCCCCCCCCC    C                                                          C  C
+XXXXXXX X   XX
+CCCCCCC C   CC
*----"-""-"""""""""""""++++++"++++==++=+==========MM==M========M=MMMMMMM====+==MM==+=+++""""+-+====I=1- -++=+++IXMZAAAAAAIIII++11-=IA
+....+.++.+++++++++++++CCCCCC+CCCCCCCCCCCCCCCCCCCC  CC CCCCCCCC C       CCCCCCC  CCCCCCC++++C
+''''C'CC'CCCCCCCCCCCCC      C                                                          CCCC
+XXXX X  X
+CCCC C  C
*-------"""""""""""""""+"+++++++++=++===+====+===MM==M=M===M=MMMM=MMMM=MMMM==MM=MM-MMM--MMM=+X-  -    --1++1++==IAIAAIII==II=-+X-M===
+.......+++++++++++++++C+CCCCCCCCCCCCCCCCCCCCCCCC  CC C CCC C    C    C    CC  C  C   CC   CC                                   C CCC
+'''''''CCCCCCCCCCCCCCC C
+XXXXXXX
+CCCCCCC
*-"---""""-"""""""""""""+"+++++"+++==+=========M=MMM=MMM===MM=MM===-=MMMM=M=MM=MM--MMMM-M--=="--1  -+AXAAZXAXXXZA==IAAI=++=AM+"==MMMM
+.+...++++.+++++++++++++C+CCCCC+CCCCCCCCCCCCCCC C   C   CCC  C  CCCCC    C C  C  CC    C CCCC+.C                             C+CC
+'C'''CCCC'CCCCCCCCCCCCC C     C                                                             C'                               C
+X XXX    X                                                                                   X
+C CCC    C                                                                                   C
*-"-------"""""""""""""""""""""+""""++=+++++=+=========M====M==MM==MMM=MM===M=MMMMM-M-MMMMMMM++"-+X+=AZMM===+++MA==IIIIAZ=++=M-MM----
+.+.......+++++++++++++++++++++C++++CCCCCCCCCCCCCCCCCCC CCCC CC  CC   C  CCC C     C C       CC+.C       CCCCCC          CCCC C  CCCC
+'C'''''''CCCCCCCCCCCCCCCCCCCCC CCCC                                                           C'
+X XXXXXXX                                                                                      X
+C CCCCCCC                                                                                      C
*--------------"---"""""""""""""""""""++"++++++++++++++++=++=+++=+=+====+=+====M==MMMMM==MM==+"""---+=-XZXXZ--ZX-ZM=++"""++==MMMMMMMM
+..............+...+++++++++++++++++++CC+CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC CC     CC  CCC+++...CCC     CC  C  CCC+++CCCC
+''''''''''''''C'''CCCCCCCCCCCCCCCCCCC  C                                                     CCC'''                  CCC
+XXXXXXXXXXXXXX XXX                                                                              XXX
+CCCCCCCCCCCCCC CCC                                                                              CCC
*-----"----------------"--------"--""""""""""""""""""+""""""""""""""++"""""""+"+++++++"++++++""""---"----------------""""""""++++++++
+.....C................+........+..++++++++++++++++++C++++++++++++++CC+++++++C+CCCCCCC+CCCCCC++++...+................++++++++CCCCCCCC
+'''''B''''''''''''''''C''''''''C''CCCCCCCCCCCCCCCCCC CCCCCCCCCCCCCC  CCCCCCC C       C      CCCC'''C''''''''''''''''CCCCCCCC
+XXXXXHXXXXXXXXXXXXXXXX XXXXXXXX XX                                                              XXX XXXXXXXXXXXXXXXX
+CCCCCXCCCCCCCCCCCCCCCC CCCCCCCC CC                                                              CCC CCCCCCCCCCCCCCCC
*-"-"-----------------------------------"--""""--"-"""""--"""-"""--"""-""-"""-"-"""""""-"-"""""""""""""---""-""-"----""---"-"""""""""
+.+.C...................................+..++++..+.+++++..+++.+++..+++.++.+++.+.+++++++.+.+++++++++++++...++.++.+....++...+.+++++++++
+'C'B'''''''''''''''''''''''''''''''''''C''CCCC''C'CCCCC''CCC'CCC''CCC'CC'CCC'C'CCCCCCC'C'CCCCCCCCCCCCC'''CC'CC'C''''CC'''C'CCCCCCCCC
+X XHXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XX    XX X     XX   X   XX   X  X   X X       X X             XXX  X  X XXXX  XXX X
+C CXCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC CC    CC C     CC   C   CC   C  C   C C       C C             CCC  C  C CCCC  CCC C
*-------------------------------------------"----"--"-"""-"""--"-"-"-""-""-"""--"-----""----""--"-"-""--"--"---"----------"-"--"-""""
+...........................................+....+..+.+++.+++..+.+.+.++.++.+++..+.....++....++..+.+.++..+..+...+..........+.+..+.++++
+'''''''''''''''''''''''''''''''''''''''''''C''''C''C'CCC'CCC''C'C'C'CC'CC'CCC''C'''''CC''''CC''C'C'CC''C''C'''C''''''''''C'C''C'CCCC
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXX XX X   X   XX X X X  X  X   XX XXXXX  XXXX  XX X X  XX XX XXX XXXXXXXXXX X XX X
+CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC CCCC CC C   C   CC C C C  C  C   CC CCCCC  CCCC  CC C C  CC CC CCC CCCCCCCCCC C CC C
*-------------------------"--------"-----"------"--""--""-"""--"-"-"""-""""""-"""""""""""-"-""""-""-"--"""""---"--"-"----"-"-"-"--"""
+.........................+........+.....+......+..++..++.+++..+.+.+++.++++++.+++++++++++.+.++++.++.+..+++++...+..+.+....+.+.+.+..+++
+'''''''''''''''''''''''''C''''''''C'''''C''''''C''CC''CC'CCC''C'C'CCC'CCCCCC'CCCCCCCCCCC'C'CCCC'CC'C''CCCCC'''C''C'C''''C'C'C'C''CCC
+XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXX XXXXX XXXXXX XX  XX  X   XX X X   X      X           X X    X  X XX     XXX XX X XXXX X X X XX
+CCCCCCCCCCCCCCCCCCCCCCCCC CCCCCCCC CCCCC CCCCCC CC  CC  C   CC C C   C      C           C C    C  C CC     CCC CC C CCCC C C C CC
*----------------------------------------------"-------"--"--"-"----""-"--"""""""""-"--------"---""-""-"-----------"--"--------"-----
+..............................................+.......+..+..+.+....++.+..+++++++++.+........+...++.++.+...........+..+........+.....
+''''''''''''''''''''''''''''''''''''''''''''''C'''''''C''C''C'C''''CC'C''CCCCCCCCC'C''''''''C'''CC'CC'C'''''''''''C''C''''''''C'''''
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXX XX XX X XXXX  X XX         X XXXXXXXX XXX  X  X XXXXXXXXXXX XX XXXXXXXX XXXXX
+CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC CCCCCCC CC CC C CCCC  C CC         C CCCCCCCC CCC  C  C CCCCCCCCCCC CC CCCCCCCC CCCCC
*---------------------------------"--"---------"--"--"-"+""""""--"-"-"""-"-""--"""--"-"""--"=-"""-"---"""-""-"-"""-"""-""--"-"""-"---
+.................................+..+.........+..+..+.+C++++++..+.+.+++.+.++..+++..+.+++..+C.+++.+...+++.++.+.+++.+++.++..+.+++.+...
+'''''''''''''''''''''''''''''''''C''C'''''''''C''C''C'C CCCCCC''C'C'CCC'C'CC''CCC''C'CCC''C 'CCC'C'''CCC'CC'C'CCC'CCC'CC''C'CCC'C'''
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XX XXXXXXXXX XX XX X        XX X X   X X  XX   XX X   XX  X   X XXX   X  X X   X   X  XX X   X XXX
+CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC CC CCCCCCCCC CC CC C        CC C C   C C  CC   CC C   CC  C   C CCC   C  C C   C   C  CC C   C CCC
*-----------------------------------"--"--------"-------"---"--"""--"""----"-"-""-----"--"--="""--"----"""-""-"--"----------"-"----"-
+...................................+..+........+.......+...+..+++..+++....+.+.++.....+..+..C+++..+....+++.++.+..+..........+.+....+.
+'''''''''''''''''''''''''''''''''''C''C''''''''C'''''''C'''C''CCC''CCC''''C'C'CC'''''C''C'' CCC''C''''CCC'CC'C''C''''''''''C'C''''C'
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XX XXXXXXXX XXXXXXX XXX XX   XX   XXXX X X  XXXXX XX XX    XX XXXX   X  X XX XXXXXXXXXX X XXXX X
+CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC CC CCCCCCCC CCCCCCC CCC CC   CC   CCCC C C  CCCCC CC CC    CC CCCC   C  C CC CCCCCCCCCC C CCCC C
*--------------------------------------""-------------""--"-"---"-"-"--"--""---"""-"--"-"---"=-"-""-""""-"--"-""--"-"--------"""-"--"
+......................................++.............++..+.+...+.+.+..+..++...+++.+..+.+...+C.+.++.++++.+..+.++..+.+........+++.+..+
+''''''''''''''''''''''''''''''''''''''CC'''''''''''''CC''C'C'''C'C'C''C''CC'''CCC'C''C'C'''C 'C'CC'CCCC'C''C'CC''C'C''''''''CCC'C''C
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX  XXXXXXXXXXXXX  XX X XXX X X XX XX  XXX   X XX X XXX  X X  X    X XX X  XX X XXXXXXXX   X XX
+CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC  CCCCCCCCCCCCC  CC C CCC C C CC CC  CCC   C CC C CCC  C C  C    C CC C  CC C CCCCCCCC   C CC
*----"---------------------------------""-------------------"-------"--"---""---""----------""+---------------"----""----------"-"---
+....C.................................++...................+.......+..+...++...++..........++C...............+....++..........+.+...
+''''B'''''''''''''''''''''''''''''''''CC'''''''''''''''''''C'''''''C''C'''CC'''CC''''''''''CC '''''''''''''''C''''CC''''''''''C'C'''
+XXXXHXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX  XXXXXXXXXXXXXXXXXXX XXXXXXX XX XXX  XXX  XXXXXXXXXX   XXXXXXXXXXXXXXX XXXX  XXXXXXXXXX X XXX
+CCCCXCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC  CCCCCCCCCCCCCCCCCCC CCCCCCC CC CCC  CCC  CCCCCCCCCC   CCCCCCCCCCCCCCC CCCC  CCCCCCCCCC C CCC
*------------------------"-""-----"-----"---"---"----"""-"-------"-"""----""-"-----------"---""="---"-----"----"-"-----""""""-"--""""
+........................+.++.....+.....+...+...+....+++.+.......+.+++....++.+...........+...++C+...+.....+....+.+.....++++++.+..++++
+''''''''''''''''''''''''C'CC'''''C'''''C'''C'''C''''CCC'C'''''''C'CCC''''CC'C'''''''''''C'''CC C'''C'''''C''''C'C'''''CCCCCC'C''CCCC
+XXXXXXXXXXXXXXXXXXXXXXXX X  XXXXX XXXXX XXX XXX XXXX   X XXXXXXX X   XXXX  X XXXXXXXXXXX XXX    XXX XXXXX XXXX X XXXXX      X XX
+CCCCCCCCCCCCCCCCCCCCCCCC C  CCCCC CCCCC CCC CCC CCCC   C CCCCCCC C   CCCC  C CCCCCCCCCCC CCC    CCC CCCCC CCCC C CCCCC      C CC
*"-----------------------------------------------"-"--------------"-------------"---------------"------------------------"---"-------
+C...............................................+.+..............+.............+...............+........................+...+.......
+B'''''''''''''''''''''''''''''''''''''''''''''''C'C''''''''''''''C'''''''''''''C'''''''''''''''C''''''''''''''''''''''''C'''C'''''''
+HXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X XXXXXXXXXXXXXX XXXXXXXXXXXXX XXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX XXX XXXXXXX
+XCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C CCCCCCCCCCCCCC CCCCCCCCCCCCC CCCCCCCCCCCCCCC CCCCCCCCCCCCCCCCCCCCCCCC CCC CCCCCCC
*--------------------------------------------------"--"--------------"---"-"---"-----"----"-------------------------"----"--"--------
+..................................................+..+..............+...+.+...+.....+....+.........................+....+..+........
+''''''''''''''''''''''''''''''''''''''''''''''''''C''C''''''''''''''C'''C'C'''C'''''C''''C'''''''''''''''''''''''''C''''C''C''''''''
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XX XXXXXXXXXXXXXX XXX X XXX XXXXX XXXX XXXXXXXXXXXXXXXXXXXXXXXXX XXXX XX XXXXXXXX
+CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC CC CCCCCCCCCCCCCC CCC C CCC CCCCC CCCC CCCCCCCCCCCCCCCCCCCCCCCCC CCCC CC CCCCCCCC
*-----------------------------------------------------------------------------------------------"------------------"-------------"---
+...............................................................................................+..................+.............+...
+'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''C''''''''''''''''''C'''''''''''''C'''
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX XXXXXXXXXXXXX XXX
+CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC CCCCCCCCCCCCCCCCCC CCCCCCCCCCCCC CCC
*"--------------------------------------"---"-------------------------"------------------"-"--""--------"--------"----"""---"---"--"-
+C......................................+...+.........................+..................+.+..++........+........+....+++...+...+..+.
+B''''''''''''''''''''''''''''''''''''''C'''C'''''''''''''''''''''''''C''''''''''''''''''C'C''CC''''''''C''''''''C''''CCC'''C'''C''C'
+HXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX X XX  XXXXXXXX XXXXXXXX XXXX   XXX XXX XX X
+XCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC CCC CCCCCCCCCCCCCCCCCCCCCCCCC CCCCCCCCCCCCCCCCCC C CC  CCCCCCCC CCCCCCCC CCCC   CCC CCC CC C
*---"---------------------------------------------------------------------"----"----------------"----"-------"-------"-----"----"==--
+...C.....................................................................+....+................+....+.......+.......+.....+....+CC..
+'''B'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''C''''C''''''''''''''''C''''C'''''''C'''''''C'''''C''''C  ''
+XXXHXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXX XXXXXXXXXXXXXXXX XXXX XXXXXXX XXXXXXX XXXXX XXXX   XX
+CCCXCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC CCCC CCCCCCCCCCCCCCCC CCCC CCCCCCC CCCCCCC CCCCC CCCC   CC
*---"--------------------------"------------------------------------------------------------------------------------------------"- --
+...C..........................C................................................................................................+C ..
+'''B''''''''''''''''''''''''''B''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''C  ''
+XXXHXXXXXXXXXXXXXXXXXXXXXXXXXXHXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX   XX
+CCCXCCCCCCCCCCCCCCCCCCCCCCCCCCXCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC   CC
*------""-"---"--------------"""--------------------------------------------------------------------------------------"--------------
+......CC.C...C..............CCC......................................................................................+...........C..
+''''''BB'B'''B''''''''''''''BBB''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''C''''''''''' ''
+XXXXXXHHXHXXXHXXXXXXXXXXXXXXHHHXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXX XX
+CCCCCCXXCXCCCXCCCCCCCCCCCCCCXXXCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC CCCCCCCCCCC CC
*-----------"---"------------"-----"------------------------"--------------------------"--------"-----------"---"--------"-"---------
+...........C...C............C.....C........................+..........................+........+...........+...+........+.+.........
+'''''''''''B'''B''''''''''''B'''''B''''''''''''''''''''''''C''''''''''''''''''''''''''C''''''''C'''''''''''C'''C''''''''C'C'''''''''
+XXXXXXXXXXXHXXXHXXXXXXXXXXXXHXXXXXHXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXXXXX XXX XXXXXXXX X XXXXXXXXX
+CCCCCCCCCCCXCCCXCCCCCCCCCCCCXCCCCCXCCCCCCCCCCCCCCCCCCCCCCCC CCCCCCCCCCCCCCCCCCCCCCCCCC CCCCCCCC CCCCCCCCCCC CCC CCCCCCCC C CCCCCCCCC
*----"-----------------------------------------------------------------"--------"--"-"--"-"--"""""-"""--"--"""""""""""""""""""""--"--
+....C.................................................................+........+..+.+..+.+..+++++.+++..+..+++++++++++++++++++++..+..
+''''B'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''C''''''''C''C'C''C'C''CCCCC'CCC''C''CCCCCCCCCCCCCCCCCCCCC''C''
+XXXXHXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXX XX X XX X XX     X   XX XX                     XX XX
+CCCCXCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC CCCCCCCC CC C CC C CC     C   CC CC                     CC CC
*----"---"---"-----------------------------"---------------------------"--------------"----------"----------------"--"""""""""""+""""
+....C...C...C.............................C...........................+..............+..........+................+..+++++++++++C++++
+''''B'''B'''B'''''''''''''''''''''''''''''B'''''''''''''''''''''''''''C''''''''''''''C''''''''''C''''''''''''''''C''CCCCCCCCCCC CCCC
+XXXXHXXXHXXXHXXXXXXXXXXXXXXXXXXXXXXXXXXXXXHXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXX XXXXXXXXXX XXXXXXXXXXXXXXXX XX
+CCCCXCCCXCCCXCCCCCCCCCCCCCCCCCCCCCCCCCCCCCXCCCCCCCCCCCCCCCCCCCCCCCCCCC CCCCCCCCCCCCCC CCCCCCCCCC CCCCCCCCCCCCCCCC CC
*---------------------------------------------"-"--"------------------------------------"----------------------------"""""""+"++"""""
+.............................................+.+..+....................................C............................+++++++C+CC+++++
+'''''''''''''''''''''''''''''''''''''''''''''C'C''C''''''''''''''''''''''''''''''''''''B''''''''''''''''''''''''''''CCCCCCC C  CCCCC
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X XX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXHXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C CC CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCXCCCCCCCCCCCCCCCCCCCCCCCCCCCC
*-""""-""""""--"--"-------------"--"--""--------------------------------------------------"---"----"--------"--"----"--""-""++++++++"
+.++++.++++++..+..+.............+..+..+C..................................................+...+....+........+..+....+..++.++CCCCCCCC+
+'CCCC'CCCCCC''C''C'''''''''''''C''C''CB''''''''''''''''''''''''''''''''''''''''''''''''''C'''C''''C''''''''C''C''''C''CC'CC        C
+X    X      XX XX XXXXXXXXXXXXX XX XX HXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX XXXX XXXXXXXX XX XXXX XX  X
+C    C      CC CC CCCCCCCCCCCCC CC CC XCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC CCC CCCC CCCCCCCC CC CCCC CC  C
*--------+---------------------------------"""------""-------------------------------"-----"-----------------------"-------"++""""""-
+........C.................................+++......CC...............................C.....C.......................+.......+CC++++++.
+'''''''' '''''''''''''''''''''''''''''''''CCC''''''BB'''''''''''''''''''''''''''''''B'''''B'''''''''''''''''''''''C'''''''C  CCCCCC'
+XXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX   XXXXXXHHXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXHXXXXXHXXXXXXXXXXXXXXXXXXXXXXX XXXXXXX         X
+CCCCCCCC CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC   CCCCCCXXCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCXCCCCCXCCCCCCCCCCCCCCCCCCCCCCC CCCCCCC         C
*------------------"--"------"-----------------------"--------------------------------------------------""---------"--"--"--"+"""-"""
+..................+..+......+.......................C..................................................++.........+..+..+..+C+++.+++
+''''''''''''''''''C''C''''''C'''''''''''''''''''''''B''''''''''''''''''''''''''''''''''''''''''''''''''CC'''''''''C''C''C''C CCC'CCC
+XXXXXXXXXXXXXXXXXX XX XXXXXX XXXXXXXXXXXXXXXXXXXXXXXHXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX  XXXXXXXXX XX XX XX     X
+CCCCCCCCCCCCCCCCCC CC CCCCCC CCCCCCCCCCCCCCCCCCCCCCCXCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC  CCCCCCCCC CC CC CC     C
*---"--------------"""""-----------"----------------------------------------------------------------"--"""--------""-"-"-"-"""""-""""
+...C..............+++++...........C................................................................+..+++........++.+.+.+.+++++.++++
+'''B''''''''''''''CCCCC'''''''''''B''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''C''CCC''''''''CC'C'C'C'CCCCC'CCCC
+XXXHXXXXXXXXXXXXXX     XXXXXXXXXXXHXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XX   XXXXXXXX  X X X X     X
+CCCXCCCCCCCCCCCCCC     CCCCCCCCCCCXCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC CC   CCCCCCCC  C C C C     C
*"------------------"+""-------------------------"------------------"----------"-------------------"-""--""---"""""""-""""""--=""-"""
+C..................+C++.........................C..................+..........+...................+.++..++...+++++++.++++++.CC++.+++
+B''''''''''''''''''C CC'''''''''''''''''''''''''B''''''''''''''''''C''''''''''C'''''''''''''''''''C'CC''CC'''CCCCCCC'CCCCCC'  CC'CCC
+HXXXXXXXXXXXXXXXXXX    XXXXXXXXXXXXXXXXXXXXXXXXXHXXXXXXXXXXXXXXXXXX XXXXXXXXXX XXXXXXXXXXXXXXXXXXX X  XX  XXX       X      X    X
+XCCCCCCCCCCCCCCCCCC    CCCCCCCCCCCCCCCCCCCCCCCCCXCCCCCCCCCCCCCCCCCC CCCCCCCCCC CCCCCCCCCCCCCCCCCCC C  CC  CCC       C      C    C
*--------"-----------"""-"--"-----------------------"-------------------------------"-------"-------"---""-"""-"""-"""-""""-+""-"""-"
+........C...........+++.C..C.......................C...............................+.......+.......+...++.+++.+++.+++.++++.C++.+++.+
+''''''''B'''''''''''CCC'B''B'''''''''''''''''''''''B'''''''''''''''''''''''''''''''C'''''''C'''''''C'''CC'CCC'CCC'CCC'CCCC' CC'CCC'C
+XXXXXXXXHXXXXXXXXXXX   XHXXHXXXXXXXXXXXXXXXXXXXXXXXHXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXX XXXXXXX XXX  X   X   X   X    X   X   X
+CCCCCCCCXCCCCCCCCCCC   CXCCXCCCCCCCCCCCCCCCCCCCCCCCXCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC CCCCCCC CCCCCCC CCC  C   C   C   C    C   C   C
*-----------------------"-------"---------------------------------------------------------"---"---""-"-"""-""""""""""""""""""""-"""-"
+.......................C.......C.........................................................+...+...++.+.+++.++++++++++++++++++++.+++.+
+'''''''''''''''''''''''B'''''''B'''''''''''''''''''''''''''''''''''''''''''''''''''''''''C'''C'''CC'C'CCC'CCCCCCCCCCCCCCCCCCCC'CCC'C
+XXXXXXXXXXXXXXXXXXXXXXXHXXXXXXXHXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX XXX  X X   X                    X   X
+CCCCCCCCCCCCCCCCCCCCCCCXCCCCCCCXCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC CCC CCC  C C   C                    C   C
*----------------------------------------------"--------------------"------------------"---"--"-""-----""""""""""""""""""""""""-"""""
+..............................................+....................+..................+...+..+.++.....++++++++++++++++++++++++.+++++
+''''''''''''''''''''''''''''''''''''''''''''''C''''''''''''''''''''C''''''''''''''''''C'''C''C'CC'''''CCCCCCCCCCCCCCCCCCCCCCCC'CCCCC
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX XXX XX X  XXXXX                        X
+CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC CCCCCCCCCCCCCCCCCCCC CCCCCCCCCCCCCCCCCC CCC CC C  CCCCC                        C
*-----------------------"---------"-----------"-------------------"--------------------"-""""""""-"-"-""-"""""""""""""""""""+""""""""
+.......................C.........+...........+...................+....................+.++++++++.+.+.++.+++++++++++++++++++C++++++++
+'''''''''''''''''''''''B'''''''''C'''''''''''C'''''''''''''''''''C''''''''''''''''''''C'CCCCCCCC'C'C'CC'CCCCCCCCCCCCCCCCCCC CCCCCCCC
+XXXXXXXXXXXXXXXXXXXXXXXHXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX X        X X X  X
+CCCCCCCCCCCCCCCCCCCCCCCXCCCCCCCCC CCCCCCCCCCC CCCCCCCCCCCCCCCCCCC CCCCCCCCCCCCCCCCCCCC C        C C C  C
*-----------------"-----------"--------------"-----------------------------"------------""""""-"-"-"-""""""""""""""""""""""="""""""""
+.................C...........C..............+.............................+............++++++.+.+.+.++++++++++++++++++++++C+++++++++
+'''''''''''''''''B'''''''''''B''''''''''''''C'''''''''''''''''''''''''''''C''''''''''''CCCCCC'C'C'C'CCCCCCCCCCCCCCCCCCCCCC CCCCCCCCC
+XXXXXXXXXXXXXXXXXHXXXXXXXXXXXHXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXX      X X X X
+CCCCCCCCCCCCCCCCCXCCCCCCCCCCCXCCCCCCCCCCCCCC CCCCCCCCCCCCCCCCCCCCCCCCCCCCC CCCCCCCCCCCC      C C C C
*-----"-----------"--------------------------"-----------------------------------"------"-""-"-""""--"""""""""""""""""+"""++"""""""+"
+.....C...........C..........................+...................................+......+.++.+.++++..+++++++++++++++++C+++CC+++++++C+
+'''''B'''''''''''B''''''''''''''''''''''''''C'''''''''''''''''''''''''''''''''''C''''''C'CC'C'CCCC''CCCCCCCCCCCCCCCCC CCC  CCCCCCC C
+XXXXXHXXXXXXXXXXXHXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXX X  X X    XX
+CCCCCXCCCCCCCCCCCXCCCCCCCCCCCCCCCCCCCCCCCCCC CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC CCCCCC C  C C    CC
*+-------------------------------------------------------------"""---------"-"-"----"""""""-"""""""-"""+""""""""""""+"""""""""""+""""
+C.............................................................+++.........+.+.+....+++++++.+++++++.+++C++++++++++++C+++++++++++C++++
+ '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''CCC'''''''''C'C'C''''CCCCCCC'CCCCCCC'CCC CCCCCCCCCCCC CCCCCCCCCCC CCCC
+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX   XXXXXXXXX X X XXXX       X       X
+ CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC   CCCCCCCCC C C CCCC       C       C
*--"""--"--------"-----------------"------"--------------------------"-"---------------"-"-"-"-""""""--"-""-"""""""""""""+"+""""""-""
+..CCC..C........C.................+......+..........................+.+...............+.+.+.+.++++++..+.++.+++++++++++++C+C++++++.++
+''BBB''B''''''''B'''''''''''''''''C''''''C''''''''''''''''''''''''''C'C'''''''''''''''C'C'C'C'CCCCCC''C'CC'CCCCCCCCCCCCC C CCCCCC'CC
+XXHHHXXHXXXXXXXXHXXXXXXXXXXXXXXXXX XXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXX X XXXXXXXXXXXXXXX X X X X      XX X  X                      X
+CCXXXCCXCCCCCCCCXCCCCCCCCCCCCCCCCC CCCCCC CCCCCCCCCCCCCCCCCCCCCCCCCC C CCCCCCCCCCCCCCC C C C C      CC C  C                      C
*--"----"-----------"------------------------------------------"-"-"-----------"""""""-"""-"---""""""""-""""""-""""""""""+""+""+""+""
+..C....C...........+..........................................+.+.+...........+++++++.+++.+...++++++++.++++++.++++++++++C++C++C++C++
+''B''''B'''''''''''C''''''''''''''''''''''''''''''''''''''''''C'C'C'''''''''''CCCCCCC'CCC'C'''CCCCCCCC'CCCCCC'CCCCCCCCCC CC CC CC CC
+XXHXXXXHXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X X XXXXXXXXXXX       X   X XXX        X      X
+CCXCCCCXCCCCCCCCCCC CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C CCCCCCCCCCC       C   C CCC        C      C
*---------"---------"--------------"--------""-"--------"-"-""-"""--"-"-"-"""""""""""""""""""""""""""""""""""""""""""+"""+""++"+"+"""
+.........+.........+..............+........++.+........+.+.++.+++..+.+.+.+++++++++++++++++++++++++++++++++++++++++++C+++C++CC+C+C+++
+'''''''''C'''''''''C''''''''''''''C''''''''CC'C''''''''C'C'CC'CCC''C'C'C'CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC CCC CC  C C CCC
+XXXXXXXXX XXXXXXXXX XXXXXXXXXXXXXX XXXXXXXX  X XXXXXXXX X X  X   XX X X X
+CCCCCCCCC CCCCCCCCC CCCCCCCCCCCCCC CCCCCCCC  C CCCCCCCC C C  C   CC C C C
*---"-----------"-----------------"-"----"""-"----------"""-""""""-"-""""""--"-""""-"""-""""""""-"""""""""""""""""""""""++"++""++""""
+...C...........+.................+.+....+++.+..........+++.++++++.+.++++++..+.++++.+++.++++++++.+++++++++++++++++++++++CC+CC++CC++++
+'''B'''''''''''C'''''''''''''''''C'C''''CCC'C''''''''''CCC'CCCCCC'C'CCCCCC''C'CCCC'CCC'CCCCCCCC'CCCCCCCCCCCCCCCCCCCCCCC  C  CC  CCCC
+XXXHXXXXXXXXXXX XXXXXXXXXXXXXXXXX X XXXX   X XXXXXXXXXX   X      X X      XX X    X   X        X
+CCCXCCCCCCCCCCC CCCCCCCCCCCCCCCCC C CCCC   C CCCCCCCCCC   C      C C      CC C    C   C        C
*------"---------"-"----"----""--"----"----""-"--"--"---"-""-"""--"""""""""--""""""=M"""""""""""""""""""+"""+++""""+"+"++++++""""""""
+......C.........+.+....+....++..+....+....++.+..+..+...+.++.+++..+++++++++..++++++C +++++++++++++++++++C+++CCC++++C+C+CCCCCC++++++++
+''''''B'''''''''C'C''''C''''CC''C''''C''''CC'C''C''C'''C'CC'CCC''CCCCCCCCC''CCCCCC  CCCCCCCCCCCCCCCCCCC CCC   CCCC C C      CCCCCCCC
+XXXXXXHXXXXXXXXX X XXXX XXXX  XX XXXX XXXX  X XX XX XXX X  X   XX         XX
+CCCCCCXCCCCCCCCC C CCCC CCCC  CC CCCC CCCC  C CC CC CCC C  C   CC         CC
*-"------------------------------""------""-"""-----""--"-"--------""---""-""-"""""++"""""""""""""""""""+""+++++"+""""++++""""""""+""
+.C..............................++......++.+++.....++..+.+........++...++.++.+++++CC+++++++++++++++++++C++CCCCC+C++++CCCC++++++++C++
+'B''''''''''''''''''''''''''''''CC''''''CC'CCC'''''CC''C'C''''''''CC'''CC'CC'CCCCC  CCCCCCCCCCCCCCCCCCC CC     C CCCC    CCCCCCCC CC
+XHXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX  XXXXXX  X   XXXXX  XX X XXXXXXXX  XXX  X  X
+CXCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC  CCCCCC  C   CCCCC  CC C CCCCCCCC  CCC  C  C
*-"-----------------------------""--"--"-----""---""""--"--"-"--""""-"""""""-"""""""""""""""""""""""+"+"+++"+""""++++++""+"+"""""++"+
+.C.............................++..+..+.....++...++++..+..+.+..++++.+++++++.+++++++++++++++++++++++C+C+CCC+C++++CCCCCC++C+C+++++CC+C
+'B'''''''''''''''''''''''''''''CC''C''C'''''CC'''CCCC''C''C'C''CCCC'CCCCCCC'CCCCCCCCCCCCCCCCCCCCCCC C C   C CCCC      CC C CCCCC  C
+XHXXXXXXXXXXXXXXXXXXXXXXXXXXXXX  XX XX XXXXX  XXX    XX XX X XX    X       X
+CXCCCCCCCCCCCCCCCCCCCCCCCCCCCCC  CC CC CCCCC  CCC    CC CC C CC    C       C
*"------------------------------------"-"----""--"-""--"-""-------"-"-"""""-"""""---""""""""""""""+++++++"""+""""++++++++"++"""+""++"
+C....................................+.+....++..+.++..+.++.......+.+.+++++.+++++...++++++++++++++CCCCCCC+++C++++CCCCCCCC+CC+++C++CC+
+B''''''''''''''''''''''''''''''''''''C'C''''CC''C'CC''C'CC'''''''C'C'CCCCC'CCCCC'''CCCCCCCCCCCCCC       CCC CCCC        C  CCC CC  C
+HXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X XXXX  XX X  XX X  XXXXXXX X X     X     XXX
+XCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C CCCC  CC C  CC C  CCCCCCC C C     C     CCC
*+===M=+++++++=+++++++++====+++++++++++=+++++==+=+=++=+M++++=++++++++++"++++=++++=++++++=+=+=++==========M===========M===============
+CCCC CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC CCCCCCCCCCCCCCC+CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC CCCCCCCCCCC CCCCCCCCCCCCCCC
+                                                                      C
1-""""+=M-ZZ-=+"""""=--M""-"""""""++++++++"""""""""+"-"=-ZX--=+=-XX=""""-"-----"----""""-------------------+M-M-=-----"--"""--"-"-"-"
+.++++CC C  CCC+++++CCC ++.+++++++CCCCCCCC+++++++++C+.+CC  CCCCCC  C++++.+.....+....++++...................C C CC.....C..CCC..C.C.C.C
+'CCCC         CCCCC    CC'CCCCCCC        CCCCCCCCC C'C             CCCC'C'''''C''''CCCC'''''''''''''''''''      '''''B''BBB''B'B'B'B
+X                        X                          X                  X XXXXX XXXX    XXXXXXXXXXXXXXXXXXX      XXXXXHXXHHHXXHXHXHXH
+C                        C                          C                  C CCCCC CCCC    CCCCCCCCCCCCCCCCCCC      CCCCCXCCXXXCCXCXCXCX
*-+"+=----M=+"""""""+M--M"""-"""++++++++"""""""""--"-""=ZZZZ-="+ZZZ+------------------------"--------------+MMM==++"""++"+"""""+"""--
+.C+CCCCCC CC+++++++C CC +++.+++CCCCCCCC+++++++++..+.++C    CC+C   C........................+..............C   CCCC+++CC+C+++++C+++..
+' C         CCCCCCC     CCC'CCC        CCCCCCCCC''C'CC       C     ''''''''''''''''''''''''C''''''''''''''        CCC  C CCCCC CCC''
+X                          X                    XX X               XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXX                        XX
+C                          C                    CC C               CCCCCCCCCCCCCCCCCCCCCCCC CCCCCCCCCCCCCC                        CC
*"+=M--MM+"""""""""""=MZ-+""""""+++++++""+""""""---""-+=-XZZ-="=-XZ+-------------------------------------"+M-MMMM-----Z-ZZ--Z--ZZZZ--
++CC CC  C+++++++++++C  CC++++++CCCCCCC++C++++++...++.CCC   CC+CC  C.....................................+C C    CCCCC C  CC CC    CC
+C        CCCCCCCCCCC     CCCCCC       CC CCCCCC'''CC'        C     '''''''''''''''''''''''''''''''''''''C
+                                               XXX  X              XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+                                               CCC  C              CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
*+MZZ-="""""""""""""""+--M="""""+"+++""+"""""""--""-"""M--M-==+=-ZZ+-------------------------"-------"+=MM-M-M-M-----M-ZZ---------Z-Z
+C   CC+++++++++++++++CCC C+++++C+CCC++C+++++++..++.+++ CC CCCCCC  C.........................+.......+CC  C C C CCCCC C  CCCCCCCCC C
+      CCCCCCCCCCCCCCC     CCCCC C   CC CCCCCCC''CC'CCC             '''''''''''''''''''''''''C'''''''C
+                                              XX  X                XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXX
+                                              CC  C                CCCCCCCCCCCCCCCCCCCCCCCCC CCCCCCC
*--XZ+"""""""""""""""""=---++-"+"+""""""""""""""++=MM-Z-XZ--ZZ-Z-Z--=+=+""""-"-----------"------""=MMZZZ--MM---M-MM-M----MZ-M-Z--Z---
+CC  C+++++++++++++++++CCCCCC.+C+C++++++++++++++CCC  C C  CC  C C CCCCCC++++.+...........+......++C     CC  CCC C  C CCCC  C C CC CCC
+     CCCCCCCCCCCCCCCCC      'C C CCCCCCCCCCCCCC                        CCCC'C'''''''''''C''''''CC
+                            X                                              X XXXXXXXXXXX XXXXXX
+                            C                                              C CCCCCCCCCCC CCCCCC
*-=++""""""""""""""""-""=ZZ-+-"""""""""""+++==--ZZZXXXXXZZZ-----ZZZ-MM-----MM==++""----------"+M-Z-----M-M----M-M-M--MMM----M---Z----
+CCCC++++++++++++++++.++C  CC.+++++++++++CCCCCCC           CCCCC   C  CCCCC  CCCC++..........+C C CCCCC C CCCC C C CC   CCCC CCC CCCC
+    CCCCCCCCCCCCCCCC'CC     'CCCCCCCCCCC                                        CC''''''''''C
+                    X       X                                                     XXXXXXXXXX
+                    C       C                                                     CCCCCCCCCC
*+""""""""-""""""""""-"""=-Z-++-""""+==MM--X-ZXZXZZ--MMMM======MZZZM==MMMM--M--M-MM==""""-+=M---M--MM--M--MMM---M-M----------M-------
+C++++++++.++++++++++.+++CC CCC.++++CCC  CC C      CC    CCCCCC     CC    CC CC C  CC++++.CC CCC CC  CC CC   CCC C CCCCCCCCCC CCCCCCC
+ CCCCCCCC'CCCCCCCCCC'CCC      'CCCC                                                 CCCC'
+         X          X         X                                                         X
+         C          C         C                                                         C
*-"""""""""""""""""-""""-"M--M+""+=M---Z-ZZZZ-M==+++"""""""-"--+---+"""-"""""++=MMM--MM=MMM--M---Z--MM-MMM-M--MM-M----------M--MM--M-
+.+++++++++++++++++.++++.+ CC C++CC CCC C    C CCCCC+++++++.+..CCCCC+++.+++++CCC   CC  C   CC CCC CC  C   C CC  C CCCCCCCCCC CC  CC C
+'CCCCCCCCCCCCCCCCC'CCCC'C     CC                   CCCCCCC'C''     CCC'CCCCC
+X                 X    X                                  X XX        X
+C                 C    C                                  C CC        C
*""""""""""""""""""""-"""""MZ-IMZZZZ--Z-M=++""------"------"--"M-ZM"-----"-------""+=+MZ-Z-Z---MM---M-M-MMMMM-M-M----=-M--MZ--M--M---
+++++++++++++++++++++.+++++  C      CC C CCC++......+......+..+ C  +.....+.......++CCC  C C CCC  CCC C C     C C CCCCCC CC  CC CC CCC
+CCCCCCCCCCCCCCCCCCCC'CCCCC                 CC''''''C''''''C''C    C'''''C'''''''CC
+                    X                        XXXXXX XXXXXX XX      XXXXX XXXXXXX
+                    C                        CCCCCC CCCCCC CC      CCCCC CCCCCCC
*""""""""-""""-"""""--""-"+M-ZZ-Z-Z-M=+"""-----"---""""--"---"-=--M"--------------"+M----++---M-M-M--MMM--MMMMMMM-MMMMMM-Z-----M----M
+++++++++.++++.+++++..++.+C C  C C C CC+++.....+...++++..+...+.CCC +..............+C CCCCCCCCC C C CC   CC       C      C CCCCC CCCC
+CCCCCCCC'CCCC'CCCCC''CC'C             CCC'''''C'''CCCC''C'''C'    C''''''''''''''C
+        X    X     XX  X                 XXXXX XXX    XX XXX X     XXXXXXXXXXXXXX
+        C    C     CC  C                 CCCCC CCC    CC CCC C     CCCCCCCCCCCCCC
*""""""""""""""""""""""++M--XZZZZM=+"""-""""-""""--""""-""-""""=ZZ-"------------"MMZZZ---M=-----M--MM-MMMM-M--M--MM-MMMM---MM----M---
+++++++++++++++++++++++CC CC      CC+++.++++.++++..++++.++.++++C  C+............+     CCC CCCCCC CC  C    C CC CC  C    CCC  CCCC CCC
+CCCCCCCCCCCCCCCCCCCCCC             CCC'CCCC'CCCC''CCCC'CC'CCCC    C''''''''''''C
+                                      X    X    XX    X  X         XXXXXXXXXXXX
+                                      C    C    CC    C  C         CCCCCCCCCCCC
*""""""""""""""""""""+=--ZZ-ZM--ZM+""""-""""--""---"""""--""--"=ZZ-"----------"MZXZZZZ----Z----MM---M-MMMMMMM-MMMMMMMM-MM---M-M------
+++++++++++++++++++++CCCC  C  CC  C++++.++++..++...+++++..++..+C  C+..........+       CCCC CCCC  CCC C       C        C  CCC C CCCCCC
+CCCCCCCCCCCCCCCCCCCC              CCCC'CCCC''CC'''CCCCC''CC''C    C''''''''''C
+                                      X    XX  XXX     XX  XX      XXXXXXXXXX
+                                      C    CC  CCC     CC  CC      CCCCCCCCCC
*"""+""+"++++""""+++M-ZXXZM++++Z-Z=+"""""""""""""-"""+""""+++""=ZZ-+---"-----=ZXXXXZZZZ--Z------M---M---MM-----M--M-Z-Z------M--ZZ-ZZ
++++C++C+CCCC++++CCC C     CCCC C CC+++++++++++++.+++C++++CCC++C  CC...+.....C         CC CCCCCC CCC CCC  CCCCC CC C C CCCCCC CC  C
+CCC CC C    CCCC                   CCCCCCCCCCCCC'CCC CCCC   CC     '''C'''''
+                                                X                  XXX XXXXX
+                                                C                  CCC CCCCC
*"""""""""++"+"++==--XZ-M++""""=-XZM""""""""""""--"""""+M--M=""=-Z-"-"-----+-AXXXXZZX-ZZ-----------------M------------Z-----Z-X------
++++++++++CC+C+CCCCCC  C CC++++CC   ++++++++++++..+++++C CC C++CC C+.+.....CC        C  CCCCCCCCCCCCCCCCC CCCCCCCCCCCC CCCCC C CCCCCC
+CCCCCCCCC  C C            CCCC     CCCCCCCCCCCC''CCCCC      CC    C'C'''''
+                                               XX                  X XXXXX
+                                               CC                  C CCCCC
*"+"""""++++""+=M-ZXZ-M=++""""""=XXZM+""""""""""-""""-"MZZX-M+"MZZM"-----"MXXXAXZXZZZZ-Z--Z-Z-------------M-------------Z-----Z-Z--Z-
++C+++++CCCC++CC C   C CCC++++++C    C++++++++++.++++.+    C C+    +.....+            C CC C CCCCCCCCCCCCC CCCCCCCCCCCCC CCCCC C CC C
+C CCCCC    CC            CCCCCC      CCCCCCCCCC'CCCC'C       C    C'''''C
+                                               X    X              XXXXX
+                                               C    C              CCCCC
*"+"+""++"++++-ZXZZM=++++++""++"+MZXZ=+""""+"""""""""""=-ZZ--+"MZZM""""-+ZXXXZXXZXZ-ZZ-ZZZZZZ-ZZ-ZZ-----------Z---Z---Z-ZZZ-Z-Z-Z--ZZ
++C+C++CC+CCCCC     CCCCCCC++CC+C    CC++++C+++++++++++CC  CCC+    ++++.C          C  C      C  C  CCCCCCCCCCC CCC CCC C   C C C CC
+C C CC  C                 CC  C       CCCC CCCCCCCCCCC       C    CCCC'
+                                                                      X
+                                                                      C
*+"++"+++""==-XXX-M+++++""+++"+++"MXXZM""+""""""""""""+=-Z---++MZZ-+"+"MAXXXXAXZZXX-ZZZZ---M--------ZZZ-----Z---ZZ---ZZ-ZXZ-ZZZZ--ZZZ
+C+CC+CCC++CCC   C CCCCC++CCC+CCC+     ++C++++++++++++CCC CCCCC   CC+C+            C    CCC CCCCCCCC   CCCCC CCC  CCC  C   C    CC
+ C  C   CC             CC   C   C     CC CCCCCCCCCCCC              C C
*+"++"""+=+-ZXXX-==+++++"++++++++++-XAXM+""+""+"""""""++M-M--=M-ZX-="+=XAAXXXAXXXXZZZ---ZZ---Z-MZ-ZZ-ZZ-ZZ--Z---ZZ---Z----ZZ-Z-Z--Z-Z
+C+CC+++CCCC    CCCCCCCC+CCCCCCCCCCC    C++C++C+++++++CC C CCC C  CC+CC              CCC  CCC C  C  C  C  CC CCC  CCC CCCC  C C CC C
+ C  CCC                C                CC CC CCCCCCC              C
*+++++++==-XXAXM=+==++++++++++++=++=-AAX-++++""++====MM-Z-ZZZZ-ZZXX-M-XAAAXXXXZXXZZZZZ--ZZ---Z---M-Z-ZZ--Z-ZZ--Z-ZZ-ZZ-ZZZZZZZZX-ZZZ-
+CCCCCCCCCC     CCCCCCCCCCCCCCCCCCCCC   CCCCC++CCCCCC  C C    C    C C                CC  CCC CCC C C  CC C  CC C  C  C         C   C
+                                            CC
*+++++++=ZXAAZ=+++=+++++++++++++++++=ZAAX=+++==-ZZXXZXXXXZXXZXZXXXXZZAAAXXXXXXZZXZZ--Z---Z---Z-----------ZZZ-Z--ZZ-ZZZ-XXZZZZXXZ--AXZ
+CCCCCCCC     CCCCCCCCCCCCCCCCCCCCCCC    CCCCCCC                                   CC CCC CCC CCCCCCCCCCC   C CC  C   C         CC
*=+++++MZXAAZ====+=+++++=++++=+++++++=ZIAA-M-XXXAAXAXXXZZ-MMMM=ZXXAZAIXAAXXXXXZ--X-ZZZ-Z----Z---Z-Z----ZZZZ--X---ZZ-XZZXZAXXZZXZZZXXA
+CCCCCC      CCCCCCCCCCCCCCCCCCCCCCCCC    C C            C    C                CC C   C CCCC CCC C CCCC    CC CCC  C
*++++=MZAAXM=====+=+=++=+=++++++=+++++-AIIAAAAAAXZ-MM=+++++++"+MXXZAXAXAAXXXAXZZ--ZZZ-Z-ZZZ-ZZZZ-ZZZZ-Z-ZZ-Z-ZZZZ-ZZZZZXZXXZZXZXXZZXX
+CCCCC      CCCCCCCCCCCCCCCCCCCCCCCCCCC           C  CCCCCCCC+C                 CC   C C   C    C    C C  C C    C
+                                                            C
*=++=-ZXAXM=+===+++++====+++++++=++==MZAAIAAAX-M=++"+"+++++++"+MXXXAAAXXAAAXXZXZZZ-ZZZZ-ZZZ-Z-ZZZ-ZZZ-Z-ZZZ-Z-ZZ--XXZZXXZXXXZXXXXXXXX
+CCCCC     CCCCCCCCCCCCCCCCCCCCCCCCCC         C CCC+C+CCCCCCC+C                   C    C   C C   C   C C   C C  CC
+                                                  C C       C
*--M-XAAXM===++===+=++=+===+=+++=+M-XAAAIIAIX=+""+++"+++++++""+MXAXAAXAAAAAXXZXZZZZZZZZ-XZZXXZZZ-ZZ-ZZZZXZZZZZXZZZXZXZXXZXXXZXXXXXXZX
+CC C     CCCCCCCCCCCCCCCCCCCCCCCC C         CC++CCC+CCCCCCC++C                        C        C  C
+                                              CC   C       CC
*XZXXAXX=+===+=+=++=+++=++++++===MXIAAXZZXAAAM++""+++++++"+""""-AAAAXXXXXXXXXZXZXZZ--ZXZXZZZXXXZXZXZZXZZZZZ--ZXXXXXXZXZXZZXXXXX-XXXXA
+       CCCCCCCCCCCCCCCCCCCCCCCCC             CC++CCCCCCC+C++++C                   CC                      CC                  C
+                                               CC       C CCCC
*-XAAXXXMM==++=++=+=+++====+++=ZAAAAAZ-+==ZAIAM++++++++++++"""+AIIXAXXXXXXXXXZXXZZXZXZXXXXXXZXXZZXZXZXZXXXXZXZZZZXXXXXXXXXXXXXXXXXXXA
+C        CCCCCCCCCCCCCCCCCCCCC       CCCC     CCCCCCCCCCCC+++C
+                                                          CCC
*MXAXAXXXZZ-=++++===+=+=+====MZXAAX-M==+++=XAAX=++"++++++""+""Z=AAXAAXXXXXXXXXXXXZXXXXXXXZXXXXXXXXZXZXXXXXXXXZZZXZXXXXXXXXXXXXXXXXAXX
+          CCCCCCCCCCCCCCCCCC      C CCCCCC    CCC+CCCCCC++C++
+                                                 C      CC CC
*ZXXX--XAXAXZM=+=++++======M-XAAA-==+++++++-XAAZ="+++++++=+++-IIIAAAAXAXXXXXXXZXXXZXXXXXAXZXXXXXAXXXXXXXXXXXZZZXXXZZZZZXXXXAXAXAXAXXA
+    CC       CCCCCCCCCCCCC C    CCCCCCCCCCC    C+CCCCCCCCCCCC
+                                                C
*XAXM+=M-ZAXXXZ-=++==+++=+=XIAAX=+=++=+=+++MMAIX-+"+++++++++M=IAAAAAXAAAXAZXZXZXXXXXXXAXXXXXAXXXXXXXXXXXXXXXZXZXZXXXXXXXXAXAAXXAAAAXX
+    CC C      CCCCCCCCCCCC     CCCCCCCCCCC     CC+CCCCCCCCC
+                                                 C
*AX-=+===+MZZXAXZ-M=++++=-XAIAM=+++=+==++++++ZAAXM+"+++=MMMMAIIIIAAAAIAAAAAAAXXXXXAXAXXAAXAAXAXAAAXAXXXAXXXXXZXXXXZXXXXXAXXXXAXXXAAXA
+  CCCCCCC       C CCCCCCC     CCCCCCCCCCCCCC     C+CCCC
+                                                  C
*X-===+==+++=MZXAXX--===-AAAXM+++=+++==++++++=ZAAZ=+"++MZZXX=I=IIIIAAIAAXAAAXXAXAAAXAXXAAXXXXXXAXXAXXXXXXXXXXXXXXXXXXXXXAAXXXAAXXAAXA
+ CCCCCCCCCCC      CCCCCC     CCCCCCCCCCCCCCCC    CC+CC
+                                                   C
*Z===+=+=+++++=M-XAXXXZXXAAXM++=+=+=++++++++++=ZAXZ=+++=-ZXI===IIIAAIIAAAAAXAAAAAAAAXXAXAXXXXXXAXAXXXXXXXXZXXZAAXXAXXAXXAAXXAXAAXAAAA
+ CCCCCCCCCCCCC C            CCCCCCCCCCCCCCCCCC    CCCCCC
*-=+===++=+++++++M-XXIAIAIAM+=+===+++==++++++"+-XAA-=++=-XA=+III=AIIIIIIAAAAAIAIAZXZXXAAXXXAXAXXXXZXXXAAAXAXAXAXAAAAAAAXAAAIXIAAAAAAA
+CCCCCCCCCCCCCCCC C         CCCCCCCCCCCCCCCCC+CC   CCCCCC
+                                            C
*++====+=+++=++++++=-AAAAIA-M=+==++++++++++++++=ZAAX-=MXXAI===IIAIIIIAAIAIAAAIAAAAXXAXXXXXAXXXXXXXXAAAAXXXXAXAXAAAAAAAXAAAAAXAAAAAAAA
+CCCCCCCCCCCCCCCCCCCC      C CCCCCCCCCCCCCCCCCCC    CC
*=+=========+=+++=+=-XAAAAAAXZM=+++++++++++++"++MAAAAXXAAAI==I=IIIAIIIAAIAAAAIAAAXAAAAXAXAAAAXXXAXAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+CCCCCCCCCCCCCCCCCCCC          CCCCCCCCCCCCCC+CC
+                                            C
*++===========+=+++=ZAAX--XXAXAZZM==+++++++=+++=-XIAAAXXA==III=AIIAAAIIAAAXAAAAIIAAXAAAXAXAXAXXXAXXAAAAAXAAAAAAXAAAAAAAAIAAIAAAAAAIAA
+CCCCCCCCCCCCCCCCCCC    CC        CCCCCCCCCCCCCCC
*+=====MM=M====+++=-XAAM++=MZXAAAIA-="+=+++++=ZXAXAAIAXMAII=AIIIIIAAIAIIIAAAAAAAAAAIAAAAXAAXAXAAXXAAAIAAAXAAIAAAIIAAAAIAIAAAIIAIIIIAI
+CCCCCC  C CCCCCCCCC    CCC        CC+CCCCCCCC
+                                    C
*==M====M===++++++MXXAZ++++==M-XAAAAZ-M=+++=-XAAXZ-ZXXXZII=IIIIIIIIIIAIIIAAIAIAAIXAAIAAAAAAXAAXAXXAAIIAXIAAAAAAAIAAIAAAAAIIAIIIA=AAIA
+CC CCCC CCCCCCCCC     CCCCCC C      C CCCCCC     C
*======M=====+=++=-XXA=+++=++==M-XAAAAAZM=M-AAAX-=+=-AXIIIIIIII=IIIAAIIIAAIAAAAAAAAAAAAAAAAAAAAAAAAIIIAAAIAAIIAAAIIIIAIIII=IIIIAAIIAI
+CCCCCC CCCCCCCCCCC   CCCCCCCCC C        C C    CCCCC
*==========M==+=+=-XX-++++++++++===-XXAXXXXXAAZM++++=XAIAIIAIIIIAAIAIAAAAAAAIAAAXAAAAAXAXAAAAAXAAAAAAAAAAAAAAAAAAAIIIAIIIIII=IIII=IIA
+CCCCCCCCCC CCCCCCC  CCCCCCCCCCCCCCC            CCCCC
*==M==++=M--ZZ-M=-ZXA=+++=+++++==++==MZXXAAIAX-+++++"=ZAI=IAIIAIAAIAAIAAIIAIAAXAAXXXAAAAAAXXIAAAAIAAAAAAAAIIX+AIAIIIAIIIIIIIIIIAI=III
+CC CCCCC CC  C CC   CCCCCCCCCCCCCCCC         CCCCCC+C
+                                                   C
*=M+=====-XXXXXZ-ZAA-==++++++=+==M=M===ZXXAAAXZM==++++AIIIIII=IIAAIAIAIIXIAAAAAAAAIAAAAAAAAAAAAAAAAAAAIAIAAAAAIIIAIAIIIII=IIIIIAIIIII
+C CCCCCCC      C   CCCCCCCCCCCCC C CCC         CCCCCC
*========-XXXXXZXXXXM=++++++++=MZZZX-M=MZXAXZXAXX-M=+=AII=IIIIIIIAIIIAAIAAAAAAAAAAAAAAAAAXIAIAAAIAAAAAIAAAAIAIIIIIIAIIIIIIII=AIIAII=I
+CCCCCCCCC           CCCCCCCCCC     C C          C CCC
*M===++++MZXXXXZXXXX=+++=+=++++MXAXXX-=-XXXM=MZXXXZZ-MAI=I==IIIIIIAIAAAIAAAAIAAAAAAAAAXAAAIIIIAAIAAAIAAAAAAAAIIIIIIIAIIIIII=IAIIAIIII
+ CCCCCCC           CCCCCCCCCCC      CCC    C       C
*==+=++===M-Z--ZXAAX=++===+===+=ZXAZXMMZXZ-++++MZZXAIIAIIAIIIAII=IIAIAAAIIAAAAAAAAXAAAIAAAAAIIAAIAII=AIIIIIIIIIIAIIIIIII=IIII=IIIIIII
+CCCCCCCCC C CC     CCCCCCCCCCCC          CCCCC
*-M--MMMM-M---ZZXXAXM======+===MMZZ-MM-XXZ+++++++M-XXII=IIII=IIIIIAIIAAAAIAAAAAAAAAIIAAAXAAAXAAAAAIIIAAAIAAAIIAIIIIIIIIIAIIIIIIIIIA=I
+C CC    C CCC       CCCCCCCCCC    C  C   CCCCCCC C
*AAAAAAAAAAAAAIAAAIAAXXXXXZZXZXZXXXZZZXXAX-MM====M=MZII=II=I==IIIIAAAAIIAIIIIIIIIIIIIAIAIAAAAAAAAIAIIAIAIAAIIAAIII=IIIIIIII=IAIIIIIII
+                                         C  CCCC C
*IIIIIIIII=II=IIAIIIIIIII=IIIIIIAAAAAAAAIAIXAXXAXXXXXI==I=II=I==IIIIIIIIIIIIAIAIIIIAIAIAAAAAAAAAAIAAIIIIIIIAIIIII=IIII==I=II=II====A=
*IIIIIIII==I=IIAI=II=IIIII==I=IIIIIIIIAIAAAAIAAAAIIAAII==I=II=IIIIIIIII=IAAIIAIIIAIIIIAAIAIAIAAAAAAAIIIIIIAIII=IIAIII==IIII=III=I=II=
*ZXZXAXXAAAAAIAAIIIIIA=II=IIIIIIIII=AIAIAIIAIAAIAAAAII==II==II==IIII=AAIIIIIIIAIAIIAIIIAIAAIAAAIAIIAAAIIAIIIIIIIIIII=II=II=I=======II
*=======MMM=MMM-XAAAZ----Z--ZXZZZZ-ZXXAAAXZZ-Z-ZZZXZA=II=I=II===I=IIIIIIIIIIIIIIAIIAAAIAIIAAIAIAIIIAAIIIII=I=II=AII=III=I=III=II===II
+CCCCCCC   C   C     CCCC CC      C         C C
*=++++++=++===+=MXAZM=++=++++=====++=-XXXM==+++=MM--X===I=====I=I=IIIIAIIIAAAIIIAIAAAAAAAAAAAIAAIAII=IIII=II=IIIII=II==I==II==II===II
+CCCCCCCCCCCCCCC     CCCCCCCCCCCCCCCCC    CCCCCC  CC
*+====++=++=====MZAA-+++==++==++=++++=-XX-=+++=M-ZZZA=II====I=I=I=IIAIIIIXAIAIAIAAAXXAAAAAAAAAAAAA=IIAIIII==A+=II=I===I==IIIIIII===II
+CCCCCCCCCCCCCCC    CCCCCCCCCCCCCCCCCCC  CCCCCC C
*+=+++===+===++==ZAAZ=+=====+++++++"++-XXXMMM-ZXXXZ-I==III==IIIII IIIIIAIIIIIAAIAIAAAAAAAAAAAAAI=III=IIIIIIIII==IIII==IIII=IIIII==I=I
+CCCCCCCCCCCCCCCC    CCCCCCCCCCCCCC+CCC      C     C
+                                  C
*++=+===++==+++=+ZAAXM==+====+=+++++++-XXAAXXXXX-M==I=I=II===III= IIIIIAAIAIIAIAAIAAAAIAAAAAAIAIIIIAIIII=IIIIIIII=I=IIIIII==I=IIIIIII
+CCCCCCCCCCCCCCCC     CCCCCCCCCCCCCCCCC         C CC
*++==+=+++=+=++=+MXAA-=+==+++++++=+=M-XAAAAAX--==++=AIIIIIAIAIII=1IIIIAIAAAAIAIAIAAAIIAAIIIAAIAIIIIIIIIIIII=IIII===IIIII=I====II===++
+CCCCCCCCCCCCCCCC    CCCCCCCCCCCCCCC C       CCCCCCC
*=====++==========MAAX==+++=++++M--XAAAAIAIIX=+=-+=MI==I===I=I==I+AII=AAAAAAIAAAAIAAAAAIAAAXAIAIIIAIA==III=I=I=I========+======IIII==
+CCCCCCCCCCCCCCCCC    CCCCCCCCCC CC          CCCCCC
*+++++==+==+=++=+==-ZXM+++++==M-XXAAAAXXZXXAA-M==+=MAI=IIIIIII=II=IIII=IAIAIAAIIAIIAAAAAAAIIAIIIAIIIII======I=II==II===+===I+===II===
+CCCCCCCCCCCCCCCCCCC   CCCCCCC C             C CCCC
*=++++++++++==+++++M-XZM===M-ZXAAAIAX--===-XAXZ-==MZIIII====II=II+IIIIIIIIIAAI=IAAAAAAAAIIAIIIIIAIIIIIIIII===II+======I==I=====I==I==
+CCCCCCCCCCCCCCCCCC C   CCC C        CCCCCC    CCC
*=+==+++"++++++++++=-XXZZ--XXAAAAX-M===+=+=-XXZZZZXXII=II=IIIIII===IAAIAIIIAAAIAAAAIAAIIIIIAAAAII=II==IIIIIIIIII======I===I=I=I==I=I=
+CCCCCCC+CCCCCCCCCCCC    CC       C CCCCCCCC
+       C
*M+++++++++=+=====+=-XXAXAAAIIAZZM==M+==+==+MMZXAAXAAI=IIII==III=-I=I=II==IAIIAIIIIIIIIAIIIIIA=IIII=I===III=II=I===++==I====+=+I=+I==
+ CCCCCCCCCCCCCCCCCCC             CC CCCCCCC
*X=M---==+==+++++=M-ZXIIAAAXXMM========+=+=+===XAXXAIII=II=IIIII+=+=+=IAIAIAIAIAIAIII=IIIIIIAIIIIIIII=I==========I===================
+ C CCCCCCCCCCCCCC C           CCCCCCCCCCCCCCCC
*AAIAXZZ-Z-=+""-"+-AXXAAAAAXM=M=========++==+=MXXAAXAI==I==I======+IIIIIIIIAIIAI=IAII=IIIIIIIIIIII==I===========================II===
+       C CCC++.+CC          C CCCCCCCCCCCCCCC
+            CC'C
+              X
+              C
*==AXXZXXZM=++"---"-AX-ZZXAA-M=====++========MZXXX-M-II=====I=I==+=AI=I=IIIIIIIIIIIII=+III=IAIIII=+I====I======I==II===I===========II
+          CCC+...+C  C     C CCCCCCCCCCCCCCC     C C
+             C'''C
+              XXX
+              CCC
*+=AAXXXXX-M=+""----"M===-XAAAM=+========+==MZAXA-=+MI========II==III=AI=IIAII=IIAIII=IIIAIIAIAII=I=====I===I=+===II================+
+         C CC++....+ CCCC     CCCCCCCCCCCCC     CCC
+             CC''''C
+               XXXX
+               CCCC
*1IAAAAAXAZM=+++"---""===ZXAAAX-===========-ZXAAZ==+M=+==I=II=I==II=IIIIIA=IIAIIIIIAIIAIAIIII==I==I+=I+===I======+===================
+           CCCC+...C+CCC      CCCCCCCCCCCCC     CCC
+               C'''BC
+                XXXH
+                CCCX
*+IIIIAAAAAZ-==++""-+-"++-=XAAXXZM========MXXAX-=+=+M===+=I======II=III=II=III=IIIIIIIIIIIIII=II======I=====++======II===============
+           CCCCC++.C.+CCCC       CCCCCCCC     CCCCC
+                CC' 'C
+                  X X
+                  C C
*=AIIIIII=+AZM==+I-=I"-MM=MMXAXAAXM======-XAAAZ====+===+==I====IIII===I===I==I=IIIAIIIIIIIIIIIIII=======I===+======+=================
+             CCC    +.  C         CCCCCCC     CCCCCC
+                    C'
+                     X
+                     C
*=II===+-  +A-M=+1 -"""=MM=MM-AIAIA-MM+=MAIIAZ=+==M=MI++=I===I===IIIIII=IA=IIAIIIIIIAIIIIIIAAII=II====I====+=======+=++==+====+==++++
+            C CC  C+CCC  C  C     C  CC      CCCC C
+                   CBB
+                    HH
+                    XX
*=I=I=I=   -=ZM==MM+-"-+MMM===MZAAIAX-M-XAAAZ=+===M===========I====III=I=IIAIIIIIIIAAIIA=III==III=I=======+===========+======I=I=1+11
+              CC  C.C.C   CCC       C C     CCCCC CC
+                   'B'
+                   XHX
+                   CXC
*=III===1--+IX-====+"--+MMM====MZXAAIAXAAIAZM========I====+=======I=II=IIIIIIIII=IIIIIIAIAI=I===I==I========+===+===+===========+1+11
+             CCCCCC+..C   CCCC              CCCCCCCC
+                   C''
+                    XX
+                    CC
*1I=IIIII==IIXX-MM=+""""=M======M--XAAAIIAA-======M==X=+===+==========III=III=I=IIIIIIIIIIIII======I=======+===+==I=======++===+11=ZX
+              C  CC++C+C CCCCCC CC        CCCCCCC CC
+                   CCBC
+                     H
+                     X
*1=IIIIAIA=IAAXZMMM=+""M-MMM=MM====ZAIIIIIAXMM=MM=MM=X=+==+++++=+==I===I=II=======III=====I=======I=============+==+=========++AM+=+1
+                  CC+C C   C  CCCC           C  C  C
+                    CB
+                     H
+                     X
*-+IIIIIII=IXZ---M=+"--MM=========M-XAIIIAXAAZ-M-===+Z=++++==+=====+====I====I====I===I=III=====IIIII=I==========+==+===+==++I=AA1++1
+             CCC CC+..  CCCCCCCCC C          C CCCCC
+                   C''
+                    XX
+                    CC
*-1IAIIIIIIAXZ-MM==+"-"MMMM=MM====-XAAXX-XXAXAAAXZ-MMM==++++==+==+++===IIII=II==I====I=IIIA=AII=I====I====+=====++==+===+==++MA+++++1
+             C  CCC+.+    C  CCCCC     C         C
+                   C'C
+                    X
+                    C
*111=AAAAAXXZ--M=+++"-+MM========MZXAAZM==M--XAXXXXZZMZ===++==+=====I=II=II=II==IIIIIIIAIIAIIIIIIII=II====+=I===========+==1+I=++++++
+            CC CCCC+.C  CCCCCCCC       CC CC
+                   C'
+                    X
+                    C
*+1-+IIXXZAA---M==+"-=MMM=M=MM=MMXAAAXM=M===MM-ZXXXXXM-=+==+++==+=I+I===I=I==I====IIIIIIIAIIAI=II==II=+===++=====+I=+==+=+=+=+=+1+1+=
+           CCC CCC+.C   C C  C        C CCC  C       C
+                  C'
+                   X
+                   C
*1+11+=XZZZ--M=M=""-+==M====M==MZAAAXM===M=M===MMM-Z-M=A==+=====+==I===I==I===I==IIIIIIAIIIAII=IIII=II=I===I===I=====++=+A====+++++=+
+          CC C C++.CCC CCCC CC       CCC C CCC   C C C
+                CC'
+                  X
+                  C
*-++111IAZ-MMMM=+-+--MMM=M==M=MZXAAX-======MMMM====M==MX=I==+======+====+====+I====I===II=II====II=I=III=II==+===+++++===-===+=++=++1
+         C    CC.CCC   C CC C      CCCCCCC    CCCC CC                                                                   C
+                '
+                X
+                C
*  11+111+A-M++"+MIIX-MM=M=M=M-AAAA-==M====M=M====MM---XI===+=====================I+=====I==I===II=I=II==I==I====++++++IA=++1=++=+=+1
+          C CC+C    C  C C C C    CCC CCCC C CCCC  CCC
+              C
* - -1+1---++A-MX====AX-=M==MZAIAA-===M=MMMMM=M=M=---XXXI=I=====+I=+++===++====I=====++=I====III=IIIIII=II===+===++++=+=A=+++++1++++-
+             C        CC CC      CCCC C     C C CCCC                                                                  C
*-- -- 1+++1+=I--XAAIIIXZMMM-AAIX-======MM===M====MZZXX-A=++==========+====+I==I=========IIIIIIIIIII====I====I=+=+=+==+A+++++++=+=++1
+              CC           C    CCCCCCC  CCC CCCC     C
*==+1----11=IZM=MMMZXAAAAXXXAAAA-=M=M======M=M====MXXAIZZ==+++========++===++====++I=====IIIIIIIIII==============+==I=+++1+11++++=+1-
+              C                CC C CCCCCC C CCCC
*1=AXXA+IAZMM=======M-ZAIAIIIIIZ=M==M========M====MXAAAZ=X++++1++++1++++==+++=+==+====I=II=III=IAII===I====+====+++===++==++++++==1--
+            CCCCCCC C          C CC CCCCCCCC CCCC      C
*-1++=XM=====MMMMM===M-ZA=III=AZ-=MMMMM========M=MMAIAZ==I111+11111+1++++=++++++11=======I=I=+III====I===+==+=+1++===+++===1+111=+--+
+       CCCCC     CCC C         CC     CCCCCCCC C      CC
*-+=Z===========MMM=M==MXII=IIAIAX-MMM====M======+=-XMMMXI1+11+++1=+++1+++++++++++==++========III==II=I==+++=+==++=I==+=+++++111+=+=I
+    CCCCCCCCCCC   C CC           C   CCCC CCCCCCCCC
*IX============M=====MM-AIIIIIAIIIIAXZ--M=MM=====MZXZMMA++=++11++1+1+1++=+=+=+++++++=+=+=========I=I=+===++=+==1++=++++++++=+11-+=1I=
+  CCCCCCCCCCCC CCCCC  C              CC C  CCCCC
*""M======MMMMM====MMM-AIIIX--ZXAAIIAIIAXZ---MM-ZXII=I=1++++1+1+1+11+AX+++1++1+1+111++++======II=II====++++=++11++=+=+++1111+-1-1=+I=
+++ CCCCCC     CCCC   C     CC            CCC  C
+CC
*-"-"""=M=M=MM=M=MM==-XX=IXMMMMM-XAIAIIIIIAAXXXIA==+=+111++++1111+111+-A++++1++=+1+111++=+======II===++==++++++1=+111+11111=I-1-- +I+
+.C.+++C C C  C C  CCC          C                                     C
+'B'CCC
+XHX
+CXC
*ZM+""-"-"++=+===-MMMXIIAX-MMMMMMMMM-ZXAAIIIII===++111+11111++++1++++1==1++++1+++=+++++========+=I=======++I=++1==+1111+=AI===+1- -=A
+  C++.C.+CCCCCCCC        C         C
+   CC'B'C
+     XHX
+     CXC
*1++AZ-="----""+==M-XI=IA-MMMMMMMMMM==M-AIIII=++++11111+11--1+1++++1+1+1+++++++++++++++==+===I===II=I==I=+==++++=+++++1=I==+===1-  XI
+     CC+....++CCC C     C          CC C
+       C''''CC
+        XXXX
+        CCCC
*=1111++IX-+"-"--"+MZAIX-MMMMMMM====MMZAI===++++11+1111111-  ++=+++1+++1+++++=+++++1=+==+===I==I=II=I=I==I=++=++IXI+1=++=II===++-M=-+
+         CC+.C..+C     C       CCCC                                                                                              C.C
+           C'B''C                                                                                                                 '
+            XHXX                                                                                                                  X
+            CXCC                                                                                                                  C
*++1+---1+11=AM+--"-"+=M=MMMMMMMM=MMZI==I=+111+1-----1-1---  1++1+1111+1111+1+++1+111++++1++=++====I===+=+=++IXXAII+==+1=I=II=I= =""-
+              C..C.+CC C        C                                                                                               CCC.
+               ''B'C                                                                                                             BB'
+               XXHX                                                                                                              HHX
+               CCXC                                                                                                              XXC
*+=+++++111---1+IXM+"-"-"+===MMM===ZIIII=+-11++11-111+11-11  -++=+++++1++++++1+1+111+1++++1+++==++I=+==II=IXZA===XAAI+==+==II+-1- AZ-
+                  C+.C.+CCCC   CCC
+                   C'B'C
+                    XHX
+                    CXC
*1=+++++++++111--1+=IX-=+---"++=+++MXII=+1-1111---1--11---1-  -+=+++1+1++1++=1+11+111+11++++111111++AXAAAAIIAXAAA=A-ZAI=+++1++111-- -
+                     CCC...+CCCCCC                                                                                C
+                        '''C
+                        XXX
+                        CCC
*=+++==+===I+1+++1+1-++=IX-+""-""=ZA=+111---1-1----1--1-1-1--  1==++11+++1+1+1+++1111111+1++11111+1+=AIAXZZAI==+11+I=MXAI==+=+1++1-11
+                         CC++.++C                                                                                  C
+                           CC'CC
+                             X
+                             C
*M-XI=+I==+=+===+++=++1111+=AX-=-A- -  -  ----11----1-----11-   1+1=1+++11+11++111++1--1++11-1111+-11XZA++11+1+1-+1- M-"MXAII++1++1+1
+ C                           CCC                                                                                     .+
+                                                                                                                     'C
+                                                                                                                     X
+                                                                                                                     C
*====MMZAI===I=II=I=+=++++1+===AA=+1     -1- -11----1-  --1111   1+++1+111++11+1111-1-+-11-+1++11111+1++++=+1+1+11111 -X=="+=M-XIA=++
+CCCC                                                                                                                   CC+CC C
+                                                                                                                         C
*======MMM-X==+=I=I====+======+==++111- -------1------ 1- --11-   -1++++11+1+1+11111-11--11111++==AAI+1+=+==++11++111--- -=X-+--"+=M-
+CCCCCC   C                                                                                                                 CC..+CC C
+                                                                                                                             ''C
+                                                                                                                             XX
+                                                                                                                             CC
*===M=M==MMZAIIIAAIIII=I=IIIAIIII==++1- -------1---- --- - 11++-  --1+++1+1+111+11-1-1111-+1+IX-==Z=++++====+++1++++111-- - -1+=Z+---
+CCC C CC                                                                                      CCC                               C...
+                                                                                                                                 '''
+                                                                                                                                 XXX
+                                                                                                                                 CCC
*=====MM==-XAIIX-MM--ZAII=IIAAXAAI+- -  --    1-1------ - 111111   --1+1+1--1111-1-1111+++A-+"-=I 11+1+1+==++++++++=++++11--- -     1
+CCCCC  CCC     C  CC                                                                      CC+.C
+                                                                                            C'
+                                                                                             X
+                                                                                             C
*M===MMMMZXIIAZM++--"==--ZXXXXXZX=-  ------ -----  ---1-11111111-   ---1+-1+11111++++IAXM=M=ZI- 1111+++++++====+++++++++1+11-1------
+ CCC           CC..+CCCC                                                                C C
+                 ''C
+                 XX
+                 CC
*-MM==MMZXAIA-="""+====+"+"++MM-A1   -  -1-  --1---1111111----       ---1++++1+++=AXZ-MXAI-  -11-+1+++1++======+++++1++1++1111-111--1
+C  CC       CC+++CCCCCC+C+CC  C                                                     C
+              CCC      C C
*ZZ-MMMZXIIAZ+""+M--M+""------+X+-  -  - ------1-11+1111--          -1111+++==IIX--X+1-- ---11111111++1++===+=++==+++1+++11+1111111+1
+  C         C++C CC C++......C                                                  CC
+             CC      CC''''''
+                       XXXXXX
+                       CCCCCC
*ZXX--AAIAIX=+=--MM=""-------+Z1-  -  - ------+++111-1-          --  --+1--+IXXXI-   -- - - -1-1-111++1+111+1+==++++=+++111-1-1+---11
+   CC      CCCCC  C++.......C
+                   CC'''''''
+                     XXXXXXX
+                     CCCCCCC
*--ZXXI==IA-===M==+--------"+A1-   -- --1+111+11111--          1-+=+      -1+1   ---------------1111111++1+=++=++==++=+++++1+-+111111
+CC        CCCC CCC........+C
+                  ''''''''C
+                  XXXXXXXX
+                  CCCCCCCC
*=MZXII==IX=+""""---------"MA1     -  1+++1+++-1-----      -11+==IXM+            -- --1---11----11111111+++1+++===+1++++++1++++++1111
+C         CC++++.........+
+            CCCC'''''''''C
+                XXXXXXXXX
+                CCCCCCCCC
*=M-X=I=IXM"-"--------"---+I+-    -11+++++1111----1-------11=IIAXXZ=++       -       ---1-1-11-11-11111+1++++1++=+++=++++++++++++++1+
+C C       +.C........C...C                                        CC
+          C'B''''''''B'''
+           XHXXXXXXXXHXXX
+           CXCCCCCCCCXCCC
*=ZXAIIAXM"---------"---"-I      1+1+111+11--1---------+1+IIIIXXXZ-+-M                --11- 11-11-+111+11111+1++=+=++=+1+11+++1+11+++
+C        +.........C...+C                                        CC.
+         C'''''''''B'''C                                           '
+          XXXXXXXXXHXXX                                            X
+          CCCCCCCCCXCCC                                            C
*-ZAAAZM="""-"----"--"+-A+1----1+++111-1 -  ---1--1+1+=IIAAAXZMM==""""=                --1+1111-+1--11111+++1+++==+=++===++++++++++++
+C      C+CC.C....C..+CC                                        CC++CCC
+        CBB'B''''B''C                                            CCBB
+         HHXHXXXXHXX                                               HH
+         XXCXCCCCXCC                                               XX
*ZXXX-M+"""-"""---"+MXI=111--11+11-111---------111+==AAXZ--M=+---""-"""I               ---11-+111111111111+11++++++++====+++==++++===
+    C C+CC.CCC...+C                                     CC CC...++.CCC
+       CBB'BBB'''C                                           '''CC'BBB
+        HHXHHHXXX                                            XXX  XHHH
+        XXCXXXCCC                                            CCC  CXXX
*XIX-==+-"""-"--"MXI+111-11111111-----11 --11+==++=IAZ-=+"----""==+-""""=               -111111111111-1-11111+111=++=============+===
+   CCCC.CCC.C..+                                     CCC+....++CCC.CCCC
+       'BBB'B''C                                        C''''CC   'BBBB
+       XHHHXHXX                                          XXXX     XHHHH
+       CXXXCXCC                                          CCCC     CXXXX
*IAXM==+-----"+ZI1+-- --1-1-11-1 ---1-111+1++++1- -AM"----"+MZZZ-=+----""                 --111-11-1----1-11++1+++1++======I+=+==+=++
+    CCC.....+C                                      +....+C    CCC....C+
+       '''''C                                       C''''C        ''''BC
+       XXXXX                                         XXXX         XXXXH
+       CCCCC                                         CCCC         CCCCX
*AXM=MM="--+MI+1111-111-1-11- ----1++++++++++-1    +=-"+==-ZA==A-M=-A-"--X               ----1-1-111111111++11+11++==+===========++=+
+   C  C+..C                                        C.+CCCC     C CC C+..
+       C''                                          'C               C''
+        XX                                          X                 XX
+        CC                                          C                 CC
*ZM==MM==MZXA1----11111----1----11+++==++11-- -    +Z==--M-ZA=IX-M-IAX+---=              ---+111111111+111++1++1+++===+====II=======+
+  CC  CC                                            CCCC C     C C   C...
+                                                                      '''
+                                                                      XXX
+                                                                      CCC
*-M==MMMZ==AX=1111111-1--1111111+==IIXA+- ------   1X-ZZ--XXA=IIX-ZXXZ+"-"M                1A1-111111-111111++11+=====+==+===I+==I===
+C CC                                                C  CC       C    C+.+
+                                                                      C'C
+                                                                       X
+                                                                       C
*===MMM-A-I-+XA----1-- 1-11++=+==AXZM=M+-   - -    -AZXZXAAA===IAAAIAAX-M=+A               1I=1---1-1 1-1111+-11+++===++===I========+
+CCC   C   CC                        C                                 C CC
*====MMM-AX-""X------1111+===IAXZ=+"--Z1- -----    =XXAAAII+====IAIAAXZ-M==+=               ---1111111111+111+11++++++==========I====
+CCCC   C  .C+                   CC+..                                 C CCC
+          'BC                     C''
+          XH                       XX
+          CX                       CC
*=====MMM-Z+-"X- ---11+1+==AX-M++--"+=X-- -----    1XXXAAII+====AAAXXZ-MM==+==               ---1-11-11+111111+++1111++++1+++========
+CCCCC   C C.+               C CC..+CC                                C  CCCC
+           'C                   ''C
+           X                    XX
+           C                    CC
*-MMM==MMM-ZXA+-111++==IAXZM="-"++==MMA-- -----    +--ZZXXAII=IA-----M-MMM====A               -1---1-11--1-11++++1111+1+1+=+++=+=++==
+C   CC   C                 C+.+CCCC                CC          CCCCC C   CCCC
+                            C'C
+                             X
+                             C
*AXZ-MMM=M-X+11=+=AIIXZ-M+"-"+=M=MMMMMI111---11    +Z-ZXXXAIIIA-MMMM=M=-MM=M====MI1           11-1---1-1+111--1+1-111+1+11-+1++++=+==
+   C   C C            C C+.+CC C                    C         C    C CC  C CCCC
+                         C'C
+                          X
+                          C
*AIAAAXZZM-MXIIIIAXZ-M+""++MMM-MMM===MA--1-1-1    -=--ZXXXXAIIA-M=MMMMMMMMMM===M=++M=        --111----1111+-111-11111+1+11++++1=+++++
+         C         C C++CC   C   CCC               CC         C C          CCC CCC
+                      CC
*XXAAAAAAX----ZXXXZ-M====M=MMMMM-MM==MI-111-11-   -IM--ZX-ZAIIAZMMMMMM=MMM-M=====+===I        -----11-111111-11--1-1+111111+1+1+++11+
+         CCCC     C CCCC C     C  CC                CC  C            C   C CCCCCCCCC
*M-ZZAAAAXXXZ-MMMMMMMMMMMMM=M=MMMMM==-I---111---  -IMMM--MZXAIAZMMMMMMMMMMM=M=MM==+==+Z        --------11111--   -111---1-+111111111+
+ C          C             C C     CCC                 CC                  C C  CCCCCC
*MMMMM-ZZXXZX---MMMMMMMMM=MMMMMM=M=M=MI1-1+1111-  -AM=MMMM-XXAA-MMMMM=MMM==M=M=MM====++-       --1-----111-1111-  -11-1 - ----11-1111
+     C      CCC         C      C C C                C    C    C     C   CC C C  CCCCCCC
*==M=MMMMM----M-MMMM===M==M=MMMMM===MM=-111111--  -I=====MM--ZX-MM-MMMMM=MMMM===MM===++"=1    -- -1--11-111111--11 1------1-111111111
+CC C     CCCC C    CCC CC C     CCC                CCCCC  CC  C  C     C    CCC  CCCCC+C
+                                                                                      C
*M=M=MMM=MMM-MMMMMMMM================M+1111111--  -I===M=MMMM--MMMMMMMMMMMMMM=M=======+++=A-  ---------1--111+111+- ------1--1-111111
+ C C   C   C        CCCCCCCCCCCCCCCC               CCC C    CC              C CCCCCCCCCCC
*===MMMM====MMMMMM=MM=M===M==M======+M=11111111-  -XM====MMM==M=MMMMMMM==M==MM=++====++++++MI---------1--1111+1-11--  -1-1--11-11111+
+CCC    CCCC      C  C CCC CC CCCCCCC                CCCC   CC C       CC CC  CCCCCCCCCCCCC
*-MMM=MMM=MMMM=MMMMMMM=MMM========M++-I1-1---1-   -X=====M==+=+===MMM=MM==============+=++"++A   --- --1--1-1--1- -  -  ------ 1-1111
+C   C   C    C       C   CCCCCCCC CCC              CCCCC CCCCCCCC   C  CCCCCCCCCCCCCCCCCC+CC
+                                                                                         C
*MMMMMMMMMMMMMM=MMMMMMMM===M-==M=====M+-1111---   -X=++======+++==M=====M==+====+========+++"+-1   - ----1---1---1---  - -------11-11
+              C        CCC CCC CCCCC               CCCCCCCCCCCCCC CCCCC CCCCCCCCCCCCCCCCCCC+CC
+                                                                                           C
*=MMMM==MM==MMM=MMMMMMMMMM==M=MMMM===-+--111---   1-==+=====+++=========M==================++++MI  - -- -----1--1-- -- - ---  -----1-
+C    CC  CC   C          CC C    CCCC             CCCCCCCCCCCCCCCCCCCCC CCCCCCCCCCCCCCCCCCCCCC
*=MMM==MMMM=MM==MMM==M-M=M====M=MM===X1-11-----   1Z=======+===========================M==+===+++Z1 - - ---- --1--- --------1-   ----
+C   CC    C  CC   CC C C CCCC C  CCC               CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC CCCCCCCCC
*MMM=MMMM===MMMM==MMMM==MMM==M=M=====Z----1---     A=====M==+==MMM===M====MM=M===========++==++++++A  -  - -------  --- ----1----  --
+   C    CCC    CC    CC   CC C CCCCC               CCCCC CCCCC   CCC CCCC  C CCCCCCCCCCCCCCCCCCCCC
*=======M=M=MM===MMM=M=M=M==M==M=====X- --- --     A=======++==MM=MM====MM=MM===========+==++++++++"=+  ------    ---- - -----  -  --
+CCCCCCC C C  CCC   C C C CC CC CCCCC               CCCCCCCCCCC  C  CCCC  C  CCCCCCCCCCCCCCCCCCCCCC+C
+                                                                                                  C
*+======M=M=M==M==M==MM========M=====-1  -  --    -X=======+++=M==M=M====M================++=++++++""=X1  --- --- -  -  -  --- --  --
+CCCCCCC C C CC CC CC  CCCCCCCC CCCCCC              CCCCCCCCCCC CC C CCCC CCCCCCCCCCCCCCCCCCCCCCCCC++C
+                                                                                                  CC
*=M======MM==M=M======MMM=====M===M==X-   -      --X===M=====+==MMM========M=M==========+==++=++++++++"=Z-   - --   ---     ----  -1
+C CCCCCC  CC C CCCCCC   CCCCC CCC CC               CCC CCCCCCCC   CCCCCCCC C CCCCCCCCCCCCCCCCCCCCCCCC+C
+                                                                                                     C
*=====+===+==M==M=======M=M======M===Z1- -        -AM=MM====+==MMM========+======+==========+=+=+++++++""+=         -  - -   --  ----
+CCCCCCCCCCCC CC CCCCCCC C CCCCCC CCC                C  CCCCCCC   CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC++C
+                                                                                                      CC
*=M=================M====MMM=M=======-1- -- -     -AM==M=M============+=+=+=====+=========+++++++++=++++"""==-         ----       ---
+C CCCCCCCCCCCCCCCCC CCCC   C CCCCCCCC               CC C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC+++C
+                                                                                                       CCC
*========MM=============M-===M=======Z-- -        -X==MM=M=======M======+================+=++++==+++++++"""""-I       -       -   ---
+CCCCCCCC  CCCCCCCCCCCCC CCCC CCCCCCC               CC  C CCCCCCC CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC+++++C
+                                                                                                       CCCCC
*========================M==++=======Z1---        -X=====M==+=+======+=+===++===+++=+=+++===+++=++++++++""""""+-+             --  -11
+CCCCCCCCCCCCCCCCCCCCCCCC CCCCCCCCCCC               CCCCC CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC++++++CC
+                                                                                                       CCCCCC
*=====+====+========+==========++==++Z---  -      -A===MM=MM=+======++==++=======++=++=++=++=++++=++=++++"+""""""M+              ----
+CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC               CCC  C  CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC+C++++++
+                                                                                                        C CCCCCC
*=======================+=+++=+=+==++Z-  --       -X=========+======+++=+===+==+=+++++++++++++++++++++++++++"+"""-+A+          - - --
+CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC               CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC+C+++.C
+                                                                                                           C CCC'
+                                                                                                                X
+                                                                                                                C
*+===+=======+====================+++X-- -        -Z=======+=+===+=+++++=++++++++++++++++++++++++"+++++++++""+""""""+Z+       - -- --
+CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC               CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC+CCCCCCCCC++C++++++C
+                                                                                                C         CC CCCCCC
*=+==++=+==++=======+==============+=A            --========++===+++=+++=+=+++++++++++++++++=++++++=+++++++++"+""++"""+-+
+CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC              CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC+C++CC+++CC
+                                                                                                            C CC  CCC
*IAZ-=+==+=++++===++====+==========+=I      -     1-=+======++=+=++=+==++++=====+=++++++==+++++++=++++++++++"+""+"+"""""-M1       --
+   CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC              CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC+C++C+C+++++.
+                                                                                                           C CC C CCCCC'
+                                                                                                                       X
+                                                                                                                       C
*II=IIAZM==+++++==M======+==========+A-           -M+=====+=+======+=======++=+++=+==+=+++=++++++++=+++++++++++"+"""""""""-=I-    ---
+        CCCCCCCCC CCCCCCCCCCCCCCCCCC               CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC+C+++++++++.C
+                                                                                                              C CCCCCCCCC'
+                                                                                                                         X
+                                                                                                                         C
*====IAIIXX--=+=+================+==+I-     -     1M===+===+=================+====+====+=++++++++++++++++++++++"+"+++"""""--"MX+    -
+          CCCCCCCCCCCCCCCCCCCCCCCCCC               CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC+C+CCC+++++..+
+                                                                                                              C C   CCCCC''C
+                                                                                                                         XX
+                                                                                                                         CC
*+==++II=IIIAIX-=================+=+=A-           1M++=====++======+======+=+==+==+==+=++++++=++++++++++++++++++++"""""""------+=I1
+              CCCCCCCCCCCCCCCCCCCCCC               CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC+++++++......CC
+                                                                                                                 CCCCCCC''''''
+                                                                                                                        XXXXXX
+                                                                                                                        CCCCCC
*++++=+1+++===I=IZ==========+=+======I           -+===+++====++=======+==M==++=++=++++++++++++=+=+++++"++"++++""++"""""""""-"-----"A-
+                 CCCCCCCCCCCCCCCCCCC              CCCCCCCCCCCCCCCCCCCCCC CCCCCCCCCCCCCCCCCCCCCCCCCCCC+CC+CCCC++CC+++++++++.+.....+
+                                                                                                     C  C    CC  CCCCCCCCC'C'''''C
+                                                                                                                          X XXXXX
+                                                                                                                          C CCCCC
*11111=++1+++======AZ-M==============I-           1================++=-==+++++++++++++=+++++++++++++++++++++"""""+"""""""-"------"--"
+                    C CCCCCCCCCCCCCC              CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC+++++C+++++++.+......+..+
+                                                                                                           CCCCC CCCCCCC'C''''''C''C
+                                                                                                                        X XXXXXX XX
+                                                                                                                        C CCCCCC CC
*++++++++++=+=+++++===AZM===+++===+++=1 -   -    -==++==+==+++++===+++A++++++++++++++++++++++++++++++"""""""""""""""""""-""""""----""
+                        CCCCCCCCCCCC              CCCCCCCCCCCCCCCCCCC CCCCCCCCCCCCCCCCCCCCCCCCCCCCCC+++++++++++++++++++.++++++....CC
+                                                                                                    CCCCCCCCCCCCCCCCCCC'CCCCCC''''BB
+                                                                                                                       X      XXXXHH
+                                                                                                                       C      CCCCXX
*+11+1++1+11=++11+1+++=IIIAZM==+===+=I--   ---    +=+=====++===++++++++++++==MM=+=++++++++++++++++++""""""""""""""""""""-""""""--""""
+                            CCCCCCCC              CCCCCCCCCCCCCCCCCCCCCCCCCC  CCCCCCCCCCCCCCCCCCCCC++++++++++++++++++++.++++++..CCCC
+                                                                                                   CCCCCCCCCCCCCCCCCCCC'CCCCCC''BBBB
+                                                                                                                       X      XXHHHH
+                                                                                                                       C      CCXXXX
*1+111+++111-11+1+11++1=+=+=I=AZM===M1-   1--    -A========M====++++++-I1 -- -=XXX-M+++++++++++"+"+""""""""""""""""""+"""""-""-""-+XI
+                                CCC               CCCCCCCC CCCCCCCCCCC           C CCCCCCCCCCC+C+C++++++++++++++++++C+++++.++.CC.C
+                                                                                              C C CCCCCCCCCCCCCCCCCC CCCCC'CC'BB'
+                                                                                                                          X  XHHX
+                                                                                                                          C  CXXC
*+1+++1++++1-111+1111111+++11+++==IX-+    ---    -===========++=+=MZI1     -+IAIAIAXZM+++++++"+"""+"""""""""""""""""+""""----++-I1--1
+                                   C              CCCCCCCCCCCCCCC                    CCCCCCC+C+++C+++++++++++++++++C++++....CCC
+                                                                                            C CCC CCCCCCCCCCCCCCCCC CCCC''''
+                                                                                                                        XXXX
+                                                                                                                        CCCC
*11111-1111--1111--+1+++++1++++1111+==++1--      -I=======+==++-X=1        +IIIIAAIXX-M="""""+""+"""+"""""""""""""""""""++MZA+111--1+
+                                                  CCCCCCCCCCCCC                     C C+++++C++C+++C+++++++++++++++++++CC
+                                                                                       CCCCC CC CCC CCCCCCCCCCCCCCCCCCC
*111111----111+1111++11+1++11111+1+11+=+===+-    -A==+=====++Z+-          1==IIIAAAAA-M=+"--+"+"+"++""+"""+"++"""++"+-II=+111111--+++
+                                                  CCCCCCCCCC                        C CC+..C+C+C+CC++C+++C+CC+++CC+CC
+                                                                                        C'' C C C  CC CCC C  CCC  C
+                                                                                         XX
+                                                                                         CC
*1+-1+11-1+-+1+11+1--111+--1+-+++11-1++1=+==I=1  1Z+===+=+++X     -       1=+IIIAXA=IIZ-=+"--++++M==""+++"""""+=MZXI+1-11--1-1++1++==
+                                                  CCCCCCCCC                           CCC+..CCCC CC++CCC+++++CC
+                                                                                         C''       CC   CCCCC
+                                                                                          XX
+                                                                                          CC
*++++1111++==111111+11111+111111=1=+11111+1+===I==-+=+++=M-I             -11+++==AAI=IX-M-="-+++I Z+""""""""=MXI+1+111+111+++1+++==I=
+                                                 CCCCCCC C                            C CC+.CCC   C++++++++C
+                                                                                          C'       CCCCCCCC
+                                                                                           X
+                                                                                           C
*+=I========-I-1+11111+11+111111III==+1+111+++++==IXM==ZI1               1111++1-+=IIAZ-A-=+-""+M=+""""""=MZA=++1+1+11111+++++++1=+++
+           C                                        CC                                C    C++C CC++++++C
+                                                                                            CC    CCCCCC
*=III===+1++=X1+11++1111111+111=--AXI=+1+++1++++++==IA=                  111--1    =AX-M=   Z--+"+"+++=-ZA=I++++111--11111++1++++++==
+                               CC                                                    C      ..C+C+CCCCC
+                                                                                            '' C C
+                                                                                            XX
+                                                                                            CC
*==++11  - 11IA--++1+-1+++-1--+A=MX=AA=I+++1++11+11+++=        --        11111     +A-M=Z I----=+"+=MAI==++--    --111+-1++I++1=I=III
+                               C                                                    C C   ....CC+CC
+                                                                                          ''''  C
+                                                                                          XXXX
+                                                                                          CCCC
*1+1---     -+X=+1++1111111111+X+MXXAI==++++111111++1I=I+       -        1=++++    +X-M==="--""==MZA===++1-11++11++====IIIII=I==IIII=
+                               C                                                    C CCC+..CCCC
+                                                                                         C''BB
+                                                                                          XXHH
+                                                                                          CCXX
*--1--      -1AA+11+1111-11- 1=A+=ZXII+==+++1+111111+=++II1     -        -=++=I111+=AM==+"+""--ZAI=++11+++++1=++==+==I==IIAIIA=II==II
+                               CC                                                    CCC+C++..
+                                                                                        C CC''
+                                                                                            XX
+                                                                                            CC
*----       -1AX+-1+1111---  -+A++-X==+=AI==++11111111++=IA=   -          +++=II=+1IX-M=+""---"==+1+1+1+==+11+11++1+====IIIIIIIII=III
+                               CCC                                                  C CC++...+
+                                                                                        CC'''C
+                                                                                          XXX
+                                                                                          CCC
*-111-      ++AZ-111111 -11 - 1A+"-XI1-=XI=+=++++-11+++=+==A1-      -     -+==I==+=IZ-=+++"--"+I1+1++1++1111=+1+1-11+++++=I=I+=+I++==
+               C               C+C                                                  CCCCC+..CC
+                                C                                                        C''B
+                                                                                          XXH
+                                                                                          CCX
*-11111---1+1=-+-1-1111-1-11- -IM"+XI111AA=+==++11111++1===IX    -    -   -==IAAIIIAXM=++"""=Z=1+=++=11==+++++=++=+=++==+++=======III
+             CCC                +C                                                   CCC+++C
+                                C                                                       CCC
*+1=++=1++IIIX-""- -1-11111-- -XMIIXI111AAI=+=++---11111====AI          -  1IIAXZAIIX-M=++-I+1+==I===++==+=+===I=I=I=I=III=II==I=IIAI
+             .++                                                                    C CCCC
+             'CC
+             X
+             C
*=I=+===+-11A+--"--11111+11   IZ=I+XI+-+IAI=+=++---1-11++=+=AX  --11        +IA--XAXA-M=-I+++==AII==+++=========IIIIIIIAAIIII==IIIIAI
+            C..+               C                                              CC    C CC
+             ''C
+             XX
+             CC
*AXIAI=I1+IX---"=1---1-11--  -I-== Z=+ -AI=+++=1---- --+--+IIZ  X--MMMX=-    =A-MZXX-ZMA-1+1==+IIAAAA=====IAIII==III=II=II=AIIAIIIIII
+           ...+               CC                                CC            C    C
+           '''C
+           XXX
+           CCC
*XZ--XXA-=I-"-+=1----+1111-1-1IZ++=ZI1 +AA==+=++1--  --11+==IMI-=M-X-M=+=Z=1  =XM-MM-X=IX-M-A++=IAIAIAA====IIII=IIIIIIAIIIAAXAXIIAAAI
+  CC      CC.C                 CC                             CC C C CCC        C  C    C C
+           B'
+           HX
+           XC
*Z----XX+AA-""=IA+111+11111- -IZ+--X=- +XI+++=++1-----1111+=I-=1=AZXXZM"-"-"=XZ-M=MMM--+"""""Z=+=++=+III==+=III=IIIIAIAAAIAAAIIIIAIAI
+ CCCC     CC+                  CCC                          C         +.+.+C  C C   CCC+++++
+           BC                                                         C'C'C            CCCCC
+           H                                                           X X
+           X                                                           C C
*ZX-----AXIM-AI-I=+1++1+11111 =-+--II-+=XI=1=+1+------111++=IMZ1++=IXZM"-""-"-"-"-"++++++==+"-M1+1=+1++=I==++=II=IIIA=AIAAAAAAA=XIA=A
+  CCCCC    .  C               CCCC                                    +.++.C.C.+.+CCCCCCCCC+.
+           '                                                          C'CC'B'B'C'C         C'
+           X                                                           X  XHXHX X           X
+           C                                                           C  CXCXC C           C
*XXXZZ-ZXAAIM=-Z++1+11111+-11-1X="MI=--IAI=++111---  --111+==-"++=IIAIM"-""-"--------""==--"""-++=I=I==I====+==IAAXAAIIIIAIAAXAIAXAXX
+     C       C                 C+                           CCC       +.++.C........++CCCC+++.
+                                C                            B        C'CC'B''''''''CC    CCC'
+                                                             H         X  XHXXXXXXXX         X
+                                                             X         C  CXCCCCCCCC         C
*AXAXAXZXXXZAZM+++++11111+11- 1A++Z====AA===++11- -  ---1+===Z"""++=+X-+-----""--------=M--""-"X+=IAAAIAIIIII==AAAAXXIIAIAAXAAIAXXIAI
+                               CC                            CC+     CC.....CC........C CC++.C
+                                                             BBC       '''''BB''''''''    CC'B
+                                                             HH        XXXXXHHXXXXXXXX      XH
+                                                             XX        CCCCCXXCCCCCCCC      CX
*AAAXXA--MMM=+Z111111+11++-111-I="Z=1=+II==+=+11-     -11====-""-M+=1M""-----"---------+=MZ+"--M=IAAAIAIIA====+IAXXAXAAAIXXXXXAAAAAAA
+      CC   CC                  C+                           CCC.     ++.....C.........CC  C+..
+                                C                            BB'     CC'''''B'''''''''     C''
+                                                             HHX       XXXXXHXXXXXXXXX      XX
+                                                             XXC       CCCCCXCCCCCCCCC      CC
*AIIAAAMM++"-"1--1111+11+11+++-=="Z=I=+AI====++11- -- --1=I=+X"""-I+-Z--------------"---"MZ="--M1+=AIAIIAIII=+==IXXAXXAAXAXAXXAXIIAXX
+        CC+.+                  C+                            CCC.    ..............+...+  C+..
+          C'C                   C                            BBB'    ''''''''''''''C'''C   C''
+           X                                                 HHHX    XXXXXXXXXXXXXX XXX     XX
+           C                                                 XXXC    CCCCCCCCCCCCCC CCC     CC
*I==1+I=1IM"=1  -- -1--1+11+1+--M=XI1=II=+++=1+---11 1111+=+=A----X- M""----------""""""--M="--I11+==IIIAIII=====IAAAAAAIAAAIAXAAAIXA
+          +C                    C                            ....    C+..........++++++.. C+..
+          C                                                  ''''    BC''''''''''CCCCCC''  C''
+                                                             XXXX    H XXXXXXXXXX      XX   XX
+                                                             CCCC    X CCCCCCCCCC      CC   CC
*+++1-1---    --11++11+++1+1+++1X=XX===+++I=+++111-1+11++=+=+A---"Z- +-"-----------""------"-"--1+=IIAIIIIAI+===IAIIIAAXAAAAAAAAXAXXA
+                                C                            ...C   C.+...........++......+.C.
+                                                             '''B    'C'''''''''''CC''''''C'B'
+                                                             XXXH    X XXXXXXXXXXX  XXXXXX XHX
+                                                             CCCX    C CCCCCCCCCCC  CCCCCC CXC
*11+1--1------1++++111++++++1++1I"X=I+=+==I==++1--11111111+=+I---"=  "-"----"---"-"+""""-----""11+=IIAAIIIIII==IIAIAIIIAAAAAIAXAAAAAA
+                                +                            ...CC  +.+....C...+.+C++++.....C+
+                                C                            '''B   C'C''''B'''C'C CCCC'''''BC
+                                                             XXXH    X XXXXHXXX X      XXXXXH
+                                                             CCCX    C CCCCXCCC C      CCCCCX
*--+1-  -1111+1+1+1++1++1++=+1+1="X==I==++=++1111-- --111+++=I---"+  ----"---"-----"""---""---+11+IIIIIIAAIIAAAAII=AIIAAAAAAAAAIAAAAA
+                                +                            ...CC  ....C...C.....+++...CC...C
+                                C                            '''B   ''''B'''B'''''CCC'''BB'''
+                                                             XXXH   XXXXHXXXHXXXXX   XXXHHXXX
+                                                             CCCX   CCCCXCCCXCCCCC   CCCXXCCC
*1-11-1 ---111+=1+++++++1=+1111-+"AI===++++1+1111---- --1++=+-"---" I----"------"""""-""-"---"=11+III===IAIAI=IAIIIIIIIIIAAIAIAAAAXIA
+                                +                           CC...+  ....C......+++++.++.C...CC
+                                C                            B'''C  ''''B''''''CCCCC'CC'B'''B
+                                                             HXXX   XXXXHXXXXXX     X  XHXXXH
+                                                             XCCC   CCCCXCCCCCC     C  CXCCCX
*1111-1-11---1-++==+==+++=+=+++1==+A===++++++--1  ----1+=I=II+----+ +------------""""---"-"--"-1+++=IIIIAAI=II=IIIA=IAIIAAAAXAXAXAAXX
+                                C                           C....C C............++++...C.C..CC
+                                                             ''''   ''''''''''''CCCC'''B'B''B
+                                                             XXXX   XXXXXXXXXXXX    XXXHXHXXH
+                                                             CCCC   CCCCCCCCCCCC    CCCXCXCCX
*1---1--11-11--111==+=++++1++=+1=I+++++1+++++-1    ---11+===X-----"1--"----------"""""--"-----A======I=II=I====I===+=I==IAAAXXAAXXAXX
+                                                            .....+ ..+..........+++++..C.....
+                                                            '''''C ''C''''''''''CCCCC''B'''''
+                                                            XXXXX  XX XXXXXXXXXX     XXHXXXXX
+                                                            CCCCC  CC CCCCCCCCCC     CCXCCCCC
*11--1-11111-1-111+++I==+++++=+++++++1111++++-1----1+1-+++==M"--"--=-""------------"""---"--""A=+==IIAI====+=I=====+=++IIAAXAXAAXIAXX
+                                                            C..C.. .++............+++...C..CC
+                                                            B''B'' 'CC''''''''''''CCC'''B''BB
+                                                            HXXHXX X  XXXXXXXXXXXX   XXXHXXHH
+                                                            XCCXCC C  CCCCCCCCCCCC   CCCXCCXX
*11+1-+-1++-+1=1++11-+AAI==++1+1+1++1-111++ 1-1--111++1+1+=M------""-""---"--------""""-""-""+1+==I=AAAI=A=I=I=II===AIAIIXXAXAIIXAAAX
+                                                           ......++.++...C........++++.CC.CCC
+                                                           ''''''CC'CC'''B''''''''CCCC'BB'BB
+                                                           XXXXXX  X  XXXHXXXXXXXX    XHHXHH
+                                                           CCCCCC  C  CCCXCCCCCCCC    CXXCXX
*11-+1111+1+=++1111+1++=I==I=++11+111-++1--11--111++++1==IX---------""--------------"""---"""Z=+=IIXIIAAIIAIIIIII=AAAAAAIAIXAXXAAXAAA
+                                                          .........++..............+++...CCC
+                                                          '''''''''CC''''''''''''''CCC'''BBB
+                                                          XXXXXXXXX  XXXXXXXXXXXXXX   XXXHHH
+                                                          CCCCCCCCC  CCCCCCCCCCCCCC   CCCXXX
*+1-1111++++=+++-++++=+11++==I==+=+1+1++11-111-11+1+1+===X+-------""+-"-------------"-"--""-"X1+IIIAIAIAXAAIAIIAAAXAAXAAAXAAXIAAAAIII
+                                                         C.......C+C.+.............+.+..CC.C
+                                                          '''''''BC 'C'''''''''''''C'C''BB'B
+                                                          XXXXXXXH  X XXXXXXXXXXXXX X XXHHXH
+                                                          CCCCCCCX  C CCCCCCCCCCCCC C CCXXCX
*++1++11++=++++++1+==++++1-1++=III=1+11+111111+1+++=11=IX"-------"""=--------------"----"""--+++=IAIAIIAXXIIIAIXAXAAAXXXXXIAXAAIIAAAA
+                                                        +.......CC+C..............+....CCC..
+                                                        C'''''''BBC ''''''''''''''C''''BBB''
+                                                         XXXXXXXHH  XXXXXXXXXXXXXX XXXXHHHXX
+                                                         CCCCCCCXX  CCCCCCCCCCCCCC CCCCXXXCC
*+1111+1++=++111++===+==+=++1++111 1+1111111++1+11=++=IM"--------"-="--------"---""-"----"--++++I==IIIIAIAIAAIXXAIXAAXXAAAIAAAAZAIXIA
+                                                       +........C.C+........+...++.+....C..C
+                                                       C''''''''B' C''''''''C'''CC'C''''B''
+                                                        XXXXXXXXHX  XXXXXXXX XXX  X XXXXHXX
+                                                        CCCCCCCCXC  CCCCCCCC CCC  C CCCCXCC
*+11+1+++++=+===+++=+++1====I=+++++==I===+II===I=====AM------"----"+"-"-------"--"------""--+==+==IAIAIAAAIAXXAXXAAAAIXAIAAXXXAXAXXXA
+                                                      ......+....+C+.+.......+..+......CC..
+                                                      ''''''C''''C C'C'''''''C''C''''''BB''
+                                                      XXXXXX XXXX   X XXXXXXX XX XXXXXXHHXX
+                                                      CCCCCC CCCC   C CCCCCCC CC CCCCCCXXCC
*11+=+++++=I====+===+==+=I==I+==++=+==II=I==I+=I===AX--"-----"--"-=+-----------+--""---""""=======IAAXAXAAXAXXAXAIXXAAAAXXAXAXAXXAXZA
+                                                    C.C.....+..C.CC...........C..++...CCCCC
+                                                     'B'''''C''B'  ''''''''''' ''CC'''BBBB
+                                                     XHXXXXX XXHX  XXXXXXXXXXX XX  XXXHHHH
+                                                     CXCCCCC CCXC  CCCCCCCCCCC CC  CCCXXXX
*++=+++++==I=I==II====II=+==I==I==I=II==I=I==II===IXM----"-----"""+"-----------"-"-"--""""-=+II===AAAAAXIXAXAXXAAAA=IXAAAAAAXXXAAXXXA
+                                                    ....+.....CC+C+...........+.+.+..CCCC.
+                                                    ''''C'''''BBC C'''''''''''C'C'C''BBBB'
+                                                    XXXX XXXXXHH   XXXXXXXXXXX X X XXHHHHX
+                                                    CCCC CCCCCXX   CCCCCCCCCCC C C CCXXXXC
*+++++====I==I=I===I=I+++=I+++11=I=I===I==+I=II=X=AZ+----"-------=+"--------"---""""------"+IAI==IIXI=AIX=IXXXAXIAIAIAIXAAAAAAAAIXXAX
+                                                   C....+.......CC+........+...++++......+
+                                                    ''''C'''''''  C''''''''C'''CCCC''''''C
+                                                    XXXX XXXXXXX   XXXXXXXX XXX    XXXXXX
+                                                    CCCC CCCCCCC   CCCCCCCC CCC    CCCCCC
*+=+==I=IAAIIII=I=I====II==I==+=III==+====+III=IAAZ=---------""-"""---"-----"----"--------Z+III==AAIIAAXXAAXXAAXXAAAAAAXXAAXIXAXXAXXX
+                                                  C.........CC.+++...C.....+....+........
+                                                   '''''''''BB'CCC'''B'''''C''''C''''''''
+                                                   XXXXXXXXXHHX   XXXHXXXXX XXXX XXXXXXXX
+                                                   CCCCCCCCCXXC   CCCXCCCCC CCCC CCCCCCCC
*====IAAAAAII===AAI=II=IIIII==+=III=======+=I+IIAXZ"--""--"--"-"+""---------"---------""""1=I====AIXAXXIAXAXXXXXXIIAAAAXXXAIAAAXAZXZA
+                                                  +..++..+..C.+C++.........+.........CCC+
+                                                  a''CC''C''B'C CC'''''''''C'''''''''BBBC
+                                                   XX  XX XXHX    XXXXXXXXX XXXXXXXXXHHH
+                                                   CC  CC CCXC    CCCCCCCCC CCCCCCCCCXXX
*IIIIIAAAAI=+===I===I=IIIA======I=II===+==+==+=IA-M---"""----""+"+---"-------""""-----"""-+====IIAIAIXXIXXXZXXXAAAXZXAAXXAXAAXXXXXZZZ
+                                                C ...+++....C+C+C...C.......++++.....CCCC
+                                                  '''CCC''''BC C '''B'''''''CCCC'''''BBB
+                                                  XXX   XXXXH    XXXHXXXXXXX    XXXXXHHH
+                                                  CCC   CCCCX    CCCXCCCCCCC    CCCCCXXX
*=AIAAAIAII+I==+=+=III=+===I===I=I1==1+==+==IIAAX-------"-"-"-"+++-"----------""-"---"-"-+==I==IAIAAAXAXAXXXZXAAAAZIZAXAAIAAAZIAXXX-Z
+                                                C......+.+.C.+CCC.C..........++.+...C.C.                                          C
+                                                 ''''''C'C'B'C   'B''''''''''CC'C'''B'B'
+                                                 XXXXXX X XHX    XHXXXXXXXXXX  X XXXHXHX
+                                                 CCCCCC C CXC    CXCCCCCCCCCC  C CCCXCXC
*IAIIAIIII=+1=+===III==+====I=========++=====IA-----"--""-----++""-"----------""----"---"-==++IAAA=IIXAAXXXXXZZZXAZXAIAIAAAAIIXXXXXZZ
+                                              CC...+..++.....CC++.C..........++....C...+
+                                                '''C''CC'''''  CC'B''''''''''CC''''B'''C
+                                                XXX XX  XXXXX    XHXXXXXXXXXX  XXXXHXXX
+                                                CCC CC  CCCCC    CXCCCCCCCCCC  CCCCXCCC
*IIIXXAAII===I=IIIIAI===I===I===I=====+++==AIZX=--""""""-"---"+"------------"-"""--"-----+=++=AAIII=AAAAXXZAAZXXAXAAAAAAXAAAAXXXXZZXX
+                                              C..++++++.+...+C+............+.+++..C....C
+                                               ''CCCCCC'C'''C C''''''''''''C'CCC''B''''
+                                               XX      X XXX   XXXXXXXXXXXX X   XXHXXXX
+                                               CC      C CCC   CCCCCCCCCCCC C   CCXCCCC
*IXAAAXAIIII=IIIIAIAAI=I=====I+=I+==+=+=I=AAAA=--"-""""--"""-+"----""-------"-"----"----I++=IAIXAAIAAAAXZXZXXXXXZAAAAAAAXAAIAAXXXXXAX
+                                             C..+.++++..++C.C+....CC.......+.+....C....
+                                              ''C'CCCC''CCB' C''''BB'''''''C'C''''B''''
+                                              XX X    XX  HX  XXXXHHXXXXXXX X XXXXHXXXX
+                                              CC C    CC  XC  CCCCXXCCCCCCC C CCCCXCCCC
*AXAXAAA=IAAAAAIAAAAII=IA=+=I=+==+=++=1=+AAAA+-"""""""--"I--""--------------"-""------"+1+=IXXAAAI=IXIAZXZXXAXAXZIIXIAXAAAAIXXAZIAXXA
+                                            C.+++++++..+ ..++..............+.++......CC
+                                             'CCCCCCC''C ''CC''''''''''''''C'CC''''''B
+                                             X       XX  XX  XXXXXXXXXXXXXX X  XXXXXXH
+                                             C       CC  CC  CCCCCCCCCCCCCC C  CCCCCCX
*AXXXZAAIAAAAAAAIIIAIII+IIIIIIII==+==I=IIXXX+----"""---+++--"------"------"--"----"--""Z++=AIAAAAIIIAAAXXZZXXXIZXXAXXXAIIAIXAXZXXXXXZ
+                                           C....+++...C C..+......C......+..+....C..CC
+                                            ''''CCC'''   ''C''''''B''''''C''C''''B''BB
+                                            XXXX   XXX   XX XXXXXXHXXXXXX XX XXXXHXXHH
+                                            CCCC   CCC   CC CCCCCCXCCCCCC CC CCCCXCCXX
*AAAAAAAAIAIAIAIAI=IAIII=I=II=I===I===IAXAZ--"""""----"-1--""----------"-"""""-------""I=+=IIIAIAIAAIAAZXXXZXAAXXAXXAIIAAAXAXXZZXXXAX
+                                          ..+++++....+  ..++..........+.+++++.......CC
+                                          ''CCCCC''''C  ''CC''''''''''C'CCCCC'''''''BB
+                                          XX     XXXX   XX  XXXXXXXXXX X     XXXXXXXHH
+                                          CC     CCCC   CC  CCCCCCCCCC C     CCCCCCCXX
*IIIA=IAXIIIAIAIIIIIII=I===II=I=I+II=IXIA=--""""""---M-++-""----------""-"""+""------"-+IIAIIIAAAIAAAXXZZXXZXAAXAXAXIAAIAIXAAXXXXXXAX
+                                        C..++++++...   C.++..........++.+++C++......C.
+                                         ''CCCCCC'''    'CC''''''''''CC'CCC CC''''''B'
+                                         XX      XXX    X  XXXXXXXXXX  X      XXXXXXHX
+                                         CC      CCC    C  CCCCCCCCCC  C      CCCCCCXC
*I=IIIXAAIAA=IIII=AAIII=====I=I+A=IAXXAI+""""""""--"-  ="-""------------""""--""------++=IAAAA==I=AAXAXAXZXXXXXZAXAIAIAAAXZAXAZXXXXIA
+                                       C++++++++..+C  CC.++............++++..++......C
+                                        CCCCCCCC''C    B'CC''''''''''''CCCC''CC''''''
+                                                XX     HX  XXXXXXXXXXXX    XX  XXXXXX
+                                                CC     XC  CCCCCCCCCCCC    CC  CCCCCC
*AIII=IIIIAIIIIII=III=I====I==A+AIAX-MZ"-"""""""-"=I  A-----"---------""-""""""----""-X=+AIAAAIAIIIXAAZZXZAAZZXXAAAAA=AAAAXXXAAXXAXA=
+                                   C  +.+++++++.+C    .....C.........++.++++++....CC.
+                                      C'CCCCCCC'C     '''''B'''''''''CC'CCCCCC''''BB'
+                                       X       X      XXXXXHXXXXXXXXX  X      XXXXHHX
+                                       C       C      CCCCCXCCCCCCCCC  C      CCCCXXC
*II==IAII=I=III==IIII+==I==+=AAIAAXAM+"-"""""--"+X+ 1=---------------""""""-""-----"--==IIIIIIAAIAXAAXZXXXZAZZXAAIAAA=XXXXXXXAAXAII=I
+                                    C+.+++++..+C     ...............++++++.++.....C.C
+                                     C'CCCCC''C      '''''''''''''''CCCCCC'CC'''''B'
+                                      X     XX       XXXXXXXXXXXXXXX      X  XXXXXHX
+                                      C     CC       CCCCCCCCCCCCCCC      C  CCCCCXC
*II=IIII==I===========II==+=XAXAXAA+"""""--"--+X+-1 X------------"""---+"""-"--"-""-A++IIIIAIAAAAAIAXX-XAZ-XXXAXI=IAAXXXXXXAAAXII=III
+                                  C+++++..+..C      ............CCC...C+++.+..C.CC.                  C   C
+                                   CCCCC''C''       ''''''''''''BBB''' CCC'C''B'BB'
+                                        XX XX       XXXXXXXXXXXXHHHXXX    X XXHXHHX
+                                        CC CC       CCCCCCCCCCCCXXXCCC    C CCXCXXC
*1==A=I==I+===++=+I==+==+=+=AAIAIZ"""+++"""--X-1-+------------------"""""------""""+1==III==IIIAXZXAXZXZXZXXAXXAI=IAAXXAAZAAIA=++IAXI
+                                 +++CCC+++..      C................+++++......CCCC
+                                 CCC   CCC''       ''''''''''''''''CCCCC''''''BBBB
+                                          XX       XXXXXXXXXXXXXXXX     XXXXXXHHHH
+                                          CC       CCCCCCCCCCCCCCCC     CCCCCCXXXX
*=I====+=I==+++1=====+=II=IIIIIA+""===M+++=MI++1=++""-""-"-------"----""-""-""---=X1++=IIIAIAAXAAAAZXX-ZXXAXAAAA==IAAAXXZXXIA=IAIAAXX
+                               C++CCC CCCC        +C.++.+.......C....++.++.CC..CC                    C
+                                CC                CB'CC'C'''''''B''''CC'CC'BB''
+                                                   HX  X XXXXXXXHXXXX  X  XHHXX
+                                                   XC  C CCCCCCCXCCCC  C  CXXCC
*=I++==++++++==1===========IAXM++=MMM=="+-I+1+++=II""-"""-------"----"""----""---=1==IIIA=IAIAAAAXZXXXZAXXXXAAAI+AAIXAXXXII=IIAXXZZ-X
+                              CCC   CC+CC         CC.+++.......C....+++....CC..C                                                  C
+                                      C           BB'CCC'''''''B''''CCC''''BB''
+                                                  HHX   XXXXXXXHXXXX   XXXXHHXX
+                                                  XXC   CCCCCCCXCCCC   CCCCXXCC
*IIII==+I+=+++++++=+IAZ-AIZMM+=MMMM==+=MA+++1++-++Z----"-----"-------""-----"""-===IIIAAXAAIAXIZZZ-XZXZXZXXAAAI=IAAAXAA=I=IAAXXXZZXZZ
+                      C     CC    CCCC        CCC ....+.....C.......++.....CCC.                  C
+                                                  ''''C'''''B'''''''CC'''''BBB'
+                                                  XXXX XXXXXHXXXXXXX  XXXXXHHHX
+                                                  CCCC CCCCCXCCCCCCC  CCCCCXXXC
*A=AI=I+==1+=+1=XM==MAAXM=M=-----M-MMM-=-++1+1=----"----"---------"""""--"-----1+==IAX=XAIIAXIIAXXXXAXAXAAXAIA=IIIAXXAI=IAAXXXXZA--XZ
+                 CC     C CCCCCC C   C       C....C....+.........+++++..C.....                                                  CC
+                                              ''''B''''C'''''''''CCCCC''B'''''
+                                              XXXXHXXXX XXXXXXXXX     XXHXXXXX
+                                              CCCCXCCCC CCCCCCCCC     CCXCCCCC
*=+====+=IAAX+=ZAIAAXX--Z-ZZZZZ------I++1+++I+--------"-------"--"""------"-""I1=IIAXXAAAAIIAAAXXAAXXZXXZAXAAAAAIAAII==IAIAXXXZXXXXZZ
+            CC       CC C     CCCCCC        C........+.......C..+++......C.C+
+                                             ''''''''C'''''''B''CCC''''''B'BC
+                                             XXXXXXXX XXXXXXXHXX   XXXXXXHXH
+                                             CCCCCCCC CCCCCCCXCC   CCCCCCXCX
*AAAI+=IXAAAZ=ZXXAXX-----ZZZZZZXZZ-X=+++=++A+"-"---"""-"------"-"""-"------"-I++=IAXAAIAAAAIIAAXXXAXXXAXAAAAAAAAAIIIIIIXXAAXXX-Z----Z
+            C      CCCCC         C         CC.+...+++C+......C.+++.+......C.                                                 C CCCC
+                                            B'C'''CCC C''''''B'CCC'C''''''B'
+                                            HX XXX     XXXXXXHX   X XXXXXXHX
+                                            XC CCC     CCCCCCXC   C CCCCCCXC
*XXXI--XI++IXMXXZZ-----MZZXZZXZXXXA++=+=+++""-------------"-------------"-"-I1=AAAXXAIAAX=AXAXAXAXXZXXXAXXIAAAAAAAIAIAIXXXZZZX-ZZ---Z
+    CC           CCCCC                    +C.............+.............C.C.                                                  C  CCC
+                                          CB'''''''''''''C'''''''''''''B'B'
+                                           HXXXXXXXXXXXXX XXXXXXXXXXXXXHXHX
+                                           XCCCCCCCCCCCCC CCCCCCCCCCCCCXCXC
*ZX=-I1I=1-+I-M-M-Z--ZXZXXAAXXAAA=+=+==+1-=--------"---------""-"----------M-==AXXXXAIIXXIIAAAAAXXXZIXXIIAAAXAAIIAIIAIAXIXXXXZ-XX-ZZ-
+  C.        C C C CC                     C........+.........++.+..........                                                   C  C  C
+   '                                      ''''''''C'''''''''CC'C''''''''''
+   X                                      XXXXXXXX XXXXXXXXX  X XXXXXXXXXX
+   C                                      CCCCCCCC CCCCCCCCC  C CCCCCCCCCC
*A=-" -+A1-+=A-ZAZ-ZXXXXAIAXIIII=++===++1-----------------------"---------- +AAZXAXXZXXAXXAAAIAXXXAZXAXZAAAAXAAXAAAXAAXAXZZXZZXZZZXAA
+ C.+         C   C                      C......................+.........C
+  'C                                     ''''''''''''''''''''''C'''''''''
+  X                                      XXXXXXXXXXXXXXXXXXXXXX XXXXXXXXX
+  C                                      CCCCCCCCCCCCCCCCCCCCCC CCCCCCCCC
*M"-+ 1II= 1==AXXIAAAIIAIIIII=I===+++++11+------"--------------"--------"=1+=AAXAAAXXXXXAAAXAXXZXXXAAXIAAXAAAAAAAXIXAZAAXXXZXZX-XAIII
+ +.C                                    C......+..............+........CC                                                     C
+ C'                                      ''''''C''''''''''''''C''''''''B
+  X                                      XXXXXX XXXXXXXXXXXXXX XXXXXXXXH
+  C                                      CCCCCC CCCCCCCCCCCCCC CCCCCCCCX
*""-M 1II+--+=IA=+=====I====II=====+++11I-"----""+""-----"--------"-"---"=1=IAAIIIAXXAAAXXAXXXXXXXXAIXIAZZAXAIIAAXAXAXXZZXXXXXAAA==AX
+++.                                     .+....++C++.....C........+.C...C
+CC'                                     'C''''CC CC'''''B''''''''C'B'''B
+  X                                     X XXXX     XXXXXHXXXXXXXX XHXXXH
+  C                                     C CCCC     CCCCCXCCCCCCCC CXCCCX
*"""X  =I++++==A+++1=+==+++++++=++1++11 ="+----"-"+=--"----""---"---------+=IIII+IAAAAAXAXAAAIIA=IAIIAAIIXIIIIAIIIIIXIZXXXXXAA=I=IAXZ
++++                                    C+C....+.+CC..C....++...+.......C
+CCC                                     C ''''C'C  ''B''''CC'''C'''''''
+                                          XXXX X   XXHXXXX  XXX XXXXXXX
+                                          CCCC C   CCXCCCC  CCC CCCCCCC
*""XA=1ZX-1+==AX+=++++++++11+11++1-1---Z-"+"---"==M-M-"-"--""----""---"=-++IAIIIXAAAAIAXXAAXXAIIAAAAIIAIIAAXIIAXAAAZZXZZZXXXAI=IAZZ--
+++                                     .+C+...+CC C .C.C..++....++...CC                                                           CC
+CC                                     'C C'''C     'B'B''CC''''CC'''B
+                                       X   XXX      XHXHXX  XXXX  XXXH
+                                       C   CCC      CXCXCC  CCCC  CCCX
*+-+AZZMA -+=IA++1+1+1111++++11--     I-"++""--"=M-Z-"---------"""---"-+11+=AIIAAAAIAXAAXAIAIIAAIAAAIAAAIXXAIAXXXXIXZXZZXXAAIIAXZ-ZXI
+CC                                    .+CC++..+C C C+.........+++...C.                                                          C
+                                      'C  CC''C     C'''''''''CCC'''B'
+                                      X     XX       XXXXXXXXX   XXXHX
+                                      C     CC       CCCCCCCCC   CCCXC
*I===IIXI1-11AZZZZZXAAAXAAXXAXAAZZZA=++"++=-"--"+ZXAX-=------"--"--""-"-1+=IAAAXAXIAAXAAAIIIAAXAAIAAXIAAIIAAAAXZAXXAXXXXXXAIIAX--ZI==
+                                     C+CCC.+..+C    CC......+..+..CC.+                                                        CC
+                                      C   'C''C       ''''''C''C''BB'C
+                                          X XX        XXXXXX XX XXHHX
+                                          C CC        CCCCCC CC CCXXC
*-++=AZII=1+=-""--Z-XXZZAXZXAXIAM-"""-"MMM+----=ZMMAAX-+"----M"---"-""A++IAIAIAAIAAIAAIIIA=AXAIAIAIAXXIAAAXIXXXAXXAAAAXXXIII-ZZZA++=I
+           C.CC.C C             .CCC.+   C....C      CC+.... +...C.CC                                                      C
+            'BB'                'BBB'C    ''''         C'''' C'''B'BB
+            XHHX                XHHHX     XXXX          XXXX  XXXHXHH
+            CXXC                CXXXC     CCCC          CCCC  CCCXCXX
*+++IZX1+=A="+=MXZXAX-XAAAAXAXI=X-""-MZZ-=+"---+==MZAXX-++"--=M"----""I==IXXIAAIAAIIAAIAIIIIIIIIIIAAIIIAXAIIAAAZXAXXAAXAAIXA-ZX+====I
+          C+CC      C           .CC.   CCC+...CCC     CCC+..C +....C+                                                      C
+           C                    'BB'      C'''           C''  C''''BC
+                                XHHX       XXX            XX   XXXXH
+                                CXXC       CCC            CC   CCCCX
*=IAZI+1=A-M-ZZZXZZ-ZXXAAXZXXXA==-"-=XZZZM+"--"M=+-ZXIZXM==""+"--"--+A=IIIAXAIAIIII=II=I=III==I==IIAAAIIAIAAAXAAAXXXXAXAAAZXZI++IIAXX
+         C C      C            C.C.C     C+..+ CCC      CC++C+..+..C
+                                'B'       C''C            CC C''C''
+                                XHX        XX                 XX XX
+                                CXC        CC                 CC CC
*I-Z=+1=--=-ZZXZZZZZXAXZXXXZZXAI"""+XXMM++"+++++=M-XZXXX-MM=M=""""-ZI=AXAAAAA=I+II=I======IAI=AIIAAIIIIIIIIAAXAIIAIXXXAXAXXAI==I=AAZX
+ C     CCCC                    +CCC    CC+CCCCCC C     C  C C++++.
+                               CBB       C                   CCCC'
+                                HH                               X
+                                XX                               C
*Z=+1=Z=M-ZZZZXZZAAAAAAZXXXZZX==""+XXM="---"""++M-MXXAZX=M-==+++""--+=A=IAAIIII=+=+II+==+=IIA=AIIII=I=II=IA=A=IIAAAIAXAXAZAI==IIIAIAI
+      C C                     CCCC   C+...+++CC C      C CCCCCC++C
+                               BB     C'''CCC                  CC
+                               HH      XXX
+                               XX      CCC
*1+AM+=-M--ZZXZZZAAXAXXAZAXZXX=XZIXA-M+""""""++MZM=--XZX-Z-M++++-=-1+IIAIXAAAAA+=III=IIIAAAXAAXAXAAAAAIIIAIAIIAIXAAAZXAXA=+==I=I+=AAA
+    CCC CC                         C C++++++CC   CCC   C C CCCC.C
+                                      CCCCCC                   '
+                                                               X
+                                                               C
*ZMMMM---ZZZZXXXXXAXXAAXXXXXXX=- AXZ=="""-"""M+-Z=M=XZXXZZ-=+==-+11++III=XAAAAA=AAAIAIIAAAAAXAAXAAXAIIAIIAIAIAAAXAAIAXXI+++==AAAAAAXX
+     CCC                           CC+++.+++ CC C C      CCCCC.C
+                                     CCC'CCC                  '
+                                        X                     X
+                                        C                     C
*MM----Z-ZZZZXXXXAAXXXAXXXXXZZI11AXMMM++""+===+ZZMZ-XZ-XX-M=M-+=++++IA=IIXIAXZXXXXXAAIIAAIAAAXAAAXAIIIIAAAIIAAIXAAXAAXI=+1=+AAAAAAAAA
+  CCCC C                             CC++CCCCC    C  C  C C CCC
+                                       CC
*------ZZ--ZZXXAAXXXXAAAAXXAXZZI1=A--"++MMM=+==-A-ZIAX-Z-=MM-"--==+++1+AXA=XXZXXAXAI+AAIAAIAIIAAXIIIAA=AIAAIIAIXXAXAA=+===IAAAAAAAAIX
+CCCCCC  CC                        CC+CC   CCCCC C    C CC  C+.
+                                    C                       C'
+                                                             X
+                                                             C
*------Z-----ZXXXXXXXZXXAXAXXZ-ZAXXZM-XXXAXAX-A--XX-XAIZ-MMZ--X-1++++=+=I=+AAAZZXXAIII==IIIIIIAAAAI=IA=IIIIIIXAXXAXAI====IIAXZXXAAAAX
+CCCCCC CCCCC                 C      C       C CC  C    C   C.
+                                                            '
+                                                            X
+                                                            C
*MMMMMMMM=MMMM----Z-ZZZZ-Z---M-----XZXXXXXZXXXZ-MM-XAIXXXZZM+- 111++==++1+IIIAX-ZAAII=I+=II=IIAAAI==I=IIAAIIAAAXAAAI=II=IAXXZXXXAAXAA
+        C    CCCC C    C CCC CCCCC            C  C         CC                 C
*+"++++"+""++++=++===+==+==++"++++==========++++++=+=ZXXAZ-+"1 11+===++++====XXAAAA====+=I===IAIIIII=IIIAAIIAAAXAX==+AI=IAAXXXXXXXXXX
+C+CCCC+C++CCCCCCCCCCCCCCCCCC+CCCCCCCCCCCCCCCCCCCCCCC     CC+
+ C    C CC                  C                              C
*-""-"""""-"""-"""""""+"""--""""-"-"""+-""---"-""""--"=AXM"=- -+1+===+1+++IIXAIXAIAAII=II+I=AAAA=IIA==IAIIAAXIAAA++=IIXAIAXXZZZZAXXXX
+.++.+++++.+++.+++++++C+++..++++.+.+++C.++...+.++++..+C   +C
+'CC'CCCCC'CCC'CCCCCCC CCC''CCCC'C'CCC 'CC'''C'CCCC''C    C
+X  X     X   X           XX    X X    X  XXX X    XX
+C  C     C   C           CC    C C    C  CCC C    CC
*"---""""""""""--"----"---"-------"---------------------===----++++1+11+===IIAAAI=AXAI=AIIIIAI===I==A=IAAIIXAAAXA=IIIAAXAAXXZXZXXAXAX
++...++++++++++..+....+...+.......+.....................CCC
+C'''CCCCCCCCCC''C''''C'''C'''''''C'''''''''''''''''''''
+ XXX          XX XXXX XXX XXXXXXX XXXXXXXXXXXXXXXXXXXXX
+ CCC          CC CCCC CCC CCCCCCC CCCCCCCCCCCCCCCCCCCCC
*--"""""""""-""""""-"""-"""-----"----""-"""---------------"I1-1++11+++++=1++=AAI==AIAAIIAIAII=====I===IIIAAIXAXA==IAAAXXXAZXXXZXXXXAA
+..+++++++++.++++++.+++.+++.....+....++.+++...............+
+''CCCCCCCCC'CCCCCC'CCC'CCC'''''C''''CC'CCC'''''''''''''''C
+XX         X      X   X   XXXXX XXXX  X   XXXXXXXXXXXXXXX
+CC         C      C   C   CCCCC CCCC  C   CCCCCCCCCCCCCCC
*--""-"-----------------""----"------------------------"--"-X-1++-11+-11====IA==+AIXAAIIIIII=IIIIAA=IIAAI=A=AAZI==IXAXXAAZZZZXZXXXXZX
+..++.+.................++....+........................C..C.
+''CC'C'''''''''''''''''CC''''C''''''''''''''''''''''''B''B'
+XX  X XXXXXXXXXXXXXXXXX  XXXX XXXXXXXXXXXXXXXXXXXXXXXXHXXHX
+CC  C CCCCCCCCCCCCCCCCC  CCCC CCCCCCCCCCCCCCCCCCCCCCCCXCCXC
*-""""-----"---""-"""-"------""---"--"---------------"------"M-111-----1+===+I==1I=II=IIII=A=A==IIAIIAIA==AIIXA+IIIIAXXAXZXZZXXZXXXAX
+.++++.....+...++.+++.+......++...+..+...............+......C
+'CCCC'''''C'''CC'CCC'C''''''CC'''C''C'''''''''''''''C''''''B
+X    XXXXX XXX  X   X XXXXXX  XXX XX XXXXXXXXXXXXXXX XXXXXXH
+C    CCCCC CCC  C   C CCCCCC  CCC CC CCCCCCCCCCCCCCC CCCCCCX
*"""-""-""---"-"--"-"------------"-"----------------------"-""=+111+11++++=++==+I++=IIIIA=I+=AIIAIAI=AIIIIIAAAAIIAAXAXZXXX-ZZZZXXXXXX
++++.++.++...+.+..+.+............+.+......................C.CCC                                                           C
+CCC'CC'CC'''C'C''C'C''''''''''''C'C''''''''''''''''''''''B'BB
+   X  X  XXX X XX X XXXXXXXXXXXX X XXXXXXXXXXXXXXXXXXXXXXHXHH
+   C  C  CCC C CC C CCCCCCCCCCCC C CCCCCCCCCCCCCCCCCCCCCCXCXX
*"""-"-----"--"---"--"-"-----------"---------------------------==1+++=++11-++++===IIIII=II===IIII=I==I=I=I=AA=IAAIAZAXAZZZXXXZXAZXAXZ
++++.+.....+..+...+..+.+...........+...........................C
+CCC'C'''''C''C'''C''C'C'''''''''''C'''''''''''''''''''''''''''
+   X XXXXX XX XXX XX X XXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXX
+   C CCCCC CC CCC CC C CCCCCCCCCCC CCCCCCCCCCCCCCCCCCCCCCCCCCC
*-------------"------------------------------------------------"++1++I=++11++=+=+=IIIIIII=II=IIIIAIII=II=IAAA=AXZAXXXXZXZZXZXXZ-XXXXZ
+.............+................................................CC                                                              C
+'''''''''''''C''''''''''''''''''''''''''''''''''''''''''''''''B
+XXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXH
+CCCCCCCCCCCCC CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCX
*""""-------"--------"-"""-------"-----"---"-"----------------"---=1++==111+1==I=I+I+====+IAA==IIIIAI=IIIIIAIXAXXXXXXXXXXAXXXZXXXAAXX
+++++.......+........+.+++.......+.....+...+.+................C...
+CCCC'''''''C''''''''C'CCC'''''''C'''''C'''C'C''''''''''''''''B'''
+    XXXXXXX XXXXXXXX X   XXXXXXX XXXXX XXX X XXXXXXXXXXXXXXXXHXXX
+    CCCCCCC CCCCCCCC C   CCCCCCC CCCCC CCC C CCCCCCCCCCCCCCCCXCCC
*------------"-"---------------------------------"-------------""-"Z=+=+===I=I==I==I=========XI==II==IIIAIIIAIXXXZZXXXXZXZXXXXXXXXXZZ
+............+.+.................................C.............CC.C
+''''''''''''C'C'''''''''''''''''''''''''''''''''B'''''''''''''BB'B
+XXXXXXXXXXXX X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXHXXXXXXXXXXXXXHHXH
+CCCCCCCCCCCC C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCXCCCCCCCCCCCCCXXCX
*------------"-----"-""-"-------"------"-----"----------------------+I++===I=I=I=I==+========IAII=II=IIXA=I=AAXXZXXXXZAXXXXAZXXXXXZZX
+............+.....+.++.+.......+......+.....+......................C
+''''''''''''C'''''C'CC'C'''''''C''''''C'''''C''''''''''''''''''''''
+XXXXXXXXXXXX XXXXX X  X XXXXXXX XXXXXX XXXXX XXXXXXXXXXXXXXXXXXXXXX
+CCCCCCCCCCCC CCCCC C  C CCCCCCC CCCCCC CCCCC CCCCCCCCCCCCCCCCCCCCCC
*"------------"---"-------------"------------"---------------------""-M1+==III=I==+=+=+=====IAIIAIIIIIAAIII=IAXZZZXXXXXAXZZXZXZAZAZXX
++............+...+.............+............+.....................CC.
+C''''''''''''C'''C'''''''''''''C''''''''''''C'''''''''''''''''''''BB'
+ XXXXXXXXXXXX XXX XXXXXXXXXXXXX XXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXHHX
+ CCCCCCCCCCCC CCC CCCCCCCCCCCCC CCCCCCCCCCCC CCCCCCCCCCCCCCCCCCCCCXXC
*---""-------"-""""---"-------"--"-----"---"-""-----------------------""+1=IAII=+=====A=I=IIIA=IA=AAIIAAIIZIIAXZZZZZXZZAXZZXXZ-XXXXZX
+...++.......+.++++...+.......+..+.....+...+.++.......................C+                                                      C
+'''CC'''''''C'CCCC'''C'''''''C''C'''''C'''C'CC'''''''''''''''''''''''BC
+XXX  XXXXXXX X    XXX XXXXXXX XX XXXXX XXX X  XXXXXXXXXXXXXXXXXXXXXXXH
+CCC  CCCCCCC C    CCC CCCCCCC CC CCCCC CCC C  CCCCCCCCCCCCCCCCCCCCCCCX
*----""---"-"--"----"-""-----"----"--------------------------------------A+=IIA=I====+I=IAIAIXAAIIXAIIAIAXI=IXXXZXZXZXXX-ZZZZXXXAXXAX
+....++...+.+..+....+.++.....+....+......................................                                               C
+''''CC'''C'C''C''''C'CC'''''C''''C''''''''''''''''''''''''''''''''''''''
+XXXX  XXX X XX XXXX X  XXXXX XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+CCCC  CCC C CC CCCC C  CCCCC CCCC CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
*---------"-------------------------------------------------------------"--=IAAAAI=====IIAIIIAIAAAAAIAXIAZX=IZZZZZZZ-ZZZZZZXZXZXXXZXX
+.........+.............................................................C.C                                         C
+'''''''''C'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''B'
+XXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXHX
+CCCCCCCCC CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCXC
*---------"----"------------------------"---"-----------------------------"+AIAXAAA===IIAAIIAAIIAXXIXXAXXZI=IXZZXZZZZ-ZZZ-XZXXZXXZZXX
+.........+....+........................+...+.............................CC                                         C   C
+'''''''''C''''C''''''''''''''''''''''''C'''C'''''''''''''''''''''''''''''B
+XXXXXXXXX XXXX XXXXXXXXXXXXXXXXXXXXXXXX XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXH
+CCCCCCCCC CCCC CCCCCCCCCCCCCCCCCCCCCCCC CCC CCCCCCCCCCCCCCCCCCCCCCCCCCCCCX
*------"-----------------"---"----""-"---"--""-----------------"----------"""I=IIAAA=IIAII==IIAIIIAXAXZXXX==IAXXXXXXAZ-ZX--ZZZXXX-XXA
+......+.................+...+....++.+...+..++.................+..........CCC                                         C  CC      C
+''''''C'''''''''''''''''C'''C''''CC'C'''C''CC'''''''''''''''''C''''''''''BBB
+XXXXXX XXXXXXXXXXXXXXXXX XXX XXXX  X XXX XX  XXXXXXXXXXXXXXXXX XXXXXXXXXXHHH
+CCCCCC CCCCCCCCCCCCCCCCC CCC CCCC  C CCC CC  CCCCCCCCCCCCCCCCC CCCCCCCCCCXXX
*""-""""""""-"-"""-"-""-""""""-"""-"""""-"""-"--"-----"-"-"-"-"--"------------=IIIXXXAAIIIIIIAAX=AZZAXZXZX=IIXXXXXXXXZ-ZZZXZZXXXXXXXX
+++.++++++++.+.+++.+.++.++++++.+++C+++++.+++.+..+.....+.+.+.+.+..+............C                                       C
+CC'CCCCCCCC'C'CCC'C'CC'CCCCCC'CCC CCCCC'CCC'C''C'''''C'C'C'C'C''C''''''''''''
+  X        X X   X X  X      X         X   X XX XXXXX X X X X XX XXXXXXXXXXXX
+  C        C C   C C  C      C         C   C CC CCCCC C C C C CC CCCCCCCCCCCC
*""""""""""+""++++"""+++++"+++"+"+"+"+++""+"""""""""-"""""""-"--""-----------""=-=AIAAAIAAIIIIAAAXXXXXXX-XIIAXZXXXXAXXZZ--ZZZZ-ZZZ-Z-
+++++++++++C++CCCC+++CCCCC+CCC+C+C+C+CCC++C+++++++++.+++++++.+..++...........CCCC                       C               CC    C   C C
+CCCCCCCCCC CC    CCC     C   C C C C   CC CCCCCCCCC'CCCCCCC'C''CC'''''''''''BB
+                                                   X       X XX  XXXXXXXXXXXHH
+                                                   C       C CC  CCCCCCCCCCCXX
*""""""""""""""""""""+"++""+""""""""""""-""""""""+"+"++"""++"""""-""---""-"------MIIIAAAIA==AAAAAXXZXAAXXZZIAXXAAXXXXX-ZZZZZZZXZXZZXZ
+++++++++++++++++++++C+CC++C++++++++++++.++++++++C+C+CC+++CC+++++.++...++.+......                                     C
+CCCCCCCCCCCCCCCCCCCC C  CC CCCCCCCCCCCC'CCCCCCCC C C  CCC  CCCCC'CC'''CC'C''''''
+                                       X                        X  XXX  X XXXXXX
+                                       C                        C  CCC  C CCCCCC
*""""""-""""------""""-""""--"-"-"""-""""-"""-"-""+=+++=++++=++"+""""""""""""-----+II=A+AAI=I=AXAZZAXAAAAZ-==IXAAAXAXA-XXZAAAXZZXZZXX
+++++++.++++......++++.++++..+.+.+++.++++.+++.+.++CCCCCCCCCCCCC+C++++++++++++.....C                       C           C
+CCCCCC'CCCC''''''CCCC'CCCC''C'C'CCC'CCCC'CCC'C'CC             C CCCCCCCCCCCC'''''
+      X    XXXXXX    X    XX X X   X    X   X X                             XXXXX
+      C    CCCCCC    C    CC C C   C    C   C C                             CCCCC
*"""-""""""-"""---""-"""--"-----"-+-"-""--"-""---""""+="++++"++++""""""""""""""----"ZAAAAI=IXAAAXXXAAAIAAZ-AIAXXXXZXXZZZXXZXAXXZ-ZZXX
++++.++++++.+++...++.+++..+.....+.C.+.++..+.++...++++CC+CCCC+CCCC++++++++++++++....+                      C                     C
+CCC'CCCCCC'CCC'''CC'CCC''C'''''C' 'C'CC''C'CC'''CCCC  C    C    CCCCCCCCCCCCCC''''C
+   X      X   XXX  X   XX XXXXX X X X  XX X  XXX                              XXXX
+   C      C   CCC  C   CC CCCCC C C C  CC C  CCC                              CCCC
*"""-"""""""""+""""""""-"""""-"""-"""""""""-"""-"-""""""+""++++++++"+"+"""""-""""----MZAAI=IIAXXXXZAXXAXXAXXAXAAXXXZXZZZXZZZZZXZZZ--Z
++++.+++++++++C++++++++.+++++.+++.+++++++++.+++.+.++++++C++CCCCCCCC+C+C+++++.++++....                                             CC
+CCC'CCCCCCCCC CCCCCCCC'CCCCC'CCC'CCCCCCCCC'CCC'C'CCCCCC CC        C C CCCCC'CCCC''''
+   X                  X     X   X         X   X X                          X    XXXX
+   C                  C     C   C         C   C C                          C    CCCC
*"""""-"""""""""""""""""""""""""""""""-"""-"""-""--""-"""""""+++"+"++++"""+"""""""-"--"=XXAAIIAAAAXXAXAZXXAXXIAAAXAAXZXXZ-Z--ZZZXXZZX
++++++.+++++++++++++++++++++++++++++++.+++.+++.++..++.+++++++CCC+C+CCCC+++C+++++++.+..+C                                 C CC
+CCCCC'CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC'CCC'CCC'CC''CC'CCCCCCC   C C    CCC CCCCCCC'C''C
+     X                               X   X   X  XX  X                            X XX
+     C                               C   C   C  CC  C                            C CC
*"""""""""""+"+"""""""++"""""""""""""""-""""""""-"""""""""-"""+"++++++"""""""-"-"""-----"ZZXZAAXAXXAAAX-XZXZMXXXXXXXAAAXZXX---XX-XXAX
++++++++++++C+C+++++++CC+++++++++++++++.++++++++.+++++++++.+++C+CCCCCC+++++++.+.+++.....+              C                   CCC  C
+CCCCCCCCCCC C CCCCCCC  CCCCCCCCCCCCCCC'CCCCCCCC'CCCCCCCCC'CCC C      CCCCCCC'C'CCC'''''C
+                                      X        X         X                  X X   XXXXX
+                                      C        C         C                  C C   CCCCC
*"""""""""""++""""""""""""+"""""""""""""""""""-""""""""-"""""""-"""""""""""""-"-"-""------=--AA+AIAZXXXXZZXXXZ=AAXXXXAXXZZZZZZZ-ZZZXA
++++++++++++CC++++++++++++C+++++++++++++++++++.++++++++.+++++++.+++++++++++++.+.+.++......CCC                                  C
+CCCCCCCCCCC  CCCCCCCCCCCC CCCCCCCCCCCCCCCCCCC'CCCCCCCC'CCCCCCC'CCCCCCCCCCCCC'C'C'CC''''''
+                                             X        X       X             X X X  XXXXXX
+                                             C        C       C             C C C  CCCCCC
*""""+""""+"++""""""+""""""""""""""""""""""""""""""""""-""""""""-"""""""""""-""---"""-"----+=-ZAIXAIAIXXZZZZAAA=AAAAXAAAXXZZZXZ-ZXZZZ
+++++C++++C+CC++++++C++++++++++++++++++++++++++++++++++.++++++++.+++++++++++.++...+++.+....CCC                                 C
+CCCC CCCC C  CCCCCC CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC'CCCCCCCC'CCCCCCCCCCC'CC'''CCC'C''''
+                                                      X        X           X  XXX   X XXXX
+                                                      C        C           C  CCC   C CCCC
*""""+"++"++++""""+"++++""+"""+"+"""""""""""""""""""""""""""""""""""""""""-"-""""-"""-"""---"+M-XAAI=XXXZMZAAZMXI=IAAAAAAXXZZXZ-XXXZZ
+++++C+CC+CCCC++++C+CCCC++C+++C+C+++++++++++++++++++++++++++++++++++++++++.+.++++.+++.+++...+C C                               C
+CCCC C  C    CCCC C    CC CCC C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC'C'CCCC'CCC'CCC'''C
+                                                                         X X    X   X   XXX
+                                                                         C C    C   C   CCC
*""+++"++"""++"""""++""+++"++++"+""++"+""""""""+"+""""""""""""""-""""""""""""""""-"""""--------=-AAIAXXIXM==-M-==A=IAIIAIIXXXZZZZ-A-X
+++CCC+CC+++CC+++++CC++CCC+CCCC+C++CC+C++++++++C+C++++++++++++++.++++++++++++++++.+++++........CC         CCC CC                 C C
+CC   C  CCC  CCCCC  CC   C    C CC  C CCCCCCCC C CCCCCCCCCCCCCC'CCCCCCCCCCCCCCCC'CCCCC''''''''
+                                                               X                X     XXXXXXXX
+                                                               C                C     CCCCCCCC
*+"""""""+++"""++++"+"++""++=+"+"++++"+++++""""""""""""+""""""""""""""""""""""-"""""-"-"------"-+-ZZXAAAX-M==--==ZAAAAIAIAIZZXZ-XZZZZ
+C+++++++CCC+++CCCC+C+CC++CCCC+C+CCCC+CCCCC++++++++++++C++++++++++++++++++++++.+++++.+.+......+.CC       C CCCCCC              C
+ CCCCCCC   CCC    C C  CC    C C    C     CCCCCCCCCCCC CCCCCCCCCCCCCCCCCCCCCC'CCCCC'C'C''''''C'
+                                                                             X     X X XXXXXX X
+                                                                             C     C C CCCCCC C
*""""""""++"""""""+++++++++++++++++++"++"+"""""""""""+++"""""""""""""""""""""--"""-"""-""-"----"""=MZ-XXXZ-=+=ZX+--AXAIIAAAZXXXZZZZZZ
+++++++++CC+++++++CCCCCCCCCCCCCCCCCCC+CC+C+++++++++++CCC+++++++++++++++++++++..+++.+++.++.+....+++C  C    CCCC  C.C
+CCCCCCCC  CCCCCCC                   C  C CCCCCCCCCCC   CCCCCCCCCCCCCCCCCCCCC''CCC'CCC'CC'C''''CCC               '
+                                                                            XX   X   X  X XXXX                  X
+                                                                            CC   C   C  C CCCC                  C
*""""""""+++++""+"++++++++=+++++++++++++"++++++"+"+"+"+""+"""""""""""""""""""""""""""""""-"""""---"=MMZXZZ-Z="=AA-===IA=AIAAAXXXXXXXZ
+++++++++CCCCC++C+CCCCCCCCCCCCCCCCCCCCCC+CCCCCC+C+C+C+C++C+++++++++++++++++++++++++++++++.+++++...+C      C C+C  .C
+CCCCCCCC     CC C                      C      C C C C CC CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC'CCCCC'''C          C   '
+                                                                                        X     XXX               X
+                                                                                        C     CCC               C
*""""""++"+"""+++""+++++++++++++""++"+++++""+++++++++""""""""""""""-""""""--""""""-"""""""-""-"""""--""M-Z=MZ"""-M-=AI=+A==XXAXAXZ-XZ
+++++++CC+C+++CCC++CCCCCCCCCCCCC++CC+CCCCC++CCCCCCCCC++++++++++++++.++++++..++++++.+++++++.++.+++++..++ C C  +++C .C              C
+CCCCCC  C CCC   CC             CC  C     CC         CCCCCCCCCCCCCC'CCCCCC''CCCCCC'CCCCCCC'CC'CCCCC''CC      CCC  '
+                                                                  X      XX      X       X  X     XX             X
+                                                                  C      CC      C       C  C     CC             C
*""""+++"++""""""+"++++=+++++++++"+"+""+++++++"+++"++""+""""""""""""""""++=+"""""""""""-""""-""---"-"----++""+"-"+=-"+-IAIAAXAXXXXXZZ
+++++CCC+CC++++++C+CCCCCCCCCCCCCC+C+C++CCCCCCC+CCC+CC++C++++++++++++++++CCCC+++++++++++.++++.++...+.+....CC++C+.CCC.CCC
+CCCC   C  CCCCCC C              C C CC       C   C  CC CCCCCCCCCCCCCCCC    CCCCCCCCCCC'CCCC'CC'''C'C''''  CC C'B  'B
+                                                                                      X    X  XXX X XXXX      XH  XH
+                                                                                      C    C  CCC C CCCC      CX  CX
*""""++"""""""++"+++++++++++++++++++++"++++"+++++""""+++++""+""""+++++======++++"+""""""""""-""-"-"--"-------"----""-"=AXXX--XZZZXXZX
+++++CC+++++++CC+CCCCCCCCCCCCCCCCCCCCC+CCCC+CCCCC++++CCCCC++C++++CCCCCCCCCCCCCCC+C++++++++++.++.+.+..+.......+....++.CC    CC
+CCCC  CCCCCCC  C                     C    C     CCCC     CC CCCC               C CCCCCCCCCC'CC'C'C''C'''''''C''''CC'B
+                                                                                           X  X X XX XXXXXXX XXXX  XH
+                                                                                           C  C C CC CCCCCCC CCCC  CX
*"""++"+"+"+""++"+"+""+++"++++"+""""+"+++"++""+""""+"+""+""""+"+++++========++++++"""""""""-"""---"-"-""-------------""ZA-MM+"+MZZXXA
++++CC+C+C+C++CC+C+C++CCC+CCCC+C++++C+CCC+CC++C++++C+C++C++++C+CCCCCCCCCCCCCCCCCCC+++++++++.+++...+.+.++.............C+  C  C+C
+CCC  C C C CC  C C CC   C    C CCCC C   C  CC CCCC C CC CCCC C                   CCCCCCCCC'CCC'''C'C'CC'''''''''''''BC      C
+                                                                                          X   XXX X X  XXXXXXXXXXXXXH
+                                                                                          C   CCC C C  CCCCCCCCCCCCCX
*""+"+""++++""++""""+"+++"++++++"+""++++++""""+"+"+"+ +""++""+++====M==+++=++=+++""""""""""""-"--"---"-"""---"------"---MXZ=""---+MZX
+++C+C++CCCC++CC++++C+CCC+CCCCCC+C++CCCCCC++++C+C+C+C C++CC++CCCCCCC CCCCCCCCCCCC++++++++++++.+..+...+.+++...+......C...   C++...C
+CC C CC    CC  CCCC C   C      C CC      CCCC C C C   CC  CC                    CCCCCCCCCCCC'C''C'''C'CCC'''C''''''B'''    CC'''
+                                                                                            X XX XXX X   XXX XXXXXXHXXX      XXX
+                                                                                            C CC CCC C   CCC CCCCCCXCCC      CCC
*"""+""+"""""+++""""""+""+++++""++++""++++""""""++++"="++++===M=MM-MM===+=+++++++++""""""""-"-""--"-----"-"------------"-XZ-X--+--"-+
++++C++C+++++CCC++++++C++CCCCC++CCCC++CCCC++++++CCCC+C+CCCCCCC C  C  CCCCCCCCCCCCCC++++++++.+.++..+.....+.+............C.  C CCC..C.C
+CCC CC CCCCC   CCCCCC CC     CC    CC    CCCCCC    C C                            CCCCCCCC'C'CC''C'''''C'C''''''''''''B'       ''B'
+                                                                                          X X  XX XXXXX X XXXXXXXXXXXXHX       XXHX
+                                                                                          C C  CC CCCCC C CCCCCCCCCCCCXC       CCXC
*""++++++++"++"+"""++"+"""""""""++"++""+++""+"""""+++++++==MMZZZZZZ-MM=====+++++++++"""""""""""-"--"-"-"--""-------"---""+-I=I+AX-M"-
+++CCCCCCCC+CC+C+++CC+C+++++++++CC+CC++CCC++C+++++CCCCCCCCC        C  CCCCCCCCCCCCCC+++++++++++.+..+.+.+..++.......C...CCCC      C +.
+CC        C  C CCC  C CCCCCCCCC  C  CC   CC CCCCC                                  CCCCCCCCCCC'C''C'C'C''CC'''''''B'''BB          C'
+                                                                                              X XX X X XX  XXXXXXXHXXXHH           X
+                                                                                              C CC C C CC  CCCCCCCXCCCXX           C
*"+++++++++"++"+++"+""+"""-""""""""++"=+""+"+++"++++++==M--ZXXAIAIIXZMMMMM====+=====++++"+"""""""-""-"---------"-----------=I-1+1AIZZ
++CCCCCCCCC+CC+CCC+C++C+++.++++++++CC+CC++C+CCC+CCCCCCCC CC               CCCCCCCCCCCCCC+C+++++++.++.+.........+...........C
+C         C  C   C CC CCC'CCCCCCCC  C  CC C   C                                        C CCCCCCC'CC'C'''''''''C'''''''''''
+                         X                                                                      X  X XXXXXXXXX XXXXXXXXXXX
+                         C                                                                      C  C CCCCCCCCC CCCCCCCCCCC
*M-MMMMM=--MM-MMMM-MMMMMMM--M-MMMMMZ---Z-ZZ-ZZZXZXXXXI====1----  --1+1++1111++1++1++11++++1==+++++++11- -- -   ---
+ C     CCC  C    C       CC C      CCC C  C
1""---""""---------"--""""""""---ZX"----"""-"""""-------""""+"+++++=MMM---Z-XXXAIIIIAIAIIII==IIIIAIAIAIAIIAIIIAAAAAIAIAAXIAAAXAAXXAAA
+CC...CCCC.........C..CCCCCCCC..C  +....CCC.CCCCC.......++++C+CCCCCC   CCC C
+BB'''BBBB'''''''''B''BBBBBBBB''   C''''BBB'BBBBB'''''''CCCC C
+HHXXXHHHHXXXXXXXXXHXXHHHHHHHHXX    XXXXHHHXHHHHHXXXXXXX
+XXCCCXXXXCCCCCCCCCXCCXXXXXXXXCC    CCCCXXXCXXXXXCCCCCCC
*--"-""""""""""""--""-"""""""""-""""-""---"""-""""""""""""-"""""-"--"----""""""""""----""----""+++=MMMMMM-----ZXXXXXXXZXXXXXXAAXAAAAX
+..C.CCCCCCCCCCCC..CC.CCCCCCCCC.CCCC.CC...CCC.CCCCCCCCCCCC.CCCCC.C..C....CCCCCCCCCC....CC....++CCCC      CCCCC
+''B'BBBBBBBBBBBB''BB'BBBBBBBBB'BBBB'BB'''BBB'BBBBBBBBBBBB'BBBBB'B''B''''BBBBBBBBBB''''BB''''CC
+XXHXHHHHHHHHHHHHXXHHXHHHHHHHHHXHHHHXHHXXXHHHXHHHHHHHHHHHHXHHHHHXHXXHXXXXHHHHHHHHHHXXXXHHXXXX
+CCXCXXXXXXXXXXXXCCXXCXXXXXXXXXCXXXXCXXCCCXXXCXXXXXXXXXXXXCXXXXXCXCCXCCCCXXXXXXXXXXCCCCXXCCCC
*MM====""-"""""""-"-"-""-"--""""""-"-"""---""-"""""""""""""""-"-"---""--"""-"""""""""""""""""-"""""-"-"""-"""---------""""====M==MMMM
+  CCCC++.CCCCCCC.C.C.CC.C..CCCCCC.C.CCC...CC.CCCCCCCCCCCCCCC.C.C...C+..CCC.CCCCCCCCCCCCCCCCC.CCCCC.C.CCC.CCC.........++++CCCC CC
+      CC'BBBBBBB'B'B'BB'B''BBBBBB'B'BBB'''BB'BBBBBBBBBBBBBBB'B'B'''BC''BBB'BBBBBBBBBBBBBBBBB'BBBBB'B'BBB'BBB'''''''''CCCC
+        XHHHHHHHXHXHXHHXHXXHHHHHHXHXHHHXXXHHXHHHHHHHHHHHHHHHXHXHXXXH XXHHHXHHHHHHHHHHHHHHHHHXHHHHHXHXHHHXHHHXXXXXXXXX
+        CXXXXXXXCXCXCXXCXCCXXXXXXCXCXXXCCCXXCXXXXXXXXXXXXXXXCXCXCCCX CCXXXCXXXXXXXXXXXXXXXXXCXXXXXCXCXXXCXXXCCCCCCCCC
*Z-ZZZZZ---M="-"""""""""-"-""""""""""""""-""-""-"""""""-""""-"-""""-""---""-"""""""""""""""""-"""""-""""-"""""""""""""""""-""""""-"--
+ C     CCC C+.CCCCCCCCC.C.CCCCCCCCCCCCCC.CC.CC.CCCCCCC.CCCC.C.CCCC.CC...CC.CCCCCCCCCCCCCCCCC.CCCCC.CCCC.CCCCCCCCCCCCCCCCC.CCCCCC.C..
+            C'BBBBBBBBB'B'BBBBBBBBBBBBBB'BB'BB'BBBBBBB'BBBB'B'BBBB'BB'''BB'BBBBBBBBBBBBBBBBB'BBBBB'BBBB'BBBBBBBBBBBBBBBBB'BBBBBB'B''
+             XHHHHHHHHHXHXHHHHHHHHHHHHHHXHHXHHXHHHHHHHXHHHHXHXHHHHXHHXXXHHXHHHHHHHHHHHHHHHHHXHHHHHXHHHHXHHHHHHHHHHHHHHHHHXHHHHHHXHXX
+             CXXXXXXXXXCXCXXXXXXXXXXXXXXCXXCXXCXXXXXXXCXXXXCXCXXXXCXXCCCXXCXXXXXXXXXXXXXXXXXCXXXXXCXXXXCXXXXXXXXXXXXXXXXXCXXXXXXCXCC
*Z--ZZ---Z-ZXXAXM"--"""""--"-""--"""-"-"""--"--""-""-"""---""-----""--""--"""""""""--""-"""""""""-""""--""""-"---"""""""-""-"""""""""
+ CC  CCC C      +..CCCCC..C.+C..CCC.C.CCC..C..CC.CC.CCC...CC.....CC..C+..CCCCCCCCC..CC.CCCCCCCCC.CCCC..CCCC.C...CCCCCCC.CC.CCCCCCCCC
+                C''BBBBB''B'CB''BBB'B'BBB''B''BB'BB'BBB'''BB'''''BB''BC''BBBBBBBBB''BB'BBBBBBBBB'BBBB''BBBB'B'''BBBBBBB'BB'BBBBBBBBB
+                 XXHHHHHXXHX HXXHHHXHXHHHXXHXXHHXHHXHHHXXXHHXXXXXHHXXH XXHHHHHHHHHXXHHXHHHHHHHHHXHHHHXXHHHHXHXXXHHHHHHHXHHXHHHHHHHHH
+                 CCXXXXXCCXC XCCXXXCXCXXXCCXCCXXCXXCXXXCCCXXCCCCCXXCCX CCXXXXXXXXXCCXXCXXXXXXXXXCXXXXCCXXXXCXCCCXXXXXXXCXXCXXXXXXXXX
*-----Z-M-------ZXXZ-+"---"-"--""""""-"""-""""""--"-"-"""-""-"-""-"--"--"""""""""""""-""""""""""""""""""""""""""""""""""""""""""""--"
+CCCCC C CCCCCCC    CC+...C.C..CCCCCC.CCC.CCCCCC..C.C.CCC.CC.C.CC.C..C..CCCCCCCCCCCCC.CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC..C
+                     C'''B'B''BBBBBB'BBB'BBBBBB''B'B'BBB'BB'B'BB'B''B''BBBBBBBBBBBBB'BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB''B
+                      XXXHXHXXHHHHHHXHHHXHHHHHHXXHXHXHHHXHHXHXHHXHXXHXXHHHHHHHHHHHHHXHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHXXH
+                      CCCXCXCCXXXXXXCXXXCXXXXXXCCXCXCXXXCXXCXCXXCXCCXCCXXXXXXXXXXXXXCXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXCCX
*-----------Z------ZXXAZ-="-""-"-"""-"""-"--"--"-"--""--"-"""""""""-""-----""""""--"---"-"""-"-"""--"""""""-"-"-"""""-"-""""""--""-""
+CCCCCCCCCCC CCCCCC     CC+.CC.C.CCC.CCC.C..C..C.C..CC..C.CCCCCCCCC.CC.....CCCCCC..C...C.CCC.C.CCC..CCCCCCC.C.C.CCCCC.C.CCCCCC..CC.CC
+                         C'BB'B'BBB'BBB'B''B''B'B''BB''B'BBBBBBBBB'BB'''''BBBBBB''B'''B'BBB'B'BBB''BBBBBBB'B'B'BBBBB'B'BBBBBB''BB'BB
+                          XHHXHXHHHXHHHXHXXHXXHXHXXHHXXHXHHHHHHHHHXHHXXXXXHHHHHHXXHXXXHXHHHXHXHHHXXHHHHHHHXHXHXHHHHHXHXHHHHHHXXHHXHH
+                          CXXCXCXXXCXXXCXCCXCCXCXCCXXCCXCXXXXXXXXXCXXCCCCCXXXXXXCCXCCCXCXXXCXCXXXCCXXXXXXXCXCXCXXXXXCXCXXXXXXCCXXCXX
*-------------M-MZ---ZZXXXXX-"-"""""-""""""--"---""""-"""-"-""""""--""-"""""""""-"-"-"""""""-"-""""""""""-""""""""-"""""""""""""""""-
+CCCCCCCCCCCCC C  CCC       C+.CCCCC.CCCCCC..C...CCCC.CCC.C.CCCCCC..CC.CCCCCCCCC.C.C.CCCCCCC.C.CCCCCCCCCC.CCCCCCCC.CCCCCCCCCCCCCCCCC.
+                            C'BBBBB'BBBBBB''B'''BBBB'BBB'B'BBBBBB''BB'BBBBBBBBB'B'B'BBBBBBB'B'BBBBBBBBBB'BBBBBBBB'BBBBBBBBBBBBBBBBB'
+                             XHHHHHXHHHHHHXXHXXXHHHHXHHHXHXHHHHHHXXHHXHHHHHHHHHXHXHXHHHHHHHXHXHHHHHHHHHHXHHHHHHHHXHHHHHHHHHHHHHHHHHX
+                             CXXXXXCXXXXXXCCXCCCXXXXCXXXCXCXXXXXXCCXXCXXXXXXXXXCXCXCXXXXXXXCXCXXXXXXXXXXCXXXXXXXXCXXXXXXXXXXXXXXXXXC
*-------M-----M-ZZ-----Z-ZXXXIAM--"""#"-""""-"-""""-"""-"""""-""-"----"-""-"""""""""-""""""""-""""-""""""-"""-"-""-"--"--""""-"""""--
+CCCCCCC CCCCC C  CCCCC C       ..CCCXC.CCCC.C.CCCC.CCC.CCCCC.+C.C....C.CC.CCCCCCCCC.CCCCCCCC.CCCC.CCCCCC.CCC.C.CC.C..C..CCCC.CCCCC..
+                               ''BBB$B'BBBB'B'BBBB'BBB'BBBBB'CB'B''''B'BB'BBBBBBBBB'BBBBBBBB'BBBB'BBBBBB'BBB'B'BB'B''B''BBBB'BBBBB''
+                               XXHHH_HXHHHHXHXHHHHXHHHXHHHHHX HXHXXXXHXHHXHHHHHHHHHXHHHHHHHHXHHHHXHHHHHHXHHHXHXHHXHXXHXXHHHHXHHHHHXX
+                               CCXXX&XCXXXXCXCXXXXCXXXCXXXXXC XCXCCCCXCXXCXXXXXXXXXCXXXXXXXXCXXXXCXXXXXXCXXXCXCXXCXCCXCCXXXXCXXXXXCC
*-M--------M-Z-M---Z-XZ-ZZZZZXXAAX="-""-"""""""-""""-""""""""""""--"""""""-""-"""""-"-""""""""---""-""-"""""""""""""-"""--""-""""--""
+C CCCCCCCC C C CCC C  C          C+.CC.CCCCCCC.CCCC.CCCCCCCCCCCC..CCCCCCC.CC.CCCCC.C.CCCCCCCC...CC.CC.CCCCCCCCCCCCC.CCC..CC.CCCC..CC
+                                  C'BB'BBBBBBB'BBBB'BBBBBBBBBBBB''BBBBBBB'BB'BBBBB'B'BBBBBBBB'''BB'BB'BBBBBBBBBBBBB'BBB''BB'BBBB''BB
+                                   XHHXHHHHHHHXHHHHXHHHHHHHHHHHHXXHHHHHHHXHHXHHHHHXHXHHHHHHHHXXXHHXHHXHHHHHHHHHHHHHXHHHXXHHXHHHHXXHH
+                                   CXXCXXXXXXXCXXXXCXXXXXXXXXXXXCCXXXXXXXCXXCXXXXXCXCXXXXXXXXCCCXXCXXCXXXXXXXXXXXXXCXXXCCXXCXXXXCCXX
*--------------------Z--Z-ZZZZXXXXAA-M""""""""-""-""--"""""""-"""-""""""""-"""""""""""-""-""""-""""-"""""""""""""--"-""--""""-"""-"""
+CCCCCCCCCCCCCCCCCCCC CC C          C +CCCCCCC.CC.CC..CCCCCCC.CCC.CCCCCCCC.CCCCCCCCCCC.CC.CCCC.CCCC.CCCCCCCCCCCCC..C.CC..CCCC.CCC.CCC
+                                     CBBBBBBB'BB'BB''BBBBBBB'BBB'BBBBBBBB'BBBBBBBBBBB'BB'BBBB'BBBB'BBBBBBBBBBBBB''B'BB''BBBB'BBB'BBB
+                                      HHHHHHHXHHXHHXXHHHHHHHXHHHXHHHHHHHHXHHHHHHHHHHHXHHXHHHHXHHHHXHHHHHHHHHHHHHXXHXHHXXHHHHXHHHXHHH
+                                      XXXXXXXCXXCXXCCXXXXXXXCXXXCXXXXXXXXCXXXXXXXXXXXCXXCXXXXCXXXXCXXXXXXXXXXXXXCCXCXXCCXXXXCXXXCXXX
*-------------Z-----Z---Z--ZZZ-ZXZZXXIAZ+""""--""-""""-""""-""""-"""-""""""""""""""""""""-"""""""""""""""--"""""""""""""-""""""""--"-
+CCCCCCCCCCCCC CCCCC CCC CC   C         CCCCC..CC.CCCC.CCCC.CCCC.CCC.CCCCCCCCCCCCCCCCCCCC.CCCCCCCCCCCCCCC..CCCCCCCCCCCCC.CCCCCCCC..C.
+                                        BBBB''BB'BBBB'BBBB'BBBB'BBB'BBBBBBBBBBBBBBBBBBBB'BBBBBBBBBBBBBBB''BBBBBBBBBBBBB'BBBBBBBB''B'
+                                        HHHHXXHHXHHHHXHHHHXHHHHXHHHXHHHHHHHHHHHHHHHHHHHHXHHHHHHHHHHHHHHHXXHHHHHHHHHHHHHXHHHHHHHHXXHX
+                                        XXXXCCXXCXXXXCXXXXCXXXXCXXXCXXXXXXXXXXXXXXXXXXXXCXXXXXXXXXXXXXXXCCXXXXXXXXXXXXXCXXXXXXXXCCXC
*--Z-Z--Z-------Z-Z-X---ZZZ---ZZZXXZXZXI===-"--""""-"""------""-""-"--"-"-""----"-"--"--"-""-"""---"-""------"---"""---"""--""--"----
+CC C CC CCCCCCC C C CCC   CCC            C.C..CCCC.CC+......CC.CC.C..C.C.CC....C.C..C..C.CC.CCC...C.CC......C...CCC...CCC..CC..C....
+                                          'B''BBBB'BBC''''''BB'BB'B''B'B'BB''''B'B''B''B'BB'BBB'''B'BB''''''B'''BBB'''BBB''BB''B''''
+                                          XHXXHHHHXHH XXXXXXHHXHHXHXXHXHXHHXXXXHXHXXHXXHXHHXHHHXXXHXHHXXXXXXHXXXHHHXXXHHHXXHHXXHXXXX
+                                          CXCCXXXXCXX CCCCCCXXCXXCXCCXCXCXXCCCCXCXCCXCCXCXXCXXXCCCXCXXCCCCCCXCCCXXXCCCXXXCCXXCCXCCCC
*--ZZZZZ--------Z-ZZ---ZZZ-----XXZZZXXAAXA=IZ+"""""-""-"""--""-"-"--"""""""-----""--"--"-"--""-""-""""-"--"-""""""--"--""-"---"-"-"--
+CC     CCCCCCCC C  CCC   CCCCC              CCCCCC.CC.CCC..CC.C.C..CCCCCCC.....CC..C..C.C..CC.CC.CCCC.C..C.CCCCCC..C..CC.C...C.C.C..
+                                             BBBBB'BB'BBB''BB'B'B''BBBBBBB'''''BB''B''B'B''BB'BB'BBBB'B''B'BBBBBB''B''BB'B'''B'B'B''
+                                             HHHHHXHHXHHHXXHHXHXHXXHHHHHHHXXXXXHHXXHXXHXHXXHHXHHXHHHHXHXXHXHHHHHHXXHXXHHXHXXXHXHXHXX
+                                             XXXXXCXXCXXXCCXXCXCXCCXXXXXXXCCCCCXXCCXCCXCXCCXXCXXCXXXXCXCCXCXXXXXXCCXCCXXCXCCCXCXCXCC
*-Z-ZZZZZ--Z-ZZZZZZZ---ZZ--Z-ZZ--ZZZXZXXXAZAIIX=-""-""""-""-"-""-"--"""""""""--""""""--"-""-""-"--"--"--"""--""""-----"""-"""----"--"
+C C     CC C       CCC  CC C  CC              C.CC.CCCC.CC.C.CC.C..CCCCCCCCC..CCCCCC..C.CC.CC.C..C..C..CCC..CCCC.....CCC.CCC....C..+
+                                               'BB'BBBB'BB'B'BB'B''BBBBBBBBB''BBBBBB''B'BB'BB'B''B''B''BBB''BBBB'''''BBB'BBB''''B''C
+                                               XHHXHHHHXHHXHXHHXHXXHHHHHHHHHXXHHHHHHXXHXHHXHHXHXXHXXHXXHHHXXHHHHXXXXXHHHXHHHXXXXHXX
+                                               CXXCXXXXCXXCXCXXCXCCXXXXXXXXXCCXXXXXXCCXCXXCXXCXCCXCCXCCXXXCCXXXXCCCCCXXXCXXXCCCCXCC
*----ZZZ----Z--ZZZX-Z-ZZ--Z--ZZZ-ZZZZ-ZZZZZAXAAII--"""-""""-"-""""""-"""-""--"--"""""-"""-"-""""-""""""-""""-""-"----"""-""-"""-"""--
+CCCC   CCCC CC    C C  CC CC   C    C           C.CCC.+CCC.C.CCCCCC.CCC.CC..C..CCCCC.CCC.C.CCCC.CCCCCC.CCCC.CC.C....CCC.CC.CCC.CCC..
+                                                 'BBB'CBBB'B'BBBBBB'BBB'BB''B''BBBBB'BBB'B'BBBB'BBBBBB'BBBB'BB'B''''BBB'BB'BBB'BBB''
+                                                 XHHHX HHHXHXHHHHHHXHHHXHHXXHXXHHHHHXHHHXHXHHHHXHHHHHHXHHHHXHHXHXXXXHHHXHHXHHHXHHHXX
+                                                 CXXXC XXXCXCXXXXXXCXXXCXXCCXCCXXXXXCXXXCXCXXXXCXXXXXXCXXXXCXXCXCCCCXXXCXXCXXXCXXXCC
*ZZX-ZZZZZ-ZZZZXZZZXXZZZZZZ--ZXZZZZZ-----ZZXXXXXI+-----"---""--"-"-"-"-"--"-----"---"-""-""-""""-""--"""---""-"--"-"""---------""""""
+   C     C                CC       CCCCC          C...C...CC..C.C.C.C.C..C.....C...C.CC.CC.CCCC.CC..CCC...CC.C..C.CCC.........CCCCCC
+                                                   '''B'''BB''B'B'B'B'B''B'''''B'''B'BB'BB'BBBB'BB''BBB'''BB'B''B'BBB'''''''''BBBBBB
+                                                   XXXHXXXHHXXHXHXHXHXHXXHXXXXXHXXXHXHHXHHXHHHHXHHXXHHHXXXHHXHXXHXHHHXXXXXXXXXHHHHHH
+                                                   CCCXCCCXXCCXCXCXCXCXCCXCCCCCXCCCXCXXCXXCXXXXCXXCCXXXCCCXXCXCCXCXXXCCCCCCCCCXXXXXX
*-XZZZZZZZZZZZZZZZ-ZXZZXXZ-Z-ZZ-Z-Z-Z-X-Z-ZZXZZXXXA=+M+-""""""-""""--""--""""--"""""""""""--""--M==M+-""--""-""-"""--"--""--"-"---"""
+C                C       C C  C C C C C C            C.CCCCCC.CCCC..CC..CCCC..CCCCCCCCCCC..CC.. CC C.CC..CC.CC.CCC..C..CC..C.C...CCC
+                                                      'BBBBBB'BBBB''BB''BBBB''BBBBBBBBBBB''BB''     'BB''BB'BB'BBB''B''BB''B'B'''BBB
+                                                      XHHHHHHXHHHHXXHHXXHHHHXXHHHHHHHHHHHXXHHXX     XHHXXHHXHHXHHHXXHXXHHXXHXHXXXHHH
+                                                      CXXXXXXCXXXXCCXXCCXXXXCCXXXXXXXXXXXCCXXCC     CXXCCXXCXXCXXXCCXCCXXCCXCXCCCXXX
*ZZ-ZZZZZZZZZZ-ZZZZZXXZZZXZXZXZZZZZZZZXZ-ZXZXZZXXXXXA=I-+"""""-"""-""""""""""--"----"----"--""----""-"""--""-""---""-------""""-"--""
+  C          C                         C              CCCCCCC.CCC.CCCCCCCCCC..C....C....C..CC....CC.CCC..C+.CC...CC.......CCCC.C..CC
+                                                        BBBBB'BBB'BBBBBBBBBB''B''''B''''B''BB''''BB'BBB''BC'BB'''BB'''''''BBBB'B''BB
+                                                        HHHHHXHHHXHHHHHHHHHHXXHXXXXHXXXXHXXHHXXXXHHXHHHXXH XHHXXXHHXXXXXXXHHHHXHXXHH
+                                                        XXXXXCXXXCXXXXXXXXXXCCXCCCCXCCCCXCCXXCCCCXXCXXXCCX CXXCCCXXCCCCCCCXXXXCXCCXX
*ZZZZZZXZZ-ZZX-ZZZZZZXZZZZZZXXXXXXZZZXZZZZZZZZXXXZXXXXAI=X""""""""""-""""""""--""""-""-"----"""-"-"""""--"--"-""--"""--""-"""""""-"-"
+         C   C                                           +CCCCCCCCC.CCCCCCCC..CCCC.CC.C....CCC.C.CCCCC..+C.C.CC..CCC..CC.CCCCCCC.C.C
+                                                         CBBBBBBBBB'BBBBBBBB''BBBB'BB'B''''BBB'B'BBBBB''C 'B'BB''BBB''BB'BBBBBBB'B'B
+                                                          HHHHHHHHHXHHHHHHHHXXHHHHXHHXHXXXXHHHXHXHHHHHXX  XHXHHXXHHHXXHHXHHHHHHHXHXH
+                                                          XXXXXXXXXCXXXXXXXXCCXXXXCXXCXCCCCXXXCXCXXXXXCC  CXCXXCCXXXCCXXCXXXXXXXCXCX
*AXZXZZXXZZXXZZZXZXXZ-ZZXXZZXXXXXXXXXZXZZZ-ZXZZXXZZXXAXAI+1="""-"""--"---"""-""--""""""""-""--""-""-""-"-"""-"""----"-"""-"-""-"-"--"
+                    C                    C                CCCC.CCC..C...CCC.CC..CCCCCCCC.CC..CC.CC.CC.C.CCC.CCC....C.CCC.C.CC.C.C..C
+                                                           BBB'BBB''B'''BBB'BB''BBBBBBBB'BB''BB'BB'BB'B'BBB'BBB''''B'BBB'B'BB'B'B''B
+                                                           HHHXHHHXXHXXXHHHXHHXXHHHHHHHHXHHXXHHXHHXHHXHXHHHXHHHXXXXHXHHHXHXHHXHXHXXH
+                                                           XXXCXXXCCXCCCXXXCXXCCXXXXXXXXCXXCCXXCXXCXXCXCXXXCXXXCCCCXCXXXCXCXXCXCXCCX
*ZXXXXXZZXXAZZXZZXXZZXZZ-ZXZZXXXXXXXZZZZZZZXZZZXXZZXZXXAAAI+I=---""""----""-"-""--""-"--"--""-"-"-"--"""-""--"-"--"-"--""--""-"""""--
+                       C                                    C...CCCC....CC.C.CC..CC.C..C..CC.C.C.C..CCC.CC..C.C..C.C..CC..CC.CCCCC..
+                                                             '''BBBB''''BB'B'BB''BB'B''B''BB'B'B'B''BBB'BB''B'B''B'B''BB''BB'BBBBB''
+                                                             XXXHHHHXXXXHHXHXHHXXHHXHXXHXXHHXHXHXHXXHHHXHHXXHXHXXHXHXXHHXXHHXHHHHHXX
+                                                             CCCXXXXCCCCXXCXCXXCCXXCXCCXCCXXCXCXCXCCXXXCXXCCXCXCCXCXCCXXCCXXCXXXXXCC
*XZXXXAXXXXXXXXXZXZXXZXZZZXXZZZXXXZXXZZZZXZXZXXXXXXZXXXXXAAA=+X+-"-""-""-"""""-""--"""-"""""""""""--""""--"-"""""-""""""----""-"-""""
+                                                              C.C.CC.CC.CCCCC.CC..CCC.CCCCCCCCCCC..CCCC..C.CCCCC.CCCCCC....CC.C.CCCC
+                                                               'B'BB'BB'BBBBB'BB''BBB'BBBBBBBBBBB''BBBB''B'BBBBB'BBBBBB''''BB'B'BBBB
+                                                               XHXHHXHHXHHHHHXHHXXHHHXHHHHHHHHHHHXXHHHHXXHXHHHHHXHHHHHHXXXXHHXHXHHHH
+                                                               CXCXXCXXCXXXXXCXXCCXXXCXXXXXXXXXXXCCXXXXCCXCXXXXXCXXXXXXCCCCXXCXCXXXX
*XXXXXAXAXXXXXXXXXXXXXXXXZXXXZXXZXXZXZZZXZZZXXXXZZZXXXXXAXXAAI==M-"""--"""""""-""---"-""-"""""--""--"-"-"""-""--"-"--""-"-"--"-----""
+                                                                .CCC..CCCCCCC.CC...C.CC.CCCCC..CC..C.C.+CC.CC..C.C..CC.C.C..C.....CC
+                                                                'BBB''BBBBBBB'BB'''B'BB'BBBBB''BB''B'B'CBB'BB''B'B''BB'B'B''B'''''BB
+                                                                XHHHXXHHHHHHHXHHXXXHXHHXHHHHHXXHHXXHXHX HHXHHXXHXHXXHHXHXHXXHXXXXXHH
+                                                                CXXXCCXXXXXXXCXXCCCXCXXCXXXXXCCXXCCXCXC XXCXXCCXCXCCXXCXCXCCXCCCCCXX
*ZZXXXXXZXXXXAAAXXZXXXXXXXXXZXZZXXZZX-XZXA-XXXXZZX-AZXXXXZAXAAAI-X--""-"""""""""""""""-""""-""""""""-""""""-""-"-"-""""""-"""""-""+""
+                                    C    C       C               ..CC.CCCCCCCCCCCCCCC.CCCC.CCCCCCCC.CCCCCC.CC.C.C.CCCCCC.CCCCC.CCCCC
+                                                                 ''BB'BBBBBBBBBBBBBBB'BBBB'BBBBBBBB'BBBBBB'BB'B'B'BBBBBB'BBBBB'BB BB
+                                                                 XXHHXHHHHHHHHHHHHHHHXHHHHXHHHHHHHHXHHHHHHXHHXHXHXHHHHHHXHHHHHXHH HH
+                                                                 CCXXCXXXXXXXXXXXXXXXCXXXXCXXXXXXXXCXXXXXXCXXCXCXCXXXXXXCXXXXXCXX XX
*XXXXXXXXXXXAXAXAXAXXXXXXXZXXXXZZXZZZXXXZXXZZXXXXZZXXXXXXAXXXAAAA+=M-""""""""-"-""-""""-"""""""""--""""""-""--"-""""""--"---"""""""-"
+                                                                   .CCCCCCCC.C.CC.CCCC.CCCCCCCCC..CCCCCC.CC..C.CCCCCC..C...CCCCCCC.C
+                                                                   'BBBBBBBB'B'BB'BBBB'BBBBBBBBB''BBBBBB'BB''B'BBBBBB''B'''BBBBBBB'B
+                                                                   XHHHHHHHHXHXHHXHHHHXHHHHHHHHHXXHHHHHHXHHXXHXHHHHHHXXHXXXHHHHHHHXH
+                                                                   CXXXXXXXXCXCXXCXXXXCXXXXXXXXXCCXXXXXXCXXCCXCXXXXXXCCXCCCXXXXXXXCX
*AXXXXXXAXAAAAAAAXXXXXAAXXXXXXXZXZZXZXZZXXZZZXXZXZXXZXXXXXXZXXAAAI=+X-""""--"---"--""""-""--""""--"""-"""--"-""--""""-"""-"""""""""""
+                                                                    .CCCC..C...C..CCCC.CC..CCCC..CCC.CCC..C.CC..CCCC.CCC.CCCCCCCCCCC
+                                                                    'BBBB''B'''B''BBBB'BB''BBBB''BBB'BBB''B'BB''BBBB'BBB'BBBBBBBBBBB
+                                                                    XHHHHXXHXXXHXXHHHHXHHXXHHHHXXHHHXHHHXXHXHHXXHHHHXHHHXHHHHHHHHHHH
+                                                                    CXXXXCCXCCCXCCXXXXCXXCCXXXXCCXXXCXXXCCXCXXCCXXXXCXXXCXXXXXXXXXXX
*AAXXAAAXAAXXAAAAIIXAAAXXXXXXXXXXXXXXXXXXZXZXXXXZZZXZXZXXXXXXAXXAAAI=I+-""-"-"-""---"---""--"---"-"-"""""""-"-"""""""""""---"""""""""
+                                                                     C.CC.C.C.CC...C...CC..C...C.C.CCCCCCC.C.CCCCCCCCCCC...CCCCCCCCC
+                                                                      'BB'B'B'BB'''B'''BB''B'''B'B'BBBBBBB'B'BBBBBBBBBBB'''BBBBBBBBB
+                                                                      XHHXHXHXHHXXXHXXXHHXXHXXXHXHXHHHHHHHXHXHHHHHHHHHHHXXXHHHHHHHHH
+                                                                      CXXCXCXCXXCCCXCCCXXCCXCCCXCXCXXXXXXXCXCXXXXXXXXXXXCCCXXXXXXXXX
*XXAAAAAXXXAXXXXAAAIIIAXIIXAXXXXAXXXXZXXAXXXZZZZXXXXXXZZXXXAAXXXXAAIA++-""-"""""--""-"-"--"--"--"""""---"--""-""""---""--""-""-"""-"-
+                                                                      CCC.CCCCC..CC.C.C..C..C..CCCCC...C..CC.CCCC...CC..CC.CC.CCC.C.
+                                                                       BB'BBBBB''BB'B'B''B''B''BBBBB'''B''BB'BBBB'''BB''BB'BB'BBB'B'
+                                                                       HHXHHHHHXXHHXHXHXXHXXHXXHHHHHXXXHXXHHXHHHHXXXHHXXHHXHHXHHHXHX
+                                                                       XXCXXXXXCCXXCXCXCCXCCXCCXXXXXCCCXCCXXCXXXXCCCXXCCXXCXXCXXXCXC
*AAXAXXAAAAAAXAAAAAAIAAXAAAAAAXAXXXXXXXXXXXZZXXXXXAXXZXZXXXXXAXAAAIIII++Z-"""-""-""-""---"-"----""------""---"--"---"--"-"""----""---
+                                                                        .CCC.CC.CC.CC...C.C....CC......CC...C..C...C..C.CCC....CC...
+                                                                        'BBB'BB'BB'BB'''B'B''''BB''''''BB'''B''B'''B''B'BBB''''BB'''
+                                                                        XHHHXHHXHHXHHXXXHXHXXXXHHXXXXXXHHXXXHXXHXXXHXXHXHHHXXXXHHXXX
+                                                                        CXXXCXXCXXCXXCCCXCXCCCCXXCCCCCCXXCCCXCCXCCCXCCXCXXXCCCCXXCCC
*AAAAAAAXAXXXXAAAAAAAAAAXAAAXIAAAAAAXXAXXAXXXXXXXXXZXXXXZXXXXXXAAAIAI=++1X=-"-------------------"---------------------------"--"-"---
+                                                                         C.C...................C...........................C..C.C...
+                                                                          'B'''''''''''''''''''B'''''''''''''''''''''''''''B''B'B'''
+                                                                          XHXXXXXXXXXXXXXXXXXXXHXXXXXXXXXXXXXXXXXXXXXXXXXXXHXXHXHXXX
+                                                                          CXCCCCCCCCCCCCCCCCCCCXCCCCCCCCCCCCCCCCCCCCCCCCCCCXCCXCXCCC
*AAAAAAXAAAAXAAAAIAAIAIAAAAAXAAAAAAXXXXXZXXXXZZXZZXXXZXXZXXXXXXXXAAA==++=+=+"""""-+"""-""----"-""-"------"--"-"----""-"-----"--""-"""
+                                                                          CCCCCC.CCCC.CC....C.CC.C......C..C.C....CC.C.....C..CC.CCC
+                                                                           BBBBB' BBB'BB''''B'BB'B''''''B''B'B''''BB'B'''''B''BB'BBB
+                                                                           HHHHHX HHHXHHXXXXHXHHXHXXXXXXHXXHXHXXXXHHXHXXXXXHXXHHXHHH
+                                                                           XXXXXC XXXCXXCCCCXCXXCXCCCCCCXCCXCXCCCCXXCXCCCCCXCCXXCXXX
*IAAIAIAAIAIIAAAIAXAI+ZIAAIIAAAAAAXXXXXXZAAXXXXAXXZXXXXXXXXXAXXXXAAIIII==++1-""""""-""""--"-"""-"--"""--"--"--"-"---"-"-"-------""-""
+                    C                                                      CCCCCCC.CCCC..C.CCC.C..CCC..C..C..C.C...C.C.C.......CC.CC
+                                                                            BBBBBB'BBBB''B'BBB'B''BBB''B''B''B'B'''B'B'B'''''''BB'BB
+                                                                            HHHHHHXHHHHXXHXHHHXHXXHHHXXHXXHXXHXHXXXHXHXHXXXXXXXHHXHH
+                                                                            XXXXXXCXXXXCCXCXXXCXCCXXXCCXCCXCCXCXCCCXCXCXCCCCCCCXXCXX
*AAIAIIAAIAAIAIIIAI+=""IIAIAAAAIAAAAAXAXXXXXXAIXXXXXXZXXXXXXAXAXAAIIIII==+++1--""""--"----"--"---"-"--""----""--""--------"-"---""-"-
+                   CC+                                                      C.CCCC..C....C..C...C.C..CC....CC..CC........C.C...CC.C.
+                    BC                                                       'BBBB''B''''B''B'''B'B''BB''''BB''BB''''''''B'B'''BB'B'
+                    H                                                        XHHHHXXHXXXXHXXHXXXHXHXXHHXXXXHHXXHHXXXXXXXXHXHXXXHHXHX
+                    X                                                        CXXXXCCXCCCCXCCXCCCXCXCCXXCCCCXXCCXXCCCCCCCCXCXCCCXXCXC
*AAIAIAAAAIIIAAIII=+""=IIIAAIIIIAAIAAAAXXXXXXXXAAXXXXXXXXXXXXXAAAAIIIIII=+=++=A""""-"--""----"--""--"---""---"--""---------""-----"-"
+                   +CC                                                        +CCC.C..CC....C..CC..C...CC...C..CC.........CC.....C.C
+                   CB                                                         CBBB'B''BB''''B''BB''B'''BB'''B''BB'''''''''BB'''''B'B
+                    H                                                          HHHXHXXHHXXXXHXXHHXXHXXXHHXXXHXXHHXXXXXXXXXHHXXXXXHXH
+                    X                                                          XXXCXCCXXCCCCXCCXXCCXCCCXXCCCXCCXXCCCCCCCCCXXCCCCCXCX
*AAIIIAAAAIIAIIIIIII-"XIIIII=II=IIAAAAAAXAXXXXXA=XXXXXXXXXXAXXAAAAAIAI+I==I=+++A+""-""-""""""""-""---"-""-"-"""-""--"-----------"""-"
+                   .C                                                          CCC.CC.CCCCCCCC.CC...C.CC.C.CCC.CC..C...........CCC.C
+                   'B                                                           BB'BB'BBBBBBBB'BB'''B'BB'B'BBB'BB''B'''''''''''BBB'B
+                   XH                                                           HHXHHXHHHHHHHHXHHXXXHXHHXHXHHHXHHXXHXXXXXXXXXXXHHHXH
+                   CX                                                           XXCXXCXXXXXXXXCXXCCCXCXXCXCXXXCXXCCXCCCCCCCCCCCXXXCX
*AAAIIIIIII=IIIIII+-"-==I=II==+AII=AIAIAAAXAAXXAIXXXXXXXXXXAXAAAIIAIAAIII==+==+1I----"""----""-""----"-""""--""-""-------------------
+                  CC.                                                           ....CCC....CC.CC....C.CCCC..CC.CC...................
+                   B'                                                           ''''BBB''''BB'BB''''B'BBBB''BB'BB'''''''''''''''''''
+                   HX                                                           XXXXHHHXXXXHHXHHXXXXHXHHHHXXHHXHHXXXXXXXXXXXXXXXXXXX
+                   XC                                                           CCCCXXXCCCCXXCXXCCCCXCXXXXCCXXCXXCCCCCCCCCCCCCCCCCCC
*IIIIIIIIAIIIIIII=1""-==IIII+Z-""=II=IAAAAIAXXXXAXXAXXXXXXXAXAAAIAIAAIA=III===-=+I+"-""""-""""""-"----------""""""-----------"""---""
+                  +CC        .CCC                                                CC.CCCC.CCCCCC.C..........CCCCCC...........CCC...CC
+                  CB         'BB                                                  B'BBBB'BBBBBB'B''''''''''BBBBBB'''''''''''BBB'''BB
+                   H         XHH                                                  HXHHHHXHHHHHHXHXXXXXXXXXXHHHHHHXXXXXXXXXXXHHHXXXHH
+                   X         CXX                                                  XCXXXXCXXXXXXCXCCCCCCCCCCXXXXXXCCCCCCCCCCCXXXCCCXX
*IIIIIIIIIIIII=I=++-"A+I=I=+1-"""""MZI=AAIAXAAXAIXAAAXAXXXXAAAAAAIAIAII=III===+==++="""""-""""""---"----""---""-""-----------"""-----
+                  .C        .CC+CC                                                CCCCCC.CCCCCC...C....CC...CC.CC...........CCC.....
+                  'B        'BBCBB                                                 BBBBB'BBBBBB'''B''''BB'''BB'BB'''''''''''BBB'''''
+                  XH        XHH HH                                                 HHHHHXHHHHHHXXXHXXXXHHXXXHHXHHXXXXXXXXXXXHHHXXXXX
+                  CX        CXX XX                                                 XXXXXCXXXXXXCCCXCCCCXXCCCXXCXXCCCCCCCCCCCXXXCCCCC
*IAIIIIIII=III===1Z"-===I=+-Z""-+I+""+==AIIAAXAAAAAXAXAXAAAAAAAAIIAAIII=AII=I====+1=+""""-""--""-"""-""-"--"--"""""----------"-"""""-
+                  C.        CCC  CCCC                                              CCCCC.CC..CC.CCC.CC.C..C..CCCCC..........C.CCCCC.
+                  B'        BB    BB                                                BBBB'BB''BB'BBB'BB'B''B''BBBBB''''''''''B'BBBBB'
+                  HX        HH    HH                                                HHHHXHHXXHHXHHHXHHXHXXHXXHHHHHXXXXXXXXXXHXHHHHHX
+                  XC        XX    XX                                                XXXXCXXCCXXCXXXCXXCXCCXCCXXXXXCCCCCCCCCCXCXXXXXC
*IAIAIII=II=====+1="++++=+11""--1+ -""-=IIIXIAAAAAXAAAXAAAAAIIIIAAAIIAIIAII=+==I==++1+"-""M+-""""--""-"""--"-"""---""-"--""--"""---"-
+                 CCC       CC.    CCCC                                              CC.CC C.CCCC..CC.CCC..C.CCC...CC.C..CC..CCC...C.
+                  B        BB'     BB                                                B'BB  'BBBB''BB'BBB''B'BBB'''BB'B''BB''BBB'''B'
+                  H        HHX     HH                                                HXHH  XHHHHXXHHXHHHXXHXHHHXXXHHXHXXHHXXHHHXXXHX
+                  X        XXC     XX                                                XCXX  CXXXXCCXXCXXXCCXCXXXCCCXXCXCCXXCCXXXCCCXC
*IIIIII=I======++=""I+=+++-+""X1111-""=IIIAAAAAAAAAAAAAAAAIAIIIIAAIAIAIIIII=I==I=I=++==""Z=++-"""""""""-"--"---""--"-"--""----"-"""-"
+                 CC       CCC     CCCC                                               CCC    C+CCCCCCCC.C..C...CC..C.C..CC....C.CCC.C
+                 BB        BB      BB                                                 BB     CBBBBBBBB'B''B'''BB''B'B''BB''''B'BBB'B
+                 HH        HH      HH                                                 HH      HHHHHHHHXHXXHXXXHHXXHXHXXHHXXXXHXHHHXH
+                 XX        XX      XX                                                 XX      XXXXXXXXCXCCXCCCXXCCXCXCCXXCCCCXCXXXCX
*IIIIIII===I+===1-""++=++-A""=-1+1+-"-=IIAAIAIAAAAAAAXAIAAIAIIIIAIAAIIII==IIIII=II=+=+=M-XAA==AM"""""-"""-""""-""---"""-"------"-"-"-
+                CC+       CCC     .C.                                                  .       +CCCC.CCC.CCCC.CC...CCC.C......C.C.C.
+                 BC       BB      'B'                                                  '       CBBBB'BBB'BBBB'BB'''BBB'B''''''B'B'B'
+                 H        HH      XHX                                                  X        HHHHXHHHXHHHHXHHXXXHHHXHXXXXXXHXHXHX
+                 X        XX      CXC                                                  C        XXXXCXXXCXXXXCXXCCCXXXCXCCCCCCXCXCXC
*IIIIAIII=II====+=XI1+=++1-""+-++ M""X=IAIAAIAAAAAAAXXAAIIIIAIIAIIIAIIAIIIIAIIAIIAI===+=-MZZXXXAX""""-""-""""--""---""-"""-"---"-"-""
+                         .CC      CC                                                   C        +CCC.CC.CCCC..CC...CC.CCC.C...C.C.CC
+                         'BB      BB                                                            CBBB'BB'BBBB''BB'''BB'BBB'B'''B'B'BB
+                         XHH      HH                                                             HHHXHHXHHHHXXHHXXXHHXHHHXHXXXHXHXHH
+                         CXX      XX                                                             XXXCXXCXXXXCCXXCCCXXCXXXCXCCCXCXCXX
*III==II=II+I====++ -++=1-""X-1---""++==IIAAIIIAAAAAAAAAAIIIAII+=IIIII==IIIIAIIIAIIAI++=I=-ZXAAZZ-+"-"-"---""----"-"--""--""----"-""-
+                        CCC     CCCC                                                    CC      CCC.C.C...CC....+.C..CC..CC....C.CC.
+                         BB      BB                                                               B'B'B'''BB''''C'B''BB''BB''''B'BB'
+                         HH      HH                                                               HXHXHXXXHHXXXX XHXXHHXXHHXXXXHXHHX
+                         XX      XX                                                               XCXCXCCCXXCCCC CXCCXXCCXXCCCCXCXXC
*IIIIIIII=II=I=====1-+==1-"#-=1-1"#"A+==IIIIIIAIXIXAIIAAIAAAI+-=AAAIIAIIIAAIIIIIIIIII=IIIAMMZXAXXZ-Z=-""""-"""""""""-"""""""""""""--"
+                         +X.    +XC                                                              C C.CCCC.CCCCCCCCC.CCCCCCCCCCCCC..C
+                         C$'    C$B                                                                 'BBBB'BBBBBBBBB'BBBBBBBBBBBBB''B
+                          _X     _H                                                                 XHHHHXHHHHHHHHHXHHHHHHHHHHHHHXXH
+                          &C     &X                                                                 CXXXXCXXXXXXXXXCXXXXXXXXXXXXXCCX
*IIIIIII=IIIII====== =+=11A+"-MAM""M1++===IIIII=IAAIIIIAIIAAI-AII=IIIIIIIIAIIIIIIIIII=II==A=MAAAAXZZ-+-""-"""""""""--"---"-"-"""---""
+                          CC.   CC                                                        C        CC.CC.CCCCCCCCC..C...C.C.CCC...CC
+                           B'   BB                                                                   'BB'BBBBBBBBB''B'''B'B'BBB'''BB
+                           HX   HH                                                                   XHHXHHHHHHHHHXXHXXXHXHXHHHXXXHH
+                           XC   XX                                                                   CXXCXXXXXXXXXCCXCCCXCXCXXXCCCXX
*==II=IIIIIII=III===--++++1=I+""""-++++===I==I+AM"+AIIIIIIAA=IAAI=IIIIIIIIIIIIIIIIAII=II=IIX=-AIAXZXXM+"""""--""-""--"-----"----"---"
+                            CCCCC.              +C                                         CC        C+CCCC..CC.CC..C.....C....C...C
+                             BBBB'              C                                                     CBBBB''BB'BB''B'''''B''''B'''B
+                             HHHHX                                                                     HHHHXXHHXHHXXHXXXXXHXXXXHXXXH
+                             XXXXC                                                                     XXXXCCXXCXXCCXCCCCCXCCCCXCCCX
*==IIIIIIIIIIAIII==++=-=++++1-+-+M+1=++====+1Z-"""-+=IAIIIAI=AIIIIIII=IAAIA==IIIII=III=III==AM-AXAXAAZ-=-"-"----""---""----"----""---
+                              .C             .CCC.C                                          C       CC.C.C....CC...CC....C....CC...
+                              '              'BBB'                                                     'B'B''''BB'''BB''''B''''BB'''
+                              X              XHHHX                                                     XHXHXXXXHHXXXHHXXXXHXXXXHHXXX
+                              C              CXXXC                                                     CXCXCCCCXXCCCXXCCCCXCCCCXXCCC
*=IIIII=IIII=======I=X-1++=+++++111===+++II--""-+MI+IIIAAIIAIIIIIIIIIIIIIII=IIIIIIIII=IAII=I=X+MAIAAIXZ-M----"""---"-"---""-----"""""
+                     .                    C.CC.C                                             C        C ....CCC...C.C...CC.....CCCCC
+                     '                     'BB'                                                         ''''BBB'''B'B'''BB'''''BBBBB
+                     X                     XHHX                                                         XXXXHHHXXXHXHXXXHHXXXXXHHHHH
+                     C                     CXXC                                                         CCCCXXXCCCXCXCCCXXCCCCCXXXXX
*III=====I======+-XIM=+Z1+==+++++=+=++1AZ+""""-A++==IAIAII=IIIAIAIAAIIIIIIIIIIIIIIIIIIIIII==IIZMXAAAAAAZZM---"----"-""-"----"--""-"""
+                C    C                  CCCC+C                                                           ...C....C.+C.C....C..CC.CCC
+                                         BBBC                                                            '''B''''B'CB'B''''B''BB'BBB
+                                         HHH                                                             XXXHXXXXHX HXHXXXXHXXHHXHHH
+                                         XXX                                                             CCCXCCCCXC XCXCCCCXCCXXCXXX
*=I=I=======I+==+X-=++"X1+=+=+======+1A-"""=A=+1+II=IA=IIIIIIAAAAAAAAIAIIAIIIIIIIII==IIII===II=Z-XAAIAAAAX-"------"-""""----""--"-""-
+                 . CC+                .CCCC                                                    C         C+......C.CCCC....CC..C.CC.
+                 '   C                'BBB                                                                C''''''B'BBBB''''BB''B'BB'
+                 X                    XHHH                                                                 XXXXXXHXHHHHXXXXHHXXHXHHX
+                 C                    CXXX                                                                 CCCCCCXCXXXXCCCCXXCCXCXXC
*=III=I==I===I=++1-#"I-MX++==I=I==++++I""-1 +1+=+==IIIIIAIAAAIIIIIIAAIAIIIIIIIAIA=IIII=III+IAI==MZXAAAXAX---"-"----""--"----------""-
+                 CX+                  CC.                                                               CCC+.C....CC..+..........CC.
+                  $C                  BB'                                                                  C'B''''BB''C''''''''''BB'
+                  _                   HHX                                                                   XHXXXXHHXX XXXXXXXXXXHHX
+                  &                   XXC                                                                   CXCCCCXXCC CCCCCCCCCCXXC
*I==I====+=+====+++1X1"M=-=+=++=++=+=+1M-""+1+=I=I==IIIAIIIAI=IAIAIIIAIAIAIIIAIII=IIIIIII=IAAAAAI-ZXAAAIAXZM-""----"--"""""-""""""-"-
+                     + CC              .C+                                                      C          C+C....+..+++++.++++++.+.
+                     C                 'BC                                                                  CB''''C''CCCCC'CCCCCC'C'
+                                       XH                                                                    HXXXX XX     X      X X
+                                       CX                                                                    XCCCC CC     C      C C
*==II====+=====+=++I"==XI"=+====++===1+-A""--+===IIIIII==I-MA=IIIIIIIAIIIAIAIIIIIIIIIIIIXAAXXAAAIAZZZAIIAAXXZ-=---------"""""--""-"-"
+                   C C  C               +C.C             C                                                  CC.........+++++..++.+.+
+                   B    B               CB'                                                                   '''''''''CCCCC''CC'C'C
+                   H    H                HX                                                                   XXXXXXXXX     XX  X X
+                   X    X                XC                                                                   CCCCCCCCC     CC  C C
*==I=II====+======+=A=M--X+=+==+=+===1+1+=Z-"+X=II=I=====+-"=IIA=AAAIAIAIAIIIII=IA=II=XZXXXXXZXAA=AMZXIIIAXXXX-+-""""---------"------
+                    C .C                  .CC           C.CC                                                 CC.CCCC.........C......
+                      '                   'B             'B                                                    'BBBB'''''''''B''''''
+                      X                   XH             XH                                                    XHHHHXXXXXXXXXHXXXXXX
+                      C                   CX             CX                                                    CXXXXCCCCCCCCCXCCCCCC
*=IIII=====+=I+++=++1XM++="=++I=+=+===++++1X-#MIII==+=1+-"-I=II=IIAAAIIIIIII=IIIAIII=IXAAIIAXZMZAAIM-ZAAAIIAZX==+"""---"-""-"--"""""-
+                        CCC                .X         C.C.                                         C         CCCCCC...C.CC.C..CCCCC.
+                         B                 '$          'B'                                                      BBB'''B'BB'B''BBBBB'
+                         H                 X_          XHX                                                      HHHXXXHXHHXHXXHHHHHX
+                         X                 C&          CXC                                                      XXXCCCXCXXCXCCXXXXXC
*====I===+I=+===++==+1I==ZII-++++==+==+=I==+=A+====+=X"""-+=IIIIIIAAII=AII==IIIIIIIIA=AAIIIAAAZ-MXAA=-ZAAAIIXX-M-""""-""---""""--""-"
+                      CC   C                         +C+C                                     C    CC        C C+CCC.CC...CCCC..CC.C
+                                                     CBC                                                        CBBB'BB'''BBBB''BB'B
+                                                      H                                                          HHHXHHXXXHHHHXXHHXH
+                                                      X                                                          XXXCXXCCCXXXXCCXXCX
*=======I==+===+==++++I+IX++A++==+++========++==+++A+""-I+===I=I+IIIIIII=II==II=II=IAIAIIIIIAAAZMMXIXM-ZXIAIXXZ-M="--"--------"""----
+                         CC                        CCCC                                              C        C C+..C........CCC....
+                                                    BB                                                           C''B''''''''BBB''''
+                                                    HH                                                            XXHXXXXXXXXHHHXXXX
+                                                    XX                                                            CCXCCCCCCCCXXXCCCC
*==II======+===++=====+1"XX++MA=======I+=======I+I=-"+I++=II=III+AIIIIII=IIIIIIIIIIIIIIAAI==AAIXZ==XI-MXXIIIIXX-=M++""""--""-"-""-"""
+                       +  C                      C.CC                                           CC  C         CC CC+CCC..CC.C.CC.CCC
+                       C                          'B                                                               CBBB''BB'B'BB'BBB
+                                                  XH                                                                HHHXXHHXHXHHXHHH
+                                                  CX                                                                XXXCCXXCXCXXCXXX
*======I=+==+===+=====++=+=-"+A+==+=====+I+=+==+1-#"-1+===I==III=IIIIIIIIII===I=IIIIAI=IAI=IIAIAX-++AA-AAXIIIAA-MZM-M-"-"---"----""--
+                        C .CC                   .XCC                                            CCC  C        C   . .C.C...C....CC..
+                          'B                    '$B                                                               ' 'B'B'''B''''BB''
+                          XH                    X_H                                                               X XHXHXXXHXXXXHHXX
+                          CX                    C&X                                                               C CXCXCCCXCCCCXXCC
*==+==================+++Z+-I+1++==+=====I==I=+==I=I1+++=II==III=AAAIIIIIII=IIIIIIIAIIIIXIIIIAIIA--+"Z-XXAAAIAAZ-M-+"M=---"-"-"-----"
+                         CC                      C                                              CCC+ C         C CC+ C...C.C.C.....C
+                                                                                                   C               C  '''B'B'B'''''B
+                                                                                                                      XXXHXHXHXXXXXH
+                                                                                                                      CCCXCXCXCCCCCX
*====I=====+==========++++1+MMA+A++++++====I====++1+=======XMZ==I=AIIIIIIII==IIIIIIII=I=IAI=IAI=AZZM+"ZAAIAAIIIZZM-M"MAM---""-------"
+                          C                                                                        C+            C +   ...CC.......C
+                                                                                                    C              C   '''BB'''''''B
+                                                                                                                       XXXHHXXXXXXXH
+                                                                                                                       CCCXXCCCCCCCX
*========+==========+=+==+1"ZA-++=+++=+=================+=+"#"I==IIIII=IIIIIIIII=III==IIIAI1=IIAAZXM=-+AXIIAA=IXX--M++A-M-""-""------
+                          +  .CC                          +X+                                      C.C          CC CC C .CC.CC......
+                          C  '                            C$C                                       '                   'BB'BB''''''
+                             X                             _                                        X                   XHHXHHXXXXXX
+                             C                             &                                        C                   CXXCXXCCCCCC
*=II=+==I+==+=========++=++I-"++ X+=++=+==+===I====II====I==-"-+II===IAIIII+II=IIIIIII=IIXXIXAAXXZ--M""AXXAA=IIAAXZMM"-AZM-"-""""""""
+                           .CC                             .C.                                   CC +C              +C   .C.CCCCCCCC
+                           'B                              'B'                                      CB              C    'B'BBBBBBBB
+                           XH                              XHX                                       H                   XHXHHHHHHHH
+                           CX                              CXC                                       X                   CXCXXXXXXXX
*+=====+=+==+====I======+++1I++I"=X++=++===+++==+==III===+++I""==+===II====I=II=II=I=II=IXZXZZXXZXXXM=-ZAXXAII=IAXX-M++=XZ-"-""""-"""
+                               +C                           CCC                                     C.            C CC   C+.CCCC.CCC
+                               C                            BB                                       '                    C'BBBB'BBB
+                                                            HH                                       X                     XHHHHXHHH
+                                                            XX                                       C                     CXXXXCXXX
*+++======+=+==========+++++1A-X"=IX++-++==+==+=+IIIII====+=+M-X+=========I===I==II=III=IIZXXXZXXXXXZM++AAXAAI==IIXZM++MAAZ-""""--"""
+                             . +                             C                                       CC             CC    C+CCC..CCC
+                             ' C                                                                                           CBBB''BBB
+                             X                                                                                              HHHXXHHH
+                             C                                                                                              XXXCCXXX
*+++1++++=++++=+========++++1+"IM""-+1+++=+=+++===I==I====++=====II====I==I=III==I=IIIII=I-XXXAXXZXX-M+-XIAAAI=IIIAX-=="IAXZ="""--"-"
+                             +  ++C                                                      C         C C.            CCC+    CCCC..C.C
+                             C  CC                                                                    '               C     BBB''B'B
+                                                                                                      X                     HHHXXHXH
+                                                                                                      C                     XXXCCXCX
*+11111111111====+++==+++===+1I"+I11- +====+===+III=IAIII===+++IIIII+=+===+I===I===III===AZAXXAAXXZZZZ+"ZAAAA=II=AAXXZM"+IIZZ=""-"""-
+                              CC   C                                                                 CC               +C    CCC.CCC.
+                              B                                                                       B               C      BB'BBB'
+                              H                                                                       H                      HHXHHHX
+                              X                                                                       X                      XXCXXXC
*1-11111111+-1++=========+==+++1+1=+=X1======+=I=====I====I==+=I==I=I======IIIIIIII=II==+IZXXAAXAAAXXM""-AAAAII==IAAX-MM-AAXXX=-"""""
+                                   C                                                                 +CC            C  .     C.CCCCC
+                                                                                                     CB                '      'BBBBB
+                                                                                                      H                X      XHHHHH
+                                                                                                      X                C      CXXXXX
*-+++11+1111111++++=+========++1MAAMX-A++===========II==I===++=======AXA+===I=IIII==II===IZAAAAAZXAAX-+"MAAAAIIIIIIAXZ--+MAXXZZM+""""
+                                    .                                                               CCC              CCC       CCCCC
+                                    '                                                                 B                         BBBB
+                                    X                                                                 H                         HHHH
+                                    C                                                                 X                         XXXX
*1ZZ=11111111-111-1++=+==++=+=+1+"-"+XI++++I=I=II==II==I====+++===I+="--+A+======II=======XXXXXXAAAAXX=""AAIAAAIIIIAXXZM=-ZAXZZXX="""
+                                +CCC                                +..C                             CC+               C.       CCCC
+                                C B                                 C''                               BC                '        BBB
+                                  H                                  XX                               H                 X        HHH
+                                  X                                  CC                               X                 C        XXX
*1111++-11-    ---111+++++++++++1Z=1 -111++======I====I==++=--"=1=+=1"-""-1=I======II=====XXAAAXAIIIAX="=IIAAXXIIIIIXAZ-=-+XAXXZXAM--
+                                 C                          C+C     +.CC.                            CCC              CC.C        ..
+                                                             C      C'BB'                             B                 '         ''
+                                                                     XHHX                             H                 X         XX
+                                                                     CXXC                             X                 C         CC
*1+1+1+11+1--    --111++=+==+++++1IA=A-+Z++==========II====+X""-I===+1-=-"Z+=I=II=IIII=I==ZAAAIXXAIIIZ=#-IAXXXXIIIIIIXX--=+=MXXXZXAX+
+                                     CC                     CC.        .C                            CX.              CCCCC        C
+                                                            BB'        'B                             $'
+                                                            HHX        XH                             _X
+                                                            XXC        CX                             &C
*+++=+=+++1-11     11-1++===+=++=+=="MX+11+===I===I=II==I=+1"""A====+11--"-+=+I=IIIIIIIIIIXXXAAAAAIAAZ=-"AIAAXXAIAIA=AXXZ-++=-ZZXXAAX
+                                  C+                       +CC         CC.                           C.C                CCCCC
+                                   C                       CBB          B'                            'B
+                                                            HH          HX                            XH
+                                                            XX          XC                            CX
*+=====+++=1++11 - -1111+I========+I"I11A=X+=====+I=II=II++1M#"+1+++++111""Z+=IIIIIIAIIIIIXXXXIAAAAXXZM-"XIXAXXAIIIII=AXZZM++=M-ZXAAA
+                                   +    C                   XC          CC                            .C                  CCC C
+                                   C                        $B          BB                            'B
+                                                            _H          HH                            XH
+                                                            &X          XX                            CX
*1++++++11++1+1+11 11-1++1=++==+==++=+Z-""Z1+++===I=I+====+11""--+1++- =-"""++===IIIIIII=AXXXAAAAAAIAX-+"++XAAXAIIII===AXX-=""=M-XAXA
+                                      .CC                   CCC        CCC+                          CCCC                CC++C C
+                                      'BB                   BB          BBC                            B                   CC
+                                      XHH                   HH          HH                             H
+                                      CXX                   XX          XX                             X
*++11++1++++++1111111-111+++=+==+=+++M=I==+=====++=====+==++1+"-=I+Z=-""""-X+=IIAIIIAIIIAIXXXAIAAAAIAXM""=+XXAAAIIIII==IAX-M"-"MM-XZX
+                                     C CC                   CC.    C.CCCC.                            +CC                C +.+  C
+                                                             B'     'BBBB'                            CB                   C'C
+                                                             HX     XHHHHX                             H                    X
+                                                             XC     CXXXXC                             X                    C
*1-11----1+++++++111-11+1+++++=======11Z-Z-=I++=++==+==+===++I-"--""-"=-XXA+===IIIIAIIIIIIXXXAAAAAIIIX-"""+-XAAAIIII===AXAX-+"-=MZZXX
+                                       . CC                  .C..CC.+CC                              C+C+ C               CC+.C
+                                       '                     'B''BB'C                                 CBC                   C'
+                                       X                     XHXXHHX                                   H                     X
+                                       C                     CXCCXXC                                   X                     C
*1111-----1+==++++11+111+++++=I+===+++1-"MI=X=++===========++1=--"-I=+11-1+===IAAIIAIIIIIIAXXAAXXAIIAA-"""IMMZZAIIII=IAAXXZ-=""+MM-XZ
+                                      .C                      C.+C                                   C+C+                 CC++C  C
+                                      'B                       'C                                     CBC                   CC
+                                      XH                       X                                       H
+                                      CX                       C                                       X
*111--- ----1=++1++++-111+++++===+=+++1=--1+I-+++==++=====++=+1+-1-111++1==I===IIIII+AIIIIXAAXXAAAAIIAZ"XXAAAAAIAAAIIAAXX-Z-=+"=M=-Z-
+                                            .                                                         +                 C CCC+C CC C
+                                            '                                                         C                      C
+                                            X
+                                            C
*--11---  --11+=1++++111+1+==1++=++===+1XM1"X=-+++==+==+======++++++=+==+====IIIIAIIIAIIIIXXAAAXXAAIIAZ=X-XAAAAXXXAAAXAZZM-M=""MMMM--
+                                          + C.                                                        C C                C C++    CC
+                                          C  '                                                                              CC
+                                             X
+                                             C
*1-1---   --11-++++11-1111+++1++++++=+++1=M=-MX+++===++=++===+++=+===II=======I=IIIAIIIIIIXAAAAAXAA==IX=A--XXAAXAXAAXXXXX-MM="=--MM-M
+                                        C C.                                                          C CC              C  C+CCC  C
+                                           '                                                                                C
+                                           X
+                                           C
*--- ----  -11+=1+1+111-11+=+++++=++++++1+=A=11+=++++===+==+==+++=+++II=I==++===IAII=IAIIIXAAIAAXAI+=AA+-ZXZAAAXXXXXXZXZ-M===+MZ-+=MM
+                                         C                                                            CC               C CCCC  CCC
*I===-   - ---1=++11-1111=++==11++111+1-111-1+11++1+==1+++1++++1+-A--+11==IXI1+++==IIIAIIAXAAAAAAIA+IAA-ZXAXXAXAAAAXXZ--M=+=MMXXM====
+                                                                  CC                                  .              CC CCC     CCCC
+                                                                                                      '
+                                                                                                      X
+                                                                                                      C
*=+++   +11 -11+++111+111+=+=I+1++++++++++11++++1Z+++=+++++++++++M"""11+++X""-A=====IIII=XXIAAAIAIIIIIZ=ZAXXXXAAXXXXZZ-MM++=--AZ+M+++
+                                                                 CCC      CC.                         C              C  CCCCC  C CCC
+                                                                 BBB      BB'
+                                                                 HHH      HHX
+                                                                 XXX      XXC
*++====--1+---11+11+1+1++1+==I++++++++1+++1+1111Z+Z+1=+++++=+++1X""MX11+11=X"""++====I==IZAAIIIIIAAIAI=-ZXXXAXAAAAXXZZZ-=+=-XZ-++M"++
+                                                C               CC         +CC                       CC               CCCCC  CCC +CC
+                                                                BB         CBB                                                   C
+                                                                HH          HH
+                                                                XX          XX
*+====1=- 111111++-+++1==1+=II+++=++++1++1+++I++-+MM11+++++=++-11""I 11+++1-+""A+=======IXXIAAIIIAXAIAMZXAXXIIIIAAXXZZ--==MXXM+"=M=""
+                                             C .                CC          CC                                       CCCC    C+C C++
+                                               '                BB          BB                                                C   CC
+                                               X                HH          HH
+                                               C                XX          XX
*=====I=I-1-+11+=I-11111=-1==I+11++1+1=+++1+1=" -M "A11+++1+1+1- ""- 11+1--- -"=+++=+=I=IAAA=AAAIAAAAXMZXAAAIAIIIAIAXXZ-M=-Z-""MM-M"-
+                                             C C  C             CCC         .CC                                       C CC C++  C +.
+                                             B    B             BB          'B                                              CC    C'
+                                             H    H             HH          XH                                                     X
+                                             X    X             XX          CX                                                     C
*===+=+=I-1++++=II1++1+1=+=+IX=1++++++--+1+++-A=Z"=Z=11+1+++1111 ""=1+====+11""M1+=======AXIIAIAAAAXAZ-XXAAIIIAAIIIAXXZ---Z-+=---M-+-
+                                              C +               CCC         CC                       C                CCC CCCCCC CC.
+                                                C               BB          BB                                                     '
+                                                                HH          HH                                                     X
+                                                                XX          XX                                                     C
*AI+=+=I=1+==+=AZ+1+1+11+++=AX+1+++=++++1++++1-AA+ IMMI1+=++++11-X""""""""+=+""=1+=======AAXIIIIAAAXXZZXXAAII=IIIAAXXAZZ-ZXM=----MZM"
+                                                                 +C++++++CCCCCC                                        C   CCCCC   +
+                                                                 CBCCCCCC   BB                                                     C
+                                                                  H         HH
+                                                                  X         XX
*XAZXAA++11++=IX=-1+1111=+=IA-+++++++===+++++111--Z++="=1+++++++1-1-MMM=M+++""+=1+=======IXZAAAAIAAXXXZXAAAII=IIAAAXAXZZ-XZ==-M--M-M=
+               C            C                   C CC +            C   C CCC++C                                         C  CCC CC C C
+                                                     C                     CC
*"+XI=+====I=XZ"Z-1111+-++=AXX-1+1++++++++1+1+11 -XA- +=1+++++++1-- -  --  -  -+=======I==Z-XAXAIAAXAAAAAXI=IIIAIIIAAXZXX-++M--ZZMMM-
+CC            +                                 .  . CC                                   C                             CCC CC     .
+B             C                                 '  '                                                                               '
+H                                               X  X                                                                               X
+X                                               C  C                                                                               C
*A=-+MM-ZZ--M+"X- 1111+++IAZ=--1++1+1=++++++11+1-I+A-AX+A11+++++++111111+1+11+++==I+==I=I=XM-ZXXXXXAXXXXXXAAIAXAAAAAAXXX-++=--XZ-=+"-
+ C.C  C  CC C+             C                     C .                                       C                           CCCCCC  CCC+.
+  '          C                                     '                                                                              C'
+  X                                                X                                                                               X
+  C                                                C                                                                               C
*  A=--""""---A-1111+1++=AZ=-1111+++++++++++1+++--=XI1=X+Z++1++++-1-11++++++1+++==========I-M-XZZXXXXZZXXXXXAAAIIAIIXXZM==M--ZX-++=""
+   C..++++..C             CC                           C                                  C C                          CC CC  CCCC++
+    ''CCCC''                                                                                                                      CC
+    XX    XX
+    CC    CC
*--  +AM==-=1--1++111A=AAM==1+++1+++1===++=+1++11++-I="Z=X++1++1+XMX=1--11+11++============ZMMZXZ--XXZZZZXXXXXXAIIAX---MM-ZZZ-=++=M"-
+       CCC           C   CC                         C+   C                                      CC                 CCC  C   CCCCC +.
+                                                     C                                                                            C'
+                                                                                                                                   X
+                                                                                                                                   C
*1--1-     -1-11-+++=+XXM+-1-111111+++++++===++-+111++   I"-1+=+1=""""""=I---1++1==++=====I=Z=-AXZ-XXXIXZZXXXXAAAXZ---M---ZXZMMMM=-"-
+                        C.                               CC     CCCCCC+C                    CC   C                CCC CCC       CC+.
+                         '                               B       BBBBBC                                                           C'
+                         X                               H       HHHHH                                                             X
+                         C                               X       XXXXX                                                             C
*+=1++111111+1==II=-+M-=""Z-11+1+1++++++++=+++++1+1++1+-+MX-1+++111IZMM++---"MAII+===I======A-MZZXZXAIAXZXZXXXXAZ--ZZ---Z-ZZM=M---Z"-
+                  CC CC++                             CC              CC...+                C                   CC  CCC C   C CCC +.
+                       CC                                               '''C                                                      C'
+                                                                        XXX                                                        X
+                                                                        CCC                                                        C
*--XA-ZI==IIA--XM=M-=+"-++ 11111+++++++++++++++++1+1+1IX+-11++++11-     =M""""""A++===I=I=I==--M-X-XAIXXXZZZXXZZ--XXZ--ZXZ-MMMMZ---"-
+CC  C       CC  C CCC+.C                                                 +CCCCC             CC C C             CC   CC   C     CCC+.
+                     C'                                                  CBBBBB                                                   C'
+                      X                                                   HHHHH                                                    X
+                      C                                                   XXXXX                                                    C
*---"""======""""-----++1--+11+++++++++++=++=++++++++++11++++++11-- +ZM=+--""+MI1+++======I++---ZXZZXZXZXZXZXZ-ZZZXXZ-ZZZX-M-M-MMMM-"
+...+++CCCCCC++++.....C                                                CC..CCC               CCC              C      C    C C C    .+
+'''CCC      CCCC'''''                                                   ''BB                                                      'C
+XXX             XXXXX                                                   XXHH                                                      X
+CCC             CCCCC                                                   CCXX                                                      C
*-="-"""""""""""""-+X  -11111111111111+1+11+1++1+++++=1+=111++11-M""""-"-=X    -+1=I==+====I==X--ZXXXZXXAXXZXZZZXXXX-ZZZZZ-M---ZMM-"-
+CC+.CCCCCCCCCCCCC.C                                              +CCC.C.C                     CC                   C     C CCC   C+.
+  C'BBBBBBBBBBBBB'                                               CBBB'B'                                                          C'
+   XHHHHHHHHHHHHHX                                                HHHXHX                                                           X
+   CXXXXXXXXXXXXXC                                                XXXCXC                                                           C
*      1==IIII+1-    ---1111111111-+1--1+1+++111++1+++1==++++1111-""""==-  - 1-+=+=======I=I==A--ZZXXZZXXAZXXXXXXZXX-ZZZZZ-M---MMM-"-
+                                                                .CCCCC                        CC                   C     C CCC   C+.
+                                                                'BBBB                                                             C'
+                                                                XHHHH                                                              X
+                                                                CXXXX                                                              C
*-1-1-        --------1-1-111111+1111+1111+1+++++++=+=+++=+++++1+AXXM"---=ZXA=1+=======I====I=I-MZZAXXZXXX-XXZZXZXXXZZXZXZ---MMM==-"-
+                                                                    +...C                     C          C               CCC   CCC+.
+                                                                    C'''                                                          C'
+                                                                     XXX                                                           X
+                                                                     CCC                                                           C
*11--111--1--111111-111--111111111111++11+1+1++++++++++=++=++++++1---+1=X+-"-"+=+==========I=I+-MZXXXXXXXXXXZZZXXAAXXAZXXX--MMMMM=-""
+                                                                        C.C.+C                C                          CC     CC++
+                                                                         'B'C                                                     CC
+                                                                         XHX
+                                                                         CXC
*1+11---1-111111-1---1--11+--1++11111-+11+1-+1+++=1+==++1=1=+=+++11+1-11    A+-I++=I==III=======M-ZXXXXXAXZXXZXZAXXXXAXZAZZ----MMMZ-+
+                                                                            C.                  C                         CCCC    .C
+                                                                             '                                                    '
+                                                                             X                                                    X
+                                                                             C                                                    C
*+1++1+11+-1111++11---111111+111+1+111111+++11++++=++=+=+++=+===+1+++++1+1++1-1=+===+=====I+====AM-XXXXXXAAAXXXXXXXXXXXAAX----M-----"
+                                                                                                 C                       CCCC CCCC.+
+                                                                                                                                  'C
+                                                                                                                                  X
+                                                                                                                                  C
*+++1+1+11+11+1++1111111111111+11+111++1+1+11++++=+++1+1++++++=+==+=+=+++1+++++=+====I==========+M=-XXXZXAAAAAXXXAXXAAAAAXZZZZ--MZ--+
+                                                                                                 CC                          CC  C.C
+                                                                                                                                  '
+                                                                                                                                  X
+                                                                                                                                  C
*1++1+111+++11++111+11+++11+1111+-1++++1+1++1+++++=+1+++=+=++==+====+++===+++====I===II==I===+===I=MZXXXXXXAAXAAAXAXXAAAAXZZ--M-ZZ=-"
+                                                                                                 C                         CC C  C.+
+                                                                                                                                  'C
+                                                                                                                                  X
+                                                                                                                                  C
*+1++++11+++=+++-+111++1---+1++111+1111+++1+++++1+++++==++====+==+====++++========I==+I+==+=I====+Z=ZXZZZXAAXIAAAIXAAIAAXZZZ----ZXZ-=
+                                                                                                  C                        CCCC   .C
+                                                                                                                                  '
+                                                                                                                                  X
+                                                                                                                                  C
*+++++1+++++++=++++++++++++1+++1+=+++=++==++++==+++=+++===========+=+===+========I========+I=+=I=====ZXZZZAAAAAAAAAIIIAAXZ-ZZ-ZZ-X---
+                                                                                                  CC                     C  C  C C..
+                                                                                                                                  ''
+                                                                                                                                  XX
+                                                                                                                                  CC
*++++++++++=+=++++++=+++++++=++++=+==+++==+====++++====+=======I==+======I====I==I========I=I=====+A=-ZXXZZXAIAAAIIIXAAXXZ--ZZZ--X--"
+                                                                                                   CC                    CC   CC C.+
+                                                                                                                                  'C
+                                                                                                                                  X
+                                                                                                                                  C
*++==+++=+=+===+++++==++1+++++=++=+==+=++=+=+==++=+I===+===I=I=I=+===I======+=======I=I=I====I====+=Z=MXXZZXAAAAXAAXAAAAXZZZ---ZZ-M""
+                                                                                                    C                      CCC  C ++
+                                                                                                                                  CC
*+++++111=1+=+==+++++=++++++++=+1+=++=+1+++++++==+==+======I==II====I=+==+++===+++++=+=+=I====+==I1+1==MZZZXAIAXAAXAAIXAAX---ZX---=++
+                                                                                                    CC                   CCC  CCCCCC
*++++=+++++=+=+1==+=+++++=1+++++1+=+=+==+=+=++++=++==+====I=I===I======+==+=+===+======++=1+=I===-==+-"--XXXAAXAAAXXAAXXXZZ-ZZ-Z-M+++
+                                                                                                    C+CC                  C  C C CCC
+                                                                                                     C
*+=++=++==+=++++++++++++++++++++++++=++==+=+=+=========I====II==I+===+=+===+=+=+======+=+========-====M+-XXZXXXAAXXZAAAXXX-ZZZ--M-===
+                                                                                                      CC                 C   CC CCCC
*=+====+==+=+++++++++++1++++++1+++++++++===+++=========III===I===+=I=+=+=+++==========+===+======1+=====+-ZXZXXXAAXXAAAXAXZZZ----XM+M
+                                                                                                      CCC                   CCCC  C
*I===1+===+==+=+++1+1+1++1++111++++=+++++++=+====I=I=I=IAII=II====I+=++=++==+====+++++=+=+======1+1====="M-XXXAAAAAXXAAAX-ZZZ------+-
+                                                                                                       + C              C   CCCCCCCC
+                                                                                                       C
*==+====++=+=+=+1++++111++1++1+1+++++++++++=+==+===I=IIIIII===III=I=+===+=+=+=+I+=+===+====++=====-+==I=I+MXXXXAAXAXXXXXXX---Z---M-=M
+                                                                                                        C                CCC CCC CC
*=+=====+++++++++++11++++111+++++++++++11=++==+=IIIIIIIIIII==+===+=+++=+=+=++++==+=+==+==+===I====+===I==ZM-XXXZXXXAAXAXAXZXXZZ---Z--
+                                                                                                          C                   CCC CC
*====+===++++++++11++1+11+11111++1+++++=1====I==IIIAIII=I=I======+++===++==+==++++=======++====+=====+==+=XM-ZXZXXAAAAAAAXXXXXX--Z--M
+                                                                                                           C                  CC CC
*==I======++===++++++1++11+1111-11+=11+==+====I==III=I=II==++==+===+==+===+==+=+==+==++=+++=====+=++++====AM-ZAXXAAXAXAAXAXXXXXZZ-ZM=
+                                                                                                           C                    C  C
*++=========+=+==+==+=+=+++++111+++=+++========I=I=IIIII====1==+==++====++=+=+=+=I=+++==+==++========I===++XM-ZXXXIAAAAAAAXXXZZZ-ZZ--
+                                                                                                            C                  C  CC
*++=++=+==I====I===+===++=+++++=+=========II=II=I=IIIIII====+=I=============I+=+=I++=++===+=====+===I======I-M-X-ZXAAAAXXXZXXX-Z-----
+                                                                                                           C C C             C CCCCC
*+++++++===+=+====+===++===++++=+=======I=I==II=IIIIIII=I========+==+===+=1==++=+====++++=+=====+=======II=+XMMXZZXAAXXAXXXXXZZ---Z-M
+                                                                                                                              CCC C
*+1++++++=+=+++I+=+==++==+==+==++========II=====I=II==I====+=+=+=+==+++++1+=++++++++==+==+++======+===+======-M-Z-ZAAIAAXAAXX-XXZ-M==
+                                                                                                            C C C           C   C CC
*+++++++1=+++++=============+===+===I+IIIIII==I===II=III+=======I=======I+=+=+==++==++++==I======II=I=I=I====MM-Z-ZXAXAXZXXXZ-===MM-M
+                                                                                                              C C           CCCC  C
*1+111+++++=+++++=========+===+=======IIIIII=I=I=I==II=II==II+==II==II=====+=+===++=+=======I===I=I=====I==+++=-M-ZXAXAXZZ-MM==M--MMM
+                                                                                                            CCC C        C  CC CC
*1++11+++++++=1+++++======+=++====+==IIIII=I=III====II=======+=I====II========+=====+=I+=I======I=I===I====+I"--M--XAXZ-MM==MM-MMMMMM
+                                                                                                            C.C CC    C  CC  C
+                                                                                                            B'
+                                                                                                            HX
+                                                                                                            XC
*111-111111+11+++++=++=++=+  +==1==+=+============II=I=+===I===II=+===+=========+=+=+=II+===+=++===++=I1==++-""-MMXA-=M=MMX--Z-MM--MM
+                                                                                                           .CCC    CC C   CC C  CC
+                                                                                                           'BB
+                                                                                                           XHH
+                                                                                                           CXX
*-1-11111111++11+++1++++++1++1  -++=====I====I===+=I=====++=+++==+============++=+==I==I========+========11-""""ZXZ-MMM--Z----M-MMMMM
+                                                                                                          CCCC+   C   CC CCCC C
+                                                                                                           BBBC
+                                                                                                           HHH
+                                                                                                           XXX
*11-1-1--11111111++1+1+1+1+++==+1===========I=================++=++==========+++===================+=====1="""-XAZZZZZ---Z--MMMM--MMM
+                                                                                                          CCC.       CCC CC    CC
+                                                                                                          BBB'
+                                                                                                          HHHX
+                                                                                                          XXXC
*11111+111+++1+11+1+++++1+=+++=+=+===============I+===I=====+=1======II===+=++=++=+======I=+=++=+=======+=+""=AAX-ZZX------MMMMM-MMMM
+                                                                                                         CCCC   C   CCCCCC     C
+                                                                                                          BB
+                                                                                                          HH
+                                                                                                          XX
*- 1-1----+111-111111+1-++=111++=+====+=I========I=I=+====++1==+==+III+II==========+=====+=+===+==++==++-=-"-+AAAXXZZZ--Z-Z---ZZ-MM--
+                                                                                                        C.C.         CC C CCC  C  CC
+                                                                                                         'B'
+                                                                                                         XHX
+                                                                                                         CXC
*----11-----1-1111111111++1++=+++++=++=+++==========++===+=+==+=====+===++=======I======+=+=+++++===++11I-"""AIXXXXXXZZZ---Z---Z-Z---
+                                                                                                        .CCC           CCC CCC C CCC
+                                                                                                        'BBB
+                                                                                                        XHHH
+                                                                                                        CXXX
*1-- ---1-11--111111111111++11+1+++=++=++==+I=+===+++++++++++==++==+=====++======+=I==+===+=++++++++++1A"""-""-AXAXXZX-ZZ-ZZ-Z-Z---M-
+                                                                                                       +CC.C+C       C  C  C C CCC C
+                                                                                                       CBB'BC
+                                                                                                        HHXH
+                                                                                                        XXCX
*-----11--111-1-11111111+1+++++1+++=+=+===+===++==++++=++==+=++++=+=+===+===========+=+==+++++1+++1+11+-""""""-AAIXAXXZZ-XZX-ZX--M-M-
+                                                                                                      .CCCCCC.         C   C  CC C C
+                                                                                                      'BBBBBB'
+                                                                                                      XHHHHHHX
+                                                                                                      CXXXXXXC
* - - ---1-1111+-1-+1--++++=++++++=+=++1=1=====1++=++==++++=++I=+=====+=======+=+++====+====+=++=++-1-M""""""""-IIAXXIXZXZXZXXZZ--=-M
+                                                                                                      CCCCCCCC.                CCCC
+                                                                                                      BBBBBBBB'
+                                                                                                      HHHHHHHHX
+                                                                                                      XXXXXXXXC
*-- ----1-11--11111+11-11111++++1+++++++++++++=++1=++++===1+++++11+++=++==+=+=++==+=++=+=1++1++1111-+-""-"-""""-ZAAIAXXZXZXZZ-Z------
+                                                                                                    .CC.C.CCCC.             C CCCCCC
+                                                                                                    'BB'B'BBBB'
+                                                                                                    XHHXHXHHHHX
+                                                                                                    CXXCXCXXXXC
*----1-----1----1-1+11-111+1+1++++1+++++1++1+++++++++1++==1++=++++=+=+=++===+=++==++++++++++111111--M"""-""-""-""MZXXXXXXXAXZZ------M
+                                                                                                    CCC.CC.CC.CC             CCCCCC
+                                                                                                    BBB'BB'BB'BB
+                                                                                                    HHHXHHXHHXHH
+                                                                                                    XXXCXXCXXCXX
*-----1-1-11-1-11-+++111+1111+11+1+1+==+++++1++++++1+1++1++++==++=+++++====++===++++++=+++1+11111-+=-"""-""-""-"""XXZAAXXZXX-ZZ-----M
+                                                                                                  C.CCC.CC.CC.CCC          C  CCCCC
+                                                                                                   'BBB'BB'BB'BBB
+                                                                                                   XHHHXHHXHHXHHH
+                                                                                                   CXXXCXXCXXCXXX
*---1-111----11111--11+-1+11++++++1++111+1111+++++++++++++++++==1++1+1++++=+==++=++++++++1+1+11--1""""""---""""-"""II-XAAXAXXZZZ-ZM--
+                                                                                                 +CCCCC...CCCC.CC+  C          C  CC
+                                                                                                 CBBBBB'''BBBB'BBC
+                                                                                                  HHHHHXXXHHHHXHH
+                                                                                                  XXXXXCCCXXXXCXX
*-------11----1+111-11111--+111-11+1+1+++11111+1+1+11++++++1=++++++===+11+++=+=++=++=+++11+11-- +-"""""""""""""""""MAIAIAZX-XXXZZ----
+                                                                                                .CCCCCCCCCCCCCCCCC        C     CCCC
+                                                                                                'BBBBBBBBBBBBBBBBB
+                                                                                                XHHHHHHHHHHHHHHHHH
+                                                                                                CXXXXXXXXXXXXXXXXX
*----1-1-1----11----111111-11-11111111+1+1+11++1+1+1++1+++1+++++1++++++++++=+++++++=++++111-1--A""--""""-""""""""--"==IIAAXZZXXZZZM--
+                                                                                               +C..CCCC.CCCCCCCC..CC              CC
+                                                                                               CB''BBBB'BBBBBBBB''B
+                                                                                                HXXHHHHXHHHHHHHHXXH
+                                                                                                XCCXXXXCXXXXXXXXCCX
*---------11-1---1----11111111-111111-+-+111++1+11+-1+1+1++11111+1++++++1++++++++=+++11+11------"""""""-"-"""""""""""M+AAAAXXXXZ-Z---
+                                                                                             C.CCCCCCC.C.CCCCCCCCCCC           C CCC
+                                                                                              'BBBBBBB'B'BBBBBBBBBBB
+                                                                                              XHHHHHHHXHXHHHHHHHHHHH
+                                                                                              CXXXXXXXCXCXXXXXXXXXXX
*--+---11---1---1-111-1-1-111--11111-+11+111111+111++11++1+=+++++++++++1+++==+++++++1+1+1-  +-"""""-"""-"""-""""""""--AIAAXAAXX--Z---
+                                                                                            .CCCCC.CCC.CCC.CCCCCCCC..         CC CCC
+                                                                                            'BBBBB'BBB'BBB'BBBBBBBB''
+                                                                                            XHHHHHXHHHXHHHXHHHHHHHHXX
+                                                                                            CXXXXXCXXXCXXXCXXXXXXXXCC
*-----11--1-----1-111-+111--111+1111111-+11++11+11+11+++++++=++=+++++++=++++++++1=1+++--- 1A-"""""""""""""""""-"-"-"""-IAAXXXZXAX-ZM-
+                                                                                           .CCCCCCCCCCCCCCCCC.C.C.CCC.          C  C
+                                                                                           'BBBBBBBBBBBBBBBBB'B'B'BBB'
+                                                                                           XHHHHHHHHHHHHHHHHHXHXHXHHHX
+                                                                                           CXXXXXXXXXXXXXXXXXCXCXCXXXC
*--  -------1--11-1111111+11111111111111111+++1+11++1+++=+===++1++1+++1=++1++1++111111- -I="""""-"""-""""-"-"""-""-""-"-IXXAXZXXXZ--Z
+                                                                                         CCCCCC.CCC.CCCC.C.CCC.CC.CC.CC          CC
+                                                                                          BBBBB'BBB'BBBB'B'BBB'BB'BB'B
+                                                                                          HHHHHXHHHXHHHHXHXHHHXHHXHHXH
+                                                                                          XXXXXCXXXCXXXXCXCXXXCXXCXXCX
*    --- ----1--1-11+111+111111+1111111+1+111+1111+=+=+++++===++==+1++1=++++++++11111- +=-"""""""""""-"""""""""-"-"""""-XAXXX-ZX--ZZZ
+                                                                                       C.CCCCCCCCCCC.CCCCCCCCC.C.CCCCC.     C  CC
+                                                                                        'BBBBBBBBBBB'BBBBBBBBB'B'BBBBB'
+                                                                                        XHHHHHHHHHHHXHHHHHHHHHXHXHHHHHX
+                                                                                        CXXXXXXXXXXXCXXXXXXXXXCXCXXXXXC
*     -- --   -1-  --1- 1-1111---111-11111--1+111111+=+++++++++++++++++++1+11-+=11-1- Z""--""--""""--""---""""-----"""""=XZXXXXZZZZXZ
+                                                                                      CC..CC..CCCC..CC...CCCC.....CCCCCC
+                                                                                      BB''BB''BBBB''BB'''BBBB'''''BBBBB
+                                                                                      HHXXHHXXHHHHXXHHXXXHHHHXXXXXHHHHH
+                                                                                      XXCCXXCCXXXXCCXXCCCXXXXCCCCCXXXXX
*-I1     -- --111+--11--1111111--+1++11-1111111+++++1+1111+++++++++=+111111+11+--1-+--"-""""-""""""""""-"""-"--"""""""-+XZZZZX-X-ZX-Z
+C                                                                                  C.C.CCCC.CCCCCCCCCC.CCC.C..CCCCCCC.C      C C  C
+                                                                                    'B'BBBB'BBBBBBBBBB'BBB'B''BBBBBBB'
+                                                                                    XHXHHHHXHHHHHHHHHHXHHHXHXXHHHHHHHX
+                                                                                    CXCXXXXCXXXXXXXXXXCXXXCXCCXXXXXXXC
*"""MI+     -------111-1--1--111111--1---1-1+++11+111+++1=+++++++++++1+II11+--- -A--""""""""""-"""""""""""""""""""""-=--ZXXXZXZZ-ZXZ-
+CC+                                                                              C.CCCCCCCCCC.CCCCCCCCCCCCCCCCCCCCC.CCC        C   C
+BBC                                                                               'BBBBBBBBBB'BBBBBBBBBBBBBBBBBBBBB'
+HH                                                                                XHHHHHHHHHHXHHHHHHHHHHHHHHHHHHHHHX
+XX                                                                                CXXXXXXXXXXCXXXXXXXXXXXXXXXXXXXXXC
*--""-"=-=-  ------1-11111---1--111111-1111111111111111+11111++++=++1++IX11---1Z=-""""""""""""""-"""""""-""-""--""-=ZZZZ-XXZAXXA--XZ-
+..CC.+CC                                                                       C.CCCCCCCCCCCCCC.CCCCCCC.CC.CC..CC.C    C       CC  C
+''BB'C                                                                          'BBBBBBBBBBBBBB'BBBBBBB'BB'BB''BB'
+XXHHX                                                                           XHHHHHHHHHHHHHHXHHHHHHHXHHXHHXXHHX
+CCXXC                                                                           CXXXXXXXXXXXXXXCXXXXXXXCXXCXXCCXXC
*=+IZMM=""+X=-  1---1-11-11111-1 --1---1111+11-11111+11111+++++1=111+111    =+-""""--""-"-""""""""""-"""""-""""""-AAA-M---ZXXXXXZ-ZZ-
+      C++C                                                                  C.CCCC..CC.C.CCCCCCCCCC.CCCCC.CCCCC+C   C CCC       C  C
+       CC                                                                    'BBBB''BB'B'BBBBBBBBBB'BBBBB'BBBBBC
+                                                                             XHHHHXXHHXHXHHHHHHHHHHXHHHHHXHHHHH
+                                                                             CXXXXCCXXCXCXXXXXXXXXXCXXXXXCXXXXX
*11111===IX---ZI++11 1--111111--1111--1111-1++1111111+1+1+11+1+11-1-1- -1+Z"""""""-""-""---""""-"-"+=--XZX--MM-XAXXZZ----M-XZZXXZ-ZXZ
+          CCC                                                             +CCCCCC.CC.CC...CCCC.C.+CCCC   CC  C      CCCC C      C
+                                                                          CBBBBBB'BB'BB'''BBBB'B'C
+                                                                           HHHHHHXHHXHHXXXHHHHXHX
+                                                                           XXXXXXCXXCXXCCCXXXXCXC
*11+1+++IIIIAXXZ-ZXAA=+11-1111+1111111-111-11111111+11111+11+11--- -1=XM"-"""-""""""""""""""""-"+-XAAIXAAAIIIIIAAXXZZ------XAXAZXZ-ZZ
+               C                                                       +.CCC.CCCCCCCCCCCCCCCC.+CC                   CCCCCC       C
+                                                                       C'BBB'BBBBBBBBBBBBBBBB'C
+                                                                        XHHHXHHHHHHHHHHHHHHHHX
+                                                                        CXXXCXXXXXXXXXXXXXXXXC
*+1===++=IIIAAAXXXXZ-XXXAII111-1111--111+111++1111111111111-----+IZ=+"-"""""""""""""""""----"+MA===XXXZA-ZXXXZXZXXXXZXZ--MMAAAXXX-ZXX
+                   C                                              CC+.CCCCCCCCCCCCCCCCC....+C          C              CC        C
+                                                                    C'BBBBBBBBBBBBBBBBB''''C
+                                                                     XHHHHHHHHHHHHHHHHHXXXX
+                                                                     CXXXXXXXXXXXXXXXXXCCCC
*===I=IIIIIIAAIII=XXI=I==IA==I=++111-1++1+1+11++11111+=1111=AM+-""""""""""""""""""""""ZI=IIAAAZI=IAAIAXZZZZ--XZZZZZZ--A----AAZXMZXX-X
+                                                             C.CCCCCCCCCCCCCCCCCCCCC+                     CC       CC CCCC        C
+                                                              'BBBBBBBBBBBBBBBBBBBBBC
+                                                              XHHHHHHHHHHHHHHHHHHHHH
+                                                              CXXXXXXXXXXXXXXXXXXXXX
*==++1==II==+=+=++++++++=I=+===+=+===+=+=+==+=++====IIAXZM=""""""""""-""""""""""""+MI11=AAZXZZZZXAAAIAAZXXZ------Z---ZZ--Z-XX-M-MMZAI
+                                                         C++++++++++.++++++++++++C                        CCCCCC CCC  CC C  C C
+                                                          CCCCCCCCCC'CCCCCCCCCCCC
+                                                                    X
+                                                                    C
*1111+++=++++1+++====I==I=========IAII=III=I=IIIIIIIAIIAIAXXXXAXZZXZXXXXXAXXAAAXAXII+==+AZZ--ZZ--ZXXAAAAAX----------M---M---M+"+ZAXZM
+                                                                                          CC  CC         CCCCCCCCCC CCC CCC C+C
+                                                                                                                             C
*I++=III=IIAIIIII=II=I=III=+=I=IIIIIIAIAI=IIIII=IIIAAIIAAAIAIIAAAAXXX-XXXXXXXXXXXZXXXAI=IZ-M-Z---Z-ZZAII=AXZM----M-MMM------ZZ=AA--+"
+                                                                    C                    C C CCC C          CCCC C   CCCCCC  C  CCC+
+                                                                                                                                   C
*II=IIIIIIIA=III=IIII==III=I=IA==IIII+==A=II==III++AAIAAIAIAXIAIXIIIAAXXX--Z-XZXZXZ--XAIIXAZ----ZZ----XI=IIXZ-Z-ZZ--------Z----ZM=M+"
+                                                                        CC C      CC       CCCC  CCCC       C C  CCCCCCCC CCCC  C CC
+                                                                                                                                   B
+                                                                                                                                   H
+                                                                                                                                   X
*I=IIIIIIAAAIII=IAIII==III=I===IAII=IIIIIA=IIIAIIAAIAAAAAIAIIIAIIAAIIAAAAAZ-ZZ-----ZZZXAAAZZZM--Z---M--XAIAAX--------M-M---M--M+++MM"
+                                                                          C  CCCCC           CC CCC CC      CCCCCCCC C CCC CC CCC  +
+                                                                                                                                   C
*I=IIIIIIIIIAIIIIIIIIII=IIIIIII=IIIIIIII=IIIIAAIAIIIIAAIIAAAI=IIIIIAAIAAAIAXXZZ--Z--ZZZXXXAZ-MZ----M---ZZXAAAZZZX----M=MMM-----M=+=--
+                                                                              CC CC        C  CCCC CCC          CCCC C   CCCCC CCCCC
*IIIII==IIIII=IAIIIAIIIAIAIIIIIIIIIAI=AA=III=IIAAIIAAAAAAAAAAIAAAAAXXAZXAXAXXAXXZ-----Z--AXZZ-Z--MM--MM--XXAAXXZX----M=-MMM-----=++MZ
+                                                                                CCCCC CC    C CC  CC  CC        CCCC CC   CCCCCCCC
*II==I===+=IAIIAIIIII=IAAAAIIIII=II=I==IIIIAAIAIIAAIAIAIAIIXXXXAXZXXZXXXZZ-ZZAXXAXX-ZZ-M-XXZAZZ-M--M-M-MM---XXAAAX----MMM=MM--M--+"=-
+                                                                         C        C  C C      C CC C C  CCC      CCCC   C  CC CCC+CC
+                                                                                                                                 C
*I==I=I==II=IAAAAIIIAIAAAAIAAIAIAXIIA=IIIAAAAIIAAAAAIAAXAXAXZA-XXXAXX-ZZXZ-Z--X--XXZZZ-----ZXZ-M-M-M-MMMM---XZAAXX-Z-MMMM=MMM---Z=+"=
+                                                             C      C    C CC CC     CCCCC   C C C C    CCC      C C    C   CCC CC+C
+                                                                                                                                  C
*I==I=III=IAAIAAAAIAAAAXAAAIAIAAAAAAAIIAAIAAAIAAAIAIAIXXXXXXXXZXAZXZX----Z----Z------Z-----ZZZZ-MMMMMMM---M--ZZXAXXZMM--MMMMMMM---+=+
+                                                                    CCCC CCCC CCCCCC CCCCC    C       CCC CC         CC       CCCCCC
*IIIA=IIIIIIAIXIIXAXZAAXXAAIAAAAXAAAAXAAAAAAAAXAAAXAAXXAXXXZZZ-ZZZ--ZZZ----M----MMM--M-Z--M--XX-MMMMMM---------XAXAXXZ-M--MMMM----=MX
+                                                             C   CC   CCCC CCCC   CC C CC CC  C      CCCCCCCCC       C CC    CCCCC
*AI=IAIIIIAIAAAXIAAXXAAXAAAAAAAAXZXZXXAIAAIXIXAAIAZXXXAAAZXZZZAX-ZZZ-----M------Z-MMMMMMMMMMMX-Z-M==MMMMMMM------ZXXXX-M-MMMMM-M-M-ZA
+                                                               C   CCCCC CCCCCC C            C C CC       CCCCCC     C C     C C C
*AIIAA=IIIIIAAAAXXAXAXAAIIXIIAXAXAAAAXAAAAAAAAIAXAXXXXXXXXZZXZXX--ZZZZX--Z-M---------MM--MM----Z--MM=MMMM--MMM-MM-ZAAXX-MMMMMMMMMM-XA
+                                                               CC     CC C CCCCCCCCC  CC  CCCC CC  C    CC   C  C     C          C
*IIAIIIIAAAIXAAIAAAIAAIAAAIXAAAAAAXAAXAAIAAAAAIAAXXXAAAXXXZXZ-ZX-ZZZZZ---Z---M-----Z-Z-M-MM----Z---M==-MMM----MM---ZXAIXZ-M=MMMMMXAAX
+                                                            C  C     CCC CCC CCCCC C C C  CCCC CCC CCC   CCCC  CCC      C C
*IAAAAA=AAAAXAAXIAAAAXAXXXXXXXAAXAXAIAII=IXAAXAAAXAIAAXXXXZZZZZ-X------Z-Z---M-MMM-XZZ--M-MM------MM==MMMM--Z----M--ZZAAXMMMMM=M=IA-Z
+                                                              C CCCCCC C CCC C   C   CC C  CCCCCC  CC    CC CCCC CC          C C  C
*XAAI=XIAIIAAAAAX=AAAAAIAIAAZZXAAAXAIAIAZXIIAAIAXAAXXXAX-ZZXZX-X-XXM--ZX-ZZ-Z-M---Z-XAX-Z-M-M--MM-MMMMMM-M-M---MMMMM-ZXAA--MMM==M-Z--
+                                                       C     C C   CC  C  C C CCC C   C C C CC  C      C C CCC     C    CC   CC C CC
*AAAIXAAAAAAAXAAAAAAIAAAXAAIAAAAAAIAIIAIAAIXAAAAXAAXXAXAXXZ-ZZZZ-ZZZ-Z-Z----MMMM-MM-ZZZXZ-MMMM-MMM-M=MMMM--MMMM-MMMMM-ZAAZ-MM==MM=ZZ-
+                                                          C    C   C C CCCC    C  C     C    C   C C    CC    C     C    C  CC  C  C
*AAAAXAAAAXAIAAAAAAAAAAXXAIAAAAAIIXAIAIAXAAA=XAXXXXXXXAXZZZZZZZ-ZZ-ZZ-Z--M-MMMMMMMMM-ZXXX--MM--MMMMM=MM=MM-MMMMM-MMMM-ZXAXZ--MMMM=M--
+                                                              C  C  C CC C         C    CC  CC     C  C  C     C    C     CC    C CC
*XAAAAAAAAAIIAAAAIAXXAAAXAAAAAIXAAAAIAAXXXXAAAAAXXXXZZXXZX-XZZZZZ-Z-XZ--Z--M=MMMM--M--ZZXZZMZ-MMMMM===M=MM-M-M-MMM-MM--ZXAX-MM=MMM=M=
+                                                         C      C C  CC CC C    CC CC       C     CCC C  C C C   C  CC    C  C   C C
*AZXXAIIIXAA=AIAAIIAXIAXXXXXA=AAAAIAAIIZXAAXXAXXXXXXXXXAAXXXZZZZ---MZ-MZMMMMMMMMMM-M-M--XZZ-MMMMMM====MMM-M-M=M-MMMMM--ZZAAX--M-==M=M
+                                                               CCC  C            C C CC   C      CCCC   C C C C     CC     CC CCC C
*AAXAAXXAAAAAAIAAIAXAIAXXXXAIAAIAXAIAXXAXZXAZXXAAAAXXX-XZZZZZ-Z-Z--ZZZ---ZMM-M-M-M-MMM--ZZ-Z-MMM-MM====MMMMMMM----=MMMMM-XAAZ-M=M==M-
+                                                     C      C C CC   CCC   C C C C   CC  C C   C  CCCC       CCCCC     C    C C CC C
*XXAAXAXXXAAIAAIAXXXAXAAXAAAAAAIAIXAAAAIAX-XAAIAXXAAXXZZXX-XXZXZ-ZXZ-----Z-MM--MMM-MMM----Z---MM-M-M===MMM--MM=-MMMMMMMM-ZAAXZMMM=M=M
+                                         C               C     C   CCCCC C  CC   C   CCCC CCC  C C CCC   CC  CC        C        C C
*XAXXXAXXXZAXAAAAAAIXXAAXIIIAAIAAIAIAAAXXAXXAXAAAAXXXXZZXZ-ZX-ZZZZ---MZ-M---M-MMMMMM-M--MZZZZ--M-MMM===M-MMMMM---MMMM-M---XIXXMMM====
+                                                         C  C    CCC  C CCC C      C CC     CC C   CCC C     CCC    C CCC       CCCC
*XAXXAZXAXXAAAXAAAIXAAAAXAII=AIXIIXIIIXIIXXXAX=AXAXXAXZZZZX-ZXZXZXZZ----=XM-MM--M-M-MMM-M--XZ----MM===MM-MM-MM-MMM-MMMMMM--AAZ--MMM=M
+                                                          C        CCCCC  C  CC C C   C CC  CCCC  CCC  C  C  C   C      CC   CC   C
*XXXXIXXXXXXAAXXXXXZXXXAXAXIAAAIAA=IXIIAAAXAXZXIXXXAXZXXZZZZ--XZZZ-Z----MZM----MMMM-MM-=M--ZZX-Z---MMMMMM-MMMMMM--MMMM-MMM-XXXXMMMMM=
+                                                           CC    C CCCC   CCCC    C  CC CC   C CCC      C      CC    C   C         C
*AXAIAAAAXAXXXAXXAXZAZXXAAAAAIAAIIIIAIAAAXXXXZXZXXXXXXZZ--ZZ-ZXXAZZZ-Z--MZ-ZZ-MM-MMMM--MM---ZXXZZZ--MMMMM---MMMMMMMMMMMMMMMZXXX--MMM=
+                                                       CC  C       C CC  C  C  C    CC  CCC      CC     CCC                   CC   C
*IAAIAAIAAAXXXXAAXZXXAXXXIXXAAAI+IIIAIIAAAXXXZZZXZXXZXAZZZZZZXZZXZ-X----M---Z-MM-M=MMMMMMMM-ZXZXZZ-MMMMMM-M--M-MM-MMMM=MMM-ZXXXZ-MMMM
+                                                                 C CCCC CCC C  C C        C      C      C CC C  C    C   C     C
*AIAAAIAAAAXIAXAXIXIX-XIXIAAXAIAIIIIAIXIIAAXZX-ZZZZXXXZXZXZZ-MZ-X-ZZ-MZM---MM-MZ-MMMM=MMMM--ZZXZX-ZM-MMMMM-MMMMM------=MMM=MZAX-----M
+                    C                        C             C  C C  C   CCC  C  C    C    CC     C  C     C     CCCCCCC   C    CCCCC
*AAIAIAIIAAAAXIAXAIAXAAAAAAAIAIAX=IXIAXAAAXXZX-ZZ--ZZXXZ-ZZ-XZZ-ZZZ---M-MMMM---MM--M==MMMM-M-ZXZXZ-Z-M-MMM---MMMMMMMMM=MM=M--XAX--MM=
+                                             C  CC     C  C   C   CCC C    CCC  CC CC    C C     C C C   CCC         C  C CC   CC  C
*AIIIIIAAIAAIAAAAIIIAAIAAAAAAAAAAAXAAAAIIIAAZZ-XZZ-Z--XXXZZZXXZXXZZZ-MM-MM-MZZ-Z-MMMMMMMMMMM--ZXXZ--MMMMMMM-MM-MM-MMMMM=M=MM-AAZX-MMM
+                                             C   C CC              C  C  C   C C           CC    CC       C  C  C     C C  C    C
*AIIAIAAIIIAIIAAAIAAAAAIAAAAXXAAAXXXXAAAAAAXXXZZXZXZZZ-ZZXZXZX-X-ZZ---MMMMMM-ZX-M-MMM=MM--MM---XXZ---M=MMMM---M-MMM-MMM=MM=MZXAAZ-M-M
+                                                     C       C C  CCC      C  C C   C  CC  CCC   CCC C    CCC C   C   C  C      C C
*AAIAIAIIXAAAXAAXAIAIIA==II=I===IIAIAAXAXXXIXAXZ-ZZXZZXZZZX--XXZZZ-ZX--MM----ZZZ-M--MM==MMMMM---ZXXM-MM====---ZMMMMMMMM=MM--ZXAAXZ-MM
+                                               C          CC     C  CC  CCCC   C CC  CC     CCC    C  CCCCCCC         C  CC      C
*AAXAAXAIAAXAAAAAAIAAAAAAAAAAAAAAAAAAIAXXXXXAIAXZXZZXZ-XZ---ZZZZ----ZXZMMM--MX---M-MMM-MMMMM---ZZXZMMMMM===--MM--MMMMMMM-MMMMXAAX-MMM
+                                                     C  CCC    CCCC      CC  CCC C   C     CCC         CCCCC  CC       C        C
*AAAIXAAAXAXAXXAIXAAAAAXXXXXXZZXXXXAXAAAAAAAAXXIXZ-Z---ZZZ---XZZZ--Z-ZMM==MM-Z-ZZ-----M=MMMM-M-ZZAX-MMM=MMMMMMM-MMMMMM===MM-MZXAX-M==
+                                                 C CCC   CCC    CC C   CC  C C  CCCCC C    C C    C   C       C      CCC  C     C CC
*XXXXAAAXXXXXXXZAXAXAZXZ-XZ-Z--XXXZXZXZZZXZAXXZZX------ZZZZX-X-Z-Z-ZZ--M==MMM--ZZ----MMMM=MMMMM--XZ-M-MMMMMM==MM-M=MM-==M==MM-ZXZ--==
+                       C  C CC                  CCCCCC     C C C C  CC CC   CC  CCCC    C     CC  C C      CC  C C  CCC CC  C   CCCC
*XXAXXXZAXAZZAZXXAXAXXX-XZXX-XZAXXXZXXXAXAZXZZXZZ--Z-XZXAX-XX--ZZ--Z---MMM-MMM-XXXZZ--M-=M==MMM-ZXX-MMZM-MMMMMMMM=--M--MMMMMM-XXAZMMM
+                      C    C                    CC C     C  CC  CC CCC   C   C     CC CC CC   C   C    C        CCC CC      C
*-XXZAXAXXZXAXZXXZXXXXZZZZZZZZ-ZXXZXXXXAXXZZZ---ZZMM-Z-ZZMZ-----Z---M--MM=MMMMMMXXXZ-MMM==-MMMM--XZ--MMM=MMMMMMMMMMM-MMMMMMMM-ZZX-MMM
+C                            C              CCC    C C    CCCCC CCC CC  C          C   CCC    CC  CC   C           C        C   C
*XXXXXXXAXZAAXXXXXXXXXXX-XZ--Z--XZZZXAXAAZAXZZ-ZZXM---Z---Z-ZZ------Z--M-MMM=MMMZZXZ-MMMM===MMM--XXZ-MMMMMMMMM=M==M-MMMMM=MMM-ZZX--M=
+                       C  CC CC              C    CCC CCC C  CCCCCC CC C   C       C    CCC   CC   C         C CC C     C   C   CC C
*ZAXXXXAAXXXAXZXXXXXXAAA-XXZXXZ--ZXXXAXAXAXAXZZZ-X-M--X-ZXX---------MM-M-MMMMM---ZZX-MMMMMMM+MM--ZZZZM-M-MM=M==MMMM-MMMMMMM=M---XZ-MM
+                       C      CC               C C CC C   CCCCCCCCC  C C     CCC   C       C  CC     C C  C CC    C       C CCC  C
*ZZXZXXZAAXIXZXXZXXAZXXZXAAXZ-XZZXX--ZXXXXXZ-ZXZXXZMZ----Z-----MMM--MX---MMM=MM-ZZAXZ-MM==M==-M--ZXA-MMM=MMMM=M=MMMMMMM===MMM--XX-MMM
+                            C     CC       C        CCCC CCCCC   CC  CCC   C  C     C  CC CCC CC   C   C    C C       CCC   CC  C
*ZZZZZXZXAAXXAAXAXXAIIXAAXXXZXZX-ZXXZZZZZXZAXXXA-X---------Z-M----M-MMM-MMM===M---XXX-M-MM===MMMMZZX--M=MMMM=MM=M=MMM-MM====MM-X-MMM=
+                               C               C CCCCCCCCC C CCCC C   C   CCC CCC   C C  CCC       CC C    C  C C   C  CCCC  C C   C
*--XXZZXXXXAIAAIAAAIIIAIAXAXZAXXZXXXXZZ-X-ZZXXXXXXZZ---M---ZZZZZZZM-----MMM=M==M--ZAAZ-MM-M==MMMMZZX--MMM--MMMMMM=MM=MMM=MMMMM-X-M-MM
+CC                                    C C          CCC CCC        CCCCC   C CC CC    C  C CC       CC   CC      C  C   C     C C C
*XXXXZZXXXXAAAAAIAAAAAXAXAXZXXAAXZXXZZ-ZZX-ZXZZZXXXZ-M-MM-----XXMZ----MMMM=MMMMMMM-XXZ-MM-MM=MM---ZAX-MMMMMMMMMM==M==M-MMMMMM--Z--MMM
+                                     C   C         C C  CCCCC    CCCC    C       C   C  C  C  CCC   C          CC CC C      CC CC
*X-ZXXZZAAAAA=IAIAAAIAXXXXXZ-XXZ-XZZZ--XZZ-ZZX-XXXX--------MZ-Z-Z-Z----M=MMMMM=M=M-XXAZM-M==MMMMM-ZZ-MM=MMM=MM===M=M=M-MMM-M=ZMX---M=
+ C                         C   C    CC   C   C    CCCCCCCC  C C C CCCC C     C C C     C CC     C  C  C   C  CCC C C C   C C   CCC C
*XZXZXXXAIAI=AAAXXAXZXZXZXZZX-ZZZZZ-ZZ-Z-Z-Z---X-Z-X-Z--MMM-MZ--X-Z-M--MMM=======M-ZXAX-MMM===MM--ZXX-M=MMM=M===MM===MMMMMMMMM--ZMMM=
+                            C     C  C C C CCC C C C CC   C  CC C C CC   CCCCCCC C    C   CCC  CC   C C   C CCC  CCC         CC    C
*ZXXZXAAIIAAAAXXXXXZ--Z-ZZZZ--ZZZZZZ-Z-ZZ-M---ZXZZ-Z----M-MM---Z--Z-Z---MMM======MMMZIA--M-====MMM-XX-MMMMMMMMMM====MMMMMMM-MM-Z--=M=
+                   CC C    CC      C C  C CCC    C CCCC C  CCC CC C CCC   CCCCCC      CC CCCCC   C  C          CCCC       C  C CCC C
*ZAIII=IIAXAAX-ZZZZZ--Z-ZZX--ZAXXZXZZZA--M-----Z-ZZZ-M---M--MMZ-Z-ZZZZ--M-M=======MM-AAZ--MM===MMM-ZZ-MM=M=MMM=M====M=MMMMMM=M---M===
+             C     CC C   CC          CC CCCCC C   C CCC CC   C C    CC C CCCCCCC  C   CC  CCC   C  C  C C   C CCCC C      C CCC CCC
*I=II==AXAZZ-Z-ZZ--ZZZ-XZXXXIXX-XMZ--M=IA-Z-M--MXZZ--M-M--=MM-M---ZXZZZM-M-MMM====MM-AXAZ-M-=M==MMZ-Z-MM====MM-M-M=+=M=M=M===M-MM-=M=
+           C C  CC   C        C   CC C  C C CC    CC C CCC  C CCC      C C   CCCC  C    C CC CC   C C  CCCC  C C CCC C C CCC C  CC C
*===AAAXXZZ-ZZZZZXZXZZ-ZXAXX-ZZ-ZX--Z-X-=XZZ---M-M-M-MM--MMMMMM-M---XAXM-MMM=M====MMMZAAXMMM-M+MMM--Z--MM===MMMMMMM===M=MMMM-M-Z-MM=M
+          C          C     C  C  CC C CC   CCC C C C  CC      C CCC    C   C CCCC          C C   CC CC  CCC       CCC C    C C C  C
*IIIAXZXX-XZXZ-ZZXZ-Z-AZZ-ZZZZZXX---MZXM--M-XZX---Z----MZM--MM=M-MZZXXAZ-MMMMM=M===MM-XAA-MMMM==MM-----MMM===M-MMM=M===MMMMMMM--MMM==
+        C    C    C C   C       CCC    CC C   CCC CCCC   CC  C C       C     C CCC  C   C    CC  CCCCC   CCC C   C CCC       CC   CC
*XXXXZZZZZZZZXZZ-X--ZMZ---XZXXXXZ-Z--X----MM=MX-MZ-MM-MM-MM-====M=MMMXXZ-MM==+==M===MMXIAZMMMM====M-Z-MMMM==MM-MMM=======MMMMMMM-MM==
+               C CC   CCC       C CC CCCC  C  C  C  C  C  CCCCC C      C  CCCCC CCC          CCCC C C    CC  C   CCCCCCC       C  CC
*ZZ-ZX-ZZZZZ--XZX----ZZX-AAAXXZZ-Z---Z--M-MM-M+--Z--ZMMM--M==M=M-=M-Z-=AZZMM-=====+=MMZAAAZM=M==M=MM-ZM-M=M=MM-ZMMMM=====M-MM----MMMM
+  C  C     CC   CCCC   C       C CCC CC C  C CCC CC    CC CC C CC C C      CCCCCCCC        C CC C  C  C C C  C     CCCCC C  CCCC
*XX-ZZ---Z-XX-X--ZXZXIIIAAXZZZ-Z----MM=M===-MMM==M--MZM-M==M===M==MM-AXIX-MMMM=M===+MM-XIA-MMM=M=M=----MMM==MM----M=====MMMM-MM-MM=MM
+  C  CCC C  C CC             C CCCC  C CCCC   CC CC   C CC CCC CC  C    C    C CCCC  C   C   C C CCCCC   CC  CCCC CCCCC    C  C  C
*ZXZZXZZZX-XZZZZZXAIIIAZX-Z--M--MMM-MZZZ-AXZZ---Z-=--M-====M+======M-XXAX--MM==M==+====ZIIXMMM====MMM-MMM===MM-Z--MM====MMMMM----MM=M
+         C              C CC CC   C    C    CCC CCCC CCCCC CCCCCCC C    CC  CC CCCCCCC       CCCC   C   CCC  C CC  CCCC     CCCC  C
*Z-XZZZZXXZZXAAXIAIAXZ--Z-M--M--M----ZXXZXXZM-MM=-ZMM=-+++==+=+==+==M-XAI---M-M-M-----ZAAAAAAXZAX-----M===M==M-X-MMM==+==M=MMMM-MM===
+ C                   CC C CC CC CCCC        C  CC   CCCCCCCCCCCCCCC C   CCC C C CCCCC           CCCCC CCC CC C C   CCCCC C    C  CCC
*X-Z-ZXXXZAXAXII=XXZ-ZZZ----A=XZ-M-=ZMMMM=MMM=-M=MMM-MM-Z--ZXAI1-1111++=I=====+=+==I=AAXXIIXXIAAXAXXIIA=AXZ-=MZ-Z-M=M=M=+MMMM---M-MM=
+ C C               C   CCCC    C CC     C   CC C   C  C CC                                                CC  C C C C CC    CCC C  C
*ZZXXZXXAAAAIIAXXZ-ZZ----XIA-ZZXXAXXAAIXXAI==+=++1+++=++=++++====IIII=AAIXAAIIXIXXAXAZAZXZZXZZ-Z--X-M-ZZ---XAXAZZ-M========MMM-MMM===
+                 C  CCCC   C                                                                 C CC C C  CCC      C CCCCCCCC   C   CCC
*--ZZXAIII=AXAX-X----XXXXIAXXAIA=+===A=IAAXAZXAAI=AAAAAAIIAAAAAXAAAAXAAZXXXZAXAAXZZXXZZ----ZZZ-Z---------M-MMM--ZZZ---===+=MM=MMMM===
+CC            C CCCC                                                                  CCCC   C CCCCCCCCC C   CC   CCCCCCCC  C    CCC
*XZXAIIAAXZZZZZ--M-AXAXZ---XAI=AXAXXXZX-ZA-IAAAXAXXXXXXIIAAXXXXXZZZXAXXXZXZXXXXXAZZXAZX--Z-ZXZZ---MXZ-Z--Z-Z-M--MM-XZXZXXZ-===M-M=MM=
+              CC C     CCC            C  C                                            CC C    CCC   C CC C C CC  C       CCCC C C  C
*AI=IXXXX---M--X=XXXZ-ZZZI1==X-ZZX-ZZZZXIIIAAXXXXXXZAAAAXX-Z-ZXZXAXAXIAAXXZXAXXAXAXXAAA-XAAAXAZZXXZZZ-XXZZXXZZXZXAX-M=M-XAAZ-MMMMMM==
+        CCC CC      C        C   C                       C C                          C             C             C C C    C      CC
*IIIXX---MZ--ZAAXAXAAII==IXZZ-Z--XXX-AAIIAAXAAAAXXAIIIAXIAAAAAAAAZXXXAZIXXAAAAXZAAAXXAAIAAXXXAAAAXXXXZXXAAAXAXAAX-MMMM=-XAAZ-MMMM==++
+     CCC  CC                C CC   C                                                                            C    CC    C    CCCC
*XXZZZ-M-XAIA==+==+=IIA-X-A-M-ZZXIXAAIIAIAIIAIIIAIIAAAAXAAIAAAAAXAXAXXXAXXAXXAXXXAAAAXXAAXZAXXXAAXAAXXXAAXXXAZZM-M====M-AIAZZM+M=====
+     C C              C C C C                                                                                  C CCCC C      C CCCCC
*X-X--I+=++==I=IIIAAXAZ-Z-ZXXXXAXIIA=IIAAAAIXAAAAAXXXXXZXAAAXAAXXXXIAAAAXXAAXXXXXXXAAXZXZXXXXXXXXXZAXZ-ZX-Z--M-M--M=+=MA+AXX-X""M==ZX
+ C CC                 C C                                                                            C  C CC C CC CCC      C ++ CC
+                                                                                                                             CC
*Z-Z=+=I==IIXAXXIIZZZXZZXZXXAAIIIAAI=AAXXXAXXZZAXXX-XXAZAXAXXAXZXX-XZX-ZAXA--ZXXXIXAXIIAIAZZZ-XX--MZMMM---M-M-Z--MMM===-AAIXZZX--+XZM
+ C                                                C              C   C    CC                C  CC     CCC C C CC   CCCC       ..C
+                                                                                                                              ''
+                                                                                                                              XX
+                                                                                                                              CC
*ZI+=XAIIII=IAAAAXXXZXXXXXXXAIIIXAXXAZXXXXZAXXXZ-----ZZXXXA--X--ZXZX--Z-XZ-ZZZ-XZXAXX-ZZZAZZZZZXXZ----M-M----M-M-MMM===XAXXAX-Z-=-XZ-
+                                               CCCCC      CC CC    CC C  C   C      C            CCCC C CCCC C C   CCC      C CCC  C
*==IIII==I==IIAAXAXAXXXAAAAXXAXXXXXZZZZXXXXXZZZ--M---Z-ZZXZ----ZZ--Z-Z---Z-ZZZZXZZZ-Z-ZZZZX-X---XZ--Z------Z-MMM-M--MMMZIAAIAX-------
+                                              CC CCC C    CCCC  CC C CCC C        C C     C CCC  CC CCCCCC C   C CC          CCCCCCC
*======IIAAAZXXXZXXXXZXXAXXXZXZZXXX--Z-XZ-Z--Z--M--Z-------------M---M--------Z--Z--MMM-Z-Z-----ZZ-Z--M-Z-ZZ--MMM--MM==-AIAAAAXZ-MM-M
+                                  CC C  C CC CC CC CCCCCCCCCCCCC CCC CCCCCCCC CC CC   C C CCCCC  C CC C C  CC   CC  CCC        C  C
*==IIAAXZZ-Z-Z-XZXXX-XAXXXZZX-ZXZZ-ZZZXZ-Z--M-M-Z--MZ-MZMM-M-M--ZZMZ-M---MMZMM--M-Z-MM--Z---Z-M--ZMZ-------ZM---MMM-MM=-XAXAXAIAAZ--M
+         C C C     C        C    C     C CC C C CC  C    C C CC    C CCC     CC C C  CC CCC C CC   CCCCCCC  CCC   C  CC          CC
*IAXXZ--XZZZZZZZZXXXZZZZZXZ--ZX--ZZ--Z-X--Z--------MZ---Z--M=-MM----M--M--M-MM-M--MMM---MMM-----Z-ZM------Z------MMMMM-=M-XIAAXXXAXZM
+     CC                   CC  CC  CC C CC CCCCCCCC  CCC CC CC  CCCC CC CC C  C CC   CCC   CCCCC C  CCCCCC CCCCCC     CC C
*XXXZZXZZ-ZX-ZZZZXZZZZZZZZ-Z-ZZ-ZZZ---------M-----ZM-M-----M-M-MM--M-M-M--M-M-M---MM-MMM--MMM-------M-----Z---M-Z--MM--MMMMZAAAAXXXAX
+        C  C             C C  C   CCCCCCCCC CCCCC  C CCCCC C C  CC C C CC C C CCC  C   CC   CCCCCCC CCCCC CCC C CC  CC
*ZZZXZZZXZZXXXZZXAZXZXZ--ZZXZZZZZ-XZZ---Z-Z-----Z--M---M-M--M--M--M-MM---M--M-M---M-M-=M--M-M-MM-MZ----MM----MM-M--M-Z--MMM-XZXAAX-XA
+                      CC        C   CCC C CCCCC CC CCC C CC CC CC C  CCC CC C CCC C CC CC C C  C  CCCC  CCCC  C CC C CC   C      C
*AA=AAIIAXXXXXZ-XZXXXZXZ-ZXXXXZZX--ZZ-Z----MM-Z---------M--M-M---M----MMM--MMZ---MM-MMM-MMM--MM----Z-MZM------Z----MM--XZMMM--ZZAIX-X
+              C        C        CC  C CCCC  C CCCCCCCCC CC C CCC CCCC   CC   CCC  C   C   CC  CCCC C   CCCCCC CCCC  CC     CC     C
*AIAXAIAXXZXXXZAXZZZZXZZZZXZ--Z-ZX-Z---Z-MM-X----M---Z--MMMMM-M-MM--=M-MM--MM--M-M-M-MMMMMM-MMM--MMMMMMM-MM=MMMMMM---M--ZMMMMM-MZAAXM
+                           CC C  C CCC C  C CCCC CCC CC     C C  CCC C  CC  CC C C C      C   CC       C  C      CCC CC      C
*IIIAAAAAAAXAXXAXAAXXZXZZXZX---ZX-ZZ-Z-Z--Z---------------MMM--MMMMMM--MMM-MMMMMMZ---MMMMMM-MMM--M-MMMMM-M=MM-MMMMMMM-M-MMMMMMM--ZAAX
+                           CCC  C  C C CC CCCCCCCCCCCCCCC   CC      CC   C       CCC      C   CC C     C C  C       C C       CC
*IAXXXAIAAXAAAXAXXAAAXXZXAZZZZZ-Z----Z---Z--Z-----ZMMZMMMM-MM-M-M=MM-MMMM-MZM-MM--M--M-MM--M-MMMMMMMMM-MMM=MMMM---M=MMM-=---=M-MM--ZI
+                              C CCCC CCC CC CCCCC        C  C C C  C    C   C  CC CC C  CC C         C   C    CCC C   CCCCCC C  CC
*AXXAAAXAIXXAXAAIXXXXAIAAXXZXZX-Z-----Z-XZZZ---M---M-Z-----M=M=-M-MMMMM-MMMM-Z=MM-MM-M-----MZ-MM---MMMMM-M-M-MM-MMMMMMMMM=M-Z-=M-----
+                              C CCCCC C    CCC CCC C CCCCC C CC C     C    C C  C  C CCCCC  C  CCC     C C C  C         C C CC CCCCC
*AAZXAAAAXAAAXXXXIAAXAAAAAXAAXXXXZXX--XX---ZX----M--MMMM------MMMMM-MMMM=MMM--MZMM--MM-=-M-M-M-----MMMMMM-MMMMMMMM=MM-MMMMMMM--MMM-M-
+                                   CC  CCC  CCCC CC    CCCCCC     C    C   CC    CC  CCC C C CCCCC      C        C  C       CC   C C
*AAAXAAXXXXXXXXAXAXXXXXXXAXAAXAIXXXXZZ-XXZZZX-Z------------M--MM-M-MMMMM=-M-MZM--ZM--MMMM-MM-MMMMM-MM-M-M-MZ----MMMMM-MMMMMMMMMMMMMMM
+                                     C      C CCCCCCCCCCCC CC  C C     CC C   CC  CC    C  C     C  C C C  CCCC     C
*XXXZXXXXXXZXXXZXXZZAXXXZAXAXXXAXAXAXXZAAXXZXX--ZXZ--MZ--Z---MMM-M---MMMMMM------MM---MMMMM=MMM-M---MMMM-MMZ-Z-ZM---M-MMMM=MM=MMMMMM=
+                                             CC   CC  CC CCC   C CCC      CCCCCC  CCC     C   C CCC    C   C C  CCC C    C  C      C
*XZXZZXZZZXAZXZAZ-ZM-ZXZZZZZ-ZXXXAZXXXXAAAXAXXAXZXZ-ZM-MZZZZMMZM--M-M-M-MMMMMM-M---M----MM-MMMM=MMMM--M=-Z-----Z-X-M-M---M=M===M=MM=M
+                C  C       C                      C  C         CC C C C      C CCC CCCC  C    C    CC CC CCCCC C C C CCC C CCC C  C
*ZXZXXXXZZXXXXZZZ-ZXZXZ-XXZZ--ZZZZ-XXXXXAXXXXAAAXXXZZ--ZZ-Z--Z-ZM--MMMM-M-M-M--M-------MM-M----MMMMMMM-M-M-MM-M----ZXZZZ-Z-M===M==MM=
+                C     C    CC    C                  CC  C CC C  CC    C C C CC CCCCCCC  C CCCC       C C C  C CCCC     C C CCC CC  C
*XXZZXXXZZZXZXX-XZZZZ-XZZZZXZZ-ZXZZZZXXXXXZXAXXIXAXZX-Z-XZ-X-X-Z--ZM-M------M-------M-----M-M-MM-M-MM-M-MM---MM--ZZ---XXXZ-M-===MMMMM
+              C     C        C                      C C  C C C CC  C CCCCCC CCCCCCC CCCCC C C  C C  C C  CCC  CC  CCC    C CCCC
*Z-ZZZXXXZZZZXZZ-ZZXZZ-Z-XZZZZ-Z-Z---X---Z--XX-XXAXAX-ZZZZZX-Z--Z-----M-M--M-MZMM-M-MM-MM--MMMMMMMM-M-MM-MM-MMM--Z--X----XZM-MM==MM=M
+ C             C     C C     C C CCC CCC CC  C      C      C CC CCCCC C CC C    C C  C  CC        C C  C  C   CC CC CCCC   C  CC  C
*ZZXX-ZZZXAXZXXZZZZXZZZX-XXXZZ---Z--ZZZXZZM-ZZ-ZZXZZ-XXAZXXZXZZ-Z--ZZ--M---MZ--M---M-M-Z-M-MM---M-MMMM-MM--MMMZ--MZXZ--Z-MMZXA--====M
+    C                  C     CCC CC       C  C     C          C CC  CC CCC  CC CCC C C C C  CCC C    C  CC    CC    CC C     CCCCCC
*XZXZXXZX-ZXZZXZXXZZXXXXZZXX-X--Z----Z---ZM---Z-----Z-ZZZXZZ-ZZZZZZX-X--M--MMM=-M-M--MMMMMMMMMMM-MMMMMMMMMM-MM-M--M-----Z-MMMMZZ-ZM=M
+        C                  C CC CCCC CCC  CCC CCCCC C      C       C CC CC   CC C CC           C          C  C CC CCCCC C      C  C
*XXZZXZXZ-XZXZXZZZZXXZZZXXXZ-X-ZX----Z---Z--------------Z-Z--Z--ZAZXZZZM-MM--MM-M-M-----MMMMMMM-MMM--MMMMMMMMMMM--M--M--ZZZZ-==MZXX--
+        C                  C C  CCCC CCC CCCCCCCCCCCCCC C CC CC        C  CC  C C CCCCC       C   CC           CC CC CC    CCC    CC
*ZZZZXZXXZZZZZZZZZ-ZZZ-XZXZXZ--ZZ--M--X-Z--Z-MXZMM-Z-M---Z-M---M-ZZ-Z---Z-M---M-ZM----MM=-MMMM-MMMMM-MM-MMMM-M-MM-M--MMMMZ-MZZMM==MZX
+                 C   C      CC  CC CC C CC C     C C CCC C CCC C  C CCC C CCC C  CCCC  CC    C     C  C    C C  C CC     C     CC
*XXZX-AZZXAXZ-ZZAXZ--XZ-ZXZZZ-ZZZZZZ-X-XZM-X---ZMZ-MM--Z-Z----ZZ-M-----Z-M-M-X--ZZM--MM-MM=MMM-M=--M-MM-MMMMMM----M---MM--M---ZZ-Z="+
+    C       C     CC  C     C      C C   C CCC   C  CC C CCCC  C CCCCC C C C CC   CC  C  C   C CCC C  C      CCCC CCC  CC CCC  C C+C
+                                                                                                                                  C
*XXXXX-ZXZZXZ-Z--X-Z----ZZ-M--Z---Z---Z--ZXAX-MZ--MMM-M-MMMMMMMMMMM-M-------M--ZZ----MM-MMMM-MMMMM-MM-MMM-MMMM-MMMMM-MMMM-MMM-MMM-ZM+
+     C      C CC C CCCC  C CC CCC CCC CC    C  CC   C C           C CCCCCCC CC  CCCC  C    C     C  C   C    C     C    C   C   C  C
*ZZXZZZZXZXZ-ZXZ-XX----Z---Z-------Z-Z-ZZ-XX-M-X-Z-M--M--MM-M-MMM-M------M--M---------------M-MM-MMMM--MM-MMMMMMM-MMMMM-M-MMM--MM--M-
+           C   C  CCCC CCC CCCCCCC C C  C  C C C C CC CC  C C   C CCCCCC CC CCCCCCCCCCCCCCC C  C    CC  C       C     C C   CC  CC C
*ZX-ZZX-ZZX-ZZZ-ZZZZX-Z-M-ZX-M----------ZM--M---Z---X---ZM---MM-MMM-M-M--MM--M-M-MM-Z-----Z-M--M---M-=MM=-MM-MMMM-M--MM-=MM-MMMMMMMMM
+  C   C   C   C     C C C  C CCCCCCCCCC  CC CCC CCC CCC  CCC  C   C C CC  CC C C  C CCCCC C CC CCC CC  CC  C    C CC  CC  C
*XXZ-ZZZZZX--ZZ-ZXXMZZ-Z-----X-ZZ--ZZ-ZZZ----Z--Z--XZM=XX--ZZ--Z-MMMM=MMMMZMMM-Z-----MM--M----Z---MMM=ZMMMMZ-M--MMMMM--MM-MM-MM=--MMM
+   C      CC  C      C CCCCC C  CC  C   CCCC CC CC   C  CC  CC C    C        C CCCCC  CC CCCC CCC   C      C CC     CC  C  C  CCC
*XXZAXZZZ-ZZXXXZ----Z--ZZZZ--Z-ZZZ--ZZZ-----MM-M------MZX---Z-MZM-MM---MM=-ZMMMM----MMM-Z---Z-Z---M-MM------MM---MM--M--MMMMMMMM-M=MM
+        C      CCCC CC    CC C   CC   CCCCC  C CCCCCC   CCC C   C  CCC  CC     CCCC   C CCC C CCC C  CCCCCC  CCC  CC CC        C C
*XXZXXZXZ-XZZZZZZ---ZZZ-ZZ--Z-ZZZZZ-Z-------MMM------MM--ZZ--ZM--MM--MMM-=M---MMMMMMMMMMZ-MM-----MMMMM-----MMMMMMMM-M-M-MMMM=M==MM=MM
+        C       CCC   C  CC C     C CCCCCCC   CCCCCC  CC  CC  CC  CC   CC CCC           C  CCCCC     CCCCC        C C C    C CC  C
*ZXXXZXXZ-X-X--ZZ----Z--Z-----ZZZZZ----Z----M-MM--M--MM-M--MZM-M--Z-Z--M--MMM-MM-=-MMMM--MMMMM-MMMMM--MM--M-MM-MMMMM--M--MMM=MMMMMM=M
+        C C CC  CCCC CC CCCCC     CCCC CCCC C  CC CC  C CC   C CC C CC CC   C  CCC    CC     C     CC  CC C  C     CC CC   C      C
*-XXXXXZXZXX-ZZZ-ZZ--Z-ZZZMZZ--Z-XZZ-AM---MMM--M-MMM=--M-MMM---M-ZM--M==MM=Z---==M-MMMM=MMMMMM--M--MMM-MMMMM-MMMM=MM-ZMMMMMMMMMMMMMM=
+C          C   C  CC C      CC C   C  CCC   CC C   CCC C   CCC C  CC CC  C CCCCC C    C      CC CC   C     C    C  C               C
*ZAXAXXXZXXXZ-ZZZ-Z--Z--ZZZZZZ-ZZ----M-MMMMMMMZM---MM-MMMM-MM-MZM-------MMM--M-M-M-MMM-M-MMMMMMMMM--MMM--MMMMMMMM-=MM=MM-MMMMMMMMMMMM
+            C   C CC CC      C  CCCC C         CCC  C    C  C   CCCCCCC   CC C C C   C C         CC   CC        CC  C  C
*ZZZXZZZXXZXZZZ--------ZZX--Z--Z-Z----M--MM-MMM=M-----MMZM-M-M----M------Z-M--Z-----M--------MM---+Z-------M--M-M-M---MMM---M-MMMMMMM
+              CCCCCCCC   CC CC C CCCC CC  C   C CCCCC    C C CCCC CCCCCC C CC CCCCC CCCCCCCC  CCC  CCCCCCC CC C C CCC   CCC C
*Z-XXZXXAAXXZZZZZZZZ--Z-ZZXZ-----Z--Z-M--MMMM----=-M------M-MMMM-MM--ZZ-Z--Z--XX----MZ--MM-MM-ZM--=----M----Z------ZZZ--M--ZZZ--M-MM=
+ C                 CC C    CCCCC CC C CC    CCCCCC CCCCCC C    C  CC  C CC CC  CCCC  CC  C  C  CC CCCC CCCC CCCCCC   CC CC   CC C  C
*-XXZXAAIAXXAAXZXXXXZXZZZXXZZ-XZX----XZ-Z-Z-ZZ--M-X---ZZ---M--XZ-M-Z---Z------M----ZZM-=MMM---M--M-=MMMMMMMMM--MMMZM=M-M-ZZ-ZZZZZZZM-
+C                           C   CCCC  C C C  CC C CCC  CCC CC  C C CCC CCCCCC CCCC   CC   CCC CC CC         CC     C C C  C        C
*XXXXAXXXXXXXXXZXZAXXXZXXAZZX-ZX-ZZZXZ--Z---Z-M--X-Z-----ZZZ--M--M-MMMMMMMM-MMMMM-MMM==M-====-M-MMMM=M=M=MMM==M=M=M=MM--MMMMM-M---M--
+                            C  C     CC CCC C CC C CCCCC   CC CC C        C     C   CC CCCCCC C    C C C   CC C C C  CC     C CCC CC
*ZZXXXZZXXZXXXXZZXZZXXZXZZXZXXZZ--Z--XZZ-Z-ZZ-M-M-Z-ZZ-MZ---M-MMM--MMMMMMMMMMMMMMMM-----=======-M--MMMM===MM=MM=MMM=MMM-MMMMMMMMMMMMM
+                               CC CC   C C  C C C C  C  CCC C   CC                CCCCCCCCCCCCC CC    CCC  C  C   C   C
*XZZZZZZ---ZZZXZ-ZZZZZXXZZZXXZZZ--Z-ZXZX-Z--------ZZXZ-M-M--MMM-MMMMM-M-=M-MMMMM-MMMMM--MM=M=+=====MMM=M==MM=MMM-MMM-MM-=MMM-=M=MM-MM
+       CCC     C               CC C    C CCCCCCCC    C C CC   C     C CC C     C     CC  C CCCCCCC   C CC  C   C   C  CC   CC C  C
*-ZZXZZZZZZX--Z--Z-X-Z-XXZ-ZZ----ZZ-ZXZ-ZZ-M-Z---X-X-XZMXM--X-MMMM--MMMMMMMMM-M=MZ-MMM-MM-ZMMM-===MZ====-=MMM==MMMM-ZMM-M=M-MM===M===
+C          CC CC C C C   C  CCCC  C   C  C C CCC C C     CC C    CC         C C  C   C  C    CCCC  CCCCCC   CC    C   C C C  CCC CCC
*ZZZZX-ZZZXZ--XZ--Z-Z-ZXZZ-Z---MZ-Z--Z-Z-Z------M-ZZZZ-MM---Z----Z-M-MMMMMMM=MM-MMMMMM--MMMXMM=MM-M==+M==MMM=+M=======M----MMM=M=M=M=
+     C     CC  CC C C    C CCC  C CC C C CCCCCC C    C  CCC CCCC C C       C  C      CC      C  C CCC CC   CC CCCCCCC CCCC   C C C C
*XXZZXXZZZX----Z---ZZ--ZXZ-Z------ZZZ----Z---------M-ZZ-M---Z--Z---Z------MMMMM-MMMMMMMMMMMMMM-M-Z----MMMMMMMMM-MMM===+==MM-=MMMMMM==
+          CCCC CCC  CC   C CCCCCC   CCCC CCCCCCCCC C  C CCC CC CCC CCCCCC     C              C C CCCC         C   CCCCCC  CC      CC
*ZXXXXXX-ZXZZZZ-Z--X-XXZZ-ZZ-X-Z-ZXZZZZ---ZZ----MMM-----M-----------Z---MMMM-MMMMMMMMMMMMMMMMM---Z-M---Z--MMMMM--MMMMMM--=++==M--M-M-
+       C      C CC C    C  C C C      CCC  CCCC   CCCCC CCCCCCCCCCC CCC    C                 CCC C CCC CC     CC      CCCCCCC CC C C
*-ZXAZZAXX-ZZ-XZ-MZZZXZXXZXXZZZ-----ZZMM----M-------Z--Z-Z-MZ-MM---Z------MMM=--MMMMMM=MMMMMMMM-M-M--M-M----M-M==M=M-M-ZMMM=+"+++---X
+C        C  C  C              CCCCC    CCCC CCCCCCC CC C C  C  CCC CCCCCC   CCC      C        C C CC C CCCC C CC C C C    CC+CCCCCC
+                                                                                                                            C
*ZZZXXZZXZZXXXZZZZ-Z-ZXAZXXXZZ-Z-ZAZXIXZZ--ZZZX--MMZ-M---ZZ----MMZ---Z-Z--M---MMMMM=M=M=MM-MM=MMMMM--M-MMMMMM-M-MMM-MM--MM-M-MM=+-"-"
+                 C C         C C        CC    CC   C CCC  CCCC   CCC C CC CCC     C C C  C  C     CC C      C C   C  CC  C C  CC.+.+
+                                                                                                                                'C'C
+                                                                                                                                X X
+                                                                                                                                C C
*ZXZZZZZX-ZZXZX-XXZZZZXXXXXXXZXZZZZXXXAAXXZXZXX-----------XM-M-Z-ZXM--XZ-Z----M-MM==MMMMMMMMMMMMM-M--MMM---MMM-ZM-M--MMMMMMMMM=--=M++
+        C     C                               CCCCCCCCCCC  C C C   CC  C CCCC C  CC             C CC   CCC   C  C CC         CCCC CC
*XXZXZZXXIIAXAAXXAAXXXXAAXXXXXXXZXXZXXXAXXXZXXXZZ-Z-ZZ-XMZ---Z---ZZZ--X--X-M-=---MMM-M=MMMM=MMMMMMM-ZMZ-----MMM---MM---MMMMMMMMM-MMMM
+                                                C C  C   CCC CCC   CC CC C CCCCC   C C    C       C   CCCCC   CCC  CCC         C
*X-ZZ-ZXAXAXXXAAXA=IXAAXAXZXXAXXAIZXXZXXAXXXXXXZZZ-ZZZZ-M-Z-MZ--X-ZM-Z-ZZ-----M=-==ZZZZMZM-MMMMMM--M-MMM=M-=--M=-M=M-M-M=M---=MMM---M
+ C  C                                            C    C C C  CC C  C C  CCCCC CCCC       C      CC C   C CCCC CC C C C C CCCC   CCC
*--Z-ZZXZXZXAIXXAXXXXAAAAAAXAZ-XXXXXX-ZZ--XZZZ--XXXZZ--Z--Z---------M--M-MM-Z-MMM=MMMM--M--MMMM-M-M-MMM--MM-Z=MMMM--MMMM-MM=MM=-MM==M
+CC C                         C      C  CC    CC     CC CC CCCCCCCCC CC C  C C   C    CC CC    C C C   CC  C C    CC    C  C  CC  CC
*--Z--Z----ZXXZXXXX-ZZXXXXXZAXZ-X-ZZ-----ZZ--Z--ZZAZZ-ZZ-----Z--ZMMM-----M-M----MMMMMMMM=-MM-MMMMMM-ZM---M---=-M--=--M-M-M-M-MMMM==M=
+CC CC CCCC        C           C C  CCCCC  CC CC     C  CCCCC CC    CCCCC C CCCC        CC  C      C  CCC CCCCC CCCCC C C C C    CC C
*Z--Z---M-----Z-ZZZXZM-Z-M-ZZZZ--MZM---MM---Z-Z-Z-----X-ZMZZ---------MMZZ-MZMM--M-----Z-M===--MM-M-MZ-M---MMMMMM--MM=M-MM-MMMMM=====+
+ CC CCC CCCCC C      C C C    CC   CCC  CCC C C CCCCC C    CCCCCCCCC    C    CC CCCCC C CCCCC  C C  C CCC      CC  C C  C     CCCCCC
*XIAZ-Z--MM-ZX--Z-M-M--MXZ-ZM-ZMMZZM-M--MZ-ZZ-XMX---Z--X-MZZXXZZ-XZZ----ZX-M----M----Z----M++==-M-Z----MZ---MMM--MMM===-MMMM=++++"="-
+    C CC  C  CC C C CC   C  C      C CC  C  C   CCC CC C       C   CCCC  C CCCC CCCC CCCC CCCCC C CCCC  CCC   CC   CCCC    CCCCC+C+.
+                                                                                                                                C C'
+                                                                                                                                   X
+                                                                                                                                   C
*MXAAXZ-Z----Z----Z-------ZMZZ----M-Z---M-ZMMMMM--Z-MZZ---A--Z--XXZZZZ-ZX-Z-ZZ---ZZZ---------==++++M-X-ZZM---=MMMMM=M+=+"+++++"""+---
+      C CCCC CCCC CCCCCCC    CCCC C CCC C      CC C   CCC CC CC      C  C C  CCC   CCCCCCCCCCCCCCC C C   CCCC     C CCC+CCCCC+++C...
+                                                                                                                       C     CCC '''
+                                                                                                                                 XXX
+                                                                                                                                 CCC
*-"M-XIAAX--ZZ-ZXZ---ZZXZ----Z-ZZZZ-Z-Z--M=M=MMMM--MMMM---X---ZZ-ZXXZZ-XXZXXZXZ--Z-ZZZZ--ZZ-Z--MM=+"+""===MM-MMMMMM-M=-===M==++++==++
+.+ C     CC  C   CCC    CCCC C    C C CC C C    CC    CCC CCC  C     C        CC C    CC  C CC  CC+C++CCC  C      C CCCCC CCCCCCCCCC
+'C                                                                                                C CC
+X
+C
*=---+-ZAAZZ-Z-ZZXXXXXXZXXXXXAXXAAXXAXXZZZXXXXXXXXXAXIAAAX=====IIIA=++=+1+11++1111++1-11111+111111+++==1++++1=+++++111111++11++=+++++
+C...CC     C C
+ '''
+ XXX
+ CCC
*                                                                              -      1 -     -  -  --         1- ---  - 11--11-1-1-1
1AAAAAXZAAXXXXXZXXXXXZZX-M="ZZ-ZZZ---ZXZ-
+                       C C+  C   CCC   C
+                          C
*XXXXXAAAXXXAXXAXZZZ-M+"-""--ZZ--ZZ-Z--Z-
+                   C C+.CC.C  CC  C CC C
+                      C'BB'
+                       XHHX
+                       CXXC
*MMMMMMM--MMMM-MM=+"---"-""-=XZXZZZZZZZXZ
+       CC    C  CC+...C.CC.C
+                  C'''B'BB'
+                   XXXHXHHX
+                   CCCXCXXC
*-"--"--"-"---------"--"--"""MZZXZZ-XZZZ-
+.C..C..C.+.........C..C..CC+      C    C
+'B''B''B'C'''''''''B''B''BBC
+XHXXHXXHX XXXXXXXXXHXXHXXHH
+CXCCXCCXC CCCCCCCCCXCCXCCXX
*-""""""--"""--"-"-----"---"--ZXXXZXXZZZZ
+.CCCCCC..CCC..C.C.....C...C..
+'BBBBBB''BBB''B'B'''''B'''B''
+XHHHHHHXXHHHXXHXHXXXXXHXXXHXX
+CXXXXXXCCXXXCCXCXCCCCCXCCCXCC
*"""""-"-"""-""""""""---""--"-ZZZXXZZXZ-Z
+CCCCC.C.CCC.CCCCCCCC...CC..C.         C
+BBBBB'B'BBB'BBBBBBBB'''BB''B'
+HHHHHXHXHHHXHHHHHHHHXXXHHXXHX
+XXXXXCXCXXXCXXXXXXXXCCCXXCCXC
*"""-"-"""-"""--""""""--"----"XXXZXXZZZZ-
+CCC.C.CCC.CCC..CCCCCC..C....+          C
+BBB'B'BBB'BBB''BBBBBB''B''''C
+HHHXHXHHHXHHHXXHHHHHHXXHXXXX
+XXXCXCXXXCXXXCCXXXXXXCCXCCCC
*"-""""-"-"""""""""-""-"-""-"-ZZXZXXZZ-Z-
+C.CCCC.C.CCCCCCCCC.CC.C.CC.C.        C C
+B'BBBB'B'BBBBBBBBB'BB'B'BB'B'
+HXHHHHXHXHHHHHHHHHXHHXHXHHXHX
+XCXXXXCXCXXXXXXXXXCXXCXCXXCXC
*"--"""--""""-"""----"-""""""----ZZZZZZZZ
+C..CCC..CCCC.CCC....C.CCCCCC.CCC
+B''BBB''BBBB'BBB''''B'BBBBBB'
+HXXHHHXXHHHHXHHHXXXXHXHHHHHHX
+XCCXXXCCXXXXCXXXCCCCXCXXXXXXC
*"""""""-"-""""""""-"""""""""--X-ZZ-Z-ZZ-
+CCCCCCC.C.CCCCCCCC.CCCCCCCCC.C C  C C  C
+BBBBBBB'B'BBBBBBBB'BBBBBBBBB'
+HHHHHHHXHXHHHHHHHHXHHHHHHHHHX
+XXXXXXXCXCXXXXXXXXCXXXXXXXXXC
*------""""""""""--""""""""""--X-ZZZZ-ZZZ
+......CCCCCCCCCC..CCCCCCCCCC.C C    C
+''''''BBBBBBBBBB''BBBBBBBBBB'
+XXXXXXHHHHHHHHHHXXHHHHHHHHHHX
+CCCCCCXXXXXXXXXXCCXXXXXXXXXXC
*-----""""""""""--""""-"""""""MZZZXZZZZZZ
+.....CCCCCCCCCC..CCCC.CCCCCCC
+'''''BBBBBBBBBB''BBBB'BBBBBBB
+XXXXXHHHHHHHHHHXXHHHHXHHHHHHH
+CCCCCXXXXXXXXXXCCXXXXCXXXXXXX
*-"-------""""-+"-""""""""--""-ZZXZZZXXZX
+.C.......CCCC.CC.CCCCCCCC..CCC
+'B'''''''BBBB' B'BBBBBBBB''BB
+XHXXXXXXXHHHHX HXHHHHHHHHXXHH
+CXCCCCCCCXXXXC XCXXXXXXXXCCXX
*------"-"""""-""-""""--""""""MZXZXZXZXXZ
+......C.CCCCC.CC.CCCC..CCCCCC
+''''''B'BBBBB'BB'BBBB''BBBBBB
+XXXXXXHXHHHHHXHHXHHHHXXHHHHHH
+CCCCCCXCXXXXXCXXCXXXXCCXXXXXX
*-"-------"-"""""-""""--"-""""=XXZZZZZZZX
+.C.......C.CCCCC.CCCC..C.CCCCC
+'B'''''''B'BBBBB'BBBB''B'BBBB
+XHXXXXXXXHXHHHHHXHHHHXXHXHHHH
+CXCCCCCCCXCXXXXXCXXXXCCXCXXXX
*"-----------""-""-"""--"-""""+XXZZXXXZ-X
+C...........CC.CC.CCC..C.CCCCC        C
+B'''''''''''BB'BB'BBB''B'BBBB
+HXXXXXXXXXXXHHXHHXHHHXXHXHHHH
+XCCCCCCCCCCCXXCXXCXXXCCXCXXXX
*-----"-""--""-"""--"-"""""""""ZZXXXXAXZX
+.....C.CC..CC.CCC..C.CCCCCCCC+
+'''''B'BB''BB'BBB''B'BBBBBBBBC
+XXXXXHXHHXXHHXHHHXXHXHHHHHHHH
+CCCCCXCXXCCXXCXXXCCXCXXXXXXXX
*""""""""""""-""-""""-"-""""""-ZXXXXZXZZZ
+CCCCCCCCCCCC.CC.CCCC.C.CCCCCC.
+BBBBBBBBBBBB'BB'BBBB'B'BBBBBB'
+HHHHHHHHHHHHXHHXHHHHXHXHHHHHHX
+XXXXXXXXXXXXCXXCXXXXCXCXXXXXXC
*"""""-"--"""""""--"--""-"""""-ZXXXXZZZZZ
+CCCCC.C..CCCCCCC..C..C+.CCCCC.
+BBBBB'B''BBBBBBB''B''BC'BBBBB'
+HHHHHXHXXHHHHHHHXXHXXH XHHHHHX
+XXXXXCXCCXXXXXXXCCXCCX CXXXXXC
*""-"-""---"-""""-""-""--""""""-ZZZZZZZXZ
+CC.C.CC...C.CCCC.CC.CC..CCCCCCC
+BB'B'BB'''B'BBBB'BB'BB''BBBBBB
+HHXHXHHXXXHXHHHHXHHXHHXXHHHHHH
+XXCXCXXCCCXCXXXXCXXCXXCCXXXXXX
*"""""""-"""--"""""-"--M-""""---ZZXXZZXXX
+CCCCCCC.CCC..CCCCC.C.. .CCCC..C
+BBBBBBB'BBB''BBBBB'B'' 'BBBB''
+HHHHHHHXHHHXXHHHHHXHXX XHHHHXX
+XXXXXXXCXXXCCXXXXXCXCC CXXXXCC
*-""-""-"---"""""""--"-"-""-"""MXXXXXZZXZ
+.CC.C+.C...CCCCCCC..C.+.CC.CCC
+'BB'BC'B'''BBBBBBB''B'C'BB'BBB
+XHHXH XHXXXHHHHHHHXXHX XHHXHHH
+CXXCX CXCCCXXXXXXXCCXC CXXCXXX
*-""-"""--"""-"""-"-""""""-""""MXXXZXXXXZ
+.CC.CCC..CCC.CCC.C.CCCCCC.CCCC
+'BB'BBB''BBB'BBB'B'BBBBBB'BBBB
+XHHXHHHXXHHHXHHHXHXHHHHHHXHHHH
+CXXCXXXCCXXXCXXXCXCXXXXXXCXXXX
*-"""-""-"-""-""--""-"""""--"-"MXXXXXXXXZ
+.CCC.CC.C.CC.CC..CC.CCCCC..C.C
+'BBB'BB'B'BB'BB''BB'BBBBB''B'B
+XHHHXHHXHXHHXHHXXHHXHHHHHXXHXH
+CXXXCXXCXCXXCXXCCXXCXXXXXCCXCX
*"""""""""-""-""------""""-""""+AZXXXZXXX
+CCCCCCCCC.CC.CC......CCCC.CCCCC
+BBBBBBBBB'BB'BB''''''BBBB'BBBB
+HHHHHHHHHXHHXHHXXXXXXHHHHXHHHH
+XXXXXXXXXCXXCXXCCCCCCXXXXCXXXX
*""--"""""""-"""""""""""""""""""XAXXZXXXZ
+CC..CCCCCCC.CCCCCCCCCCCCCCCCCC+
+BB''BBBBBBB'BBBBBBBBBBBBBBBBBBC
+HHXXHHHHHHHXHHHHHHHHHHHHHHHHHH
+XXCCXXXXXXXCXXXXXXXXXXXXXXXXXX
*""""-"--"""""""""""""-"""""""""XXXXXZXZZ
+CCCC.C..CCCCCCCCCCCCC.CCCCCCCC+
+BBBB'B''BBBBBBBBBBBBB'BBBBBBBBC
+HHHHXHXXHHHHHHHHHHHHHXHHHHHHHH
+XXXXCXCCXXXXXXXXXXXXXCXXXXXXXX
*"""""-"-"""""""-"-""""--""""-"+XXXZXZXZX
+CCCCC.C.CCCCCCC.C.CCCC..CCCC.CC
+BBBBB'B'BBBBBBB'B'BBBB''BBBB'B
+HHHHHXHXHHHHHHHXHXHHHHXXHHHHXH
+XXXXXCXCXXXXXXXCXCXXXXCCXXXXCX
*"""""---"""--"-""""""""-"--"""-XXZXZZXXZ
+CCCCC...CCC..C.CCCCCCCC.C..CCC.
+BBBBB'''BBB''B'BBBBBBBB'B''BBB'
+HHHHHXXXHHHXXHXHHHHHHHHXHXXHHHX
+XXXXXCCCXXXCCXCXXXXXXXXCXCCXXXC
*----------"--""-""-"--"""""""""ZXAXZAXZX
+..........C..CC.CC.C..CCCCCCCC+
+''''''''''B''BB'BB'B''BBBBBBBBC
+XXXXXXXXXXHXXHHXHHXHXXHHHHHHHH
+CCCCCCCCCCXCCXXCXXCXCCXXXXXXXX
*--""""------""-------------"-""AAXXXXXZX
+..CCCC......CC.............C.C+
+''BBBB''''''BB'''''''''''''B'BC
+XXHHHHXXXXXXHHXXXXXXXXXXXXXHXH
+CCXXXXCCCCCCXXCCCCCCCCCCCCCXCX
*-"""""-"--"-""--"-"------""--"+XXXXXXXXZ
+.CCCCC.C..C.CC..C.C......CC..CC
+'BBBBB'B''B'BB''B'B''''''BB''B
+XHHHHHXHXXHXHHXXHXHXXXXXXHHXXH
+CXXXXXCXCCXCXXCCXCXCCCCCCXXCCX
*"--""-"-"""-"-"--""""---""""-"--XXXXXZZX
+C..CC.C.CCC.C.C..CCCC...CCCC.C.C
+B''BB'B'BBB'B'B''BBBB'''BBBB'B'
+HXXHHXHXHHHXHXHXXHHHHXXXHHHHXHX
+XCCXXCXCXXXCXCXCCXXXXCCCXXXXCXC
*--"-"""--"---"-----"---"""-"""-ZXXXXXXXX
+..+.CCC..C...C.....C...CCC.CCC.
+''C'BBB''B'''B'''''B'''BBB'BBB'
+XX XHHHXXHXXXHXXXXXHXXXHHHXHHHX
+CC CXXXCCXCCCXCCCCCXCCCXXXCXXXC
*"--""""----------"--"""-"--"""-ZXXXXZZXZ
+C..++CC..........C..CCC.C..CCC.
+B''CCBB''''''''''B''BBB'B''BBB'
+HXX  HHXXXXXXXXXXHXXHHHXHXXHHHX
+XCC  XXCCCCCCCCCCXCCXXXCXCCXXXC
*-----""--"""-""--"--"""""-""-""-XXXXXXXX
+.....+C..CCC.CC..C..CCCCC.CC.CCC
+'''''CB''BBB'BB''B''BBBBB'BB'BB
+XXXXX HXXHHHXHHXXHXXHHHHHXHHXHH
+CCCCC XCCXXXCXXCCXCCXXXXXCXXCXX
*-"-""-------------""--"-"""""""ZXXXAXXZZ
+.C.CC.............CC..C.CCCCCCC
+'B'BB'''''''''''''BB''B'BBBBBBB
+XHXHHXXXXXXXXXXXXXHHXXHXHHHHHHH
+CXCXXCCCCCCCCCCCCCXXCCXCXXXXXXX
*""""-"""---"-"""""----"""""-"""MAXAAAXXX
+CCCC.C++...C.CCCCC....CCCCC.CCC
+BBBB'BCC'''B'BBBBB''''BBBBB'BBB
+HHHHXH  XXXHXHHHHHXXXXHHHHHXHHH
+XXXXCX  CCCXCXXXXXCCCCXXXXXCXXX
*"----"-""------"-"-----""""-"""MAXXXXXXZ
+C....C.++......C.C.....CCCC.CCC
+B''''B'CC''''''B'B'''''BBBB'BBB
+HXXXXHX  XXXXXXHXHXXXXXHHHHXHHH
+XCCCCXC  CCCCCCXCXCCCCCXXXXCXXX
*"-"""-"-"-""""""""""--""""""-""+AAXXXXXX
+C.CCC.C.+.CCCCCCCCCC..CCCCCC.CCC
+B'BBB'B'C'BBBBBBBBBB''BBBBBB'BB
+HXHHHXHX XHHHHHHHHHHXXHHHHHHXHH
+XCXXXCXC CXXXXXXXXXXCCXXXXXXCXX
*"---""-"-"-"-"-"""""--""-""-"""+ZXZXXXXX
+C...CC.C.+.C.C.CCCCC..CC.CC.CCCC
+B'''BB'B'C'B'B'BBBBB''BB'BB'BBB
+HXXXHHXHX XHXHXHHHHHXXHHXHHXHHH
+XCCCXXCXC CXCXCXXXXXCCXXCXXCXXX
*-""---"-"-"-"""-"""---"""""""""+AXXZXXXX
+.CC...C.C.+.CCC.CCC...CCCCCCCCCC
+'BB'''B'B'C'BBB'BBB'''BBBBBBBBB
+XHHXXXHXHX XHHHXHHHXXXHHHHHHHHH
+CXXCCCXCXC CXXXCXXXCCCXXXXXXXXX
*-----"-------""""""-"-"---"-""""AAAXXXXZ
+.....C.......CCCCCC.C.C...C.CCC+
+'''''B'''''''BBBBBB'B'B'''B'BBBC
+XXXXXHXXXXXXXHHHHHHXHXHXXXHXHHH
+CCCCCXCCCCCCCXXXXXXCXCXCCCXCXXX
*"""""-----"""-"""-"-"-"--""""""-AIXAXXXX
+CCCCC.....CC+.CCC.C.C.C..CCCCCC.
+BBBBB'''''BBC'BBB'B'B'B''BBBBBB'
+HHHHHXXXXXHH XHHHXHXHXHXXHHHHHHX
+XXXXXCCCCCXX CXXXCXCXCXCCXXXXXXC
*--"-"-----"-"""""""""-"---"--"""AAXXAZAX
+..C.C.....C.C+CCCCCCC.C...C..CC+
+''B'B'''''B'BCBBBBBBB'B'''B''BBC
+XXHXHXXXXXHXH HHHHHHHXHXXXHXXHH
+CCXCXCCCCCXCX XXXXXXXCXCCCXCCXX
*"""""-""---"-"""""--"-""""""""""XXXXAIXX
+CCCCC.CC...C.C+CCC..C.CCCCCCCCCC
+BBBBB'BB'''B'BCBBB''B'BBBBBBBBBB
+HHHHHXHHXXXHXH HHHXXHXHHHHHHHHHH
+XXXXXCXXCCCXCX XXXCCXCXXXXXXXXXX
*"""""--"---""----"-----"""""""""ZAXXXAXX
+CCCCC..C...CC....C.....CCCCCCCCC
+BBBBB''B'''BB''''B'''''BBBBBBBBB
+HHHHHXXHXXXHHXXXXHXXXXXHHHHHHHHH
+XXXXXCCXCCCXXCCCCXCCCCCXXXXXXXXX
*""--"-------""--"--"-----"""-"""ZAAAXAXX
+CC..C.......CC..+..C.....CCC.CCC
+BB''B'''''''BB''C''B'''''BBB'BBB
+HHXXHXXXXXXXHHXX XXHXXXXXHHHXHHH
+XXCCXCCCCCCCXXCC CCXCCCCCXXXCXXX
*""-"""------"-""-""-------"----"XAAAAXXX
+CC.CCC......C.CC.+C.......C....C
+BB'BBB''''''B'BB'CB'''''''B''''B
+HHXHHHXXXXXXHXHHX HXXXXXXXHXXXXH
+XXCXXXCCCCCCXCXXC XCCCCCCCXCCCCX
*-"""-"----"-""--"""-----"-""---"-XXAAXAX
+.CCC.C....C.CC..CC+.....C.CC...CC
+'BBB'B''''B'BB''BBC'''''B'BB'''B
+XHHHXHXXXXHXHHXXHH XXXXXHXHHXXXH
+CXXXCXCCCCXCXXCCXX CCCCCXCXXCCCX
*"-"-""------"""--"-"----"-""""""=XAXXXXX
+C.C.CC......CCC..C.+....C.CCCCCCC
+B'B'BB''''''BBB''B'C''''B'BBBBBB
+HXHXHHXXXXXXHHHXXHX XXXXHXHHHHHH
+XCXCXXCCCCCCXXXCCXC CCCCXCXXXXXX
*""""""-----"-"""-"-"""--"""-""""=AAAAXXX
+CCCCCC.....C.CCC.C.++C..CCC.CCCCC
+BBBBBB'''''B'BBB'B'CCB''BBB'BBBB
+HHHHHHXXXXXHXHHHXHX  HXXHHHXHHHH
+XXXXXXCCCCCXCXXXCXC  XCCXXXCXXXX
*""-"""-----"-"----""--""-""-""""+AXXXXXZ
+CC.CCC.....C.C....CC..CC.CC.CCCCC
+BB'BBB'''''B'B''''BB''BB'BB'BBBB
+HHXHHHXXXXXHXHXXXXHHXXHHXHHXHHHH
+XXCXXXCCCCCXCXCCCCXXCCXXCXXCXXXX
*"-----""--"-"--"--""--""""""""""=AAAXXXX
++.....++..C.C..C..CC..CCCCCCCCCCC
+C'''''CC''B'B''B''BB''BBBBBBBBBB
+ XXXXX  XXHXHXXHXXHHXXHHHHHHHHHH
+ CCCCC  CCXCXCCXCCXXCCXXXXXXXXXX
*""""""""---""----"""""""""""""-""XXAXXXX
+++++++++...CC....CCCCCCCCCCCCC.C+
+CCCCCCCC'''BB''''BBBBBBBBBBBBB'BC
+        XXXHHXXXXHHHHHHHHHHHHHXH
+        CCCXXCCCCXXXXXXXXXXXXXCX
*-----"""---"-"-"""--""""""""""""-AAXAZXX
+.....+++...C.C.CCC..CCCCCCCCCCCC.
+'''''CCC'''B'B'BBB''BBBBBBBBBBBB'
+XXXXX   XXXHXHXHHHXXHHHHHHHHHHHHX
+CCCCC   CCCXCXCXXXCCXXXXXXXXXXXXC
*""----""-----"----"---"--"-"-""--XAAAXXA
+CC....++.....C....C...C..C.C.CC..
+BB''''CC'''''B''''B'''B''B'B'BB''
+HHXXXX  XXXXXHXXXXHXXXHXXHXHXHHXX
+XXCCCC  CCCCCXCCCCXCCCXCCXCXCXXCC
*"-----""--""-----"----"-""-"""""-ZAXAAXX
+C.....++..CC.....C....C.CC.CCCCC.
+B'''''CC''BB'''''B''''B'BB'BBBBB'
+HXXXXX  XXHHXXXXXHXXXXHXHHXHHHHHX
+XCCCCC  CCXXCCCCCXCCCCXCXXCXXXXXC
*""----"""--"-------------"""-"--"=IAAAAA
+CC....+++..C.............CCC.C..CC
+BB''''CCC''B'''''''''''''BBB'B''B
+HHXXXX   XXHXXXXXXXXXXXXXHHHXHXXH
+XXCCCC   CCXCCCCCCCCCCCCCXXXCXCCX
*""-"---"---""-""""-----"-"""""----AAAAXA
+CC.C...+...CC.CCCC.....C.CCCCC...C
+BB'B'''C'''BB'BBBB'''''B'BBBBB'''
+HHXHXXX XXXHHXHHHHXXXXXHXHHHHHXXX
+XXCXCCC CCCXXCXXXXCCCCCXCXXXXXCCC
*"-----"+---"-"-"""----"----------=AXAAAA
+C.....+C...C.C.CCC....C..........C
+B'''''C '''B'B'BBB''''B''''''''''
+HXXXXX  XXXHXHXHHHXXXXHXXXXXXXXXX
+XCCCCC  CCCXCXCXXXCCCCXCCCCCCCCCC
*"-----""---""-"-""-----"------"-"-XAAAAX
+C.....++...CC.C.CC.....C......C.C.
+B'''''CC'''BB'B'BB'''''B''''''B'B'
+HXXXXX  XXXHHXHXHHXXXXXHXXXXXXHXHX
+XCCCCC  CCCXXCXCXXCCCCCXCCCCCCXCXC
*--"---"""---""---"-----"-------""-AAAAAA
+..C...+++...CC...C.....C.......CC.
+''B'''CCC'''BB'''B'''''B'''''''BB'
+XXHXXX   XXXHHXXXHXXXXXHXXXXXXXHHX
+CCXCCC   CCCXXCCCXCCCCCXCCCCCCCXXC
*"""--"""---"""--"------"""--"""""-AAAXAA
+CCC..+++...CCC..C......CCC..CCCCC.
+BBB''CCC'''BBB''B''''''BBB''BBBBB'
+HHHXX   XXXHHHXXHXXXXXXHHHXXHHHHHX
+XXXCC   CCCXXXCCXCCCCCCXXXCCXXXXXC
*"--"-++"--""-""-"-----"-"-""""--"-AAAAAX
+C..C.CC+..CC.CC.C.....C.C.CCCC..C.
+B''B'  C''BB'BB'B'''''B'B'BBBB''B'
+HXXHX   XXHHXHHXHXXXXXHXHXHHHHXXHX
+XCCXC   CCXXCXXCXCCCCCXCXCXXXXCCXC
*-"---"""---""--"--------"-"""""-"-AAXXAA
+.C...+++...CC..C........C.CCCCC.C.
+'B'''CCC'''BB''B''''''''B'BBBBB'B'
+XHXXX   XXXHHXXHXXXXXXXXHXHHHHHXHX
+CXCCC   CCCXXCCXCCCCCCCCXCXXXXXCXC
*-""-"""----""-""--"-----"-""--"-""XAAXAA
+.CC.+++....CC.CC..+.....C.CC..C.CC
+'BB'CCC''''BB'BB''C'''''B'BB''B'BB
+XHHX   XXXXHHXHHXX XXXXXHXHHXXHXHH
+CXXC   CCCCXXCXXCC CCCCCXCXXCCXCXX
*"---"+"--""""""---------"""""-"-""XAAAAA
+C...+C+..CCCCCC.........CCCCC.C.CC
+B'''C C''BBBBBB'''''''''BBBBB'B'BB
+HXXX   XXHHHHHHXXXXXXXXXHHHHHXHXHH
+XCCC   CCXXXXXXCCCCCCCCCXXXXXCXCXX
*""--++---""--""--""--"""-"-----"""XAAAII
+CC..CC...CC..CC..++..CCC.C.....CCC
+BB''  '''BB''BB''CC''BBB'B'''''BBB
+HHXX  XXXHHXXHHXX  XXHHHXHXXXXXHHH
+XXCC  CCCXXCCXXCC  CCXXXCXCCCCCXXX
*-"-"""--"-""""""-"--"""""-""--""""XAAAAX
+.C.+++..C.CCCCCC.+..CCCCC.CC..CCCC
+'B'CCC''B'BBBBBB'C''BBBBB'BB''BBBB
+XHX   XXHXHHHHHHX XXHHHHHXHHXXHHHH
+CXC   CCXCXXXXXXC CCXXXXXCXXCCXXXX
*""-"""-""-"""""-""--""""""-"--""""XIAAAA
+CC.+++.CC.CCCCC.++..CCCCCC.C..CCCC
+BB'CCC'BB'BBBBB'CC''BBBBBB'B''BBBB
+HHX   XHHXHHHHHX  XXHHHHHHXHXXHHHH
+XXC   CXXCXXXXXC  CCXXXXXXCXCCXXXX
*""-"+"---"--"""-"---""-"""-----"""XAAAAA
+CC.+C+...C..CCC.+...CC.CCC.....CCC
+BB'C C'''B''BBB'C'''BB'BBB'''''BBB
+HHX   XXXHXXHHHX XXXHHXHHHXXXXXHHH
+XXC   CCCXCCXXXC CCCXXCXXXCCCCCXXX
*--"++----"-"---"""------"------"""ZAAXIA
+..+CC....C.C...+++......C......CCC
+''C  ''''B'B'''CCC''''''B''''''BBB
+XX   XXXXHXHXXX   XXXXXXHXXXXXXHHH
+CC   CCCCXCXCCC   CCCCCCXCCCCCCXXX
*"""+"-""""""""-""-""-"-""------"""ZIAAAA
+CC+C+.CCCCCCCC.++.CC.C.CC......+CC
+BBC C'BBBBBBBB'CC'BB'B'BB''''''CBB
+HH   XHHHHHHHHX  XHHXHXHHXXXXXX HH
+XX   CXXXXXXXXC  CXXCXCXXCCCCCC XX
*+"""----"-"----""----""-""-----=-"-AAAAA
+CC++....C.C....++....CC.CC.....C.CC
+ BCC''''B'B''''CC''''BB'BB''''' 'B
+ H  XXXXHXHXXXX  XXXXHHXHHXXXXX XH
+ X  CCCCXCXCCCC  CCCCXXCXXCCCCC CX
*Z=---"--"""---""--"""""-""----"-""-AAAAA
+ C...C..CCC...++..CCCCC.CC....C.CCC
+  '''B''BBB'''CC''BBBBB'BB''''B'BB
+  XXXHXXHHHXXX  XXHHHHHXHHXXXXHXHH
+  CCCXCCXXXCCC  CCXXXXXCXXCCCCXCXX
*XX"-----------+"--"-"----------""-MAAIAI
+  +...........C+..C.C..........CC.
+  C''''''''''' C''B'B''''''''''BB'
+   XXXXXXXXXXX  XXHXHXXXXXXXXXXHHX
+   CCCCCCCCCCC  CCXCXCCCCCCCCCCXXC
*XX=-"""--"""--""---"--""----""""-"=AAAAX
+  C.CCC..CCC..++...C..CC....CCCC.CC
+   'BBB''BBB''CC'''B''BB''''BBBB'B
+   XHHHXXHHHXX  XXXHXXHHXXXXHHHHXH
+   CXXXCCXXXCC  CCCXCCXXCCCCXXXXCX
*ZX---"-"--""-"""---"-""-------"-""+IAAAA
+  C..C.C..CC.+++...C.CC.......C.CCC
+   ''B'B''BB'CCC'''B'BB'''''''B'BB
+   XXHXHXXHHX   XXXHXHHXXXXXXXHXHH
+   CCXCXCCXXC   CCCXCXXCCCCCCCXCXX
*--M-""-"--"""""--""-""-----"---"""+IAAXI
+CC .CC.C..CC+++..CC.CC.....C...CCCC
+   'BB'B''BBCCC''BB'BB'''''B'''BBB
+   XHHXHXXHH   XXHHXHHXXXXXHXXXHHH
+   CXXCXCCXX   CCXXCXXCCCCCXCCCXXX
*M==----"""--"""----"-""------"""-"+AIAAX
+ CC....CCC..+++....C.CC......CCC.CC
+   ''''BBB''CCC''''B'BB''''''BBB'B
+   XXXXHHHXX   XXXXHXHHXXXXXXHHHXH
+   CCCCXXXCC   CCCCXCXXCCCCCCXXXCX
*=M=-""""-"--""---""----------""""""AIIAA
+C C.CCCC.C..++...CC..........CCCCC+
+   'BBBB'B''CC'''BB''''''''''BBBBBC
+   XHHHHXHXX  XXXHHXXXXXXXXXXHHHHH
+   CXXXXCXCC  CCCXXCCCCCCCCCCXXXXX
*MM+--"""""-"+"---""-"--------"-"""-AAAAX
+  C..CCCCC.+C+...CC.C........C.CCC.
+   ''BBBBB'C C'''BB'B''''''''B'BBB'
+   XXHHHHHX   XXXHHXHXXXXXXXXHXHHHX
+   CCXXXXXC   CCCXXCXCCCCCCCCXCXXXC
*=M""""""""-"""-"-""""""---"-""-"""-XAAAA
+C +CCCCCCC.+++.C.CCCCCC...C.CC.CCC.
+  CBBBBBBB'CCC'B'BBBBBB'''B'BB'BBB'
+   HHHHHHHX   XHXHHHHHHXXXHXHHXHHHX
+   XXXXXXXC   CXCXXXXXXCCCXCXXCXXXC
*M=---""---""-----"-----"---"-"""-"-XAAIA
+ C...CC...++.....C.....+...C.CCC.C.
+  '''BB'''CC'''''B'''''C'''B'BBB'B'
+  XXXHHXXX  XXXXXHXXXXX XXXHXHHHXHX
+  CCCXXCCC  CCCCCXCCCCC CCCXCXXXCXC
*M=""-""-"-"+"-""-""""----"-"""""""-ZAIXA
+ CCC.CC.C.+C+.CC.CCCC....C.CCCCCCC.
+  BB'BB'B'C C'BB'BBBB''''B'BBBBBBB'
+  HHXHHXHX   XHHXHHHHXXXXHXHHHHHHHX
+  XXCXXCXC   CXXCXXXXCCCCXCXXXXXXXC
*-="--"-"-"""--"""-"""----""-"""""--XIAAA
+CCC..C.C.+++..CCC.CCC....CC.CCCCC..
+  B''B'B'CCC''BBB'BBB''''BB'BBBBB''
+  HXXHXHX   XXHHHXHHHXXXXHHXHHHHHXX
+  XCCXCXC   CCXXXCXXXCCCCXXCXXXXXCC
*-+---"---"+"--""="-"------""""----"-AAAA
+CC...C...+C+..CCCC.C......CCCC....+C
+  '''B'''C C''BB B'B''''''BBBB''''C
+  XXXHXXX   XXHH HXHXXXXXXHHHHXXXX
+  CCCXCCC   CCXX XCXCCCCCCXXXXCCCC
*-+""""--"+"---"---""------"-"----"-=IIIA
+CCCCCC..+C+...C...CC......C.C....+.C
+  BBBB''C C'''B'''BB''''''B'B''''C'
+  HHHHXX   XXXHXXXHHXXXXXXHXHXXXX X
+  XXXXCC   CCCXCCCXXCCCCCCXCXCCCC C
*M"-"----++"----""-""----"--"-----"-=IAAA
+ +.C....CC+....CC.CC....C..C.....+.C
+ C'B''''  C''''BB'BB''''B''B'''''C'
+  XHXXXX   XXXXHHXHHXXXXHXXHXXXXX X
+  CXCCCC   CCCCXXCXXCCCCXCCXCCCCC C
*=+""""-"++"-"--------"--""""--"-""-+AAAA
+CCCCCC.+CC+.C........+..CCCC..C.++.C
+  BBBB'C  C'B''''''''C''BBBB''B'CC'
+  HHHHX    XHXXXXXXXX XXHHHHXXHX  X
+  XXXXC    CXCCCCCCCC CCXXXXCCXC  C
*+""""-"++"---""--------"""""----""--AIAA
+C+CCC.+CC+...CC........CCCCC....++..
+ CBBB'C  C'''BB''''''''BBBBB''''CC''
+  HHHX    XXXHHXXXXXXXXHHHHHXXXX  XX
+  XXXC    CCCXXCCCCCCCCXXXXXCCCC  CC
*=+--"-+=+"---------""-----"""--+""-"AAAI
+CC..C.CCC+.........++.....CCC..C++.+
+  ''B'   C'''''''''CC'''''BBB'' CC'C
+  XXHX    XXXXXXXXX  XXXXXHHHXX   X
+  CCXC    CCCCCCCCC  CCCCCXXXCC   C
*"+""-"++"----"-""-"----"-"""--""--"-XAAA
++CCC.+CC+....C.CC.+....C.CCC..++..C.
+C BB'C  C''''B'BB'C''''B'BBB''CC''B'
+  HHX    XXXXHXHHX XXXXHXHHHXX  XXHX
+  XXC    CCCCXCXXC CCCCXCXXXCC  CCXC
*"-""-+++--"""--------"""""""-"""--"-AAAI
++.CC.CCC..CCC........CCCCCCC.+++..C.
+C'BB'   ''BBB''''''''BBBBBBB'CCC''B'
+ XHHX   XXHHHXXXXXXXXHHHHHHHX   XXHX
+ CXXC   CCXXXCCCCCCCCXXXXXXXC   CCXC
*--""+=+"-"-""-------"""---""-"""-"""AAII
+..CCCCC+.C.CC.......CCC...CC.+++.CCC
+''BB   C'B'BB'''''''BBB'''BB'CCC'BBB
+XXHH    XHXHHXXXXXXXHHHXXXHHX   XHHH
+CCXX    CXCXXCCCCCCCXXXCCCXXC   CXXX
*-"-""++"-""---"-------"-"""-""----""ZAAA
+.+.C+CC+.CC...C.......C.CCC.++....CC
+'C'BC  C'BB'''B'''''''B'BBB'CC''''BB
+X XH    XHHXXXHXXXXXXXHXHHHX  XXXXHH
+C CX    CXXCCCXCCCCCCCXCXXXC  CCCCXX
*--+-++"--"""""-------"---"-"+"--""-"XAIA
+..C.CC+..CCCCC.......C...C.+C+..CC.C
+'' '  C''BBBBB'''''''B'''B'C C''BB'B
+XX X   XXHHHHHXXXXXXXHXXXHX   XXHHXH
+CC C   CCXXXXXCCCCCCCXCCCXC   CCXXCX
*--M"++--""-----------""""--""---""-"MIIA
+.. +CC..CC...........CC++..++...CC.C
+'' C  ''BB'''''''''''BBCC''CC'''BB'B
+XX    XXHHXXXXXXXXXXXHH  XX  XXXHHXH
+CC    CCXXCCCCCCCCCCCXX  CC  CCCXXCX
*--+""""-"-"""--"--"--"----"""---"-""-AAA
+..C+++C.C.CCC..+..C..C....+++...C.CCC
+'' CCCB'B'BBB''C''B''B''''CCC'''B'BB
+XX    HXHXHHHXX XXHXXHXXXX   XXXHXHH
+CC    XCXCXXXCC CCXCCXCCCC   CCCXCXX
*"+-=""--------""-----"---"""-----"-""IAA
++C.C++........++.....C...+++.....C.C+
+C ' CC''''''''CC'''''B'''CCC'''''B'BC
+  X   XXXXXXXX  XXXXXHXXX   XXXXXHXH
+  C   CCCCCCCC  CCCCCXCCC   CCCCCXCX
*=-"---"----"--------""++-+""-""-----"AAA
+C.+C..C....C........CCCC.C++.CC.....+
+ 'C ''B''''B''''''''BB  ' CC'BB'''''C
+ X  XXHXXXXHXXXXXXXXHH  X   XHHXXXXX
+ C  CCXCCCCXCCCCCCCCXX  C   CXXCCCCC
*+-"---"""--"-----"--""--"+"--""-""--"AII
+C.+C..CCC..C.....C..CC..+C+..CC.CC..+
+ 'C ''BBB''B'''''B''BB''C C''BB'BB''C
+ X  XXHHHXXHXXXXXHXXHHXX   XXHHXHHXX
+ C  CCXXXCCXCCCCCXCCXXCC   CCXXCXXCC
*+-+M-""""--------"---"-"++"-""""""--"AAI
+C.C .CCCC........C...C.+CC+.CCCCCC..+
+ '  'BBBB''''''''B'''B'C  C'BBBBBB''C
+ X  XHHHHXXXXXXXXHXXXHX    XHHHHHHXX
+ C  CXXXXCCCCCCCCXCCCXC    CXXXXXXCC
*"--="""""--"----"""---"+"""---"-"--""III
++.CCCCCCC..+....CCC...+C+++...C.C..++
+C'  BBBBB''C''''BBB'''C CCC'''B'B''CC
+ X  HHHHHXX XXXXHHHXXX     XXXHXHXX
+ C  XXXXXCC CCCCXXXCCC     CCCXCXCC
*"-Z+""""----"---------"++"-""-""--"--AAI
++. CCCCC....+.........+CC+.CC.CC..+..
+C'  BBBB''''C'''''''''C  C'BB'BB''C''
+ X  HHHHXXXX XXXXXXXXX    XHHXHHXX XX
+ C  XXXXCCCC CCCCCCCCC    CXXCXXCC CC
*--A"--"---"----"-"---"+""--""""--""--XII
+.. +..C...+....C.C...+C++..CCCC..++..
+'' C''B'''C''''B'B'''C CC''BBBB''CC''
+XX  XXHXXX XXXXHXHXXX    XXHHHHXX  XX
+CC  CCXCCC CCCCXCXCCC    CCXXXXCC  CC
*--M---"--"""--""-""-""""---""""-----"IAA
+.C ...C..+++..CC.CC.++++...CCCC.....+
+'  '''B''CCC''BB'BB'CCCC'''BBBB'''''C
+X  XXXHXX   XXHHXHHX    XXXHHHHXXXXX
+C  CCCXCC   CCXXCXXC    CCCXXXXCCCCC
*-==---"-"""--"--"--"+"""--"----""----XII
+.CC...C.+++..C..C..+C+++..C....++....
+'  '''B'CCC''B''B''C CCC''B''''CC''''
+X  XXXHX   XXHXXHXX     XXHXXXX  XXXX
+C  CCCXC   CCXCCXCC     CCXCCCC  CCCC
*-"=-"---"---"""""--"""----""------""-AI=
+.+C.C...+...CCCCC..+++....CC......CC.
+'C 'B'''C'''BBBBB''CCC''''BB''''''BB'
+X  XHXXX XXXHHHHHXX   XXXXHHXXXXXXHHX
+C  CXCCC CCCXXXXXCC   CCCCXXCCCCCCXXC
*-=X+"---"---""""--"+"---"-""--"---""-III
+.C CC...+...CCCC..+C+...C.CC..+...CC.
+'   B'''C'''BBBB''C C'''B'BB''C'''BB'
+X   HXXX XXXHHHHXX   XXXHXHHXX XXXHHX
+C   XCCC CCCXXXXCC   CCCXCXXCC CCCXXC
*-MA="--"--""""""-"++"--"""""-""---"""AIA
+.  CC..+..CCCCCC.+CC+..CCCCC.++...CCC
+'   B''C''BBBBBB'C  C''BBBBB'CC'''BBB
+X   HXX XXHHHHHHX    XXHHHHHX  XXXHHH
+C   XCC CCXXXXXXC    CCXXXXXC  CCCXXX
*"X-"-""---------"+++---"""--""-------XAA
++ C+.++.........+CCC...CCC..++.......
+C  C'CC'''''''''C   '''BBB''CC'''''''
+    X  XXXXXXXXX    XXXHHHXX  XXXXXXX
+    C  CCCCCCCCC    CCCXXXCC  CCCCCCC
*MX+------"-"----"+"--""""-""""--"--"-III
+  C......C.C....+C+..CCCC.++++..C..C.
+   ''''''B'B''''C C''BBBB'CCCC''B''B'
+   XXXXXXHXHXXXX   XXHHHHX    XXHXXHX
+   CCCCCCXCXCCCC   CCXXXXC    CCXCCXC
*-A+-------""-"-"+"---"----""""-""""""XAI
+C C.......CC.C.+C+...C....++++.CCCCCC
+   '''''''BB'B'C C'''B''''CCCC'BBBBBB
+   XXXXXXXHHXHX   XXXHXXXX    XHHHHHH
+   CCCCCCCXXCXC   CCCXCCCC    CXXXXXX
*ZA+-----"-"-"-"+"---""---""""--"""-""X=I
+  C.....C.C.C.+C+...CC...++++..CCC.CC
+   '''''B'B'B'C C'''BB'''CCCC''BBB'BB
+   XXXXXHXHXHX   XXXHHXXX    XXHHHXHH
+   CCCCCXCXCXC   CCCXXCCC    CCXXXCXX
*XI+----------"""---""-"--+"----"--"-"ZIA
+  C..........+++...CC.C..C+....C..C.C
+   ''''''''''CCC'''BB'B'' C''''B''B'B
+   XXXXXXXXXX   XXXHHXHXX  XXXXHXXHXH
+   CCCCCCCCCC   CCCXXCXCC  CCCCXCCXCX
*XX"--"""-""""""---"-"""-"""---"""""""-II
+  +..CCC.CCC+++...C.CCC.+++...CCCCCCCC
+  C''BBB'BBBCCC'''B'BBB'CCC'''BBBBBBB
+   XXHHHXHHH   XXXHXHHHX   XXXHHHHHHH
+   CCXXXCXXX   CCCXCXXXC   CCCXXXXXXX
*Z---"-""""---"+MMM=-"--"+"----"""""--ZAI
+ C..+.CCCC...+C   C.C..+C+....CCCCC..
+  ''C'BBBB'''C     'B''C C''''BBBBB''
+  XX XHHHHXXX      XHXX   XXXXHHHHHXX
+  CC CXXXXCCC      CXCC   CCCCXXXXXCC
*-M""M-"-"-"=-XZ-XZZ---""""-"---"""----=I
+C C+ .C.C.+CC  C   C..++++.C...CCC...C
+  BC 'B'B'C         ''CCCC'B'''BBB'''
+  H  XHXHX          XX    XHXXXHHHXXX
+  X  CXCXC          CC    CXCCCXXXCCC
*+"-M=""-XAAZ-----M-=-"""----""-""""--AI=
+CC. CCC.    CCCCC CC.+++....CC.CCCC..
+ B'  BB'            'CCC''''BB'BBBB''
+ HX  HHX            X   XXXXHHXHHHHXX
+ XC  XXC            C   CCCCXXCXXXXCC
*="+--ZAAXZ--Z--Z-Z-M""""--"-""""""""-MII
+C+CCC     CC CC C C ++++..C.CCCCCCCC.
+ C                  CCCC''B'BBBBBBBB'
+                        XXHXHHHHHHHHX
+                        CCXCXXXXXXXXC
*-MXZXXXXZ-Z--------Z+----""""""""-""-MAI
+C        C CCCCCCCC C....CCCCCCCC.CC.
+                     ''''BBBBBBBB'BB'
+                     XXXXHHHHHHHHXHHX
+                     CCCCXXXXXXXXCXXC
*-----XXZ-ZZ------Z--M----""""--"""--"M=I
+CCCCC   C  CCCCCC CC ....CCCC..CCC..+
+                     ''''BBBB''BBB''C
+                     XXXXHHHHXXHHHXX
+                     CCCCXXXXCCXXXCC
*--ZZZX----ZZZ----X-XZ=-"---""----""""MI=
+CC    CCCC   CCCC C  C.C...CC....CCC+
+                      'B'''BB''''BBBC
+                      XHXXXHHXXXXHHH
+                      CXCCCXXCCCCXXX
*MM----ZZ--ZM--Z----Z-M-""""-"""-"""-+MII
+  CCCC  CC  CC CCCC C .CCCC.CCC.CCC.C
+                      'BBBB'BBB'BBB'
+                      XHHHHXHHHXHHHX
+                      CXXXXCXXXCXXXC
*-M----ZZZ-Z---ZMZ-----="""-"-""""""-"=I=
+C CCCC   C CCC   CCCCCC+CC.C.CCCCCC.+C
+                       CBB'B'BBBBBB'C
+                        HHXHXHHHHHHX
+                        XXCXCXXXXXXC
*MMMM-ZZ-Z----MZ-M-Z-MZM="""""-"""""-+=II
+    C  C CCCC  C C C   CCCCCC.CCCCC.CC
+                        BBBBB'BBBBB'
+                        HHHHHXHHHHHX
+                        XXXXXCXXXXXC
*MM-----M-ZMM--ZZZ-M--ZZM--"-"--""---+=I=
+  CCCCC C   CC   C CC   ..C.C..CC...CC
+                        ''B'B''BB'''
+                        XXHXHXXHHXXX
+                        CCXCXCCXXCCC
*--M-M------M---M-M---M-M+-""-"-"-"-"=MII
+CC C CCCCCC CCC C CCC C C.CC.C.C.C.+C
+                         'BB'B'B'B'C
+                         XHHXHXHXHX
+                         CXXCXCXCXC
*-MMMMM-M--M--Z-MM--MZ--ZM+-"""""""""==AI
+C     C CC CC C  CC  CC  C.CCCCCCCC+CC
+                          'BBBBBBBBC
+                          XHHHHHHHH
+                          CXXXXXXXX
*MM-MMM----M-M-MM--MM-MZ-M+""""-"""-++=II
+  C   CCCC C C  CC  C  C C+CCC.CCC.CCC
+                          CBBB'BBB'
+                           HHHXHHHX
+                           XXXCXXXC
*M-MMMMMZ--M--MZM-Z----ZXZ=--""""""-+==II
+ C      CC CC   C CCCC   CC.CCCCCC.CCC
+                           'BBBBBB'
+                           XHHHHHHX
+                           CXXXXXXC
*-M--MMM-MM----M---MM--XZ--M+-"""""-+++A=
+C CC   C  CCCC CCC  CC  CC C.CCCCC.CCC
+                            'BBBBB'
+                            XHHHHHX
+                            CXXXXXC
*M-M-MMMM-MM-MMMM-M----Z-ZZ-M""""""-+=+-=
+ C C    C  C    C CCCC C  C +CCCCC.CCCC
+                            CBBBBB'
+                             HHHHHX
+                             XXXXXC
*M-M-MMMM-----M-------M--XXM---"""-"===AI
+ C C    CCCCC CCCCCCC CC   CC.CCC.+CCC
+                             'BBB'C
+                             XHHHX
+                             CXXXC
*MZ--MM-MM=-M----M-MX-MM-ZZ-M-M-""-+===XI
+  CC  C  CC CCCC C  C  C  C C .CC.CCCC
+                              'BB'
+                              XHHX
+                              CXXC
*-MZMMMM-MM---Z--MMMX-ZMM--M-M-"-""-"++-I
+C      C  CCC CC    C   CC C C+.CC.+CCC
+                              C'BB'C
+                               XHHX
+                               CXXC
*---MMMM-=MM=MM--M-M-M-=M----M-M"""--"+=I
+CCC    CC  C  CC C C CC CCCC C +CC..+CC
+                               CBB''C
+                                HHXX
+                                XXCC
*----MMMMMMM-MMM-MMM-M==MMMM-M--M""==M==I
+CCCC       C   C   C CC    C CC ++CC CC
+                                CC
*-M-M-=MMMMM-MM=MMMMMM=---M---M--=M---MMX
+C C CC     C  C      CCCC CCC CCC CCC
*MMMM-MMMM-MMMMMMM-MMMMMMMM---MMMMMMMMM=A
+    C    C       C        CCC         C
*M--M--MMMMMM-M==-MMMM-=-MMMMM-MM==MM-MMX
+ CC CC      C CCC    CCC     C  CC  C
*M--MM-MMMMMMMMMM--M--MM-=ZMM---M=M==MMMX
+ CC  C          CC CC  CC   CCC C CC
*M----MMMMM=M-MMMMM-MMMM=M-M=--MM===+++MX
+ CCCC     C C     C    C C CCC  CCCCCC
*-M-MMM-MM--=-MM--MMMMM-=M==M=M-M=++---"-
+C C   C  CCCC  CC     CC CC C C CCC...+C
+                                   '''C
+                                   XXX
+                                   CCC
*----MM--MMMMM-=MMM-M---MM-M==MZ-+++"-""M
+CCCC  CC     CC   C CCC  C CC  CCCC+.CC
+                                   C'BB
+                                    XHH
+                                    CXX
*-M--M---M=MMMM=MM-MMM--M--==MM-ZM=M=-""+
+C CC CCC C    C  C   CC CCCC  C  C C.CCC
+                                    'BB
+                                    XHH
+                                    CXX
*------MMMM-M=MMMMMM--X-Z--XM--MZZ-+"""""
+CCCCCC    C C      CC C CC  CC   CC++CC+
+                                   CCBBC
+                                     HH
+                                     XX
*---M---MM==MMM--MM--Z-----ZM==+""""--""+
+CCC CCC  CC   CC  CC CCCCC  CCC+++C..CCC
+                               CCCB''BB
+                                  HXXHH
+                                  XCCXX
*----MM-MM-M=MZZX-Z------===+---""-"""-"+
+CCCC  C  C C    C CCCCCCCCCC...CC.CCC.CC
+                            '''BB'BBB'B
+                            XXXHHXHHHXH
+                            CCCXXCXXXCX
*---MM-M-MZZMM---ZX---=M=+---""--"--""+"=
+CCC  C C     CCC  CCCC CC...CC..C..CCCCC
+                         '''BB''B''BB B
+                         XXXHHXXHXXHH H
+                         CCCXXCCXCCXX X
*ZZ-MM-M---X-MM-Z--M=-M--""-"""""--""""-"
+  C  C CCC C  C CC CC ..CC.CCCCC..CCC+.+
+                      ''BB'BBBBB''BBBC'C
+                      XXHHXHHHHHXXHHH X
+                      CCXXCXXXXXCCXXX C
*--MMZXZ-MMMMMM-=M=+""-----"-"-""-"--""+-
+CC     C      CC CC+C.....C.C.CC.C..CCC.
+                   CB'''''B'B'BB'B''BB '
+                    HXXXXXHXHXHHXHXXHH X
+                    XCCCCCXCXCXXCXCCXX C
*ZZ-ZZZ-M=MM-Z-=+--"---""-"-----"""--""-"
+  C   C C  C CCC..C...++.C.....CCC..CC.+
+                ''B'''CC'B'''''BBB''BB'C
+                XXHXXX  XHXXXXXHHHXXHHX
+                CCXCCC  CXCCCCCXXXCCXXC
*XAAZ-MMZA++IM"----"---""-"---""""""""--"
+    C        +....C...++.C...CCCCCCCC..+
+             C''''B'''CC'B'''BBBBBBBB''C
+              XXXXHXXX  XHXXXHHHHHHHHXX
+              CCCCXCCC  CXCCCXXXXXXXXCC
*XAX-X--   -I"-----""--+----"--""-+++=ZXZ
+   C        +.....CC..CC...C..CC.CCCC
+            C'''''BB''  '''B''BB'
+             XXXXXHHXX  XXXHXXHHX
+             CCCCCXXCC  CCCXCCXXC
*X-Z-ZI+ ---==-""-"-""-"--""-"+MZZXXZZMMM
+ C C        C.CC.C.CC.+C.CC.+C
+             'BB'B'BB'C 'BB'C
+             XHHXHXHHX  XHHX
+             CXXCXCXXC  CXXC
*=++"--MI++11A"---"-""--"+=M-XAX---MM--MM
+CCC+..       +...C.CC..+CC C   CCC  CC
+   C''       C'''B'BB''C
+    XX        XXXHXHHXX
+    CC        CCCXCXXCC
*-"----+"ZA1-=M"----"-+=ZXAAZX-MMMM=MMMM=
+.C....C+      +....C.CC      C    C    C
+'B'''' C      C''''B'
+XHXXXX         XXXXHX
+CXCCCC         CCCCXC
*"----"--+X+1-1=---+--AIAXXZ--MM-MM-===M=
+C....C..C     C...CCC      CC  C  CCCC C
+B''''B''       '''
+HXXXXHXX       XXX
+XCCCCXCC       CCC
*"-"""-"-"ZAIIX--XXXIIAA-Z--MMMM==-M=-M=M
+C.CCC.C.+     CC       C CC    CCC CC C
+B'BBB'B'C
+HXHHHXHX
+XCXXXCXC
*-""-""--"MII+1+XZXZ----M-M-MMMM=MMM-MMMM
+.CC.CC..+          CCCC C C    C   C
+'BB'BB''C
+XHHXHHXX
+CXXCXXCC
*""""-"""Z= =XZM=--=MMMMMMMMM====MMM-==MM
++CCC.CC+       CCCC         CCCC   CCC
+CBBB'BBC
+ HHHXHH
+ XXXCXX
*-"""-=Z-Z-=+====-MMMMMMM-MMMMMMM=--M==M=
+C+CC.C C CCCCCCCC       C       CCC CC C
+ CBB'
+  HHX
+  XXC
*MM+-----MM==+=M=M=MMMMMMMMMMMMMM--M====M
+  CCCCCC  CCCC C C              CC CCCC
*--ZXAI--M--M==M==M=MMMM---MMMM==MMM====M
+CC    CC CC CC CC C    CCC    CC   CCCC
*AIIXZZM-M-----MMMMMMMM-Z-ZZ-M=M======-==
+       C CCCCC        C C  C C CCCCCCCCC
*IAXZ-XMXXXAXXXZZZ-M==MM----ZM--Z-M=M-MM+
+    C            C CC  CCCC  CC C C C  C
*XXXZXXZZ-MM-M-ZZXXZ---==MMMM==MM==MZ+=M=
+        C  C C     CCCCC    CC  CC  CC C
*Z--MM==MM---MM--Z---ZXMMMMMM====M-MM+MMM
+ CC  CC  CCC  CC CCC        CCCC C  C
*==+=MXZZ--ZX-ZZXXZXXZZX-Z-MM=M==M-=MMZX-
+CCCC    CC  C          C C  C CC CC    C
*-XAIAZ-XX--M--M-ZM-ZAIZXXXMM-M==M==-ZMZ-
+C     C  CC CC C  C         C CC CCC   C
*--M---MMZ-M-Z-MMMMM=MMM----M---MM==MMMM-
+CC CCC   C C C     C   CCCC CCC  CC    C
*-MMM=MMMMM-M-MM=MM=M======MM--ZMM-MMMMMM
+C   C     C C  C  C CCCCCC  CC   C
*=--M=MMM==M=M===MMMM==MMMMM-ZZ-MM-MMMMMM
+CCC C   CC C CCC    CC     C  C  C
*+"MX-=MM--=MM--MMMMMM=MZXZX-X-ZZ=+M==M-M
+C+  CC  CCC  CC      C     C C  CC CC C
+ C
*IAMM-M-MM--ZXXAZZZZZ--ZZZX-ZZ-Z-MXM-MMMM
+    C C  CC         CC    C  C C   C
*AZXZZZ-MMMMM--ZX-----M-==MMMMMM-MMMMM-MM
+      C     CC  CCCCC CCC      C     C
*A--M-ZZ-MMM=M=MM=M---M-MMM=M==MMMMM=MMM=
+ CC C  C   C C  C CCC C   C CC     C   C
*XXXXZMMZ-M==MM=M=MM-MM=MM-M===-MMM-MZMMM
+        C CC  C C  C  C  C CCCC   C
*=+++=+=MMZ---MMM==M=MMMM=MMMMM=MM--MMMMM
+CCCCCCC   CCC   CC C    C     C  CC
*=+ZX-M===M+=M-ZZMM=MMMM-MMM-MMMMM-MMM=MZ
+CC  C CCC CC C    C    C   C     C   C
*=MXX--M-M-M-=M--Z-M=M=M-M-M-M-MMMM--M==M
+C   CC C C CC CC C C C C C C C    CC CC
*==XXXZ-MMM=MM=---ZX-==MMMMMMMMMM---MZM=-
+CC    C   C  CCCC  CCC          CCC   CC
*==-ZZZ-Z-MMMMMMMM-XXXZMM===MM-MM=MMMM-MM
+CCC   C C        C      CCC  C  C    C
*==ZXXXZZ--MM-MMM==-ZXX---====MM=M==MMM=M
+CC      CC  C   CCC   CCCCCCC  C CC   C
*==AXZ--ZMZM--MMM=MMMM---Z-MMM==MM=MMMM-=
+CC   CC    CC   C    CCC C   CC  C    CC
*-=-XX---M-MM-MMMMMMM=--M-XXMMMMMM====-=M
+CCC  CCC C  C       CCC C        CCCCCC
*===-ZAXZ-X--MMMMMMMMMM==M-ZZM--M===M+-MM
+CCCC    C CC          CC C   CC CCC CC
*===ZXXZZ-XXZ--MM=MMM-MM===--M-Z-=M=M=-MM
+CCC     C   CC  C   C  CCCCC C CC C CC
*==+-XZZX-Z-Z-X--=-MMMM=======M--M=M=+M=M
+CCCC    C C C CCCC    CCCCCCC CC C CC C
*==+-XX-X-MM----Z-ZIMMM==MMM==MMM==MM=MM-
+CCCC  C C  CCCC C     CC   CC   CC  C  C
*M==+X-X-Z-MMM-Z-M-ZMMMMMMM==M=M+=+M=+MM-
+ CCC C C C   C C C        CC C CCC CC  C
*===+X-ZZZZ-MMM-M-Z--MMMM=M=M====M+M=+ZMM
+CCCC C    C   C C CC    C C CCCC C CC
*==++ZXXXZ-MMM-M-MM--MMMMMM====MM=+==+ZMM
+CCCC     C   C C  CC      CCCC  CCCCC
*-M=+MZZAZ-MM-M---MM=-MMMMM+======+==+-+M
+C CC     C  C CCC  CC     CCCCCCCCCCCCC
*M==+=ZZ--ZZM-M--MMM=MM=MMM==M-==M=+M+==M
+ CCCC  CC   C CC   C  C   CC CCC CC CCC
*M==++ZZX-----M-MM-MM=MMMM=M==M=MM===+===
+ CCCC   CCCCC C  C  C    C CC C  CCCCCCC
*====+ZZ----ZMM-MMMMMMMMM=MMMMM=MM+=+++==
+CCCCC  CCCC   C         C     C  CCCCCCC
*====+MA-----MMMZ===MMM=MMM====MM==M"+==M
+CCCCC  CCCCC    CCC   C   CCCC  CC +CCC
+                                   C
*===++=ZZ---M---MMM-=MM===M==M=M==++"++-M
+CCCCCC  CCC CCC   CC  CCC CC C CCCC+CCC
+                                   C
*===+==XXX-------M=MMMMMMM==MM====++=++MM
+CCCCCC   CCCCCCC C       CC  CCCCCCCCC
*======XXX-M----MM-M-M=MM==M======+"++===
+CCCCCC   C CCCC  C C C  CC CCCCCCC+CCCCC
+                                  C
*=+===+ZXZX-XZ--ZMMMMMMMM=-=MM====++=+===
+CCCCCC    C  CC         CCC  CCCCCCCCCCC
*M===+=-IZZ--Z---MMMMM=MMM-M=M===M++==+==
+ CCCCCC   CC CCC     C   C C CCC CCCCCCC
*======-XZZXZ---M=MM--MMMMM====M=M=+==+==
+CCCCCCC     CCC C  CC     CCCC C CCCCCCC
*=+===+=XZ-ZZ---M=MMM-MM==MMM==MM==++=+=+
+CCCCCCC  C  CCC C   C  CC   CC  CCCCCCCC
*==+M=+=AXZZX-ZMZMMM=MM-========M=M"+++==
+CCC CCC     C      C  CCCCCCCCC C +CCCCC
+                                  C
*=+===+=Z--Z-----MM====MM=MM=M===MM==++M=
+CCCCCCC CC CCCCC  CCCC  C  C CCC  CCCC C
*=+===+=M--Z---M---=M=====M=====MM=++"+M=
+CCCCCCC CC CCC CCCC CCCCC CCCCC  CCC+C C
+                                    C
*=+++==+MX-ZZ-MMM=-M=MMM==========="=+"==
+CCCCCCC  C  C   CC C   CCCCCCCCCCC+CC+CC
+                                  C  C
*++++==+--ZZ---M-M=MM=MMMMM==M=++=+=="+=Z
+CCCCCCCCC  CCC C C  C     CC CCCCCCC+CC
+                                    C
*+====+=ZZ-ZZMMM-==M-M=M==M=M=MM==++=++M=
+CCCCCCC  C     CCC C C CC C C  CCCCCCC C
*=======MM--ZMMM-======M==M=M==M===+++"==
+CCCCCCC  CC    CCCCCCC CC C CC CCCCCC+CC
+                                     C
*+==+===MXZ---MMMMMM=M=-==M==M=M=+M++++==
+CCCCCCC   CCC      C CCCC CC C CC CCCCCC
*++===+=-----M--M----=M-=MM=M=MM===++=+==
+CCCCCCCCCCCC CC CCCCC CC  C C  CCCCCCCCC
*++++===MM=MM======M=M=M===M=MM====++++==
+CCCCCCC  C  CCCCCC C C CCC C  CCCCCCCCCC
*+=M---M=ZMMM-M-MM=M==+==+======M+=+"++==
+CC CCC C    C C  C CCCCCCCCCCCC CCC+CCCC
+                                   C
*-MZ-M=+"ZZ-M-MMZ-----Z-MM++=+=====+"+"+=
+C  C CC+  C C   CCCCC C  CCCCCCCCCC+C+CC
+       C                           C C
*--A-==++XM-M-MM+===M-MMZMM-MMMMM==M+=++=
+CC CCCCC  C C  CCCC C     C     CC CCCCC
*-MZZ===A------Z-====+=======M=M=M+=++""M
+C   CCC CCCCCC CCCCCCCCCCCCC C C CCCC++
+                                     CC
*-MMZM=XMM=--MM--Z-=MMM++==+========+=++=
+C    C   CCC  CC CC   CCCCCCCCCCCCCCCCCC
*MM=--=MMM-=M-M-MMM=MM-M-MM=======+=+=""+
+  CCCC   CC C C   C  C C  CCCCCCCCCCC++C
+                                     CC
*M=M-X=-=MXZ=+-MMM========M=+====++=+=""=
+ C C CCC   CCC   CCCCCCCC CCCCCCCCCCC++C
+                                     CC
*MMMMXM=MM=MM-MM-MMMM===++====+====++="+=
+      C  C  C  C    CCCCCCCCCCCCCCCCC+CC
+                                     C
*--MMXZ==MM=MMMM---M-M-M-===+======="=++=
+CC    CC  C    CCC C C CCCCCCCCCCCC+CCCC
+                                   C
*ZMM=MXZM=MMMM=MMM--MM=M-MMM-==M=M=+++="=
+   C    C    C   CC  C C   CCC C CCCCC+C
+                                      C
*IXM=MZXMMM--==MM==MM==M=====M=MMMM=+=M+=
+   C      CCCC  CC  CC CCCCC C    CCC CC
*-IZMMMM-MMM=MM=MZ==M=M==M===++=====++=+=
+C      C   C  C  CC C CC CCCCCCCCCCCCCCC
*MXAMM=MMMM=M--=MMM=M==MM-M-M=MMM===++=++
+     C    C CCC   C CC  C C C   CCCCCCCC
*X-ZA-M=======-=-==MM=+M+=+===M-M-MM"+="+
+ C  C CCCCCCCCCCCC  CC CCCCCC C C  +CC+C
+                                   C  C
*IAMMIZ==+=====Z=-M++M==+M-=+=+====M+=M+M
+      CCCCCCCC CC CC CCC CCCCCCCCC CC C
*XAZ=XX=+=MM==+=M==M==MZM=++MM====+=++=+=
+   C  CCC  CCCC CC CC   CCC  CCCCCCCCCCC
*--AZ-XZ=M+=====MM-X-=M=M====++=M=M=+++"+
+CC  C  C CCCCCC  C CC C CCCCCCC C CCCC+C
+                                      C
*MM-XXMXZ=++=M==+M--XZMMM==+=MM=++==MM-==
+  C     CCCC CCC CC     CCCC  CCCCC  CCC
*=MMZAX-ZM==MMM=++===---===M=++M-=+=+=-MM
+C     C  CC   CCCCCCCCCCCC CCC CCCCCCC
*=MMM-I--Z+++M-Z=++=MM-MMM=-M==++=-M==+++
+C   C CC CCC C CCCC  C   CC CCCCCC CCCCC
*MMMMMXXMZ=+++MA-+=++M=M=+M=====M+++=MM+=
+         CCCC  CCCCC C CC CCCCC CCCC  CC
*MM===-AX-X++"+XAM+"+=+=-+++++-+==-++++++
+  CCCC  C CC+C   C+CCCCCCCCCCCCCCCCCCCCC
+            C     C
*=MM===-AXZ-"""MXX="++M======++MM+==M==++
+C  CCCC   C+++   C+CC CCCCCCCC  CCC CCCC
+           CCC    C
*M======MAXZM+++MXXM=++M=M=====+===="+===
+ CCCCCC     CCC    CCC C CCCCCCCCCC+CCCC
+                                   C
*MM=M=M===XAXM+++-XXM+=+=MMM===MM=+++M===
+  C C CCC    CCCC   CCCC   CCC  CCCC CCC
*-M==+====MXXZ+"+=XXX==++===X-+===M+=+"==
+C CCCCCCC    C+CC   CCCCCCC CCCCC CCC+CC
+              C                      C
*XX-MMM====MXIZ+""MXZZM++++++MXM=M==M=++"
+  C   CCCC    C++     CCCCCC   C CC CCC+
+               CC                      C
*++ZZMM======XX=+"+-XZ-M=++++""M-M==+====
+CC    CCCCCC  CC+CC  C CCCCC++ C CCCCCCC
+                C           CC
*-===M---====M-M="++-XZZ-M=+++=++==M-M===
+CCCC CCCCCCC C C+CCC   C CCCCCCCCC C CCC
+                C
*-MXM""MZ-=====M++""+-Z----=++++==++"+M--
+C   ++  CCCCCC CC++CC CCCCCCCCCCCCC+C CC
+    CC           CC                C
*MMMMZM--MX-==+=+++"++M--MM--="++=M=="--"
+      ..  CCCCCCCC+CC CC  CCC+CCC CC+..+
+      ''          C          C      C''C
+      XX                             XX
+      CC                             CC
*=MMMM-M+-"M-MM=++++""+MZZ-M=M=+"=+==+=""
+C    C C.+ C  CCCCC++C   C C CC+CCCCCC++
+        'C         CC          C      CC
+        X
+        C
*=MMM=MMM=+--==-++++"""+=M--MMMM==++====+
+C   C   CC..CCCCCCC+++CC CC    CCCCCCCCC
+          ''       CCC
+          XX
+          CC
*MMMMM-MMMM=+--+MM=++""""+M---==MM=+"++=M
+     C    CC..C  CCC++++C CCCCC  CC+CCC
+            ''      CCCC           C
+            XX
+            CC
*=MM=M=M-=M=M-=""=-M+=+""++==M-MM=MM+"+="
+C  C C CC C CCCCCC CCC++CCCC C  C  C+CC+
+              BB      CC            C  C
+              HH
+              XX
*M=MMMMMMMM==MM-+--===+++"""+==M-M===M=+"
+ C        CC  CC..CCCCCC+++CCC C CCC CC+
+                ''      CCC            C
+                XX
+                CC
*MM==MM==M=M=MMMMM="-++=++"""+=+=MM==+=M=
+  CC  CC C C     C+.CCCCC+++CCCC  CCCC C
+                  C'     CCC
+                   X
+                   C
*-M=MM=M=M===M=M=M-M="-+=+"+"""++===M=+++
+C C  C C CCC C C C C+.CCC+C+++CCCCC CCCC
+                    C'   C CCC
+                     X
+                     C
*--M--MMMMMMMMMM=M=MMMM-"MM+"""+++==+MM-+
+CC CC          C C    .+  C+++CCCCCC  CC
+                      'C   CCC
+                      X
+                      C
*--MMMMMMMM--MM=MM=-M-MM="+M=++++++=====M
+CC        CC  C  CC C  C+C CCCCCCCCCCCC
+                        C
*M--M--M-MMMMMMMM-MZ-MMM-==++=M==+=++====
+ CC CC C        C  C   CCCCCC CCCCCCCCCC
*MMM-M-MMMM=M=-M---M-MMMM===+""===+++++++
+   C C    C CC CCC C    CCCC++CCCCCCCCCC
+                            CC
*=M--MM-MM-M--MMMM=MM==M=MM=--"-"M+"+"+""
+C CC  C  C CC    C  CC C  CCC+.+ C+C+C++
+                             C'C  C C CC
+                              X
+                              C
*M=MMMM====MMMM--MMM-=MMM======+"-"+=+"++
+ C    CCCC    CC   CC   CCCCCCC+.+CCC+CC
+                               C'C   C
+                                X
+                                C
*==MM=M=M==M-M-MMMMM=MMMMM=M=====+"-"""+"
+CC  C C CC C C     C     C CCCCCC+.+++C+
+                                 C'CCC C
+                                  X
+                                  C
*MMMMMM==MM=+M=====M=--MMMMM========""---
+      CC  CC CCCCC CCC     CCCCCCCC++...
+                                   CC'''
+                                     XXX
+                                     CCC
*-MMMM=MMM===M+MM====+MZ-MMM=+=M=+=+M+"--
+C    C   CCC C  CCCCC  C   CCC CCCC C+..
+                                     C''
+                                      XX
+                                      CC
*=+==MM=M==M=MM=====MM=MM=MM====+++++=++=
+CCCC  C CC C  CCCCC  C  C  CCCCCCCCCCCCC
*"--""+===MMMMM-=M==MMM=M==MMMM=M=+"++""+
++..++CCCC     CC CC   C CC    C CC+CC++C
+C''CC                             C  CC
+ XX
+ CC
*-M="-----""+=MMM==MMMMMMMMMMMMMMMMMM==++
+C C+.....++CC   CC                  CCCC
+   C'''''CC
+    XXXXX
+    CCCCC
*=M-MZ=-""-""""---"+"=M=M==M=M=M=MM---XM+
+C C  C.CC.CCCC...+C+C C CC C C C  CCC  C
+      'BB'BBBB'''C C
+      XHHXHHHHXXX
+      CXXCXXXXCCC
*M===M--M++"-"""""""""-"--+-""""+"=+"""--
+ CCC CC CC+.CCCCCCCCC.C..C.++++C+CC+++..
+          C'BBBBBBBBB'B'' 'CCCC C  CCC''
+           XHHHHHHHHHXHXX X           XX
+           CXXXXXXXXXCXCC C           CC
*===+MMMMZ-M=++----"--""""---"-----"-----
+CCCC     C CCC....C..CCCC...C.....C.....
+              ''''B''BBBB'''B'''''B'''''
+              XXXXHXXHHHHXXXHXXXXXHXXXXX
+              CCCCXCCXXXXCCCXCCCCCXCCCCC
*=+"""""+++++=+"+"""-""-"---""---"--"-"-"
+CC+++++CCCCCCC+C+CC.CC.C...CC...C..C.C.C
+  CCCCC       C CBB'BB'B'''BB'''B''B'B'B
+                 HHXHHXHXXXHHXXXHXXHXHXH
+                 XXCXXCXCCCXXCCCXCCXCXCX
*=""-----------------------"-----"-------
+C++.......................C.....C.......
+ CC'''''''''''''''''''''''B'''''B'''''''
+   XXXXXXXXXXXXXXXXXXXXXXXHXXXXXHXXXXXXX
+   CCCCCCCCCCCCCCCCCCCCCCCXCCCCCXCCCCCCC
*-"----"----"-"---"--""""""""---""""-"""-
+.C....C....C.C...C..CCCCCCCC...CCCC.CCC.
+'B''''B''''B'B'''B''BBBBBBBB'''BBBB'BBB'
+XHXXXXHXXXXHXHXXXHXXHHHHHHHHXXXHHHHXHHHX
+CXCCCCXCCCCXCXCCCXCCXXXXXXXXCCCXXXXCXXXC
*======MMMM-MMMMMMM----Z-ZZ--ZZZZZXZZ----
+CCCCCC    C       CCCC C  CC        CCCC
*+=11++ =111++++1++1+1-1+11-111++11++++==





















*                                                                                                                                    --MMMMM