...................::;.:::.:::::::::..:.:...........:.:..::.:::::;;t;;%;%t%;%t%t%t%%S%StS%S%StS%%%%%%t%%%t%%S%S%SSSXSSSSS@XSSXSXSS%X@X@S@X8X8@tXSXXSSXXX@@@@88888888888888@@XXXSXXXXXXSXSXSXXSXXSXXSSX%@XXXXXXXSXSXXSXSSSSt@SSSSSSXtXSSSSSSSSt@t@tXSt@SSSXSSSSSSSXSSXSSSSSSSSSSt@SSSSSSSXXXXXXXXXXXSXXt@SXXX
..:.:..:.......:.::;:;t;tt%;tt%;;:;::..::;:;::...::;::;;;tt;:;tt%%%t%SStS%%tSXSSXX%X%XSSS@S@X88SSStSXSS@XX@888@S@%SXSSSS@XSXXXXXXSXS@X8S8SSSS%XS8XX@XX@@@88888888@@@@@@@XXXXXXX%@SXXXSSSSSX%@XXSXtX%@SXXXS@X%@SXt@t@SSStXXX%X%XX%@XX%X%@SXSSXXS@SXt@XtXt@%@StXX%XS%XXSSSXSSStXS@t@SStXSXSXXXX%XSt@SSXX@SSXXX
:..:..:.:........:;t%t%%St%Stt%S;t:;..::;;::..:.:.::::tt%SS;;;%SS%S%%%%%S%%XX%X@StXXX%XSXXSSS@SSSSSSSXX%@SSSXSSSSX@8@SSS%@@8SSS8SS%SS@%@tXXXXS8X@8@888888888@8@@%@@%@XSSS%@XXS@@XSXSX%@XSSXXXSX%@@@@SXX%@@S@XSSX@XX%8SX@SXX@XX%@X%XXXS@SXSSSSSStXX@%@XS%@@t@XXXXXXSSXt@%@SSS@%@X@SSSX%@tXtX%@%Xt@t@%XSSS%@XX
:..:...:.:..:.::::;;tSSXSX%XS%X%%tt::.:;;;:::::::::::t%XXt%%tt%S%SSXSSSX%SSXS%SXXS888X%SSSSSSXSSSSS%StSXSSSSSXXX@SXSXXSSXX@X@SX%X%88@S@XXXXSX@@@8888888888S@SXXXXXX@SSSXX@XXXX@XSSXXX@SSS@XX%@XXXXXX%XXX@XX@XXSSSSX@XXXXXXX%@XXSXX%@SSSSSSXSSt@%Xt@X%@tX%8X%XtXS%X%X%8XXSSS%@@XXXSS%@XSStXS%@XSXt@XXSXXX@SSX
....:..::.:...::::;t%S%SStSSt%SX%%tt:;:;;;::;t;;ttttt%Stt%X%%ttSSStSStSSS%SXSSSX@@XS@@X%XSSS%XSXSXS%%X@@XSSXXXSSSXSXXX%XS@XSXSXX%@SXt@XXX%SX@@88888888X88S88@XXS@@XSXXSX@@@%@X%@XXS8XSS@@XSX@XS%X%@X@XX%XX%@X%@%@SSXXSSSXXXXSXX%@X@SX%XSX%@SXXXXt@t8XX@XX%@XSS%XS8S8XSt@t@XXtXXXSSXXtXt8%XSX%XtXXtXSSt@SXXXX
:....:..::.:.:;;;;;%XSXSSSt%S%XXSt%;t::::.::::t;t%%%SSSX%SSS;tSXtS%ttXSXSSS@XXXS@S@SX%XS@XXXSX@XSXSSXXSS@@SSSXSS@%XSXSSSXXSSS%@@S@X%8S8XSX@@8@XS8@%XX8@@8@S@@X@@XSXXSXXS@X@X@XXXXX@XSS@SXSXSS@XXXX%XX%@XSXXX@XX@XSXXXXXt@XXX@XXXSSXXXXXXX@SS;@SX@%@XStXXS@XSSXXSX%8tX%XSXt@SXt@t@t@SXS@%8tX%@SXtXSXSSXSS%@tX
::... :::;::::;:;:;tStSSSSS%tXtX%S%%;:.... .:;;t%%XS%%SXSSSt%%SS%t%%SSXXSXStSSSXS@8@@X%X%S@X@XtSSXSSSSSSXS@S@@SX%X@XSSXSXXX%SSXX@SS@SXSSX@X@88@@%X@XS@S@S@XSX%@SSXSSS%8XSX@%X@X%XXt@X@SSXS8@@S%@SX%XX@XXX%@%@%8t@SXSSXXXt@X@XX%@tX%@XX%X%@SSXt@SXXS%XXSSSSXX%X%@XXt@%8tXS@tXSXSXSSt@tX%8XXSStXSXSXtSXtXXXSX;
:.......:.;::;;t:;tt%X%%tttSt;%St%Stt::.....:;;tSSSS%SSXXXtt;t%S%S%X%XStS;%SXSSSX8S@@%SSSSS@@XSXSt%SSXSXXXXSS%XSS%8SSSSX%@SS@SX8X8XS@SX@XXX8X8SX@XtXSXX@@S8S8@SX%@SSXXS@XS@@@%@X%@@SS%@S@@XXXX@X%@X8%@XX@XX@X@S@t@XSSSSS@%8XX@XXXXS%@XS@%XSSSXSSt@t@%@SSSSSXXXXtXSXXXXXt@%8SS%@tXXS@XSXX%@SXX%X%XS8XX%XSStX%
::.....:.::;;;;;t;%%%%t%t%%t%St%t%%%t;;.....:;t%SSt%%S%SSS%;t;t%%X%SSS%%tSXXSSXSX@@SSXSXXX%SS%XSSSSSSSSSSS@S%@tSSXS@SXSX8tXX8S8SSSXS@XXX@@88@8XX@X%X%@XX@@X@XXXX@XXXXXXX@@XXXXX@XSXXX@SX%@X%@X%8XXXX@X%8@@X%8XSX@%@XSXXXXXX@XX%X%XX%XXXt@%@tXtXSXX@SXStX%X%XXSSXSSt@tXtX%@S%@tXSSS@t@SXXXSS%@S8S@@SXXXS%@Xt8
:.:.....:.::;:;;;t%tStStt%%Stt%t%%t%%;;....::;t%t%%St%SS%tt;tt%S%SSX%SSSStS%XSS%SSS%SX%S%SStSS%StSSS%XSX@@XSS%XtXSS%X%XSS@8XS@SXSXS@SXX@8888S@88XXXXX@%8XS8XXXXX@@XXXX@@XXX%@XSXXXXXXXX@8X@@X@XXX@XXS@@%@@@XSXt@@@XXXtXXXSX@S8@@8S@@SXX@XXXXXXSS%@%@SXX@XXXX@tSSt@SS%@%@8%8@tX%Xt@X%XS%@S%8XXX%@tXS@X%@XXS8t
.:....::.:.::;;ttt;;;ttt%%%%t;t%t;;%t%;: ...:;t;%SSt%t%tt%%%%S%%%X%SS%St%tSS%S%S%S%S%S%SSS%XSSS%SSSt%SS@SSXS@SSXSSSX%@SSS@88SS88@S@S888888X8@@@%@%XXXXXX@8XXXS8XX@XXX@@@@S8XS@XX@XXXS8X@X@XX%@XX%@@@@%@88XX@%@@XXXX%@XS@%XXXS@SX@XXXS@X%XXSS@SSXXX@%@%@SSStXXX%@Xt@%Xt@%@@%8XSXSX%@XSSXSXXt@tXXSXSXSSXStXXXX
..::..:.:..:::;%%tt;;tttt%t;;tt;;::;%t;:.:::;:;%ttt;t%t;t%%SS%S;SSXSXStt%XS%t%StS%SSStSSSSXSSS@SXSS%XSS8@tXS@@SSSXSXXXSt@X@SX@XXSSSX@88XX8@@8@@8XXX%@XXS@@X@88XXXX8XXXXX@@X@@%@@@@X@XSXXX%@XXS%@X@%@@@@@X%XS8XXX%XXXX88X@SX@S@S@XXS8XX%8X%8@SSSS%@XXXX%@t@X%XX@%@@%@S8tXSX@%@tXt@XtX%XSt@X@X@XXS%@;StXSX%XtX
.:..:.:...::.:;%X%%;t;%%%;;;:;:;:;:::;;:::;:;;t;;tt%%%%tt%%t%St%;XX@SSSS%S;t%X%%%%%SSSSX%SS@S@S@S@S8XX@SSXXX%XXS@SSS%@%XSSX@8SSX%@SX88X888@@S8@S@S@@XS8@@S8@X@X8@8@XXX@X@@XXX@XXXXXXXXXXXXtXt@X%X@X@S@XS@X@S@XXXX8XXXS%@%X%XX@XtX8@@S@XXX@SXSXS8@tX%X@@XXtXXXX@8XS@XX%XtXt@XSStXt8S@Xt@XS%XX%@X@@X%XS%8SS@Xt
..:.:....:.:::ttSSttt%t%;t:.:..::::::::;.:;t:;;t;;;%S%%tt%tS%S;%SX%S%tSSXtttS%t%SS%S%S%SSXSSSS%XSXXSS%SXS88SXXX@SX%@S%X%8SXXX@SXXS@88@@@8@S888@@@@8X@8@@@8@@@88@XXSX@@XXX@@XX%@XXXXXXXSSXXXSSt8XSX%@@X@X@X@@S@X@XXXXX@XXXXS8Xt@X%X@@X%@%@%@S%88XX@XXXt@XXXSXXXXXXtXSSXSXXXtXtXX%@XXSSSXt@XSSXSS%@S%S@X%8@t@X
:..:.:.:..:.::;Stttt%%t;;;:..:..:..:....:;;::;:;;;:;%t;;;;%%St%tSSXSS;;%tSS%t%tS%%tS%X%S%SXSSS%%SSXX%SXSS@8@88XXX@8SSSX@%8S8SSSXSX888@88@@88@S8888XX@X@X88@888@XXXXX8SXX%@X%@X@SSXS@XXX%X%X%@S%8@XXSXS@@@XX8@XX%X%@X%@Xt@S@%8%X%8@@%@@@@X@%8@XXXXSXSXX@XX%@t@XXX@XtXt@SSSX%@%@t8tX%@XXSXStXtXSXXt8@XSXX%XXt@
...........:.;:;;tttt;;;::....:....:..::;:;::.:;;:;:tt;;:tSSS%%SSSt%%t;tS%S%%%%%S%%%StSXXt%S%StS%SSXXSXSSSSSXX8SXSS@@SSSXS8S@SXS@X888@8@X@S88@8S8@@@@8888X8888@XXX88SXXXXX8@X@SS%8@XXX@@@@@XXX@SSX@X@XS@%8XS@XXX@X%@X%@XS%8@X@XXSX@@X@%@XX@SX%@X%@X%@XSSXXXXX%8XXS%%@SSt@XXS@%8SXXXSXX%Xt@SSSSSXS@SXS%8XXXXS
.......:....:.:::;;:.:.:....:::.....::;::;:: .......;;::;t%S%t%SStt%%tSt%;S%S%%%%S%S%SSS%X%XtSSX%SSX8@X@@SSSS88StSS@SSSSXXX@SXXXX@88888X8888S8888@@888@@888X8@@88@XXX%@@@@SXXXX@@XXXXS8X@X@@@@XXX%XSX@XXXS8@%@XXX@S@SX%@XXS@XXX%@%X%X@@%8XSS8@X@@XXX%@SXSSSX@XXSXSX%@XXXXSXtXX%8%XX%@X%@%XSSXXXXXt@%@%X%XSS%
........::.:.::::;::........::.:.:::;:;;:::.. ... ...::.:;t;;tt%%%ttttt;;%%%Sttt%%S;t;ttttttSSXXXSSSXtXXSSSS@SXSX%8SXXSXSXSSSSS8888X88888S8888@8X8@88@@88888888@XXXX@@XS@@X@XS@@XXXS8@XXXS8@@@XX@X@XX@XXXXX8@S%@%XXX%8@XXX@@X%@XX@@@@SXXXX@@XXS@@%@@S@SXXXSS%@X%@SX@%@XSXSXXSX@XXXXXX%@%@tX%@SS@XX@XXXSXtXXX
.....:.::;:..::.:::.. . ..:::.::::;::;::;::........... ..;t;;t%S;;t;t;;;;t;t%tS%tt:;;tttt;;t;%X@S8XSS8@SS@SXSSXXSS@@S@SSXSSXSX@@88888S888888S8888888X88@88X88@@X8@XXX8X@@XSX@@@%8X@8X@XX@@@@@X@XXXS88XXXS8@SXXX@XS@@@@@@@%@@@XXSXXS8XSXXX@8@S8@@8@S@@SX%@XSSSSX@SXXXXXXS%@X%@%@XSSX%8XXXS%@XSXXtXS@XtXSSXStX
...:..:....:....:...... ...:::::::.:::;:::..:....... .. :::;:;%ttt;;t;;:;;tt%t%t%t;;t;;ttt;;t%XS@@8@%@SSXX8%8SXXX8SS@%8XXSXX@8@8888X8@8S88S888X888S888888888X888@X888X@XS8@@@X88@X@X@X@XXS@@8XXX%88SSX%8@XSX%XS@88@@S8S@@X@@X@XXX@@XSXXX@8@@@S@X%8X@X%@@XXXt@SSSXS%@X%XX@SX@XXSSXS8@SXSSSXtX%@SS@X%XXSSSt@XS
........ ........   .. ......::::...::.::::::... . .   . ::;;;t;t;;::..:::;;tt%ttt;;;::;tt%%StS%SXXSXSXSXX%8SXS8XSS@X@SS%@S8@8888@8@8X8888888888888888X88X8888S@8@@S8XX@8@@@X@X@X8XX@8X@8@X%XX%@@XSXSX@XXXS@X@XX@@%@@@@@S@%X@@@@@XXSXXXX@8XX8@@@@S8S@XX@@XXXt@SXSX@SXXS8SS%@%@S%8XtX%X%@SXS8XSXXSXX%8SSSXtXt
. ..  .  .......... ... .....:;:.....:::::::......  . ....::;;t%;;.:...::..:;tt%;;;;;;;tSttt%tSSSSXSSSXXXS8SXSXS8SXX8X@XSSXX@888888X8888X888X888X888X888888@S@@@S@@@@S8@XXX@@88@8XX88X@8@SX@tX@XXSSSSXSSXSXXXXXX@XS@XXX@@8@XX88@X8X%@S88@S8@@XSX@X8@XXSXX%@XXSXSSSSX%8@SSX@SXt@XtXS8XXSXSSXt@tXStXSXS8SSSXSX
..     ....:.. . ...... .....:.... ...:.::.:.:...........:::.:.::.... ......:;;;;tttt;t;;tt;tt%S%XSS@SXSXXSXXX@SXSXX@@88S@S8888@8X88888888S8@8888888888S88S@8@@@@@@S88@X8@@888XXX@8X%8%8@%@XSXSXXSS@X%@XS8XSS8X@XX@S8SXXX@@X@@X@@XXXX@XXXXXSS@XXXXXXX%8%@@SX@XStXt@XXSSXXS%XSXt@SXXSXXSStXXXSXt@X%@X@SSt%XSt
. . .    ...       .. ....................................:.:.:::.. ... . .:.:t::;;ttt%tt%%ttXSXSXXXX@XSX@X8SXXXSSSSS8XS@88888888@8888@8X8888X88X88X8X888S8@%@X@8S888@88888@@@X8@X@@@@@@@@%8@t@XS8@XX@XX@XX@@X%@SX@@XXSXXXX%@XXXXXXSXSX%@XSXS@tS@SX%@SXXXSXXSSXSSX;X%XS%8@X%@%8X@XX@S@XXX%XSSSSXS@S@SSS@St@S
.           .     ...  ............... .. ......:.........:;::.:::.. . .. ..:....::;t;t%%tStSSS%SXX@S@SX@XXS@X%X%@%@@XX8X@88@8S88@88S888888X88888X888@8S8@X8X8@8@888S88S88X8888@@8@S8@@S8@XXSSt8@SXXXXXXXXS8X@@SSS@X%XXStXSXSX@@XXXXX@X@SXX@@X8XSt@S@SXXSXt@SSt@t@%XXSX@XXXS8XS%@%8@@@SX@X%@SSXtX@@%@%@%@XS%
           .... .....: ............:.............:...:...::::.::;... .. .... ....:;tttt%%%%tSt%SS@XSXX88XS8SSXXSX@SSXX8@8888888S888888X88X888X8X88X888@@@88888@S@S@@8@88S888X88X88888S88@%X@%@XSSXXXXXS@@@XX@X%@X@X@XXX@@SXXSXXX@X@@@@X%8%8XXXXSX@X@%@XX%@XtXt8t@XXStXSSX%@@SXXXX%XS@%@S%@SXSSS@X%@@XXXXt@XX
