:: ::: ::: ::: ::: ::: ::: ::: ::: :::```````````````;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;````````````````````````````````````
: :: ::: ::: ::: ::: ::: ::: ::: ::::`````````````;;;;;;<;<;<;<;<;<;<;<;<;<;<;<;<<<<;<;<;;;;;;;````````````````````````````````
: : :: : : :: : :: : : :: : :: : :::``````````;;;;;<;<;<;;;;;;;;;;;;;;;;;;<;<<<<<<<<<<<<;<<;<;;;;;;:```````````````````````````
::::: ::::: :: :: ::::: :: :: ::::``````````;;;;<;<;;;;;;;<;<;<;<;<;<;<<<<<<<;<<v=})vv<<<<<<<;<;<;;;;``````````````````````````
: : :: : :: ::: :: : :: ::: :: :````````;;;;<;<;;;;;<;;<;;;;;;;;;;;<<<;<<;<;v<vv}()=v}}v<;<;<<<;;<;<;;;:``````````````````````
:: ::: :: : :: ::: :: : :: ::: ````````;;;<;<;;;;;;<;;;<;;;<;;<;<;<<<;<<<;<<<v<vv==.}=~<=<<<<<;<<<;;;;;;;;`````````````````````
: :: :: ::::: :: ::: :::: :: ::``````;;;<;;;;;;<;<;;;<;;;;<;;<;;<<<<;<<;<<<<v<vv===}`<)C=vv<<;<<;<<;<;<;<;;;:``````````````````
: ::: :: : : :: :: ::: : :: :::`````;;;<;;;<;;<;;;;<;;;;<;;;;;<<<;<;<<<<<<<v<vv}==(<x;v==vv<v<<<<<;<<;;;;;;;;;:````````````````
::: :: :::: :: :: :: ::::: :::````;;<;<;;;<;;;;;;<;;;;<;;;<;<<<;<<<<<<;<<<vvvv}('<<; ::v~{}v<v<<<;<<;<;<;<;<;;;````````````````
: :: :: : :: ::::: :: : ::::```;;;<;;;;;<;;;<;<;;;;<;;;<;<<<<<<<;<;<<<vvvvvv==v/`: :`l=vv<vv<v<<<<<;;;;;;<;;```````````````
::: :: :: :: :: : :: :: :: ::``;;;<;;;;<;;;;<;;;;<;<;;<;<<;<;<;<;<<<v<vvvvv===C<`: :.===v}vv<v<v<;<<;<;;<;;;;;:````````````
: :: :: ::: :::: :: :: :: ::;:;;;<;;;<;;;<;;;;<;;;;;;;<<;<<<<<<<<<vvv}=}======}v:. :;=====vvvv}vvv<<<;;<;;;<;;;````````````
: : :: :: ::: : :: :: :: ::``;;<;;;;<;;<;;;<;<;;<;<;<<<;<<;<<<<<<vv()(\;==}<`<<;;<; ;;;`vvv;Y=====(=v<<;;;;;<;;<;;:``````````
::::: :: :: :: :: :: :: :::`;;<;;<;<;;;;;<;;;;;;;;;<<;<<<<<v<<<vvv=C(;<;;``: ` ~::`:<}}~>}<)vv<<<;<;;;;;;;;``````````
: : ::::: :: :: ::::: :::`;;<;;;;;;;;<;;;;<;;<;<<<<;<<<<v<v<vvvv}==v`~ :` : >;`:;`<<vv<<;;;<;<;<;;;:````````
:: ::: : : : :: :: : ::: `;;;;;;<;<;;<;;<;<;;<;<<<<<vv<vv<v<vvvv}===v<:. ~ :<v=vv<;<;<;;;;;;<;`````````
: :: :: :::::: :::: :: ::`;;<;<;;;;;<;;;;;;<<;<<<v<v<<v<v<vvvvv==~<;``` ::)==vv<<<;;;;<;;<;;;````````
: ::: ::: : : :: : :: :::;;<;;;;<;<;;;<;<<<<<v==vvvvvvvvvvv}}====<\ :: \~===v<<<<;<;;;<;;;;;```````
::: :: : ::: :: :::: :: ;;;;;<;;;<;<<<<<<<<vv}v:C=====>=========}\;. ~ <v'=v<<<;;;<;;;;<;;```````
: :: ::: : :: :: : :: :;;<;<;;<<<<;<;<<<<vvv=>)vv}==v<v==}====}<. : >(}v<<;<;<;;;<;;;<```````
::: :: : :::: :::: :: :`;<;;<<<<<;<<<<<v<v<v}==v;;:v;``:`:`}}}}vl x=}v<<<<;;;;<;;<;;;``````
: :: ::::: : :: : :: ::;;;<<<;<;<<<<<<v<v<v}====<< ``: :`:;<<<</ \`~=v<<;<;<;<;;;;;;<:`````
: : :: : :: :: :::: :: ;<<<;<<<<<;<<<v<v<v}===<~;.: :;;:( ;}=<<<<<<;;;;;<;<;;;`````
::::: ::: ::: :: : ::::;<<;<<;<;<<v<vvvv=>}C=v<;~ :< }=v<<<;<;;<;;<;;;;<``````
: : :: :: : :::: :: ::<<;<<<<<<vvvv}v=}==.v``;. < :=vvv<<<<<;;;<;;;<;;;`````
:: ::: :: :::: : :: ::`<<vvvvv\}}}=}====}v`.` \( :;C}vv<<<;<;<;<;;;<;;;;;:```
: :: ::: :: : :::: :: :}>1<>~~`}?}(~>~`'` `: ::vC=}vv<<<<<<;;;;;<;;;<;`````
: ::: : :: :::: : :::::vvv}}==:===(CoCC;v>;. ;. `V=v}v<<<;<;<;<;;;;;<;;;````
::: :: :: :: : :::: : ;<<<<<<<vvvv}}}==CC=<.`:`( : )=vv<<<<<<;;;;<;<;;;;`````
: :: :: :::: :: : ::::;<<<<<<<<<vvvvvv}=(;=xv<: :< :Yvv<<<<;<;<;<;;;;<;;`````
::: :: ::: : :: ::: : :;<<;<<;<;<<<v<vvvv=C===<;~. . ;. :v=vv<<<<<;;;;;;<;;;;`````
: :: ::: :: :: :: ::: :;;;<<;<<<<;<<v<v<<vv}==}v<;: :.;;<;( :`}v<<;<;;;<;<;;;<;``````
: : :: :: ::: :::: : ::`;<;<<<<;<<<<<<v<v<vv=}==<`:;;'` ::<:)}vv: '}C=v<<<<;<;;;;;<;;;;`````
::::: :: :: ::: : ::: ::;;;;;;<<<;<;<<<<v<vvv==`;v<vvv;;v(x=C==v}; '.}=<<<;<;;;<;<;;;<;:`````
: : :: :: :: :: :: ::::;;<;<;;;;<<<<;<<<<v<v=>:o====x(CCC====C=>:`. ::v'}v<<<;;<;;;;;<;;:;`````
:: ::: :: :: :: :: :: : `;;;;;<;<;;;;<<;<<<<v}}}=}}}===}}}}=}==C=v; | ==(=v<<;<;;;<;<;;;;;:`````
: :: ::: ::::: :: :: ::::;;<;<;;;;;<;;;;<;<<<<vvvvvv<<<vvvvvv}}==`(.:. :\}C=}vv<<;;;<;;;;;<;````````
: ::: : :: : ::: ::::: :::;;;;;;<;;;;<;;;;;;;<<<<<v<vv<v<<vvvvvv==xxv<`. :<}}vv<<;<;<;;;<;;;;````````
::: :: :: ::: : :: : : : ``;<;<;;;<;<;;<;<;;<;;;<<<<<<v<v<v<vvvvv}C=};: : .~ :`v\vv<<<;;;;<;;;<;:````````
: :: :: :: :: :: ::: ::::`;;;;;<;;;;;;;;;;<;;;<;;<;<<<<<v<v<<vvv}==<:};::;: . : :;v<`;<;<=v<<<;;;<;;;<;;:`````````
::: :: ::: :: :: :: ::: : :`;;<;;;<;<;<;<;;;;;<;;;;<<;<<<;<<<v<vvv}=<;\:;=v< ;::`;; ;:::;;<;)C===C>}v<<<;;;<;;<;;;```````````
: :: ::: ::: :: :::: : ::::``;;;<;;;;;;;;;<;<;;;;<;;;<<;<<<<<<<<<vvv)=x_o==x}=v<`` ;}=C=xC=}}}=(=<<<;;<;;;;;;;;```````````
: : :: :: : :: :: : :::: : `:`;;;;<;<;<;<;;;;;<;<;;<;;;<<;<;<;<<<<<<vv}}v}=====<: :;=C==v}vvvvvv<<<<;;;;<;<;;;:```````````
::::: :: :::: :::: :: : ::::``:;;;;;;;;;;;<;<;;;;;;;;<;;;<<<<<<;<;<<<<vvvvvv===v< ::==}vvv<v<v<<;<;;;<;<;;;;``````````````
: : :: :: : :: : :: ::: : :::;:`;<;<;;<;;;;;;<;<;<;<;;;;;;<;<;<<<<;<<<<vvvvv}(<:<.. :;`l}vv<v<<<<<;<<;;<;;;;;;:``````````````
:: ::: :: :::: :::: :: :::: ::`````;;;;;;<;<;;;;;;;;;;;<;<;;;<<<<;<<<<;<<<<v<v=C_v(<;:;=C=v<v<<<<<<;<<;;<;;;<;`````````````````
: :: ::: :: : :: : :::: : ::: ``````;;<;<;;;;<;<;<;<;;<;;;;;<;;<;<<;<;<<<<<v<vvv=C=v;<vC=vv<<<<<<;<<;;;;;;;;`:`````````````````
: ::: : :::: :: :::: : ::: : :::``````;;;;;<;;;;;;;;;<;;;<;<;;;;<;<<<<<<;<<<v<vvv==><;;}}v<<<<<;<<<;;<;<;;;;```````````````````
::: :: :: : :: :: : ::: : :::: :````````;;<;;;<;<;;<;;;;<;;;;;<;;;<;<;<;<<<;<v<<v=>;}CC(=<<<<;<<;;;;;;;;;`;:```````````````````
: :: :: :::: :::: :: ::::: : :::`````````;;;<;;;;<;;<;;;;;<;;;;<;;;;<<<<;<<<<<vv=(C}vvv<<<<;<<;;<;;<;;`:``````````````````````
::: :: ::: : :: : :: :: : : ::: :::`````````;;;;<;;;;;;<;<;;;<;<;;<;;;;;;<<;<<;<vv=)v<<<<<<;<;;;<;;;`:`````````````````````````
: :: ::: :: :: :::: :: :: ::: ::: :````````:`:`;;;;<;<;;;;;<;;;;;;;;<;<;;;;;<;<;<<<<;<;<;;;;;;<;`:;:```````````````````````````
: : :: :: ::: :: : :::: ::: :: : ::::```````````:``;;;;<;<;;;<;<;<;<;;;;<;`:::::::::::::::::`:: ::::::: ::: ::: ::: ::: ::: :::