`````               ```````````````````````````````````````````````````````````````` `        `````   ``````````````````````````````````````````        
      ``````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````        
    ``````''...'....'........'``.''''''''''''''''''''.,,,,,,,,,,,,,.,,^,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,.'..'``..'''''''''''''''''''''''''''''''''''`````      
    ````'^.,;*++++++)))))))*;^..:-------------------:+>?===?>>>>++))?=%%%%=>+++++++++?=====?>)))+++>>??=?+!::~''--------------------------------------^.````    
    ```,-~.,;))*))))))))))+*;,',-------------------!>>?===??>>>++)+====%%%=>+++++++++?=======>**))+>>>??=?>+;~'`----------------------------------------,```    
   ```^-~^.,;*!;!;;!!;;;;;!!;,.,-~---~~----------~+>?===?>>?>>>+)>=====%%%%>+++>++++>?========?+)))>>>>>???>+;'`~----------------------------------------^```   
`````.~~~^.^!*!!!!!!!!;;;;!!;.'^-~~~~~~~~--------)>====??>+>>+)+==%%%%%%%%=>>>>>>??>>=======%===>))+++>+>>??>+!.~-----------------------------------------.```` 
`  ``^-~-,.~!*!!!!!!!!!;;!!;:.'~-~~~~~~~~~~~~~-:>?====??>>>>))?==%%%%%%%%%=>>????????=======%%===?+)++>++>+?=?>)!-----------------------------------------^```` 
`  ``~~~-..-;*;;;;;;;;;;;;!;:''~~~~~~~~~~~~~~-*??%===???>>++)===%%%%%%%%%%=????==????=%%=%%========>*++++>>>>?=>>*~---------------------------------------~```` 
`````~~~-.,-!????????????>>;-''~~~~~~~~~~~~~:+?=%===??>?>+)?==%=%%%%%%%%%%%===========%%%%%%%=%%====?+)+>>>>>>?=?>):----------------------------~--------~~```` 
` ```~~~~.,:!!!!!!!!!!!!!**;~''-~~~~~~~~~~~!>=%%==?????>*+=%%%%%%%%%%%%%%%%==========%%%%%%%%%%%%=====>++++++>>?==?>!------~~~~~~~~~~----~~~-----~~~~~~-~~~```  
` ```~-~~.,;*;;;;;;;;;;;;;!;^''-~~~~~~~~~:>?=%%==?????++>=%%%%%%%%%%%%%%%%%==========%%%%%%%%%%%%=====??++)+++>>??=?>)-~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~~~```  
` ```~~~~.,;*;;;;;;;;;;;;;!;^''-~~~~~~~-)?=%%%==????>+)==%%%%%%%%%%%%%%%%%%==========%%%%%%%%%%%=========>)))+>>>>?=?>>!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~```  
`````~~~^.^;*;;;;;;;;;;;;;!;,'.-~~~~~~!???%%%=?????++>=%%%%%%%%%%%%%%%%%%%%%%%%%%%%=%%%%%%%%%%%%%=========?+++++>>>?==?>+-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~```  
`````~~-,.~;+))******!!!!!;;.'.-~~~~~!=?=%%==?==??++=%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%==========?+)++>>>>??==>>*-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~```  
`````~~-..~;>++++++>>>>>>>!:.',-^^~~*??%%%===???>)?%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%========?>++++>>>???=?>>!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~```  
 ````~~~.,-!*;;;!;;;;;;;!*;:''^~^^:>?%%%%===???>+?%%%%%%%%%%%%%%%%%%&%%&&%%==========%%%%%%%%%%%%%%%%=========?+))+>>>>?==?>>+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~```  
   ``~~~..:!*;;!!;;;;;;;;!;:''^~^*?=%%%%===???+>=%%%%%%%%%%%%%%%%%%%%&&%%&%====???=??%%%%%%%%%%%%%%%%%%==%%==???>))++>>>?????+:~~~~~~~~~~~~~~~~~~~~~~~~~~~~```  
  ```~~~.,;*!;!!;!!!!!;;;!;-''~:>=%%%%====?+)+=%%%%%%%%%%%%%%%%%%%%&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%===%%======?)++)+>>???=?+!~~~~~~~~~~~~~~~~~~~~~~~~~~~```  
  ```~~~.,!*;;;;;;;;;;;;;!:~'.*==%%%%===??>+>%%%%%%%%%%%%%%%&%%%%&%&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%===%%%%======>++))+>???=?>):^~~~~~~~~~~~~~~~~~~~~~~~~```  
   ``~~^.^!++++++)))))****;~->?=%%%===??>>+?%%%%%%%%%%%&%%&&&&%%%&&&&&&&&&%%%%%%%%%%%%%%&%%%%%%%%%%%%%%%%%%%========?+++>+>>???=>>*~~~~~~~~~~~~~~~~~~~-~~~~```  
   ``~~,.~!++)+++++++>>>>)!+==%%%%==??>>++=%%%%%%%%&%%%&%&&&&&%&&&&&&&&&&&&%%%%%%%%%%%%%&%%%%%%%%%%%%%%%%%%%=========?>+++>>>>??==>+:^^~~~~~~~~~~~~~~~~~~~~``   
   ``~~..~;*!;;;;;;;;;;;!*===%%%%==?>>+>?%%%%%%%%%%&%%%&%&%%&&%%&&&&&&&&&&&%%%%%%%%%%%%%&%%%%%%%%%%%%%%%%%%%===========?++)+>>>???=>>*~^^^^^^^^^~~~~~~~~~~~``   
 ````~-.,-!*;;!!;;;;;;;;;==%&%%===???>+%%%%%%%%&&&&&&&%&%&&&&&&&&&&&&&&&&&&%%%%%%%%%%&%%%%%%%%%%%%%%%%%%%%%%%%==========?>>++>>>>????++:^^^^^~^^~~~~~~~~~~^`````
 ````~~.,:!!!!!!!;;;;;;!>=%&%===?>?>>?%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%&&&%%%%%%%%%%%%%%%%%%%%%%%%===========>++++>>>????>+*~,^^~~^~~~~~~~~~~^`````
 ````~~.,;*;;;;;;;;;;;)=%%%%%==??+>??%%%%%%&%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%&&&%%%%%%%%%%%%%%%%%%%%%%%=============?+++>>>>>>??>)-''.^~~~~~~~~~~~~^`````
 ````~^.,;)>>>>>++++)>%%&&%%===?>>=%%%%%%&%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%&&&&%%%%%%%%%%%%%%%%%%%%%%%%============?>)++>>>>>>?):.'`^^^~~~~~~~~~~~`````
   ``~^.^!+))))))))?%%&&%%=???>>?%%&&&%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%&&&&&&%%%%%%%%%%%%%%%%%%%%%%=%%============??>++++>>>>>);!;~^~^~~~~~~~~~^`````
   ``~,,~!)!;!!;!)=%&&&%==?>+++?%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%&&&&%&&%%%%%%%%%%%%%%%%%%%%%%===%%%%=======??++>+>>>>>+>>+:^^^~~~~~~~~^`````
   ``-.,-!*;;;;*?%%&&&%=??++)>=%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%&&&&&&&&&%%&%%%%%%%%%%%%%%%%%=%%%%%%%%=======?++>++>>>>??>>*~^^^^^^^^^^`````
` ```~.,:!*;;!+=%&&&%===?>+)?%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%&%&&&&&&&&&&&&&&%&%%%%%%%%%%%%%%%%%%%%%%%========?>)+>>>>>????>>;^^^^^^~~^`````
` ```~.,:*;;*?=%&&&%=???>>>?&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%&&%%%%%%%%%%%%%%%%%%%%%%%%%======>++++>>?????>>)-^^^^^^^`````
` ``'~,,;)??=%&&&%%==?>>>>&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%&&&%%%%%%%%%%%%%%%%%%%%%%========?++))+>>????>>>!^^^^^^`````
  ``'^,,;)?=%&&&%%=???+>=%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%&&&&&%%%%%%%%%%%%%%%%%%%%%%%========?>+++>+>>????>>+~^^^^`````
   `',,^*?%&&&&%===?>>>%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%&&&&&&%%%%%%%%%%%%%%%%%%%%%%========???++++>>>????>>)~^^^``   
  ```.^*=%&&&%%===??>=%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%========??=??+)>>>>?????>>;^^```  
  ```-?%&$&&&%==???+%%&&&&&&&&&&&&&&&&&$$&&&$$&$$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%==%===??==??+))>>>??????>)~``   
  ``'=%&&&%%%=???>?&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%&&&&&&&&&%%%%&%%&%%%%%%%%%%%%%=======?====?>)+>>>????=?>>'`   
  ``'%&&&&%%===?>%&&&&&&&&&&$&&&&&&&$$$&$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%&&%%%%&%%%%%%%%%%%%%%%%============??+++>>>???==>'`   
  ``'%&%%%%%???>&&&&&&&&&$$$$$&&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%&%%%%%%%%%%%%%%%%%%%%%%%==============>+>>>????=?'``  
