.                                                                                                         ..''::!!^^^++++%/X%CC00@@@0XC0B$NBNBNBNBN$$X$B$@/XX@BN@C/'!                           
.                                                                          ....''::!!^^^^^^!^!%C00@@B$BBB$BNNNNNNBBB$$$B$N$NBNBNBNBB$0CX$$NBNBNNNBBBB0C$$@/X%C$N0+'%^                           
.                                                      .':!!^^//%XCC00@$$BBNBMNMNNNNNNBBNB$00XC%@$NNN$NBNBNBNBB$$$$$@$$B$NBNBNBB@BBNB$0%@@N$NBNNNBNB$@X$$@%C//@BX'/@'.                          
.                                                      .'^/%X%0X@0B$NBBBBNNMNMNMNMNNNNNNNNNBB@@%++0C@$MBNBN$B@B$$$$$$BBBBNBNBB@$0$$BBB$XC0BBNBNBNBNBB$0CB$X%//C$!/00 .                        . 
.                                                        .'!/%X%CC@0B$BBBNBNNMNMNMNMNMNNNN$X^'. ...   :/B$B$B$B@BBNBNBNNNNBN$B@@X$@NBBB@X0BBNBNNNBNBN$$X$@0//+C@'C0/       .       . .         .
.                                                           .://C%0C@@@BBB$NBMNMNMNMNMB0/:... ...       '0NNNBNBNNNNNNNNBNBN@B0C%@@BBBB@CCBBNBNNNNNBB$@CC$0+^+//:@0'     .                      
.                                                           . .'+/%%%CX$@B$NNNNNNMNN0^.   ...             :^+CXCX@@NNNNNBNBN@$0XC0$$B$N$@X$$NNNNNNNN$$00/$0/:/!'/$%      ..                     
.                                                                .'^^%/X%@$BBNNNN@/.                         :%$$$0N@+:0NNBN$$0/CC$@B$B00C$BBNNNNNBN$B@@/@@+!!'%0@^       . ..  .       ..      
                                                                    .':+//XC$$N@^ ...                           ...'..'XBNNBB@0/C0B$NB$@C$$BBNBNNNBNBB$@%C@+^'C0@C..      ..... .......     .   
.  .                                                          ....  .  .''^+XXX. .  .              .!+//!'          '^/XBNNNN@0%0@$B$B@$0B$N$NNNNNNNB$$@C%B+'^$0$X::    .... . ....             
 .::                                                          .'     .. .  .!!               ..^/0@@%!.           .    .!%$NB@CX@BBNBB0B$BBNBNNNNNNBN$N$@+$+:C$@$:        ..                    
 '^!   ''                                     .          .     ... ........                '/@BN0C!'..     .!/C0$0X^:  ... '%@X0$NBN$B$BBNBNNNNNNNNNNBN$$/@//0$@0.        ..                    
.     .!:                        .                                  . . ......            /MM@%^^:'.. ..!%@NMNNBBBNBB0/:'.. '^X$$NBN$NBNBNNNNNNNNNNBNBN$BCXX/0@$% .        .                    
'.  ..                                                                   ..'.'.          /$%:''.'..':+0BMMMMMNNNMNNNC@BBX+'.'^:0BNNNBBNNMNMNMNMNMNNNNNB$$$/X^@@B!          .                    
.                                                                            ..         .'    ....+0NMMMMMMMMM@@C$C@%C0N$B00^'.!XCCX%//++^+^^++++//%XCC@0$+%^@@$..         .                    
                                            ....           . ...                              .!0NMM#MMMMMMMMB00C$$B@0X$X0CBBBC+'.          .            ..''+%%                                
                                               :'     .   .. .''!'....                      '/BMMMM#M###MMNMNMBB0@$$X0XCX@@NBB$B$X+.                                    .. ..                   
                              .'^+++////^!'.   .^     ..  .....'.''^::'...                .%NMMMMM###MMMNMMMNN0@X$@B0$0$@$$$NNNBN0$0/.                                 .....'.                  
                      . ....+X$0$0$@@@0@0@C@X%!.'!   ...  .'...:...'.''......            .'@NMMMMMM#MMB$0B$BBN$N@@C$BMNNNNMMMMMNM$N$$X:                       .!  .. ..... .....                
                     . ..^%@$@$@B@$X@0$@@@@@CX/^.'.   ... :':'!^:''+......   .. ...        :$BMMMMMMM#MN@$BN@$BNB$0$@NNMMMNNNNNNNNMBN@C'              '.     .!'  ..'.  !'..:.:+/!:.            
               .....:%0B@B$B$$BCC/%00/+X@@@@XC/+   .   .. ...:/..^@NBBB$$@%!'00CCCCXX%%//++^C@MMMMMM####MB@$@@@NNMMMMMNMMMM#MMMMMMMNMNN0/:^:::::::!!:!X%!!   .    .''..''   . .^XXC%%!'.        
