'''-'''-'--'-----'--------------------------'=-AX)=-                                                 =Z+-'''''''''-------------'M1=
CCC.CCC.C..C.....C..........................+CC                                                        C.CCCCCCCCC.............+

BBB'BBB'B''B'''''B''''''''''''''''''''''''''C                                                           'BBBBBBBBB'''''''''''''C

HHHXHHHXHXXHXXXXXHXXXXXXXXXXXXXXXXXXXXXXXXXX                                                            XHHHHHHHHHXXXXXXXXXXXXX

XXXCXXXCXCCXCCCCCXCCCCCCCCCCCCCCCCCCCCCCCCCC                                                            CXXXXXXXXXCCCCCCCCCCCCC

'''''''-'--'-----------''--------------------.+=MXZ+=-                                               )A+-''''''''''------------.-Z=
CCCCCCC.C..C...........CC....................'CC                                                       C.CCCCCCCCCC............'C

BBBBBBB'B''B'''''''''''BB''''''''''''''''''''+                                                          'BBBBBBBBBB''''''''''''+

HHHHHHHXHXXHXXXXXXXXXXXHHXXXXXXXXXXXXXXXXXXXXC                                                          XHHHHHHHHHHXXXXXXXXXXXXC

XXXXXXXCXCCXCCCCCCCCCCCXXCCCCCCCCCCCCCCCCCCCC                                                           CXXXXXXXXXXCCCCCCCCCCCC

'''''-'-'--'-''-----'-------------------------.'=-AZ1+=                                             =ZM'-''''''''''------------.-Z=
CCCCC.C.C..C.CC.....C.........................'+CC                                                     +.CCCCCCCCCC............'C

BBBBB'B'B''B'BB'''''B'''''''''''''''''''''''''+C                                                       C'BBBBBBBBBB''''''''''''+

HHHHHXHXHXXHXHHXXXXXHXXXXXXXXXXXXXXXXXXXXXXXXXC                                                         XHHHHHHHHHHXXXXXXXXXXXXC

XXXXXCXCXCCXCXXCCCCCXCCCCCCCCCCCCCCCCCCCCCCCCC                                                          CXXXXXXXXXXCCCCCCCCCCCC

-----------------------------------------------..+=-AX1)+-                                         =1A=--'''''''''-------------.-Z=
...............................................''CCC                                                  C..CCCCCCCCC.............'C

'''''''''''''''''''''''''''''''''''''''''''''''++                                                      ''BBBBBBBBB'''''''''''''+

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXCC                                                      XXHHHHHHHHHXXXXXXXXXXXXXC

CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC                                                        CCXXXXXXXXXCCCCCCCCCCCCC

-------------------------------------------------.'+=-MAZ1)+==--                                  -)X-'-'''''''''---...--------.-Z+
.................................................'+CCC                                               C+.CCCCCCCCC...'''........'C

'''''''''''''''''''''''''''''''''''''''''''''''''+C                                                   C'BBBBBBBBB'''+++''''''''+

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXC                                                     XHHHHHHHHHXXXCCCXXXXXXXXC

CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC                                                      CXXXXXXXXXCCC   CCCCCCCC

-----.--....-......--.........-------------------...'++=-MAAXZ11))+=+===---                       -)X=.''''''''--.'+===+.------.-Z+
.....'..''''.''''''..'''''''''...................'''+CCCC                                            C'CCCCCCCC..'+CCCCC'......'C

'''''+''++++'++++++''+++++++++'''''''''''''''''''+++C                                                 +BBBBBBBB''+C     +''''''+

XXXXXCXXCCCCXCCCCCCXXCCCCCCCCCXXXXXXXXXXXXXXXXXXXCCC                                                  CHHHHHHHHXXC      CXXXXXXC

CCCCC CC    C      CC         CCCCCCCCCCCCCCCCCCC                                                      XXXXXXXXCC        CCCCCC

..''''''''''''''''''''''''''''.........--------.....'''++==--MAXXZ1))))++===--                    -)X=.-'''''--'++=--MMA=.-----.=X+
''++++++++++++++++++++++++++++'''''''''........'''''+++CCCCCC                                        C'.CCCCC..+CCCCC   C'.....'C

++CCCCCCCCCCCCCCCCCCCCCCCCCCCC+++++++++''''''''+++++CCC                                               +'BBBBB''C         +'''''+

CC                            CCCCCCCCCXXXXXXXXCCCCC                                                  CXHHHHHXX          CXXXXXC

                                       CCCCCCCC                                                        CXXXXXCC           CCCCC

+++++++++==+++++++++++=++++++++'+''''...........''++==--MMAAXXZZ11+)+)++===---                    -+ZM+--'''-'++=------MX-.----.=X+
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC+C++++'''''''''''++CCCCCC                                              C..CCC.+CCCCCCCCC  C'....'C

                               C CCCC+++++++++++CC                                                     ''BBB'C            +''''+

                                     CCCCCCCCCCC                                                       XXHHHX             CXXXXC

                                                                                                       CCXXXC              CCCC

