@@@@@@@' @@@@@@' ` + ;
@@@@@@@@ @@@@@@' @@` @@ ,@;
@@@@@@@@,@@@@@@' ;@@@` '@@@ @@@;
@@@@@@@@@@@@@@@' @@@@@` @@@@@ .@@@@;
@@@@@@@@@@@@@@@' ##########################' ############' @@@@@@@######### ############## @@@@@@###@@@@@@@##' +############# ############
@@@@@@@@@@@@@@@' #@@@@@@@@@@@@@@@@@@@@@@@@@@@' @@@@@@@@@@@@@' @@@@@@@@@@@@@@@@ #@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@' +@@@@@@@@@@@@@@ @@@@@@@@@@@@@
@@@@@@@@@@@@@@@'#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'@@@@@@@@@@@@@@'@@@@@@@@@@@@@@@@#@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@'#@@@@@@#+@@@@@@@ @@@@@@@@@@@@@@
@@@@@@@@@@@@@@@'@@@@@@@+'@@@@@@@@@@@@@@@@@@@@@+@@@@@@@@@@@@@@+@@@@@@@@@@@@@@@@@@@@@@@+'@@@@@@@ @@@@@@@@@@@@@@@@@@'@@@@@@@+;@@@@@@@ @@@@@@@@@@@@@@
@@@@@@@@@@@@@@@'@@@@@@@+;@@@@@@@@@@@@@@;@@@@@@+@@@@@@@;@@@@@@+@@@@@@@@@@@@@@@@@@@@@@@+;@@@@@@@ @@@@@@@@@@@@@@@@@@'@@@@@@@+;@@@@@@@ @@@@@@;@@@@@@@
@@@@@@@@@@@@@@@'@@@@@@@+;@@@@@@@@@@@@@@ @@@@@@+@@@@@@@ @@@@@@+@@@@@@@@@@@@@@@@@@@@@@@+;@@@@@@@ @@@@@@'''@@@@@@+'',@@@@@@@+;@@@@@@@ @@@@@@ @@@@@@@
@@@@@@@@@@@@@@@'@@@@@@@+;@@@@@@@@@@@@@@ @@@@@@+@@@@@@@ @@@@@@+@@@@@@@`@@@@@@@@@@@@@@@+;@@@@@@@ @@@@@@ @@@@@@; @@@@@@@#+@@@@@@' @@@@@@ @@@@@@@
@@@@@@@@@@@@@@@'@@@@@@@+;@@@@@@@@@@@@@@ ;;;;;;,@@@@@@@ ;;;;;;,@@@@@@@`@@@@@@@@@@@@@@@+;@@@@@@@ @@@@@@ @@@@@@; @@@@@@@@@@@@@` + @@@@@@ @@@@@@@
@@@@@@@@@@@@@@@'@@@@@@@+;@@@@@@@@@@@@@@ @@@@@@@ @@@@@@@`@@@@@@@@@@@@@@@+;@@@@@@@ @@@@@@ @@@@@@; @@@@@@@@@@+ `@@@ @@@@@@ @@@@@@@
@@@@@@@@@@@@@@@'@@@@@@@+;@@@@@@@@@@@@@@ @@@@@@@ @@@@@@@,@@@@@@@@@@@@@@@+;@@@@@@@ @@@@@@@@@@@@@@@@@@'@@@@@@@@. '@@@@@ @@@@@@ @@@@@@@
@@@@@@@@@@@@@@@'@@@@@@@+;@@@@@@@@@@@@@@ @@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@+;@@@@@@@ @@@@@@@@@@@@@@@@@@'@@@@@@@+;@@@@@@@ @@@@@@ @@@@@@@
@@@@@@@.@@@@@@@'@@@@@@@#+@@@@@@@@@@@@@@ @@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@#+@@@@@@@ @@@@@@@@@@@@@@@@@@'@@@@@@@+;@@@@@@@ @@@@@@ @@@@@@@
@@@@@@@.@@@@@@@;@@@@@@@@@@@@@@@#@@@@@@@ @@@@@@@ #@@@@@@@@@@@@@@#@@@@@@@@@@@@@@@# @@@@@@@@@#@@@@@@@@'@@@@@@@#+@@@@@@# @@@@@@ @@@@@@@
@@@@@@@.;@@@@@; @@@@@@@@@@@@@@@ @@@@@@@ @@@@@@@ #@@@@@@@@@@@@@ @@@@@@@@@@@@@@@ `@@@@@@@@ #@@@@@@@'@@@@@@@@@@@@@@@ @@@@@@ @@@@@@@
@@@@@@@. @@@@; @@@@@@@@@@@@@@ @@@@@@@ @@@@@@@ @@@@@@@@@@@@ @@@@@@@@@@@@@@ .@@@@@@@ @@@@@@@'@@@@@@@@@@@@@@ @@@@@@ @@@@@@@
.,::::.
:::::::.
.::::::::`
,:::::::,
::::::::
.::::::::,`
::::::::::.
:::::::::::.
::::::::::::`
`:::::::::::::
.::::::::::::::
:::::::::::::::,
`:::::::::::::::::..
::::::::::::::::::::.
.:::::::::::::::::::::`
,:, :::::::::::::::::::::::,.`
`::::, ,:::::::::::::::::::::::::::,`
,::::::,:::,` `:::::::::::::::::::::::::::::.
,:::::::::::::,` `::::::::::::::::::::::::::::::,
,::::::::::::::::. `::::::::::::::::::::::::::::::::.
,::::::::::::::::::.::::::::::::::::::::::::::::::::::.
,::::::::::::::::::::::::::::::::::::::::::::::::::::::`
.:::::::::::::::::::::::::::::::::::::::::::::::::::::::
.:::::::::::::::::::::::::::::::::::::::::::::::::::::::,
`::::::::::::::::::::::::::::::::::::::::::::::::::::::::.
`:::::::::::::::::::::::::::::::::::::::::::::::::::::::::.
`::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,
.:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,
,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.
`,` ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::`
`:::. `::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
`::::::` ,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,
`::::::::.`:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,
`::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,
`::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
.:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::`
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,
`:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
`:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
`::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::`
,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.
,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
`::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::`
`,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::`
`:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::`
,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,
`::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::`
`:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,
,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.
,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::`
,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::`
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,
,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
.:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
.::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
`:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
.::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
.:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,
.:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::`
,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,
.:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.
`:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::`
`:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,
`::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
`::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
.:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,
`:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::`
`:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
.:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::`
.::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,
`::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
`:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.
`::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,
`:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,
`.,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::`
,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::`::::::::::::::.
,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::, ,::::,.`````
,:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::. ` ```
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::,
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
,::::::::::::::::::::::::::::::::::::::::::::::::::::::::
,::::::::::::::::::::::::::::::::::::::::::::::::::::::.
.::::::::::::::::::::::::::::::::::::::::::::::::::`
`.:::::::::::::::::::::::::::::::::::::::::::::::
.:::::::::::::::::::::::::::::::::::::::::::::
`:::::::::::::::::::::::::::::::::::::::,:::.
`::::::::::::::::::::::::::::::::::::: .,
`.::::::::::::::::::::::::::::::::::,
.:::::::::::::,.:::::::::::::::::::`
`,::::::::::: .:::::::::::::::::,
`:::::::::. `,:::::::::::::::
.::::::: `.::::::::::::
`:::::` `.::::::::
,:::, `,::::
`::, `::,
.` `