:,         
-......,=,.,...,:;;;;:/:=......,,       =,,,,,,-,      .::=:::==, ...  ,.       
:======-=:--:-:-:::::::=-------==-------::====:=---=--=-=========----=-==-------
/;;;;;;:/$X$$$X//$$$$$$+:::::::=://////:;//////:+$$$$$$/,      .///////:;////;//
/;;;;;;:/HXXXXH//$$$$$$+=-:-:::-;//////:;//////:+$$$$$$+.      .///////:;//////;  ;;;;;;;=;//////;,      .;;;;;;;:-,,,,.,--......,;;;;;;;:
;::::::==:=====:,..    
-......,=,.,...,:;;;;:/:=......,,       =,,,,,,-,      .::=:::==, ...  ,.       
:======-=:--:-:-:::::::=-------==-------::====:=---=--=-=========----=-==-------
/;;;;;;:/$X$$$X//$$$$$$+:::::::=://////:;//////:+$$$$$$/,      .///////:;////;//
/;;;;;;:/HXXXXH//$$$$$$+=-:-:::-;//////:;//////:+$$$$$$+.      .///////:;//////;.....=:====:-=:::::::,......,:::::::-,-,,,-,--,,,,,,-========
=-------========:::::::=-.,,,,,,:=======-,,,,,,-=------=;;;;;:;:-......-=------,
-.,...,.=;:::::=====:===,      .--------,      .=------,;;;;;;;:.      .,.......
-,.,,.,.=::::::-==:==:==,      .=-------,      .:------,;;;;;;;:.      .-.......
-.,,,,.,:=:=:::=========,      .=-------,      .=------,;;;;;;;:.      .,.......
-...,,,,=====-==========,      ,=------=,      ,=,,,,,,-::::::::, . . .,,,,,,,,,
;:::::::=-------=-------=--------,,,,,,-;:::::;:::::::::;//////;-,,,,,,-///////;
/;;;;;;:-,..,.,,-,.,.,,,-,,,,,,,,  . .  ///////=://////:+$$$$$$+.      .%XXXXXX%
/;;;;;;:-,,,,,,,-.,,,,,,=.,,,,,,- .... ,;//////=;//////:+$$$$$$+.      .%XXXXXX%
/;;;;;;:-,,,.,,,-,.,,,,,-.,,,,,,, .. . .///;//;:;//;/;/:+$$$$$$+.      .$HXXXXX%
;::::::=-,,,,,,,-..,.,.,-......,, .  . ,:;/;/;;=:;;:;:/=/%%%%%%;.      ./%%%%+%+
;::::;::---,,-,-========:-------:::::::=-,,,,---::;::;:=::::::::=::::::=::::::::
//+///+;,      .:-------=.......///////;,      .;+////+;;//////:///////:/;;;;;;:
///////;,       =--------.......;//////;,      .///////:;//////=;//////:;;;;;;;;
///////:,       =--------.......;//////;,      .;//////:;//;/;/=;//////:;;;;;;;:
///////;,       =--------.......;//////;,      .;//////::;;;;;;=;//////:;;;;;;;:
:-=======------===:::::=:------==-------=--=-=-==-------=========-------=-=-----
-,,,,,,-=,,,,,,,://;/;/;=,,,,,,-,      .:,,,,,,=,      .:=;:=::=,,,.,.,,,       
-,,,.,,,-,,,,,,,://////:=.,,,,,,.      .=,,,,,,-,      .::======,  . . ,,       
=,.,,,,,=,.,,,.,;//////:=.,.,,.,,      .=,,,,,,-,      .:=======, .....,.       
-......,=,.,...,:;;;;:/:=......,,       =,,,,,,-,      .::=:::==, ...  ,.       :,       ;;;;;;;=;//////;,      .;;;;;;;:-,,,,.,--......,;;;;;;;:
;::::::==:=====:,.......=:====:-=:::::::,......,:::::::-,-,,,-,--,,,,,,-========
=-------========:::::::=-.,,,,,,:=======-,,,,,,-=------=;;;;;:;:-......-=------,
-.,...,.=;:::::=====:===,      .--------,      .=------,;;;;;;;:.      .,.......
-,.,,.,.=::::::-==:==:==,      .=-------,      .:------,;;;;;;;:.      .-.......
-.,,,,.,:=:=:::=========,      .=-------,      .=------,;;;;;;;:.      .,.......
-...,,,,=====-==========,      ,=------=,      ,=,,,,,,-::::::::, . . .,,,,,,,,,
;:::::::=-------=-------=--------,,,,,,-;:::::;:::::::::;//////;-,,,,,,-///////;
/;;;;;;:-,..,.,,-,.,.,,,-,,,,,,,,  . .  ///////=://////:+$$$$$$+.      .%XXXXXX%
/;;;;;;:-,,,,,,,-.,,,,,,=.,,,,,,- .... ,;//////=;//////:+$$$$$$+.      .%XXXXXX%
/;;;;;;:-,,,.,,,-,.,,,,,-.,,,,,,, .. . .///;//;:;//;/;/:+$$$$$$+.      .$HXXXXX%
;::::::=-,,,,,,,-..,.,.,-......,, .  . ,:;/;/;;=:;;:;:/=/%%%%%%;.      ./%%%%+%+
;::::;::---,,-,-========:-------:::::::=-,,,,---::;::;:=::::::::=::::::=::::::::
//+///+;,      .:-------=.......///////;,      .;+////+;;//////:///////:/;;;;;;:
///////;,       =--------.......;//////;,      .///////:;//////=;//////:;;;;;;;;
///////:,       =--------.......;//////;,      .;//////:;//;/;/=;//////:;;;;;;;:
///////;,       =--------.......;//////;,      .;//////::;;;;;;=;//////:;;;;;;;:
:-=======------===:::::=:------==-------=--=-=-==-------=========-------=-=-----
-,,,,,,-=,,,,,,,://;/;/;=,,,,,,-,      .:,,,,,,=,      .:=;:=::=,,,.,.,,,       
-,,,.,,,-,,,,,,,://////:=.,,,,,,.      .=,,,,,,-,      .::======,  . . ,,       
=,.,,,,,=,.,,,.:,       ;;;;;;;=;//////;,      .;;;;;;;:-,,,,.,--......,;;;;;;;:
;::::::==:=====:,.......=:====:-=:::::::,......,:::::::-,-,,,-,--,,,,,,-========
=-------========:::::::=-.,,,,,,:=======-,,,,,,-=------=;;;;;:;:-......-=------,
-.,...,.=;:::::=====:===,      .--------,      .=------,;;;;;;;:.      .,.......
-,.,,.,.=::::::-==:==:==,      .=-------,      .:------,;;;;;;;:.      .-.......
-.,,,,.,:=:=:::=========,      .=-------,      .=------,;;;;;;;:.      .,.......
-...,,,,=====-==========,      ,=------=,      ,=,,,,,,-::::::::, . . .,,,,,,,,,
;:::::::=-------=-------=--------,,,,,,-;:::::;:::::::::;//////;-,,,,,,-///////;
/;;:,       ;;;;;;;=;//////;,      .;;;;;;;:-,,,,.,--......,;;;;;;;:
;::::::==:=====:,.......=:====:-=:::::::,......,:::::::-,-,,,-,--,,,,,,-========
=-------========:::::::=-.,,,,,,:=======-,,,,,,-=------=;;;;;:;:-......-=------,
-.,...,.=;:::::=====:===,      .--------,      .=------,;;;;;;;:.      .,.......
-,.,,.,.=::::::-==:==:==,      .=-------,      .:------,;;;;;;;:.      .-.......
-.,,,,.,:=:=:::=========,      .=-------,      .=------,;;;;;;;:.      .,.......
-...,,,,=====-==========,      ,=------=,      ,=,,,,,,-::::::::, . . .,,,,,,,,,
;:::::::=-------=-------=--------,,,,,,-;:::::;:::::::::;//////;-,,,,,,-///////;
/;;;;;;:-,..,.,,-,.,.,,,-,,,,,,,,  . .  ///////=://////:+$$$$$$+.      .%XXXXXX%
/;;;;;;:-,,,,,,,-.,,,,,,=.,,,,,,- .... ,;//////=;//////:+$$$$$$+.      .%XXXXXX%
/;;;;;;:-,,,.,,,-,.,,,,,-.,,,,,,, .. . .///;//;:;//;/;/:+$$$$$$+.      .$HXXXXX%
;::::::=-,,,,,,,-..,.,.,-......,, .  . ,:;/;/;;=:;;:;:/=/%%%%%%;.      ./%%%%+%+
;::::;::---,,-,-========:-------:::::::=-,,,,---::;::;:=::::::::=::::::=::::::::
//+///+;,      .:-------=.......///////;,      .;+////+;;//////:///////:/;;;;;;:
///////;,       =--------.......;//////;,      .///////:;//////=;//////:;;;;;;;;
///////:,       =--------.......;//////;,      .;//////:;//;/;/=;//////:;;;;;;;:
///////;,       =--------.......;//////;,      .;//////::;;;;;;=;//////:;;;;;;;:
:-=======------===:::::=:------==-------=--=-=-==-------=========-------=-=-----
-,,,,,,-=,,,,,,,://;/;/;=,,,,,,-,      .:,,,,,,=,      .:=;:=::=,,,.,.,,,       
-,,,.,,,-,,,,,,,://////:=.,,,,,,.      .=,,,,,,-,      .::======,  . . ,,       
=,.,,,,,=,.,,,.,;//////:=.,.,,.,,      .=,,,,,,-,      .:=======, .....,.       
-......,=,.,...,:;;;;:/:=......,,       =,,,,,,-,      .::=:::==, ...  ,.       
:======-=:--:-:-:::::::=-------==-------::====:=---=--=-=========----=-==-------
/;;;;;;:/$X$$$X//$$$$$$+:::::::=://////:;//////:+$$$$$$/,      .///////:;////;//
/;;;;;;:/HXXXXH//$$$$$$+=-:-:::-;//////:;//////:+$$$$$$+.      .///////:;//////;
/;;;;;;-/HXXXXX//$$$$$$+=::::::-/;/////:;//////:+$$$$$$+.      .///////:;///;//;
/;;;;;;:/HXXXXH//$$$$$$+::-::-:=;/;;;;/:;//////:+$$$$$$+.      .///////:;/;////;    
-......,=,.,...,:;;;;:/:=......,,       =,,,,,,-,      .::=:::==, ...  ,.       
:======-=:--:-:-:::::::=-------==-------::====:=---=--=-=========----=-==-------
/;;;;;;:/$X$$$X//$$$$$$+::::::    
-......,=,.,...,:;;;;:/:=......,,       =,,,,,,-,      .::=:::==, ...  ,.       
:======-=:--:-:-:::::::=-------==-------::====:=---=--=-=========----=-==-------
/;;;;;;:/$X$$$X//$$$$$$+:::::::=://////:;//////:+$$$$$$/,      .///////:;////;//
/;;;;;;:/HXXXXH//$$$$$$+=-:-:::-;//////:;//////:+$$$$$$+.      .///////:;//////;:=://////:;//////:+$$$$$$/,      .///////:;////;//
/;;;;;;:/HXXXXH//$$$$$$+=-:-:::-;//////:;//////:+$$$$$$+.      .///////:;//////;
:======--;;;;;;==;;:;;;:-----=---=============:-:;;;:;;=,,,,,,,,=:=====-:======-
-......,;//////;:=======-......,-......,-,,,,,,-=,,,,,,=://////;+$$$$$$/-,,,,,,,
..       :;;;;;;;=-------,      .,       - .... ,-......,;;;;;;;=+XXXXXX;,       
..       :;;;;;;:=-------,      .,      .-  .   ,-......,/;;;;;;://////:;//////:+$$$$$$/,      .///////:;////;//
/;;;;;;:/HXXXXH//$$$$$$+=-:-:::-;//////:;//////:+$$$$$$+.      .///////:;//////;
/;;;;;;-/HXXXXX//$$$$$$+=::::::-/;/////:;//////:+$$$$$$+.      .///////:;///;//;
/;;;;;;:/HXXXXH//$$$$$$+::-::-:=;/;;;;/:;//////:+$$$$$$+.      .///////:;/;////;
:======--;;;;;;==;;:;;;:-----=---=============:-:;;;:;;=,,,,,,,,=:=====-:======-
-......,;//////;:=======-......,-......,-,,,,,,-=,,,,,,=://////;+$$$$$$/-,,,,,,,
..       :;;;;;;;=-------,      .,       - .... ,-......,;;;;;;;=+XXXXXX;,       
..       :;;;;;;:=-------,      .,      .-  .   ,-......,/;;;;;;=;/;;;;/:;//////:+$$$$$$+.      .///////:;/;////;
:======--;;;;;;==;;:;;;:-----=---=============:-:;;;:;;=,,,,,,,,=:=====-:======-
-......,;//////;:=======-......,-......,-,,,,,,-=,,,,,,=://////;+$$$$$$/-,,,,,,,
..       :;;;;;;;=-------,      .,       - .... ,-......,;;;;;;;=+XXXXXX;,       
..       :;;;;;;:=-------,      .,      .-  .   ,-......,/;;;;;;
/;;;;;;-/HXXXXX//$$$$$$+=::::::-/;/////:;//////:+$$$$$$+.      .///////:;///;//;
/;;;;;;:/HXXXXH//$$$$$$+::-::-:=;/;;;;/:;//////:+$$$$$$+.      .///////:;/;////;
:======--;;;;;;==;;:;;;:-----=---=============:-:;;;:;;=,,,,,,,,=:=====-:======-
-......,;//////;:=======-......,-......,-,,,,,,-=,,,,,,=://////;+$$$$$$/-,,,,,,,
..       :;;;;;;;=-------,      .,       - .... ,-......,;;;;;;;=+XXXXXX;,       
..       :;;;;;;:=-------,      .,      .-  .   ,-......,/;;;;;;--==-------::====:=---=--=-=========----=-==-------
/;;;;;;:/$X$$$X//$$$$$$+:::::::=://////:;//////:+$$$$$$/,      .///////:;////;//
/;;;;;;:/HXXXXH//$$$$$$+=-:-:::-;//////:;//////:+$$$$$$+.      .///////:;//////;
/;;;;;;-/HXXXXX//$$$$$$+=::::::-/;/////:;//////:+$$$$$$+.      .///////:;///;//;
/;;;;;;:/HXXXXH//$$$$$$+::-::-:=;/;;;;/:;//////:+$$$$$$+.      .///////:;/;////;
:======--;;;;;;==;;:;;;:-----=---=============:-:;;;:;;=,,,,,,,,=:=====-:======-
-......,;//////;:=======-......,-......,-,,,,,,-=,,,,,,=://////;+$$$$$$/-,,,,,,,
..       :;;;;;;;=-------,      .,       - .... ,-......,;;;;;;;=+XXXXXX;,       
..       :;;;;;;:=-------,      .,      .-  .   ,-......,/;;;;;;