====-----MMM---------------------===+++''''''++==-MMAXZ11)))++==-- --                              -)XM+-'-.++=-----===-AM+----.=A)-
CCCCCCCCC   CCCCCCCCCCCCCCCCCCCCCCCCCCC++++++CCCCC                                                     C.C.'CCCCCCCCCCCC  C....'C

                                       CCCCCC                                                           'B'+               ''''+

                                                                                                        XHXC               XXXXC

                                                                                                        CXC                CCCC

AAXXXXXZ1ZZZZZZZZXXZZZZZZZZZZZZZXXAAMM--=====--MAXZ1)++=--                                          -)ZM'-.+=-M-----==+=-A-.---.=X)-
                                      CCCCCCCCC                                                         +.'CCC CCCCCCCCCC C'...'C

                                                                                                        C'+                +'''+

                                                                                                         XC                CXXXC

                                                                                                         C                  CCC

))++++++ZXAAXZ11)===++========++))11ZXXAAAAAAAXZ1)+==-                                               -+Z-+'+-----====+++=AM'---.=A1=
                                                                                                        CC+CCCCCCCCCCCCCC  +...'C

                                                                                                          C                C'''+

                                                                                                                            XXXC

                                                                                                                            CCC

       )XMM-MMAX1+-             --=++))1111111))+=-                                                   =1A-=-------==++++=MM=---.+A1=
           C                                                                                             CCCCCCCCCCCCCCCC  C...'C

                                                                                                                            '''+

                                                                                                                            XXXC

                                                                                                                            CCC

      -ZAM--MMAMAX1+                --==+=++====--                                                   -+ZA-------MM-=='''+-M=---.=A1=
          CC                                                                                             CCCCCCC  CCC+++CC C...'C

                                                                                                                     CCC    '''+

                                                                                                                            XXXC

                                                                                                                            CCC

      )AM---MMMMMMMX1-                                                                             =)1ZAM---MMAMMMM-=+'''=M-.--.+M1=
         CCC                                                                                             CCC       CCC+++C C'..'C

                                                                                                                      CCC   +''+

                                                                                                                            CXXC

                                                                                                                             CC

      )M-+=-MMAAAMM-MZ+                                          -==+)))))++=-                 -=+)XAMM----MMMAAAAMM-++''+M-.--.+M1=
        CCCC       C                                                                                   CCCC         CCC++C C'..'C

                                                                                                                       CC   +''+

                                                                                                                            CXXC

                                                                                                                             CC

      )M===-MMMAAAMMMMM1                          -----=++++))))1ZZXAAAMAAAAXXZZZZ11)++)))11ZZZXAAMM--==---MMMAAXAAMM=+''+-M'---+MZ+
        CCCC                                                                                        CCCCCCC          CC++CC +...C

                                                                                                                       CC   C'''

                                                                                                                             XXX

                                                                                                                             CCC

      Z-++=---MMMMMMM--MX+                   --====++))1ZZXXXAAXMM----======--------MMMMMM-========---=----MAAXAAAMM-=+'.+-M'--.+MZ+
       CCCCCCC       CC                                           CCCCCCCCCCCCCCCCCC      CCCCCCCCCCCCCCCCC         CCC+'CC +..'C

                                                                                                                       C+   C''+

                                                                                                                        C    XXC

                                                                                                                             CC

      X-++==-MAMMMMMA----A)                 -=++))11ZZXAAMMMM--M==++++++++'++++++''+'+'++'''.'''''===-----MMAAXXXAM-==+'.'=M+---+MZ+
       CCCCCC        CCCC                                    CC CCCCCCCCCC+CCCCCC++C+C+CC+++'+++++CCCCCCCC         CCCC+'+C C...C

                                                                          C      CC C C  CCC+CCCCC                     C+C   '''

                                                                                            C                           C    XXX

                                                                                                                             CCC

      A-++++-MMAAAAAA-----MZ-             -=+)))ZXXAAMM---=====-+'''''''''..'.'........''...---..++=====-MMMAXAAAAM-=+++''+M=---+MZ+
       CCCCCC        CCCCC                             CCCCCCCCCC+++++++++''+'+''''''''++'''...''CCCCCCCC          CCCCC++C C...C

                                                                 CCCCCCCCC++C+C++++++++CC+++'''++                       CC   '''

                                                                          CC C CCCCCCCC  CCCXXXCC                            XXX

                                                                                            CCC                              CCC

      A=+'+=-MAAXZXXAMMM----A=          -=+)1ZXXAMM----======++='''''''''..............''..----.'=+==--MMAAXXZXAAAAM-==++'+M-.-.+MZ+
       CC+CCC           CCCC                       CCCCCCCCCCCCC+++++++++''''''''''''''++''....'+CCCCCC             CCCCC+C C'.'C

         C                                                      CCCCCCCCC++++++++++++++CC++''''+C                        C   +'+

                                                                         CCCCCCCCCCCCCC  CCXXXXC                             CXC

                                                                                           CCCC                               C

      X='+++MMAXXXXZAAAAM--=-Z=       --+)1ZXAMM-====+====++++++'''''''''.......'''''''++''...-'++=-=-MAAAXXXZZZXAMMM-=++++MM'--'-X)
       C+CCC             CCCC                   CCCCCCCCCCCCCCCC+++++++++'''''''+++++++CC++'''.+CCCCCC               CCCCCC  +..+C

        C                                                       CCCCCCCCC+++++++CCCCCCC  CC+++'C                             C''C

                                                                         CCCCCCC           CCCX                               XX

                                                                                              C                               CC

      X='+=-MAAZZ111ZZZXA--==-A)     -=+)ZXAM-==++++++====++''+'.''+++++''.....'''''''+====++''+=====MMAAXZZZZZXXXAAMMM-+++MA+--'-X)
       C+CCC             CCCCC               CCCCCCCCCCCCCCC++C+'++CCCCC++'''''+++++++CCCCCCC++CCCCCC                  CCCC  C..+C

        C                                                   CC C+CC     CC+++++CCCCCCC       CC                               ''C

                                                                C         CCCCC                                               XX

                                                                                                                              CC

      X-+=MAAAX111)1Z11ZXM-===-M1--==+)ZZXM-==+++++++++==++'''+'.''++==++'....''''''''=-MM----======-MAAXXZZZZZZXXAMMAAA-==AA+-.'-A1
       CCC                CCCCC            CCCCCCCCCCCCCCCC+++C+'++CCCCCC+''''++++++++CC  CCCCCCCCCCC                   CCC  C.'+C

                                                           CCC C+CC      C++++CCCCCCCC                                        '+C

                                                                C         CCCC                                                XC

                                                                                                                              C

      Z-=--AAAXXZZZZZ11ZZZXM=++=MX1)11XZXA-=++''''+++++''+++++=''''+++=+''..'''''''''+=MMM-----=+==-MAAAXZ1111ZZZZXAAMAAA--AA+..+-AZ
       CCCC                 CCCC          CCCC++++CCCCC++CCCCCC++++CCCCC++''+++++++++CC   CCCCCCCCCC                     CC  C''CC

                                              CCCC     CC      CCCC     CC++CCCCCCCCC                                         ++

                                                                          CC                                                  CC

      Z-=+-MMMMMMAXXXXXXXXXA-=++==MAXXXXXAM-=+++''''+++'''++==M=+++++++'''++'''....'++=--=++++++++=-MAXXXZ1))))))11Z1ZXAM-MXM+..'=AZ
       CCCC                 CCCCCC         CCCCC++++CCC+++CCCC CCCCCCCC+++CC+++''''+CCCCCCCCCCCCCCCC                     C   C''+C

                                                CCCC   CCC             CCC  CCC++++C                                          ++C

                                                                               CCCC                                           CC

      )M--MMMM--MAXXZZZZXXXAAM-=++=-MAAMMMMM--==+''''+++++==-MM-=+++++++++==++'.''''++==+'.''+''+==-MAXZZ11)))+++))1111ZA-MXM+''+=MX
        CC    CC              CCCCCC        CCCCC++++CCCCCCCC  CCCCCCCCCCCCCCC+'++++CCCCC+'++C++CCCC                     C   C++CC

                                                 CCCC                         C+CCCC     C+CC CC                              CC

                                                                               C          C

      +A==--MM-MAXZZ1111ZXXXXAM-++++-=+''=---===++'..'=-MMMMMMA=====+====---=+'''.''++=+'-.''+''+--MMAXZ1))+)))))11ZZZXAMMMAM+''+=-A
        CCCC  C                CCCCCCCC++CCCCCCCCC+''+CC       CCCCCCCCCCCCCCC+++'++CCCC+.'++C++CCC                          C++CCC

                                       CC         C++C                        CCC+CC    C'+CC CC                              CC

                                                   CC                            C       XC

                                                                                         C

       A===MAAM--AXZZZZZZZZZXAAM-=''++.--.+=====+'''''+-MXAM-MM=====------MMM=++'''+=+='.-..''''+=MMAXXZZZZZ1))))))1ZXAAMMMA-+''++-A
        CCC    CC               CC++CC'..'CCCCCCC+++++CC    C  CCCCCCCCCCC   CCC+++CCCC+'.''++++CC                          CC++CCC

                                  CC  +''+       CCCCC                          CCC    C+'++CCCC                              CC

                                      CXXC                                              CXCC

                                       CC                                                C

       A++-MMMMMX11ZZZZZZXXZZXXAM-'.++'---''++++'''..'+=-M-=+=-====-----==-MM==++''+==+'-..''.''=-MMMXZZ111111ZZZ11ZXAAAAAAX-''''+-A
        CCC                      C+'CC+...++CCCC+++''+CCC CCCCCCCCCCCCCCCCC  CCCC++CCCC+.''++'++CC                          C++++CC

                                  C+  C'''CC    CCC++C                           CC    C'++CC+CC                             CCCC

                                   C   XXX         CC                                   XCC  C

                                       CCC                                              C

       Z-=-AZZ111)11ZZ11ZZ11ZZXXA-+''++.---.'+++'.....'+=-=+''-+=======-==---==+++=++++.-.'''..'---MAXZ11)))+))1111ZXAMAXAXX-'..'+-A
        CCC                      CC++CC'...'+CCC+'''''+CCCCC++CCCCCCCCCCCCCCCCCCCCCCCCC'.'+++''+CCC                         C+''+CC

                                   CC  +'''+C   C+++++C     CC                         +'+CCC++C                             C++C

                                       CXXXC     CCCCC                                 CXC   CC                               CC

                                        CCC                                             C

       1M-AX1))1)+++++=+)11ZZXXAMM=+''''.---.'++'......'++''''-+=++======----==++==+'''--'''..'+=--MAXXZ11)+++++++))11ZZ1ZZX='...+=M
         C                        CC++++'...'+CC+''''''+CC++++CCCCCCCCCCCCCCCCCCCCCC+++..+++''+CCCC                         C+'''CC

                                    CCCC+'''+C  C++++++C  CCCC                      CCC''CCC++C                              C+++

                                        CXXXC    CCCCCC                                XX   CC                                CCC

                                         CCC                                           CC

       )XAXZZ)++=-=+==+)1ZZZXXAAAA-+'''''.---.'+''..--..''+=+'=+++'+===========++''......''.-.'+=-AXAXZZ11)))))))11))11)111Z='...'=M
                                  CC+++++'...'+C++''..''++CCC+CCCC+CCCCCCCCCCCCCC++''''''++'.'+CCC                          C+'''+C

                                    CCCCC+'''+C CC++''++CC   C    C              CC++++++CC+'+C                              C+++C

                                         CXXXC    CCXXCC                           CCCCCC  CXC                                CCC

                                          CCC       CC                                      C

   -=)11ZXXXZZZ1))))))1))))1ZZXAAM-='...'+.---..''''...''++==+==+=++======+===++''.---'''...-.'+-MAXXXXZ1Z11111ZXXAAAXXXXZXM+....'+-
                                  CC+'''+C'...''++++'''++CCCCCCCCCCCCCCCCCCCCCCC++'...+++'''.'+CC                           C''''+CC

                                    C+++C +'''++CCCC+++CC                       CC+'''CCC+++'+C                              ++++C

                                     CCC  CXXXCC    CCC                           CXXX   CCCXC                               CCCC

                                           CCC                                     CCC      C

 -+1ZAAXXAAAXAAAAXX11))))111ZZXXAM-='.--'+------.'''+'++'++=++-==-======+++=+++''.----'++'..-.'=-MAAXZXXXXXAAAAAXXXMMAAAAA-=+.....+=
                                  CC+'..+C......'+++C+CC+CCCCCCCCCCCCCCCCCCCCCC++'....+CC+''.'+CC                         CCC'''''CC

                                    C+''C ''''''+CCC C  C                      CC+''''C  C++'+C                              +++++

                                     CXX  XXXXXXC                                CXXXX    CCXC                               CCCCC

                                      CC  CCCCCC                                  CCCC      C

+1XM-==-AAAXXXAXZ1)++++)))1)))ZXXA-=+....'.-----.'+'+++''+==='-=+=++====+'+++++'.-----.'+''...+=-MAXXXXXZAAMMM--MAXXAAAAMM+'+.....'+
    CCCC                          CCC''''+'.....'+C+CCC++CCCC+CCCCCCCCCCC+CCCCC+'.....'+C++'''CCC             CC          C+C'''''+C

                                     ++++C+'''''+C C   CC    C           C     C+'''''+C CC+++                             C +++++C

                                     CCCC CXXXXXC                               CXXXXXC    CCC                               CCCCC

                                           CCCCC                                 CCCCC

XM==+++=MXMAX111+++=+))+)1)+)ZAAAXA-='.'..'+.---.++++=+''=-M='=-+='++--=+'==++'+'.----..''.'.'+=-MXXZZZZZZXXXXAAXXXZZZXA-=+'+.....''
  CCCCCC                           CC+'+''+C'...'CCCCCC++CC C+CCCC+CCCCCC+CCCC+C+'....''++'+'+CCC                       CCC+C'''''++

                                     C+C++C +'''+      CC    C    C      C    C C+''''++CC+C+C                             C +++++CC

                                      C CC  CXXXC                                CXXXXCC  C C                                CCCCC

                                             CCC                                  CCCC

-=+++++=-XZZ1)1ZZZZ1ZZXXZ11ZZZZZXXA-='''..''----'++''++''=--='=-+=++=-=+''+''''''----..-......'+=-AAXZ1))))))11)1111111XM=+'+.-....'
CCCCCCCCC                          CC+++''++....+CC++CC++CCCC+CCCCCCCCCC++C++++++....''.''''''+CCC                       CC+C'.''''+

                                     CCC++CC''''C  CC  CC    C          CC CCCCCC''''++'++++++C                            C +'++++C

                                        CC  XXXX                                 XXXXCCXCCCCCC                               CXCCCC

                                            CCCC                                 CCCC  C                                      C

++++++=-MX1ZZZZXXAA--MAXZZZZ11ZZZAM-=+''''..---.'++''''+==-==+=-+=+'+=++...'''..'.---..----..''+=-MAXXZ1))++++++)+))11)1X-='+'-.....
CCCCCCCC           CC              CCC++++''...'+CC++++CCCCCCCCCCCC+CCCC'''+++''+'...''....''++CCC                       CC+C+.'''''

                                      CCCC++'''+C  CCCC            C    +++CCC++C+'''++''''++CC                            C C'+++++

                                          CCXXXC                        CCC   CC CXXXCCXXXXCC                                 XCCCCC

                                            CCC                                   CCC  CCCC                                   C

=+++==---=MMAAXAMMAAAZ1))))))11ZZAAM=++''..---..'''...'+=--+===-=+''=+.'...'''.....-.'-----.'''+=-MMAXXZZ11))))+++++++++1A-++'......
CCCCCCCCCC                          CCC++''...''+++'''+CCCCCCCCCCC++CC'+'''+++'''''.'+.....'+++CCC                        CCC+''''''

                                       CC++'''++CCC+++C           CC  +C+++CCC+++++'+C'''''+CCC                              C++++++

                                         CCXXXCC   CCC                C CCC   CCCCCXC XXXXXC                                  CCCCCC

                                           CCC                                     C  CCCCC

'+'++++++.=MXZ1)))))++++=+++))ZZXAAM-=+''....'+...'....'=-=+=+==++''-=+.--...........'.---.'''+====-MAAXXZZ11Z11Z1ZZ111)+XAM-+......
+C+CCCCCC'C                         CCC++''''+C'''+''''+CCCCCCCCCC++CCC'..'''''''''''+'...'+++CCCCCC                        CC''''''

C C      +                             CC++++C +++C++++C          CC   +''+++++++++++C+'''+CCC                                ++++++

         C                               CCCC  CCC CCCC                CXXCCCCCCCCCCC CXXXC                                   CCCCCC

                                                                        CC             CCC

''''++=--=-MZ)+++))+=====+)1ZZAXXAAA-==='....'+'''...'''+++'+'+=+'+.=='..........---.'--.''++=---------MMXZZZXXAAAM-MMAZ1M==='......
++++CCCCCCC                         CCCC+''''+C+++'''+++CCC+C+CCC+C'CC+''''''''''...'+..'++CCCCCCCCCCCC            C      CCC+''''''

CCCC                                    C++++C CCC+++CCC   C C   C +  C++++++++++'''+C''+CC                                  C++++++

                                         CCCC     CCC              C   CCCCCCCCCCXXXC XXC                                     CCCCCC

                                                                                 CCC  CC