.         . .  ..... . . .........................:::...:::;.::;.....  .   .. ..:::t%%t%%%SS%S%SSS@SX@S88SSXSS8@SSSX8@8888888X88@88X8888888888888X888S88X8888@888888S8S888888888888@8@8S@8@@@XXXSSXXX@@@@%8@%8@SXXXXXXS@XXXXSX%@@@@@@@@@XXt@%@%@XXXXXSS8X%@%X%@Xt@SXXSt@XXSXX%X%@S@S@@XXXX@SSStXS8%X%S@SXS@%
      8;   ... .. ..  . .. . .................:.:..::.::.:::...... .     .   ....;;ttt%%%%SXS%@X@X%XSSX@S@@888SSSSXX88X88888888888888@8X88888@8X888X88888888@888888888888@88888888@8888888X8@@XXXS8SX@X%@XX@@S8XXSXXX8@XX@X@XX@X@%XXXXSSSX@%8XXSSXS@SX@SXS@%8%XSX;X;XSXStXSt@XXXSX%8S@X%@SSSXSXSSXXX@Xt@@@XX
     .;   . . . ..  .  ..   ..........:...........::::...:::.... ..           .:.:;tttt%%SSX%@XX@@SXXS@X@8@SXS8SSXS@X@88888888X88X88888@88@88@88888888888X@X@888888888@8888888888@88888@8888888888XX%@@X88XX8XS@S%XXSXXXX@@@XXXX@@X%X%@SSt@%XStX%8@S%@%XXSt@%@%@SSSStXt@St@XtXt@%@XX@X@@%@%@%@StXtXtXXXStXSS
         . . .  . .      .    ..............:..:.::;::;.::::.....            ....::;;;;t%StSSXSS@8X%%XX@8XXSXSX%XSX@8888@88X88888888@8@88888888888888888S@88@8888888888888@@8888@@888X88@88888888@@@XS@@%XXXX8@%@XS%@SSXS@XXS%XtX%@@8@XXXSXXSSXt@S%@XXX%XXS%8SXt@t@X%XXt@%XSXSXXXSSSS@t@S@XXXt@XXXSXSSt@@S%@
   8;     . . .  .   .    8;   ......:......::;t;t;;%;.:.::.....           .. .:..::;;;t%%SSXSSSS@%@SS8SSX8%XSXX@SX@8888888888888X@888888@88@88888@88@@888888888888XX8@8888X@88S@88@88@8888@8@8888@@@SXXS@@8@@@@XX@XS%8@XS%@XXXXXX88%@t8XXXXXSSSXSXtSXX%XXSSXtXX%8t@@XS@@@X%XS%XS%@XXXSS@tXSX@t@SXXtXXXSSX@S
  .:    .8t.   .   .8t   :;  .. .............;;;%t%;tt:.:.:....                .....::;ttSSX%XSS@88S@S@8XXX@SSX8S@X@88888888888@X888888888X8X8@8X8888@@88888@8888@8X8X88@X888888X8888@888X88@@8888X8S8@XXX%X@@%8XS@t@XSXXX@X%@%@X@XXXSXSt@%@%@@@X%8X@%@@@XX@XXSXX%8SSX%@SXXXSSXSXX%@S%XSXSXSXX@%@%8XXtXSt@St
       88..  .  .8t.:   8t   ... ........  ..:t;;%t%;;;.:..:...               .......:;tSX@S@X@XXS@@t@XSX@S%XSXSSS8@88@88888X888888888888@8888888S88@888@8@@8@8X8888888X88888@888888888X88888@888@88888@XXX%XX8%@XSXt@%X%@%@@@X%XSS%@St@SXXX@SXS8@%@XXS@XS@XXXS%@@%t@XXSS%XSS%@%XXXt8XX%@S@tXt@XXXtS@XSXXt@S
    8t;;   .  ..:;   8t.:   ............. ...:;t;;%%%;;::.:::..                ..  :.:ttS%S@X8@%S@S%@%XS@XSXX8%@S@@8888888@888888888888@@888@8@8S8888888@88@@888@8@888@8888@X8S888888S@@88888@88@8@88888@S8XX8XXtXXS8%@%8XXX%@@@%@XXSSXt@X%@XXX@XXX%XXXX@XtX@SXXtXSXSSSSXXSt8XXXS%8XSt8SXXXSSXSStX@SStXX@XSX
   .:       .8%..   .;     .   .... ...  . . ::;;tt%%;;;.:.:.             . .. ......:ttSXX@XSSXS%XX%X%@SX@XSSXS@@88888@8X@8888@888888888XXS88888@888888@@@888@88X8@@888888X8@8S8888@8@8888@@8@888@8888888S88XS@XXX@XXSXXX%@@@S@@X%@SSXX@XXX%@%X%X%8%@X%XXXXtXt@X%XSSSS%@tXt%Xt@XXSSSSSX%@%XtXS8StSt@StXXXX%
         . .:% .. .88:   .. ...  . .        .::;tStt;t:::..        8;     . .......:tXStSXXXSS@%SXXX@SX@SXX@8X@888@8@8@8@88@8@88@8@888S8@888@8@88888@88@@@8S8XX8S8X8X888S8888@X888@888888888XX@X8@8888888@S8@X%@%@%@X@%@XXS@@@%@8XS@@@S%@XXX@XXXS8@@XX%@%@SXXSXXSSSSXXtX%@XXXXX%XXtXtXSXSS%8SXSSXXSXS%XXXX
    .8t. .  .   . 8 @;. 8:.. 8@;.   ..        ..:;t%S%%tt;;:..      .;   . . ......:.;%StSXXSSSXS@S@X@S@88XS@S@8888@88888@88X8@XX8X8888X888@8X@88@8@8S8SX8X@X@X8S88S8S8X8X888@8@888@8X88@8@8@8X888X8X888888888S8@XX%8%@S@%@X@XS8@X%8@%@%8XS%@X%@XXXSXSXXXXSSX%@XSXXS@SSS@X%@%X%X@SXXXX%XX%@t@SXtXS%@SS@XtX%X
    ::  .88X:  8t8  . 8;:  .8.:... ...  . .    :.:%tt%t%tt.:..            ........:.:tSSXX@88SSSS8XS88XXS88XXX8888@88X88@88S@@8X8S8@8@8@8X88S@@@@@@XX888XX@X@88888SXSX@8S8X8@888@@X8S8X@@@@@8@88@88888888@888888@8@@X@%@X@%@S8@XS8@SX@X@X%8@XX@X%@%@X@@%@XXS8@@XXS88St@Xt8@X@XX%@XS@SS%XX@@%XSXXt@XS%@%@SXXX
   88t:: .  .;.:  8;.    :; ........  .  .....::tt%%%t;:::;..          . ......:..;%XSSXS@SXSX8SX8XXXS@SXX@8888@8@88X@8X@@88S8S@@8S@XX@8XXXXXXX8@XX@8X8S888X8@888@8S888X@@@X8X@@888SX@@XXXX8XX@@8@888X88888888@888@8@S@%@@@%@X@%@S@S@%8@XX%@XX@XXSX%8@@X@@X@S@@@XX@@X@XSXXXXXXSX@XXXX%X%@XXSXXSt@XXSSS%XS%
  .; .;     888t: 88;    . ..      . ...:..::;%t%t;:;:...      .  . .. ....:.:tSSXX%XX%XS@X8XXXXXXSSX888888888S8888@8@8@8S8X888S8SXX@S8XXSXXXXXXX@S@X8SXX@X8@@88X8S8S8S8S8S@X8X@XXXXX@SSXX8XX@8@X@@@@@8@888888888888%@@@S@X@X@XXX8X%@@@XS@XX%@X@XX%@XX%@@X%@XSSXXXtXSSXSXXSSXXXXXXSX%XXSX%8SS%Xt@S@SXS
    8t  8; .; .;  :   .  :        . .  .. ......:.:;;t;;;::...        .  ......:.:.;%S%XX8@XS%@SXXSSX8SSXS@88888@88X8@88X@8S@8X888@8888888X@XSS@SXSXSSS@8888XXS@SXX@8XSXSXS@S8888XXX@S@S88888S@SSX@@@8X8S@@8@88888888888@88S8@@S@%@S@S@%8@XXX@@@%@XX%XX@@X%8@XXXXSSSS%@SXSXSSSSXSXSSSS%@X%@SS8X@%XSXSXt@%@%X
   .:  .; 888;88:     8t  8; . .  . ....:..:.::;;;:...           . .......:.:tSSXSXS8@XXSSSSSSSSXS@@8888X@8@X@X8S8@XS8X8X@8X8X888X8S8S@S@8888SSS@X8@8XXS@88S@S888S@S@888X8XSSX88SXX8X8SXS@SXX8S8XS@XXX@X@@8@8@8888@888X888@@S@@@X@%8XS@XX@@X%@@X%@XXXXX%@SSSS@X@SXtXSSSSX%@%X%XXXXXXX%8t@SX%XtXX@@@X@X
    88;.:  : .:.: .: 88%;  ::   .. . . .. ........:.:...       8t . . ...:.:::;%X%SX@SSXX@XS@SSSXSSXX888S@@8S8S8888@@8S88X8S888@@XSSS888S@S@X@SSSSSXSSXSSXX8SSSX88SXS@X8XX8@SSX88XX8@88XX8888XXX8X@@888X@X8@888X8@8X888888X8S88@S@S8@SX@X%@%XX8%XXS@%@XXX@X%8XXXSXXXSXSS%@XX@XXXSt@X%@S8SXtXXSXXt@XS@@XX
  8t:  .8;@:@;@88; .  ;         ..   ... ..............      8%;    .....:...;%%S%S@SSSXXXXS88S@%XS8X8X@888@8X8X8@8XXX8SX888X8@8X8S8888@8888XSX8888SSSXSXSXSSSS@XSSS888SS88XX88XSX@X88SXX8X8SXX@@8X@X8S8X@X8X8XX@8X@88@@88@888X88@@%@S@SX@XX8@XXSS8X@SX%@XX@S%XX%@SXX%@X@%@%@XS@X@SS8@X%XXXStXXXS%XXX%X%
  . 8.8%. . : .8t.@;. 8;8;       8;  .   ..... ........... .    ::       .....:.:;%SSSSX@XSSSXX8XSSS@XX@8X8X888@88S8@8X8S8S8S8S88S@XXX8X8X8X8X8X@88@X8SSXSSSSSSSSSSS88S88@SX8X888SSX8888SSSS@88XXSX@8S888S888S8S@S@8@8888@88888@88@88X888@@%@XXXSSSXS@St@SS@XXXX@X%@XXtX@XS@XXX@X@@SXS8X%XXXXXXXXS%X%@%X%XSX
  8: ..@.@:8:@t:  .8: . : 8;    .:     8%.. .......... .             . .....:.:.:tSXS%XSX@XX@8S8SXXSS@X@@@X8X@X88S88XX@@8X8X88X@X8X@X888@888SXXXS8SSSSXSSSS8@8X8X8S88SX8S@88SX8SX@X@@@SX8S@@S8SX8@S8S@@8S8S8S8S88X@X8@888@8X8X@@8888@88888@@SSSSSS%@SSX@%8SXXXXSX@X@XX@@S8@X%@XXS@XS88@XX@%8@@XXt@XSS@%@X@tX
   8:8:    ... @:8t.@.8:8;.   8;  88S;   ........ ... .    .        . .....:..:tStSS%XXS8@S88SXSX@XX@8S8S888X8X8X8X88X@8888888S8@8S88@8S888S@88SSXS@888888@X@@XXXS@8888@8SS8X@XSXXS@XXX@X8@888888X@XXX888X8S8X88X8S8@8@8S8S8@8X8X88@88888XXt@%SXXSSXSX@t@XXX@XX@XX%@%@@@X@XX@@X@@@XXX88XXSXS@XS%@SSt8%8XXS
 8:  .8.8:8t@: ...X:. . . 8. .: 8;:  :       ...:.... .        .. . .. . ...:...;tSS%S@@8X8@XSSSS@SX@8S8@8888X8S8S8S8S8888@@8X8S@88X@S888888SS8@S88888@XXS@S8888X8S@X@XXX@SXXXXSS@XXSSXX@X@@88X@88@@XX@8@8X8S8X8SX8S888X@X88@X8@8X8@8@8@888888XXXSXSXXSXX@SXXX@@%@@@@@XX@@%XS@%@@@@S8@8S8@S88@XXXXt@SXXXt@XS
  8.8;. ..:..@:8;  @.8:8. . 8:  . @.  8:8;.88  ........        . ... ........:..;%tXXSSSX@X%@SSXSXX8@888SX@8X8S8@8X8S8888@8@8XX8X8S8S8X8X8XXX888888XX8@XS@X8@X8X@88X8@SXSX@@@@XX@SSSSSXXS8@8XSXS8S@SX8S8888S8X@88S@X888S88@88888X8@8@@88@8@8888@8@S8XX@XXX%@XX%8@SXSXS@@X@X8X8@@@888@X888S8@S@XXtXX%XtXSX%@X
     8.8:8:@;...8: . . .8:8;. 8.8:. 8;. : ::  ..:........      ....... ......:..;%SSXXSXX@XXSXSXX@8X8X8X8@888@X88@8@@@8888X8X8888@8@X8XSXXXX88@X8SXSX8XXXS@X8@8S88SX@XXSSXXX@SXXSXS%XSS@@XXX8S8X88X888@8X8SXS8X8X8X8S8XXX8X888@8S888S8X88@888S8@888@X8@X8XXX@@@@@X8X8X@%@@XXX@S8@8S8888X88S88@%@XXXXXXSSXXtX
 8 Xt  .    8:8;.8.8:8: .  8.   . 8;: 8:@:    ........ .      . .. .........:..:;tSS@SS@8@SXXS@XXX@8@8X8X88@X88X@8888@88X888888@888X8S8S888@888XSSSSS@88S88@SXS@SS@8@XSXSSXXSXSXXXSX%XXXSX@@X@S88XXX8S8SXXXS@88X@88S@S88888X8S8@888X@@88888S888888888888%@XS@@%XXSXXX@S8XS88X8@S@8@X@X@888@@@X8XX%@S%@%8%@Xt
  8%8.8:8:8@;X:  .  8;8.  88: .   . . 8; ...........  . .. ...........:.:.:;%S@SXSSXS@S@X8XX@8@@8@88888X888@88@8@8X8@8@8X8S8@8S8888888SS@8X@888@SX8SX@S@@S8@@@X8XSXSSSXXXSS%SSSSXSXXSXSSX@8XSXS888S@SX88S8XS8888X8S888X8X88@88X@S88888@8@88888@88888X@@@%@8X8XX@XXXX@@@@S@@8@X8888@8S88@8@8X@XXXXX@X@@X@
 8:     . .8:   8.8:8%.  8;  8;: 88:  8t:  .....  .  . . . ..............:.:;%XSSSX%SSXXSXXX@888@888888X88888X8X88@S8X@8@S888XXX88@88S8XXSXXS@@X8XX@SX@@@XX8@SXSSX@XSSSSSSSXSSSSSXSXXSXSSSSSX@SSSX8XSXS@8S8S@@SX8X888@8S@88@88@@8X8@8X8X8S8888@888X888X8S8X8@XS@X@XXX%@@%@X@8@8@88@@8S8X888@S@@@%@%XX%X8S@
   8 8:8:88.8;  : .X 8t.@. .8. .8;. 8t:     ...  . .  ... . .........:.::.:;%S%S@XSXX@SXSSX8888@88X888X8XXX@@8@8@8@8X8X8@8S8X8@888X88@SSXS8X8888@SXSX8X@SXXSSSXX@@@SSSSSXSX%XSSSXSXSSXSX%XSXXX@88SXS@SXSX8X88XX88@88XSSX88X@8@X88X88X@S8S@888X@88@888888888%X@@8@X%@@X@@X88@@88@88@S@@88@X88@SX@@@@8X@@@8%
  8; . . .88%S 8:8;  .@8: .8:   8;:  @:     .     .   .. ... .......:...:tStS@S8SXX%@SSS@88@8@888@8@@@8X8X8S8@88@8@88X8X8X8X88@@8@X88XSS8X888XSSXSS88X@SS@SXSXS@X@XSSS%SSSSSSSSSSXSSS%SSXXSXX@88SSSXSSSS@8SSX8X8S@SSSX8@8X888@8S8@8XXXX@8S@88@@8@8X8@88@88@@8X@@S@@@@@@@@@S8X88@8@888S8@@88@@@@S@@S@S8@@
   8.8 8:8;@X: .  8.88;.8.  8:8:.  8;. 8;    .  .  . . ..............:.:tSSS%%SS%X@@S@SX8888@8888@88S8S8S8X8X8@8@8X8@8S@@8SSS888SX88XS8S8X8@XSXS8;@@@@SXXSXS@X@XXSSSSSSSSSSSSSSSS%SSSSSXSXSXX8XS88SS888SSSXSSSSXSXSXS888X88@X8X8XXSXX888S8X8@@888X8@8@8@X88@@S@8XX@%X@%@S88888S8@8@@8@@@8@S8@@X8@@@88S8S
 88:8t8;X.88.8:8t  88;.8. .  8:  . @;: 8t        .  . .. ... .....:..;tS%SS8SSSSS%XS888888888888X88X8@8@@@8S8@8S8SXSXX888@8X8X88XSS88XSXSSSSS88SSS@SS%SSSSSSSSSSS%SSS%X%X%XSSS%SS%SSSSSXSSXSXXX8888@8888SSSSXSX888@S@SX@S8@88SSS888S8X8S88888S888888888X88888888@@X888888888@8@8@8S88@S88@X@@SXS@X@8@@
  88:8:X.@:88t  8.8;@88;8. .8:8; .   :            ................:t%SSSX%XSXSX@8X888X8X88@8@888S888X8@8@8@8SSSXS88@X@@@@8X@S8X8XX8888S888XS8@S@SXSS%S%XStSS%S%XSSSSSS%S%SS%XSSS%S%%%SXS@SS8SXXX88@S@SSS@88SX@S@8@8@88XS8@88SX8888X888X8SX@@8888@88888@@@@8X88X888888X8X@888@@X@88S8@X88X8@SX@8%X@%@
  8 8;8:@.@:@:88 8;  @:@8;.  8:8t :  8.8;  888;   ... . .. ...:..:;tS%SStSSX%@X@X88888@88888@88888@8XX@88S@XXX88@S@88@XSXXXX@SX8@XXSX88XS8X8XXXXXXSSS@S%SXS%@8XSSSXSS8SSS%SX%S%S%S%SS%SXX8@SXX@XXSX@8@S@X88888X8@SXSX88@8@XSX@@X8X@S8SSSX88SX88X8888S888@88@888888@888888888X8@8X@888888@%X@8S8@@@@%
 8:  8@88.8;  8:8@ 8:8 8t.  88;: :  .; .: .:    .. ... ....:..::t;%SSSSXS%XSX@888888888@8X88888X8S8S8S8@@88888X888SS@XS@SSSSSXSS@XXSSX@SSXSXXXXSX@XSS%@S%SSXSSSSSXSS%S%SSSS%S%S@S%SSXS@SS@X@SSSSS8@8@X888S@SXSX@X@@XX@XSX@8@@SSX8XSSS88@88S@8XSS888SXX888@8@@88@88888888@8888X888@@8S88@888@@S8@@@
  8 8t8 8.8;@8tX 8%  88;@.8tX 88;. @8;        8:  ... . . ......::;%%SSSSXXSSX8@8888@88@88X88888@8S888@8XX8S@X8SX@8XX@SSS%S%S%S%SSS%SS%S%XSXXS@SXXXSS%8@S%%%X@X%S%X8S%S%SXXSSS%8@SS@SSS@S@S@@SX8X88XXS@8@SXXSXSSSXSSSXXSXXXXXXSX88S88888XX@S88S8888@@S8888S@888888@8888888888X888@888888X88@S@S88S8S
 8.8;@.8;@:X.8@:  8 8;88;@@:.8:  8;.8t:    88t:  ... . ..  ....::;tSXSS%@@SXS@8888X888X@X@8X@8X@8S8@888X@S888@@@S8XSS%SS%S%S%XSS%S%S%@SSS%X%XXS@XSSXS@%%S%X8@%SS%8@%@@8XXS%SSX@S%S%S%@XSXS8XSX@88@XS@XXSXXXSX%XSSS%SSSXXX@SX@SS@S888X8SSXSS@S888X@X@S@8@8888@@888@8S8888@88@888X888X88X888X8X@@88S88
  888:@:@:88.8;8;@:8@:@ @ 8tX  .      8;.; .;    .... . ......::;%%XSt@XSX@X888888@8XX@X8XS8XSXXXSS8S888SX@X@SXS@%S%S%%@@@SS@S%@S%@8@%@SSXSS%SSSXSX%S%X%SSXS%SSS@S8XS@%%S%SSXS%S%SSSXS%SXXSX@@8XXS@XSSXXXS%SS%S88@8S%SXXSXXXX@X@X@S@8@@@@X@@8@S@@SX888@S8888X8X@@8@88888@@8@88888888X888X88@@8@%@8S@
 8.8  8.8.@8:8:.8t  8;8;88:@:  @:8.8:88t:          . . ... . .:.:t;%%SS8@XXXX8@888@@SS@SSS88SX888888SX8@@S88@@SS%SS%%StXSXX@@S@SXS%8@%%XXSSX@SS%SS%SSSSXX@S@S%SXXS@S%XSSSSSS%X%XSSS%S%SS@XXSSXSXSXXXSSXXSSSSS%S%SS8XSSXXS%SSSSSXXSX8X@SXXXSXXXX@XX@@X@SXSXS88XS88X@8888S88888888X8888888X88X@88@S8XXXX
 @ 8 8t8:8:88;@8.8;  8;88;8 8t   .  8t. 8.8:88;    . . .. .:.:;tS%XX8@SX@X@@8888@X8S8SSX8XS@@@@S@@8@SXS@XSX%S%SS@SS@StSXSSSXX@S%X%S%@8SXS@StSS%S%@88SS@XS@@S%X@S%SS8SXXSSXSSXSXS%%SS%SSXSSXXXXX@SSXXSSSXSSSSSXXX%X%SSSSSSSSSSXS@XS@X@XXXXSXXXXXXXXXX@88X@SSS@8S@S8X@S8@8888@888@888@@888@8@S8@@%X%X%
  8:88.@88:88;8 8;8;88; .@ 8:8: : @:. . .  :       .....:.:;%tSS%XSS@88@8X@XXXX8S@888@SXXSXSSXSS%SSSS%SS%S%S8@%S@XXSSSXSXSXXXStS8XS@S%SSSSStSSXX@SSSSSS@8@@@SSS%XSSSSXXS%SSSSSSSSSSSSS@@SS%XSSXXXSXXSSXS%%S%SSSSSSXSSSS%SSSSX%XXXXXXXXSXSXSXXXSXXXS@X@88SS8S@@8SX@8@888@8@888888@88X888X8@@S@X8X8X
 8.8;@ 8.8 8t88:88;8;  8;88.8; :  8;  .  88:    8;    ...:::;S%XSXXSSXX888XX88@@SXXS@SSXXSSS@XSSXSX%SX%XXSS%SSS%XtSSSXSS%8SXXSSXSXXX%S%X8XSS%%tStS%SSSSXXS@XSSSSXSSSSSSSSSSXXSSSS%X%XXSX@XS%XSSXSSXXXSSX%SS%@SSSS%SSSSS@SS%S%XSSSSXSXSXSXSXXXSXX@XXX@XSX@@88S@S@SXSX@888888888X8@88888@888@S8@SX@XSX
 88.8:8:8;@.88;88;8 8;8;8:   8:8. :@.8;  :  :  8:.:    ...:.:;tSS%@SS@@XXXX@S@8X@88S@X%SS@X%XSS%88S88@S%@SXSS%@8@@XSXSSSSSSSSSXSSS@SSSS%SXX@S@S@@@StS%XSX%%SS%SSSSSSSSSSSXXX@SXXSSXXXXSXXXSXSSSSSXSXSXXSSXSSS@XXS%%SSSSXSX%SSSXSSXSSSXXXSXSXXXSXSXXXSXXX@@X@SS@@XSX@X@XX@@888888888888888X8S8@8X8@X@SX
  88;8:8:@.8;88:88:8;    8:8t.  8; . : 88t   :     .  ...::t%SXSS88SXSSS88888@8X%XSSS%XSS@%SSSX%S8XtXXtX@X@XSXSSSSSXSS%XSXSSSXXX@@SXS%@XSXXXXXXS%@SS%S%SSSSSSSSXXXSXSXSSSSXXXSXSXSS@XXXX@X@SSSXSXX@XXXXSSXSSSSSSXSSXSXX%S%SSSSXSXSSSXS@SXS@@XXXSXXXSXSXXXSX8@SS88SX@8X@@X@@@8@88@88888@@88S8S8X@%@@%
 8.@8t8:8:8;8:88t88;8 @: : .8.8t:@.8:  : .:  8;       ....::;%SSXSSXX8S88@S@XX%@XSSSXSS@S%S%S%SSSSXStStS@X%S;tSS%@@SSStSXXXS%SSS8X@XSX8@%@S%S%SSSX@S%SSSSSSXS@XXXXXSXSXSXXXSXXXXXXX@XSX@XXXXXXSXXXXXSXSXSSSSSSSSXSSSXSXSS%SSSXSXSXSSXX@XSXX@@X@SX@SXXXXXS@SX@SSX@SX@@@XSX88XX@X@@88S88@88@@88888@@8%@@
  8;88:8.8:8:8;88:@8; :8.8: . .8;  .88;   .:         ...:;;tSXtSSX@@8@@%@SX@@XXS%SSXS%@SSSSStS%SSS@S8XtSt%XXXS%XtSX@S%S%S%S%XXSSS%XX@8@%8XSX8XXS%SS%SSXXSXXSXSXXXXXXSXSXX@X@SSXSXXXXXX@X@XXXXX@X@SXX@SXXXXSSSSSXSSSXSXSSSSSSSSSSXXXSXXXSXS@XX@XSXSXSS@@X8S88SXS@@8XX@88888@@@@88X8X88X8888X888S88@SX
 8;  @;88:8:  8:8.   S8.   .@;8.  8:8t. .:           8t ....::;%XS@X@@8@XSSXSX@XXSSXXXSSXSXXXXSS8S%@SXXX%@XtSSX@@@X@SSX%S8S%S%S%XSXXSXSX@SSXS%XXS%S%SSSSSSSSXSXXSXXXXXS@@X@SX@@X@@@X@@SX8XXXX@SS8@@@X@XXSXSXSXXSXSXXXSSSXSXSXSSSSXSSS%XXSSSXSXS@XS@XSXS@S@X@X8@SS888@S@S8X8S8@X@XX@@888@8888@888888S88@@
  8 @S  @8;8 88.X: .8.8.%t8t: .8: . . 8:    .       .;  ...::tSXS8@@S8XXSSXSSSSSSXX%StSSSSSSSSS@StXXStS@St%X%XSSXSSt%@S8@S%XSS%XXSS%XXStSSSXX%SSSS@XXSSSSSSXXSXXXSS@X@XXXXS@XXXXXXX@SX8@SX@@@SX@XSX@@SXSXSXS@XSXS@XXX@XXSXSXSXSSSSSSSSSXSXXSXSXSSSS@XSXX@8@@@XSSX8@S@@@X@S88SXXXXXX8@X@X@88X888@8X88S8S@
 8.8%8 8t88:8t@  8%8 8;8; .8;8.8;.8:8:8;. 8; . .       ....:::;%SS8SS@8XXXSSSSSS%XSXSSSSSS@SSSSSSSSS%X@S%%S%S%SSS%S%S%S%X%%SSSS%SS%S%@SSS@8SXXSXXS8XSSXSXSS@XXX@@@SX@X8@@@SX@@8S@@SSSXX8XSXX8XSXSSSXXS@@XXSXXXSXS@SXXX@SXXXSXSSSXXXXSXSSXSSSXSSXX@X8XX@@8@@8XSSXS@S8S8S8X8S8SS8S8SSXS88X8X8@88@@888888888S
  8;8.8;8:88;  88:8;8;8 888:      8t:   . 8t . .....:;;;XSX@SX8@8SX%8SSSSSS@XSSSSSSX8XSXSSSS%SS@XXSSSS%XSSS%%%SXS@SS8XS%SSS%S%XS@SS@XSSSSXX8XSXXSXXXXSSX8SSSXSXS@X8XXS@8S@8@88@@@XXXXSSXXX@X@XX8SSS@@S@XXXXXX@SXS@SXSXSXSXSXXXXSX@SXXXX@X@@SX@8@X8@88XXSXX888S888XSS8S@XS888XX@8@8S8@8X@88888@88X8X8
 888;  88   88:88S88.@;8: :      :;  ....:::;:tS8@@SX8SXSSS@S%SSSSXS%XSS%X@X@@SSt%@SSSSXSS%SXSX@XX@S@SXXSX8XS%SSS%S%S8S8S%SS%SS%XSXXSXSXXXSX8@8SXS@SXXXSXSXXSX@SXXX@8@8X8X8SXSXXX888@8S@XX88@@XXX@X@XXXSSSXXXS@SXXXSXSXXXXXX@S@XXSSS@8XXS@88@@88SXX8SXX8XSX888X@SX8@888X88@@888888888888888@
  8X8.  88:  @8;8S%.8Xt  :  8:    .... .....::::;tXS@XS@S@SSSSSSSSS%XX%XS%SSS@%SSSSSSSX%SS%XSS%S%SXXX@XXS%S%XXS%%S%SSStXXXX8SXtSS8SSSXX@XXXSX@@@@@XXS@S888X888X8S888@8X8X8X8S8S8S8888888XX@@XX@8@XXX@XSX@8@XXSSXXXSXSXX@S@@SX@XXX@X@8SSSSSSS@88S@X8SXS@S@S8S8S8S8@8S8S@XX8S8X8@8888@88@888@88X8S
 8:@@X:  8t.8.8%8:.  8;:8Xt:8.8.@%.   . ......:::::::;SSS@%XXXXXX@XSX%SXXXSSS%S%SSSXXXXS@XS8SXSXSSXXSSXSSS%XSXtS%SSS%X@S@S%@S%SSX8S%SS@S%SSSXX@SSX@SSSSXSXS88888S888S8S888@@8@8S8S8@XX8S8X8@8X8@8X8X8XXXXSSSSX88X@SS@SXXXXXXXXXXS@XSX@@@S8SSXSSSSSX8888XXS888SXSSXS8S@8XSSS8X@XX888@8X@@8@888888@88888
   .@@@:8t@:     8:8:.88:.    . : 8; ....:::::::::::;SXSXSSXXXX@@XSSSSS%SXSSSS%XSXSXXSSXXSSS@XSXXXSXSS@SS%X@XtS%S%S%X@SXtS@S%S@S%SSS%@S8XSSXSSX@S@@XSXSXS@S@888S8S8X8S888@8888X8X8@888@@88S8X@@@@888X8XX@SXS@8SS@S8SSXSXXXSXSXSXXSX@XXS8SSSSSSSSS8@@88@SS8S8S@S888888@S8S8@X@X8X88@8@8@@@88X8X888@8X88
 8 X%8  @8;  8.8:8;.  8;.88.8.8.Xt  : ...::::::;::::;tXX@@%S@SXXXXSSSSSS%XXSSSSSSSSSSSXXXSXX8@XS@XX@X@@XXSSSSS%SSX8S%SS%S%S%S%SXS%@%XSXS@XSSSX@@@SX8@S@S8S88@@8@X@8X8888@@X88X88@@8X8S8@8@8S8@8888888@8S8S@8SXXXSS@@SS8@XSXXXSXSXSXXXXSX@SSSSSSSSS8XS8@SSX88XXS888@88@X888X88S@@@8@8@X888@8S8@X8@@888888
 8;.8.X@8 8;    8.8;.88;  . ..; 8; ...::::;::::;ttSSXXXS@S@8SXSSSSSS%SSSSSSSSSSSXSXXXXSXXSXXXXS@XSXXSXSSSS%%SSX@%%S%S%X%%XX@S%@X@X@XSSS%SXXXSX@XSXS8S8X888X8S888S@S888@888@8@8X8@88@88@8S8X88X88@888@8S8SS8@8S888SXX8XXXSSXSXXXXXXSX@SSX8X8XS888XX88SXS8X8S888@@88@@8X888XX8X888@@X@@@X@8@S@88@8888888
  X8:8@8;8.8.8t  8;.   8.8:88t:...::::::::::t%%SXX%XSXS@SSXSSSSS%SX%8SSSSXSSSXSXSXS@XXX@@XSXSS@SXXXSXSX%XS%SS%SSSSS@SXXStSXXSXS%S%S%XSXSX@X@SSS@S88@8@8@8@@@X8@8XX8XXS8@8X88888S8@888@8X8X888@8888@@8S888888@8SSSX8@XSXXXXS@XXXX@@X@X@X@SX888@@88888888S8888@8@8X8SXS@@8SX@@8@88X8X8X@S8X8@X8888@888
 8t8.88;.8:   8t .8. .8.8. .   . .: ...:::::;:::;%%SXXSXXSSXXXSSSXSSXS%XS@XSSXXSXXXXXSXXXS@XS@S@XXXXXXSSXXXSXXSXSSX%SSXSSS%S%X8XS%S%%S%SSSSXXXXSX@8X8S8@8@@8X8X8@8SX8X8X88@8X8X8S8X@X8S8X@X88@888888888888X8S8888@8S@X8XXSSS8XSSXSSS@8SSSXSSSSSX8@X@88888@X@XX@8X8S@XS8S888S8X8X8@8@8S8@88XX8S8S@8@8@888@8
  8;8:888.8t.@.8t8: .  8:8:8:  .....:.:.:::::ttXXS@X8SXSXXXSXXXXXXSSSSXSSXXSX@SXXXSX8X@@XXS@XXXXSXXSXXSSSXSSXSXSSXSSSXS%SS@XS%@X%S%@S%8SXSX@SX8@X@S8X@@88X8X888X8S8888S88888@X8XXX8S@88@8X@@88888888@88@8@8888@88XS88@SSS@@SX@S@S@SSSXSX8S@88SX8S8X8@XXX8S888X8S@X8X@8S8@@88S8X8X8S8@888@88@S8@8@8X8888@
 8;  8:88:  .8;  . .8:8:.. . . ... ..:.:.:..::;tSSS8@XSXS@S@XXSSXS@SSXXSXSXXSS@@XX@SX@X@SSXSSS@SSXXSXSSXS%S%SSSSSXXSXSSSSXSSXSX8SS%S@SS@SSS@XSX8@X8S@@8X8@8X@88888@@X8X88@8@8@888@88888888@8X88@88888888@@8888X@888@@S8@88SSS8XSSX@SSS@S@XSS@888XS888X8X8S8S8888S8S8X@@@8@8888S888XX8X@@8@88@88@8X8X8X8888
  8.8;8:88.88:8:8;. : 88;  . ......::.::;;%%SX8XS@@8XX@X@S@XX@XSXX@@@SSS@@8@S@XX8@@@X@X@XSXXXSXXSXSSSSSS%S%SSSSSSXSXSSXSS@XSX%SS%SSSSXXXS@88X8X8X8@888888@88@8@@88X88888X8@888@8888888S88X@888@88888X8888@888@88@8S@8X@X@XS%SSSX8@88SXX@SX8@@S@8@8XX@@S8S@8@@X8X8@@@@8@8X8X8X@88X@88@888@8X8S8@8S8X888
     8:  8:. .8;. . . 8;  : .: .....:..::..::;;t%@XX@8@@8X@S8@X@X@XXX@SX@8X@S8S@SSX888X@XXXXXX@S@X@XSSXXXXSXXSXSXX@XXX@SXSX@@@XS@SSSSXS%XXSXXS@88@XX8S8@8X888@@888X888@8S888@888X8X8@8@888X8@88XS888X88X8@8888@88S88X8X8888X@@XXtSSSX@S@8@8SXX8SXXX@X@@S@XXXX@XX@@8SS@@8X@88@@XX88XX88X88X888@8X8X@88X8@8888
 8.S@ 8;8.8;.8.8:8: : 8;   .....:..::...:;tttSX%8X8@@88XX8SS8S8SXX@SX@XS888SXSXS@8SX@XSSSX8@@@X@S@8X@@SSXSS8S8@@@@8@SSS8@XXXS@XSS8XSSXSX@@X@8@@@88S@8@88888888888X88X888888S8S88X8@8@8X88X88@@8S8@88X@8@@8@8@8@@S8@8@@8@X8@88@%SSS@SSXX8SX8XS@8S8X8S@XS888X88XXSS8S8S8@88888@88888S8888888@888888@@8X@88@8
   ;@8;    8;. . . 8: :   . .....::::.:::;ttSSS@8X888XX8S8@S8@S@@XS@@8X8@8XSXSXXSSX8@SX88@@X@S@88@X@S@8@8X@@@8@8X8X8888XSXSX8@SX@SX@XXX@XSXX@@@@@X@888X88X888X8@8@8@8888@8S8@88@8X@88X8X8X888S@888X888@88888X88@8@X@8@8X8X888SSXSXXS8X8SX@XXXSS@X@SSS@88XX8@@SXXSXS8@S8888X@8@@8888@@XX8888888X888@@8X88S8
 @: .88.8.  8.8:8: :     ...:.:.:.::.::;t;SS%8@@X888X8XX@888XXX@S@8@@X8S8@8XX88888X8@8X8@888@@S8X@@@@@X@SX8888@XSX888XSX88X8XXSSSX8X@SX@8XX@@88X@88888@888@@8@X8X88XX88S8X8X8X88X8@8X88XX8@@8@8@@888888@88S88X@S88@8@8S8X888XXSSX8SXXXX@8X@8S8@8X88X@@88888@X8X8@88@@@@8S8@@8@888X8X88888@88888888X@88XX8X
  S;  8:   Xt . . : 88; ...:.:.:::..::;ttSXS@X@888@8XXSSX88X@@@S@@@SXSSX@SX8S8X@8X8XXS888@8@SS8S8S8SX@@SX88X8S@88X8X888@8S@88S@88S8@@@X8@8@8X@@8@8@88888X88@888@888@8X8@8888888@8X@8@8@8@X8X88@88@8888888X8@8888X8@8X8X@8X888S88X@88X8X8X8SX88X88@888@88888888@8@S8X8X8@@8888@88@8@@@8@88888S@888X8X88X88@
  .Xt  8.8t: @;88t: .: ...:.:.:.:.:::;t;S@X8@8888@88XSX@8S88@@S@X888X@@X@8S888@8@X@@@X@8X8X@8SSS88X@8@XX88@8SX88S888@88SX8X8@8X8@8X8XS8X@X8S8@8X@8S8%88@888X8X88@88X8888X88888X@8@888888@8X88@@8@8@@88@8@8X888X888X88@8@@8X8@88X8X8S@@8@888S8@@88@88X88@888@88888@8S8@8@88@8@8X888@@8@8@8X@88S88X@8X8888@8
 8;:8: . .8: : .  :      ..::::::.:.:;:ttX@X88888@88@X8S8X@8XSXS8S8X8@8X8S888@8888X8X8S8@8@@8XX8S88@X8SS8@@@@XX8X8S@8SXXX8XX@@XX@@888@8XX8@8X@88X8S88@8888X88@@8@88@8X88@888@88@@888X8@888@8@88@8888888X8X8X8S8X8X88@88888X8888@8@S888SXS888X8X88@88888@88@888888@8X@8@8@8S88X88@8888@8888@88@8@@88888888@88
  88:8: .88:88;   ...:.:::::::;ttSSSX@888X888888X@88@XXS8X888888XXX8S8@8S8X@8S8S8@8888X8X88S@8@X@SSXXXSXS88@@8@8@8@888S@@8@8X8@8S8X8X8S888X88888X8X888S8888X@888@888@@888888X88X8S888X8X88888X@88@88@8S88X88@88X8888@8S8@8X@X@8SS@@@XS88@8888@8X88@S8tS88X88@8S88@888X8@888X888888888888@8@@X888XX888@
 8:8;. .Xt .8;:.: .:  . ..:::::::::;;%%tXX@888@88@@8@X8S8XXSXS@8S@888S@888X8SX8X8X8@888X@@X@X88S@@8@88@8X@@88888888888X888@S8S888X8X8X8X@88X8X8X8@88X8@88X@@@8@888@88888888888888@8X8S88888@X8@@88X8X888@8@88888@8888888888888@88888S@88XSSXXSX8888@8888@8SS88S8X88S8S888X88@@8888X888@@8888@@@@8X8X8X8@8@8@
    8:XS; 8t:      ......:::::::::tSSXSX@88888@888X88888S@88S888X@@8S@@X8S8@@88X8X88X8X8X8@8@8S8X88X88888@8@8X8X8888@888888X888XXXX888@8@XX8X88888@88888X888S8X888888X888888888@88X8S88@88@X8@8X888X@888X8888@@888@888888888888@@X8X8X88@SXSSS8@8888888@888888888S88S8@88888@@@@@