.:;:... ............;xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+xxx++++;;;;;;::::::::::::::::::::::;;;;;;;;;++++xxxxxxXXXXXXXXXXx+;;::::::::::
. .;;......................;xxxXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+++xx+++++;;;;:::::::::::::::;;;+;;;;;;;+++xxxxxxxXXXXXXXXxx;:::::::::::::::::
. . .:;................. :+xxxxXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXX$&&&$$X+++;;::::::;;;;++;;++;;+++xxxxxxxxxxxXXXXx+:::::::::::::::::::::::
.::.. ........ ..++++xXXXXXXXXXXXXXXXXXXXXXXXx+xxXX$&&&&&&&&&&&&Xx+;;;++++;+++;++++xxxxxxxxxxxxxxx+:..::::::::::::::::::::::::;
. . ...;: ..... ......xxxxXXXXXxXXXXXXXXXXXXXXXxx+xX$$&&&&&&&&&&&&&&&&&$X+++++++x+xxxxxxxxxxxxxx+;:..........:::::::::::::::::;;;;;
. .;. .........;xxxXXXXXXXXXXXXXXXXXXXXxx+xXXX$&&&&&&&&&&&&&&&&&&&$XxxxxxXxxxxxxxXx++;:...........:::::::::::::::::::;;;;;;;
...:. . .;.. ..........:xxxXXXXXXXXXXXXXXXxxXXx++xXxxXX$$&&&&&&&&&&&&&&&&&&&$XXXXXXxXx+;:............::::::::::::::::::::;;::::;;;;;
... .;;+;;;: .:. . .....+xxXXXXXXXXXXXXxxxxxXXxX++++++xxXXX$$$&&&&&&&&&&&&&&&$XXX+;:...........::::::::::::::::::::::::::::;;;;;;;;;
. :+++++++++;;;. .:. . .....:xxxXXXXXXXXXXXxxxxx$$X++;+++++xxxxxxxxX$$$$&&&&&&&&&&$;..........::::::::::::::::::::::::::::::::;;;;;;;;;+
.;+++++;::::;+xx+;;:. ::. ......+xxXXXXxxXXXxxx++xXXXX++++++++++++++++++xxX$$$&&&&&&&&$+:..::::::::::::::::::::::::::::::::::::;;;;;+++;;;;
. .;;:......::..:;+xx+;;:. .:... ..:xxXXXXXXXXxxxxxxXX;+xx+++++++++++++++++++xxxXX$&&&&&&$Xx;;;;::::::::::::::::::::::::::::;;;;;;;;;;;;+;++++
++:. ..... ...:::..:+xx+;::. .;. ..xxxXXXxxxxxxxxXXX:..:;++++++++++++++++++++++xxX&&&&&&&$Xx+;;;;:::::::::::::::::::::;;;+;;;;;;;;;;++++xxxxx
++++++:. ...::::..;xxx+;;: .:: ..;xxXXXXxxxxx+xX$x..::;+xx++++xxxxx+++++++++++xX$&&&&&&&$Xx;;;;;;;::::::::::::;;;;+;;;;;;;;;+++xxxxxxxxxxxx
++xx+++xx;: ...:::::.;xxx+::.+. .:XxXXXXxxxx+X$$$::+x$$$$Xx+++xX$&&&&$Xxx+++++xX$&&&&&&&&$x+;;;;;;;;;;;;;;;+++;;;;;;;;++xxxxxxxxxxxxx+;;::;
xxxxxxxx++xx+;. ..:::::.:+xx:.;. ..+xxXXxxx+xX$$&&&&&&&&$XXXXxXX$&&&&&&&&&&&Xxx+x$&&&&&&&&&$x+;;;;;;;;++++;;;;+++++xxxxxxxxxxxxx+;:::::::::;
;+xxxxxxxxxxxxx+;.. ..::::::;;.;. .:xxXXxxx$$$&&$xxxxX$&&&&&&&&&&&&$xx+X$X&&$&&XX$&&&&&&&&&$X++++++++;+++++++xxxxxxxxxxx++;;::::::::::;;;;;;
:..:;+xxxxxxxxxxxx++:. ...::::..: .xxxXxxX$&&&&$xx++x$&$&&+xX&&$&$$$XXX$$X$&$X$$&&&&&&&&&&$Xx++++++xxxxxxxxxxxxxx+;;:::::::::::+;::::::::::
:::::..:+xxxxxxxxxxxxx+;. ...:..; .;xxXxxX$&&&&$Xxxx$&&&&x+++$&$$&&&&&$$$X&&XXX$&&&&&&&&&&&$Xxxxxxxxxxxxxxx+;::::::::::::::::::;+::::::::::
:::::::::..:xxXXXxXXxxx+xx+:. ...:. . .:xxxxxX$&&&&XxxX$$$&&x;+++X&$$&&&&&$&&&&XXxxX$&&&&&&&&&&$$XXXxxxxx+;:::::::::::+:::::::::::::+;;:::;;;++
.::::::::::::.:+xxXXXxXXXx++x+:. .: .xxxXXX$$&&&Xx+;xxX$+:+++++X&XXxxXXX$&&Xxx+++x$&&&&&&&&&&$Xx+;;::::::::::::::::;;::::::::::::;X+++;;++++
.....:::::::::::..:+xxXXXXXXxxx+:;. .: .++xxxX$$&&$$XxxX$$+.:++++++X&&$$$$&&Xxx++++++$&&&&&&&&&&&$X+;;;;;;:::::::::::::+:::::;;;+++;++X++xxxxxx
.......:::::::::::::;+xXXXXXX+:+x+.:. .+xxX$$X$&&x:.:;;+x;xxxXX$$xxX$XXXxxx++++++++x$&&&&&&&&&&&&&X+;;;;:::::::::::::;;+;;;;++++xxxxX&&Xxxxxxx
. .....:::::::::::.:;+xX++xxxx:.. .;xXX$$$X$$x...:+XX;Xxx$$$$$XXXXXxx++;;;+++++x$&&&&&&&&&&&&&$x+;;;;;;;;;;;;;;;;++xxxxxxxxXXXxx$X+X+;;:::
.. . .......:::::::::;::+:+XXXX;.. :+xxxxX$$$x..:;xx:+$&&&&&&Xxxxxxx+++;;;;+++x$&&&&&&&&&&&&&&&Xx++++++++++++xxxxxxX$$xxxxXx+;::++:x;:::::
.. . ... . .......:;:::;;+;:...;x+.: :+xxxX$$X$+.::+x+X&&&&&&&&&$XXxXXx+++;;;+++x$&&&&&&&&&&&&&$XXxxxxxxxxXXxxxxxxxxx$$Xx:..::::::::::::;;;;
. .. ..... ........:;;:::::::...: . :++xxxXXXX;.:;x$$&&&$$$&&&&&&&&&$xx++++++++X$&$$$$$&&&&&$X$XxX$XXXXXXXxxx++;:...;:.+:::::;;;;;;;;;;;;;;
.. . . ....::..::::::::.: . .+xxxxxxxx+::;X$$$$XX$$$&&&&&&&&$xx+++++++xX$$x+xX&&&&&&$XXXXX$Xxx+;;:::::::;;;;++;;;;;;;;;;;;;;;+++++;
. .... ..;.......::::.: . ..+++++++xXx:::;++;;;xXX$XXXXXXXXXxxx+++++xx$&&XX&&&&&&&$XxxxXXX+;;;;+++++++++++;;;;;;;;;;;;+++;;;++++++
. ...;... ......... .++xx+++xxx:::;;::;+$&&&&$Xxxxxxxxxxxx++xxX&&&&&&&&&&&$XxxxxXXXXxXXxxxxx++++++++++++++++++++;;+++++++++
;.... . ... . . .;+xxx+++xx;::::::;+xXXXXxxxxxxxxxxxxXXxXX$$$&&&&&&$&&xxxxX$$XxXXxXXXXxxxxxxxx+++++++++++++++++++++++++
.:.. .... . .. .;+xxxxx++++;:::::;;++xxxxxx+xxxxxxXXX$$$$$X$&&&&&&$Xx+xxX$$x++;xxxXXXXXxxxxxxx+++++++++++xXxxXXXXXXXXX
.. . ... .. . .:::;+x++++x+;+x++xxxxxXX$XXX$$$$X$$$$&&$$XX&&&&&&Xx++xxX&+...:;+xXXXXXxxxxxx+++++++xxxxxXX+++++;++++x
.. . . .::::;++++++xxxXX$$$$$$&&&&&&&&&&&$$$&&$$XxX&&&&&&Xx++xx$$.....:;xxXXXXXXXxxxxx++xxx+;;;;++;;::::::;;;
.. .:.::::::;++xXXX$&&&&&&&&&&&&&&&&$XX$$$$$X+x$&&&&&&X++xx$X......:+xXXXXXXxxxxxxxx+;;;;;;;;;+;;;;;;;;;;
.. .:::::::::::;+xxx$&&&&&&&&&&&&&&$$$$$$$$X+++X&&&&$$X++xx$x .....;xXX$XXXxxxxXX+;+;;;;+++;;;;;;;;;;;;;
.. .:.::::::::::;xxx+X$&&&&&&&&&&&&&&&$$$Xx+++++X&&Xx++++xx$+........+XX$XXXxxXXx+++++++++++;;;;;;;;;;;;;
.. ..:::::::::::::;;+xX$&&&&&&&&&&&&$$XXxx+++++++xxxxxx+xx$; ..;xXXXXxxxXx+++++x+;;;::;;;;;;;;;;;;+
.. . ..:::::::::::::::;++x$$&&&&&&&&$$$Xxxx+++++xxx$$&$$$$$$$; ..+XXXxxxx++++++;::::;;;+++++++++x++x
. :.::::::::::;:::::;;+xXX$$$$$$$XXXxxx+++++xX$&&&&&&&&&&$$$$$$XXxx+xXXXxxxx++xx;::::;;;+xx+xxXxx++++++
. .:::::::::::::::::::;+xxX$$$$XXXxxxxx+xxx$&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$XXXxxx;;::;;+xxxXXx+;::..::::
...... .. ...::::::::::::::.::;;+xX$$XXXxxxxxxxxx$&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$$$$$X++;;;;+xXXX+;::;xXXXXXXX
...... .. . ...::::::::::::..:.:::;+xXXxxxxxxxxxx$&&&&&&&&&&&&&&&&&$&&$$$$$$$$&&$$$$$$$$$$Xx+;+XXXx;::x$$$X$XXXXX
....... .. ...::::::::::.:.....::;;+xx+++++xxX$&$&&&&&&&&&&$&&&$&$$&&$$$$&&$&&$$&&&$$$&$$$$XxXXx+;:x$$$$$$$$$$X$
........ ....:::::::......::.:::;+++;;;;xX&$$$$$&&&$$&&&$&&&$$&$$&&$$$$&&$&$&&&&&&$$$&$$$$XX+;:;$&&&$$$$$$XXXX
... . .... ....::::.........:+:.::;;;::;x$$$$$$$$$$$$$&&$$$&&$$$$$$&&$$$&&&$$&&&&&&&&$$$$$$$XXx;;X&$&&&$$$$$$$$X
...... ..... ....:::::......:++++:.:;+x$$$$$XX$$$$$$$$$$$$$X&&&$$$$$$&&$$$&&$$&&&&&&&&&$$$$$$$$XX++X$$X$&$$$$$$$$$
........ . . ......::::..:x++++xxXXXX$$$$XXX$$$$$$$XX$$$$X$&&&$$$$$$&&&$$&&$$&&&&&&&&&$$$$$$$$$XX+x$$xX$&&&$$$$$$
........... ......... . . .......::.:+X+++xxxxxXXXXXXXXXX$$$$$$XX$$$$XX$&&$$$$$$X&&&$&&&$&&&&&&&&&&$$$$$$$$$$Xx+$X+xX&$$&&&$$$
............... . .......:;+$X++++xxxxxxXXXXXXXXXX$$$$XXX$$$$X$&&$$$$$$$X&&&$&&$$&&&&&&&&&&$$$$$$$$$$$Xxx+;+X&XX&&&&&$
.. ... . . .....:+xx$$++++xxxxxXxxXXXXXXXX$$&$XXX$$$$XX$&&$$$$$$$X$&&$&&$$&&&&&&&&&&$$$$$$$$$$$$Xx;:;x$xx$$$&&$
. . .... ... . ...;XXXX$&x+xx+xXxxXXxxXXXXXXXX$&&$XXX$$$$XX&&&$$$$$$XX$&&&&&$$&&&&&&&&&&$$$$$$$$$$$$XX;:;+X;+$Xx$$&
.. . ...... . . .:x$$XX$&$xxXxxXXxXXxxXXXXXXXX$&&$XXX$$$$XX$&&$$$$$$$$X$&&&$&$&&&&&&&&&&&$$$$&$$X$$$$$XX;:;x:;X;;Xx$
. . . .:+X&$XX&&xxxXxXXXXXXxxXXXXXxX$&&&$XXX$$$$XX$&&$$$$$$$$X$&&&$&$&&&&&&&&&&&$$$$&&$$X$$$$$Xx;;+::+;:+;$
: ;xx+++:. . xX$&$X$&$xxXXxXXXX$XxxXXXXXx$&&&&$XX$$$$XXX$&&$$$$$$$$X$&&&&&&&&&&&&&&&&&&$$$$&&$XX$$$$$Xx;+::+;:::+
+: .xxxxXx++;. . :xX&&$$$&XxxXXX$XXX$XxxXX$XxX$&&&$XXX$$$$XX$&&&$$$$$$$$XX&&&&&&&&&&&&&&&&&$X$$$$&$$XX$$$$$Xxxx:;;.:.;
+: +xXxXXxx++:. . . ;xX&&$&$$xXXXX$$XXX$$xxX$$Xx$&&&&$XX$$$XXXX$&&&$$$$$$$$$X$&&&&&&&&&&&&&&&&$$$$$$&&$XX$$$$$Xxx: .X::.:
;. ....::;;:++. .. ;xX&$&&$XxXXXX$$XXX$$xX$$$xX$&&&&$XX$$$X$XX$&&&$$$$$$&&$$$&&&&&&&&&&&&&&&&$$$$$$$$$$XX$$$$$xx:..; :::
. .xXXxxxx+;;. .. .. +xX&$&$$XxX$X$&$X$X$$xX$$XxX&&&&&$XX$$XX$$$$&&&$$$$$$&&$$$&&&&&&&&&&&&&&&&$$$$$$$&&$XXX$$$$Xx: : . .
.......:++xxxx+++;..... .. +xX$$&XXXxX$X$&$X$$$XxX$$Xx$&&&&&$XX$$$$$X$$&&&$$$$&&&&&$$&&&&&&&&&&&&&&&&$$$$$$$$&&$XXX$$$Xx; :...
x: .xxx+++x++;;;:. . ... . +xXX&&XXXXX$X$&$$$$$XxX$$Xx$&&&&&$XX$$$$$$$$&&&&$&&&&&&&$$&&&&&&&&&&&&&&&&$$$$$$$&&&$XXX$$$$X+ .. .
+; ;++;++xx++;;: .. .. .+XX$&&XXXXX$X&&$$$$$XxX$$xX$&&&&&$X$$$$$$$$&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&$$$$$$$$&&&$XXX$$$$x. .. .
+; +x++++++;;+;: .. .. ;xxX$&&XXXXxXX&&$$$$$XxX$$xX$&&&&&&$$$$$$$$$$&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$$$$$$$&&&$XXX$$$$X; .. .
+; :+xxx+;:::;;. .. ... .+xXX$&&$XXXXX$&&$$&$$XxX$$x$&&&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&$$XX$$$$$X..;.;:
;: .:;;;;::::;;: . .. .... . :XxXXX&&$XXXXx$&&&&&$$XxX$Xx$&&&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$X$$$$$$&&$$XX$$$$XxX&&&&
:. :::;;;;;;;;;: . .. .... ..:. . ;XxXXX$&&XXXXX$&&&&&$$XXX$Xx$&&&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$X$$$$$$$&$$XX$$$$$XXXx$X
:. ..:::::;;;;+++++xxxxxXXxxxxxxxx++;;:::....;+; .xXXXXX$&&$XX$X$&&&&&$$XXX$XX$&&&&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XX$$$$&&&$$XX$$$$$X;:;X
$XXXXXXx++;;::... .: ... ;XXXX$$X$&&XXX$$&&&&&$$XXXXXX$&&&&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$XX$$$$$$$&&&$XXX$$$$X+..:
.:... ... .xXXXX$$$$&&$XX$$&&&&&$$XXXXXX$$&&&&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XX$$$$$&&&&$$$Xxx++;+$$$
....:.........................+XXXXX$$$$&&&XX$$&&&&&$$XXXXxX$$&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XX$$$$$$$XXXxx++++;;;;...
..:....:X$Xx++;;:..+. ;xXXXXXx$&&$&&$X$&&&&&&$$XXXXxX$$&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$XXXXXxxx+++++;;;;:..
...:::;;;;;;++;;;;::..;;. . +. . .xXXXXxxX&&&&&$X$&&&&&&$$X$XXxX$$&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$Xxxxxxxxxxxxxx+++++++;;;::
:::::::::;:;+++++;;;;;;;;;;::;:;;:...:...;+. ;: :xXxxX$&&&&$X$$&&&&&$$$XXxxX$&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$Xxx+++xxxxxxxx++++++++;;;:
.++;::;::::.......x; .:: +: :x$$&&&&$$$&&&&&&$$$XXxxX$&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&XXxx++++xxxxxxx++++++++;;;
...........;&x. . :+;++. .. . :; .... ; . :;x$&&&X$$$&&&&&$$$XXxxX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&XXxxx++xxxxxxxxxxxxxx++;;
.... :&X::+xxX++;++: :+ . .: . +. ::;+XX$X$$&&&&&$$$XXXXxX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$XXxxxxxXXxx+++++++++++;;
.&X :;+XX+xXXXx+xx................:.::+xXXX: .:;++XXXX$$$&&&&$$$$XXXxX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$XXXXX+;;;;;::::::::::::
.:&$:+Xx;:........::$...........;+xXXx.+$$$X;x. .:;+xXXXX$$$&&&&$$$XXXXxX$$xxx&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$Xx;;;;;;;;:::.::::::::
.+;+++++x&&X:.::+::+x;xx+;+$++xxXx+X$$$$$$X;XX+;;:; ;: .:;+xX$XX$$&&&&&$$$XXXxxX$$$X&X++&&&&&&&&&$+::;;x&&&&&&&&&&&&&&&&&&&&&&&&&&&&x;;;;;;;++;::::;;;;:::;
::x;..:x&&; .::+X:. xx X ..:$xXX++X+ x+: ;; :; :;++xX$XX$$&&&&&$$$XXXxxXX$$&&$++$&&&&&&+:::;+++;;+X&&&&&&&&&&&&&&&&&&&&&&X+;;;;;;;;++++;::..::;;;;;
;.+x;+$&. :; +X x ;$+;X++;; x+ .;;+x+xXXXXXXXXXXX$$$$$$XX$XXXxxXX$&&&$x+$&&&&X::;;;++++;;;;;+X$&&&&&&&&&&&&&&&$+;;;;;;;+++++++++:::::..::::
::..:+xXX$Xx$&; .; ;$: x. .$X+ ;x:;;XX+xXX$XXXX$$$$$XXX$$$$$$$$$$$$$$$$$$$X+xXxXx+X&&&x;;;;++++++;;;;;;;;+$&&&&&&&$Xx++;;;;;++;;++++++++++;.::::::..:
X$$&&&&&&$. X&+ .+ ;$; +; $+: .+$&$XXXX$XXXXXXXXXXXXX$$$$$$$$$$$$$&&&&&&$$$$$$XXX+X&$+;;;;;;++xx:;;;;++++;++xx;;;;;;;;;;;+;+++++++++++++++;..::::::::
&&&&&&&X+: x&x .+ $: ;; X;: :xxxx+++;;;;;;;++++XXx+;;:;+xX$$&&&&&&&&&&&&&&&&&&&&&&X;;++++;;+Xx.;;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++++++:...::::::
x+:;x.+x. .x&X ; +:..... ... ..::;;;++xxxXXXXXXxx++: ..;X&&&&&&&&&&&&&&&&&&&&&&&&&$x+x$x:;+x;;+++xx++++;;;;;;;;;;;;;;;;;;;;;;;+++++++;....:::::
+xxx++xx. ;$x ..... .: ;X+;:+;;+;;;;x+XXXX$$$$$&&&$$$Xxxx+;:.;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$xx++xx;+Xx++++++++++++;+;;;;;;;;;;;;;+++++++++:....::::