'''+++=--++-X)1Z11)))))11ZZXAAAXXAAAM==-+'...'+++....'+''+'+''+=+'=.'++.....--...-.-.'--.'++==MAAAMM----MAXXXXXA-==+==MXZ-+++.......
+++CCCCCCCCC                         CCCC+'''+CCC''''+C++C+C++CCC+C'+CC'''''..'''.'.'+..'+CCCC      CCCC        CCCCCC   CCCC'''''''

CCC                                      C+++C   ++++C CC C CC   C +C  +++++''+++'+'+C''+C                                   +++++++

                                          CCC    CCCC              C   CCCCCXXCCCXCXC XXC                                    CCCCCCC

                                                                            CC   C C  CC

''+++==-=++-Z)1ZZZXXXXZXXAAAAAAXXXXZX-==+'..'++'.-....++++=+'''-'.+''++'.''.----'.'.''--.'+==-MAAXAM---MMAAAAAMM-=====MXZ-+=+'......
++CCCCCCCCCC                         CCCC+''+CC+'.''''CCCCCC+++C+'C++CC+'++'....+'+'++..'+CCCC      CCC         CCCCCC   CCCC+''''''

CC                                       C++C  C+'++++      CCC C+ CC  C+CC+''''C+C+CC''+C                                   C++++++

                                          CC    CXCCCC           C      C  CXXXX C C  XXC                                     CCCCCC

                                                 C                          CCCC      CC

++++===-='=MZX---==-MAXXXZXZZXAAAXXXXM=++++++''--.....'++=-=.'+-+.+++'''.'''..--'.''='-..++++=MAXXXAMM-AAXMMAAM==++=--MZZ-=-='......
CCCCCCCCC+C   CCCCCC                  CCCCCCC++..'''''+CCCCC'+CCC'CCC+++'+++''..+'++C+.''CCCCC        C        CCCCCCC   CCCC+''''''

         C                                   CC''+++++C     +C   +   CCC+CCC++''C+CC C'++                                    C++++++

                                               XXCCCCC      C    C      C   CCXX C    XCC                                     CCCCCC

                                               CC                             CC      C

'+++==---+'-ZX-+'''+-AAXXZXXZZAMMAMM-=+''++=+'---'''.'+=-MM=.+'=+''+=+'.......-...'++'-.''''+-MMM-MAXXZXXXXXAAM===+++=MZZ---='......
+CCCCCCCCC+C  CC+++CC               CCC++CCCC+...+++'+CCC  C'C+CC++CCC+'''''''.'''+CC+.'++++CC   C             CCCCCCC   CCCC+''''''

C         C     CCC                    CC    C'''CCC+C      + C  CC   C+++++++'+++C  C'+CCCC                                 C++++++

                                              XXX   C       C          CCCCCCCXCCC    XC                                      CCCCCC

                                              CCC                             C       C

+++==--MM+'-ZA-=+''+--AZZZZZXXXXAMM-==+'+=++='-.-..'+=-+=-M-.+'=++'.==++'.''---.-..'+'--.'.''+====-AXZZXXZZZXAMM---==-MXA==-='......
CCCCCCC  C+C  CCC++CCC             CCCC+CCCCC+.'.''+CCCCCC C'C+CCC+'CCCC+'++...'.''+C+..'+'++CCCCCC             CCCCCC   CCCC+''''''

          C      CC                    C     C'+'++C        + C   C+    C+CC'''+'++C C''+C+CC                                C++++++

                                              XCXCC         C      C     C  XXXCXCC   XXC C                                   CCCCCC

                                              C C                           CCC C     CC

++===-MAA-+=XXM=++++-AAAZZZZX1AAM---==+'+=+''....''+==-+=-M='=++=+''+===+''+'---.'''+'--..''.'+=+==MAAAAXXXXAMAXXA-===---+'==+.-....
CCCCCC   CCC   CCCCCC            CCCCCC+CCC++''''++CCCCCCC C+CCCCC++CCCCC++C+...'+++C+..''++'+CCCCC               CCCCCCCC+CCC'.''''

                                       C   CC++++CC         C     CC     CC C'''+CCC C''++CC+C                            C   +'++++

                                             CCCC                            XXXC     XXCC  C                                 CXCCCC

                                                                             CCC      CC                                       C

++==-MAXZXM=AM--+===MMZZAAX11 ZAA-+=-+='''+''.''.'++=--+--=''==+++=+'++==''++...''.''.--'++'.''=+++===-MAMMAMAX11XM===+''..+=+..--..
CCCCC      C  CCCCCC             CCCCCC+++C++'++'+CCCCCCCCC++CCCCCCC+CCCC++CC'''++'++'..+CC+'++CCCCCCCC            CCCC++''CCC''..''

                                       CCC CC+CC+C         CC       C    CC  +++CC+CC+''C  C+CC                        CC++   ++''++

                                             C  C                            CCC  C  CXX    C                            CC   CCXXCC

                                                                                      CC                                        CC

++=--AXZZX-+-XMAAMMMMMAAXAMAAA-=M-='+'+'...'+.'+.'+'+=M-M-+.'=='+''..'+==''''-.''.-''...'++'.''+'''++++-M-MMMAXXXAM++'..---.+='.---.
CCCCC     CCC                 CC CC+C+C+'''+C'+C'+C+CC C CC'+CC+C++''+CCC++++.'++'.++'''+CC+'++C+++CCCCC C         CC+''...'CC+'...'

                                   C C C+++C +C +C C       +C  C CC++C   CCCC'+CC+'CC+++C  C+CC CCC                  C++'''+  C+'''+

                                        CCC  C  C          C       CC        XC  CX  CCC    C                         CCXXXC   CXXXC

                                                                             C    C                                     CCC     CCC

+==-MAX11X-'+MMMAXXXAAAAAMMMM-+''M-+'.''....'..''.'++=--M+'.+=+.'+'...'+=++'.-...''.'...'''''.'+'''=+++=-----MMAA-+'....--..'=+'.--.
CCCC      C+C                CC++ CC+'++''''+''++'+CCCCC C+'CCC'+C+'''+CCCC+'.'''++'+'''+++++'+C+++CCCCCCCCCC    CC+''''..''+CC+'..'

           C                   CC   C+CC++++C++CC+C       C+   +C C+++C    C+'+++CC+C+++CCCCC+C CCC                C++++''++C  C+''+

                                     C  CCCC CC  C         C   C   CCC      CXCCC  C CCC     C                      CCCCXXCC    CXXC

                                                                             C                                          CC       CC

==-MAXZ)1X=.'=---AXXAAMMAM=-M-++'-M='.'+''......'..'=M--='''+++''''...''+==+..'-.....-''''''.'+++''++++==+=====--=+'.---....'==+.-..
CCC       C'+CCCC         CC CCC+C C+'+C++''''''+''+C CCC+++CCC++++'''++CCCC''+.'''''.++++++'+CCC++CCCCCCCCCCCCCCCC+'...''''+CCC'.''

           +C                   C   C+C CC++++++C++C     CCC   CCCC+++CC    ++C'+++++'CCCCCC+C   CC                C+'''++++C   +'++

           C                         C    CCCCCC CC                CCC      CC XCCCCCX      C                       CXXXCCCC    CXCC

                                                                               C     C                               CCC         C

=-MAXX1)1X=.'====MAMM--M--++++++=---='++'+.'--.''.''-AA-=++='++'.'+.'..+=--+.''--..-.''''''''+==+'''+++=++++++==--='.-....'''+=='...
CC        C'+CCCC    CC CCCCCCCCCCCCC+CC+C'+..'++'++C  CCCCC+CC+'+C'+''CCCCC'++..''.'++++++++CCCC+++CCCCCCCCCCCCCCC+'.''''+++CCC+'''

           +C                        C  C +C''+CC+CC        C  C+C +C++     +CC''++'+CCCCCCCC    CCC               C+'++++CCC   C+++

           C                              C XXC  C              C  C CC     C  XXCCXC                               CXCCCC       CCC

                                            CC                                 CC  C                                 C

=-MAX1))Z-'--.+-M----=====+'+''==-==='=+''.'..''+'+-AXA-+++='+='.++'+'.+-MM='''-...-.'..''''+++=+''+''+''==''+=---=+....''''++==='..
CC       C+..'CC CCCCCCCCCC+C++CCCCCC+CC++'+''++C+CC   CCCCC+CC+'CC+C+'CC  C+++.'''.'+''++++CCCCC++C++C++CC++CCCCCCC''''++++CCCCC+''

          C''+             C CC      C  CC+C++CC C          C  C+  C C+     CCC'+++'+C++CCCC     CC CC CC  CC       ++++CCCC     C++

           XXC                            C CC                  C     C        XCCCXC CC                            CCCC          CC

           CC                                                                  C   C

-MMXZ1+1A+...'+=-MMM-=+===''''++==+++''=+..''.++++=AAAA='.+=+-='.++'='.+MAX-'''..-..'+'''++'+++=+''+'''++=+'+==++++'''.'+'''''+==+''
C        C'''+CCC   CCCCCC++++CCCCCCC++CC''++'CCCCC    C+'CCCCC+'CC+C+'C   C+++''.''+C+++CC+CCCCC++C+++CCCC+CCCCCCC+++'+C+++++CCCC++

          +++C            CCCC       CC  ++CC+          C+     C+  C C+     CCC++'++C CCC  C     CC CCC    C       CCC+C CCCCC    CC

          CCC                            CC  C           C      C     C        CCXCC                                  C

                                                                                 C

-MAX1)+Z-'.--.'=--M-=+'+=-+++++='+++'''+'.+'..+++=--MAA=+''+=-++'+'.+'.+MAA='''...-..=++++'++++'+++++'+===''++'''.'++++++++'.''+==''
C       C+'..'+CCC CCC+CCCCCCCCC+CCC+++C+'C+''CCCCCC   CC++CCCCC+C+'C+'C   C+++'''.''CCCCC+CCCC+CCCCC+CCCC++CC+++'+CCCCCCCC+'++CCC++

         C+''+C       C         C   CCC C+ C++           CC     C C+ C+     CCC+++'++     C    C     C    CC  CCC+C        C+CC   CC

          CXXC                           C  CC                     C  C        CCCXCC                            C          C

           CC                                                                     C

MAXZ)+1X='.---.=MM-M++''+++=--===-+=+.++++-'-.++=++++-A-=+.''=='+='.'..+-A-+.++.---.'===++++..'++========+.''.''''+'+++=+===++++==+'
        C+'...'C  C CC++CCCCCCCCCCCCC'CCCCC+.'CCCCCCCC CCC'++CC+CC+'+''CC CC'CC'...'+CCCCCCC''+CCCCCCCCCCC'++'++++C+CCCCCCCCCCCCCCC+

         C+'''+       CC             +     C'+            +CC  C  C+C++     +  +'''+C       ++C           +CC+CCCC C               C

          CXXXC                      C      XC            C        C CC     C  CXXXC        CC            C  C

           CCC                              C                                   CCC