.             .^..'C@B$NBN$NBB$!' . :CB@$@@C/@/.  .% .... ...:X%!%^+%0N##M@X/%X0B###########M0MM##############MMM###MNBMM#######MMMNMBM$$XB#############^. . .    '. .  ........^%X/X/X+^'.     
             '^+ ^$NBNBN@X//%/:...++0@B@$@B$@$!  .:!^0@@..: ':%... .   ^^.   ..%CXCM####$$#B$CBNMM######################M#########MMMNN@$@$@############/  . .           ... .^C@@@0@CC%%+/:'   
            ':/:'$BNBNBB/.'^+^XC00B$N$B$B$$B0^.':@/CBX@%^^/+/^/!'....         'C+$@+####$@N0M#$@NMM#############MMN###M###########MMMNN@@@B0CM##########@'.  . .      '. ......'+C$$B@B@$C0XX+!'
    '^     ^/:^'.BBNCB%!X%BBNBNBNBNBB$$BB@^^.:..%%C@@@$$C0X+/CX/.. ..          ..+/%###N$@#@@NBC$MM###############M#######MMMM#MMNM$N$B0C0$B@CN#########B..  .......''''!:':++%%0@NNMBB$B@B@@0@C
          '%:%+:!BNN@^@0NBBBNBNBNBBN$$+'''.. .'.....^!::::'%0X+!..              .'C####NM####NB@CNNMMMM#M################MMNMNMNMNM$@$BB$$BNB$%N########M'. ......^!!:!:!'^0MNMNMNMMMNNNNNNB$$@0
          %X+%X!+NNC!X%!+XXX@0$@@/!!.  . '.'..'.....''...'%#M##NC!..         ..!CN#######M###N!$+X$MNMMMMM########MMM##MMMMNMBMNMNM$+@BMNM$B@$C%@B^CN$MMM!.       '''.'.'.:CNNMMMMMMMMMMMMMMNMN$
.        .0XC+0!%C+'...... ..  .   .. .. .... '.':''+//X%@M#######BX:     ..:XB########B+$###B.C%'%@NNNMMMMM#####MMMMMMMMNMNMNMMMMMMN//BBNBB$$C%+B/^/!CM#/    .  .......'.'%$BNNNMMMM#M#M#MMMMMB
.        !@/%^0+!!:!^!:'''......':!'^!/XX+/^!....'.'M###$B###########$/.../$M##########$X0%N##+/@+M%/0NNMNMNMNMMMM###M###MN$NMMMNMNMNM%:X@$$B0C:^MB^X%XMMC    .. ..........+C$@BBMNMMMM#M####MMB
.        /$X%/%@%+^^!!!!!!':!^^X%^C%@@0XXX/^''!!''''$NNMMMMM###########NXB#################MMMMNMMMN$^/NMMMMMM#MNC$MM#####MM@BBMNMNNNNBX:'!!!'  '!^!!!::''.. . . ...   ....!/XX0@$BBNNMMMM#M#M#B
.    ..  @0$C/%/^!'!!+^!^+^%+C!/+^++0/0X/%%+:':!'!'.........'.'''''::!^/^+^^!^!!::+::':'^!'::.''....'. %MMMNMMM#MB%0BMMMM#M#MM$@$BBBNBBC!..       ..               ....    .':^+XX00$$NNMNNNMNN$
    .'. 'NNN0C++X/++^+!^^!^+^!^++^^^^++^^+++^^!^^^^^^^^^^^^^^^^! . .:!^/0%!::!'.'.'!//@+::%/X^!'..'''...CMNMNMMMMMB@X@NMNMMMMMMNC/0CC+!...'../:!:::::^:'^^..^''::::!::!^!:!+!:!/+:!^X:!:C^:''X:.