` ``'%&%%%==?>=&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%&&%%%%%%%%%%%%%%%%%%%%=%=%===============?>+>>>????'``  
` ``'%%&%%??>&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%&%&&&%%%%%==%%=====%%==========>>>>>>?>'``  
` ``'%%%=?+?$&&&&&&&$&&$&&&&&&&&&&&&&&&&&&&%%%%%%%%%%&%&%%%%%%&&%%%&&&&&&&&&&&&&&&&&&%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%=%%%%%%=========?>+>>?>``   
` ``'%%=??&$$$&&&&&+>>>++++))))))))****!!!!;;;::::----------~~~~~~~~~~~~~~~~~~-~~----~~~---------------------:-:::::::;;;;;;;;;!!!!!!***))))+>=======?>++>+'``  
  ``'?>+=$$$$$$$$$$+>?>++++))))))))****!!!;;;;:::---------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~------------::::;;;!!!)%========?>>)```  
  ``'?>&$$$$$$$$$$$++>+++)))))))))*****)*****;:-:----*+!~~~~~~---~~~~~~~~~~~~~~~~~~~~~-~~~~~~~~~!*:~~~~~~~~~~-~~~~~~~~~-------------:::;!;!*;*%%%%======?>+'`   
  ``'?$$$$$$$$$$$$$>+>++)+))))+))***!!?&&&;;;:-------+?>-~~~~~>%%;~~~~~~~~~~~~~~~~~~~~)?;~~~~~;-?=)~~~~~~-~+%%!~~~~~~;>=------------::::;-;;;!%%%%%%======>'`   
  ``'%$$$$$$$$$$$$$>++++)++))*))****!!?$$&*!!;)==)*+;???~~!?);?&&;~:!;!?+:-+>>;^~-;~~~)%%?;^~~;:>+*~~*)!>!~>%%!;+>!~;%%%;-~~-----------::::;:!%%%%%%==%===?'`   
  ``'&$$$$$$$$$$$$$+++))))))******!!;;?&$&::--+&&>-~-%&%-*&&!~>&&;^:~~~=%%~*%%=-^*~^^^)%%%%?;~::&&?~>%):&%->&%*~>%%:~%%=~~~~~~~~---------::::!%%%%%%%%%===?'`   
  ``'&$$$$$$$$$$$$$+++)))))))****!!!;;>$$&:--:+&&)-~~%&%~=&&!~>&&;~)?);%&%~^+&?+!~^~~^!?%%%%%=;:&&>~%%):&%:>&%;~>%%;~%%=~~~~~~~~~~--------:::!%%%%%%%%%%%=?'`   
  ``'&$$$$$$$$$$$$$+))))))))****!!;;;:>$$&----)&&)~~~%&&~?&&;~>&&;*&&;~=&%~^~?%=-^^^~^;^;>%%&%;:&&>~*=);%)^>&&;~>%%:~%%=~~~~~~~~~~~~-------::!%%%%%%%%%%%%='`   
   `'&$$$$$##$$$$$$+)))))))***!!!;;;::>$&&----+&%)~~~%&&~!&&!~?&&:)&&;~%&%~^^:%:^^^~~~!^^^:>&&:;&&>^?)++*-~>&%;~?&%:~%%=^:~~~~~~~~~~---------!%%%%%%%%%%%%='`   
   `'&$######$$$$$$+))))))****!!;;::::*?>>---~*>>!~~~???~~!?);+??:~+=);?=?-^::;^^^^^^^!^^^^^:>:;==+^)==?%)^>==:^>%=:^*%%!-~~~~~~~~~~~~----:--!%%%%%%%%%%%%='``  
  ``'$########$$$#$+)))))***!!!;;:::----------~~~~~~~~~~^~~~^~~~^^^^^^^^^^^^~~^^^^^^^^~^^^^^^~^^^^^~^^^^-^^^^^^~^^~~^~~~~~~~~~~~~~~~~~~~--:--!%%%%%%%%%%%%='``  
  ``'$#############+))))**!!!;;;:::--------~~~~~~~~~~~^~~~~~~~~~^^^^~^^^^^^^^^^^~^^^^^^^^^^^^^^~^^^^^^^~~~~^~~~~^~~~~^~~~~~~~~~~~~~~~~~~-----!%%%%%%%%%%%%='``  
  ``'$############$+*****+%%%=!::::-----~~~~~~~~~~~~!>;~~~~~~~~~^^^^^^^^^^^^^^^^^^^+>-^^^^^^;;^^^^^^^^~~^~~^~~~~~~^^;!:^~~~~~~~~~~~~~~~~~~---!%%%%%%%%%%%%='``  
   `'$############$+****+%?!)=)--------~~~~~~~~~~~~~*?!~~~~~~~~~^!*^^-*~^!)^^^^^^^-??:^:);^-??^^^^^^^~~^^^^^^^^^--^~?>>-~;-^~^~^^~~~~~~~~~~--!&&&&%%&&&&&&='``  
   `'$#############+***!>%!:;=?-------~~~~~~~~~~~~~^)?-^~~~~~~~^~?>^^+>-^+?~^^^^^^-??~^*>+^-?>^^^^^^^^^^^^^^^^^~??~-?!);;?)^~~~~^^^^~~~~~~~~~!&&&&%%&&%%&&='``  
   `'$#######$$####)*!!;>%+::*!-*?!---~~~~~~~~~~~~^^+?~^^^^~^^^^~?*^,+>,^^~^^^^^^^~?>^^*>!^~?+^-^^^^^^^^^^^^^^^~?)^;?:)!^!-^^^^^~~^^^~~~~~~~~!&&&%&&&&&&&&='``  
   `'$#############)*!!;*==+:---*?;*;~~-+>;-~~-+*)!^>>^*)~^;++:^;?!^~?+^^!!^^^^^^^~?>,,)?:^~?!;>^~^^^-!!^^~;;^^:?!^!?-);~:~^^^^~:~^^~~~~~~~~~*&&&&&&&&&%&&%'``  
   `'$###########$#)!!;;:*==?!-~*=>??:~)?:+=-^)?;?+^>>~??~~?+:?~+>>;!??)^?>~^^^^^^:?)^,+?-^^?;!>)?)^:?*)*,;?>^,+>>:*?~>~!?!^))^)>:^:>>>>~~~~~*&&&&&&&&&&&&%'``  
   `'$#############*!;;;:::)==+~)?**?!~?>^>>^-?+~?)^>+!?+^:?!;?-)>*-;>+;~?+^^^^^^^;>*^^??-^^?*:>+?;^!?-*>,*>>-^+>>:)?;*^*?:^>+~>>^^+>~>+^~~~~*&&&&&&&&&&&&%'``  
  ``'$############$*;;;:;---;??!)?:!?!-?*~?+^:?!-?*^>)+>*^!?:*>^+?^^!>:^-?*^^^^^^^!>!,-??:,-+^:*!?-^+>^+),+;>*,+>~^)?+^^)>~^>);>)^-?*~?)^^~~~*&&&&&&&&&&&&%'``  
  ``'$###########$$!;:::>*--~!?!)?-*?;;?;-?)^)?;!?*^>>*>!^+?))-~>>^^)>-,:?!^~^^^^^!>!,!?>;,*;^!:)?~^>>!+~~*^>>^>+^^)>-^^+>^~>**>*^:>;:>*^^~~~*&&&&&&&&&&&&%'``  
   `'$########$$$$$!::::+=+**+>~)?-+?~;?!*?>))?!+?)^>>-?>)+?:^~+>>^:>>-~)?)*~^^^^^;>)~>;?+;+^^;,+>~:?+-^~>)^*>~?+^~>>^^!>>-)>);?!^*>:!?)^^~~~*%&&&&&&&&&&&%'``  
   `'$#######$$$$$$!:::--+===>:~)=>>:~-??;:)-^*):?)^>+^;*-->>)+-+>+)*>++~!)-^^^^^^-??>:^+?>~^^^^)>>!)>!!+!>~))^>>!+*?))!;?>;?+~>>+!>))?)^^~~~*%%%%&&&&&&&&%'``  
   `'$#####$$$$$$$$!:------:-~~~)?~~~~~-:^^^^^~^^>*^-:^^^^^-!;~^~!:^^;!^^^^^^^^^^^^!):^^^-^^^^^^~!:^~)>*~^+>!^^;>*~^!);^^~^~>!^:*~^-:~>)^~~~~*%%%%&&&&&&&&%'``  
   `'$####$$$$$$$$$!-:------~~~~*?~~~~~~~~^~~^*;~?-^^^^~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^~~^^^^^^^^^^^^^^^^~^^^^^^:^~?!^~~^~*%%%%%&&&&&&&%'``  
   `'$#$$$$$$$$$$$$;--------~~~~;?-~~~~~~~~~~~:?+:^~~~~~^^~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^*):+~~~~^~)%%%%%%%&&&&&%'``  
   `'&$$$$$$$$$$$$$!------~~~~~~~-~~~~~~~~~~^^^^^^^^^^^^^^^^^^^~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^~*!~^^~~~~)%%%&&%%%&&&&%'``  
  ``'&$$$$$$$$$$$$$;----~-~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^~~^^^^^^^^^^^^^^^^^^^^^^^^~-~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^)%%&&&&&&&&&&&'``  
` ``'&###$$$$$$$$$$;----~~~~~~~~~~~~~~~~~~~~^~^^^^^^^^^^^^^^^^^^-~-:-^~^,^^^^^^^^^^^^^~*)==>*-~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^)%&&&&&&&&&&&%'``  
` ``'&$$$$$$$$$$&&$;-----~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^:-:;;:-~^^^^^^^^^^~-:)??>?>>?;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^~~~+&&&&&&&&&&&&%'``  
` ``'&$$$$$$$$$$$$$;-~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^~~^~::-^-:::^^^^^^^^^^^^:=>?==>=+>~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^~+&&&&&&&&&&&&%'`   
` ``'&$$$$$$$$&$$&$;-~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^~~-:;:--:~:::-^^^^^^^^^~*?>??????;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^~+&&&&&&&&&&&&%'``  
  ``'&$$$$$&$$&&&&&:-~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^~--:-~-::*-!--^^^^^^^^^~*:~:;+??);~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^+&&&&&&&&&&&&%'``  
  ``'&$$$$$&$$&&&&&:-~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^~:---~~--:-:^^^^^^^^^^^~-;-*^;+!^^^^,,^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^+&&&&&&&&&$$&%'``  
  ``'&$$$$$$&&&&&&&:~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^~~~;::;~-;^:!--^^^^^^^^^^^~-:^-*>^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^+&&&&&&&&$$$&%'``  
  ``'&$$$$&&&&&&&$&:~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^~~~-:::::-~--^-~^^^^^^^^^^^~*;^;!:~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^+&&&&&&&&$$$$%'``  
  ``'&$$$$$$&&&&&&&:~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^~-:;:-;^;;^^^^^^^^^^^^^^^^:---:-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^>&&&&&&&&&&&&%'``  
   `'&$$$&&&&&&&&&&:~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^~~--:~~~:-;---^^^~-~^^^^^^^^^-,^):~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^>&&&&&&&&&&&&%'``  
   `'&$$&&&&&&&&&&&:~~~~~~~~~~~~~~~~~~^^^~^^^^^^^^^^^^^^^-~-~--:^^^~-:-^^^-;-~^^^^~^~-;,-----^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^~^^^^^^^>&&&&&&&&&&&&%'````
  ``'&$&&&&&&&&&&&&:~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^~-~-:;:^^~^^-^^~~---:^^^^^:-!;~~:^^^~~^^^^^^^~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^>&&&&&&&&$$$$%'` ``
  ``'%&&&&&&&&&&&&&:~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^-::^^^~~^~-^^-;^-^^^^^^~+!~;+~^~^^^~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^>&&&&&&&&$$$$%'` ``
  ``'%$&&&&&&&&&&&&:~~~~~~~~~~~~~~~~^^^~^~^^^^^^^^^^^^^^^^^;)*~^-^^-^~-^~!~^^^^^^^:)~+)!)^~-;~~~--^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^>&&%&&&&&&&&&%'`  `
  ``'&$&&&&&&&&&&%%:~~~~~~~~~~~~~~~~^^^~^~~^^^^^^^^^^^^^^^-:-^-;:^~!!^^^-^^~~^^^^^~+->>):--~-^~^-~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^>&&&&&&$$$&&&%'`   
  ``'&&&&&&&&&&%%%%:~~~~~~~~~~~~~~~~^^^~^~~^^^^^^^~~^^^^^-:^^^^^;!)=*-~~^^^-:--~~~^~:*+):!~^^-,-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^?&&&&&&&&$&&&%'``  
  ``'%&&&&&&&&&&%%%:~~~~~~~~~~~~~~~~^^^^^~~^^^^^^^^^^^^~:-^^^^^^~-;:~~:^^^^::--~~~~--^~:-~^~~~--;~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^?&&&&&&&&&&$$%'``  
  ``'%&&&&&&&&&%%%%:~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^~:*)!^^^^^^--~~~-^--:^^^^~~^^^^^^^^^^:~~~^~~*-:-:^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^?&&&&&&&&&&&$%'``  
  ``'%&&&%%%%%%%%%%:~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^-:>=?);:~^~-~^^^^~--:-^^^^^^^^^^^^^^^^^-:-~~!^^^^~-^^^^^^^^^,^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^?&&&&&&&&$&$$&'``  
  ``'%&&%%%%%%%%%%%-~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^~:+;~^^^~-~^^^^^^^-~~^^^^^^^^^^^^^^^^^^^;;~:~^^^^^-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^=&&&&&&&&&$$$&'``  
  ``'%&&%%%%%%%%%%%:~~~~~~~~~~~~~~~~^^^~^^~^^^^^^^~-~^^^^^^~~^^^^^^^^^^^^^^^^^^^^^^^^^^^~~^^!)^^^^^^-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^=&&&&&&&$$$$$&'`   
  ``'%&&%%%%%%%%===:~~~~~~~~~~~~~~~^^^^~^~~^^^^^^^~~~^^^^^^^~~^^^^^^^^^^^^^^^^^^^^^^^^^-^^^^^;^^^^^^:^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^~^^^^=&&&&&&&$$$#$&'`   
  ``'%&&&&%%%%%%%==-~~~~~~~~~~~~~~~^^^^^^^~^^^^^^^^--~^^^^^^^~-^^^^^^^^^^^^^^^^^^^^^,~~,^^^^~~^^^^^:-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^=&&&&&&$$####&'`   
  ``'%&&&&&%%%=====-~~~~~~~~~~~~~~~~^^^^^~^^^^^^^^^^-;--~^^^^^^-~^^^^^^^^^^^^^^^^^^^-^^^^,^~-^^^^~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^=&&&&&$######$'`   
` ``'%&&&&&&%%=====-~~~~~~~~~~~~~~~~^^^^^~^^^^^^^^^^^~-^^~^^^^^^-^^^^^^~^^^^~^^^^^:-^,^^^~~-^^^^^~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^~^~%&&&&$$######$'`   
` ``'%&%&&&%%%=====-~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^-^^~~^^^^^~~^^^^~~^~-^^^^^^:^^^~~^,^~^^^^-^^^^^^^,^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^=&&&$$$######$'`   
` ``'=%%%%%%%%%====-~~~~~~~~~~~~~~~~^^^^^^^^^^~---~^^^^~-^^~-~^^^^~-;!;:;++*!!!;!;;~^~;!!!:^^^^-~~^^^~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^%&$$$$$######$'`   
` ``'=%%&%%%%%%%===-~~~~~~~~~~~~~~~~^^^^^^~^^-;;;!;-!**!!-~-:--~^^^~:~-:;?!--::!---:,^~-;^-^^^-****)*!;!-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^%$$$$$$######$'`   
   `'=%%&%%%%%%%%==-~~~~~~~~~~~~~~~^^^^^^^~^-!!-:;?;)~:~-^^::-:--~^-:!!!:!*!::>*--:-~^~^;--^^---:;::-!;:;;!:^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^%$$$$$$######$'`   
  ``'=%%%%%%%%%%%%=-^~~~~~~~~~~~~~~^~^^^^~^-*!:!=>-:-*+!~^::-!:--^^-);*;;~!!)!;;:~:~~^!>)--~^^^^^--:::*>!--:!!~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^~&$$$$$$$#####$'`   