MAX1++1M+'....''=-=+...'-+'+--==----M++=++='--'+-=+'.+--=+...=+''+.-..'===+''==.---''=-===+'.''++======+++'''+++''++++++=======+==+'
        C+''''++CCCC'''+CC+CCCCCCCCC CCCCCC+..+CCCC+'CCCCC'''CC++C'.''+CCCC++CC'...++CCCCCC+'++CCCCCCCCCCC+++CCC++CCCCCCCCCCCCCCCCC+

         C++++CC    +++C  C                C''C    C+     +++  CC +'++C    CC  +'''CC      C+CC           CCC   CC                 C

          CCCC      CCC                     XX      C     CCC     CXCC         CXXX         C

                                            CC                     C            CCC

AXZ)+)X='.....'+'=++..'+--====++++=-A-==++-'--.=MM='.'=--=...+'''.--.'=-+...'-=.---''=MM--=''''++===++===+'+==++'+++'++=-=====-===+'
       C+'''''+C+CCC''+CCCCCCCCCCCCC CCCCCC+..'C  C+'+CCCC'''C+++'..'+CCC'''+CC'...++C  CCC++++CCCCCCCCCCC+CCCCC+CCC+CCCCCCCCCCCCCC+

        C+++++C C   ++C                    C''+    C+C    +++ CCC+''+C   +++C  +'''CC      CCCC           C     C   C              C

         CCCCC      CC                      XXC     C     CCC    CXXC    CCC   CXXX

                                            CC                    CC            CCC

AX1++Z-'...'++..'++++'++=-M--=+'.'+=MAM='+-'--'-XAM+'.=MM+...'''....'+--'...+-=.--..'=MMMM=+''''+++++====++====+''''+==---===----=+'
      C+'''+CC''+CCCC+CCCC CCCC+'+CC   C+CC+..+C   C+'C  C'''+++''''+CCC+'''CCC'..''+C    CC++++CCCCCCCCCCCCCCCC++++CCCCCCCCCCCCCCC+

       C+++C  ++C    C         C+C      C  C''C     C+    +++CCC++++C   C+++   +''++C       CCCC                CCCC               C

        CCC   CC                C           XX       C    CCC   CCCC     CCC   CXXCC

                                            CC                                  CC

XZ)+1M+.'''+++'..'=+'=-==--=M-='.''-MZA-''+.--'MXA-+'.+A-'---..'....'=-='.-.+--.--..'+MAAA=+'...''++==-======+++'+''=-----M---MMM-+'
      C'+++CCC+''+CC+CCCCCCC CC+'++C   C++C'..+   CC+'C C+...''+''''+CCC+'.'CCC'..''+C    CC+'''++CCCCCCCCCCCCCC+C++CCCCCC CCC   CC+

       +CCC   C++C  C          C+CC     CC +''C     C+   C'''++C++++C   C+'+   +''++C       C+++CC              C CC               C

       C       CC               C          CXX       C    XXXCC CCCC     CXC   CXXCC         CCC

                                            CC            CCC             C     CC

Z1)1A=.'+++++'+''.''''=--=-+'++'''+--XZM=.'.---MZX='.'+M-+-....'....+=+..-.'=M-.---.+=MXXM=+......+++===--==+==++'.'+===--MMM---M-=+
     C'+CCCCC+C++'++++CCCCCC+CC+++CCC   C'+'...   C+'+C CC.''''+''''CCC''.'+C C'...'CC    CC''''''CCCCCCCCCCCCCCC+'+CCCCCC   CCC CCC

      +C     C CC+CCCC      C  CCC       +C+'''    C+C    '++++C++++   ++'+C   +'''+        ++++++               C+C

      C          C                       C CXXX     C     XCCCC CCCC   CCXC    CXXXC        CCCCCC                C

                                            CCC           C              C      CCC

Z11X-''++++==++=+''++=--===+'''.''+MX1ZAM+.----M1Z-'.'+MM=.........'=-'---.+-M-.---.+-AXXA='.....'''''=----====+'..'+=-=-MMMMM--MMM=
    C++CCCCCCCCCC++CCCCCCCCC+++'++C      C'....   C+'+C  C'''''''''+CC+...'CC C'...'CC    C+'''''+++++CCCCCCCCCC+''+CCCCC     CC   C

     CC          CC         CCC+CC        +''''    C+C    +++++++++C  C'''+    +'''+       C+++++CCCCC          C++C

                               C          CXXXX     C     CCCCCCCCC    XXXC    CXXXC        CCCCC                CC

                                           CCCC                        CCC      CCC

111A=''+++++++++++===-MM=++=+''...+MZ)1AM=.---.M1ZA'.''-A=..+.-.-.''=-'---.+MM-'---.+-MAXA-+....'+''++===--=====+'''++===-MM--M--M--
    C++CCCCCCCCCCCCCCC  CCCCC++'''C      C'...'    +'++C C''C'.'.'++CC+...'C  C+...'CC    CC''''+C++CCCCCCCCCCCCC+++CCCCCC  CC CC CC

     CC                      CC+++        +'''+    C+CC   ++ +'+'+CC  C'''+    C'''+        ++++C CC             CCC

                               CCC        CXXXC     C     CC CXCXC     XXXC     XXXC        CCCC

                                           CCC                C C      CCC      CCC

1)X-++++++=-=++''+===-=--======+'..-1++ZM+.----M1ZA='''+-+..++---.+'=-'....=MA-'---.+=MMXXM+....''+==--==----=+++++'''+=-----------=
   CCCCCCCCCCCC++CCCCCCCCCCCCCCC+''C     C'....    C+++CCC''CC...'C+CC+''''C  C+...'CC     C''''++CCCCCCCCCCCCCCCCC+++CCCCCCCCCCCCCC

               CC               C++       +''''     CCC   ++  '''+ C  C++++    C'''+        ++++CC                 CCC

                                 CC       CXXXX           CC  XXXC     CCCC     XXXC        CCCC

                                           CCCC               CCC               CCC

+)A=++===---=++''+-MMMMMM--=+++''.'=X1)ZM+.---'A1XM+'.''+''''.---.'.==.-...+MM-'----'=MAXA='..'+++=-M-MMMMM---=+=+'''+==------MMM--=
   CCCCCCCCCCCC++CC      CCCCCC++'+C     C'...+    C+'++C++++'...'+'CC'.'''C  C+....+C    C+''+CCCCC C     CCCCCCC+++CCCCCCCCC   CCC

               CC              CC+C       +'''C     C+CC CCCC+'''+C+  +'+++    C''''C      C++C                   CCC

                                 C        CXXX       C       CXXXC C  CXCCC     XXXX        CC

                                           CCC                CCC      C        CCCC

+)A=+++==--=+'+++==-M-MMAAM-=++++.'-Z11XM+.---'AZZM+.....'+'.'---''.=+.-..'=MM-+----.=MXXM+..'++=-MMMMMMAMM---=''++'+==--M----MAMM--
   CCCCCCCCCC+CCCCCC C     CCCCCC'+C     C'...+    C'''''+C+'+...++'CC'.''+C  CC....'C    C''+CCCC         CCCC++CC+CCCCC CCCC    CC

             C                   +C       +'''C     +++++C C+C'''CC+  +'++C     ''''+      ++C                 CC  C

                                 C        CXXX      CCCCC   C XXX  C  CXCC      XXXXC      CC

                                           CCC                CCC      C        CCCC

=1M++====-M==''===+==-M----M==+++''=A1)Z-'----+MXXM+''..'+++'+'..'++=+.-.''=-M-+----.+MXAM+''+=+=MAAAAAMMMM----+++++++=----==-MMMMM-
   CCCCCCC CC++CCCCCCC CCCC CCCCC++C    C+....C    C++''+CCC+C+''+CCCC'.'++CC CC....'C    C++CCCC          CCCCCCCCCCCCCCCCCCC     C

             CC                  CC      C''''      CC++C   C C++C    +'+CC     ''''+      CC

                                          XXXX        CC       CC     CXC       XXXXC

                                          CCCC                         C        CCCC

=1-====++---===++=='=MXAAAAMM+'++=-MAX11A+---.=MAM=+++''==+++=+..'==='..'++----+----.=AXA-=++++=--MAAXXAAXZXM-=+'++====M------MMAAMM
  CCCCCCCCCCCCCCCCC+C        C+CCCC      C...'C   CCCC++CCCCCCC''+CCC+''+CCCCCCC....'C   CCCCCCCCC           CCC+CCCCCC CCCCCC

                   C          C           '''+        CC       ++C   C++C       ''''+                           C

                                          XXXC                 CC     CC        XXXXC

                                          CCC                                   CCCC

+X==+++++--==+=+'+--M-AMMMM-===++=-MAZ1ZA=---.-MM-=+-===M-++===..'+--=+''++=-==+----'-AAM=+'...'+++==-MMMMMA--==+'++==-MMMM-==-MAAAM
  CCCCCCCCCCCCCC+CCC C     CCCCCCCC      C...'C  CCCCCCC CCCCCC''+CCCCC++CCCCCCC....+C   CC+'''+CCCCCC      CCCCC+CCCCC    CCCC

                C                         '''+                 ++C     CC       ''''C      C+++C                 C

                                          XXXC                 CC               XXXX        CCC

                                          CCC                                   CCCC

1M++++'++=====++++=-----==+'...---.'+MXZX-.---+=--++===-M-=====+'+=-M-+'''++===+----+-MM+.-----------.+-MMM--+++=+++===-MMM--=-MMMMM
  CCCC+CCCCCCCCCCCCCCCCCCCC+'''...'+C    C'...CCCCCCCCCC CCCCCCC+CCC CC+++CCCCCC....CC  C'...........'CC   CCCCCCCCCCCCC   CCCC

      C                    C+++'''+C      +'''                  C      CCC      ''''     +'''''''''''+

                            CCCXXXC       CXXX                                  XXXX     CXXXXXXXXXXXC

                               CCC         CCC                                  CCCC      CCCCCCCCCCC

