Teniu la necessitat de generar un dibuix fet amb caràcters ASCII a partir d'una imatge? (I qui no la té en els temps que corren!)
Aquí teniu un generador molt currat:
`````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````
`````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````
`````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````
`````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````
`````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````
`````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````
`````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````
`````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````
```````````````````````````````````````````````````````````````````````````````````````````````````......```` ```````````````````````````````````````````````````````````````````````````````````````````````````````````````
``````````````````````````````````````````````````````````````````````````````````````````````..........,,...```````` ```````````````````````````````````````````````````````````````````````````````````````````````````````
```````````````````````````````````````````````````````````````````````````````````````````.............,,,,,.````````````````````````` `````````````````````````````````````````````````````````````````````````````````````
````````````````````````````````````````````````````````````````````````````````````````...............,,,,,:,,.``````````````` ``` ````````````````````````````````````````````````````````````````````````````````````````
`````````````````````````````````````````````````````````````````````````````````````..................,,,::::::..``````````````.,,.`````````````````````````````````````````````````````````````````````````````````````````
````````````````````````````````````````````````````````````````````````````````````............``````...,,,,::::,`` `` ``` `.,;;';.````````````````````````````````````````````````````````````````````````````````````````
```````````````````````````````````````````````````````````````````````````````` ``.............``` ```.,,::,,:,,.``````````,:;;;';.````````````````````````````````````````````````````````````````````````````````````````
``````````````````````````````````````````````````````````````````````````````````.,,,,...........``````.,:;:,,,,,:::,,,..`.,;''''+',````````````````````````````````````````````````````````````````````````````````````````
```````````````````````````````````````````````````````````````````````````````....,:;:,,,..,::;;;;:```.,.:;,,;;;;;;;;::,,,:;;''''+'. ```````````````````````````````````````````````````````````````````````````````````````
```````````````````````````````````````````````````````````````````````````````..,,,:::,...,:;''''';,.,,,.,:::'''''';;;;,,,:'''''++:`````````````````````````````````````````````````````````````````````````````````````````
`````````````````````````````````````````````````````````````````````````````....,,,,:,,,.,:'''+'+'';,,,..,:;''''''''';;:::;''''+#+,`````````````````````````````````````````````````````````````````````````````````````````
````````````````````````````````````````````````````````````````````````````..,,,,,,:;;:,::''''''''''....,,:'''''''';;;;:;;'''''++;.`````````````````````````````````````````````````````````````````````````````````````````
```````````````````````````````````````````````````````````````````````````..,,,::,:;'';,;''++++'+''',...,,,;''+++';::;;;;''''+++',``````````````````````````````````````````````````````````````````````````````````````````
``````````````````````````````````````````````````````````````````````````.,,,,,,,,:;'';:'+++++'+++'',......:;'###+;:::;;''+++++':` `````````````````````````````````````````````````````````````````````````````````````````
`````````````````````````````````````````````````````````````````````````.,,:,,,,,,,:;;;''+++++'++'+:........,;++#+':::;''+++++':.` `````````````````````````````````````````````````````````````````````````````````````````
`````````````````````````````````````````````````````````````````````````.,::,,,,,,,,:;'+''+++++++++,......,..,;;'++';;;'''+++';`````````````````````````````````````````````````````````````````````````````````````````````
````````````````````````````````````````````````````````````````````````.,,,,,,,.,,,.:;'+++++++++++;,.,,,,,:::::;'+++;;'++++':. `````````````````````````````````````````````````````````````````````````````````````````````
```````````````````````````````````````````````````````````````````````.,,,,,,,,,...,:''++++++++##+;:::::::::::::'+##'''++':.````````````````````````````````````````````````````````````````````````````````````````````````
``````````````````````````````````````````````````````````````````````..,,,,,,,.,,..,;'+++++++++++';::,,,,......,:;+++'++';,` ``````````````````````````````````````````````````````````````````````````````````````````````
`````````````````````````````````````````````````````````````````````..,,,,,,,,..,,..:'++++++++++':,..............,:''++#+':,````````````````````````````````````````````````````````````````````````````````````````````````
`````````````````````````````````````````````````````````````````````.,,,,,,.,,......:''+++++++++;,.....`````.....,:'++####':.```````````````````````````````````````````````````````````````````````````````````````````````
````````````````````````````````````````````````````````````````````.,,,,,,..,,.,..,:;''+++++++++':,.............,,;'+######+:. `````````````````````````````````````````````````````````````````````````````````````````````
```````````````````````````````````````````````````````````````````..,,,,,,,,,,.,,::;;'''++++++##';:,...........`.,:'+++++###+:.`````````````````````````````````````````````````````````````````````````````````````````````
```````````````````````````````````````````````````````````````````.,,,,,,,,,,,.,:;':,::'+###++##+;:,..............,:;''++++++';`````````````````````````````````````````````````````````````````````````````````````````````
````````````````````````````````````````````````````````````````` .,,,:,,,,,,,,,;;;:,.,:;'+++####+';,,.............,,:;''+++';;::.```````````````````````````````````````````````````````````````````````````````````````````
``````````````````````````````````````````````````````````````````.,,,:,:,,,,,:';:,,,,,:;'+++++++';:,.....````........,,:;;;;:,,:,.``````````````````````````````````````````````````````````````````````````````````````````
``````````````````````````````````````````````````````````````````,,,:::,::,:;';:,,..,,,;;''''''';:,.....................,,,,,.....` ````````````````````````````````````````````````````````````````````````````````````````
`````````````````````````````````````````````````````````````````.,:::::,:::;';:,,,,..,::;;;;;;;::,..``.`.....``..........,,.......` ````````````````````````````````````````````````````````````````````````````````````````
`````````````````````````````````````````````````````````````````,::::::::;'';,,,,,,..,,:::::::,...........,,......................``````````````````````````````````````````````````````````````````````````````````````````
````````````````````````````````````````````````````````````````.,::;::::;'';,,:,,,,,,,..,,,,,,,,,::::;;;;;;;;;;:::,,,,,,,...........````````````````````````````````````````````````````````````````````````````````````````
````````````````````````````````````````````````````````````````,:::;::;;'':,,:,,,,,,,,,.,,,::;;'''++++##+++++++++''';;;;;;:::,,:,,..````````````````````````````````````````````````````````````````````````````````````````
````````````````````````````````````````````````````````````````::::;;:;+';,,,,,,,:,..,::;;''++++######@@@######++++++''''';:,.``````````````````````````````````````````````````````````````````````````````````````````````
```````````````````````````````````````````````````````````````.:::::;'+';:,,,,,,,,,:;'+'''''+#+#+++''#++####@@@++#++'''';;;:.` `````````````````````````````````````````````````````````````````````````````````````````````
```````````````````````````````````````````````````````````````.:;;;;'''::,,:,,,,,;'++'';;''''+'+'''''++'++++######+++'''';;;,.``````````````````````````````````````````````````````````````````````````````````````````````
```````````````````````````````````````````````````````````````,;;;;'+';:,,,,,::'''+'';;;'''''';';;''''+''''''++++''''++''''';,``````````````````````````````````````````````````````````````````````````````````````````````
``````````````````````````````````````````````````````````````.:;;;''';::,,,:;'+#+'';;;''''';;;;'';'+''+''';;;;;;;;;;;''''''+';.`````````````````````````````````````````````````````````````````````````````````````````````
``````````````````````````````````````````````````````````````.:;;;'+':,,,:;'+++''''';;'+';;;;'''+''+'''''';;;::::;'+';;;''+#+':`````````````````````````````````````````````````````````````````````````````````````````````
``````````````````````````````````````````````````````````````.;;;''';::;;'+#++''''+';;'+;;:;;'''+'+++'+'''';;:::,:;'''';''+#++',````````````````````````````````````````````````````````````````````````````````````````````
``````````````````````````````````````````````````````````````,;'''';:;;#+++++';'';;;''+';;;;'''++++++++++''';:::,,::::;;;'''''';.```````````````````````````````````````````````````````````````````````````````````````````
``````````````````````````````````````````````````````````````,''++';;'+'''''''''';;;'''::;''''''++++'+'++'+'';:,.,:;:,,:;;;;;''',```````````````````````````````````````````````````````````````````````````````````````````
````````````````````````````````````````````````````````` `,.`,''+#++''+'';;'''+';;;;;';,:;'++++++'+++''++''++';:,,:;'';:,;';;::;:.` ````````````````````````````````````````````````````````````````````````````````````````
``````````````````````````````````````````````````````````.:,.,;'++++''';;''''++';;;'''::;;'+++''''++++''++++''';;:::;;;;;';:,``...``````````````````````````````````````````````````````````````````````````````````````````
```````````````````````````````````````````````````````` `,;;,:;'++'';;;;'''''++';:;''';;'''+++''''';:,.,;'+++''';::::;::;'::.. ````````````````````````````````````````````````````````````````````````````````````````````
```````````````````````````````````````````````````````` `:';:;'+#+';;;;'++';''';;::;;:;;'++'++';;;;:,.```,:'++'';:::;';::',.`.``````````````````````````````````````````````````````````````````````````````````````````````
`````````````````````````````````````````````````````````.;';;;'+#+;;;'''++;;;';;;;'';,:;'++'+':,,:,,,..`` `,;'+''';;;'';:;..`,.,.```````````````````````````````````````````````````````````````````````````````````````````
`````````````````````````````````````````````````````````.;'';;''+';;;''''';;;';;;''';;;'++++':.,,,,.,,,..` .;+'';;::;;::;,::;;;:,.`````````````````````````````````````````````````````````````````````````````````````````
```````````````````````````````````````````````````````` .;''';''++''''''';;;'''';;';;''++++';,.,::,::;;::,. `,'+';::;;;;:;;;;;'';;:.````````````````````````````````````````````````````````````````````````````````````````
`````````````````````````````````````````````````````````.'';';''+++++'''''''++''::';;;;+'++',.,:;;;;;';'';:,.:;''';::;;;::;';;';;;;:.```````````````````````````````````````````````````````````````````````````````````````
``````````````````````````````````````````````````````````;'';;;''+##+''+''+++'';;;';::;''++;.,:;;;;;;;;;;;;:::;'+';;::;';;;'''+'';;;:,``````````````````````````````````````````````````````````````````````````````````````
``````````````````````````````````````````````````````````;'';;''''+++''+''''';;;;;'';;''+'+;,,:::;;''''''';;::;'+'';;;;;;;'';'++';;;:,``````````````````````````````````````````````````````````````````````````````````````
``````````````````````````````````````````````````````````;'';;''''++''''''''';;;;;'''''++'';:::::;''''''+'';;;;''';;:::::;'''''+'''';:``````````````````````````````````````````````````````````````````````````````````````
``````````````````````````````````````````````````````````:''';''''++'''''''';;;;;;'';;'++'''::::;;''''''++';;;;'+';;:::;;;''''+++''';:.`````````````````````````````````````````````````````````````````````````````````````
``````````````````````````````````````````````````````````,'+';;'''++''+'''';;'';;;'';;;''''';;:::;''''''++''';;+++'';;:;;;;'+++++''';:.`````````````````````````````````````````````````````````````````````````````````````
``````````````````````````````````````````````````````````,'++;;''''''++++';;;;;;;;''''''''+';;:::;;''+++++''''''+''';;;;;;;'++''+'';::.`````````````````````````````````````````````````````````````````````````````````````
``````````````````````````````````````````````````````````,'++;'''''''++++';;';;;;;''''''''++;;;;;;''++++++++''''+''';;;;:;;'++''''';:,.`````````````````````````````````````````````````````````````````````````````````````
``````````````````````````````````````````````````````````,+++''''''''++++''''';;;;;';;;'''++;;;'''++++++++++';'+++''';;;;;;'+++''''':,``````````````````````````````````````````````````````````````````````````````````````
``````````````````````````````````````````````````````````:++++'''''''+++'''''':;;''';;;'''++''''+++++++++++''++#+''''''';;;;'+++''';:,``````````````````````````````````````````````````````````````````````````````````````
``````````````````````````````````````````````````````````,'++++''''''+++++'''';;;;'';;;'''++'''''+++++++++++++++'''';;;;;;;;''++'';;:, `````````````````````````````````````````````````````````````````````````````````````
``````````````````````````````````````````````````````````.;++'+++''''+++++'''';;'''';;;'''''+''''+++++++++++++++'''';;':;;;;;'++'';;;:``````````````````````````````````````````````````````````````````````````````````````
```````````````````````````````````````````````````````````:++''+++'''+++'''''''''''';;;'''''++'''+'+++++'+++++++''''''';;;;;;'++';;;';``````````````````````````````````````````````````````````````````````````````````````
```````````````````````````````````````````````````````````,'+'''++''''++'++'''''''';;;;'''';''''+'''+++++++++++'''''''''';;;;'''';::';``````````````````````````````````````````````````````````````````````````````````````
`````````````````````````````````````````````````````````` .;+++'++''''+''+++''';;;;;;;;'++';'''+++++++++++#+++''''''''''';;;;;''';::';``````````````````````````````````````````````````````````````````````````````````````
````````````````````````````````````````````````````````````,;++'++''''+''+++''';;;;;;;'''+''''''+++++++++++++'''''''''''';;;;;;'';;;+;``````````````````````````````````````````````````````````````````````````````````````
`````````````````````````````````````````````````````````````:'''++';''++'++'''';;;;;;'';''''''';'++++++++++'''''''''''''''';;;;;;:;;+;``````````````````````````````````````````````````````````````````````````````````````
`````````````````````````````````````````````````````````````.;++'''''''++++'''''''';;;'''''''''''''''++++++++'''''''''''';';;;;;:;:'+:``````````````````````````````````````````````````````````````````````````````````````
``````````````````````````````````````````````````````````````:'''''';'+++++''''''''';'''''''''''''''++++++++''''''''''''''';;;;;;;:'':``````````````````````````````````````````````````````````````````````````````````````
``````````````````````````````````````````````````````````````,'+++''''+++##+++'''''';''''+''''''''''++''''''''''''''''''''';::;;;;;';. `````````````````````````````````````````````````````````````````````````````````````
````````````````````````````````````````````````````````````` .;''+'''''+++#+++'''''''''++++'+++'''''''''''''''''''''''''''';::;;:;'+:```````````````````````````````````````````````````````````````````````````````````````
````````````````````````````````````````````````````````````` `:''''''''+++++++'''''''''''+'''+++'''''''+++'''''''''''''';;';::;;:;;', ``````````````````````````````````````````````````````````````````````````````````````
````````````````````````````````````````````````````````````` `.;'';;'''++++++';'''''''''''';''''''++'''''''''''''''''''''';;;:::;':, ``````````````````````````````````````````````````````````````````````````````````````
````````````````````````````````````````````````````````````````:;''''''++++++';'''''''''''';''''''++''+''''''';'''''''''''';;:::;;.` ```````````````````````````````````````````````````````````````````````````````````````
``````````````````````````````````````````````````````````````` `,;;;;''''+++++''''''''+'''';'+++++++'''++++'''''''''''''''+':::;:,``````````````````````````````````````````````````````````````````````````````````````````
```````````````````````````````````````````````````````````````` .:;'''';'+++++'''''''''''''''++'''''''++'''';'''''''''''''';;::;:: `````````````````````````````````````````````````````````````````````````````````````````
``````````````````````````````````````````````````````````````````.:;'';'''+##+''''''''+'++++''''''''''+'''''''';''''''''''''';;;::``````````````````````````````````````````````````````````````````````````````````````````
````````````````````````````````````````````````````````````````````:''''''##+'+'''''''+''++'';''''''''''''''''';''''''''''';;;::::``````````````````````````````````````````````````````````````````````````````````````````
````````````````````````````````````````````````````````````````````.,'+''+#+''+'''''''''''+';;;'''''''''''''''''''''''''''';;;::::``````````````````````````````````````````````````````````````````````````````````````````
``````````````````````````````````````````````````````````````````````:;''++++''''''''''+''++'''+'''''''''''''';''''''''''''''';:::``````````````````````````````````````````````````````````````````````````````````````````
```````````````````````````````````````````````````````````````````````.;'+++++''''''+'''''''''++''''''''''''''''''''''''''''''':::``````````````````````````````````````````````````````````````````````````````````````````
````````````````````````````````````````````````````````````````````````,;'++''+'''''''''';'''''''''''''''''''''''''''''''''''';;:,``````````````````````````````````````````````````````````````````````````````````````````
``````````````````````````````````````````````````````````````````````````,'+''++''''''''''''++'''''''''''''''''''''''''''''''';;:, `````````````````````````````````````````````````````````````````````````````````````````
```````````````````````````````````````````````````````````````````````````:++;+'''';'''+'+++''+''''''''''''''''''''''''''''''';;:.``````````````````````````````````````````````````````````````````````````````````````````
```````````````````````````````````````````````````````````````````````````,''''''''''''''+++'''+''''''''''''''';;''''''''''''''';,``````````````````````````````````````````````````````````````````````````````````````````
```````````````````````````````````````````````````````````````````````````.:'''''''''++'''++''''''''''''''''''''''''''''''''+''';:.`````````````````````````````````````````````````````````````````````````````````````````
````````````````````````````````````````````````````````````````````````````,'+''+++'+++'''''''+''''''++''''''''''''''''''''''';';:,`````````````````````````````````````````````````````````````````````````````````````````
````````````````````````````````````````````````````````````````````````````.;+''++''''''''''''+''''''''''++++''';;;''''''''''';;;:,.````````````````````````````````````````````````````````````````````````````````````````
````````````````````````````````````````````````````````````````````````````.:''''''''''''';;''+''+''''''''+++''''''''';;'''''''';:,.`` `````````````````````````````````````````````````````````````````````````````````````
`````````````````````````````````````````````````````````````````````````````.:''''''''''''''''+''''''''''''''''++'''';;;;;;;''';;:,,.```````````````````````````````````````````````````````````````````````````````````````
``````````````````````````````````````````````````````````````````````````````,'''';'''''''''+++'''''''''''''''''''''';;;;:::;;;;;::,...`````````````````````````````````````````````````````````````````````````````````````
``````````````````````````````````````````````````````````````````````````````.;'''''''''''+++++'''''''+'''''''''''''';:;;;:::::::::::,,. ```````````````````````````````````````````````````````````````````````````````````
``````````````````````````````````````````````````````````````````````````````.:'''';''''''+++''''''''''''''''''''''';;;::::::,,,,:::;'':.`` ````````````````````````````````````````````````````````````````````````````````
```````````````````````````````````````````````````````````````````````` ``````.;'''''';''''''''''';;''''''''''''''';;;;:::::;::,,::;'+#'.```````````````````````````````````````````````````````````````````````````````````
````````````````````````````````````````````````````````````````````````````````:;''''''''''''''''';;;;;'''''''''++''';;;;'''''';;;;++++;.```````````````````````````````````````````````````````````````````````````````````
````````````````````````````````````````````````````````````````````````````````,;''''''''''''''''''';;;''''''''''''''';'++####+#++++#+',` ``````````````````````````````````````````````````````````````````````````````````
````````````````````````````````````````````````````````````````````````````````.;'''';;'''''''';;''';;;''''''''''''''';'++########+++''.````````````````````````````````````````````````````````````````````````````````````
`````````````````````````````````````````````````````````````````````````````````;'''';'''''''''''''''''''''''''''''''''''+++++++++''';:`````````````````````````````````````````````````````````````````````````````````````
```````````````````````````````````````````````````````````````````````````````` :'''';''''''''''+++'''''''''''''+''''++'''+++++++'''':``````````````````````````````````````````````````````````````````````````````````````
`````````````````````````````````````````````````````````````````````````````````.'';'''''''++'''+''''';'''''''+++++++++++++'+'+++++;.```````````````````````````````````````````````````````````````````````````````````````
`````````````````````````````````````````````````````````````````````````````````.'';'''''''''''''''''''++''''+++++++++++++++##++':,.````````````````````````````````````````````````````````````````````````````````````````
`````````````````````````````````````````````````````````````````````````````````,'+'''''''''''''''''++'+++++++++++++++++++++++;;,`` ```````````````````````````````````````````````````````````````````````````````````````
`````````````````````````````````````````````````````````````````````````````````,'+''''''''''''''''+++++++++++++++++++++##++::.`````````````````````````````````````````````````````````````````````````````````````````````
`````````````````````````````````````````````````````````````````````````````````:'''''''''''''''''++++++++++++++++++++####+'.` `````````````````````````````````````````````````````````````````````````````````````````````
`````````````````````````````````````````````````````````````````````````````````:''''''''''''''''++++++++++++++++++++##+#++;. ``````````````````````````````````````````````````````````````````````````````````````````````
````````````````````````````````````````````````````````````````````````````````.;'++'++'''''''''+++++++++++++++#+++++##+#++', ``````````````````````````````````````````````````````````````````````````````````````````````
````````````````````````````````````````````````````````````````````````````````,;''+'++''''''''''++++++++++++++##++++##+#+++;```````````````````````````````````````````````````````````````````````````````````````````````
````````````````````````````````````````````````````````````````````````````````:;'''++++++'''''''+++++++++++++++#+###+++##++;,``````````````````````````````````````````````````````````````````````````````````````````````
````````````````````````````````````````````````````````````````````````````````:;''''++''++++''''++++++++++++++########+###+':,`````````````````````````````````````````````````````````````````````````````````````````````
````````````````````````````````````````````````````````````````````````````````:''''+++'''++++'''+++++++++++++#########+##+++';:,.``````````````````````````````````````````````````````````````````````````````````````````
```````````````````````````````````````````````````````````````````````````````.;'''++++++''++++++++'++++++++++#########++++++''';:..````````````````````````````````````````````````````````````````````````````````````````
``````````````````````````````````````````````````````````````````````````````.,;''''''+++'''++++++++++++++++++####+++##+++++'++'';;:,..`````````````````````````````````````````````````````````````````````````````````````
`````````````````````````````````````````````````````````````````````````````.,:;'''''''++++++++++++++++++++++####+++++#++++++++'''';::,,.```````````````````````````````````````````````````````````````````````````````````
`````````````````````````````````````````````````````````````````````..,,,..,,:;;'''''''''++++++++++++++++++++##++++++##++++++++''';;;;:::,..````````````````````````````````````````````````````````````````````````````````
````````````````````````````````````````````````````````````````````.,:;:::::;;''''''''+'''+++++++++++++##+++++++++#####+++++''+'';;;;;;::::,,.``````````````````````````````````````````````````````````````````````````````
``````````````````````````````````````````````````````````````````.,:;;;;::::;;;'''''''''''''++++++++++++++##++#+++++++++++++++''';;;;;;;:::::,,,,.```` `````````````````````````````````````````````````````````````````````
````````````````````````````````````````````````````````````` ``..,::;;;;;;::;;;;''''''''''''++++++++++++++##+++++++++++++++++'';;;;;;;:;;;:::::::,,,...`````````````````````````````````````````````````````````````````````
``````````````````````````````````````````````````````````````..,,:::::;;;;;;;;::;;'''''''''++++++++++++++++++++###++++++++++''';;;;;;;:;;;:::::::::::,,...```` `````````````````````````````````````````````````````````````
````````````````````````````````````````````````````````````..,:::::::::::;;;;;;:::;;''+'''''++++++++++++++##++###+++++++++++''';;;;;;;;::::::::::::::,,::,,.````````````````````````````````````````````````````````````````
````````````````````````````````````````````````````.......,,,::;;::;;::::::;;;;:::::;'''''''+++++++++++++###++++++++++++++++'''';;;;;;;::::::::::::::::::,,,,,,...``````````````````````````````````````````````````````````
```````````````````````````````````````````````....,,,,,,,::::::;;::;;::::::::::;:::::;;'''+++++++++++++++###+++++++++++++++''''';;;;;;;;::::::::::,::::,,,,,,::,,,,..```````````````````````````````````````````````````````
```````````````````````````````````````````````.,,,,,:,,:::::::;;:::::::;:::::::::::::::;;''''''++++++++++##++++++++++++++'''''';;;;;;;;;:::::::::,,:::::::,,,,,::::,,..`````````````````````````````````````````````````````
```````````````````````````````````````````````,,,,::::,::::::::;;;;::;;;:::::::::::::;;:::;;;''++++++++++###++++++++++++''''''';;;;;;;::::::::::::::::,::,,,::::::,,,,,,,..`````````````````````````````````````````````````
``````````````````````````````````````````````..,,,,:::::::::::::::::::;::::::::::::::::;;;:::;;;'''++++++###+++'++++++++''''';;;;;;;;::::::::::::,::::::,,,,,::::::,,,,,,,,...``````````````````````````````````````````````
`````````````````````````````````````````````.,,,,,,:::::::::::::::::::;;;:::::::::::::;;;;;;;;;;;;''''''++++++++++++++'++''''';;;;;;:::::::::::::,,:::,,,,,,::::::,,,,,,,,,,,...````````````````````````````````````````````
`````````````````````````````````````````` `.,::,,,,,::::::::::::::::::::::::::::::::::;:;;;;;::;;;;;;;;;'''''++++++++''+''''';;;;;;;:::::::::::::,,,,,,,,,:::::,,,,,,,,,,,,,,,,,.```````````````````````````````````````````
``````````````````````````````````````` ``.,,:;,,,,,::::::::::::::::::::::::;;:::::::::::;;;;;;;;;;;;;;;;;;'''''+++'+'''''';;;;;;;;:::::::::::::::,:,,,,,,:::::,,,,,,,,,,,,,,,,,.```````````````````````````````````````````
``````````````````````````````````````````..,,:::,,,,:::::::::::::::::::::::::;;:::::::::::;;;;;;;;;;;;;;;;;;;;;;'''''''''';;;;;;;;:::::::::::::::::::,,,,::::::,,,::,,,,,,,,,,,,,.``````````````````````````````````````````
`````````````````````````````````` ``...,,,,,,:::,,,,:,::::::::::::::::::::::::;;;::::::::::;;;;;;;;;;;;;;;;;;;;'''''';''';;;;;;;;:::::::::::::::::::,,,::::::,,::::::::::,,,,,,,,.` ```````````````````````````````````````
`````````````````````````````````````.,,,,,,,,,,::,,,,,,,:::::::::::::::::::::::::;:::::::::::;;;;;;;;;;;;;;;;;;;;';;;;;;;;;;;;;::::::::::::::::::::::,,::::::,,::::::::::,,,,,,,,,.`````````````````````````````````````````
```````````````````````````````` ```.,,:,,,,,,,,;::,,,,,,,,::::,:::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::::::,,,,,,::::::,,:::::::,,,,,,,,,,,,.`````````````````````````````````````````
``````````````````````````````` ``.,,,,,,,,,,,,,:;:,:,,,,,,::::,:::::::::::::::::::::::::::::::::;;;::;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::,,:::::::::::,:::::,::,,,,,,,,,,,,.` ``````````````````````````````````````
````````````````````````````````...,,,,,,,,,,,,,,:::,,,,,,,::::::::::::::::::::::::::::::::::::::::::::;:;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::,,:::::::,,,,,::::::::,,,,,,,,,,,,.` ``````````````````````````````````````
``````````````````````````````..,,,,,,,,,,,,,,,,,:::,,:,,,:::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;::::::::::::::::::::::,:::::::,,,,,,::,,:::,:,,,,,,,,,,,,````````````````````````````````````````
``````````````````````````````.,,,.,,,,,,,,,,,,,,,:;,,:,,,,::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;:;;;:::::::::::::::::::::::::::::,,,,,,:,...,::,:,,,,,,,,,::,.```````````````````````````````````````
`````````````````````````````.,,:,..,,,,,,,,,,,,,,:;:,,,,,,,::,,,::::::,:::::::::::::::::::::::::::::::::::::;;;;;;;;;:::;;;:::::::::::::::::::::::::::::,,,,,,:,. `.::::,,,,,,,,::::,. `````````````````````````````````````
`````````````````````````` `.,,,:,,,,,,,,,,,,,,,,,:;;:,,,,,,,,,,,,::::,,:::::::::::::::,:::::::::::::::::::::::::::;:::::;;:::::::::::::::::,,,,:::::::::,,,,,,::. .,:::,,,,,,,::::::.``````````````````````````````````````
````````````````````````````,,,,:,,,,,,,,,,,,,,,,,,:;::,,,,,,,,,,,,,,,,,,:::::::,,:::::,,,,::::::::::::::::::::::::::::::;;::::::::::::::::::::::::::::,,,,,,,,::. .,::,,,,,,,,::::::,``````````````````````````````````````
```````````````````````````.,,,,,,,,,,,,,,,,,,,,,,,,;;::,,,,,,,,,,,,,,,,,,::::::::::::::,,,,:::::,,:::::::::::::::::::::::;::::::::::::::::::::::::::::,,,,,,,,:,. .,:,,,,,,,,,::::::,``````````````````````````````````````
```````````````````````````,:,,,,,,,,,,,,,,,,,,,,,,,:;::,,,,,,,,,,,:::,,:,,,,,,,:::::::::,,,,,::,,:::::::::::::::::::::::::::::::::;;:,,:,:,::,:,:::,,,,,:,,,,,::. ``,:::,,,,,:::::::;:``````````````````````````````````````
``````````````````````````.,:,,,,,,,,,,,,,,,,,,,,,,,:;;:,,,,,,,,,,,:::,,:,,,,,,,::::::::::,,,,::,,,::::::::::::::::::::::::::::::::::,..,,,,..`.,:,,,........,,::.```,:::,,,,,,::::::;:.`````````````````````````````````````
``````````````````````````.,::,,,,,,,,,,,,,::,,,,,,,::;;,,,,,,,,,,,,,,,,,,,,,,,::::::::::::,,,,,,,,,:::::::::::::::::::::::::::::::::,..:;;:,``.::::.````````.,::.``.,::,,,,,,,:;::::;:,`````````````````````````````````````
``````````````````````````,:::,,,,,,,,,,,,,::,,,,,,,,::;:,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::,,,,,,,,,,::,:::::::::::::::::::::::::::;:..;;'':``.;';;,```. ` `,,,,.`.,:,,,,,,,::;::::;:,`````````````````````````````````````
`````````````````````````.,:::::,,,,,,,,,,,::,,,,,,,,,:;;:,,,,,,,,,,,,,,,,,,,,,,,,:::::::::::,,,,,,,,,,,,,::::::::::::::::::::::::::::.`:;;':``.:;';,` `.`````,::,,.,::,,,,,,,:;;::::;::`````````````````````````````````````
`````````````````````````.::::::,,,,,,,,,,,,,,,,,,,,,,:;;;:,:::,:::::,,,,,,,,,,,,,,::::::::::,,,,,,,,,,,,:::::::::::::::::::::::::::::.`,;;':``.,:;;,``..`````,:::,.,::::,,,,,::;::::;::.````````````````````````````````````
`````````````````````````,::::::,,::,,,,,,,,,,,,,,,,,,:;';;:::::::::::::,,,,,,,,,,,,::::::::::,,,,,,,,,,::::::::::::::::::::::::::::::,`,;;;:```.:';:``...````.:::,..:::::::,,:;;::::;;:,````````````````````````````````````
`````````````````````````,::::::,::::,,,,,,,,,,,,,,,,,:;'';:,:::::::::::,,,,,,,,,,,,::::::::::,,::,,,,,,:::::::::::,,:::::::::::,:::::,`,;;':`` .:'':```,,.`.`.:,:,`.,,::::::::;;::::;;;:.```````````````````````````````````
`````````````````````````,:::::::::::,,,,,,,,,,,:::::;;''+':,,:::::::::::,,,,,,,,,,,::::::::::::::::::::,,::::::::::::::::::::,,,:::::,`..,,.` `..:,.```,:::.`.,,,,,,,,:::::;;;;;:::;;;;;,```````````````````````````````````
````````````````````````.,::::::::::::,:,,,,,,,,::::;'''+++;:,::::::::::::,,,,,,,,,,,:::::::::::::::::::::::::::::::,,,,::::::::,:::::,.`.,,.. ```..`````...``.,,,,,,:::::::::;;;;::;;;;;:.``````````````````````````````````
````````````````````````.::::;::::::::::,,,,,,::;;;'''+++++';:,::::::::::::,,,,,,,,,,,,,::::::::::::::::::::,,,,::,,,,,,,:::::::,::::::,.,:::,.` `,,,.`` `````.,,,,,,,:::::::::;;;:::;;;';,``````````````````````````````````
````````````````````````,::::;:::::::::::::,,:::'''++++++''+':,::::;;::::::::,,,,,,,,,,,:::::::::::::::::::,,,,,::::::,,,,:::::::::::::,.,;;::.``.:;:,` `.`````,,,,,,,,::::::::;;::::;;;'':.`````````````````````````````````
````````````````````````,:;:::::::::::::::::::;;''+++++'';;'';:,:::;;;::::::::,,,,,,,,,:,,::::::::::::::::,,,,:::::::::::::::::::::::::,..::::.``.:::,.``,.````,:::,,:::::::::;;;:::::;;'';.`````````````````````````````````
````````````````````````,:::::::::::::::,:::;;''+++++'';;;;'''::::::::::::::::::,,,,,,,:,,::::::::::::::::,,,,::::::::::::::::::::::::,,..:::;,``.::::.``..````,::::::::::::::;;;::::;;';';,`````````````````````````````````
```````````````````````.,:::;;::::::::::::;;''+++++++';;;;;;'';:::::::::::::::::,,,,,,,,,,,::::::::::::::::,,,::,:::::::::::::::::::::,,.`,::;,` `::;:. `,.```.,,::::,,::::::;;':::;;;';;;:.````````````````````````````````
````````````````````` `.::::;;;:::::;::::;''++++++++'';;:;;:;'';:,,,,::::::::::::,,,,,,,,,,,::::::::::::::::,,,,,,,:::::::::::::::::::,,,.,;;;:.`.::;;,.``,,`.`.,,::::,,:::::::;';:;;;;'';';,````````````````````````````````
```````````````````````,::::;;::::::;;;;'''+++#+++'';;::::::;;'';,,,,,,::::::::::,,,,,,:,,,,,:::::::::;;:::::::::::::::::::::::::::::::,,.,:::.` `,:;:.```,::,.`,:::,::,:::::::;;;:;;;;'';'':` ``````````````````````````````
```````````````````````,:::;;;;;::::;;;;;'++##++;;::::,,,:::::;'':,,,,,:::::::::::,,,,,,,,,,,,:::::::::;::::::::::::::::::::::::::::::::,,,,,,..```...```..,,.``,::::::::::::::;';;;;;;''''':.```````````````````````````````
``````````````````````.::::;;;;;;:::;';''++++'';::,,,,,,,,,:::;;+;:,,,,,,,,,,::::::,,,,,,,,,,,,:::::::::;:::::::::::::::::::,:::::::::::::::::::,,,,,,........``,:::::::::::::;'';;;;;;''''';,```````````````````````````````
``````````````````````.::::::;;;;::;''''++''';;:::,,,,,,,,,:::;;+';:,,,,,,,,,,:::::::,,,,,,,,,,,,:::::::;;:::::::::::::::::::::::::::::::::::::;::::;::,::::::::::::,:::::::::;'';;;;;;;;''';,.``````````````````````````````
``````````````````````,::::::;;;:::;'+'''';;;;;:::,,,,,,,,:::::;''':,,,,,,,,,,,,::::::,,,,,,,,,,,,:::::::::::::::::::::::::::::::::::::::,,:::,:::,,:::::::::::::::,,,::::::;;;'';;;;;;;;''';:.``````````````````````````````
``````````````````````,::::::;;;;;:;'';;;;;''';::,,,,,,,,,,:::::;'';:,,:,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::::::::::::::::::::::::,,::,,,:::::::::::::::,,,,,,,::::::;;;'';;;;;;;;'''';,``````````````````````````````
``````````````````````,::::::;;;;;;;'';;'''++;:,:,,,,,,,,,,:,,:::;;;::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::::::::::::::::::::,,,,,,,:,,:::::,,::,,:,,,,,,,,:::::;;;;'';;;;;;;;'''';,``````````````````````````````
`````````````````` ``.::::::::;;;;:;'+'+++++';,,,,,,,,,,,,,:,,,:::;;;:,,,,,,,,,,,,,,,,,,:,,,,,,,,,,,,,:::::::::::::::::::::::::::::::::,:::::,,:,,,,,::::::::::,,,,,,,:::;;;;;;''';'';;;;'''';:``````````````````````````````
``````````````````` ,:::::::::;;;;;'++'+++';:,,,,,,,,,,,,,,,:::,:::;;,,::::,::,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::::::::::::::::::::,,:::::::::,,,,,:::,:::,,,,,,,::::;;;;;''';;;;;;'''';;:,`````````````````````````````
``````````````````` `,:::::::::;;;;;'++'++';:,,,,,,,,,,,,,,,,,,,,,::;;:,:::::::,,,,,,,,,,,,,,,,,,,,,,,,::::::::::::::::::::::::::::::::::::::::::::,,,,,:::::::,,,,,,,::::;'';'+''';;;;;'''';';,`````````````````````````````
`````````````````````,::::::::::;;;;;'+'+'';:,,,,,,,,,,,,,,,,:,,,,,:;;;,::::::::::::,,,,,,,,,,,,,,,,,,,,::::::::;:::::::::::::::::::::::::::::::::,,,,,::::::::,,,,,,,::::;'';''''';;;;;'''';';:`````````````````````````````
`````````````````````,::::::::::;;;;;'+'+';::,,,,,,,,,,,,,:::::,:,:::;;::,::::::::::::::::,,,,,,,,,,,,,,,,,::::::::::::::::::::::::::::::::::::::,,,,,::::::::::,,,,,,,,::;''''+''';;;;;'''';';:.````````````````````````````
````````````````````.,::::;;;;;;;;;;;'++'';:,,,,,,,,,,,:::;;:::,:,:::;';:,,::::::::::::::::,,,,,,,,,,,,,,,,::::::::::::::::::::::::::::::::::::::,,,,,::::::::::,,:,,,,,::;;'''++'';;;;;'''';;;:,````````````````````````````
````````````````````.,::::;;;;;;;;;;;'''';;:,,,,,,,,,,::;;';::,,,::::;'':,,,,:::::::::::::::,,,,,,,,,,,,,,,:::::::::::::::::::::::::::::::::::::::,,,,,:::::::::::::,,,,,::;;''+++'''''''''';;;;,````````````````````````````
````````````````````.,,::::;;;;;;;;;;;'';;:,,,,,,,,,,::;''';:,:::::;;''+;:,,,,:::::::::::::::,,,,,,,,,,,,,,,:::::::::::::::::::::::::::::::::::::::,,,,,:::::::::::::,::::::;;'+++'''''''''''';;:````````````````````````````
````````````````````,,,::::;;;;;;;;;;;;';;:,,,,,:::::;;''';::,:::;;;'''+':,,,,,,:::::::::::::,,,,,,,,,,,,,,,:::,:::::::::::::::::::::::::::::::::::,,,,,:::::::::::::::::;;;;'++#+''''''''''''';;````````````````````````````
```````````````````.,,:::::;;;;;;;::;;;;;::,,,;;'';;;'''';:::::;;;;;;;;'';:,,,,,::::::::::::::,,::,,,,,,,,,,,,:::::::::::::::::::::::::::::::::::::,,,::::::::::::::::::;;;;''++#+'''''''''''''';,```````````````````````````
```````````````````.,,:::::;;;;;;::::;;;;::::;'++++'''''';:::::;;;'';;''';:,,,,,,::::::::::::::,::,,,,,,,,,,,,:::::::::::::::::::::::::::::::::::::,,,,::::::::::::::;;;;;'''++#+++'''''''''''';;,```````````````````````````
```````````````````.,,,:::::;;;;;;::::;;;:::;'####++'++';:,::;;;''';;;;;'';:,,,,,,,,,,::::::::::::,,,,,:,,,,,,::,:::::::::::::::::::::::::::,:::::::,,,,:::::::::::;;;'';''''+##++++++'''''''';;;:.``````````````````````````
```````````````````.,,,::::::;;;;;;::;;;;:::'+##++''+++':,,:;;;;;;;;;:;;;';:,,,,,,,,,,,:::::::::::,,,:::,,,,,,::,::::::::::::::::::::::::::,,:::::::,,,,:::::::::::;;''''''''+#+++++++''''''''';;:.``````````````````````````
```````````````````.,,,:::::::;;;;;;:;;;;::;'+##+';'++';,,::;;;';;;:::::;;';:,,,,,,,,,,:,,,:::::::,,,:::,,,,,,,,::::::::::::::::::::::::::::::::::::::::::::::::::;;;''''''''+#++++++'''''''''';;;,``````````````````````````
```````````````````,,,,:::::::;;;;;;::;;;::;'###'''+++;:,::;;;;';;::::::;;;;:,,,,,,,,,,:,,,,,,::::,,,,,:,,::::,,::::::::,:::::::::::::::::::::::::::::::::::::::::;;;'''''';'+#+++++'''''''''';;;;:.`````````````````````````
```````````````````,,,,,:::::::;:;;;;;;;::;'+###''''';:,::;;;;;;;::::::::;;;;,,,,,,,,,,,,,,,,,,,::,,,,,,,,::::,,,,,,::::,::::,::::::::::::::::::::::::::::::::::::;;;'''''';'+#++++''''''''''';;;;:.`````````````````````````
```````````````````,:,,,:::::::::;;;;;;;;:;'+##+';'';:,,::;;;;;;:::,,,,:::;';:,,,,,,,,,,,,,,,,,,::,,,,,,,:::::,,,,,,,,,,,::::,,:::::::::,:::::::::::::::;:::::::::;;;'''''';'##+#++''''''''''''';;:.`````````````````````````
```````````````` `.,,,,,::::::::;;;;'';;;''++##'::::,,,::;;;;;;;::,,,,,:::;;;::,,,,,,,,,,,,,,,,,:::,,,,,::::::,,:,,,,,,,,,:::::::::::::,:::::::::::::::::::::::::;;;;''''''''+#+++'''''''''''';;;;;:` ```````````````````````
``````````````````.,,,,,:::::::::;;;''';''+++##',,,,,,::;;;;;:::::,,,,,,:::;;;:,,,,,,,,,,,,,,,,,,,,,,,,,::::::,,,,,,,,,,,,,::::::::::::::::::::::::::::::::::::::;;;;''''''''+##++''''''''++'''';;;:.````````````````````````
``````````````````.,,,,,,::::::::;;;'''''+++##+',,,,,:::;;;;:::::::,,,,,:::;;;::,,,,,,,,,,,,,,,,,,,,,,::::::::,,,,,,,,,,,,,,:::::::::::::::::::::::::::::::;:::::;;;;;'''''''+#+++''''''''++'''';;;:.````````````````````````
`````````````````.,,,,,,,::::::::;;;;''''+++##+'::::::;;;;;;:::::::::,,,::::;;::,,,,,,,,,,,,,,,,,,,,,,::::::::,,,,,,,,,,,,,,,,,,:::::::::::::::::::::::::::::::::;;;;;''''+''+++++'''''''''''';;;;;:,` ``````````````````````
`````````````````.,,,,,,,::::::::;;;;''''+++##+';'';:;;;;;;:::::,:::::,,::::;;;:,,,,,,,,,,,,,,,,,,,,,,,::::::::,,,,,,,,,,,,,,,,,::::::::::::::::::::::::::::::::;;;;;;''''+''+++++'''''''''''';;;;::,` ``````````````````````
`````````````````.,,,,,,,:::::::;;;;;'''++++##+;''';:;;;;;;:::::,:::::,,,::::;;::,,,,,,,,,,,,,,,,,,,,,,,:::::::,::,,,,,,::::,,,,:::::::::::::::::::::::::::::;;;;;;;;;'''''''++++++''''''''''';;;;:::. ``````````````````````
`````````````````.,,,,,,,::::::;;;;;''''++++##+;''';:;;;;;;:::::,:::::,,:::::;;::,,,,,,,,,,,,,,,,,,::::::::::::::::::,,,:::::,,,::::,::::::::::::::::::;;;;;;;;;;;;;;;'''''''+++++++'''''''''';;;;;;:.```````````````````````
`````````````````.,,,,,,,::::::;;;''''''++++##+'''';:;;;;;;;:::,,:::::,,::::::;:::,,::,,,,,,,,,,,,,:::::::::::::::::::::::::::,,::::,::::::::::::::::;;;;;;;;;;;;;;;;;'''''''+++++++'''''''''';;;;;;;,```````````````````````
`````````````````,,,,,,,::::::;;;;'''''+++++##+'+';;;;'';;;;:::,::::::::,,:::::;::,::,,:,,,,,,,,::::::::::::::::::::,,,::::::::,::::::::::::::::::::::;;;;;;;;;;;;;;;;;;''''''++++'''''''''''';;;;;;::.``````````````````````
`````````````````,,,,,,,::::::;;;'''''''++++##+'';;::;';;;;:::,,:::::::::,:::::;::::::::,,::::,,:::::::::::::::::::::::::::::::,:::::::::::::::::::::;;;;;;;;;;;;;;;;;''''''++++++'''''''''''';;;;;;::.``````````````````````
`````````````````,,,,,:,,:::::;;;;''''''++++###+';::;;';;;::::,,:::::::::::::::;:::::::::::::::::::::::::::::::::::::::::::::::,::::::::::::::::::::;;;;;;;;;;;;;;;;;'''''''++++++''''''''''''';;;;;::,``````````````````````
`````````````````,,,,,:::::::::;;;;'''''++++###+';::;;';;;:::::::::::::::::::::;;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;'''''''++++++''''''''''''';;;;;::,``````````````````````
`````````````````,,,:,:::::::::::;;;;''''++++###';:;;'';;;:::::::::::::::::::::;;::::::;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;'''''''++++++''''''''''''';;;;;:;,.`````````````````````
`````````````````,,,:,::::::::::;;;;;;''''+++###+;:;''';;;:::::::::::::::::::::;;::::::;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;''''''''+++++''''''''''''';;;;;:;:.`````````````````````
`````````````````,,,,,::::::::;;;;;;;;'''+++++##+;:;'';;;:::::::::::::::::::::::;:::;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;'''''''++++++''''''''''''';;;;;:;:,`````````````````````
`````````````````,,,,,:,::::;;;;;;;;;'''++++++##+;:;';;;;::::::::::::,:::::::::::::;;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;';;;;;;';;'''''++++++++''''''''''''';;;;;::::`````````````````````
`````````````````,:,,::,:::::::;;;;;''''++++++##';;''';;:::::::::::::::::::::::::::::;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;''';'''';';;'''''''++'++++++''''''''''''';;;;;;;:,.````````````````````
`````````````````,:,,:::::::::;;;;;;''''+++++++#';;''';;::::::::::::::::::::::::;;;;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;'''''''';';''''''''++'+++++'''''''''''''';;;;;;;::.` ``````````````````
`````````````````,,,::::::::::;;;;;'''''+++++++#';'''';;::::::::::::::::::::::::;;';::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;''''''''''''''''''''++'++#++'''''''''''''';;;;;;;;:.` ``````````````````
`````````````````,:,::::::::::;;;;'''''+'+++++#+';'+'';;:::::::::::::::::::::::;;;';::::::,::::::::::::::::::::::::::,,:::::::::::::::::::::::;;;;;;;''''''''''''''''''''+''+++++''''''''''''';;;;;;;;;:,````````````````````
````````````````.,:::::::::::;;;;;'''''+++++++++'''+'';;::::::::::::::::::::::;;;;;;::::::::::::,,,,,::::::::::::::::,,::::,,:::::::::::::::::;;;;;;''''''''''''''''''''''''+++++''''''''''''';;;;;::::::.```````````````````
````````````````.,:,:::::::::;;;;;'''''+++++++++''''';;;;;;;;;::::::::::::::::;;;;;;;:::::::::::,,,,,,::::::::::::,::,,,::,,,,::::::::::::::::;;;;;''''''''''''''''''''''''''++++''''''''''''';;;;;;:::::.```````````````````
````````````````,,,,,::::::::;;;;;''''''+++++#++'''';;;;;;;;;;;:::::::::::::::;;;;;;;::::::::,,,:,,,,,::::::::::::,::,,,:,,,,,:::::::::::::::;;;;;;''''''''''''''''''''''+''++#++''''''''''''';;;;;;:;:::.```````````````````
````````````````,,,,,:::::::;;;;;;'''''''++++##+'';;;;;;;;;;;;;;::::::::::::::;;;;'';:::::::,,,,::,,,,:::::::::::,,::,,,:,,,,,::::::::::::::;;;;;;'''''''''''''''''+++++'++'++#++'''''''''+''';;;;;;;;;::.```````````````````
````````````````,,,::::::::::;;;;;;'''''+++++###';;;;;;;;;;;;;::::;;::::::;;;;;;;;;;;;::::::::,,,,,,,,,,::,,,,,,,,,,,,,,::::::::::::::::::;;;;;;;;''''''''''''''''''++++'++++##+++'''''''''''';;;;;;;;;;:,```````````````````
````````````````,,::::::::::::;;;;;''''''++++###';:;;;;;;;;;;;::::;;;;;;::;;'''';;;;;;::::::::::,,,,,,,,::,,,,,,,,,,,,,,:::::::::::::::::::;;;;;;''''''''''''''''''''+++'++++##+++'''''''''''';;;;;;;;;;:,```````````````````
````````````````,,:::::::::::;;;;;;''''''++++###'::;;;;;'';;;;;:;;;;;;;;;;;;'+'';;;;;;::::::::::,,,,,,,,::,,,,,,,,,,:::::::::::::::::::::::;;;;;;''''''''''''''''''''''''++++##++++''''''''''';;;;;;;;;::,.``````````````````
````````````````,,:::::::::::;;;;;;''''+'++++###'::;;;;;';;;;;;;;;;;;;;;;;;;''';;;;;;;::::::::::::,,,,,,,,,,,,,,,,,,,:::,::::::::::::::::::;;;;;;''''''''''''''''''+++'''++++##++++''''''''''';;;;;;;;;:::.``````````````````
````````````````,,:::::::::::;;;;;;''''++++++##+'::;;;;;';;;;;;;;;;;;;;;;;;;''';;;;;;;:::::::::::::,,,,,,,,,,,::,,,,,,,,::::::::::::::::::;;;;;;'''''''''''''''''+++++++'++++#+++++''''''''''';;;;;;;;::::.``````````````````
````````````````,,::::::::::;;;;;;;''''++++++##+'::;;;;;'';;;;;;;;;;;;;;;;''''''';;'';;:::::,,,,:::,,,:::,,,,:::,,,,,:::::::::::::::::::::;;;;;;''''''''''''''''''+++++++++++#+++++'''''''''''';;;;;;;::::,``````````````````
````````````````,,::::::::::;;;;;;;''''++++++##+';;;'''''';;;;;;;;;;;''''''''''+'';;;;;:::::,,,::::,:::::::::::::::::::::::::::::::::::::::;;;;;''''''''''''''''''''+++++++++#+++++'''''''''''';;;;;;:::::,``````````````````
````````````````,,::::::::::;;;;;;;''''+'++++##+';;'''''';;;;:::;;;;'''''''''''''';;;;:::::::::::::,:::::::::::::::::::::::::::::::::::::::;;;;;''''''''''''''''''''''''+++++#++++++''''''''''';;;;;;:::::,``````````````````
````````````````.,:::::::::::;;;;;;;''''+++++##+'';'''''';;:::::;;'''''''''''''''';:;;;:::::,:::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;'''''''''''''''''''''++++++##++++++''''''''''''';;:::::::,.`````````````````
````````````````.,:::::::::::;;;;;;;''''+++++##++'''''';;;::::;;;'''''+'+'''''''';;::;;:::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;'''''''''''''''''''''''++++###+++++''''''''''';;;;::::::::.`````````````````
````````````````.,:::::::::;;;;;;;;;'''''++++###++''+'';:::::;;;''''++++++'''';;;;::::;::::::::::::::::::::::::::::::::::::::::::::;;;;::;;;;;;;;''''''''''''''''''''''''+++###++++'''''''''''';;;:::::::::,`````````````````
````````````````,,::::::::;;;;;;;;;;''''''+++###+++''';::::::;''''+++++'+''';;;:::::::;;::::::::::::::::;;:::::::;;;;:::::::::::::;;;::::;;;;;;;;''''''''''''''''''''''''++####++++''++'''''''';;;:::::::::,.````````````````
````````````````,,::::::::;;;;;;;;;;''''''+++###+++'';::::::;''+++++++'''';;;::::::::;;;;;:::::::::::;;;;;;:::::;;;;;;;::::::::::::::::::;;;;;;;;''''''''''''''''''''''''++####+++++''''''''''';;;:::::::::,.````````````````
````````````````,,::::::::;;;;;;;;;;''''''+++#####+';:,,,::;'+++++++++'';;::::::,::::;;;;;;::;;;;;;;;;;;;;;;:;;;;;;;;;;:;::::::::::::::::;;;;;;;;''''''''''''''''''''''''++###+++++++'''''''''';;;::::::::::.````````````````
````````````````,,:::::::;;;;;;;;;;;''''+'++#####+';::,,:;;'+++++++''';;;:::,::,,::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::::::::::::::;;;;;;;;;'''';'''''''''''''''''''++###+++++++''''''''';;;:::::::::::,````````````````
````````````````,,::::::::;;;;;;;;;;''''+'++#####+':,:::;;'+++++''';;;;::::,,:,,,,:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:::::::::;;;::;;;;;;;;;''';;'''''''''''''''''++++###++++++++'''''''';;;:::::::::::,.```````````````
`````````````` ,,,::::::;;;;::;;;;;'''''+'+'#++#+'::::;'''+++++'';;:::::::,,,,,::,,::;;;;;'';;;;;;;;;;;;;;;;;;;;;;;;::::;;:::::::::::::;:;;;;;;;''''''''''''''''''''''''++##+#++++++++'''''''';;:::::::::::::.` `````````````
```````````````,,,::::::;;;;;;;;;;;;'''''+++#+##+;::;;''++++++';;;::::,,,,,,,,,,:::::;;;;''''''''';;';;;;;;;;;;;;;;;::::::::::::::::::;;:;;;;;;;''''''''''''''''''''''''++##+#+#++++++'''''''';;:::::::::::::,```````````````
```````````````,,::::::::;;;;;;;;;;;''''+++++++#';:;'''++++''';;::::,,,,,,,,,,::::::;;;;;''''''''''''';;;;;;;;;;;;;;::::::::::::::::;;;;:;;;;;;;''''''''''''''''''';;'''++##+###++++'''''''''';;:::::::::::::,.``````````````
```````````````,::::::::::::::;;;;;;''''+'+++#+';;;;''+++'';;;::::,,,,,,:::::::::::::;;;;;'''''''''''';;;;;;;;;;;;;;:::::::::::::::;;;;;;;;;;;;''''''''''''''''''';;;;'''++#+#++++++''''''''';;;:::::::::::::,.``````````````
``````````````.,::::::::::::::;;;;;;''''''+###+''''''''+'';;::::,,,,,,::::::::::::::::;;;''''''''''''';;;;;;;;;;;;;:::::::::::::::::;;;;;;;;;;;''''''''''''''''''';;;''''++#++++++++''''''+'';;;::::::::::::::.``````````````
``````````````.,:::::::::::::;;;;;;;''''++++;;'++'''++'';;::::::,,,,,:::::::::::::::::;;;'''''''''''';;;;;;;;;;;::::::::::::::::::::;;;;;;;;;;'''''''''''''''''''''''''''';#+#++++++''''++''';;;::::::::::::::,``````````````
``````````````.,::::::::::::::;;;;;;''''+++'..,;'''''';;;:::::,:,,::::::::::::::::::::;;;''''''';;;;;;;;;;;;;;;:::::::::::::::::::::;;;;;;;;;;'''''''''';;;'''''''''''';';,++#++++++''''+'''';;::::::::::;;:::,.`````````````
``````````````,,,,:::::::::::::;;;;;''''''++,` `;'++';;;::::::,::::::::;;;;;;::::::::::;;'''''';;;;;;;;;;;::::::::::::::::::::::;;;;;;;;;;;;;;'''''''''';;;'''''''''''';;,`'+#++++++'''+'''';;:::::::::::;;:::,.`````````````
``````````````,:::::::::::::::;;;;;;'''+++++.```.;+'';;:::,,:::::::;;;;;;;;;;;;;;::::::;'''';;;;;;;;;;;;;::::::::::::::::::::::;;;;;;;;;;;;'''''''''''''''''''''''''''''',`,'+++++++''''''';;;::::::::::;;;::::,` ```````````
``````````````,:::::::::::::::::;;;;'''+++++.````:'+';;:::::::::;;;;''''''''''';;;;;:::;'''';;;;;;;;;;;;;:::::::::::::::::::::::;;;;;;;;;;;;;;'''''''''';''''''''''''''';. .'#++++++''''''';;;::::::::::;;;::::,` ```````````
`````````````.,::::::::::::::::;;;;;'''+++++,````.'#';;::::;;;;;''''''''''+++'''''';;:;';;;;;;;:;;::::::::::::::::::::::::::::::;;;;;;;;;;;;;;'''''''''';;;''''''''''''';` `:#+++++'''''''';;:::::::::::;;:::::,.````````````
`````````````.,:::::::::::::::;;;;;''''+++++,````,+#+'';;;;;'''''''''''''''+'''''''';;;';;;;;:::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;'''''''''';;;;;;;;''';'''';`` ,++++++''''''';;;:::::::::;;;;::::::.````````````
`````````````.:,::::::::::::::;;;;;''''+++++,````;++#+'''''''''''''''''''''''''''''''''';;;;:::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;'''''''''';;;;;;;;'';;;'';:`` .++#+++''''''';;::::::::::;;;;::::::.````````````
`````````````,:,::::::::::::::;;;;;''''+++++,```.'+'++''''+++''''''''''';;;;;;;;;;;;;'''::::::::::::::::::::::::,::::::::::::::;::;;:;;;;;;;;;'''''''''';;;;;;;;;;;;;';;,`` `;+#+++''''''';;:::::::::;;;;;;::;::,````````````
`````````````,:,::::::::::::::;;;;;'''''++++,```.'+++';;'''''''''';;;;;;::::::::::;::;;;::::::::::::::::,,:::::::::::::::::::::;:::::;;;;;;;;;'''''''''';;;;;;;;;;;;;;;:.````,'+++++'''''';::::::::;;;;;;;;;;;::,````````````
`````````````.,,::::::::::;;;;;;;;;'''''++++,```,;++';;;:;;;;;;;::::::::::,,,,,,,::,,::;:::,::::::::,,,,,,,,:::::::::::::::::::;::::::;;;;;;;;;''''''''';;;;;;;;;;;;;;::```` .'+++++''''';;::::::;;;;;;;;;;;;;::.` ``` ``````
````````````.,,,,::::::::::;;;;;;;;;''+++++': ```:';;;;;;;::::::::::,,:::::,,,,,,,,,,,:;;::::::,::::,,,,,,,,,,,,:::::::::::::::::;;;;;;;;;;;;;''''''''';;;;;;;;;;;;;:;;,``````,++++'''''';;:::::;;;;;;;;;;;;;:::.````````````
````````````.,,,:::::::::::;;;;;;;;;''++++++;````.,:::::::::::::::::::::,,,,,,,,,,,,,,:;:::::::::::::,,,,,,,,,,,:::::::::::::::::;;;;;;;;;;;''''''''''';;;;;;;;;;;;;;;:,``````,'+++''''';;;:::::;;;;';;;;;;;;:::,````````````
````````````.,,,::::::::::::;:;;;;;;'''+++++'``````.,,,,::,,,,,,,,,,,,,,,,,,,,,,,,,,,::;:::::,::::::::,,:::::::::::::::::::::::::;;;;;;;;;;;''''''''''';;;;;;;;;;;;;;;:,``````.'++++''';;;;::;;;;;''''''';;;;::::.```````````
````````````.,,,:::::::::::::::;;;;;'''+++++'````` `.,:;:::::,,,,,,,,,,,,,:::::::::;;;;;;::::,:::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;''''''';;;;;;;;;;;;;;;:,``````.'++++'';;;;::;;;;'''''''''';;;;:::.```````````
````````````.,,,::::::::::::;::;;;;''''+++++;```````.:''''';;::::::,,,:::;;;;;;''''''''''::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;;''''''';;;;;;;;;;;;;;;:,``````.'++++'';;:::;;;;;''''''''';;;;;:::.```````````
````````````.,,::::::::::::;;;;;;;'''''+++++;``` `` `:''''''';;;::::::;;'''+++++++++++++';::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;''''''';;;;;;;;;;;;''';,``````.;++++'';;;;;;;;;''''''''';;;;;::::,```````````
````````````,,,,:::::::::::;;;;;;;''''++++++;```````.:;;;;;;;;;;::::::;;'''+++++++++++++';:::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;'''''''';;;;;;;;;;;;;'';,```````;++++''';;;;;;;'''''';;;;;;;;:::::,```````````
```````` ```,:,,::::::::;::;;;;;;;''''+++++': ``` .::::::::;;::::::::;;;;'''''''''''''''::;:::;:::::::::::::::::::::::::::::::::::;;;;;;;;;;'''''''''';';;;;;;';;;;;';,```````:++++''';;;;;;'''''';;;;;;;;;::::::.``````````
```````````.,:,,::::::::;;;;;;;;;'''''''+++'.`````,::,::::::::::::::::::::::;;;;:;;;;;;;;::;;::;;;;:::::::::::::::::::::::::::::::;;;;;;;;;;;''';;''''';;;;;;;;;;;';;;;.```````:+#+++'''''''''''';;;;;;;;;::::::::.``````````
```````````.,:,,::::::::;;;;;;;;;''''''++++'.````.,::,:::,,,,,::::::::::,,,:::::::::::::;::;;;:;;;;:::::::::::::::::::::::::::::;;;;;;;;;;;;''''''''''';'''''';;;;;;;;:.```````:+#++++'''''';;;;;;;;;;;;;:::::::::.``````````
```````````.,:,,::::::::;;;;;;;;;'''''+++++'.````.,,,,,,,,,,,,,,:::;;::,,,,,,,,,,,,,,,,,:::;;;;;;;;;:::::::::::::::::::::;;;;;;;;;;;;;;;;;;''''''''''''''''''';;;;;;;;:````````:++++++'''''';;;;;;;;;;;;::::::::::.``````````
```````````.,:::::::::::;;;;;;;;'''''''++++;.````.,,,,,,,,,,,,:::::;::,,,,,::,,,,,,,,,,,:::;;;;;;;;;:::::::::::::::;;;;;;;;;;;;;;;;;;;;';'''''''''''''';'''';;;;;;;;;;,````````,'++++++'''';;;;;;;;;;;;;::::::::::,``````````
```````````.,:::::::::::;;;;;;;'''''''''+++:`````.,,,,,,,,,,:::::::::::,,:::::,,::,,,,,,:::;;;;;;;;;;:::::::::::::;;;;;;;;;;;;;;;;;;;;;';'''''''''''''';;;;;;;;;;:;;;;,````````,'+++++++'''';;;;;;;;::::::::::::::,``````````
````````` `,::::::::::;;;;;;;''';'''''''++',`````.,,::::::::::::::::::::::::::::::::::::::;;;;:;;;;;;;:::::::::::;;;;;;;;;;;;;;;;;;;;;'';'''''''''''''';;;;'';;;;;;;;;,````````.'++++++''''''''';;;;;:::::,,,:::::,``````````
````````` `,:::::::::;;;;;;;;;;;;;;;'''++++,``````.,::::::::::::::::::::::::::::::::::::::;;;;:;;;;;;;::::::::::;;;;;;;;;;;;;;;;;;''''''''''''''''''''';''''';;;;:;;;;,`````````;++++++'''''''''''';;;;:::::::::::,``````````
````````` `,::::::::::;;;;;;;;;;;;;;;''++++.```` `,,:::::::::::::::::::::::::::::::::::::;;;;:;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;'''''''''''''''''''''''''';;;:;:;;;;,``````` `;++++++''''''''+'''';;;;;::::::::;,``````````
``````````.,:::::::::;;;;;;;;;::;;;;;''+++'.`` ````.,::::::::::,::::::::::::::::::::::::::;';;;;;;;;;;;:;;;;::;;;;;;;;;;;;;;;;;;'''';;;''''''''''''''''''';;'';;;;;;;;: ````````;'+++''''''''''+'''''';;;;;;:::::;:.`````````
``````````.,:::::::::::::::::::::;;;''++++;.````````,:::::::::,,::::::::,:::::::::::::::::;';;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;'''''''''''''''''''''''';;'';''';;;;;;;;:`````````;'+++''''''''''''''''''';;;;:::::;:.`````````
``````````.,:::::::::::::::::::::;;'''++++:`````````.,::::::,,,,::::::::,,::::::::::::::;:;'';;;;;;;;;;;::;;;;;;;;;;;;;;;;;;'''''''''''''''''''''''''';;';;;'';;;;;;;;:`````````:'++''''+++''''''''''''';;;;:::::;:.`````````
``````````.,,::::::::,,,,,,,::::;;'''+++++:` ````````,::::::,,,,,,,,,:::::::::::::::::::;;;';;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;''''''''''''''''''''''''''';;;;;;'';;;;;;;;,`````````.'++''''++++++''++''''';;;;::::::;;,`````````
``````````.,,:::::,,,,,,,,::::;;;''++++++':``````````.::::::::,,,,,,:::::::::::::::::::;;;'';;;:;;;;;;;;;;;;;;;;;;;;;;;;;;''''''''''''''''''''''''''''';;;;;;;;;;;;;';.`````````.;++''+''''++'''++''';;;;;::::::;;;,`````````
``````````.,,,:,,,,,,,,,,,:::;;'''+++++++',````````` `,::::::::,,::::::::::::::::::::::;;;'';;;;;;;;;;;'';;;;;;;;;;;;;;;;;'''''''''''''''''''''''''''''';;;;;;;;;'''';.``````````:'+''+'+++++++'''';;;;;::::::::;;;:`````````
```````` `.,,,:,,,,,,,,,,::;;;'''++++'+++;.```````````.,:::::::::::::::::::::::::::::::;;;'';;;;;;;;;;'''';;;;;;;;;;;;;;;'''''''''''''''''''''''''''''''''''''''''';':```````````,''+''+++++++''';;;::::::::::::;;;:.````````
```````` `.,,,,,,,,,,,,:::;;;''+'+++''+++;` ```````````,::::::::::::::::::::::::::::::;;;;'';;;;;;;;;'''';;;;;;;;;;;;;;;;''''''''''''''''''''''+''''''''''''''''''';;:```````````,;'++'+''++''';;;:::::::::::::;;;;:.````````
``````````.,,,,,,,,,,:::;;;''''''''''++++;``````````````,:::::::,:::::::::::::::;;;;;;;;';;;;'';;;;''''';;;;;;;;;;'';''';'''''''''''''''''''''''+++''''''''''''''''';.````````````:++''+++''';;;:::::::,::,::::;;;;:.` ``````
``````````.,,,,,,,,:::::;;''''''''''''+++;``````````````.:::::,::::::::::::::;;;;;;'''''''''''''''''';;;;;;;;;;;;;;;;;''''''''''''''''''++++++''''++''''''''''+''''':`````````````:+'''''';;;;::::::::,,::::::;;;;;:.````````
```````` `.,,,,,,,:::;;;;'''''''''''''++':``````````````.;;;;:::::::::::::::;;;;''''++++'''''''''''''';;;;;;;;';;''';;''''''''''''''''++++++'''''''''''''''''++++++':` ```````````:+''''';;;;::::::::::::::::;;;;;;:,````````
```````` `.,,,,,:::;;;;;;''''''''''''''+',``````````````,'+''';;;;:::::::::;;;;;'''+++++'''''''''''''''';;;;;;;;'''''''''''''+++''''''''''''''''+++++'''''++++++##+', ````````````:'''';;;;;::::::::::::::::;;;;;;;;,.```````
``````````.,,,:,:::;;;;;;''''''''''''''+'.``````````````,'#++''''';;;;;;::::;;;;'''''''';''''''''''''''';;;;;;;;''''''''''''''''''''''''''''''+++++++++++++++##++++',`````````````:'''';;::::::::::::::::::;;;;;;;;;:.```````
``````````,,,:::::;;;;;;;;;;;;;;'''''''+'.``````````````,+###+++'''''''';;;;;;;;;;;;;;;;;'++++''''''''''';;;;;;;;;';;;''''''+++++'''''''''++++++++++++++++++++'''++',`````````````:'''';;;:::::::::::::::::::;;;;;;;:.```````
`````````.,:::::::;;;;;;;;;;;;;;;;;''''''```````````````:+######+''''''''''''';;;;::;;;;;'++'++''''''''''';;;;;'''''''''''++++++++++++++++++++++#+++++++'''''''''++',`````````````:'++''';;;;;::::::::::::::::::;;;;:.```````
`````````.,::::::::;;;;;:::::::;;;;''''''```````````````:+#######++''''';;;''''';;;;;;'';'++'+++'''''''''';';;;'''''''''''''''''++++++++++++++++++''';;:;;;;'++++##+,`````````````:'++'''';;;;;;::::::::::::::::;;;;:.```````
```````` .,,::::::::::::::::::::;;'''''''.``````````````;+########++#+++''';;;;::::;;;;;''++''';;;';::::::::::::;;;;;;;;;;;;;'''''';;'++++';'';;;;;;:;;;''+########+,`````````````,'++++'''''''';;;;;;:::::::::::::::````````
`````````.,,::::::::::::::::;;;;;''''''';. `````````````;+############++##+++''';;::::::;'';;;::::;:,,..........,,,,,,,:::::::::::,,,::::;::;;;;'''''+++########+##+,`````````````,'+++++++''''''';;;;;::::::::::::::.```````
`````````.,:::::::,,,,::::::;;;;;''''''':` `````````````;+####################++++''';;''''';;;:;;:,.....```````..,,,,,,,,,,,,,,,,,,,,,,,::;'''+++##############+##+:`````````````,;+++++++++'''''''';;;;;;::::::::::.```````
`````````,:::::::::::::::::::;;;;;'''''',` ````````````.'+##############+############++++##+++++++;,..,...`````..,,,,,,,,,,,,,,,,,,,,,,,:;'++######################+:`````````````.;++++++++++++'''';;;;;;;;;;;::::::,```````
`````````,:::::::::::::::::::::::;;;'''',``````````````.'#######################++++##############;,,,,...````.,,,,,,,,,,,,,,,,,,,,,,,,:;+#########################+:`````````````.;+++'+++++''''';;;;;;;;;;;;;;;;;;;:```````
`````````,::::::::::::,,::::::::;;;''''',``````````````,'###################+++++++++++###########:.,..``````..,,,,,,,,,,,,,,,,,,,,,,,::'+#########################+:` ```````````.;'++'++++''';;;;;;;;;;;;;;;;;;:;;;:```````
`````````,::::::::::::::::::::::;;'''''',``````````````:+#################++++++++++++++##########:.,...`````..,,,,,,,,,,,,,,,,,,,,,,,,:;+#########################+:`````````````.:'+''''''';;;;:::;;;;;;;;;;;;;:;;;:```````
`````````,:::::::::::;;;:::::::::;;;'''',``````````````;+#########++####+++####+++++++++##########:,,...````..,,,,,,,,,,,,,,,,,,,,,::,,:;+#+########################;.``````````` .:'''';;;;;;:::::;;;;;;;;;;;;;;:;;;:```````
````````.,,,:::::::::::::;;;;;::;;;;;'+',` ```````````.;+########+++###+#####++++++++++++++######+:,..``````..,,,,,..`.,,,,:,,,,::::,,,:'+###+'+################@#+#;`` `````````` ,'''';;;;::;;;;;;;;;;;;::::::;;;;;:```````
````````.,,,,:::::::::::;;;;;;;;;;;';'+',` ```````````.'++########++####++++++++++++++++#########+:,..```````..,:,.````.,,,:,,,::::,,,,,;+##+::;####################'.```````````` ,'''';;;;;;;;;;;;;;;;::::::::;;;;;:```````
````````.,,,,:::::::::;;;;;;;;'''';'''''.`````````````,++##########+####'++++++++''+++++###+#####+:,..````````.,,,`````.,,,,,::::::,,,,,'###+:,;+###################',`````````````.;''';;;;;;;;;;;'';;;:::::::::;:;;;```````
````````.,:,::::::::::;;;;;;;;;';;;'''';``````````````:+################++++++++++'++++++++++####+:,..````````.,..`` `.:,,,,:::::::,,::'###+';'+###################+;`````````````.;'''';;;;;;;;;;;;;::::::::;;;;:;;:```````
````````.,::::::::::::::;;;;;;;;;;;'''';`````````````.:++#############+#####++++++++++++'+++#####+:,..````` ``.,``````.,::,,,::::::,,,::'#++#';'+####################'.`````````````:'''';;;;;;;;;;;;:::::::;;;;;;;;::```````
````````.,:::::::::::::::::::::::;;'''';````````````.,:''+#####++####++###++++++++''+++++++######+,,..`.``` ``....``,,,,::,,,,,,,,,,,,,:'+###';'+####################+,`````````````:'''';;;;;;;;;;::::::::::;;;;;:;::```````
````````.,::::::::::::,,::::::::;''''+';```````````.,,::;'+++##+###+#++#+++++++++''''+++++#######+,,..`.``````..,,.,,,,,:,,,,,,,,,,,,,,:'####+++#####################+;`````````````,'''';;;';;;;;:::::::::::;;;;;:;::```````
````````.,::::::::,,,,,,:::::;;;;''''++;``````````.,::,,::;;'+++###+#++#+##++++'''''''++++++++###',...`.`````..,:::,...,:,,,,,,,,,,,,,::+@#+######################+#+''.``````````` ,';'';;;';;;;;:::::::::::;;;:::;:;```````
````````,,::::,,,,,,,,::::;;;'''++'''+';`````` .,,,,,,,:,,::;;'''++##++#++++++''';;'''+++++++###',.....````...,:::,..,,::,,,,,,,,,,,,,:+##########################++';;`````````````;'''';;;;;;;;:::::::::::::::::;;:,``````
````````.,::,,,,,,,,,,::;;;'''''++''''';````````,,:,,::,,,,,,,::;;''+++#+++++++'';;;;''+++++++++#',....`......,,:;;::::::,,,,,,,,,,,,,,:+########################++';;;',. ``````````;'''''''';;;;;;;;:::::::::::;::;:,``````
````````.,,,,,,,,,,,:::;''''''''''''''';```````.:::::::::,,,,,,,::::;;''''+++++';;;;;;''+++#++++#',..........,,,,:;;;;:::,,,,,,,,,,,,,,:+####################++++'';::;+',```````````:''''''''';'';;;;;;;;::;;;;;;::;:,``````
````````.,,,,,,,::::;;;''''''''''';'''':``````.:;:::;;;:::::::,,:::,,,:::;''+++'';;;;;''++++++++#',..........,,,,::::::,:,,,,,,,,,,,,,,:+#################+++''';';;::;'+;.``````````,''''''''';'';;;;;;;;;;;;;;;;;:;:,``````
````````.,,,,,:::::;;;'''''''';;;;;;''':`````.:;;:::;;;;;;:::::::::,,,,::;;'''';;;;;;;''+'++++++#',...,......,,,,::::::,:,,,,,,,,,,,,,:;+#############+++''';;;;;;;;;:;;++;.`````````.;''''''';;;;;;;;;;:;;;;;;;;;;;;:,``````
````````,,,,,::::::;;;;;;;;;;;;::;;;''':`````,;';::::;;;;;;::::::::,,::::;;;;;::::::::;'';;'''''';,.........,,,:,::::::::,,,,,,,.,,,,,:;+###########++'';;;;;;;;;;;;;:;;'+',``````````;''';;;;;;;;;;;;;;:;;;;;;;;;;;;:,``````
````````,,,,,:::::;;;;;;;;:::::::::;;';:````.:'';:,::::;;;;;;;::::::::::;;;::,,,,,,,,::';:,::::::;,,.........,,,,,:::::::,,,,,,,,,,,,,:'########++++'';;;;;;;;;;;;;;:::;;'';.`````````;''';;;;;::;;;;;;;;;;;;;;;;;;;;:,``````
````````,,:,,:::;;;;;;;::::,,::::::;;;;:````.:'';:,::::;;;;;;;:::::::::;;::,,,,,,,,:::;';,,,,,,,,::,.....```..,,:,,,:::::,::,,,,,,,,,:;++####+++'';;;;;;';;;;;;;;;;;:::;;;';,```````` ;''';;;;;:::;;;;;;;;;;;::::;;;;:.``````
````````,,::::::;;;;;::::::::::::::;;';,`` `,;'+':,:::::::;;;;;:;::::::::,,,,,,,,::::;;;::,:,,:::::::,,,.....,,,::::::::::::,,,,::::;'+++++''''''';;;;;;'';;;;;;;;;::::;;;'':` ```````:';';;;;;;:;;;;;;;;;::::::;:;;:;, `````
````````,,:,::::;;;;;::::::::::::;;;;';,````:;''':,::,::::::;;;:;::::::::,,,,,,,::::;;;;::,:,::::::;;;;;;;;;;;'';;;;;''''''''''''''+++++''''''';;;;;;;;;'';;;;;;;;;::::;;;;':. ```````:''';;;;;;;;;;;;;:::::::;;;:;;:;.``````
````````,,:,::::::::::::::::::::;;;;;';,```.:'''':,::,,:::::::::;:::::::,,,,,,,::;;;;;;;::,::::::::;;'';''''''''''''''''''''''++++++++''''';;;;;;;;;;;;;'';;;;;;;;;::::;;;;;;,````````:'''';;;;;;;;;;:::::::::;;;:;;;;.``````
````````,,:,,:::::::::::::::::::;;;;;';,```.:''''::::,,,,:::::::::::::,,,,,,,::::;;;;;;;::,:::::;:::::::::::::::;;;;;;;;;;;;;;''''''''''''';;';;;;;;;;;;'';;;;;;;;;;::::;::;;,. ``````,'''';;;;;;;;;:::::::::;;;;;;;;;.``````
````````,,:,,::::::::::::::::::::;;;;';,```.:;;';::::,,,::::::::::::,,,,,,,,::::::;;;;;;;:::,:::::::::::::::::::::::::::;;;;;;''''''';;;''';;';;;;;;;;'''';;;;;;;;;:::::;::;;:.```````.'''';;;;;;;;:::::::::;;;;';;;;:.``````
```````.,,:,,::::::::::::::::::::;;;'';,```.:;;;;::::::,::::::::,,:,,,,,,,:::;;::;;;;;;;;:::,,::::::::::::::::::::::::::;;;;;;'''''''';;;';;;;;;;;;'''''';;;;;;;;;;:::::;;::;:,```````.'''';;;;;;;;:::::::;;;;;;';;;;:```````
```````.,,:,,::::::::::::::::::::;;;'';,` `.:;;;;:::::::::,,,,,,,,,,,,,,,:::;;;;:;;;;:;;:::::,:,::::::::::::::::::::::::;;;;;'''''''''''''';;';;;;;''''';;;;:;;;;;;:::::;;::::,````````;''';;;;;;;;;:::::;;;;;;;;;;:;:```````
```````.,,:,,:::::::::::::::::::;;;''';,` `,:;:;::::::::,,,,,,,,,,,,,,,,::::;;;;:;;;:::;::::::::::::::::::::::::::::;;;;''''''''''''''''''''''';;;;';;;;;;;:::;;;;;:::::;;::::,.```````;''';;;;;;;;;;;::;;;;;;;;;:::::```````
```````.,,::::::::::::::::::::::;;;''';,```,::::::::::,,,,,,,,,,.,,,,:::::;;;;;;:::::::;::,:::::::::::::::::::::::;;;;;;'''''''''''''''''''''';;;;;'';;;;;;::;;;;;::::::;;;::::.``````.:''';;;;;:;;::;;;;;;'';;;;;:::: ``````
```````.,,::::::::::::::::::::::;;;''';,```,:::::::,,,,,,,,,,,,,,,,,::::;;;;;;;;;;;::::;;::::::::::::::::::::::::;;;;;'''''''''''''''''''''';;;;;;;;;;;;;;:::;;;;;::::::;;;::::,```````,;'';;;:;:;;;;;;;;;;';;;;:::::: ``````
```````.,,:::::::::::::::::::::::;;''';,```.:::,,,,,,,,,,,,,,,,,,::::;;;;;;;;;;;;;;;::;;;:::::::::::::::;;;;::::::;;;;'''''';''''';;;;;;;';;;;;;;;;;;;;::::::;;;;;::::::;;;::::,```````.;'';;;:::;;;;;;;;;;;;;;;:::::: ``````
```````.,,:::::::::::::::::::::::;;;'';,```.:::,,,,,,,,,,,,,:::::::;;;;;;;;;;;;;;;;;::;;;::::::::;;;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;:::::::;;::::,```````.;'';;;:::::;;;;;;;;;;;::::::::```````
```````.,,:::::::::::::::::::::::;;;;;;,```.:::,,,,,,,,,,,::::::;;;;;;;;;;;;;;;;;;;::::;::::::;;;;;;;;;;;;;;;;;::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;:::::::;;:::::.``````.:'';;;;;::;;;;;;;;;;;::::::::;```````
```````.,::::::::::::::::::::::::;;;;;;:```,::,,,,,,,,,::::::;;;;;;''''''';;;;;;;;;:::;;;::;;;;;;;;;;;;;;;;;;;;;;;::::::::::::;;;;;;;;;;;;;;;;;;:::::::::::;;;;;;;:::::::;;;::::,```````:;';;;;;;;;;;;;;;;;:::::::::;;```````
```````.,::::::::::::::::::::::::;;;;;;:``.:;::,,,,::::::;;;;;;''''''''''';;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::;;;;;;;;;;;;;;;:::::::::::;;;;;;;;;::::::;;;::::,```````:;';;;;;;;;;;;;;::::::,,::::;;```````
```````.,::::::::::::::::::::::::;;;;;;:``.;;::::::::;;;;;;''''''''''''''';;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::;;;::;;::;;;;;;;;::::::::;;;;;;;;;::::::;;;::::,```````,;';;;;;;:::::::::::,,,,:::;;;```````
```````.,,::::::::::::::::::::::::;;'';:``,''::;:::;;;;;'''''''''''''''';;;;;;:::;;;;;;;;;:;;:;;;;;;;'''''''';;;;;;;;;:::::::::::::;;:::::;;;;::;:::::::::;;;;;;;;;;:::::;;;::::,.``````,;';;;;;;:::::::::,,,,:::;:;;;```````
```````.,:::::::::::::::::::::::::;;;';; .:''::;;;;;;;'';;;''''''''''';;;;;;;;;;;;;;;;;;;;:;::;;;;;;;''''''''''''';;;;;;;;;::::::::::::::::::::::::::::::::;;;;;;;;;:::::;;;:::,,.``````.;'';;;;;:::::,,,,,,,::::;;;;;```````
```````.,:::::::::::::::::::::::::;;;;;;,:''';;;;;;;;;''''''''''''''';;;;;;;;;;;:;;;;;;;;;::::;;;;;;;;;;''''''''''';;;;;;;;;;::::::::::::;;;;;;:::::;;;;;;;;;;;;;;;;;::;;;';::::,,``````,;'';;;;;::::,,,::,::::::;;;;;```````
```````.,,::::::::::::::::::::::::;;;;'''++';;;;;;;;;;;;'''''''';;;;;;;;;;:::::::::::;;;;;::::;;;;;;;;;;;;;;;'''''';;;;;;;;;:::::::::::::::::::::::::::;;;;;;;;;;;;;::::;;;;:::::,``````,;';;;;;;::::::::::::::::;:::;```````
```````.,,::::::::::::::::::::::::;;;;'''++';;;;;;;;;;;;;;;;;;;;::::::::;;:::::::::::;;;;;::::;;;;;;;;;;;;;;;'''''';;;;;;;;;:::::::::::::::::::::::::::::::;;;;;;::::,,:::;::,,,:,`````` .,.....,....```,,,,,,,,,:,::: `````
També dóna l'opció de generar-ho en color.