` ``'=%%%%%%%%%%%%%-^~~~~~~~~~~~~~^^~~~^~~^!~!+>+*;;;;*:--:-:>*:^^~-:;-+-^!=:-:^:;*:-~-:*!:::-~^^^-;;;;;:*)):-);-~^^^^^^^^^^^^^^^^^^^^^^^^^^~&$$$$$$$#####$'`   
` ``'=%%%%%%%%%%%%%-~~~~~~~~~~~~~^^^^^^^^^^:;:!;:+==:-!~^::!!)!-^^:!;!!!:-~:~;:-:!-::~::--)>::;!-^^^-!:*!)-:-*!~:-^^^^^^^^^^^^^^^^^^^^^^^^^^~&$$$$$$######$'``  
` ``'=%%%%%%%%%%%%%-~~~~~~~~~~~~~~^^^^^^^^^^>:::::*-**;:~:^~-!-~^->!-:*?::~:;:!:--::--);:));;!:::--~^^-:;:*:*>---!:;^^^^^^^^^^^^^^^^^^^^^^^^~&$$$$$$$$####$'``  
` ``'=%%%%%%%%%%%%=-~~~~~~~~~~~~~~^^^^^^^^^^->:;:;!;::-:;--~::~~^:+!~::-:--;*:::;~:!-);-~+*-:)-:::----^-)*--+);;!:~!*^^^^^^^^^^^^^^^^^^^^^^^~&$$$$$$$$$###$'`   
` ``'=%%%%%%%%%%===-~~~~~~~~~~~~~^^^^^^^^^^^^;):~*;;;-:!++*-!--^-::::-^-~*>+*!:;-;++;:-:---->+~;!!;;~~~,-;-;;:-::~;?!^^^^^^^^^^^^^^^^^^^^^^^~$$$$$$$$$####$'`   
` ``'=%%%%%%%======-~~~~~~~~~~~~^^^^^^^^^^^^^^;>--!*;;::+?:!--~~--::::-:~:*;::;!!!;!;-::--::;--*);*;;+);;--;~;:-::?!^^^^^^^^^^^^^^^^^^^^^^^^~$$$$$$$$#####$'`   
` ``'=%=%==========-~~~~~~~~~~~~^^^^^^^^^^^^^:-;*-;:))::--~;~:--~-:--*>!~::;!:-:;;;));--:)>!;:;>;;*-:::-~:::--:*?)~,^^^^^^^^^^^^^^^^^^^^^^^^~$$$$$$$$#####$'`   
` ``'==?===========-~~~~~~~^^^^^^^^^^^^^^^^^^^-~:*+;+-:~~*;!~-:^--~~->=>---::-:;!~;*;!+:-!;;::!:::;--:++*!;;!+?*-,^^^^^^^^^^^^^^^^^^^^^^^^^^~$$$$$$$$$####&'`   
  ``'>=?=========?=~~~~~~~~^^^^^^^^^^^^^^^^^^~-^^^:>+;:-:!;;-)*--~:---;*!;;;:-;**::---!>~--;!-;-;::::~):---+>;^,^^^^^^^^^^^^^^^^^^^^^^^^^^^^~$############$'``  
  ``'>?==========?=~~~~~~~~~^^^^^^^^^^^~^^^^^^~^^^^^;;>!~~:~;:;*:::~~>+!--;*~::-:;--;--)>?-:!:-;;!!;~~~:);~:,,,,^^^^^^^^^^^^^^^^^^^^^^^^^^^^-$$###########$'``  
  ``'>??===?=====?=~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^~~-;)>*:!~^~-^~:-:*---*+:--:*>--::::::--!----::;)>>+;~--,,^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-$$###########$'``  
  ``'>??==????=?=?=~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^-^^^^;+*+>;*;-:~;;~---*;!**!!!!!:!!*:--;;;;-++*:~~-~^^^^^^^^^^^^^^^^^^^^^^^^^~^^^~^^^^^-#$###########$'``  
  ``'*+???????=????~~~~~~~^^~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^,,~^~:;*-!)>)>+:!*;***)>=%===?>):;+!:~--^,,^^^^^,^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-#############$'``  
   ``.*???????>>+>?~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^,,^^~--^~~-~---~~^,^,,^-~-^^-^,~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-############@$'``  
  ``'!>??????????>>~~^^~~~-~^~~~~^^~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^~^^-#$##########@$'``  
  ``')>>>??>??????>~^^^^;??:-~~~~^~~^^^-)>^^^^^^^^^^^^^^^^^^^^-**-^^^^^,^^^^^^^^^^^^^^-^^,,,~^^^^^^^^^^^^^^^^^^^^^^^^-;-^^^^^^^^^^^^^^^^^^^^:$$##########@$'``  
  ```:!;!))++++++>>~~^^^?%=:^^^:;:!*:^-=%?:~!!~^:;:^-::^:-^~:-!%%:^^~--~^^~~~^^^^^^^^,?:,,^:+,,^^^^^^^^,^^^^^^^^^^^^^+=>^^^^^^^^^^^^^^^^^^^^;############@$'``  
   ```''','..:-,,;-^^^^^?=%=:^^-^^:=%;^=%>^;%%;^?%=^>%%;--;=>~)&%:^*-^*&?~>%%*,^!^^^^-&=~^~%%~,^!=::-,*??:!*;>>:!?>-^)+)^!))-!+*~^~!;)*~^~^^;$###########@$'``  
   ```.'^^',`'',`''^~^^^:=%%=-^!+!!%%*~%%>^;%%;^?%?^>%%^,^=%>^!&&;^~;:*&&:~=&%-;~^^,^*&&>~?&&;^!&&~^-~)%&!,,*%%;^%&>^=%=^>&&:-&&)~%%~=&-~^^~;############@$'``  
` ```'.'~'.'.'~'`':^~~^^^;=%%+!%%-:%%!~%%>^;%%;^?%?^>%=^,~%%>^!&&:!%=~*&&:^:&&?-,^^,^!=&&+)&&+^?&&~^^:)%%~^^*%&:^%&?^=&=^>&%~~&&+;&&~=&!^~^^;############@$'``  
````'.,~^~^',,','.-^~^^~~^!==+*%%~;%%!~=%+~!%%;^=%?^?%=^,^=%+^*&&:>%%^!&&:^,)&!^^^^,-~-%%~-&&%^>&&~^^:)&&~,^)&&-^%&?^=&=^>&%~-&&+~=&~=?~^^^^;############@$'``  
` ``'~^^,,-..''^..~^~^^^:;;?)~~)?!*??!^*=?;~?%);==>^?=?^^^;=>-+%&:;%%-)%&:^^~)^^^^^^!,,!:,^%&%;:%%~^;^+&&~^^)&&-^%&?^=&=^>&%~-&&+:>)+):^^^~~;$#########@@@$'``  
` ``'+>>++*''~!:-~^^~^^^^^~^^^^^^^^^^^^^^^^^^~^^^^^^~~~^^^^~-~~--^^~;-~-:~^;;^^,^^^^-^^^,^,;!!:^-)::^^;))~^^;++~^+>)^+>+^)??~~==*~?==%=^^^^^!##########@@@$'``  
` ``'>????>)*+>>>>+~^^^~^--^^^-^^~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^,^^^^^^^^^^^^^^^^,^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^~^^^^~!$############$'``  
````'>???????????=>~^^~^^>)*^!)!!+!^^^^:~!)^^^^^^^^^^!*):^^^^^^^^^^^^^-*^^^^,^^^,^^^^^^^,~;^^^;^^^^^^^^^^^^^:;-^^^^^^^^^^^^^~~---^^^^^~~~~~~!$############$'``  
  ``'>>>>>>>>>>>>>+^^^~^:*;),+;));*^^^^?~*!,^^^^^^^^;+^!)^~^^^^^^^^^^,;),^^^,,:+,!*^>^^^^+?-^:)^^^^^^^^^^^^*):?~^^^^^^^^^^^^*=>+*^^^^^;:~~~~!$##########@@$'`   
  ``'+>>>>>>>>>???+^^~^^*;!)^>;;>;;^^^:>-):*-~!!^^^^:>;~^~>-~,~;~^^:-~!*-~,-:,!*,+:^-,^^^-*+~+~^^^^~^^^^^,-?~~>~^^^^^^^^^^^^^?-^^^^^^^>!~~~~!&%%====%%%%%=?'`   
  ``'+>>>>>?>>>???)^^^^^>)++^?*^?*^^^^;>:+!?-*!+-^^^^:++--?)>^>;?~!+);*!>!->!;>>-?>-?^^^^^~?>-~>>;:>-)^^^^;>^^^,:+*-:*:+^^^^^=))-~+*;~?*^~~~!%%==????=====>'``  
  ``'+>>>>+++++>>?*^^^^;+;!>~?~~?-~^^^!*^>*?^>*)^^^^-^^!?;>:?->-?^>;+:))>-!)):>:~?~:>,^^^^,*+,;)*;;+;+^^^^!>^^^,>:+:!)+*^^^^^=!;~!+!)-=;^~~~!%%===??======?'``` 
   `'++>>+>++++>>?*^^^~+-^-?-+);>)!^^^*)!>:>!+!:;^^^!);!+;+!*->!?!>!>;)*>*+)~;?-!?~*>:,^^^,*+,!)!;)**)~^^^-?:^~!?->:)))!^^^^~=~,^+!)!!?^~~~^*%====?=======?'``` 
   `'++>>>>++++>>>!^^^^~^^^~^~~^~-^^^^~:^:^^^~!-^^^^^:!;^:+:^^*--^~-+:;-~~~)*~!)-)*^:^^^^^,;),->!-:>;)-^^^^!>+)^>*!!*+:>:^^^~=?>!)+!);?*-^^^*%==????=%====?'``` 
  ``'+>>>>+++>>>>>;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^:)^^^^^^,-**^^^,^^,,,,,^,,,^^^^^^^,,,,^^^,^^^^^^^^^~^^^^^^^^~^^^^^^^~~-~^~^^^~~~^^~*%=????======%='``` 
  ``'++>+>++>>>>>>:^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^~^,,,,^,^~^^^^^^^^^^^^^^^,,^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^~^^~~^^*%%=????????==?'`   
  ``'+>+>>+>>+>+>>-,^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^,^^^^,^^^^,~))~,,^~:^^^^^^,^^,,,,,,,^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^~~~~~~~^*===?==?=?====?'``  
  ``'+++>?++>?>+>>-,^^~^^;^^^^^^^^^^^^^~~^^^^^^^^^^^^^^^^^^^^^^^^,;%>%?,,,>%^^^^^^?>>:^^)>+-,^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^~~~~~~~*==?=???==%===?'``` 
  ``'+>>>)+>>>+>+>^^^,,,,,^^^^^^^^^^^^^^~^^^^^^^^^^^^^^^^^^^^^^^^,?+**%~,,>?,^^^,:&:!=^~&!;%^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^~~~~~~~*???????=%%%%=?'``` 
  ``'+>>>>>+>>>>>>^^^,,,,,^^^^^^^^^^^^^^~^^^^^^^^^^^^^^^^^^,,^^^^,>%>--^^,>>,,,,^*%^:&~;&~-&-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^~^~^~*?>>=%=%===????'``` 
  ``'+>++>>>>>>>>>)!~,,,,,^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^,,,^,~?&)^,^,?+,,^^,+?^:&-*%^~&:,^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^~^:=??=%=%=%===??>'``` 
  ``'+>>>?>>>>>>>>+>>+;~~--^~~^^~^^^~^^^^^^^^^^^^^^^^^^^^^^^^,,,^,^^>%?^,,=),,^^^>>^:&~)=^-&:,^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^~~^^-========?=?????>'` ``
  ``'+>+>>>>>>>>>>+>>>>>>>+,,,,^,^,^^^^~^^^^^^^^^^^^^^^^^^^^,,,,,^;,)-%;,^=*,,,,,>>,*=^)=^;&~,^^^^^^^^^^^,^^^^^^^^^^^^^^^^^^^^^^^^^^~^~^^^>???==>??>??>>??>'`  `
  ``'+++>>>>>>>>+>+>>>>>+>>^,,,,,,,^^^^^^^^^^^^^^^^^^^^^^^^^^^,,,^=+?!=~,,=!,,~^,*=,>+^!%^)=,^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^~-^^^*??>>????>?>?>???>'`` `
 ```'+>>>>>>+>>>>>>>??>>>>>~,,,,,,,^^^^^^^^^^~^^^^^^^^^^^^^^^^^,^,->=+~,,,+!,^%>,^=?>^^^=+?-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^,,,,,,~>?>>>>???????????>'`` `
 ```'+>>>+>>>>>>>>>>??>>>>>:,,^,,,,^,^^^^^^^^,^^^^^^^^^^^^^^,,,,,,,,*,^~,,,^,,!-,,^~^^^^^:~,^,^^^,^^^^^^^^~~^^^^^^^^^^^^^^^^^^^^^,,,,,,,))??>+>????====???>'`  `
 ```'+?>>>>>>>>>>?++???>>>>);::--------~-~~:;::-~~~~^^^^^~^^^^^^^^^^^^,^,,^^,,,,,,,,^^^^^^^^^^^^,,^^^^^^^^^^^^^^^^^^^^^^^^^^^^,^^,,,^,,^>?>>++>???====????>'`` `
 ```'+>>>>?>>>>>>>>>>??>>>>>>??>>>>>>>>??????=?????????????????>>>>>>++)))+>))*)*********!*!!!!!!!;;;;;;;;;;;;;;::::::-:::-:-----------*?>>)+>>??===??????>'`` `
   `'+>>>>>>?>>>>>>>>??>>>>>>>>+>>>>>>>>?>>>>>>++>>>>>>>>?====??=?????======%&&&%%%%%&&&&&%%%%%%==========?====?????????>?????=?????>=?>+)+++>???=???????=>'` ``
   `'>?>>??????????????>>>>>?>>>?>>>>>>>>>?>>>>>+>>>>>>>?===?>>>>+++++++++>>>==??????====???????>????>?>>>>>>>>>>>>>>>>?>>>>>???>>>>>>>>+++>>>>?>?=???????>'`   
   `'>>>>>>??>???>??????>>>?=?>>??>>>>>>>>>>>>>>>>>>>>>>>???????>>++++))++++>>>>?=?????>>>>>>>?>>>>>>>>>>>?>??>>>>>>>?????>?>????>>?????>>>>>??>?==???????>'`  `
   `'>??>?>??????????????>>??>>>>>>>>>>>>>>>>>>>>>>>>>>>>??>>>???????>++>>>?????>>>>>?>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>???>?????>?=??==????>>???>>>==>??????>'` ``
   `'>???=????????????=?=???=?>???>??>>???>>?????>?>>????>>>????>>>?>>+>>????>>>>>>>>>>>>>>>????>>>>??????????????>>>????>>>????????=??>>>?>?????==?>>?>>?>'`   
  ``'&#$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&$$$$$$$$$$&&&&&&&&&&&&&&&%&&&&%&&&&&&&&&%%%%%%%%%%%%%===================%%%%%%%%%%%%%%===%====?????>>>>?????===='`   
  ``'&$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$&&&$$$&&$&&&&&&$$$$####$$$$$$$$$#$#####$&'`   
   `'&#$$$$$$$$$$$$$$$$$$&&$#$$$$$$$$$$$$$$$$$$###$$$$#######$$###$$$$$$#$##$$$##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$$$$$$$$$$$$$$$$#$$###############$$$###&'`   
   `'&#$$####################$$$$$$$$$$$$$$$$$###$$$#$##############$$$$$$########$$$$$$$$$$$$$$$$####$#######$$$$$$$$$$$$$&$#$$####################$$####&'`   
   `'$######################$$$$$$$$$$$####$$$####$####################$#$########$$$$#$$$$$$$$$####################$$$$$$$$$$$$#####################$@@@@$'`   
   `'$##########################$###$$$################################################$$$$#$$$############################$$$$####################@#$@#@$&'``  
   `'$################################$$######################################$########$$$$$#$###########################$$#$$#####################@#$####&'``  
  ``'$##################################################################################$$$##############################$$$$$#######################$@@@@$'`   
  ``'$###############################################################################$##$$##############################$$$$$$#######################&##@#&'`   
  ``'$###############################################################################$#$$$##############################$$$$$$#######################&#$##&'``  
  ``'$#################################################################################$$$$#############################$$#$$$#########@@@###########&##@#&'``  
  ``'$#################################################################################$$$$#############################$$$$$########################$$#@@$'`   
  ``'&##################################################################################$$#############################$$$$#$########################$$$##&'`   
  ```+#######@#####################################$&&&&&%%&##############$%############################################$$$$##########################$$$$+```  
  ```^$@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@@@#@@@@@##=%%=%&&%%=%&##@@@@@@@#%&#$##########################################$#$$$$#############################$^``   
    ``!########@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%?????=%&&&%&$@###@@@@#*=#############################################$$$$##############################;```   
    ```:%$$$$$$#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#=?????==%%&&$$#&&&&#@@#*=###@@#########################################$$$############################&-```    
     ```.;?%&&$$$#############$$$$$###########$$&?>>>>>????===%&????&&$%!?$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&$$$$$$$$&&&$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$%?;.````    
     ``````'''''''''''''''''''''''''''''''''''''`''''''''''''''''...''''`''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''```````    
       ````````                                  `````         `````````                                         ````````````             ``````````            
        `                                        ````            ``````                                           ``````````               `````````