1M++++'+===--++++=======+'------.--''-+MA-'--'''+=''+'+-A--=+--=+=----'.''''+=+'--.+-=+.-'''---....----'=-M-=+'+++====-==--=-------M
  CCCC+CCCCCCCCCCCCCCCCCC+......'..CC.C  C+..+++CC++C+CC CCCCCCCCCCCCC+'++++CCC+..'CCCC'.CCC...''''....+CC CCC+CCCCCCCCCCCCCCCCCCCC

      C                  C''''''+''BB'    C''CCC  CC C                C+CCCC   C''+    +'BBB'''++++''''C      C

                          XXXXXXCXXHHX     XX                          C        XXC    CXHHHXXXCCCCXXXX

                          CCCCCC CCXXC     CC                                   CC      CXXXCCC    CCCC

1-+++'''====+=++'+++++++'-''-'+=+-'''''-'=='.++'+++'--'=AAM=-MA--==-MM='''..'+=+''+=+.-'''-.-M'.+=-+.---.'=++''+++=++===----=----M--
 CCCC+++CCCCCCCC+CCCCCCC+.CC.+CCC.CCCCC.+CC+'CC+CCC+..+C   CC  CCCCC  C+++''+CCC++CCC'.CCC.'C +'CCCC'...'+CCC++CCCCCCCCCCCCCCCCCC CC

     CCC        C       C'BB'C   'BBBBB'C  C+  C   C''C                CCC++C   CC   +'BBB'+  C+    +'''+C   CC

                         XHHX    XHHHHHX    C       XX                    CC         CXHHHXC   C    CXXXC

                         CXXC    CXXXXXC            CC                                CXXXC          CCC

1-=++'+++++''''+++'''+'---'-+-Z-+-''--'''.'++-==='+.--'+--M-=-A--==MM-=+'.-.'=-===='.-'''--.=-.-'MAM=-'-'=-=+'''''''.'++==-======-==
 CCCC+CCCCC++++CCC+++C+...C.CC CC.CC..CCC'+CCCCCC+C'..+CCC CCC CCCC  CCC+'.'+CCCCCC+'.CCC..'CC'.+   C.C.+CCCC+++++++'+CCCCCCCCCCCCCC

     C     CCCC   CCC C'''B'     'BB''BBB+C      C +''C                 C+'+C      C+'BBB''+  +'C    'B'C    CCCCCCC+C

                       XXXHX     XHHXXHHHC         CXX                   CXC        CXHHHXXC  CX     XHX            C

                       CCCXC     CXXCCXXX           CC                    C          CXXXCC    C     CXC

Z-===++++++'''''+.'.''+'.--'-X+=.---.--'.-.'=---=+'---+===MM--M--==MM-++'.-.'-M--='..----.'--'--.MXXM'--=ZA--==++''..-.''=+=====---=
 CCCCCCCCCC+++++C'+'++C+'..+C  C'...'..C'.'+CCCCCC+...CCCC  CC CCCC  CCC+'.'+C CCC+''....'C..+..'    +..C  CCCCCC++''.'++CCCCCCCCCCC

           CCCCC +C+CC C+''C    +'''+''B+'+C      C'''                  C+'+C     C++''''+B''C''+    C''         CC++'+CC

                 C C    CXX     CXXXCXXHCXC        XXX                   CXC       CCXXXXCHXX XXC     XX           CCXC

                         CC      CCC CCX C         CCC                    C          CCCC XCC CC      CC             C

Z-=++++=++++++'++'''+=MM''--MXX='..-='''--''++MAA=+.--'=+=M-M=-===MAM=''...'=XXA='''+--'--''''''-AAXA=---1XA------+'+'...'''+++=---+
 CCCCCCCCCCCCC+CC+++CC  ++.C   CC''.CCCC..++CC   CC'..+CCC C CCCCC   C++'''+C   C+++C..C..CCCCCC.    C..C   CCCCCCC+C+'''+++CCCCCCCC

              C  CCC    CC'     B++' BBB''CC       +''C               CC+++C     CCC ''B''BBBBBB'     ''           C C+++CCC

                          X     HCCX HHHXX         CXX                  CCC          XXHXXHHHHHHX     XX              CCC

                          C     X  C XXXCC          CC                               CCXCCXXXXXXC     CC

1-+++=+++'''+=--=M--AZZM'+-MAXZ'-.-'-''''''++++A1ZA=.-'++MM-M-M-=-MAM=+.-.'-X=+A..'+=.''''''''''.AAXX=-.AZZXAMMMMMM-=+''.'''''++=-==
 CCCCCCCC+++CCCCC CC    +C.    +.'.C.CCCCC+CCCC    C'.+CC  C C CCC   CC'.'+C    ''+CC'CCCCCCCCCC'    C.'           CCC++'+++++CCCCCC

         CCC            C '    C'+'B'BBBBBC         +'C                +'+C     ++C  +BBBBBBBBBB+     '+              CC+CCCCC

                          X     XCXHXHHHHH          CX                 CXC      CC   CHHHHHHHHHHC     XC                C

                          C     C CXCXXXXX           C                  C             XXXXXXXXXX      C

Z=++++'''''++=-MMAMMXZ11-'--ZZZ-'-'''''''-++=++'X+1A'-'+=----=----MM-=+...=X= ++-.=--+'''''''''''XXXA'-=1)ZXAAMMMMMM-+++'''+++++=--=
 CCCCC+++++CCCC         C+.C   CC.CCCCCCC.CCCCC+    +.+CCCCCCCCCCC  CCC'''C    C.'CCCCCCCCCCCCCC+    +.C            CCCC+++CCCCCCCCC

      CCCCC              C'     B'BBBBBBB'     C    C'C                +++      '+    BBBBBBBBBBC    C'                 CCC

                          X     HXHHHHHHHX           X                 CCC      XC    HHHHHHHHHH      X

                          C     XCXXXXXXXC           C                          C     XXXXXXXXXX      C

Z-==++++++++=-MAAAAMMA1+A'-=ZZXM'''''''''-====+-=--1=..+=--M-==M---M-=+'.'M=  1-'--AAM-''''''''-MZZX--.A+)1AM--MM-MA-=+++'''++++=---
 CCCCCCCCCCCCC           +.C    CCCCCCCCC.CCCCC.C   C''CCCC CCC CCC CCC+'+     .C.C   .CCCCCCCC.    C.'      CC  C  CCCCC+++CCCCCCCC

                         C'     BBBBBBBBB'     '     ++                C+C     'B'    'BBBBBBBB'     '+                  CCC

                          X     HHHHHHHHHX     X     CC                 C      XHX    XHHHHHHHHX     XC

                          C     XXXXXXXXXC     C                               CXC    CXXXXXXXXC     C

Z===+++''''=--MAAMAXMA1++---XZXA-'''''''''-M=-'--= =M''+==---==M-M--==+'''X   A-'-+AMA+-'''''''+XZXM'--1+1XMM-=-M---+++''''''+===---
 CCCCCC++++CCC           C..    .CCCCCCCC+C CC+..    ++CCCCCCCC C CCCCC+++     .C.C   C.CCCCCCCC    +.C      CCC CCCCCC++++++CCCCCCC

       CCCC               ''    'BBBBBBBBC    C''    CC                CCC     'B'     'BBBBBBB     C'                 CCCCCC

                          XX    XHHHHHHHH      XX                              XHX     XHHHHHHH      X

                          CC    CXXXXXXXX      CC                              CXC     CXXXXXXX      C

A=++++'''''+---MAM-AXZ1)+1.'=)ZM-'''''''--MA-M.--1  M+'+==-=+=-M--=---+'+=)   ='''-MMMM'''''''.AXXM'-+)=)XM--==--==+''++++++++=-----
 CCCCC+++++CCCC   C       'CC   CCCCCCCC.C  C '..    C+CCCCCCCC CCCCCCC+CC    CCCC.    +CCCCCC'    +.C     CCCCCCCCC++CCCCCCCCCCCCCC

      CCCCC               +B     BBBBBBB'     +''     C                C       BBB'    CBBBBBB+    C'               CC

                          CH     HHHHHHHX     CXX                              HHHX     HHHHHHC     X

                           X     XXXXXXXC      CC                              XXXC     XXXXXX      C

A=++'''''+''+=----=-AZ))-=---A)ZM+-''''-=MAAM+-''X  A=++=---=M----=-MM=++-+  =+''''.-MM-'----+AXX=.-=)-)X-=+++++++''+=-==+=+=-MMAAMM
 CCC+++++C++CCCCCCCC      C..    C.CCCC.C    C.CC    CCCCCCCC CCCCCC  CCCC    CCCCC'C  C+....C   C'.C    CCCCCCCCC++CCCCCCCCCC

    CCCCC CC               ''     'BBBB'      'BB                              BBBB+    C''''     +'              CC

                           XX     XHHHHX      XHH                              HHHHC     XXXX     CX

                           CC     CXXXXC      CXX                              XXXX      CCCC      C

M=+++++''++++'=+=--=-AZZ)-+M--M)ZA-'-.+-AXZA=--'-A -Z-=+-M-M-MM-M-=-MA-===)  )'-''''.=-M-=+=AZZM'-.M)+ZM-+++++++++===--==+==-AAXXAM-
 CCCCCC++CCCC+CCCCCCC       ..    C+.'CC    C..C.    CCCC C C  C CCC  CCCC    +.CCCC'CC CCCC    +.'     CCCCCCCCCCCCCCCCCCCCC      C

       CC    C              ''     C'+       ''B'                             C'BBBB+           C'+

                            XX      XC       XXHX                              XHHHHC            XC

                            CC      C        CCXC                              CXXXX             C

-+'+++''++++++===+++++M-A1-=A.-'M11ZAAXXXXM+--''---=Z-=-AA----MM--=-AM-==M)  X.-----'-.====+=='.'-11XM=''..''+++++----=+++--AAAXXA--
CC+CCC++CCCCCCCCCCCCCC C     '.+           C..CC.C   CCC  CCCC  CCCC  CCC     '.....C.'CCCCCCC+'+C    C++''++CCCCCCCCCCCCCCC      CC

  C   CC                     +'C            ''BB'                             +'''''B'+       C+C      CC++CC

                             CX             XXHHX                             CXXXXXHXC        C         CC

                              C             CCXXC                              CCCCCXC

-+'+''+++==+'++++++'+'++=MXZ+=M'--'-AXA-+.------'=)=ZMAAXAAA-AAXMM-MXAM--A1-=M..--'+..-----.'=AXXA-'...'..''+'''+-MA-=-==--MAXXXXA--
CC+C++CCCCCC+CCCCCC+C+CCC      +..+C   CC'......+C          C     C    CC     ''..+C''.....'+C    C+'''+''++C+++CC  CCCCCCC       CC

  C CC      C      C C         C''C      +''''''C                             ++''C ++'''''+C      C+++C++CC CCC

                                XX       CXXXXXX                              CCXX  CCXXXXXC        CCC CC

                                CC        CCCCCC                                CC    CCCCC

-+'+++++==+++++==++''.'.''='-A1))X-=+'....'=M-'.'+X+A-AAAAAMMAZZXAMAZXM---X1Z+..-.M=+==+1111)Z-+''.......''''''+=---==-MMMMXZZZXA-==
CC+CCCCCCCCCCCCCCCC++'+'++C+C     CCC+''''+C C+'+C   C                 CCC   C''.'            CC++'''''''++++++CCCCCCCC          CCC

  C                CC+C+CC C         C++++C   C+C                             ++'+              CC+++++++CCCCCC

                     C C              CCCC     C                              CCXC                CCCCCCC

                                                                                C

-=++===---===-====++'.....'.''+-AZ+=======---+='+'MX--AAAAAMAAXZZXXZZZAM--MA-'.''+X-     1A-+'.'''.......''''+++==+=-MMMXXXZZZZA-===
CCCCCCCCCCCCCCCCCCCC+'''''+'++CC              C+C+  CC                  CC  C+'++C         CC+'+++'''''''++++CCCCCCCC           CCCC

                    C+++++C+CC                 C C                           C+CC            C+CCC+++++++CCCC

                     CCCCC C                                                  C               C   CCCCCCC

M=+----MM----M=+++++++'''......'''=-X=       +A-+.=-=-MMMMMAXXZXXZZ1ZZZXA--=+..+--A) -=ZA='....'''''.''''''+'+==+=-AAAMAXXZZZXAM==+=
 CCCCCC  CCCC CCCCCCCC+++''''''+++CC           CC'CCCC                   CCCC''CCC       C+''''+++++'++++++C+CCCCCC             CCCC

                      CCC++++++CCC               +                           ++           C++++CCCCC+CCCCCC C

                         CCCCCC                  C                           CC            CCCC     C

A--MMAAZZXAMMMM-+++++''''.''''''..''=-AX1-   1ZM+''++++=-MXXZZ1ZZZZZZZZXA-=++-.+-AMX1ZM=++'.''.''''''++'+++''+===MAXAMMAXXXAAAM-==++
 CC            CCCCCC++++'++++++''++CC          C++CCCCCC                CCCC.'CC      CCC+'++'++++++CC+CCC++CCCC              CCCCC

                     CCCC+CCCCCC++CC             CC                          '+           C+CC+CCCCCC  C   CC

                         C      CC                                           XC            C  C

                                                                             C

AM---MAAXXAAM---=+=-++++''+'''...'''++==MZ)=11AA=+.''+=-MAAX11)1Z11ZZZZXXM=+'..+=MMMAM-+'....'''++++=++++===----MAAA---MAMMMM--+++++
  CCC        CCCCCCCCCCC++C+++'''+++CCCC        CC'++CCC                  CC+''CC     CC+''''+++CCCCCCCCCCCCCCCC    CCC      CCCCCCC

                        CC CCC+++CCC              +CC                       C++         C++++CCC

                              CCC                 C                          CC          CCCC