.  ^^!..:MNBCCX/^!!^!!^!!!^^^^^^^^!^^^^^^^^^^^^^^^^^^^^^^^^^^^^^   .!%^CN0+''.'.''':%/X%''/%X%!!... :+.::/0BBNMMNBX^^./BNNMNMNMN@:.  ..''''''00@%%///++:/+:'%!':%  +^  /:  +! .!/ ..C'..^X.''++'
.  .+'. !MMB$$0%%!^^!^!^!^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^.   :/++/B0!!:''.'':/%+0:%XX++!%!:.'+C^/%!!'::!:' ...'.:CC$@@CX+' ':'.....'.!CNN$X0%X%%!%%:.C/..%'.'%'!+/..:%^C%X:.'^/^$+0:..'C:
.  .'   !MNNN$$C0!^^!^^^^^^!!^^^^^!!:!'^!!^'!^^^^^^^^^^^^^^^^^^^: ..'!C'.@M! ':''''':^+$+/C0+%^+^: .!N%//%X//^+^++C%:':.. ..    ..''''.'.''':^$$@CCXC%X!!+' +0. +/. X^%%C'..X!00X/..'@:B@%/...%+
.  '..  ^MB$$0@C0!^^^^^^^^^.:^^:':..'!.!''!.:::^^^^^^^^^^^^^^^^^^ .'::++ ^MX!.!....'!%+B@@^C0!:!X!'':B++/^X+/+%/%/XC:.'........'':'!':''...'..0X/!!::':':''.:0!.'0..!%%X%^  +/+0+X . X:@B^X   :%
.  :     '/C$C0C$^^^^^^^^^^:.:!':''''!'::'' :':^^^^^^^^^^^^^^^^^^...!!:+.!NB!.:!':.:'++0B%!0CC^:^^+ '@@^//%%C%C/C%X%!''''''''!+/%XC@00X/'.....X$0^+:!::'':...C+. X'..X^X// .'X:C+X.. ^^%N%X.  ./
.  :'       !%0%C^^^^^^^^!^^!!.!!!^^!^:'^^^^^^^^^^^^^^^^^^^^^^^^!'..^^+%/CNMB%:/:!'::^^/N/!!%0^!%0+.'+$^+^////%/X%CX/......'':!//0@$@@C/'.....!00+^!^'''''...%C. +^  X:/!%.. X':.%:  '+   ^! . +
.   !    +.   !%X+!^^^^^!!^::'.^^^::::  '!^^^^^^^^^^^^^^^^^^^^^^^.'.:+/+C@NMM0'%%C'''%+XN/'%C++::+! .:B!+^^+/!^!^!+!%'.........''''':!:'.......@0!:''.'.'.:..:C' '/  ^!  /'. +:  !!  .^.''!^':':
.   .:   $C.    :+^^^^^^^^^^^^^^^^':::'. :^^^^^^^^^^^^^^^^^^^^^^^''.':+!C:+NN+ ^''':'^!/0@!/C%!::+:...@/!:^/%+%/%/X+/''.. ................... .C$XX!!':''.....%: .+..!+''^!:'::'':::''''..      
. .%'!!^ CM$+.  ..:^^^!^!!^!^^^^^!!!:^'::'^^^^^^^^^^^^^^!^^^^^^^^:..::/!%:.@N^ ''....:^/%N:^+X'::!^. .XX!:+!/:^:^^+^+^... .  .   ...          .^@/%+^'':::'.. .!':''...                         
.  !.:'. /MNBX:   ..!^!^^^^^^^^^^^!!^^!^^^^^!:::!^^^^^^!'^^^^^^^^!''^+/!+: ^M^ .'''''''^^N!:!X^'.':. .:0''^:+:/+/!!!!^...        ..           ..X^^::.'..              .       .             .  
.    ::  :MMNB@!.  ..'!^^^^^^^^^^^!!!!:!!^^^!!'!^^^^^!.!'^^^^^^^^^'':+X^!! :N/  '.....:!^B!::^+%:!^'...C:':'^:!'^^+!!: .'                             ..             .         .                
.    ..   0MM$B%%:  ..':^^^^^^^^^^^!!!!^^^!::::!^:!!''  .^^^^^^^^!':!^::'^ .C!  ..''''.!^0+':'!^'''..  !+.'':::':''..   '                       .                 .... . .                      
.      :  ^NB00/XC^'  .!'!!:!::!!!:^! !^!:^. !::!:'!!''!:^^^^^^^^^::':::'+..++.''/XX%^:%^/0:^'/+^.... .       .'      ...                                :        .. .....                      
.      /. .$$$0CC0+^:. .::'!^^..!!''!'::':. '.!^''^^^^^^^^^^^^^^^^:'''::!^:0C@%C+%BNX..%/^0:'..'.....  ..                                                         ........                      
.      %'  +BC%%%X+!!^'  :!':'..'!^: :.::::'!!'!!!^^^^^^^^^^^^^^^^:'...':^'@$0/%%/!/:  .'           '!!'      .^                                                 ..........                     
.      X:. .@$X0%XC!^^^!. .:!'^!^'..':!^^^^^^^^^^^^^^^^^^^^^^^^^^^::...'''.'!/+%^.... .           :/:  .'::!'..:....!/+X%+%::'....:'/+.  .'^:'   .'.'+^'.    . ..'........                     .
.      X^.. !$XXX0C!^^^^!'  '''!!!!!^^^^^^^^^^^+///%%%%//%%//%+^!:''....... .   .........      ../!    +NN0B%$$MNNNBMBMMM$NNNC@0C0BNNBC@@NBNBB0@@B$$BNNBB0C'./+^^''^........                   .
.      %^ .. CC0X/%^^^^!^!:     :/^+!+!+^%^$$@XX$XB$$M$@0C0$CX^+':......... ... .......... . . '/:   . CMMMM@0XCXB0$MCN%N+B$N^@N^CXB$0+N@$B%%/BX0CNNN@N%B$@.. ..........^^!:'.                 .
       %!  . !0%%/X^%^%!^!+:     .:+!+:!^0@0%!!^X00/%C/%%CC0XX!.'..':'..'.........  .  ... . ..C.  ...'NN$BB$N000@0B$$$$X0@NN^0$+%%$%CXC$BX+^C@C+@C@@^@/MN% ... ...'.:: ::^XX+!'.              '