XAM--MAAAAAMM-=====++++++++'''.'''.''''=MAZ1ZXAM='-''=MAAAX1++))Z1))ZZXXAMM='.+==-==-=+'.....''...'++=====-MM--MXXM====-----M--==+==
   CC        CCCCCCCCCCCCCC+++'+++'++++C        C+.++C                     C+'CCCCCCCCC+'''''++'''+CCCCCCCC  CC    CCCCCCCCC CCCCCCC

                           CCC+CCC+CCCC          C'CC                       C+         C+++++CC+++C

                              C   C               X                          C          CCCCC  CCC

                                                  C

ZAM--MAAAMMM--=+=--=+++++++.'++''=''.'''+=-MAXM-+'.'+MAAXXZ+++++++++)ZXXAMM='..'+==+=+'...''....'.'+++++++==---AAM=++==-------=+++==
   CC       CCCCCCCCCCCCCCC'+CC++C++'+++CCC    CC+'+C                      C+''+CCCCCC+'''++''''+'+CCCCCCCCCCCC   CCCCCCCCCCCCCCCCCC

                           +C  CC CC+CCC         C+C                        C++C      C+++CC++++C+C

                           C        C             C                          CC        CCC  CCCC C

ZAM--=-MMMMMMM-=++-M='+''+..'''+-+'''+''+--=--++'.'+-XZZZZ)++++++++))ZXXAAA-+'.''+====+''......''++'++'++''+-MAA-========----=+++===
   CCCC       CCCCC C+C++C''+++CCC+++C++CCCCCCCC+'+CC                      CC+'++CCCCCC++''''''++CC+CC+CC++CC   CCCCCCCCCCCCCCCCCCCC

                     C CC ++CCC   CCC CC        C+C                          C+CC      CC++++++CC  C  C  CC

                          CC                     C                            C          CCCCCC

AMM-===-MMMM--==++=MA-=++++'''++''.'.'++++=-=='++'+-MXZZ11))))+++++)11XAXXA-+'''''+++''''''..''===+++++=--=-MM--=====---=--=+++++===
   CCCCC    CCCCCCC  CCCCCC+++CC++'+'+CCCCCCCC+CC+CC                       CC+++++CCC++++++''++CCCCCCCCCCCCC  CCCCCCCCCCCCCCCCCCCCCC

                           CCC  CC+C+C        C  C                           CCCCC   CCCCCC++CC

                                  C C                                                      CC

MMM--====----=++'+++-AM----=++==++'''++==+=+++++++=-MXXZZ1)))+==+++)1ZXAXAM=+=++'''+''+++''..'+=-+++=MM--M----====----MMM-==+==----=
   CCCCCCCCCCCCC+CCCC  CCCCCCCCCCC+++CCCCCCCCCCCCCCC                       CCCCC+++C++CCC++''+CCCCCCC  CC CCCCCCCCCCCC   CCCCCCCCCCC

                C                 CCC                                           CCC CC   CC++C

                                                                                           CC

MMMAM-=++=--=+'''...+MAAMMM-=MMM-=''''''++'''++'+---MAAXXZ11)+=++))11ZAAMM-=+=-=++++'''++++'..'++==----=======---MMMAAXXAM----MAMM-=
     CCCCCCCCC+++'''C      CC   CC++++++CC+++CC+CCCC                      CCCCCCCCCC+++CCCC+''+CCCCCCCCCCCCCCCCCC         CCCC    CC

              CCC+++              CCCCCC  CCC  C                                    CCC    C++C

                 CCC                                                                        CC

MAAAAM--=====+''..-.'+=MMM-==-MMM='''.++++'+++++MAMMMAXXZZXZ)+++)1111ZXXAM--==M-++++++'++=++''...+-XXM++++=---MAMAMMAXZZXAAM---M--=+
      CCCCCCCC++''.'+CC   CCCC   C+++'CCCC+CCCCC                          CCCC CCCCCCC+CCCCC++'''CC   CCCCCCCC              CCC CCCC

              CC++'+C             CCC+    C                                           C     CC+++

                CCXC                 C                                                        CCC

                  C

MMAAAAM-=++''+'.....''+==-===--=''.'+--='''++=--AA-MAAZXAXX1)))1ZZZZXXAAM-=-M-AAM--==-=++++++'...'=--=++=----MMMMMMAXXXM-=+++=======
       CCCC++C+'''''++CCCCCCCCCC++'+CCCC+++CCCCC  C                      CCC C   CCCCCCCCCCCC+'''+CCCCCCCCCCC           CCCCCCCCCCCC

           CC C+++++CC          CC+C    CCC                                                  C+++C

               CCCCC              C                                                           CCC

-MMAAAAM--=+'+''''+++====--==-++''+===+'.'+===-AXAMMMAAAAXXZ11ZZXXXAAMAM-=+-MMAAAMMM--==+''''''++'=====--M-M-MMMMMM--=+++'++====----
C       CCCC+C++++CCCCCCCCCCCCCC++CCCCC+'+CCCCC                         CCCC        CCCCC++++++CC+CCCCCCC C C      CCCCCC+CCCCCCCCCC

            C CCCC              CC     C+C                                               CCCCCC  C                       C

                                        C

-MMAAAAAMM-=+++'+===--MMMMM-====++++++..'++==--MXAAAMMMMAXAAXXXXAAMM----=+=-MAXXAAAM----+'''+''+=======--------==+''''+++=-MM--MMMMM
C         CCCCC+CCCCCC     CCCCCCCCCCC''+CCCCCC                     CCCCCCCC        CCCCC+++C++CCCCCCCCCCCCCCCCCCC++++CCCCC  CC

               C                      ++C                                                CCC CC                   CCCC

                                      CC

--MMMMMMMAM-==+++=-=--MMAAMM-===++''''''+=--MAAMAAXAAAAMMMMMAMMMM====+=-=+=MAAXAAAAMM----+++++++--=++==----=++''''.''+-MAXXXAMM-----
CC         CCCCCCCCCCC      CCCCCC++++++CCCC                     CCCCCCCCCC          CCCCCCCCCCCCCCCCCCCCCCCCC++++'++CC        CCCCC

                                  CCCCCC                                                                      CCCC+CC

                                                                                                                  C

---=---MMMMM----==--MMMMMAAXAAM===+'.''++=-MMMMAAXZZXA-=+'+====++''.'''=-=MAZXXZZXM-=+++==+++=-=-=++=-MM-======------MAAAMM-=====---
CCCCCCC     CCCCCCCC           CCCC+'++CCCC           CCC+CCCCCCC++'+++CCC         CCCCCCCCCCCCCCCCCCC  CCCCCCCCCCCCC      CCCCCCCCC

                                   C+CC                  C       CC+CCC

                                    C                              C

=====-MMMAAAAAAAAAAAAAAAAXXXXXXXAM-+''''+====-MAX11XA='..-.''''.----....=MAX))1)1XM-=''+++'''+++++=--MMMMMMMM--=++++======+++++++===
CCCCCC                            CC++++CCCCCC       C+''.'++++'....''''C          CC++CCC+++CCCCCCCC        CCCCCCCCCCCCCCCCCCCCCCC

                                    CCCC              C++'+CCCC+''''++++             CC   CCC

                                                       CCXC    CXXXXCCCC

                                                         C      CCCC

=---MMAAAXAXXXXXAAMMMMMMM--MMAAAXXM=+'''=++++-AX1+)A='...'''++'.----...-.-M1--=)1XMM-++'''.'+-MAMMMMAMM-=+'''''''''+===+++''''++++==
CCCC                     CC        CC+++CCCCCC      C+'''+++CC+'....'''.'C          CCC+++'+CC         CCC+++++++++CCCCCCC++++CCCCCC

                                     CCC             C+++CCC  C+''''+++'+              CCC+C              CCCCCCCCC       CCCC

                                                      CCC      CXXXXCCCXC                 C

                                                                CCCC   C

-M---MMMMMAMAAAAAM-----==-==-MAAXA-++'.++''++-MA)==)-'''+++=+=+'.--'+''-.+A-  =1A===+'..+=-A)+++1XXXMM-=+'..''++++=====+'''''''++++=
C CCC             CCCCCCCCCCC     CCC+'CC++CCC      C+++CCCCCCC+'..+C++.'C       CCCC+''CCC           CCC+''++CCCCCCCCCC+++++++CCCCC

                                     C+  CC          CCC       C+''C CC'+            C++                 C++CC          CCCCCCC

                                      C                         CXX    XC             CC                  CC

                                                                 CC    C

--==--MAXXXXXXXAAAMAMMMMMXMMMMMMXAM--=++'..'++=M1+--1M+'.'''''+'.--.....'M)   =1M+++=+=MZ)+))1Z1))ZAMM-=+==-MMMM-=++++''+''''''''''+
CCCCCC                             CCCCC+''+CCC       C+'+++++C+'..'''''+        CCCCCC               CCCCCC    CCCCCC++C++++++++++C

                                        C++C           C+CCCCC C+''+++++C                                             CC CCCCCCCCCC

                                         CC             C       CXXCCCCC

                                                                 CC

---MMAAAAXXXXZZZZ1ZXZZZXXXXAXXZ1))111ZXZXM--==-A1+  -+X-'--.''''..----.-Z-    -+ZM-MXXZZXXXXAXX1ZZXMMMM----MMMM-==++++++======+'''''
CCC                                       CCCCC        C+..'++++''....'C          C                    CCCC    CCCCCCCCCCCCCCCC+++++

                                                        C''+CCCC++''''+                                                        CCCCC

                                                         XXC    CCXXXXC

                                                         CC       CCCC

---MMAAAAAXXXZZZZZZZXXXAAAAMM-MAZ)+1Z1ZXZ)11ZXZ1+=-   =)X=.-......-'-'A+      -==)11ZZXAAAZ)++1XMM-++'.....''''..----...'++=====++'+
CCC                          C                           C'.''''''.C.+                            CCC+'''''++++''....'''+CCCCCCCCC+C

                                                          +'++++++'B'C                               C+++++CCCC++''''+++C         C

                                                          CXCCCCCCXHX                                 CCCCC    CCXXXXCCC

                                                           C      CXC                                            CCCC

--MAMMAAAAAXZZXAXXXXAAMMAAXAAXXZ1)++++)1XXXAMAXZZ+--    -)M.-'---.--=1       -=+)1)1XMAZ)+))1ZX-'.------------------.....'''''++++''
CC                                                         '.+...'..C                          C+'..................'''''+++++CCCC++

                                                           +'C'''+''                            C+''''''''''''''''''+++++CCCCC    CC

                                                           CX XXXCXX                             CXXXXXXXXXXXXXXXXXXCCCCC

                                                            C CCC CC                              CCCCCCCCCCCCCCCCCC

-MMMMMMMAAAAAAAAXXXXXAXXXXXAMM--MAXZ+==+11ZXAMAAA1+-     -+-.------+1       - -=11)+)++==+)11X-'--'''''----------...'''''''++'''++''
C                             CC                           C'......C                          C+..CCCCC..........'''+++++++CC+++CC++

                                                            +''''''                            C''BBBBB''''''''''+++CCCCCCC  CCC  CC

                                                            CXXXXXX                             XXHHHHHXXXXXXXXXXCCC

                                                             CCCCCC                             CCXXXXXCCCCCCCCCC

M---MMMMAAMMMAAXZZZZXXXAMMMMMMMMMMAAX11))+-+++=+=-        -1+------A-           -- -====))+)X-.--'''''-----...'''''+++======+++++++'
 CCC                                                        C......                          C'..CCCCC.....'''+++++CCCCCCCCCCCCCCCC+

                                                             ''''''                           +''BBBBB'''''+++CCCCC                C

                                                             XXXXXX                           CXXHHHHHXXXXXCCC

                                                             CCCCCC                            CCXXXXXCCCCC

----MMMMM-MMMAAXXXXXXXAA----++''''+=MX)=====--            -=Z+-''--1=-          ----====)1Z-'--''''''---.''++++++++===---MM---====++
CCCC     C              CCCCCC++++CC                         C.CC.C                        C+..CCCCCC...'++CCCCCCCCCCCCCC  CCCCCCCCC

                              CCCC                            'BB'                          C''BBBBBB'''+CC

                                                              XHHX                           XXHHHHHHXXXC

                                                              CXXC                           CCXXXXXXCCC

===-MM---MMMMM-MAXXXXAM=++++'''+=MAXXXZ)+--=---==-=-----=+)+=)=--=1)1+=         -+=    -=1X-.-''''''--''+++++++++=+----MMAAMAMM--===
CCCC  CCC     C        CCCCC+++CC                             C..C                         C'.CCCCCC..++CCCCCCCCCCCCCCC        CCCCC

                            CCC                                ''                           +'BBBBBB''CC

                                                               XX                           CXHHHHHHXX

                                                               CC                            CXXXXXXCC

==-------M---=-MAAAAAAM-===-=====+++==-MZ+-   ----++==+))))++1A==AZ1Z))+=--===-------=+1X-'---------'''''''''''+++=====-MMMAAMM-----
CCCCCCCCC CCCCC        CCCCCCCCCCCCCCCC                        CC                        C+.........+++++++++++CCCCCCCCC       CCCCC

                                                                                          C'''''''''CCCCCCCCCCC

                                                                                           XXXXXXXXX

                                                                                           CCCCCCCCC

===-===========-MAAXXAM-==+++'+++'''+=-MAZ+=------==+==+++))ZXM=+-AZ11)+==-====-==+)11ZA=.----'''--.+++''......'''''''++=--MM---MMMM
CCCCCCCCCCCCCCCC       CCCCCC+CCC+++CCC                        CCC                      C'....CCC..'CCC++''''''+++++++CCCCC  CCC

                             C   CCC                                                     +''''BBB''+   CC++++++CCCCCCC

                                                                                         CXXXXHHHXXC     CCCCCC

                                                                                          CCCCXXXCC

====++++++++=+==-MXXZXA-==+++++++'''+===--MZ+=++++)))+))1111XM+..+-AZZZ))+=+)1111ZZZZZM+--''''-----.''+'...-........'.''+=+=-M-=---M
CCCCCCCCCCCCCCCCC      CCCCCCCCCC+++CCCCCC                    C''CC                    C..CCCC.....'++C+'''.''''''''+'++CCCCC CCCCC

                                 CCC                           ++                       ''BBBB'''''+CC C+++'++++++++C+CC

                                                               CC                       XXHHHHXXXXXC    CCCXCCCCCCCC C

                                                                                        CCXXXXCCCCC        C

+==++''+''''''+=-AZ11ZA-=======++'.'''+==+=M1))++1Z1111ZXXXXM='.-'+=MAAXXXAZZAAMMXXXXM=.-'''''''-.'+''+=+'.------..'''..'++++=-=----
CCCCC++C++++++CCC      CCCCCCCCCC+'+++CCCCC                  C+'.+CC                  C'.CCCCCCC.'+C++CCC+'......''+++''+CCCCCCCCCCC

     CC CCCCCC                   C+CCC                        C+'C                     +'BBBBBBB'+C CC   C+''''''++CCC++C

                                  C                            CX                      CXHHHHHHHXC        CXXXXXXCC   CC

                                                                C                       CXXXXXXXC          CCCCCC

+=='''''.....''+-AZ)1ZXM-=-=-==+'...'+=+++-M-MZ))1ZXZAXXM-M--=++++'+=-=--==+==+=MAAAM=---''''''-.'+=++'+''.--...........''+''+======
CCC+++++'''''++CC       CCCCCCCC+'''+CCCCCC C            C CCCCCCC+CCCCCCCCCCCCC     C...CCCCCC.'+CCCC+C++'..'''''''''''++C++CCCCCCC

   CCCCC+++++CC                 C+++C                             C                   '''BBBBBB'+C    C CC+''+++++++++++CC CC

        CCCCC                    CCC                                                  XXXHHHHHHXC         CXXCCCCCCCCCCC

                                                                                      CCCXXXXXXC           CC

-=+'''.......''+-AZ11ZXM-----=+'.-.'+==++=+''=MZ1)1XXAAMMMMM-M-===--=-----=++''=MAAA-.-'''''''--'++++'''..---.'+++''......'''''+====
CCC+++'''''''++CC       CCCCCCC+'.'+CCCCCCC++C              C CCCCCCCCCCCCCCC++C    C'.CCCCCCC..+CCCC+++''...'+CCC++''''''+++++CCCCC

   CCC+++++++CC                C+'+C       CC                                CC      +'BBBBBBB''C    CCC++'''+C   CC++++++CCCCC

      CCCCCCC                   CXC                                                  CXHHHHHHHXX        CCXXXC      CCCCCC

                                 C                                                    CXXXXXXXCC          CCC

AM-=++'......'+=-MXZZZXMM-M--=+'...'+====.-..'=AZ))11ZZXXXXAAXAMMMMMMAAAAAMMMMMAXAAM=--''-''''-.++++++=+'.---''+==+''.......--.+=---
  CCCC+''''''+CCC        C CCCC+'''+CCCCC'.''+C                                     C..CC.CCCC.'CCCCCCCC+'...++CCCC++'''''''..'CCCCC

      C++++++C                 C+++C     +'++C                                       ''BB'BBBB'+        C+'''CC    CC+++++++''+

       CCCCCC                   CCC      CXCC                                        XXHHXHHHHXC         CXXX        CCCCCCCXXC

                                          C                                          CCXXCXXXXC           CCC               CC

11ZXM-='...'''++=-MAXXXAAAAM-==+''.'+==-'--.-'+=MX)+))11111ZZ1ZXXXZAXXZXAXXAXXXZXM-+.-'''=-'''-.+======+'.--.+==+'''''''+'..--.+---M
     CC+'''+++CCCC          CCCC++'+CCCC+..'.+CC                                  CC'.CCCC.CCC.'CCCCCCCC+'..'CCCC+++++++C+''..'CCCC

       C+++CCC                  CC+C    C''+'C                                      +'BBB 'BBB'+        C+''+    CCCCCCC C++''+

        CCC                       C      XXCX                                       CXHHH XHHHXC         CXXC             CCXXC

                                         CC C                                        CXXX CXXXC           CC                CC

==+)1XM-+''''''''+=-MAAAAAAM--=+...'+--'.-...-''+-A1)))))111))1ZZZZXZZZXAMAAXXAA-+--''''''''''-.'++===+''.-.'+=='....'+=+''...+=--MM
       CC++++++++CCC        CCCC'''+CCC+'.'''.++CC                              CC..CCCCCCCCCC.'+CCCCCC++'.'+CCC+''''+CCC++'''CCCC

         CCCCCCCC               +++C   C+'+++'CC                                  ''BBBBBBBBBB'+C      CC+'+C   C++++C   CC+++

                                CCC     CXCCCX                                    XXHHHHHHHHHHXC         CXC     CCCC      CCC

                                         C   C                                    CCXXXXXXXXXXC           C

   -=)ZA-+''+'''.'+=---MMAAMM-=+'..'=-+''...--....+=MAXZ1Z1)))1ZZXZXZZXXAMMMM-=+.-'''''''''''--.'''++++'---===++....'===-=++..=---MA
        CC++C+++'+CCCCC      CCC+''+CCC++'''..''''CC                         CCC'.CCCCCCCCCCC..'+++CCCC+...CCCCC''''+CCCCCCC''CCCC

          CC CCC+C              C++C   CC+++''++++                              +'BBBBBBBBBBB''+CCC    C'''     ++++C       ++

                C                CC      CCCXXCCCC                              CXHHHHHHHHHHHXXC        XXX     CCCC        CC

                                            CC                                   CXXXXXXXXXXXCC         CCC

  --=+)1AM-===+''''++===-AAAMMM-+..+++=++''.-..----..+=AZ1))))ZXAXAAAXXAAM-=='---'''''''''''---...'.'++.--.==++'....'=--MM-+.-+MMMMA
          CCCCC++++CCCCCC      CC''CCCCCC++'.''....''CC                   CCC+...CCCCCCCCCCC...'''+'+CC'..'CCCC+''''+CCC  CC'.C

               CCCC              ++      CC+'++''''++                        C'''BBBBBBBBBBB'''+++C+C  +''+    C++++C       +'

                                 CC        CXCCXXXXCC                         XXXHHHHHHHHHHHXXXCCC C   CXXC     CCCC        CX

                                            C  CCCC                           CCCXXXXXXXXXXXCCC         CC                   C

 -=)1)++)1ZXXAMM==++'+++=-AAAXAM=++.'+==+=+'''...--..-.=X111)1ZXAAMMMMMAM-+.---'''''''''''''---.''--.''--.++=+++'...+=--MMM-+.+MAMXA
                CCCC+CCCCC      CCC'+CCCCCC+++'''..''.'C                 CC'...CCCCCCCCCCCCC...'++..'++..'CCCCCC+'''CCCC   CC'C

                    C              +C      CCC+++''++'+                    +'''BBBBBBBBBBBBB'''+CC''+CC''+      C+++         +

                                   C          CCCXXCCXC                    CXXXHHHHHHHHHHHHHXXXC  XXC  XXC       CCC         C

                                                 CC  C                      CCCXXXXXXXXXXXXXCCC   CC   CC

--=++)+==+)Z1ZXAMM--==+++=MAAAAM--+..++=--+++++'++.----'=-AAXXAMMM-----==+.-'''-''''''''''''--.''.----.-.'+==+=+++''=---MMM--'+-MMAX
                  CCCCCCCC      CCC''CCCCCCCCCC+CC'....+CC        CCCCCCCC'.CCC.CCCCCCCCCCCC..'++'....'.'+CCCCCCCC++CCCC   CC+CC

                                   ++          C  +''''C                  +'BBB'BBBBBBBBBBBB''+CC+''''+'+C        CC         C

                                   CC             CXXXX                   CXHHHXHHHHHHHHHHHHXXC  CXXXXCXC

                                                   CCCC                    CXXXCXXXXXXXXXXXXCC    CCCC C