!'     /'     ^%/!^+++0%XC0CX%^.!%!:!^!^+!'+!.^!!!:::^:!^+!^:!''.../+'.:/.''. .. .     .   .  /!       XX:!^/%0$MMMB@NNNBBNNMNMMMNBBCBN$0@@$B$C^@@C0C/0%@B+ ... ..  ...'..:%%+:.               !
..     +. .   .:+!:!+%0BB@N$CB0+!BX^0^C+!^'!^'::'::!:'.'.''...' . ............'....     .    .C.                :^!:'...'. .':!^.'^0MN0%^^%$MNN@MMMNB$MB$N+  .  '.         .                   !
.      +  ..    ''^%%%%%/%@C/X+$%0$00:++'.'.'''^':^^'!:..':..'. . ...  ..... :.'..'... ..  . .C.                           . .'. .  '. .....'''.''''^X00C+.                .....               .
/   . .^  ...   .:!+!+!:':.:.. .:!!..'!^...''::!:.':^+%/+'^/!.! :.!.'..'''.....'.........     /!                . ...... . . .............:'..'...........              ........               :
.   . '! .....   .!'':''!+:.':!:..  !'''/:!''::^ ''^:.!^!.%^! . ....!.'..'..'..'.'... .        +:                                     .  .!%/^://%0%^%!.         . ....''.......               '
.   . :: .'....   .!:::::+'.!^+!:::..'+'..'. ..'!!/:' ..' ''!  . ..''. ...''....'. .::!::       !! .'                                       .%!'' '... .       . .''''.'''.......              .
.   . ^. .'..''.    '!''':'::/CX!'!!:.'':^!''':'.:..... ...!^^' .::.:!.:...... :::::X+/!/X'  .'. .!'                                              . .     ....':':''.'.'.'.........            '
' ... + ..'...'.'.   ::!'!':!00X/^!!!^^!!!:.^::!:!::''.. :::!'    .^/''.:'.... ...:^+/B$0$'. :!!.  .'             ......'....... . .. .        .. ....''''!::::!:!::':':.'':...'....           '
' . ..^ ..'.....::.   .:.../+X^^!^^^^^!^+!+':!!!:!:!^:.  ...!!. . .:!^^!::^!.. .  !^:^NMM+.!!:!:    .':'''::' .....''''':'.'''.'..''''.''.:':'::^:!:::!:!^^+!^!^!:::''.'.'.... .               .
'.....' ..'.....''''    .'.':^//:!^!!^!^!^!.!^!:::'!^!..  ..^!.'. . !^...'!^...  .!^'..!:.....^!     .!^!'''^!...:^:'':!^!''!!^!!!!^!:'''':.'':.'........                                      '
: .. .. ........''':::  .'..'.:':!!!:!!!^!!':^!!^!!!^!!''!!!^^:!^ ^'!!'..'^^......^!:''''':%/'^!      !!   '^!. '^^!:!:!!'.  .^!   ..                              .                           :
'... '  .......'.'.:'!!:.  ..'::'.....^!!+'..+::'''..''.''':!+':'.''::::::!!!'.:!!!!!^!'..'^^^^^!!'.':^^:'':^^'.'^^:''':!.   '^!.             ...                 ..                           '
'... :  .........:'''^^//'. ..:!!.....:'     .  .'.          .                              . .. .  ...'...''''. .'':::'.  '::!!::                   .        . . ..                           :
''.. ^ ......'''..'''.'.'..                                            .                                                                                      .                                :
                                                                     .'. .''''.'''' ..'. .''..:..'..'..  .... ...       ':''.. .   ..            .'  .'                              ..   '.   :
                                                                     ':   !:!' ': . !''! !..' :':..!:'! ':''.::'!.      ':   !:''':.::'':'!.     '!'. :'': :::!.    .::':..:':..:':  !:'   !'  :
                                                                     .!'  . . .'..  .''. .''.....'.''''''..''.'''      .':. .:'. .'':.'':':'      !:'.:..!.::::      ::':.!!:!:.!:!. '::.  :!  '
                                                                       ..                                ...                                                        .:'.         .    .   :!.  !
.                                                                                                                                                                                              :
                                                                                                                                                                                               :
                                                                                                                                                                                               !