--===---==+)1))111ZXAM-++=-MAAAAAM='''+===++++++'''.--...'+=-====+=+===.---'''''''''''''''''--''.--''---.+++===+=++++==--MAAM-=--MXX
                      CCCCC       C+++CCCCCCCCCC+++'..'''+CCCCCCCCCCCCC'...CCCCCCCCCCCCCCCCC..++'..CC...'CCCCCCCCCCCCCCCC    CCCC

                                   CCC          CCC+''+++C             +'''BBBBBBBBBBBBBBBBB''CC+''BB'''+

                                                   CXXCCC              CXXXHHHHHHHHHHHHHHHHHXX  CXXHHXXXC

                                                    CC                  CCCXXXXXXXXXXXXXXXXXCC   CCXXCCC

--- -     -----=--=+1ZXM-====-AXXA-=+''==+++++++'''..----..'''....'...'---''''''''''''''''''--'.--''----.'+====+=+++++'+=MAAAM-=-MXZ
                        CCCCCC    CCC++CCCCCCCCC+++''....''+++''''+'''+...CCCCCCCCCCCCCCCCCC..+'..CC....'+CCCCCCCCCCCC+CC     CCC

                                     CC         CCC++''''++CCC++++C+++C'''BBBBBBBBBBBBBBBBBB''C+''BB''''+C            C

                                                   CCXXXXCC   CCCC CCC XXXHHHHHHHHHHHHHHHHHHXX CXXHHXXXXC

                                                     CCCC              CCCXXXXXXXXXXXXXXXXXXCC  CCXXCCCC

               ==   -=+ZA-+''+-AZXA-=+'=======+==+++'----.....----..-----'''----'----'''''''--.--''-----.'+=+=--=++'..--'MXXAM=+=AXZ
                         CC++CC    CCC+CCCCCCCCCCCCC+....'''''....''.....CCC....C....CCCCCCC..'..CC.....'+CCCCCCCCC+''..+     CCC

                           CC         C             C''''+++++''''++'''''BBB''''B''''BBBBBBB''+''BB'''''+C         C++''C

                                                     XXXXCCCCCXXXXCCXXXXXHHHXXXXHXXXXHHHHHHHXXCXXHHXXXXXC           CCXX

                                                     CCCC     CCCC  CCCCCXXXCCCCXCCCCXXXXXXXCC CCXXCCCCC              CC

-=-=+=         -------+1XM=''+=MXXAM==+==--=-==+=-=-'---.......--....---''--------------'''''---''---'--.'==----+'..----+-AMM-=.+MXZ
                          C++CC     CCCCCCCCCCCCCCCC+...'''''''..''''...CC..............CCCCC...CC...C..'+CCCCCCC+''....CC   CC'C

                           CC                       C'''+++++++''++++'''BB''''''''''''''BBBBB'''BB'''B''+C       C++''''       +

                                                     XXXCCCCCCCXXCCCCXXXHHXXXXXXXXXXXXXXHHHHHXXXHHXXXHXXC         CCXXXX       C

                                                     CCC       CC    CCCXXCCCCCCCCCCCCCCXXXXXCCCXXCCCXCC            CCCC

Z1111)+=      -=-=))++)ZAM=++=+-XZA-==+==-MMM-=+==--=.-.+++''.....'.----------------...--------''----'--.'=----+.-----.+-=-===='+MAA
                          CCCCCC   CCCCCCC   CCCCCCCC'.'CCC++'''''+'................'''........CC....C..'+CCCCCC'.....'CCCCCCCC+C

                                                     +'+   CC+++++C+''''''''''''''''+++''''''''BB''''B''+C      +'''''+        C

                                                     CXC     CCCCC CXXXXXXXXXXXXXXXXCCCXXXXXXXXHHXXXXHXXC       CXXXXXC

                                                      C             CCCCCCCCCCCCCCCC   CCCCCCCCXXCCCCXCC         CCCCC

MMMA1))1)==--=++)1ZZZZXM--====+=MXA-=====--MAMM-===--+'+===+'.-.'''.-------.'--...--.''.-------'--.-''--..'+=-+'---''-'+=+=+'.''=MMM
                        CCCCCCCC   CCCCCCCC    CCCCCCC+CCCCC+'.'+++'.......'+..'''..'++'.......C..'.CC..''+CCCC+...CC.+CCCCC+'++C

                                                      C     C+'+CCC+'''''''+C''+++''+CC+'''''''B''+'BB''++C    C'''BB'C     C+CC

                                                             CXC   CXXXXXXXC XXCCCXXC  CXXXXXXXHXXCXHHXXCC      XXXHHX       C

                                                              C     CCCCCCC  CC   CC    CCCCCCCXCC CXXCC        CCCXXC

AAAA1)1ZZXZZ++1ZZXXXXAM-===++'''=MM=++=-=--MMAAM=+'+++====-+'---'+'------.'+'-..'''..+''''.....--..-----..-.'+.----''-'=++.----.+==+
                       CCCCCC+++C  CCCCCCCC     CC+CCCCCCCCC+...+C+......'+C+.''+++''C++++'''''..''.....''.'+C'....CC.+CCC'....'CCCC

                             CCC                  C         C'''C C''''''+C C'++CCC++ CCCC+++++''++'''''++'+C +''''BB'C   +''''+

                                                             XXX   XXXXXXC   XCC   CC     CCCCCXXCCXXXXXCCXC  CXXXXHHX    CXXXXC

                                                             CCC   CCCCCC    C                 CC  CCCCC  C    CCCCXXC     CCCC

AAAAAZXZAAAAZZZXAXXXAAM---=======-==+'++++==-MMM='.-.'=++==+.---''-----.'+==+..'++'..''++'''++.--....-------..---.----.+'.----.'++''
                       CCCCCCCCCCCCCC+CCCCCCC   C+'.'+CCCCCC'...++.....'+CCCC''+CC+''++CC+++CC'..''''.......''...'....'C+'....'+CC++

                                     C           C+'+C      +'''CC'''''+C    ++C  C++CC  CCC  +''++++'''''''++'''+''''+ C+''''+C  CC

                                                  CXC       CXXX  XXXXXC     CC    CC         CXXCCCCXXXXXXXCCXXXCXXXXC  CXXXXC

                                                   C         CCC  CCCCC                        CC    CCCCCCC  CCC CCCC    CCCC

--MMAA-==MAMAAAAAMAMMM---==-M---==-=+'++=++++==+'''.--'+===+'''.'...'+++==---+''''''+==+''++++....'++..-----'.-.+.--.-.'''.......'.'
CC    CCC             CCCCCC CCCCCCCC+CCCCCCCCCC+++'..+CCCCC+++'+'''+CCCCCCCCC++++++CCCC++CCCC''''+CC''.....+'.'C'..'.'+++'''''''+'+

                                     C          CCC+''C     CCC+C+++C         CCCCCC    CC    ++++C  ++'''''C+'+ +''+'+CCC+++++++C+C

                                                   CXX         C CCC                          CCCC   CCXXXXX CXC CXXCXC   CCCCCCC C

                                                    CC                                                 CCCCC  C   CC C

XAA---=-MAAAAA---M-==M-====-MM-+=======+=+''+==+'++'--+='..+++'++=+'++'+==--==++'++===+'++=+++''..'==+'..-.'=='++''..-.'+++''+'.'+''
   CCCCC      CCC CCC CCCCCC  CCCCCCCCCCCC++CCCC+CC+..CC+''CCC+CCCC+CC+CCCCCCCCC+CCCCCC+CCCCCC++''+CCC+''.'+CC+CC++''.'+CCC++C+'+C++

                                          CC    C  C''  C++   C    C  C         C      C      CC++C   C++'+C  C  CC++'+C   CC C+C CC

                                                    XX   CC                                     CC     CCXC        CCXC        C

                                                    CC                                                   C           C

-+=MAXXAAAAAM-++-M=+=M==+==M-=---===M--=-=++=-==-==+.'--'+==++=MMM-++.'++=----====---+++++==+===++++===+''+=-=+++''++'''+'+++=++====
CCC          CCCC CCC CCCCC CCCCCCCC CCCCCCCCCCCCCCC'+CC+CCCCCC   CCC'+CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC++CCCCCCC++CC+++C+CCCCCCCCCC

                                                    +C  C            +C                                 CC       CC  CCC C

                                                    C                C

-==-AMMAMMM-=+'+M-===+++'+=-'+-===---===+=++-MM---M-+==-=--==--=+'++''+==--MM-==++---++''+++=+++++'+=====++==''''.'+==+''''''+======
CCCC       CCC+C CCCCCCC+CCC+CCCCCCCCCCCCCCCC  CCC CCCCCCCCCCCCCC+CC++CCCCC  CCCCCCCCCC++CCCCCCCCC+CCCCCCCCCC++++'+CCCC++++++CCCCCCC

              C         C   C                                    C  CC                 CC         C          CCCC+C    CCCCCC

                                                                                                                 C

MMAAAAAAMM-+'..'==++''+===M=+=+''+=++=+++-==MAMM--=+'+---===--=+''=-=====----==+''=====++=++++''+++==+++++==++++''''+++++'''++++=+==
          CC+''+CCCC++CCCC CCCC++CCCCCCCCCCC    CCCC+CCCCCCCCCCC++CCCCCCCCCCCCCC++CCCCCCCCCCCC++CCCCCCCCCCCCCCCC++++CCCCC+++CCCCCCCC

            C++C    CC         CC                   C           CC              CC            CC                CCCC     CCC

             CC

MMMXXA-M---+'--.==++===----=-M-++++'+===--==MM---+===------==-=+++=MM----=====++'+++======''''''+===+'++====++==+'''+++======+++====
      C CCCC+..'CCCCCCCCCCCCC CCCCC+CCCCCCCC  CCCCCCCCCCCCCCCCCCCCC  CCCCCCCCCCC+CCCCCCCCC++++++CCCCC+CCCCCCCCCCC+++CCCCCCCCCCCCCCCC

            C''+                   C                                            C         CCCCCC     C           CCC

             XXC

             CC

-MMMM=''===++'++----MM--MM--MMM==---MMMMAAMMMM--+++=--MMMMM-----==MAMMMM---=++=++===--M-=-++''''''==========+=+'''======-----===-==+
C    C++CCCCC+CCCCCC  CC  CC   CCCCC          CCCCCCCC     CCCCCCC      CCCCCCCCCCCCCC CCCCC++++++CCCCCCCCCCCCC+++CCCCCCCCCCCCCCCCCC

      CC     C                                                                              CCCCCC             CCC