Jackson Pollock

Miltos Manetas 2003 Site web http://jacksonpollock.org

Dripping Neen Mouse
Au printemps 2000 l’artiste grec Miltos Manetas s’installe à Los Angeles, fonde l’organisation et la galerie de l’Orphelinat Électronique et déclare “la fin de l'Art, et le début du Neen !
Ainsi naît le Neen : “mouvement artistique qui utilise et maltraite les technologies pour créer des résultats artistiques inattendus”.
Manetas organise la première exposition de groupe d’artistes Neen chez Gagosian New York peu après. Les œuvres numériques semblent avoir un avenir prometteur pour les galeries new-yorkaises.
Peintre, Miltos Manetas manipule les jeux vidéo comme les technologies et les sites web. Collectionné par Charles Saatchi, Manetas avait le sentiment que le qualificatif « art contemporain » était devenu inappropriée pour décrire l’art et la culture des nouveaux médias qui utilisent les écrans d’ordinateur, la production digitale, les logiciels open source et Internet pour produire un art surprenant et novateur. C’est pourquoi il demande au cabinet marketing californien Lexicon d’inventer un nom approprié pour ce nouveau mouvement. En mai 2000, le terme Neen apparait en proclamant “une réutilisation créative et opportuniste des technologies dans un but tout à fait différent de celui pour lequel elles étaient désignées”. Les œuvres Neen sont évoluées, nouvelles, personnelles et… temporaires, elles ouvrent de nouvelles opportunités et réutilise les technologies bon marché et grand public.
Considéré dès 1996 comme le premier “machinima-maker” parce qu'il a fait accepter ses vidéos ludiques de jeux vidéo (dans SuperMario Sleeping, Mario dort sous un arbre, tandis que dans Flames, Lara Croft est constamment blessée) comme des réalisations artistiques significatives et révolutionnaires, Manetas est exposé, entre autre, par Nicolas Bourriaud dans son exposition New Yorkaise Joint Ventures, puis en 2009 par Jan Aman, lors du tout premier «Pavillon Internet» de la Biennale de Venise. Mais c’est surtout en défiant la très factuelle biennale du Whitney Muséum avec Whitneybiennial.com, par une exposition (toujours) en ligne que Manetas met le Neen à l’honneur en 2002.
C’est dans cette conjoncture qu’apparait JacksonPollock.com (aujourd’hui .org) comme la pièce interactive de 2003 qui ré-utilise de dripping (forme de non-peinture physique que peintre américain Jackson Pollock inventa en 1947 sans utiliser des pinceaux mais des baguettes et en évitant d’entrer en contact avec la toile) à l’échelle de la souri et de la dextérité de l’internaute. Pièce fugace (les dessins ne sont pas enregistrés par l’application qui revient à la feuille (Toile) blanche) chaque intervention du spectateur est sa vision de l’occupation colorée et rythmée d’un face à face qui maltraite le dessin de la machine et le geste de Jackson Pollock remis au goût écranique et technologique par Manetas.

Pièce Neen, JacksonPollock.com allait disparaitre, connaitre l’omniprésence de la technologie contemporaine et les transformations irrémédiables qui découlent des évolutions machiniques. C’est ainsi qu’accès)s( à entrepris la “maintenance” de cette œuvre flash en jacksonPollock.org pour, qu’encore quelques temps, le Neen joue avec nos comportements et nos attitudes créatives confinées.
JJG/La revue.fr

Miltos Manetas

“Miltos Manetas est un peintre, artiste conceptuel et théoricien d'origine grecque dont l'œuvre explore la représentation et l'esthétique de la société de l'information. Manetas est le fondateur du mouvement artistique NEEN, un pionnier de l'art après les jeux vidéo (MACHINIMA) et un instigateur de l'art sur Internet. En 2009, Manetas a lancé le PAVILLON INTERNET pour la Biennale de Venise. En 2014, en collaboration avec l'Institut suisse de Rome, il a introduit le concept de ÑEWPRESSIONISM. Selon Lev Manovich, l'œuvre de Manetas peut être placée dans une tradition bien établie de la peinture moderne (représentant des personnes modernes dans leur cadre moderne particulier).” cargocollective.com

.................*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*.....................+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#.....................:#@@@@@@@@@@@@@@@@@@@@
.................=+*##@@@@@@@@@@@@@@@@@@@@@@@@@@@@#*++===......................=++*##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#*++*##@@@@@@@@@@@@@@@@@@@@@@@@@@@@#**++==-.....................-++*##@@@@@@@@@@@@@@@@
........................+#@@@@@@@@@@@@@@@@@@@@#*.......................................+#@@@@@@@@@@@@@@@@@@##*-............=##@@@@@@@@@@@@@@@@@@@@#:......................................=#@@@@@@@@@@@@
...........................#@@@@@@@@@@@@@@@@@@:.........................................:#@@@@@@@@@@@@@@#=....................+@@@@@@@@@@@@@@@@@@=..........................................#@@@@@@@@@@@
............................+@@@@@@@@@@@@@@@@+...........................................#@@@@@@@@@@@#=........................-#@@@@@@@@@@@@@@@#...........................................*@@@@@@@@@@@
.............................*@@@@@@@@@@@@@@@+..........................................+@@@@@@@@@##:...........................-#@@@@@@@@@@@@@@#..........................................-@@@@@@@@@@#-
..............................#@@@@@@@@@@@@@@#.........................................+@@@@@@@@@*...............................+@@@@@@@@@@@@@@#:........................................-#@@@@@@@@#:..
...............................#@@@@@@@@@@@@@@=.......................................*@@@@@@@#+..................................*@@@@@@@@@@@@@@+.......................................=@@@@@@@@#:....
...............................+@@@@@@@@@@@@@@*......................................#@@@@@@#*.....................................#@@@@@@@@@@@@@@......................................*@@@@@@@#:......
................................#@@@@@@@@@@@@@#....................................=#@@@@@@#.......................................+@@@@@@@@@@@@@@+...................................:#@@@@@@#-........
................................:#@@@@@@@@@@@@@*..................................*@@@@@@#-.........................................#@@@@@@@@@@@@@#..................................+@@@@@@#=..........
.................................*@@@@@@@@@@@@@@:...............................=#@@@@@#=...........................................=@@@@@@@@@@@@@@=...............................:#@@@@@#*............
.................................-@@@@@@@@@@@@@@*..............................#@@@@@@*..............................................#@@@@@@@@@@@@@#..............................*#@@@@@#:.............
..................................*@@@@@@@@@@@@@#............................+@@@@@@#................................................=@@@@@@@@@@@@@@+...........................-#@@@@@#=...............
...................................#@@@@@@@@@@@@@+.........................=@@@@@@#-..................................................#@@@@@@@@@@@@@#..........................#@@@@@@+.................
...................................*@@@@@@@@@@@@@@:......................:#@@@@@#+....................................................-@@@@@@@@@@@@@@=.......................*@@@@@@*...................
...................................-@@@@@@@@@@@@@@+.....................*@@@@@#*.......................................................#@@@@@@@@@@@@@#.....................=@@@@@@#:....................
....................................*@@@@@@@@@@@@@#...................+@@@@@@#:........................................................=@@@@@@@@@@@@@@=..................-#@@@@@#=......................
....................................:#@@@@@@@@@@@@@+................-#@@@@@@=...........................................................#@@@@@@@@@@@@@#................:#@@@@@@+........................
.....................................*@@@@@@@@@@@@@#..............:#@@@@@@+.............................................................=@@@@@@@@@@@@@@-..............*@@@@@@#:.........................
.....................................=@@@@@@@@@@@@@@+............*@@@@@@#................................................................#@@@@@@@@@@@@@#............+#@@@@@@-...........................
......................................#@@@@@@@@@@@@@#..........+@@@@@@#-.................................................................+@@@@@@@@@@@@@@=.........-#@@@@@@+.............................
......................................-#@@@@@@@@@@@@@=.......=#@@@@@#+....................................................................#@@@@@@@@@@@@@*.......:#@@@@@@*...............................
.......................................*@@@@@@@@@@@@@#.....:#@@@@@@*......................................................................+@@@@@@@@@@@@@#-.....*@@@@@@#:................................
.......................................=@@@@@@@@@@@@@@+...*@@@@@@#:........................................................................#@@@@@@@@@@@@@#...+#@@@@@#-..................................
........................................#@@@@@@@@@@@@@#.+#@@@@@#=..........................................................................+@@@@@@@@@@@@@@=-#@@@@@#*....................................
........................................-@@@@@@@@@@@@@@@@@@@@@+.............................................................................@@@@@@@@@@@@@@@@@@@@@#......................................
.........................................#@@@@@@@@@@@@@@@@@@*...............................................................................+@@@@@@@@@@@@@@@@@@#-.......................................
.........................................=@@@@@@@@@@@@@@@@#:.................................................................................#@@@@@@@@@@@@@@@#+.........................................
..........................................#@@@@@@@@@@@@@@=...................................................................................+@@@@@@@@@@@@@@*...........................................
..........................................=@@@@@@@@@@@@@@*...................................................................................:@@@@@@@@@@@@@@#...........................................
...........................................#@@@@@@@@@@@@@@:...................................................................................+@@@@@@@@@@@@@@=..........................................
...........................................+@@@@@@@@@@@@@@*....................................................................................#@@@@@@@@@@@@@#..........................................
..........................................+#@@@@@@@@@@@@@@#..................................................................................=#@@@@@@@@@@@@@@@=.........................................
........................................=#@@@@@@@@@@@@@@@@@+...............................................................................:#@@@@@@@@@@@@@@@@@#.........................................
......................................:#@@@@@@@@@@@@@@@@@@@#..............................................................................*#@@@@@@@@@@@@@@@@@@#-........................................
.....................................*@@@@@@#+@@@@@@@@@@@@@@+...........................................................................+#@@@@@#+#@@@@@@@@@@@@@#........................................
...................................*@@@@@@#-..#@@@@@@@@@@@@@#.........................................................................-#@@@@@@*..+@@@@@@@@@@@@@@=.......................................
.................................=#@@@@@#+....:#@@@@@@@@@@@@@=......................................................................:#@@@@@@#.....#@@@@@@@@@@@@@*.......................................
...............................-#@@@@@@*.......*@@@@@@@@@@@@@#.....................................................................*@@@@@@#-......=@@@@@@@@@@@@@#:......................................
..............................#@@@@@@#:........=@@@@@@@@@@@@@@=..................................................................*@@@@@@#=.........#@@@@@@@@@@@@@*......................................
............................*#@@@@@@=...........#@@@@@@@@@@@@@#................................................................=#@@@@@@*...........+@@@@@@@@@@@@@@-.....................................
..........................=#@@@@@@+.............-#@@@@@@@@@@@@#-.............................................................:#@@@@@@#:.............#@@@@@@@@@@@@@*.....................................
........................-#@@@@@@#................*@@@@@@@@@@@@@#............................................................#@@@@@@#-...............=@@@@@@@@@@@@@#.....................................
.......................#@@@@@@#:.................=@@@@@@@@@@@@@@-.........................................................+#@@@@@@+..................#@@@@@@@@@@@@@+....................................
.....................*@@@@@@#=....................#@@@@@@@@@@@@@*.......................................................=#@@@@@@*....................+@@@@@@@@@@@@@@:...................................
...................+@@@@@@@*......................-@@@@@@@@@@@@@#:....................................................:#@@@@@@#.......................@@@@@@@@@@@@@@+...................................
.................-#@@@@@@#.........................#@@@@@@@@@@@@@*...................................................*@@@@@@#-........................+@@@@@@@@@@@@@#...................................
...............:#@@@@@@#-..........................=@@@@@@@@@@@@@@-................................................+@@@@@@#+...........................#@@@@@@@@@@@@@+..................................
..............*@@@@@@@+.............................#@@@@@@@@@@@@@*..............................................+#@@@@@@#.............................+@@@@@@@@@@@@@@:.................................
............+#@@@@@@*...............................-@@@@@@@@@@@@@#-...........................................-#@@@@@@#:...............................#@@@@@@@@@@@@@*.................................
..........-#@@@@@@#:.................................#@@@@@@@@@@@@@#..........................................#@@@@@@#=.................................+@@@@@@@@@@@@@#:................................
........:#@@@@@@#-...................................=@@@@@@@@@@@@@@+.......................................*#@@@@@@*....................................#@@@@@@@@@@@@@#................................
.......*@@@@@@#+......................................#@@@@@@@@@@@@@#.....................................+#@@@@@@*......................................+@@@@@@@@@@@@@@+...............................
.....*@@@@@@@#........................................=@@@@@@@@@@@@@@*..................................=#@@@@@@#-.......................................:@@@@@@@@@@@@@@#...............................
...*#@@@@@@@=..........................................#@@@@@@@@@@@@@@=...............................=#@@@@@@@*..........................................*@@@@@@@@@@@@@@*..............................
.+@@@@@@@@*............................................*@@@@@@@@@@@@@@#.............................=#@@@@@@@#-...........................................:#@@@@@@@@@@@@@@=.............................
@@@@@@@@@+.............................................=@@@@@@@@@@@@@@@#..........................=#@@@@@@@@#..............................................#@@@@@@@@@@@@@@#:............................
@@@@@@@@#..............................................-@@@@@@@@@@@@@@@@#.......................*#@@@@@@@@@@-..............................................#@@@@@@@@@@@@@@@#-...........................
@@@@@@@@#..............................................*@@@@@@@@@@@@@@@@@#-..................-*@@@@@@@@@@@@@-.............................................-#@@@@@@@@@@@@@@@@#+..........................
@@@@@@@@@*...........................................:#@@@@@@@@@@@@@@@@@@@@#=.............:*@@@@@@@@@@@@@@@@#............................................*@@@@@@@@@@@@@@@@@@@@#*........................
@@@@@@@@@@#*=:...................................:+##@@@@@@@@@@@@@@@@@@@@@@@@@#*=:...-+##@@@@@@@@@@@@@@@@@@@@@#+-....................................=*#@@@@@@@@@@@@@@@@@@@@@@@@@##+-...................
@@@@@@@@@@@@@@@@@@-........................+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+........................:#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#:............
@@@@@@@@@@@@@@@@@#.........................#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#.........................*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*.............
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
--------------===-----===-----------=--=-----=------=-----------------=-----=-=-------=-=--=----------------=---------=----------=------=+-----------------===-===---------------:----=+=---------------
----===----===-=-------==-===----=-------=--------==------------------------====------==--------------=-----=----------=+------------------------------------=----=-------====-=======+=+---------------
---=---=-==----===-----===----------------=----===-==++=----++**==----=------====-----------------======-+===---=-------+===+-----------------==---------=+=+-=---=------======-==--==-+----------------
-------==---=-------=----------------=----==-====+=+==+=+-+===========--=-=-=----====--===+=+:::--======-=++----------=-==--===-:::---------=-=--------=--++=--==-=-----------==-------:------+---------
---=--==-==-=----=--==----==--=------------=--=-=+==--+==-=------=-=-=---=---------=-=----=+=--::---------==----------=----------:::--------:=-=---=-------------=-==-------==-----==---------++=-------
---=-=---=-------------=--------=--------=------==+----+=+---=--=-===---=-----------------------:---------=--==--=-----==-=----=-----------------=--=-----------=========-------=---+=-------=::==----=+
----=-------==------:----------*+*+==-=-===-=--+=+------===-----------=-=-------------------==-------------=--+=--------------=-=---------=----------------------==-=====--------=-+=+----------------=-
===----=---=-=====-==--=-=---------==---==-----==-------+=+------------=----------------=======--::--------=-+===--------==-------=---------------------------------=-+=--------===-=-----------------=+
+*==--==-==-==+=-----------------------=------+=+--------+-------------=-----------===========-------------++------------=+--=--------===+----=----------------------+**=-------===---------------------
--=--=-=---====------------------------==------+---------+=+---------=----------=========+=+==-------------+==----------=-----=-----=--++---------------------------=-=-------======-----------------=--
-----=---------=-----------------------------+=+---------=++----------=======---==========+===--------------=-----------------==-----=------=============----------------=-----------=--------------++=-
-------------===+=---------------------------=+=----------------------====================-===-----========--=------------------=-----=---================----------=----------------------=---------+--
------------====-==-------------------------=+=-----------====------=-=========================--------==---===-------=---------------==-=====---==-----==-=+---------=--=------=--------=--------------
=-------------------------------------------+=+------------++------=--=========================------------==-==----------------+++=-----------==--=---=---+=+--------=---==-===--======--=-------------
--------------------------------*=-----------=--+===--------------=---=======+===========+======----------::---#**+-----==-=----=-=-----=---------=---=*----+--------==--=--==---==--++--===------------
-----=------------------------=**=--------====---++--------===-------========+==========+++=====------------=+-:+=-------==--------------------:--==+=------:---------=--------------=--==-=------------
-------------------------------========----++-------------==++===================================----:-----=+++-+==-==---------------------====-=----==----------------=---==-----------====------------
------------------------=-------=========--------------==========================================-------::---=::::::-==--------------=+==---==--==-----+-----------------------=----------===-----------
---------------------========--===========+=+--====--============++=-===============================---------------::-=------------+==++=--==---------=-==-----------==----+=--=-=----------==----------
-------------------========================+=================++=====-===================================--------------=------------+=-=--========-------==-===-==========-+=*---=------------=----------
------------------=======================++-=================++===-====================++==================--------------======-=====-+=---::-------=-----=-=-=--=------=====----:-----------===--------
--=====-----------========================+========*##*+================================+============================-----------------------------------==-==-----==-----=:----==----------==-=--=------
========----=-=====================================+**+=======-===========================================================-----------===============----:--=-----=-==---=-+---=----------=-----=---=----
=====-=+=+==+=+=-=======*+*+*==========+=+====================+=+======================-=====================+=+======================================--===-+=+----====-=***=-=----------===---=---=----
=============+=+=========++++===========++--==================++==============================================+======================================--==++====---====--=+++----------==---=-====-==----
===+++=-=------=+======================+=----============-==================-====--===========================-==================================-======--=-=-=-===----=======------==-=-------=-==-=---
======-========-=+=+=================-+=+==--========================+++===-=-==----==++====----=====================================++=======-------=======-=-----====--===+-:----=+++==--=-===+-=-=---
================-=+=+===================-=---===========================------==---===++======-==========================-----------=++=======--==----------=-+====-===+==+====+=+=====-----------==----
=================-==++===============+=+===--==================+++=======-----====-====================================--------------=------=====-------------:----====--=--=-==-----=---------------:-:
==================-+=+=========-=====-+=======++=========================-----===============+========================----=---=-=#*==-=====----===----------+-=++++-+-==++==+==+==+===:----=------------
=====+=============-+===============+=+-========================-==========================++=================+=+=====-==----==-=+=--------======----------------:-=-===========--==-=----------=-=-----
==================++=+===============+===========================+================+=+-========================+++-==----==-----=++---------=-===--==------------::-=+=+=========-==-==----=====----==---
==========++=========-=============+=+============--============+=+=================+=+=========================-============-==+==------==----==-----==-------------+==========-======---------=------=
====+++=================+=========+==============----============+=================--+=============-------=====-====---:-+-------------====-------=====-====-----================------==+------=-------
=========================+=======++=+============----============-==============----=-============-----------====------==--==-------=--==-=-----------====-=-+-+-===--========-==-:-----------------==--
===================-====-=+==---=+======+========----====================+=====-------===========--=---=--------=****-=---+--+---=-==+==----==-------=========+=====--========----==--------=======-=-=-
=========================--=++=+===-==++===========-=============+=+=====++====---------========---=------=-----=+==+------++=-----=++-----=----=-------==-=-:-=-====+====-+==--=--===----=------=---===
==========================--==++=--===============================+============----=++----======--===------====-=-----------=-----------------------------=====-==------==-===-==--==+=--=-----=-----===
============================-==-==================================-=============---+++-----===----=------==----+=+----------=---=----=------===-==---==-====--==---:--===+++++=+=-+=+=----------=--==---
================================================================================----=------------==--===--------+--=-=-==------------=-+**=--==-===-==--========----===-=-===-====-+=---==--------=-----
=========================--=======================================+=+===========----------------==-=-----------=-==---===---------=----=**--=-===----===***==--=--==-=---==---=====---====-=##*==---===-
-----------==============-=========================================+===========----------------=+=--------------------===-=++=-------=--=-----=---=--===+++===-===--==---==---===-===----==+***=--------
--------------============-========================================-===========---+=+-=-===-=====---------------------=--------------=#*------=====-----=++-=---------=--========---=---==-=------------
-------------------============================================================---=+=-=+=-----=-----=+==----------=-++--------=*+--===#+====----------==-=---=------------==--==------====--------------
:---:------:-----------======-----===============+*================+=+==========-----====--------------------=-----====-=====-+++-+=+--=-==---====-----=-----==+=============-------=--==---=--=--------
-=-=------===-=---------------------=============*+=*+===========================--:-===----===-------------===-+=+=-=---------===-+==------=-----=--=-----=--+=+===--=---=---------===-----------=-----
-----------:=------------------------=============================++=+==========-=+=--=----==---------------==---+=---::::-----------=-=----=-=--=--===-=------+-===-------------:==--=----------=---==-
-------==--=---------------------------============================+============-++=-=-=------==--===---------------=---==----===-=---===---------=--=--==--===-+++=---------==--=-=--==-=-===----------
----=--------=--=----=---==---------------========================-==++=========--=--=-----------=-----------=---------=------=-=------------------=====--=-==---===========-----===--=**+++----==------
=-=---=-----==---===---===-==-----------=--------------========================--::----====------------------=====-=----=--------:=---:-----------===--=-=====-=-=---==-----------++-------==---==------
===*+*+==--=------------=-----=======--==+------------------------===========--=+=+==-----==--------------------==---===-------====-==-----==-------------==--===------=-===---=-=++=-----====--------=-
----------=======------=+------=++++===-+=------------=--=-----------=++=-------=+=--=------=--===--====--======--------==-=--=-==+=-=--+--==--===-------------=-----=--==--=-----=--------=+-=-======-=
-------==-=--=-===========--=-=--------=---=====--------------===-------------------=-=---=--=++++=-===-===+=-+--+=+=-==========-+=+==--==---==-=-==-----=--------------=-------=------------==---------
-------=-==----=------------==---------=---=--==---=====------++++=----+==-=-=====-==-===-==-=-==-=---==----==---=+==--===-=---=--+-=-===------=====-------------=-----=--------------------==---=------
-----====-=-==---==-=--=-=-=---+=+----==-=---------==---------==-------++=-----++------++=--==---==+---==----------=---=-------==-------===----=----------------=-----++=----------------------==----===
---=-=--=-==--==-=====-===-----=-=----------===----=-======-------------+==--====-+**+:=---------=+-------=--------------====---------------=-------=-===---==-+=+=----+=---------=--=-------===--------
------==-=--=-=====-==------=------------======-==-=------===+=--+------+=+--==+=--------:---------===*+*--------------=--==-----------------------=-----==-----+=----------------=------------===---=-=
----=====---==-=-======---=--------------------=---=-----==---=---+=-----+==+===--=--=---------------=**+-------=--------==--------------===-------------=---===-------------=---==-----------======--=-
=--=+-==-==---==----==-==---------=--------=--------=---===---=-----+====:++++--------------------==---=-----------++-----------=+----------=------------=---=-----------------------------------------=
---==---=--------====--===-=------==------------------==-=----=------==++=-==--------------------------=----------=++=----------+=+----------------------=-----=------===-==--------------=-------------
-==--===-------==-==------=---------------------------*=++#*-------------+=------------------==--------------------==------------+------------------------==--------------------=+=-------=-------------
==---===------=-=----:--===-=-=---=--=--------=---------=++++--=------------=-----------------=--------=---=-----------==--====-------=---------------------------------------=-+=+---------------------
----=-----====-==-=---------====------------------=+=----===---------------------=-=--==--------------------------------==------------------------===---=----------=-----=-------=-===------------------
----------=---===---------------------------====--===---=-----------------=------=====-=------------=-------=--=----------------------=------------=----=--------==-----==-------:=-=--==---------------
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####################################@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#*###################################*#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##########+*#########################*#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##########==-=##*-=##=+=#=-+#########*#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##########=+#=:+.==.#.##:==:-########*#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##########=+#=:*.**=#.##-=#=*########*#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#####################################*#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#####################################*#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+++++++++++++++++++++++===========================----------------------------------------------------------------------------------------------------===========================+++++++++++++++++++++++
++++++++++++++++++++++==========================-------------------------------------------::::::::::::::::::-------------------------------------------==========================++++++++++++++++++++++
+++++++++++++++++++++=========================--------------------------------------::::::::::::::::::::::::::::::::--------------------------------------=========================+++++++++++++++++++++
++++++++++++++++++++=========================----------------------------------::::::::::::::::::::::::::::::::::::::::::----------------------------------=========================++++++++++++++++++++
++++++++++++++++++=========================--------------------------------::::::::::::::::::::::::::::::::::::::::::::::::::--------------------------------=========================++++++++++++++++++
+++++++++++++++++=========================------------------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::------------------------------=========================+++++++++++++++++
+++++++++++++++++========================----------------------------::::::::::::::::::::::::::::------::::::::::::::::::::::::::::----------------------------========================+++++++++++++++++
++++++++++++++++=======================----------------------------::::::::::::::::::::--------------------------::::::::::::::::::::----------------------------=======================++++++++++++++++
+++++++++++++++=======================---------------------------::::::::::::::::::----------------------------------::::::::::::::::::---------------------------=======================+++++++++++++++
++++++++++++++=======================--------------------------::::::::::::::::------------------------------------------::::::::::::::::--------------------------=======================++++++++++++++
+++++++++++++=======================-------------------------:::::::::::::::------------------------------------------------:::::::::::::::-------------------------=======================+++++++++++++
++++++++++++=======================------------------------::::::::::::::------------------------------------------------------::::::::::::::------------------------=======================++++++++++++
++++++++++++======================------------------------:::::::::::::----------------------------------------------------------:::::::::::::------------------------======================++++++++++++
+++++++++++======================------------------------::::::::::::----------------------==================----------------------::::::::::::------------------------======================+++++++++++
++++++++++======================-----------------------:::::::::::::------------------============================------------------:::::::::::::-----------------------======================++++++++++
++++++++++=====================-----------------------::::::::::::-----------------==================================-----------------::::::::::::-----------------------=====================++++++++++
+++++++++======================----------------------::::::::::::---------------========================================---------------::::::::::::----------------------======================+++++++++
+++++++++=====================----------------------:::::::::::---------------============================================---------------:::::::::::----------------------=====================+++++++++
++++++++======================---------------------:::::::::::--------------================================================--------------:::::::::::---------------------======================++++++++
++++++++=====================----------------------::::::::::--------------=====================++++++++=====================--------------::::::::::----------------------=====================++++++++
++++++++====================----------------------::::::::::-------------=================++++++++++++++++++++=================-------------::::::::::----------------------====================++++++++
+++++++=====================---------------------::::::::::-------------===============++++++++++++++++++++++++++===============-------------::::::::::---------------------=====================+++++++
+++++++=====================---------------------::::::::::------------==============++++++++++++++++++++++++++++++==============------------::::::::::---------------------=====================+++++++
+++++++====================---------------------::::::::::------------=============++++++++++++++++++++++++++++++++++=============------------::::::::::---------------------====================+++++++
++++++=====================---------------------:::::::::------------=============++++++++++++++++++++++++++++++++++++=============------------:::::::::---------------------=====================++++++
++++++=====================--------------------::::::::::------------============++++++++++++++**********++++++++++++++============------------::::::::::--------------------=====================++++++
++++++====================---------------------::::::::::-----------============++++++++++++****************++++++++++++============-----------::::::::::---------------------====================++++++
++++++====================---------------------:::::::::------------===========+++++++++++********************+++++++++++===========------------:::::::::---------------------====================++++++
++++++====================--------------------::::::::::-----------============++++++++++*******########*******++++++++++============-----------::::::::::--------------------====================++++++
++++++====================--------------------::::::::::-----------===========++++++++++******############******++++++++++===========-----------::::::::::--------------------====================++++++
++++++====================--------------------::::::::::-----------===========++++++++++*****######@@######*****++++++++++===========-----------::::::::::--------------------====================++++++
+++++=====================--------------------::::::::::-----------===========++++++++++*****#####@@@@#####*****++++++++++===========-----------::::::::::--------------------=====================+++++
++++++====================--------------------::::::::::-----------===========++++++++++*****#####@@@@#####*****++++++++++===========-----------::::::::::--------------------====================++++++
++++++====================--------------------::::::::::-----------===========++++++++++*****##############*****++++++++++===========-----------::::::::::--------------------====================++++++
++++++====================--------------------::::::::::-----------============++++++++++******##########******++++++++++============-----------::::::::::--------------------====================++++++
++++++====================--------------------::::::::::-----------============+++++++++++*******######*******+++++++++++============-----------::::::::::--------------------====================++++++
++++++====================---------------------:::::::::------------============+++++++++++******************+++++++++++============------------:::::::::---------------------====================++++++
++++++====================---------------------::::::::::-----------============+++++++++++++**************+++++++++++++============-----------::::::::::---------------------====================++++++
++++++=====================--------------------::::::::::------------============++++++++++++++++******++++++++++++++++============------------::::::::::--------------------=====================++++++
++++++=====================---------------------::::::::::------------=============++++++++++++++++++++++++++++++++++=============------------::::::::::---------------------=====================++++++
+++++++====================---------------------::::::::::-------------=============++++++++++++++++++++++++++++++++=============-------------::::::::::---------------------====================+++++++
+++++++=====================---------------------::::::::::-------------==============++++++++++++++++++++++++++++==============-------------::::::::::---------------------=====================+++++++
+++++++=====================---------------------:::::::::::-------------================++++++++++++++++++++++================-------------:::::::::::---------------------=====================+++++++
++++++++=====================---------------------:::::::::::-------------===================++++++++++++++===================-------------:::::::::::---------------------=====================++++++++
++++++++=====================----------------------:::::::::::--------------================================================--------------:::::::::::----------------------=====================++++++++
+++++++++=====================----------------------:::::::::::--------------==============================================--------------:::::::::::----------------------=====================+++++++++
+++++++++=====================-----------------------:::::::::::---------------==========================================---------------:::::::::::-----------------------=====================+++++++++
++++++++++=====================-----------------------:::::::::::-----------------====================================-----------------:::::::::::-----------------------=====================++++++++++
++++++++++======================-----------------------::::::::::::------------------==============================------------------::::::::::::-----------------------======================++++++++++
+++++++++++======================-----------------------::::::::::::---------------------======================---------------------::::::::::::-----------------------======================+++++++++++
+++++++++++======================------------------------:::::::::::::-------------------------==========-------------------------:::::::::::::------------------------======================+++++++++++
++++++++++++======================-------------------------:::::::::::::--------------------------------------------------------:::::::::::::-------------------------======================++++++++++++
+++++++++++++======================-------------------------:::::::::::::::--------------------------------------------------:::::::::::::::-------------------------======================+++++++++++++
+++++++++++++=======================--------------------------:::::::::::::::----------------------------------------------:::::::::::::::--------------------------=======================+++++++++++++
++++++++++++++=======================---------------------------:::::::::::::::::--------------------------------------:::::::::::::::::---------------------------=======================++++++++++++++
+++++++++++++++========================---------------------------:::::::::::::::::::------------------------------:::::::::::::::::::---------------------------========================+++++++++++++++
++++++++++++++++========================----------------------------:::::::::::::::::::::::------------------:::::::::::::::::::::::----------------------------========================++++++++++++++++
+++++++++++++++++========================------------------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::------------------------------========================+++++++++++++++++
++++++++++++++++++========================-------------------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::-------------------------------========================++++++++++++++++++
+++++++++++++++++++=========================---------------------------------::::::::::::::::::::::::::::::::::::::::::::::---------------------------------=========================+++++++++++++++++++
++++++++++++++++++++==========================-----------------------------------::::::::::::::::::::::::::::::::::::::-----------------------------------==========================++++++++++++++++++++
+++++++++++++++++++++==========================---------------------------------------::::::::::::::::::::::::::::---------------------------------------==========================+++++++++++++++++++++
++++++++++++++++++++++===========================------------------------------------------------------------------------------------------------------===========================++++++++++++++++++++++
++++++++++++++++++++++++===========================--------------------------------------------------------------------------------------------------===========================++++++++++++++++++++++++
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
******************************************...***********************************+..+**************************************..=******************************..:******************************************
******************************************...*********************+*******++****+..+*+*************+****+*****************..=*+*******++*********+*********..:****+*************************************
******************************************...*****..:*+..-*=..*:......*+......-*+.......+*****=...........:*...**-..******.......+*=......+*.......:**:......:*-......**********************************
******************************************...*****+..+....+..-**+*+-..+=...-+***+..=**..-*****=..+*-..+*-..*+..+*..=******..-**..:**+**=..-*...**-..*-..***..:*...:=+***********************************
******************************************...******:....-....**...::..+*+:.....*+..+**..-*****=..+*-..**-..**:..:..*******..=**..:*:...-..-*...**-..*:..***..:**=.....=*********************************
******************************************...*******...=+...=*+..-+...+-..=+-..*+..+**..-*****=..+*-..**-..***....+*******..=**..:*..:+-..-*...**-..*+...=:..:*..:++..:*********************************
******************************************-:=*******+:-**=:-***+...+-:+*+-...=**+::***-:+*****+::**+:-**+:-***+..=********::+**-:=**-..==:-*=:=**+:-***-..==:=**=...:+**********************************
************************************************************************************************************=....***************************************************************************************
************************************************************************************************************+==*****************************************************************************************
********************************************************************************************************************************************************************************************************
***********************************************************************************************************++*******************************************************************************************
**********************************************************************************************************=..*******************************************************************************************
**************************************************************=...+**:.+***:.+*+:..-***-.=..:.:***+.:*****=..=..:+***+:..:+**+..***:.+*-.=:.-***********************************************************
************************************************************+...=...*:..**:..*-..--..+*.....+..-**..-*****=...=...+*...::...*+..+**..=*.....=***********************************************************
************************************************************-.......+*..:=..+*........*...***+..+:..******=..**+..++..+**+..=+..+**..=*...**************************************************************
************************************************************=..+*+=+**+....=**..:**=++*..:****-....+******=..**+..++..=**=..++..+*+..=*...**************************************************************
*************************************************************:.....-***=...***+......+*..:*****...-*******=..**+..+*=......=**.......=*...**+..+********************************************************
***********************************************************************************************...******************************************************************************************************
*********************************************************************************************....*******************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
++==++=-++===-==========+++++===++++++++++*****************************+++***+++++++++***+********++++++++++***+++++++++++++++====::..:====-::-==+++++====-::................................:---:::::::
+=====-=+===--=====+++++++++++++++++++++++++**************************++++***+++++++++++==+*+*++****++++++++====+++++++++++=++===+=::..-===-:-:=++++++=====-::.................................:::-:::::
======-=====-=======+++++++++++++++++++++++++************************+++++***+*+++++=++++*++=-.:--=-:.==++++=-==--==+++++++=++===+=-::..==--::::=++++++=====-:....................................::::::
=====-====------=====+=++++++==++++++++++++++**********************+++++++***+++++*+*+*+++..::..:............=.:=:=---=+==++++=====---..-----:-::=+++++++====...::::.................................:::
==-==--==----==-:==:++:++++++=++++++++++++++++*********************++++++***+++++**++++=:...:.........................:-+====++=====--..:---=---:-=++++++====..--::::...................................
=--=-:===--:---=:=+.**.:.:--==++++++=+++++++++*********************++++++***+*+***+=-::..=*:-=:....:......................:.::=+=====-:..--=====---=++++=+=+...-----::..................................
=--=--===--:.--............:..-=++++++++++++++*********************+++++********+==-=++****+===-.....:--.:==-:...............-=++-===-:..:-==+==-:-===++==+...===-----:.................................
=--=------...........-:......::.-=+++++++++++**********************+++++******+==++*********+======-=---:=++++=:..........-==++=+====--..:==++===---=-=+++-..-=====----:................................
----:---.................-::=+==-:.-=+++++++++*********************+++*******++**************+=-------:-+***+++=.........:--==++++====-:..-++++==---=-:=+=...=======---:::..............................
----:..................:----++++++**===+++*************************+++******+++++++++==+********+++==++***+=:...:....::.===++++++++-=---:.-++++===--==-:-...=+=========--::::..:........................
---=.........:-....::.:--:-+**+****+++++***************************+++*******************+-+-+=.++-:.:---:.......==++++++++++++++++=-----:-++++===---=-....-++++========--::....:.......................
==--......:-==+=:...:::::=+++++=+++===++*************************************************++=-=-++==...:.----=--:.+++++++++**+++++++==-=--=-=++++===-===....-++++=========--::....:......................
=--:.......-==+++===-==+=::::==+++++++*******************************************+******++++=+*+=++-:+==+++++*++=+**********++++++=========-++++======....---=++==========---:..........................
--............:::.:...:.==:.+++++++++++******************************************+++*******++*****++************+***********+++=-::........-*+:.:====....:==--==+===--=====--:-:........................
-=-..:--.......-:--:..:-=+=-=++++++++++********************************************+**++*********+***********+++=-:.........................:=.....==.....:-=--=======-=====--::::..::..................
==---======::===--++=-==+++++++++++++++***********************************************+++===--::....................................:----===--==-..-:.....:-==-========--====--:...::::.................
=====+++++++=++++++++++++++++++++++++*********************************************+=:..............................:::::----================------........-=--=========---====--:...::::................
===++++++++++++++++++++++++++++++++**************************************+:=#***...........:::-----======++++++++++++++++++++=====++++=======-==-.......+--=----========---====--::.:.:::...............
------::::.....................-**-==+********=...-********************#.....+:...-++**************************++++++++++++++++++++++++=====--==....:-=+====---========----=====--:.:..:::..............
...............................:*#:..==.:=***=..=..==******************..=#....:**************************************+++++++++++++++++====-:..=+++==-======-----=======-----===---::.::::..............
:::::::::::--:-:---------=======+===-:......:..***+.=.#***************..=**...:+************************************+*++++++++=======++-..-=::=++=====-=+====-----=====-=----------::::::::.............
================================++++++++==:...:=****:.::************-..+***=:.:*+***********************************+++++++=====-::.:-=++===-:-=+++===---=+===------===--=---::-----:::::::.............
===================++++++++++++++++++++++++++-.=******:....-++++=:...=*+++****+:-+*********************************+++++==-::.:---===++++++==:-========---=++===----====--=--:::::--::::::::............
+++++++++++++++++++++++++++++++++++++++++*+-..=**+*******=.......:+*++++++++++++++++++=======+++*********+++==--::::::------======++++++++++=-============-=+==-=----====--=-:::::::-:::::::............
=====++++++++++++++++======+++++=--:...:-=+**+++++++**********+*+++++=================---------::::::::::::--------==========++++++++++++++==--=+======-:---=+===-----===-:----:::::::::::::............
...........::::::::...........:-=+**++++++++++++++++++++++++++++++=======--------------------------------=======++++++++++++++++++++++++++++=--========-:-::-=====-::-====------::::::::::::............
-::::::::::::::::::::.::::::---===+++++++++++++++++++++++++++=======------------------------=========++++++++++++++++++++++++++*++++++++++++=--========---::--====-::-=====------::::::::::::...........
======-------------:-----------===+++++++++++=++++++++++=============-----------===========++++++++++++++++++++++++++++++++*****++++++++++++=:-=====-==---:::--=+==-::-======-----::::::.::::...........
=====================--------======+++++=============================-=----=--===++++++++++++++++******+*+++++++++++++++********++++++++++++=:=+=====-----:--:--=+=-:.:-=====------:::::................
================================================================================++++++++********************++*+++++**********++*+++++++++++=-=+=====-----:------====:::-=======----:::::::.............
==+++++++++++++====================================================+=++++=====++++*********************+*********************+++++++++++++++--+++====----------:-=====----=======-----::::::............
++++++++++++++++============================================+++++++++++++++++++++****************************************+***++++++++++++++=-=+++====-------------=====--====-====-----:::::............
+++++++++++++++========================================++++++++++++++++++++++++++*********************************************+++++++++++++==+++++==--:-----===---===--=--====-==-------::..............
+++++++++++++++++==+==============================++++++++++++++++++++++==++++++++********************************************++++++++++++=-=+++++===-::---====----==---======--==-------::.............
+++++++++++++++++++++++++========================++++++++++++++++====-====++++++++********************************************++++++++++++=-=+++++===-::--=====-----=-:---====------------::............
++++++++++++++++++++++++======================-=++++++++++++++++==:....:=++++++++********************************************+++++++++++++==++++++===--:--=====-------::--=====----------::::...........
++++++++++++++++++++++++++++====++++++=+++===....=+++++++++++++=-==:.:===+++++++*******************************************+++++++++++++++==++++++===--:--=======----=---======----------:::::..........
+++++++++++++++++++++++++++++++++++++++++++++++==+++++++++++++=+++++=++*++++++++**********************+--++***************+++++++++++++++===++++++===-----=======-----==========----------:::::.........
++++++++++++++++++++++++++++++++++++++++++++++*********++++++++++*+++++++++=++**********************=:....=+++++****++****+**++*+++++++++==+++++++====----========--=-======----=--------::::::.........
++++++++++++++++++++++++++++++++++++++++++++++********************+++++++++***********************+=-::-....++++++**+++++++++++++**++++++=++++++++=--=---=========--=-======----==--------:::::::.....:.
+++++++++++++++++++++++++++++++++++++++++*************************+++*+++************************=:......+:...:++++++++++++++******+++++++++++++++=--=---===================---===---:--::::::.::.....::
++++++++++++++++++++++++++++++++++++++********************************************************+=--::.......+=...+++++=-.:++++*****++++++++++++++++=--==-===+======================---::-:::::::::::.::::
+++++++++++++++++++++++++++++++++++++********************************************************+=---:::.:--...=+...=-:..-+=+++****+++++++++++++++++=-:-=====+=======================------::::::::::::::::
+++++++++++++++++++++++++++++++++++*********************************************************++=---:::::-=+...::....==-==+++++++++++++++++++++++++=-:---===++====================-------:::::::::::::::::
+++++++++++++++++++++++++++++++++++********************************************************++==---:..:--:........-===++++++++++++++++++++++++++++=::---=========================-------:::::::::::::::::
++++++++++++++++++++++++++++++++++********************************************************+++=----............:=-===++++++++-..:=++++++++++++++++=::--===++====================---------::::::::::::::::
+++++++++++++++++++++++++++++++*********************************************************++++==---:...........+===+======+++:+-...-=:++++++++++++=-::--===++==========+========----------::::::::::::::::
++++++++++++++++++++++++++++++++*****************************************************++++====----...........=+==+=====+++==..-....=+++++++++++++=-:-=====+====================----------::::::::::::::::
++++++++++++++++++++++++++++++++**************++******+***+**********************+++++======----::............:==-====++=+++=...-++++++++++++++=-:--===++++================-==-----------:::::-:::::::::
++++++++++++++++++++++++++++++*++++****+++++++++++++++++=+++====+++*++*******++++++=======------::.............----==+=====++==++++++++++++++++=----==+++++===============---=----------::--::--::::::::
++++++++++++++++++++++++++++++*++++++++++++++++++=======---------===+++++++++++++=====-----------:............:---=+==+====++++*******++++++++=----==++++++======++======-::-==------------:-----:::::::
+++++++++++++++++*++++++++++++++++++++++++++======-=-------:::::---:-----===========------------:::...........=---=======+++++++********+++++==--:-==++++++============---:-===-------------------::::::
++++++++++++++++++++++++++++++++++++++++==--:--=----:::...::...:--:::::..:::---------------------::............:-----=====+++++********+++++===---==++++++======+==+==-------==--------:-------:::::::::
+++++++++++++++++++++++++++++++++++++==-:..........................................:-------------.................===....--=-=++++***+++++++==---==+++++++=====+++====--:---===--------::------:::::::::
++++++++++++++++++++++++++++++++++=---:...............:.:----........................:-------------:......::.....-==++=.........:+++++++++++==--====++++++====+++=====-:--=====-------:::----:::::::::::
+++++++++++++++++++++++++++++++++=-::...........-=======+++==----:::....:...............:--------------:-:::.....---=----::....+++++++++++++==-=====+++++======+=====--:--======-------::----:::::::::::
+++++++++++++++++++++++++++++++=-.........................................................------------------:....-----=====+++++*++++++++++==--=====+++======+=======-:--====---------::----:::::::::::-
+++++++++++++++++++++++++++++==-....................::::.:.:::-----::::::.................--=========-------....:=++++++++++++++++++++++++==--======++==============----===-----------:-----::::::::::::
=++++++++++++++++++++++++++++++=--................:..::::....::::-:.:...................::-===================++++++++++++++++++++++++++===----====================----==----------:-------::::.::::::::
=++++++++++++++++++++++++++++++++++=-:..........:::.::::.....:.:::::...............::-=====+++++++++++++++++++++++++++++++++++++++++++=====----==+================----==------------------:::...::::::::
-=+++++++++++++++++++++++++++++++++++++=-::...:----:-----.::::-------:::::::.:---====+++++++++++++++++++++++++++++++++++++++++++++++++====----=====+==============--==-==----------------:........::::::
:=++++++++++++++++++++++++++++++++++++++++==+====+=====--=-===--===-=-=-=========++++++++++++++++++++++++++++++++++++++++++++++++++++=====--=====================---==-==---------------:.........::::::
.-==++++++++++++++++++++++++++++++++++++++++++++++===---::::::::---===========+++++++++++++++++++++++++++++++++++++++++++++++++++++++====--=====================----=--=---------------:..........::::::
.:-==+++++++++++++++++++++++++++++++++++++++++++++================+++++==++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++====-=====================---=-------------------:............:::::
#######**#**+++=+*#*+===========++##****#+----+***++=--=*******+++==********************************+++********+++==============+==========------=======+++++++++++++++++++===-----=++*#################
#######***##****+===++========+++**#+++#=---=****++=:+**++****=====+*******************************+********+++++**#*+=-:......................:::---=======-------===+++++++++++++++==---==+**#########
########**+*+++===++=======--=++*#**++-::::-+++++=-..-*###**+=+====+*+++==--::.........:-+**********#*****++++**#+..............................................::-====-------==++++++++++++==----=+*###
#########*###**************+++**++*+:----:-====-::...:=+++***+=====-.....................-***************+++***.............................................................:-===-----===++++++++++===--
########***#*+**#**#****++*+***+++==:----=+++=-:-...:---=====+++===-.....................-***************+***:......................................................................:---------==++++++++
#######*****=+===+****++++****=+==+=:---=+*++=::==------------=++=--.....................+*********#****+***.....................................:::.......................................:-==-----==++
#**#####*==+++==+*+++**#*+=-===+++++=-=+***+=:-***++------------=++=.::::::::::.........:*******###*#*****+...................................:::.................................................:-=--:
#########++*+=+==+++++***+++==++****+##***+=--####**+:......::---=+=.::....::...........+*******#*********............................................:........................:........................
########*++++++--=++++*#***++=+++***+*+**+==-***+++==-.........-====.::...:....::......-#*******#********::..................................................................:....:-::=-:...............
#########*+++++=---===+*###**+====+##**+===-=+++++++==......::::-==-............:.....:********##********.:....:..............................................................::..............::........
#**#######*++++*+--++++******+======+*+===-=+++++++=-.:-:--::::--==-....:.:::.:.......=***********#*****=:.....:.........................................................::.....:...................::..
###########******=--+====++++**+***+++===-=*++=:.....:.-=--::..:===-..::::::::::.....:*****************#-:....::.................................................:.:::..:::.................::--:.......
###########*******+:--====++******++*+*++#=...:....-==--::.....-==+=::::::::::::.....+*********#**#*****::....-:......................................................::----...:--.:::.::::::::--:-...::
-----------------========--:..--:....:::::::::::-========-:--:::---::::::::----.....-*************#*****::....=:...................................................:------:..:---:::::--:::--===.::--:.:
-----------------=+++===--:..--:....:::::::::...:======--::--.:::--:::::::::::-.....********************::....=:..................................................::.:-----.:==---=:.::---==-::..:.:---:
-----------------======--...::::.::::...:--:::::--====-:::::..::---:::------:-.....=********************.:....=:....................................................:-==-:.:----==:.....:-======-:------
=---------:::-:-======--:....::---:..........:::::-=--:::::..:::--:::====---:.....:*********************.:....=-.::....................:::........................:....::....--=-.............:-========
--=====:-::::::========:-==-------:.......::::...-+--:::::..:::::::-=======-:.....+********************+.:....=-.:::........:..:...::::...........................::....-=:.--=......:-:-..-:-===---=-::
.:--====-::::::=========-----::--:::............::=+-:::::..:::::-:-======--.....:*********************+.:....=-.:::::======-::::.................................::-...:-=:=-...:-=---:=::.===-=+++++==
.:::--====::::--========--:::-::::...:..........::-=+::::...::::---:-------:.....+*********************+.:....+-..:::--========--:................................:::-..:==:.-..::-==-=::..-==-++++-:--=
.:::::--===::.-========--::::::::..:::...........::-+=:::...:::----::-----:.....-**********************=.:...:+-.::.....::-=======-......:........................:----.:===-...:...-++=*..-:=+++-..:=++
.:::::::----..-=========--:::::...::::...........:::-=-:....::-----::-----:.....+**********************=.:...:+=...-====--..:-======:................................................-++=++--=++:....:::
.::::-:::---::========---::::....::::.....::......:::-=:...:::-----:::----.....-***********************=.:...:+=..:--====++++::-=====-............................::-:.....:::.......:=+==+++++--...:.-+
:.....-::::::--=====------::.:::::::......:::.....::--=+-..:::-----:::::::.....************************=.:...:+-......:--=+++++-:=====-...........................-=====:...:-:...:...-+==+=++-..**+*+*+
:.....:=-::::--==-=====----:::::::::.....::.:....:::---==:.:::------:::::.....-************************=.:...:+=----.....:-==++++-==++=-..........................-------:..---...:...-===+=++=----=::==
:.:::.::=-:.:-=======-----:::---::::...:::::::..::::----==.:::-----:.:::......*************************=.:...:+=:=:........:-=++++-=++==:.........................===----.::-=:=.....:-======::-..::--=+
::::::-::-+::-=-===-------::-------:..::::::::..::::-----=:.::----=-..::.....=*************************+.:....+=.........:--::-====.=+++-.........................-:::...:.---=:-=..::::--==::....:-::==
:-::::==::-++=====--------::-------:.:::::::::..:::------=-.::---====-.......*+************************+......+=..........-==-.----.:-===.................................:-=-=:---...:--===++++++=--=++
--::::-==:::=++======----::--------:.::---:-::..::---------.::---=====-.....=***************************......+=...:::.....:=-..::....---................................::--:-.::=....::::::-:--=++*+==
:-:::--==-:::-+*+=-==---::---------:.:------::..::---------=--::-=====......****************************......++...:--:..........--.....................................:::..:-.::-.......::::::::--=+*-
::-::--===:-=--+++++=-=-::---------::--------:..::--------==--:::-=-:......=**++*******************+****:.....==-+:=++=-...............................................:::...::.---........::..::::::-=+
-=-------=:--=--++++===-==-----=++*-:--------:.::----------==-..::=-.......++++++++++**************++***-.....-==-:++=+++=.................................................:::..::-=:..--.:--:-::....:-=
+=--------:---=--+*+*++++=+=--+******--------:.::--==--=-===:..::==-......=++++++++++++************++***=.....-=-:=++++++==+:.........:....................................---+-..:-:...::::.....::...-=
+==-------::-----=+*****+*+++++++****+-------:.-=+========-:..:::---.....:*++++++++++++***********+++***+.....:=-:.:::=======:......::..................................--:.:--===---...:::--:.........:
======---:.:------=****+**+*++++++++++=--============+==:--::::::--:.....++++++++++++++*******+***++++**+......=-.-+=+-.:--==--=++=-.....................................:---::--==+-......-----:.....::
=====----:.::-::::-+****+++++++=++++++===+++=====++===:--:::::::---:....=++++++++++++++**+*++++*+++++++++......=-...=+++=:--==-==-:.-......................................:---::---=+......:----:......
===------:.::::::::-****++=+++++++=+++==+++++++++++=---::::::::::--:...=++++++++++++++++++*++++++++++++++:.....-=....-===::===-:.::--........................................---:.:---=--=+==++-=-..-===
===------:..:::::-::=***++=+++++++++++-=++++++++=-::::::-:::::-::--:..++++++++========+++++++++++++==++++-.....:=....:-==-.====-.+==:..........................................---:.----:-+=++=++=-----:
==-------:..::::-:::-++*+==++++++++++=-=++++*+--:-:::::-:::----=----+++++++===========+++++++++++++==+++++......=....:-==-:=+==-=++=:.....................................::----:.:====-:==+--+++===-:--
==-------:..::--------+++=+**++++++++-=++*+=::::::-:::-:--------=:-=+++++=============++++++++++++++=++++*:.....-:..:--==-:=++=-=++-:.....................................-:::-==-=++=:=-=+=+=---+=--===
==--------..::--------=++=+**+++++++=+**=--::::----::--------------=*++++=============+++++++++*+++++++***=.....:-::-====--++++-=++--:...........:........................:====::+++--==...:..+++=======
==--------...:----==---++=+**++++++=++=-::::-------::--------------=*******++++=+==++++*+**+++**+*+++*****+......-:-=====-=+*++-=+=--......................................---=-=++-===--------==++=++==
====------...:---====---+=+***+*+++=--:::::-------:::--------------=++++++*********++++********************......-:-====-==+*+==++=-*.............:........................:..::-=:-============++==++=-
=====-----...:----===----++**+*++=--:::::---==----:.---------------=*+++++++++**+***##*###*****************=.....:--:..--===*=-+++-+*=........:...:........................-=:====++++++===-.-+++=-+++=-
===-------....:---===----=++***=---:..::---===---:.:-------------:-=*+*******************#****#*********###*......:.:.-:====-=+++++*+-..........::--:.......................+=:------:--:==+==++=-:+++=-
==-==--=--:...:---===----=+**+----:...:---=====--:.----==--------::-******************#**#****#********#####:.......:::-=====++++**++=..........:::-::......................=++-:==-===:---=-::--+==+++=
==--++---=....:----==-----++=-----...:---==+====-..---====------:::=*********************##***#*********####=.........-:-++++****+++=..........::::--:.........................+:-.-.-+===-=====-==-+++=
=-=-=-++=-....:---==--===-==-----::..--==+++====:.:======------:::=+********************##****#**********##**........:-=-==+****++=:....:::...::::::-:.......................--:--=====-====+==-===---==
=======-=-.....---==-=========---::.-===++++===-..======---=---::-=+**************************#***********##*:......:-:-+---=+==-==-:.....::--::::::::.......................--=========+++=---====+=-:=
=========-.....------==========-::.:====+++====:.:=====--=----::-==++++***********************#************#*=......:=.==***=======*:.......:-=::::::-:......................:======++++==--+++++====--=
==++======.....:----===+======-::::-=++++++====..=====--==-=:-::===++++++***********************************#+......---:=+++++===+**:........::-:::::::.....................:=--==+=======:+==+++++++-..
==++++++==:.....::--==+++====-:::::==+++++++==-.:=====-=------:-==+++++++++++++*******************+=*********#......:==+======--+*++:.........::::::::-...................::.::.-----====+++***+++=-:.:=
==+++++++=-......::==++++====-::::-=++++++++==..=+++++=-==---::===++=++++++++++*+*****************+=*********#-.....-+=+++=-++==++=--..........:::::::::...............--===-::::==-=++++++*+++=-:--:::-
==+++++++=-.......-+++++++=--:::::-=++++++++=-.-++++++++===--.-==+++===++++++++++*****************+=**********=.....:*+=++**+::+==+++..........:::::::::.............-====-----=+:===========-:-===---::
==++++++++=......:+++++++==-:...::==++****++=:.++++++++++===::===+++====+++++++++***************+++=*+********+......***-++**+++**++=...........:.::::::............=========+====:.:-=++++-=-=-===-==-=
===+++++++=......=++++++=---....::==++****++=.-++++++++++==-.-===+++=====++++++++***************+*+*+++********......+***-:+*+-+++=.:...........:..::::::.......=+*+++=+==+++==+=+-=-++++=-+-=====-=+--=
===++++++++:....:++++++=---......-=+++***+++=:+++++++++++==.:-===+++======+++++++*********+*****++**+++********......=****+-::.:.:-==..............::::::......:-=-++++++++++-====--=++*=-=+++-==-===+++
===+++++++=-....-++++++-=-:......-==++****++==++++++*++++=-:-====+++======+++++++********++*****++**+++********......:++***+=--=-====:...............:.::........::=++++++=--===++====++*+==+*+=--=-:-=+
====+++++++=....=++++++--:.......:==++****++-++++++*+++++=.:-====+++======+++++++********+++****+***++*********:.....:+=+****=.:====-:..................:.........:..--::=*++=---:=++==++**+=+++=-=:-+**
-===++++++++....=+++++=-:........:==++***++==++++++++++++:.:-====+++=====++++++++********+++****+******+*******-......*+++****----::--..................::.........::--:.=:+++=--::+++++++++++++==+****+
.-==++++++++....=====-:...........===++*+++-++++++++++++=..:-=====++====+++++++++********++*****+++===+********-......+**=+*+++++=====..................::.......-====++==-:----=-::++++***++*+++****+==
.--==+++++++:...=-==-:............-===++++=-++++***+++++:..::-=-==++==+++++++++++*********+***===+*++**********=......-***+===:=++====...................:....:=...--=+=+++++=-+==--:-+++++***++**++--+*
..--=+++++++:.....:................---=++=.=+++++***+++=....::---==+=++++++++++++**************+*+---+*********+.......-++:+=-=++++++=-..................:....=++...-+*+-=+***++++-=.:-===+++=++==--+=++
..:--=++++++:...........................:..+++++***+++=:.....::::-====+++++++++++********+++****+:---=+********+........-=+=-=---=====+-.................:...:=+*=++=+**+--=+**++++=*****+:::---++==-.:-
=======================-===================+=============================***+++++*****+--:***********++-+==+++++++++++++++++++++++=+=+++++=-::::::-=-::------::::::::::::::::::==--==================-==
=....=======---======-=+-==================--============================***=--=+*****+--:+*********+++=====++++++++++++++++++++++++++===+++++==-:::::-===========================-=====================
=::::======-::-======---=======---========---===========================+*************+--:+*********+++=+++++===++++++++++++++++++++++++++++=++++++=-::--::=+++=++++++++++++++++++-===============-====-
++++++==++++=++++====++++====++++++++=++==+=++==========================+***++++=*****++++=*********+++=+++++++==+===++=++++++++++++++++++++++++++++++++=--=+==+++++++++++++++++++===========+===---==--
========================================================================+*****************************+=++++++++++++++=======++++=++++++++++++++++++++++++++=+++++++++++++++++++++++++++++++++++-===----
===-========+========-::-=======-===================-===================+******=+*********************+=+++++++++++++++++++=-=+=-+++++++++++=+++++++++++++===================================+==--------
===-=======+=--======:=::=======*+=======----======-+===============----=*****+*+*****++=-+***********+=++++++=++++++++++=++++++======++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-==-----
===-========--======================================================:---=****++=**********************+========+==========++++++++++=======+++=-=+++++++=======++++++++==++=++++++++++++++++++++:=------
=============+===============-::::---------------------------------++++++***+++*=*****=++++***********+===================-===============-++==--+++++++++++++++++++++++++++++++++++++++++++++++-=++====
=============================-:------------------------------------+++===****************************++:::::::::::-=-=-==-=================++=====++++++++++++++++++++++++++++++++++++++++++++++:===----
===-=======....======--======+++=----::::::------------------------++++=+*************+=+=+***********+++++++++++++++++++==================+++++++++++++++++++++++++++++++++++++++++++++++++++++=++=====
==+========:...======--+=====++=+------------------================+++++++================+++++++++++++=+++++++++++++++++==================++++++++++++++++++++++++++=++++++++++=+++++++++++++++=++====-
=========+===================++=+++=-=-=---------------------------+++++++++++++++++++++++++++++++++++=+**************=====================++++++++++++++++++++++++++=*+++++++++=+++++++++++++++=++=+===
=============================+++++=+===============================++++++++++++++++++++++++++++++++++++++++++++++++++++++=======================================================================--==-===
=============================+++++=++++-====--------------------===+++***=--==*****+++=+***************=++==*****+:--****+=====================+======++=++===========================================+=
=======================-=====++++++++=++++=-----=====================+***-----*****=---+******==*******+==-+*****=---+***+=====================+++=++===+====++++++++++++++++++++++++++++++++++++++++=++
============--========:-=====+++++++++++++----=--------=-::::::------=****************+*****************++*********++****+=====================++++++++*+****++***+++**+*************************==+==++
=++++=====++++++====+++++====+++++++++++=++++=::::-----=::::::::::::-=***+*+*+****+****+********+++*****+=*+*+****++*+***======================++======++++++++++++++++++++++++++++++++++++++++++=====++
=============================+++++++++++++++=----------=+++=++++++++++***************************************************+=====================++*****+******+---*********++************************+=++
=:+*========-========--=-=======+++++++++++==+++=------=++-=--++++++++***-+=-=*****==-=******+-+=+******+-+******=-:--***======================++**=---=*****+---+*******+*+******====*****+:---****+=++
=.=:=======---:======----======-+++++++++++++++=+------=++::--++++++++***-====*****----+*****--+++*****+-=+******+=-:-***======================++************+:::+******++++*************************=--
=:==========---========-===========++++++++++++=++++-=-=++++++++++++++****+++*****************++*+*******++******+++*****+=====================++**++++=*****++++=*****++++=*****+==+=*****=+++=****++**
++++++=======+=========+=+=========+++++++++++++++=+===+++++++++++++++*****+*+*******+********++**+**++*++*+++**+++++++**+=====================++***************************************************+=++
=================================+=+==++++++++++++=+++==++++++++++++++******************************=+=------::::::::::::::*+=-==--============++**+-=-+******++++*******==+*****+=+++******--:+*****+**
=-==-======--:========---================++++++++++++=+====-=========+***+---+-=---::::::::::::::::::::::::::++-=-==-=============-============+***+---+******===+******===+******==++******-===*****+==
====+======::::======-=-=======--========+++++++++++++=+++-====-----==***----+--:::::::::::::::::::::::::::::::-::---+++++++++++++-============+***+===+******===+******===+******===+******---+*****+=-
==========================================-==+++++++++++=++++=----===+******+++=-=+--=+=-==+++++++++++++++++++++++++=*********+=++-============+***+++++*****++++=*****++++=*****++++=*****++++=****++++
=============================================++++++++++++++++========+********+++++++***************************++++=+++++++*++==+-============+****************************************************++++
================================================++++:---:::::::------=********++++==+***++**********************+==+=*************-============+***+*+++*****+==-+*****+---=************************++**
=:+========:+-+======++========+**========-=-===++++++++++++++++++++++********+*************************************=+*********++*-============+***++=*+*****+=+++*****:::::************************+=::
==--=======:==+=========+========+=========-=======+++==-+++++++++++++********+**+++=-******=+==+*****++===*********=+**********+*-============+***++++*******=++************************************:::
+=+=++===+=+=++=+====++=+=+=====+=+=+==++++========++==-=-++++++++++++********+**+===-******====+*****=====*******+*-++=**********-============+***+*+*+*******+*=*******+++*************************+**
++=++++===++=++====================================+++=--+++++++++++++********+**************************+********+*=*************-============+****************************************************++**
===================================================++++++++++++++++++=********+**********************************++*-+************-============+****************************************************++**
===================================================+++++++++++++++++==********+**********************************++*=+************-============+****************************************************++**
===============================+---::-----:::---:::::::-=-==-=-=++++:=********+**+====+*****=+==+*****=++==******++*=+************-============+****************************************************++**
===============================+--:--::::::::::::::::::--:---=-====--=********+**+===-+****+===-+*****===-+******++*=+++++++++++++-============+****************************************************++**
===============================++=+++=+++++++++++++++++++++++++-+==-===++++++++*************************+********++*=+++++++++++++-============+****************************************************++**
===============================++++++++++++++++++++++++++++++++=++--:++++++++++**********************************++*=++++======================+****************************************************++**
===============================++=++=++*++*****************===+--=--=+========+**********************************++*-===-======================+*****************************************************=++
===============================++======++++++++++++++++++++====-=:--+++++++++++***====+*****====+*****====+******+++-+++=======================++****************************************************-==
================================+**+++++******+++++************==--=+++++++++++***----+****+----+****+----+******+++-==========================++***************************************************+-==
================================+**++++=+*****==+==***********+=:--++++++++++++**+++++*****+++*******+++=+********++-==========================++***************************************************+=++
================================+***=+++******++++************+--:++--===++++++************************************+-==========================++***************************************************+=++
================================+***+++=*******++*************+:-=+++==-+++++++***++********++********++***********+-==========================++***************************************************+-==
================================+*****************************+=+++++++++++++++***=====*****====+*****==+=+********+-==========================++****************************************************===
================================+***++*+******++*+************+++++++++++++++++***----+*****----*****+----*********+-==========================++***************************************************+=+=
================================+***=++=+*****=++==***********+================****++*******++==******++=+*********+===========================++================+++++++++++++++++++++++++++++++++++++++
================================+***====******====************+===============+************************************+===========================++++++++++++++++++++++++++++++=++++++++++++++++++++++=+++
================================+**===+=+*****+=+*************+=====:---------=***+++++*****=-==******:::=*********+:==-=======================---+---------------:-+-::--:-++++++=+++++++++++***+*+=***
================================+*****************************=====+-=========+***+++==*****=--=******---=*********=-==============================--============--::::-=+++++=+++++++++++++++****==+***
================================+***++++******====************=====++++==++++++***++++******====******---=*********==+++=====================+=:::-++==++++++=:::::-=+++++==++++++++++++++++++***+++=***
================================+***=++=+*****=---************=====++-==+=+++++****++*****+=****+****************++=++++===================+-:::=++++++-+=:-:::-++++++=++++++++++++++++++++++++++++++++*
================================+***++++******+===************=====++=:--=+++++++++++++++++++++++++++++++++++++++++=++++==================::::=+++++++++=-:-=+++++=+++++++++++++++++=++++++==+*+**+++++*
================================+***++++******++++************=====+++++++++++++==-==++++++++++++++++++++++++++++++=++++===============+::::=+++++++++++++=++====++++++++++++++++++++=++===+++******=***
================================+*****************************=====+++++++++++====:::-==-======-==--=----===========++++-=============::::+++++++++++++++++=+++++++++++++++++++++==+==++++++++****==+***
================================+***++*-******=-=-************=====++++++++++++=+:::+++=++++++++++==-====+++++++++++++++::::::::::=-:::-++++++++++++++++++++=++++++++++++++=+====--=++++++++++***+++=***
=++*+===========================+**+=--=******=-=-************======---------===:--++=-++++++++++=+=====================+++++++++-:::-++++++++++++++++++++==+++++++++++++==+===+++-==========++++++++++*
====-===========================+***++++*******++*************=================---++==++++++++++-=++======+==-=========+=++++=+::::=++++++++++++++++++++-++++++++++++==+==++++++++-==========+++++++++++
================================+***************+*************-==============-:--++++++++++++++==+++++++++++++++++++++++++++=::::=+++=++++++++++++++++=++++++++++++====+++++++++++-==========+==========
================================+*****************************-============+---=++++++++++++++==++++++++++++++++++++++++++=::::++++==+++++++++=+++++-+++++++++++=-=+++++++++++++++-===========----------
================================+***=-=-**********************-===========+:-:=+++++++++++++++-+++++++++++++++++++++++++=:::-++++++++++++++++++====+++++++++=-++++++++++++++++++++-=====================
================================+***=-=-**********************-==========+:-:++++++++++++++++=++++++++++++++++=+++++=+-:::-++++++++++++++++++====+++++++===++==+++=+++++++++++++++-=====================
=================================**+++*++*********************-=========+=::+++-:=-=+++++++==++++++++==========+====---:-+++=++++++++++++++====+++++===++++++======+++++++++++++++-=====================
+*+=...------::***+....:-..---...-:...-::..-=+=:.=*#=..::+.+==.:....-:.:=...=-..:-----==.:-:-----==+++===-...:-+.:-=-.-=..:++=+++====+...:-=.....-.=:=-#-:..:===+++++++=..--.-:=.:..-=--+++=++.:-.......
=-::.:.---:-+-:***=....-:.:---:.........---++=:.-===*::..-+==::....=+-+**...=#*-=++=-*#*...........-=+**=....-:+-.:+-.:-*++===++-=+==+...........=-=-++++====.:--:-===.......+*+*-..:=--=+==+*::::.::...
=---:-::......:##*=.**..-::-:::--::-=:::==+#+-###-==#:...:-:::::....+:=+=-..=##::+=.-##*.:=++++:...-=*##+=-::=:+-.-+=-*+*#*+++++++++++...::......-=-:*+=*+===--::--::.....::+*###*..:-.....::...:.:::-..
:::::-=+**********+...:.::::.:.:-----::-:--:=+-*=====:..-==+=-:-:.........:=*##:.::.-##*:+#*++*#*..-+###*+=-:=:#++*#######*+++++++++++....:---:..=***#####***::::::::::::.::*+****..*##########+........
:-----:+****####**+:::::::::::-----::--=::::--::--:--:..--=+-----.....:-::==*#*:-==-:##*.+=++++++..-=****+--==-#+#########********+++*...:-==-::.+**######***------------.:==****-..*+#*+***#*+*==--++++
:.::::.++****#####*=++++=+==++--=-=+::--=:.=.::.-=:-::::.:-+:::--....-:=:===......:-....:*-=++***..............#+*#########*===+#***+#.....--..::+*=:.....:*+=--=+===---:..:=****-..***+==+*#+**+-..==:+
--:.:--+++****#####=+++=-=++++:-==:=-:-:--.:=:..::.-:-===--+-====...:+=++==-....=*=:**:.:*.+*****:.....+.-.....############*++++#++*+#-.:=::-==::+@-..:+*=:##====+======-.::=*#++-..*==++++*+=#*+-..===+
-=++=--=+++++++++**+++==.-=++=+---:-+***++=+++--::--:.....-::.......:=+++=::...-##+=*+:.:*:*+=++*+....*=-=.......:=++===-:=*++++*++*+#--.::.:--:-+@-.:-*-:-##===========:-++=.:--...**+*+*+*++#*++=++==+
*******++******+++++++=+======..::-:::-+::-+=*=--+:::....:-::........-*+=........:-:-:...-.=====++....***+*....---===---:.-**********#:::....:.::+@##=.:.++##++==-=+======+==:::-:..+++++==+++=++=+++=*:
++***=.+******+===-===========.....==-:-+-:::-::=+**#:...=-::::......*+++.....:--:::.:::.=.+++=++*:..-**+*.....-:.:-::......::-=..:::-:......---:=@#**-.+#*##:.:..:::.-=-...........**=++*+++-:-++**+===
++=:...=+++++++===-===========:::--=====..--==.:---.+:..:.--*-::....:++==....=*##:===:=-.-:-++++*=:..:+==*.....:.:+++-:-:..:==-+..=:=+.:..::-----=*+-==-===#*:::.:...:--:...........++-+++++====+=**+---
-......==+========---+=..-=-:=.....+*=.....::.::=====..::-=+=-:=-...:==.:...-###+:--+*-+....:.=:=:....+*##+=:..............*==*+:#:-*=....--:-::.=*++####+*+#-=-:..:+*:=............==+==++====-+=**+---
:=-==========------:--::-=-.-=..:::::-:...:::-.:===:*:...:-+=::::...........-**###:::.:+##*-:::-+##-.-####*+...+++=+=-===+==:.=+.-::==##*==+######*##########.......................------------=++++---
=++::+#*++++++++++=.--::::-----::.::::::..-=+=::==:.-.:+#*--=++:...:=**###*******==+**+=#:..=+++:.+-.*#+*##+...-=++*-:::::=:..-=:::.:*#*..-*#**###**###**####.......:=....::::::::-:*########***=:..=+++
=-:=-=-***********+..:-------:.:=+===-=-..:::-:-*+#*#-**##**+**##*****##-#=**++=++++++++-.:*=.:.-:::..=*+-:....:++**+-::::=....=-:...-##-..-=:=###**###-#**##........-...-====++++++*######****+====++++
-:=*++:***+-=**=-++.:::------:.--:..=::...=-=+.:--:.==#+######*##*******-#+=*--=++=+++=+::=:..:..-:*########*#*--::--:..:.-...:==-.-.=##*...:+####*+*##-#****-----::-....-===....+*+########***+-:*=+==+
:-.:--:****--=+---+##+------=#:.:...........-::-+++++*++++=:....-+-=****:*#++-=+++++=+=++:-....:.::#**#+#***=+=-:.::::::.:.:+=:=##=-*#*#=-+***#**########*##*-+-+=====+=:-===-...+*+*###*:..***+==+=+=++
==--++=*+-=:::=:::=##.......:#+--....====-::+=.:--==**+++.......--..-==+-=+*+##**==+--:-@*--.:..:+#####*****+*+=:-:::-=:.::++--###*+@#---======++-::::::::::.=*.:=:=+...---=-*::.+*+####*++*##*=.-:.--=:
----:-=+:.:-=-+:::-#*.......:#+==:...++++-.-=-::-=-.-*+===+.....--------=====+***====:::####***####*===-+===-=-=-=====-:::=#*-####**#+---=====+++-::::::-:-:-::.-*+++..:=----+---=+++***###****=..:-...:
+-+==:=-:-====-----##-......:#**+-.-.-***=----==---=-=++==+--++==---:==========-===-::.............:..:.-.#####+--++++=-.-=*==#*+*=***:-==--==+++-::=-==::-::.:-=++::*-.-+-=-=-===++++*********=.......:
+-*+-.=+++*++++*+++###+.....:#+*+=...=#**=.:-.:=:.-:.+....-=*+..=--:::-=-===*###*#*####*.............:+-..-++-.-=====-+-::-=====:-===-.:-:..:::---:=++=----::..+#*=.-+:.:=:--+-=====+*++*******=:..:...:
:----==*****++=-::-######***##*#*+:+==#**-:--::::-=-.-..==--====+=----==---=*##=--=-*##*...=*-........=...-+=-.:=-====+-.---=====-====####=*#####=:::----::-:..-.::......-::.::::---+**********=....+*+-
=-=+=-=..-.........:-==---.:=:+***---=#+--:::--.=-=-.=+===+*+======-======-=*#+=-===-##*..:==.:-...........:...:-::-:::::-:----=*+.---###:=::.+##=-+:-:::-=::=+*#######--===++++*##************=...=*+-=
===+-==.....-..-.....-:.:+===#****--.=**-+...::--:-..-++=::-.:-===++++++=:-:+@=-==+-:*#*.::=-.::...............==.:-:-::.::-----:..:--###**#**###=::-:::=::::=+#=-+=#:+-:==*##*+++*+=--=+===+++=-:.::..=
+=+=+++....--..-...=::-====-+#+**+=-.:+*:....::::::...=...-=##@#+++++==++=:+*@+-==--:*#*:--=:..................--.::::::.::=-----:----###########+-:::--:::::..:..-+*-*+=###++++++*+==-=+=+++++=..::-..:
*+*****........:.....:-=+=-:+#:...=.:.....-..:.==:::.-=...=:-#-*+++++++=-=+:+#*-----:+#*...:-+.................++*******++*##########**:+::::::*#=.::::::::::-=*=+******+***+++****+==-.=++==++=.:-:::::
#######............:--.......::...........:-==:::::..-====-=*-:.=##*******+-*#*--.:--*#*....:.......:::::::::::****+##*=***###***###***.:+:.:...#-...........=+=:+++++++*##+.....###-:::-=++-=++-+:::-::
+##+=+*...........:====+*++++-:............::-++-::..-=:...:+-..--====-=====*@*------*#*...:-=:....:=====------***+.+**-=*+--:::+****+#-#=+...:.+-...........=+=..+*+-:=*#+...:=:.-#---::::---=-........
=-*--:=:-::++*#******=+**##++=:...............:-==-..-:=:...-...-=====+=++==*###########.:.:.......=***********+==:::::-+=+**********+#+#*#*:--*#-...........===.::=+*::-#:...++*.+@---::::::--:.==.....
:.-==--..:::.-=--==-++::::...::...........----.:-:::::-:-.....:::=-==-=.:+=+:.:+***#+=*#***+*#*:::.-++=....:*++==**+*+*+*+-=====++++*=**#########-...........--:.::=-:+:-#*.+###+*##:....:......:-+=....
#######.:-==-:...==-:...---::::...........---::.:=---:.:-........==--:.-+=++:..===+=--+-**+*+++*-:.=*==*#+#===+...:-:---++=-----------###==######-...........:::--=***#+=##*#+**###@:...........:-+.....
#######.--+=-::.:--......:::=+..::...+*=..:---:.::::.********#***==-:=-+===+:..:.:::.:+-*++-+**+:..-::........::::=+++=-+==-----------###-+*#*###-......:=*-.-++=-.=###++##*########:..:-++-:..-+-.:.=..
*+**###:-:=+:::..:-:::::.:::--..-=.+.:==..::.......:-**=+++++#+++=:-----:--=:........:=.:::::......:-....:.....**#*++**::=+-----------###*#*=####=..=+:+-.+**++*+*==+*#######**#####:.---==--:..........
+=+*=*#+++==:-++--+::.:---=-=+-=+=-:++***:..:.:::..::*##*#=...=+*=:::::::.:=:.:=+==.....#*#*#######+=-:::::::::.........::--===:=====-=+++++++++=:.-+====...:...........:#######*###::--:..:--:.........
+*+-+**************+=::--:::::.::+-:++++-.::===:-=:::+###*=-::=+*-:::::::::-...::....:.:=::.*+#*#@@#############******#**#=-==+===+==-+++-=:-=-+++**=+==+**+......::....-###=*######::---++:::--=***=:=*
=+:-=+#*#####*+-...-------=+++......=::::::-==-=*=::.++*+#*-+#*=*------:----:..:::..:.:.#***##########@@###@@##*++*+******+==+=*-+:==-+-+------=--.-*:-**-::............:##**#+****#-----==-:-===+*+=-=*
-=--=++###@@###*+==*---+-----*-==++*****+--=++=--.:-:+:==.....:--==-=====-==:.:.....----#*#**##***+###@@+=*####*+*+******#+=======----+------:---:....-..:...:::::::::::=***++++++++-----+-:---=+**=:=++
.::..--*#########**=::::+--:-++=+***=**======-::.-:--=....-...:+===:+===.-==-..-:::::::.############@@@##*##@###*+***+:=**=---==-=--::****#*+*+++-.:.:::....:**+=+*=+-+:************-:--:.-=---===*:-:-+
-+:::==*#########**=::::+:--:=++***+*****=:-=----::.-+:.::.:.=+++===++=+-.=+=:::--.:-::.##*====-:+##@@@@@#@@@##*******.:#*###*###**=#*==-+##+-::=:.........::=-+=--:-.:-=***********+===-===-++=........
:-=-=-:***+*#######=::::+:---++**##**+*****#*+.::-..+=-::.--..-=-====+==:-==-:-:..-.::..#*----=*+-+#############**###+..*####*#****##*:::+++=--:::.......-:.:==----==---+********###+++-=+----+-........
=-.:--.*##****#####=.:::+----++*#********=..-::.+--.*=--==---=====:::+==-===:.:.........#=:+##+-*##=-=:....-...#*####+.=#####***##****..-:=-:.-::........--=:*###########***********+++=-=-:-:=-..===...
:=:-:=+++*+*****+**++++=+=+==+++===+-.+##++=......::+.......:....==--::::::=:...........###########+-=+---=--::######*:+##############.-:::.:-.:......-+::=-.*#####*#*###********##*-----==-:.--..+**...
=:-:.-:=+**######**++++++++++++***++*-=**+##-.+=...=-..:....:.:::===-======-*###++#####*...........:==*#*=--.*#######**###*+=*##*=+-..:.......:.:....=**::-::*+-#+#++-*##****#******======+=---=.:**=:-:
-===+=-************++++++++++++*#+==::==#+*=+==+#+=++=:........::========+::*###*-#####*.....=......:-.--:::.:=...........:+*###*#*:............:-++=--*###****+#*#+++*+#****#******+++--=--.-+=.:==+-==
.---+--====++=++++=====+=====-=**##=++:-*+##=*#######=:--------::=-+*#*=:-++*##+--..###*....:-......-++*+--:=-+=:-.:*.:+..:==*++*##+=:#+++**+**+**++++*+*##******************#=-****+++=--==+-+=.....-==
::=...:::---.::==-:===*#=+++=-==:-+++-::*+*+=*+++****-.-======---**=:+##**+-+##-....-+*-:.....:....:=+=-+-:.==++#=+##*##++=:-+=+====.:#++=::-++++******=-****##**##*+*++######++####++++:---=-=+++++*###
#*#####--===:=+++-:==--=-==+===-==--=--++++*--+*==-++=:-++=++===-...........=*+.-:...-#-..:-...:==++==+::::::--#########*#=...:--.....#++=*+*+*++*++***==**++*#*******++*###########*++-:::---=+-#######
--....====+=.:+*+--==-------+=+#*=-*=*++*+**-:++=**-*-:=+++++++--....:......-=+...:...+-:-==...===*-.-+*=--.==+#::+***:.:#--.::::.....#*=#*+-**++=........:::++***++*+++*###########=.:::--:::-:-++++**+
---++-=-====**#*+-:+--------==+*#*+**=***=:=:===-=+*=-:=+===-=-==:::.:..:::.-++-.......--===--:===+###*=::-*#+:+**++++=*+*-..--:......#***=:***+*=...........++*+**+*+*=+###########..:::.-::...::::::--
===--:=-==:=***++-:+--------==+##########=-=-===------=+===--=--=:::::..::::-*--..:*...--====+=+=++##*=:=-:++=---+=++**#**=:-::.......#+***+-++++-...........+*****+*****###########:.-=+=:-::..::::::-:
..-==:=-===+##+++-:==--------=*#@@@##@@@#*:+--*++----==+++++=+++=::::::.::::=*=*=.:#*++*======-+==**+-:.-=+=:=-+#===--+=+*-:::........#++#*+=-+++-...........=*+++++++++*###########....-++-:...:...:-:-
--:::.=-===***-+=-:=----------*##########*---=**+==--............:::::..::::=+=++=-*++=+-====-====*##*..:**+**#*--+=--====:...........#=-#==:-+=+=...........++++++++++**#####**####....:::--:..::.---:.
..::-.=---:...:-::.-====-=----*#*########*---=#+====-............:::::::::::=*++=--==:::#**********##+...*#####+++-......-:...........#====----=+-...........*##***#**#*#***#+-+*#**---....=---....===:.
...:-:=:..........:+=====---::*##########*-=-=#+===+-............::::::.:::.=*++=--==:::***********##=...-#####++**+=+++**-...........*###*####**-...........***###*-=##+:-++==*+--::---:..:::.::..:::.:
-:::..=:...........========--:*##########*===+#+===+=............:::....:.:.-*++-::.-:-:*****#*****####==*#####++#***=+**+:.....::::::::=+:+*+++=----::---::-#***++*==+++::+++++*=:.:-:......::=##*==:-+
*******............--======---*##########*===+#*==+==............:.:...:.:::=*+*++++-:--*********###***-++#####****#=*****+***********:=*=:+*#**#-...........*###**##++#=....=+.......:.-:--.::=#*-*.--*
...................=------:-:-================+#++===............:..--=--.:==::.........+++++++**+*+**+-::......-+*+-=**+==***********::-*++=**##-...........*=+*=**+**++...:==+....---::::::==--**#+=*=
-------............--==-:--:::-======+**==###########............::++----...:-:.....-*+=--==+++++===-==:::.....##*-===*####******+****:::::==-+##=::::::::.:.***#****#*++:.:.-=-....*##*+==--.-:+#*+===+
--::--:............------+====-=#=---+++=-########*++.............=#+=:=-:..:-:.....::-===+-==-===+-.+*-.:.....##+.:::=#@@#**-:-:-:+***####*#####=::*+:::::::*+*+*+##*****+++***++++::===+*=-:::=**+-+-+
---:..:------:.:::--.::+=====--:.::--...::+***++++++=............:-*--:-::-*:-.=....++==+**===-++*+::-=:.:=-...##+.:..=+**#*****************+==--:..=-:.-::::++*+*++++++*++**+++++=*==*+==-+-:::-:-===-:
=--:...*=++*+=-==+*-.:=:-:::-=............---========..............++=-:.-#::-:+:.::-=--++*++=-+*+=-:--+*++-::-*+++++#*++*************.::::=+++==-...:.==-.:.::---===..:=##*******+#===-=+--::::-:::--::
.::.:..-=*+==+-=*#*===========....-=:.....---========..:::--:=-....:==-..:.=-:.-+=----.-+***+==*++=++++*###++++#+-:=-=+++##**+=++======+==++++==-:+-=-==-==+-:-=-..--.::+******+**+#-------:-..:=-------
:.....:+++*-++-+=**-========--....+*=.....-:-----=---..:=-:.::...==*=.....++--.-++=--:::+##++==+++=+=-=*###====##+-=-=++###**+==+====+:---====-=+-=:-..:---==-=---:=-..=+##***##***#::+--=====+=---=----
...-:..+++==---:::=---=:.:.-**...:*++.....::-:-:-+--:............:=#=:....:+:.=--++=:...==+=++=*+-::---=##+=---:-:-:-::---+**+=+++++=+===+*+=++**----:-----::+*#=+++=-:-++-==+*=+=+#:::-=-----++--------
......................................................:======+:...............*-............................................................+=..........................................................
.....................................................-########=..=######+.....*-............................................................+=..........................................................
.....................................................-##@@@@##=..=##@@@##.....*-............................................................+=..........................................................
.....................................................-##@@@@##=..=##@@@#*.....*-............................................................+=..........................................................
.....................................................:##@@####=..=######+.....*-....................:+.*-:-+:...............................+=..........................................................
......................................................#####+=#+.-########+....*-.....................+-.*-.+=*.++.*--++.....................+=..........................................................
.....................................................-#######*+.:##@@@@@#+....*-......................-.:..+=*.+=:*..+=.....................+=..........................................................
.....................................................-########=.:####@@##+....*-............................................................+=..........................................................
.....................................................-#=+##=##*.:##*####*+....*-............................................................+=...........................................:....:.....-...
....................................................-*#--:..--+.=##*###*#*....*-.........................-+.+..*:...........................+=.........................................:-............=:.
....................................................=##***...++.*=-#++=+##=...*-........................:=--=-:-+::.........................+=......................................:...-:..........:-:.
....................................................###....:..+##-=-..=+*#+...*-..................................--........................+=.....................................-+########-.........:
....................................................+##:.-=:.-=##+-+*=-.:#*...*-.......................+-=:--.+:=..=-.......................+=.............................-+############@####*=........
....................................................###+=###+=*#@#########*...*-........................*::--:+-+.:.........................+=............................-####@@@@@@@@@@@@@####*-...-:.
....................................................######################*...*-.......................+---::-:::-:-:.......................+=...........................-*###@@@@@@@@@@@@@@@@####*.-:..
......................................................:::..........:::::::....*-............................................................+=..........................=*####@@@@@@@@@@@@@@@@@@@##=.-..
..............................................................................*-............................................................+=..........................-###@@@@@@@@@@@@@@@@@@@@@###-:..
..............................................................................*-............................................................+=.........................:=##@@@@@@@@@@@@@@@@@@@@@@####-..
..............................................................................*-............................................................+=.......................-=######@#@@@@@@@@@@@@@@@@@@@###-..
..............................................................................*-.....................+............:.-.......................+=...........................:+*#####@@@@@@@@@@@@@@@@####...
..............................................................................*-.....................+..=.::-*.*:-..+.......................+=..................:.:######=...:*##@@#####@@@@########+...
..............................................................................*-....................-+:.:+--++-+-=..-=......................+=.........................-=--#*-*###@##*==:..:-*#++##*....
..............................................................................*-............................................................+=..........................+=+::..*########*+*######+.*....
..............................................................................*-.........................::.-..-............................+=.........................=.......=##@###-....=#######=....
..............................................................................*-.........................=++=:=-:...........................+=......................**##=......-#####*:++...--+####:.-..
..............................................................................*-.........................=---------.........................+=..................-=######-......:#######*=.-**+.=###.:+..
..............................................................................*-............................................................+=.................=###@###**......:###@###############*#=..
..............................................................................*-........................=-::==.+:+..........................+=.................=*###@@###-....:####@@@@@@#@####@@###*:..
..............................................................................*-.........................*-:+=-+-*..........................+=..................+###@@###=...:.####@@@@@@@@@@@@@@###*...
..............................................................................*-........................+-..................................+=..................=#@#@@###+.#*.:##*+##@@@@@@@@@@@@###:...
..............................................................................*-............................................................+=..................+#########:-::=##+*##@@@@@@@@@@@@##*....
..............................................................................*-............................................................+=..................::=########:-#######@@@@@@@@@@@####=....
..............................................................................+-............................................................+=.....................:*####*=###@@@@@@@@@@@@@@@@####=.....
..............:=##******=::...................................................*-............................................................+-.....................-###==++######@@@@@@@@@@@@###+:......
..........-######@@@@@########@@##+-..........................................*-............................................................+=....................###-.:::-=++####@@@@@@@@@@@@#-........
.......*###@@@@@@@@@@@@@@@@@@@@@@@########**-.................................*-............................................................+=..................:##+:=....::.....=*###@@@@@###*.........
.....+##@@@@@@@@######@@@@@@@@@@@@@@@@####*####=-:............................*-............................................................+=...................+==*#*:=##*########*#@@@@####..........
....###@@@@@@@##*-...*###@@@@@@@@@@@@@#+.....=####@@#=........................*-............................................................+=...................+#**######*#########@@@@@###-..........
...##@@@@@@@###.........##@@@@@@@@@@##-...**+.:##@@@@#####*+-.................*-............................................................+=....................+*.-##@####@@@@#@@@@@@####............
..=#@@@@@@@@##=.........=#@@@@@@@@@@##:.:.:+-.+#@@@@@@@@@@#######=--..........*-............................................................+=.......................=@@@@@@@@@@@@@@@@####+.............
.:##@@@@@@@@##-.........*#@@@@@@@@@@##=.-#+=..##@@@@@@@@@@@@@@@@@####=........*-............................................................+=..................-....+##@@@@@@@@@@@@@@##*...............
.*##@@@@@@@@#+.:*-=.....*#@@@@@@@@@@##=.*#=..:##@##@@@@@@@@@@@@@@@@@##*:......*-............................................................+=.................+###+:+###@@@@@@@@@@@@###.+..............
##@@@@@@@@@@##=...::....:###@@@@@@@@@##:::...*###-+#####@@@@@@@@@@@@@@##:.....*-............................................................+-.................-######*##@@@@@@@@@@@@@##..*.............
##@@@@@@@@@@##*...........-#####@@@@@@*.=*...+@##*::#+##@@@@@@@@@@@@@@##-.....*-............................................................+=..................##@###@##@@@@@@@@@@####+..+=............
##@@@@@@@@@@@@####=...:........+###@@@##:-.:.-##*.::+-##@@@@@@@@@@@@@@##-.....*-............................................................+=.................:##@#@@@@@@@@@@@@@@#####...#-............
##@@@@@@@@@@@@@@##..--...........*#####**.--.:=+:...-=##@@@@@@@@@@@@@@@#*.....*-............................................................+=..................*###@@@@@@@@@@@@@####=...+*:............
##@@@@@@@@@@@@@@#*..*............*##*#-+-:...+#-....-##*##@@@@@@@@@@@@@##.....*-............................................................+=.................+###@@@@@@@@@@@#####+....=#=.............
##@@@@@@@@@@@@@@#-..-:...........*####-.=#*=.*#.......++*##@@@@@@@@@@##*:.....*-............................................................+=..................*###############*=.....*#*..............
##@@@@@@@@@@@@###:...............-###+*#####*##....+*.-####@@@@@@@@@###.......*-............................................................+=.....................-=++++++++-........+++...............
*#@@@@@@@@@@@@@##:..-....::.......###.-###-=+-*...:=.==*###@@@@@@@@###........*-............................................................+=..........................................................
##@@@@@@@@@@@###*.................+###.=*+*-..*..=....:####@@@@@@@@##=........*-............................................................+-..........................................................
=#@@@@@@@@@@#+....................:###=:*#*:..+.....-:+*@@@@@@@@@@@##+-.......*-............................................................+=..........................................................
=#@@@@@@@###=........::............*#####==-..:.......-:*##@@@@@@@@@#*........*-............................................................+=..........................................................
:##@@#@###-......-.................*#######*::...........#####@@@@####........*-............................................................+=..........................................................
.=#####-...........................*####*-....*+.........##*####@@###*........*-............................................................+=..........................................................
.=####*................:...:.:.....=+-.....+::.*+-:+=.........=#@@#=..........*-............................................................+=..........................................................
.:####=....................:-............*+=::**+==*##...*#*..................*-............................................................+=..........................................................
.=####*.................................-#-........=.....*#=..................*-............................................................+=..........................................................
.=#####.......................................................................*-............................................................+=..........................................................
..=####.......................................................................*-............................................................+=..........................................................
...*###-......................................................................*-............................................................+=..........................................................
...**..*..............-.......................................................*-............................................................+=..........................................................
...:#*-#......................................................................*-............................................................+=..........................................................
..............................................................................*-............................................................+=..........................................................
..............................................................:-==++++++++++++++++++++++++++**************+*+++++++++++++++++==-::......................................................................
............................................................:-=+++++++++++++++++++++++++++++++++++++++******+++++++++++++++++++++++=-:.............................::::::::::::::::.....................
...........................................................::-=++***+++++++++++====================++++++++++++++++++++++++++++++++++++==-......................:::::::::---::::::......................
...........................................................:--=+*****+++++++====--:--------------==========+++++++++++++++++++++++++++++++====:.................:::.:.::::::..:::::::::::::.............
...........................................................:--=++**++++++===----::..::::----:::::::------====+++++====+++++++++++++++++++++++++====-:...........::::::::::::::::::-------::.............
...........................................................::--==+++++===---::::.........::.........:::::----==========+++++++++++++++++++++++++=+++======--:...::::::::--:::::::::::::::::.............
............................................................:--==+++===---:::.............................:::-:---=====+++++++++++++++++++++++++++++++++================----------====-=-------=--------
.............................................................:=+++===-:::.......:--:...........................:-----=====+++++++++++++++++++++++++++++++++++++++======================================-
.............................................................-=++==--:........:-::.....::::.....................:-------====+++++++++++++++++++++++++++++++++++++++++======++++=========================
............................................................:====---:.................:::..::.....::.............:---::---====++++++++++++++++++++++++++++++++++++++++++++===+++========================
............................................................-===--:..................::....:::...::---===--:.......---------===++++++++++++++++++++++++++++++++++==+++=++===============================
..........................................................:====-:..................:....::::.....:=+**#*+=-:::......-=--------===+++++++++++++++++++++++++++++++++=======+===========================---
........................................................:-===-::.....:--:...........::::::-::....-+######*=-::......:====------==+++++++++++++++++++++++++++=+++=+==================--=====-------------
..................................................::---=====::......::::---:......:-=-==----:...:=*######*=--:.......-==========++++++++++++++++++++++++++++++++================------------------------
.............................................::-=+====-----........::....:---:...:-=====---:...:-+*######*=--.........-========++++++++++++++++++++++++++++++======----=====----------------------::::::
......................................:::----==+++=----:-:..............:..:-:..:-======-:.....:-+*######+--:..........-=====+++++***++++++++++++++++++++=======---------------------------:::::::::::::
.................................::--=====--:::--------::::........::--=+=-:.:::-======--......:=*#######=-:...........:==+++++++******++++++++++++++++++=====----------------::::::::::::::::::::::::::
.............................::----:-::::....::--:------:::::::--====++****+-.:--======--.....:-+*######*=-:............-=+++++********+++++++++++++=======------::::::::::::::::::::::::::::.....::....
............................:--:.....::::....:--:::::::::--=====++*+++*******-:-==+====-:.....:-+#######+=:.............=+++***********++++++++++========-----:::::::::::::::...........................
...........................:-:................:.:::------=+=====+====++*******-=+++++==-:.....:=*#######+-...........:=++*************+++++++========-----::::::.::.....................................
..........................::-:..........:-----:--====--==+=--===++*+++*******+-=++++===-:....:-+*####**+-:.......:-=+********+++++**++++========------:::::.............................................
..........................::-:........::-====----===+=--=++++++*********+++=++===++====-.....:-+#####*+=---===++++********++++++++++++======------:::::.................................................
..........................:::--..:::--====----====+=+++***+++******+++++++++++=========-....::=*###**++++++++********+++++++++++++=====-------:::::.....................................................
............................:---..:-:----======+++++*******++++++++++++++***++-=======-:....::=+**++++++++********++++++++++++=====-----::::::...................:=+++=.................................
.............................:--:..----=-=+++************************+++++===========-:..:..-==+=====++++++++++++++++==========----:::::...................:-=+++======-................................
.............................::---:.--:::=*****************************+=----========-::..-==============++++++============----::::....................-=++++++++=======-:..............................
..............................::---:.=+=+++****************+++++++++===-:----=--=====-::-=++++++==--==----===========-----::::..................:--====++===========-----:..............................
................................:---:.=+****************************=-==--=+++=----=--:-===++++++=-------------------:::::...............:--================---------::::::.............................
................................::----:+***************++**********************+-----::---======--::::::::::::::::::......................:----------::::::::::::::::::::::.............................
.................................::----:+*****++++**+***************************+:::-:::::----:::::.......................................::::::..........................:.............................
..................................::----:-*****++++++++++************************=:::::...:.:--:...........................................::...........................................................
.....................................:---:-+++++=====+++**************************==-::.....-######-:...................................................................................................
......................................:---::+++++++==-=++++***+++*****************+=--:.....*######-:....::.............................................................................................
.......................................:-:::.****+++***++====+*****+++++++++++++***=--:....:######*-:...::....-.........................................................................................
........................................:-:::.*+:-+++*++=:------=***+++++++*******++=-::...=######+:......:...-.........................................................................................
.........................................:-:::.:-::-===-=-::--:-+*++**+********+++******=..*######-:....................................................................................................
..........................................:::::.::--=+==---:--+++++*********************:..##*###*:...--................................................................................................
..........................................=:::::.:-:-----:::--:-+**********#***********+..:######=:...*++...............................................................................................
...........................................-:::::..:::::-:..--=*********+***************=.=*#####-:..=*++*..............................................................................................
............................................=:-:::..:-:-::::=***#*++********************+::-+***-...:*+**+--............................................................................................
................:............................=:---:..-=+*****-=-==+*********************=::----:...+**+-==:.:.........................................................................:.................
..............................................=:----:+*+=+++*=**************************-::--=-:..-*+++++*==-=-.......................................................................:-................
....................:..........................-:---::-+-*******************************-::---:...-++**+==+++=-=...................................:::-:.......:.-=-:--::------::--::::-:...............
................................................=:--::--++=+***************************+*:..:::...-+++=++=:..--.:...................................:-:---:...:.........................:...............
.........................:::::...................-:---:::*+***************************+*++=-.......:===-:-..........................................:............................:::::...:..............
..................................................-:--::.:****************************+++..:.......::....................:--:-.......................:...:::::::---------------------:...:..............
.........................................:--==-----=---::.:****************+:-::====++--:......-+-.......................:---::......................:-:-----------------------------:...::.............
.........................................:=+++++==++====--::**=*******++====-=+*#*:-==-::...........................::...:--==-:......................:-------------------------::::::....-.............
.........................................:-=++++==+++++++====*+=-:.:*+****+*+-=**+.--:-:.......................::::......:-====--......................:-::----::----:--::::::::-::-------:.............
..........................................:-=======+++++++++++*++=+*****++***=--+:.........................:::...........:--=====-:.....................=----====---....................................
.......................:....................::---===+++++++++*+**++**++*+++=--.........................:::................:-======--....................................................................
.......................*:..................::.::---====++++++********++++++===-::.......:.........:::.....................:--=======-:..................................................................
.....................:.=-.:::.:........:........::----===++++++++++++++++++++++++===-:......::::............................:-========-.................................................................
........................:.::::::-..................::---====+++++++++++++++++++++++++++++===-:..............................:--=========:...............................................................
....................................................:-----=================+++++*********+++++==---:.........................:-==========-..............................................................
........................................::::::::..:::--:::---===============++++++***+++*+++++*++++++===-::...................:--=========-.............................................................
................................:.::::::::.........:::::::::::---====--======++++++++++++++++++*******++++===--::..............:--=========-:...........................................................
.............::.....................................:::---:::::::-----=======+++++++++++++++++++*********++++++===-:............:--=========--..........................................................
....................................................:------===---:::---=======+++++++++++++++++++*************++++++==-:........::--==========-:........................................................
....................................................:----===+++===----:---======++++++++++++++++++++*************+++++++==--:..:::---======+====-:......................................................
.....................................................:---==++++++++++===------======+++++++++++++++++++++++++++++++***++++++===-------===========-:.....................................................
......................................................:--===+++++++****+++==-------====++++++++++++++++++++++++++++++++***++++++=================---:...................................................
..................................-=====-:.............:--====+++++*******+++++===-----==++++++++++++++++++++++++++++++**+*+++++++=================---..................................................
.................................:==+++====-:...........---=====+++++++++++++***+++++=======+++++++++++++++++++=+++++++++**++++++++++=================-:................................................
.........................................:=+++++++++++++++++++++++++=========================================-:--::::.:..:...:::::::::.......-----------------------------------------------------------
.........................................:=++++++++++++++++++++++=+=======================================-::::::::::::::::::::::::::::.....:-----------------------------------------------------------
.........................................:=++++++++++++++++++++++++======================================::::::::::::::::::::..::::::........:----------------------------------------------------------
.........................................:=++++++++++++++++++++++++====================================-::::.::::::::::::::...::...::...........--------------------------------------------------------
.........................................:++++++++++++++++++++++++================================---:===-::.............:::.::....::::..........-------------------------------------------------------
.........................................:++++++++++++++++++++++++==========================-:::::::::::::::::............:::::.:::::::::..:......------------------------------------------------------
.........................................-+++++++++++++++++++++++========================-:::::::-::...-.::::.:..........::::::::::::::::..::.....:-----------------------------------------------------
.........................................=+++++++++++++++++++=+++======================-::::::......:.:.::.:....::.....:.:::::::........::.:.......-----------------------------------------------------
........................................:+++++++++++++++++++++=======================-::-:..............:.::::..:::....:.:::::::.........:...:.....:----------------------------------------------------
........................................=++++++++++++++++++++=====================--:::::..................::.....:::::....:::::..........:.........----------------------------------------------------
.......................................:+++++++++++++++++++++===================-:::::::....................:.......:::.....:::..........::.........:---------------------------------------------------
.......................................=+++++++++++++++++++++==================::::..:...................:..........::::.....:::::....::::::.:......:---------------------------------------------------
......................................:++++++++++++++++++=++==================-..........................................:...::::::....::::::.......:---------------------------------------------------
......................................++++++++++++++++++++++==================-:::...........................::...............:::::.....:::::.......----------------------------------------------------
.....................................=+++++++++++++++++++=++==================..........................::::----:::...............:.......::........:---------------------------------------------------
....................................-+++++++++++++++++++++++==============-::::::...............::---------------------::.........::......::.........:--------------------------------------------------
...................................:+++++++++++++++++++++++===========:::::::-:.............::-----------------------------:...............:::::......:-------------------------------------------------
..................................:++++++++++++++++++++++++=========:::::::..............:------------------------------------.............:::::........-------------------------------------::::::::---
..................................=++++++++++++++++++++==++=====-:::...................:----------------------------------------:..........:::::.........:----------------------------:::::::------::::-
.................................=+++++++++++++++++++++=+===-:::::::::...............---------------------------------------------........................:--------------------------::::::-------------
................................-+++++++++++++++++++++=-::::::::::::::.............:-----------------------------------------------:......................:--------------------------:::----------------
...............................-+++++++++++++++++==-:::::::::::::::..............:---------------------------------------------------......................--------------------------::--------::-------
..............................:++++++++++++++=-:::::::::::::::::................:----------------------------------:::::::------------.........::..........--------------------------------::::::::-----
.............................:+++++++++++=-:::::::::::::::::::::...............:-------------------------------:....:.......:::--------............:......:--------------------------------::::::::::---
.............................=++++++=--::::::::::::::::::::.::................:-----------------------------::=*####***+++==-:...:------..................:-------------------------------::::::::::::--
............................=+++=-:::::::::::::::::::::::::..................::::--------------------------=###############**++=-..:-----..................:------------------------------::::::::::::--
...........................-=::::::::::::::::::::::::::::.:::...............-:::::-----------------------+###################****+=..:---:...........:......------------------------------::::::::::::--
..........................:::::::::::::::::::::::::::::::..................::::::::---------------------###################******+++-.:---..................------------------------------::::::::::::--
.........................-+-:::::::::::::::::::::::::::::.................:::::::::::-----------------=###################******+++++=:---:.................------------------------------::::::::::::--
........................:++=::::::::::::::::::::::::::::.................::::::::::::::--------------=#**###############******+++++++==:--:................--------------------------------::::::::::---
.......................:++++-:::::::::::::::::::::::::::-=:.............:::::::::::::::--------------***###############******++++=+====-:--..............:---------------------------------::::::::-----
......................:+++++=::::::::::::::::::::::::-+=:...............::::::::::::::::-::::-------*****++===++++**********++++=======----.............:-------------------------------------:::-------
......................+++++++-.:::::::::::::::::::-++-.................::::::::::::::::--::::------+***++++======++**+++++++++++=======-:--..............:----------------------------------------------
.....................=++++++==-:::::::::::::::::-+=:...................::::::::::::::::::-::::-----**++=-::::===++***+==-------======---:::...............:---------------------------------------------
....................=++++++====:.::::::::::::::=+:....................:::::::::::::::::::-:::::--:+****+++-:---=+*##*+------====-------:.::.................--------------------------------------------
..................:=+++++++=====::::::::::::::-=:.....................:::::::::::::::::::::::::::-**#####***+****##*+=--::..::---------:.::..................-------------------------------------------
.................:++++++++=====--::::::::::::-=:......................:::::::::::::::::::::::::-=+**#########****#*+=====+=---::---:--:..-:..................-------------------------------------------
................:+++++++++=====--=:.::::::::-=:.......................::::::::::::::::::::::::-:+**###########**##+=-==++**+=---------:.:-...................-------------------------------------------
...............-+++++++++=====-----::::::::-=-........................::::::::::::::::::::::::=++****#######**+++=---=+++****++====--::.::..................:-------------------------------------------
..............=+++++++++=====-------::::::-=-:.......................::::::::::::::::::::::::-+=-+****######*=::-:.:-=+++****+++++=--:..-:.................:--------------------------------------------
............:+++++++++++=====--------::::-+-.........................::::::::::::::::::::::::-***++****#####****+=--.-++++++++++===-:..::...................--------------------------------------------
...........=+++++++++++=====----------:.-=-..........................::::::::::::::::::::::::-**+++*****#####*****+==++++++++====--:...:....................::------------------------------------------
.........-++++++++++++=====------------=-:............................::::::::::::::::::::::::**++++*****+=-------==++++======---:..........................:::-----------------------------------------
.......-++++++++++++++====------------=:..............................::::::::::::::::::::::::-==+++++++*******+=:::-======----::...........................:::::---------------------------------------
....:=+++++++++++==++====-==--:::::-+=:...............................::::::::::::::::::::::::::=++++++++++========-:-===-----::.........:..................::::::--------------------------------------
:-=++++++++++++========--:::::::......................................::::::::::::::::::::::::::-+++++++++++==-:::----------::..............................::::::::------------------------------------
=+++++=+++++===+++=-:::::..............................................:::::::::::::::::::::::::-===++++++*****++===-------::..............................::::::::::-----------------------------------
==========+==-:::::....................................................::::::::::::::::::::::::::-===+++++*****++==------::................................::::::::::::---------------------------------
=========::::::.........................................................::::::::::::::::::::::::::---=============----:::........:........................::::::::::::::--------------------------------
=+--=+=::::..::.........................................................::::::::::::::::::::::::::==::-------::::::::::........::.........................::::::::::::::::------------------------------
=:::::::.................................................................::::::::::::::::::::::::-===-........................:..........................::::::::::::::::::-----------------------------
:....::...................................................................:::::::::::::::::::::::+*====-.....................:.........................::::::::::::::::::::::---------------------------
...........................................................................:::::::::::::::::::::-*##+==+==:...........................................::::::::::::::::::::::::--------------------------
.....................................................:::::.................::::::::::::::::::::=*###*+=====-:.......................................::::::::::::::::::::::::::::------------------------
................................................:-:.::::::-.................::::::::::::::::::=*####**++==---:....................................:::::::::::::::::::::::::::::::-----------------------
...............................................:---:.:::::::.................::::::::::::::::::::::-+***++=-::::................................:::::::::::::::::::::::::::::::::::---------------------
................................................----:.:::::::..................::::::::::::::::::::::::-=++++=-:::.............................:::::::::::::::::::::::::::::::::::::--------------------
..............................................:------:.:::::::....................::::::::::::::::::::::::::-=+-.............................:::::::::::::::::::::::::::::::::::::::::------------------
:..........................................:----------..::::::......................::::::::::::::::::::::......:::....................::::::::::::::::::::::::::::::::::::::::::::::::-----------------
::::...................................:-------------=-..:::::...........................:::::::::::................................:::::::::::::::::::::::::::::::::::::::::::::::::::::---------------
:::::::.............................:-----------------=-..::::.....................................................................:::::::::::::::::::::::::::::::::::::::::::::::::::::::--------------
:::::::::::::...................:---------------------==-..:::.....................................................................:::::::::::::::::::::::::::::::::::::::::::::::::::::::::------------
::::::::::::::::::...........:-===--------------------===-..::....................................................................:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-----------
:::::::::::::::::::::::...:-=======--------------------===-..:.........:........................................................:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::---------
++-+*++*++==+++++*******=-----********+++++=+****+*******+***+++*++***************+**+++*************************++=-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-=++++*******
*++*++++++++++++++*****+:::::-++***+***++++=++++++*******++==+****+************************+****************************++=--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-====++*+
++**+++===++++***+*****=::::::-::---+*++*=+++++++*+::+*****+==++++++********************************************+***************=-:::--:::::::::::::::::::::::::=:::::::--::::::::-:::::::::::::--::::::
=**++++===-----=++*****:::::-***++=***+*+==++++++**:-*+++++===+++++**++*+**************************************************************+=-:::-:::::::::::::::::::::::::::.:::::::::::::::::::::-::::::::
+++*++==-------=-=====-:::::+***++***+++===++--+******++++++=++**+=--=+++**+++*++**************************++++++*****************************-----:-:::::::::::::::::::::::::::::::::::::::::::::::::::
+++++++---------=====-:::::::+*******+++-+++*+#+:#=++==+*+==+*+++++***++++++++**++*+++***********++*******++++***+++**************************-+*=-:-::::----:::::::::::::::::.::::::::::::-::::::::::::
+++++++====---=======::::::::++***++++++=+++++**####**++++:++++:+++*+=+++++++++++*+++***++++*****+*++****+--=+*****+*******************************+==::::::::--::--::::::::::::::.:::::-:::::::::::::::
----=++++++++++----=-:::::::-:-+++++++*=-=*+****#+**++++-**=+++**=*=---+++++*++===++++++*++++++++++++++*+++++++++++**************************************+==-::::::------:::::::::::::::::::::::::-:::::
++++++++++++++=::::::.::::::-::-:-+*+*+*++++**+**.+*+++===-+++++**#*+++++++++++*#=++++++++++++++++++++*++===****+++*******************************************#**+-:-----:::::---::--:::::::::::=+::::::
++++++++++++++++=::::.:.:.:::::=-+++++++**+-*+****+***+++++++++*+*:++++++++=+*+**==+++++++++++++++*++++++*+*+++*+************************************************+:-:----:::::---:::----::::::::::::::::
==+++*+++++++++*-::::::::-::.::+++++++++***+++*******+*+==*****+**+=++++++**=:=#*+**+++++++++++++++++++++=--==+*++***+*************++**********************++****---------:::--:-----:--:-:------:::::::
:-:::::-=+*****=::-::-:::::::::++===+++===+++*****+++*+=:=+**+=******++++++++*##*+=+*++++++++++++++++++==++==*++*+:-++***++*************************************+=--:---::::-::-::-------::---------:--:
:::::::::::--:-----::-::::::::-::=+++=+==+====+++++++*+--::++*+********+***+++*++++++++++++++++++++++++++--=++++++**++++++*******+******************+*************--:::-::-::--:-::------+**++=-----:++=
---::--:-::::::::::--::::::::=*****+++++++===++===+++++*****+********+**+**=+*#=:++++++++++++++*+++++++==+=+--:=+***+*+++++***++**+*+++++++*+++***++******+**++++**+=-:::--:::----------=**********+=---
::::::::::::::::::--:::::::::++++***+****++++*++++++++++*****+****++*#*+***=+***+-++++++++++++*++++++++=-=+++=*##+---+++++++++***++++++++++++++**++++++*=++**++*****+::::-:::--:----:--+*+*******+*+++**
::::::::::::::::::::::::::::-***********++*+******+++++++**+=+*****+==********+**+++++++=+++++*++++++++===-+++++#**++-++++++++++++++++++++++++++++++++++=+++*****+**=::::::::::-:::--+++*+*++++*******++
........:::::::::::::::::::-::::--++++++*****+**********++++++*++++*#*+*+*++*****++++++++++++++++++++:-*+=-+++**+=++=++++++++++++++++++++++++++++++++++++++++****+*+-:::::::::--::::-++***+*******++****
...::---::::::::::::::::::::::::::::::::-+**********************+++*+**+++++*******+*+*++++***++++++++++**+++=**+++=+-++++++++++++++++++++++++++++++++++++++++++***=:::::::::-::::::+++*++**************
=-:::.:::::::::::::::::::::::::::::::::::::-::-+**************+*****+**+++++*++++++**++**+***++++++++:--++++++++++++=:++++++++++++++++++++++++++++++++-+++++++***++::::-::-:---::::-***++***************
+++::::::::::..:..:::::::.:::::::::::::::::::::=******+************+*********++++++++++==*****+++++++*+++==+++++++++=:+++++++**++++++++++++++++++++++==*+**++*****+:::::::::---::::=++++****+=++++++++**
++**=:::::::::-::::::.....::::::.-*:::::::-::::-*************+***************++*+++++*++**++*++++**+=--*++++++++++++==++++++*****+++**++++**+++=-+++++==+*****+*+*-::::::::-::::::-++++*+*++++++++++++++
:++***=::::::-:::::::::::.:....:::-:::::::::::::::=*****************+**********+++++**+++*+*++++++++++*++***+++++++++++++++++++++++++-+=+++++++++++++++*+*#**+*+*+::::::::--::::::=+++-++++:+===++++*+++
..=++*+:::::::::::::-=**=::-::::-*-..:::::::::::::::::-=+************************+++++++*+**+++++++++*++*+++++*++*+++++++++++*+++++=*+++++****+++++++++*+++++****-::::::::-::::::-++*+++++=+=+++*++++*++
-.:++*-:::::::::::-*******+**=+*=::+:-...:..::::::::::::::::::-+*#*************++++==++**+*+++*+++*++++++*++*+++++++++****+++*+++++=+*+++=++++*++++=.-+***+++*+*+:::::::::-::-:::=+*=+*++++++++++++++*++
-.:+*+::::-::::::+*****+********+*++***=++=-::..:.::::::::::::::::::-=+****+++***##*+++++*******++++++++++++++*+*+++++++++++++****+++++++++**++++++**+**********-::::::::-:::::::++*=*++++++++++++++++**
-::=+-:::::::::-*********************++==+++****+=--::::::::::::::...=-:-*#*++++++*++++****+*++*+++++++++++*+++****++++++++++++++++*++***++*+++++++++++*++*****+:::::::::-::::::=++*+*+++++*++*+++++++*+
:..+++=-::++*--+=.:+****************+=++***+=+***++****+=-:..::...-*##+...::::::::-=++*******+**++++**++++*++**++*++*+**+*+++++++++++****+++***+++++++**+******-::::::::-:::::::++*+++++++++++++++++*+++
-.:+*=:==++=====:...-+************+=+********+=+************+++##=:.:*--==-:::::::::::::-==+******++++*******+**+++*******+******++***+*+*+++=-=+*+++++++++***+:::::::::-::::::=***+*+++=++++++++++*+*+*
-.:++-::::::=+=..:-:::-+*********++**********+*+=******++++##+=++****=-::::::::::::::::::::--::-=++**++****************++****+**********************++++++++++-:-:::::::-:-::::++*+*++=+=+*++++**+**+*+*
-::+=::::::-+=..-=--=:.:=******+=***************+==+**+=*#=+++++++++++*****+=-:::::::::::::::::------::-=******+**********+**+*****************************+++::::-::::::----:-++++++===++*+************
-.:+-::::::==..------=-:.:=**+=*****************+++==++#=::::::::::::::::-=++*****+=--:::::::::-:-:::::----::-==+**************************++****************=::::-:::::::::==++====+==++*++************
:.-=::::::-+:.---===-----::-=+********************++=-#:::--=====-=-===--:::::::-=++*****+=-::::::::::-:::::::----:::=+********************#:=*************++::::::::::--::-++++++++++++**+*+***********
::=-::::::=-..---====-=----::-+*****************++++-*-:----===-----=-------==--:::::::-=++*****+=-::::::::---:-:-:----------=+************##:-***********++=::::-:::::--::+***+++++*++++**+************
.-+::::::-+:.---==-----=-----::-******************+++*.:------:---------=======-====---:::::::-=++****++=-:::::::::-------------::--==******##+=****=-=+++++-:::-:::::::-:-**********++++***************
.=-::::::==..--==--------------::=*****************++*.-==--=-------------=----=-=====-=------::::::--=+++****+=-:::::::::----:-:::::..:::-+*##=:+--::::::::::::::::::::-:=*****************************
:=:::::::+:.:-==-=--------------:::=**************+=*=.:=---==-----------------------------===--==--:::::--+**+=+++=+=--::::::::::::==.....-=+##*::::::::::::::::::::::::-+*********************++******
=-::::::-=..---==-----:-----------:::+*************+*+:.:=--------------------:::----------------------=--::::=++***###*+=+++=-:::::-:::+++==-++++......::::::::::::::::::-=++*********************+++++
+:::::::+-::------:::::-------------::-************+**=:.:=--=--------------::::::::::---------------===---=-::::-+*+++=+##+++*****+##:.:--=+*#######*=-:::::-=::.::.::::::::::-*************+**********
=::::::-+..-----=-----:::::::---------::-**********++#=+:::--==------------:::::::::--::::::-------------==---=--:::-++*+++#++**++=+++****+==###*-:::::::::::::::::::::::::::::+**********************++
-::::::++.:----=-------===-----::::----:::=*********+#==+=::--=-------------:----:::-::::::::--------:-------=---==--::=++++#+++*******++++=*##***=--::::::::--::::::::...::::::=****************++****+
::::::-++.------=----:--:::---==-------:-:::=*******=#=+**=::--------------:::--:::::::-::::-------:::---------===----:::=++#=+***********+##=++++++****+==::-::::::::::......:::::-=+***********==+***+
:::::::=+:--==-------:-------:-------:::::::::+****++*#+***=:::-----------:--:---:::::.:::::::::---:-:----------===---=--::-#++***********#***********++=++--:::+=-::::::.:::::::::::+=:::--=+**====****
:::::::+=----------------------:::::-::----:::::+++**+#*+****-::--------------:::-:::::-::::::::-:::::-----:----====--=-==-.*++****************************+++==******+=-:::...::::::-::::::::::--==+***
.:::::::-=-----------------==------:---:-------::-****+#*+*****:::-------------:------::::-:::-::--:---:---------====-====--#:++**************************++*+*++************+=-::::::::::::::::::--::::
:-=+=-::=+--------------===--===-----------------::-***+**+*****+:::-----------::-:::::::-:-:::-----------------===-:-==---#=:++************************+*+*+***++*******+***++++++++=--::::::::::::::::
::::.::-+++=------------------=-=------------==----::=**++#++*****+:::-----:----------:::-:::-::-:::--:::-:---====-====---#-:=+**************************++***++*++++++++++++++++++++++***++=--:::::::::
--:...:=++++=----------------=====-----------=-==----::+**+##++*****=:::::::----------------::-----------------==--::::.-#-=++++++********************************+=-::---:-----:::-::::--=++****++=::::
...:.:-=++++++=----------------=-=--------------------:::+*++#*+++****=:::----::---------------------------::::::-:--=*#+=++**********++++**********************++----===========--===---::::::--=++****
........:.::-==++----------------------:-------------=--::-++++*##+++**+-::---------:::--------------::::.:::-==+==+#*++*******++++++++++++****++**************++::-==-======---======-:-----------:::--
..........:::::::::-====---=-=---==-------:---------------::-***+=+##*+=++:::---:----::----::--::....::-++++==+###+++*****++++++++++++++==+++****++++++++*****++::-======--==----=-------:--:-----=---::
.............:.::::::::::::-=========-=---------------------::-++***++++*#**==:-:::::::::......::-======**###*++++++*+++++++++++++=-:::::::-+++***+++++++++++++=::-==-==----==========------------======
..............:..:.::::::::::::::--====----------------------:..-*******+++++--:=++*******###########**+++++++++++++**++++++=-:::::::-==---::=+++***++++++++++++::-=---=-------------------------------=
....:::.............::::::::::::::::::::-====------------------:..=*+*+********=:.:-=+++++++++********+++++++++++++==+=-:.:::::--=----:::---:::=++****++++++++++=::-===--:-:--------:--::---------------
...........::..............:::::.::::::::::::::--===--------:----:.:+***********++++++*********++++++++++++++++=-::::::::--:::--------::::----:::=+*****++++++++=:::-----:-----:::-:--:-:-:-------:-----
:::...............:--:.............::::::::.::::::.:::-===--------..=++++****************++++++++++++++++=-:::.:.::--::------::::-------------=-::-+*****++++**=++=::---------:::----::::::::--:::--:---
:::..:::::::............:-=:............::.::::::.::::::::.::--:::++++++*****++++****++++++++++++++=-::::..::--:::::::-:::::---:::::------------=-.:-+*+***++++++++=:.----=------::-::::::.:::::::::::--
:::::::::::::::::................::.....................::.::::...::===+*+=++*+**+++**+++++==-::::::::-----:-------:::::::------::-----:::::::::---:::=+***+++++++++=::------------:::::::::::::::::::::
:-==--:::::::::::::::..:..............:--:............................:...:-=+**+*+++**+++::::::-----:::::::-----:----::::::-----------------:------::::=++****+++++++:::--------:--::::::::::::::--::.:
----=---===--:..::::::::::::::...:..............:........................:.::...::=+***+**++=::::-------:-------::--------:------------------::--------:--+******++++++-::----------::::::::::::::::::::
::::::::------====--:::::::::.::::::::::............::::......................:::......:-=+*=-+-:::------------------------------------------:--:-:----=-::-+*****+++++++-::---------:::::::::::::::::::
..:::::::::-----------===--::::::::::::::::::...............................................:::-=+------------------:-------------------:---------:::::--=-::-+*****++++++=:::--------::::::::::::::::::
.......::::::::::::::---------==--:.::::::::::::::................:::...........................::::::-===--------------------------------------::--:------=-::=******++++++=:::--:::---::::::::::::::::
.:.....:.:::::::::::::::-----------==----::::::::::::::..::......................................:::::::::::--===---------------:--------------:--------------:::=******++++++=:::=----::---::::::::::::
......:::::::::::::--:::---::-::::::-------==-:::::::::.::::.::................::::...................::::::::::::::-===--------------------------:::::---::----:::++*****++++++-::----------===--::::::
========================================================================================================================================================================================================
========================================:::::--:::::-=::-=====-::====-:-====--=====:::::-=====::::::=:-===-:-:::::::=::::::=-::====:-==-::::-==-:===-::::===-:-====:-===================================
========================================:-====-:======:::=====:::====:-.====:-=====.-=========:-=====-.-==.-====.-===::=====-::-===::=-.====.-=::==:-===-.==-::-===:-===================================
========================================:-====-:======:-:-===-:-:===-:=::===:-=====.-=========:-======-.=:-=====.-===::=====-:=:-==::==:-======::=-.=====:-=-:-.===:-===================================
========================================:::::=-.::::==:--:===:--:===:-=-.-==:-=====.::::-=====:::::-===-.-======.-===:.::::=-:=-.-=::===-.:-===::=-.=====:-=-:=-:==:-===================================
========================================:-====-:======:-=:-=-:=-:==-:===-:==:-=====.-=========:-======-.-.-=====.-===::=====-:==-.=::======::==::=-.=====:-=-:==-:=:-===================================
========================================:-====-:======:-=-.=:-=-:==:-----.-=:-=====.-=========:-======:-=-.-====.-===::=====-:===::::=-:====:-=::==:-====:-=-:===:::-===================================
========================================:-====-.-----=:-==-.:==-:=-:=====::=::----=.-----=====:-----=:-===-.-===.-===::----=-.====:.:==::--::==::==-:---:-==-:====:.-===================================
========================================================================================================================================================================================================
========================================================================================================================================================================================================
========================================================================================================================================================================================================
========================================================================================================================================================================================================
========================================================================================================================================================================================================
==============================================================::--:--------------------:-----::::---:---::--------------------------------:=============================================================
==============================================================--:=====================-:--=========--==========--:-====================----=============================================================
==============================================================-=---===============---==-===========--===========--==---==============--=-=-=============================================================
==============================================================-==-=--==========---=====-===========--===========--=====---==========-==-==-=============================================================
==============================================================-==--==:-======--========-===========--===========--========--======--==-===-=============================================================
==============================================================-===--===--==--==========-============-===========--==========---=--===-====-=============================================================
==============================================================:====--====:-============-============-===========--============-:====--====-=============================================================
==============================================================-=====--=--=--===========-============-===========--===========:==--=--=====-=============================================================
==============================================================-======---====--=========-============-===========--=========--=====:-======-=============================================================
==============================================================-======--=======--=======-============-====================--======----=====-=============================================================
==============================================================-====--==:========-======-============-==================--========-==--====-=============================================================
==============================================================-====-====-========--====-============-===========--====-=========-====--===-=============================================================
==============================================================-===-======-=========--==-============-===========--==--=========-======--==-=============================================================
==============================================================-==-=======--==========---============-===========----==========--=======-==-=============================================================
==============================================================--::---------------------:------------:-----:-----::-----------:----------:--=============================================================
==============================================================-=-==========--==========---==========-=========--=-==========--==========---=============================================================
==============================================================---===========--=========-==--========-========:-==-=========--============--=============================================================
==============================================================--=============--========--===--======-======--====-========--=============-:=============================================================
==============================================================---------------=-------=------==----::::::--:===----=====-=--===-==-====-===:=============================================================
==============================================================--===============:=======----::-:--:=-:--:----:::-=-=======-================-=============================================================
==============================================================--================:-------::--:-::-::-:-::-:--:-::-:-------=================-=============================================================
==============================================================-----------=---::---=----:-:----::-:--:--:-:--:--:-:=--------::-------------:=============================================================
==============================================================--====--::::-:--:-::-:--:--:----::-:----::-:--:--:----:--:-:--:--:-:::--====-=============================================================
==============================================================-::::::::::::::::::::::-:::::::-::::--::::::--:-:::::-:::::::::::::::-:::::-:=============================================================
==============================================================--:-------::-------------:-----------------:--------:------------::---------:-============================================================
==============================================================----:--:--------------------:------:::.:::------::----:--------------:---:--:-============================================================
==============================================================-:---::----------------:----=::----:......---=:------:---------------=-:---:--============================================================
==============================================================--:=:--:---------------=----:------:......-----=:--------------------:--------============================================================
==============================================================---------:------------=--:--=--=---:......=-------::---------=-------=----:---============================================================
==============================================================--:------=----=-----------:-=------:......-:=------:--------------------------============================================================
==============================================================-:--:-=----=--=--=----=:---:=----=-:......----------=:----=--=-=:-=-==---:=---============================================================
==============================================================-:-------=----:------:------:--=---:......-------:-----:-----=:---=----=--=-:-============================================================
==============================================================----------------:------------------:......------:--------:--------------------============================================================
==============================================================-------:-----:----:-------:--:-----:::::..-----:-----------:=---------:-------============================================================
==============================================================--------:-------:---:--------------:----------:----:-----:-----------:---:----============================================================
==============================================================-:--:::.::--:.:.:---:.:::-:-:.:.:--::::::.---:::::---:::.:=--:::::=-::::::=-:-============================================================
==============================================================-:-=:....=--:....=--....:---....:=::......:--.....=:-.....=--....:---.....=---============================================================
==============================================================---=:....---.....---.....::-....::-:......-:-.....-:-.....=--.....---.....----============================================================
===============================================================--:--=-=:---=--==----==-=:---==--::......-::-====::=====---==--=-=:-=-=--:---============================================================
===============================================================---:--:------=--:----=---:=--=----:......---:==:---==-==---:=-=--=-=:-=-:=---============================================================
===============================================================--=:....--=:....---.....-:-....:--:-=-==---=.....--=.....---.....--=.....=---============================================================
===============================================================---:....---:....---.....-:-....:--:----:----:....-:-.....---.....---.....=---============================================================
==============================================================--:-:....--::....---.....:::....:-::--::=--:-:....::-.....---.....::=.....-:--============================================================
===========================================================-::-:--::::-----:-:--:-::-:--:-:::::::::::::.::-::-::-:=::-::::::::::-:-:::::-::---:=========================================================
========================================================-----:----:---=---::-:--:-------:--:---=:::.....-:---=---:----:--:--:-::-::------:=----::-======================================================
=====================================================-:-=----:---=-----=--:--:---=--=---::::----:-..:.::::---:::::---=---:--------=--=::------:----:-===================================================
===================================================-:----------:-------------:----------::::----:-.::.:.-:----:--:-----------=---:----:---=--=--------:=================================================
================================================-:-=------------=--=--=----:-::-:-------:---=-:=--......---:-=---:=------:-:--:---=---:-----------=-----:-==============================================
==============================================::-:--::-:--:-::-:::::::--:-:-::-:::::-::::-::----:-.....::-----::::--------------------::---=-=---:=--=-----:============================================
==============================================::----::-:------------::-:--::::--:-::-:--:--:----::......::-:-----:----:--:----:--:--:-:----------:----::------==========================================
========================================================================================================================================================================================================
---------------------------------------------------------------------:.....................................................................:::----------------------------------------------------------
---------------------------------------------------------------------------...........................................:::-------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------:::.:::-----=-----------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------:-::::::::::-------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------:..::::::::::::--------------------------------------------------------------::::----------------------------------------
------------------------------------------------------------------------------::...:-:::::.:::--------------------------------------------------------::::::::::--------------------------------------:-
------------------------------------------------------------------------------::...--:::::.:::---------------------------------------------------:::::::::::::::----------------------------------------
------------------------------------------------------------------------------::...---::::.:::--------------------------------------------:-::::::::::::::::::::----------------------------------------
------------------------------------------------------------------------------::...---:::-.::::----------------------------------------::::::::::::::::::::::::::-------------------:----------::-------
------------------------------------------------------------------------------::...---:::-.::::---------------------------------------:::::::::::::::::::::::::::--------:--------------------::::::::-:
------------------------------------------------------------------------------::...---::::..:::--------------------------------------:::::::::::::::::::::::::::::---:::::------------:::----::::::::::-
-----------------------------------------------------------------------------:::...---::::..::::-------------------------------------::::::::::::::::::::::::::::::::::::::-----------:-::-:::::::::::-:
-----------------------------------------------------------------------------:::...:-::::::.::::-------------------------------------::::::::::::::::::::::::::::::::::::::----------::::::::::::::--:-:
-----------------------------------------------------------------------------:::...::::::::.::::--------------------------------------::::::::::::::::::::::::::::::::::::::----------:::::::::::::::::-
-----------------------------------------------------------------------------:::...::::::::.::::--------------------------------------::::::::::::::::::::::::::::::::::---:----------::::.-.::::-::----
-----------------------------------------------------------------------------:::...::::::::.:::::------------------------------------::::::::::::::::::::::::::::::::::::------------:--::::-:---:::----
----------------------------------------------------------------------------::::...::::::::.::::-----------------------------------.:--::::.:::::::::::::::::::::::::::--::--------=--:-:.-:::--:--:----
----------------------------------------------------------------------------::::...::::::::.:::::---------------------------------.:::-::::::::::::::::::::::--:::::::::::---------=----:.--::--:-------
---------------------------------------------------:..::--------------------::::...::::::::.::::---------------------------------:::::--::::::::::::::::::::--::::::::::::--------==-:--::::::--:-------
----------------------------------------------------------------------------::::...::::::::.::::---------------------------------::::::::-:::::-:::-::--::::--:-::::::::----------=-:---:::..--::-:-----
----------------------------------------------------==----------------------::::...::::-:--:::::----------------------------------:::--::-:::::-:::------:::-----:::::::---------------::--.::::--:---:-
----------------------------------------------------===---------------------::::...::::::--:::::-===-------------------------------:-----:::::-----------:--:---::.:.:::--------------::----::.--::::---
---------------------------------------------------=+++=--------------------::::...:::--::-.:::--------------------------------------:--:::--------.--------:-:---:::::-----------:---:-:-:::::::::-----
----------------------------------------------------++++--------------------::::---::--=-::-:::::------------------------------------------------::-::-:----::::--::::::----------:---:::.--:.:::-------
----------------------------------------------------=+++=-------------------:::---:-:-=--:---:--=---=--------=----------------------------------..:.--::---:::-:::.:.::::---:-----:--:::::::::----------
----------------------------------------------------====--------------------:-=---.:-::-----------=======-=-------=--------------------------::::::::::-----::::::..::::::---:----:---::-:.:------------
---------------------------------------------------:----------=--------------=---..------=-------==========-------=------------------------::::.::::::--::--::::::::.::-::::-:-----::--:::--------------
---------------------------------------------------::==:-----------------------::--==------:=-=-:--=========---=-------------------------::::::::::-:-::--::::::::::::-.::::::---:---::::-:-------------
-------------------------------------------------=-..:==:--------=-----------:::...---------------=-----=====--------=-----------------:::---:::.::::::-::.::::::::::::::::::-:::-:-::::--:::.:---------
----------------------------------------------------::--------------------==-::::.:---------=-::---::::-=++=---------=---------------:::::::::..::..::--:::::::-:::::.:.:::::-:-:--:.::::..:..:---------
-----------------------------------------------------=--------=-------------::-------:::::::.::::.......:-==--=---------------------::::::::....::::.::::::..::-:::::::::..:-:::-:::---:.::...::--------
----------------------------------------------------+=--=-------------------=---:----:::::::.-:::::::::-----==----------------------::...:::...:.....:::::..---:-::-:.::.::.:-::::::::-:::....::--------
-------------------------------------------------------------------------===------:-::::.::...........::=----=-----==----------------:....:.........:....:.:.:-:-:-::...:...::::::::::::::::-:.:--------
------------------------------------======------------------------------------:::::::::-:::...:....:::::::--=------=-==-----------:::::......................:::::-::-.....:.:::.::::.::-:::::----------
-----------------------------------------=====------------------------------:::::::::---:::.:.::::::-::::-----==-----==---------:.::-::::..::....::.........:-:::::::::......::::::.::::::--------------
---------------------------------------------------------------------------=-::-------::::::::.:::::--=:-----=------------------.:.::--::::::::::--::......:-:-::::::..:......::::..::.:::--------------
---------------------------------------------------------------------------=--==-:----::--:::.-:::::-----------=----------------::::-:---:-:::------::....:-:::::.::..........::::.:::::----------------
-----------------------------------:--------------------------------------=--::::..------::::---::::-----------------------------::------:::---------:::.:--:::.:............::..::..:------------------
-----------------------------------::---------------------------------------::-=-:---=-:-::-+==--+++----=-------==----------------:-::::-:---:-------:::---::-:..:............::..::--------------------
----------------------------------::::-------------------------------------:-=-==-..:----::-:----------=-----------------------------::-----:---:------:::.:----:::..............:----------------------
----------------------------------::::---------------------------------------=---...-:::=-==-=-::-==-----------====------------------------:::-:::-:----:.:-----:..:.:........:..::---------------------
----------------------------------::::-------------------------------------:::::::-=::-::--:.:--:--------=----==--------------------------:::::::::-----::--:::-::....:::...:::::::::::-----------------
----------------------------------::::-------------------------------------:::::.:-==-:----.::-==----------------------------------------.:::::::::--------:::::-::..:...:::::::::::::::----------------
----------------------------------:::--------------------------------------:::::...--::::-=:.-::::-----=-===-----------------------------::::::::::::::---:--::::-:::.::::::::::::::::::----------------
---------------------------------------------------------------------------:::::....:::::-----:::::---------------------------------------::::::::::::::----::::::::..::::::::::::::::::----------------
--------------------------------------------------------------------------::::::.....::::---=----------------------------------------------:::::::::-------:::::::::.:::::::::::::::::::----------------
--------------------------------------------------------------------------::::::.-=========------==========------------------------------------------------..:::::::::.::::::::::::::::-----------------
--------------------------------------------------------------------------:::::::================----=----------------------------------------------------:..::::::::::::::::::::::---------------------
-------------------------------------------------------------------------:::::::.=================--==----------------------------------------------------:::::::::::.::..:::.::------------------------
-------------------------------------------------------------------------:::::::.=====================-----------------------------------------------------:...:::::::.:.::::---------------------------
-------------------------------------------------------------------------:::::::.=====================------------------------------------------------------:...:......:::------------------------------
------------------------------------------------------------------------::::::::.=====================--------------------------------------------------------:.....:::---------------------------------
---------------------------------:-------------------------------------::::::::..======================-------------------------------------------------------------------------------------------------
---------------------------------:------------------------------------::::::::...======================-------------------------------------------------------------------------------------------------
---------------------------------------------------------------------:::::::::...======================-------------------------------------------------------------------------------------------------
----------------------------------------------------------------------::::::::.::======================-------------------------------------------------------------------------------------------------
------------------------------------------------------------------------:--------======================-------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------======================--------=====------------------------------------------:::::-------------------------------------
-------------------------------:::-----------------------------------------------======================--------=============--------------------------------------------:-------------------------------
------------------------------::::------------------------------------------===========================--------===========--===-------------------------------------------------------------------------
-----------------------------::::::---------------------------------===================================--------===============--------------------------------------------------------------------------
---------------------------::::::::---------==-------------------------=--=============================-----------------=========-------------====================================-====-------=====-----
--------------------------:::::::::--------------===========================---========================----------------------========================================================---------=---------
-------------------------::::::::::::::------------====================================================--------====================================================------===========--------------------
..+#############*##**++++++..:#+-###--##*-##*-:--**#***+++++****--...:*########*++-*#*+=-=*:.:-+#####=.....:=.:###*###################*::-++...::::::::::::::::::::::::::+#-=###########+::+-###+++*####
..:########**+++++*####**####..:###--####=-*###*=+*=-==*****###=.*-+**++++++*#*+-...--==+-:::=###########=:....:+#=####################::::=+=..:::::::::::::::::::::::::*#*+*###***++=.-=:-:===++######
..:#####++++*################+:.-#-=#######*-################++.*++=-##+-..:=*+===++++**##=:+################=......+#################*-......::::::::::++-::::::::::::::::-=++++**##+:...:--+##+++*####
....+=..-*######*+#########:=*##:.:########**+#########**++*+=:..::-++#####*-::+######-*#*-=+++********#######+..+:.....=########*++*###.........::..:::++-:::::::::::-=+++****--:=+*###:..=####++++####
.....-#####-=##-:-:*#######+:.-*-=###########*-#*+--::::-=+######:=#=-+*+=::-*##########*-*:#*******#**********+..+**=:....:=++*#######*............=::...:::::::-=+++--=###*+-=*=-:=#*-=-..+###*+++*##+
.....+#########---:*###*..+#+##=:*###-*#+-:...--##################==:-*+-:+#-##############:*#**=::=#########*++-..:++#**=:.....=######...............:...::=++++-::::*=..-*+######*.:-+##=..####++++=.*
...=##########-:-:*#+.=----*=+=....-:+=######+##=##############=-*##=-::++=:=**#*********++:==:-=+=-##***+++===+**:..=+++=-=**-.....-=:.................=++=-:::::::*####+:-#####*-+::---##..*###++:.+++
*#########+::-:*=-##-..--..:-*=:*##=##*##########=########*+=+###=#*====--=====--========-::-===+*#*+-+########****+.....:-=**--=.......=*#*++-:=+-........:::::::*########+-+*==*##**:--*#=.=##*::+++++
###########=-:+#:=*:-#####-:=#####=####+######**++:+*#*--*#######*-###-:=+########*=*##**-::-+=+==*=:=+:-=#*=*########=:.......-*==++=....-++=+#*:.............*####**#*+--**:-###+*#*:--*##..#.-*++++++
#########==#:+#+::-*########=####=##==+-*########+--*##########+=###+:-*###########+:::::=#=###*+--*##*=+:+:+#########=...=*#########*++=-......:+*=............=*+**###*#==##*-=####*::*###-.-####*++*#
###########-+##--*##########=###=*=####+*###*+=+###+#########+=##*=-=**==*######*-:-++==:::-*#*--**+*####=....:+#################*++*=-*#####*-.....-+...........#######+*#***##=-*##---##=.=.:#########
##########*:#=::+###########=##=#+######-:-#########*######=+##+-==*##*==#####+::+##*-###-::=-:-*######*........-############*++*##*:*########****-.............=####=.-.....:=....=#--*=.###..*########
##########+-:=+-####-:######=#+##+**==+#=*###########+###-=#*====-+#####-**+-:-*###=*#####*::-###*++###-.........*######**+*+=###*-+####***##########*=........+=-::*#######+....:......*###-=.+########
##########--*#-+###*+++++**#+++*+-+=####+#############+-+####====*######*-:-**+*#*=###**+#-:-::*#####+=-..........+#**+**#++####+-##***-*#**##############=.....::+###*###*........:.....-##....########
########=::*#*:*#####*=++###=.+##+-#####*############:*+####*==-+########-::.###+=+#+*###=:+#=::*#######.::.....:++*####=*#####-=#+################++#+######*:......+###=...........:-....#*...=#######
**####*:=*:##=-#######*:=-=***###########+########+-*###+###+===##########=:+##==*=**+**-=-*##*::=#####-....-=+=:.-###++#####*-+*############....:####+####-=+####+:....................:..:#-...#######
##*##--##*-##:+#######=-++###+###########+######=:+######+##*==############-:+-+=*###=:-===#####-:-###=-=++=:...-=*=++######=+##############+.....=##+**+:=*#+########+:..................:.*#...+=--+##
###=:*###+-#+:######:=+#*:-##=###########=####-:+#########+#*==############=::::+::==++:+*##++-*#=::-++=:=#####=###*--####=:#######+######*+#:.....=##=+=*###*-#########=..................:*#-..:=--*##
#*:=##*##==#-+####*:-*####=:+=*##########*+*-:*############*+==###########*+-----:::::=#*####*--=++=-:+#######+-*#####+==-=##########*++*######....=-*#######*-*==-=+###+...................=*#=..--=*+=
=:*####**==*:####*.=#######*::=##########*:-*###############-=-*#########=:+-::::::::*##+###*++==--=-::::::###:-=####**=:*#==*####*+##*#########+==##+*######+=#####==+.=:.................==-=+..---+*#
-*#######**=-###*.=##########=:-:-+**-::-=+#################+==*#######+=:*-::::::::-##**++**::---:+:::::::=####=+*+*=:-#+=####--######.+#####*:#*--*########+*+####+.*+-+....................+*=.:-+###
#*=######==+*###-+############*=-:::::-+*#+##################==-::-=+**=####++#*+==**+*+#####+--+::-#*:**=:::::::::-:::===+:=-=+*-.-+##=####===-+###########*+#+##=.*###.-+:............:#*-.....----+##
###++####=::#**################*##########**#################*-=+####+##########*++*###+####*-*##############**=-:::+++*+-+=*-+=-:.....-+-..:+########+:-###++#*:.####-.+:::.........:+#######*..:.-.::.
.####-###=:+###*+::-+*#########*###########+##################+=-+#=+#######*+*#*+*####*###+-*###############+**=#####*=#+####+.####*:....=-*#:*#:#-*-:*####++:-++-::.::::-*#:...:##*=#########=-#+-....
.=####+=#=:*##*::=+-:::::--+*##+###########=###########==*#####==*=####**+****+*######*###+=###############**###::+##=*+#####:##+=##+-*#:...+*=-.*##.+##**=-..::::::::-=+*###*+###*=**=#######*=.#==-::.
#.####*#=--:+#*::::-+=:::::::::::-+*#######+############*######*-+##*++++*#**#########*##==##############**#####-:+=*+*###+=+####*::#####=#:..*##+-:-:-=+=.=*###=+*##################=*=#####*+#=+==*:::
#+.######=:=:*##=:::-==*=:::::::::::::::-=*+*#################*-=++*####*+############+#==#############**#######=*-*+##=*######-:###+-####=*=...+-+#*-=-.*#**##+::=###################*-=##**+*##.==##=+
##=:#####=*-:-#######**=-=+=-:::::::::::::::.::-=+*##########=+#*-*##***##############+==############**#########=++#*=######+:+####*+=----*##---..*##.:*#*===+=-:=######################+=**+*###+-+*+=:
###.-####=###############*+**+*+====--::::::.:::::::::-=**#*-####=++*################**#############+##########=+*#=#####*--*+===*######+=*==*###=..:=+##*--::-==:#**########*######***##++-+##**+++=..:
####.+###=#################*++**++##***++***+++++*****-:::::::-*++=##################+###########*+###########-+*++##*=-:+############+:########*.......*#+*+#**+++++*******#**+****+++++++++++*---::::.
####*.###+######*########+*#####*+*++*####**+---=****+::::::-=-:::=--=+*#############+#########**###########*:===-**+==*#########*+=====+++***=.+####..:*+++**+=##+####******###########**#=*#+----.::::
#####*.##+##############**#######=####**#####=####*=-::::-==::::::--::::::::-+*######+######**########*+=-=+=###.=+-+#####=+--=*############=.*####*++=...#+:::==-:-=*#################=####==-::--:.:::
######+.*+#############+*+*######=#######+####=#######-+**+=:.:::::=-::::::::::::::-=+###*+###*+==+*######=*##.=+-####+:+#################-.##*+*#####*-*...*+**###*###*+=--+#####*##*.###*=-:::::.:..:.
***+++:..+**********#+*##########=*#######++*#**####**######+###*+=-=:::::::::::::::-::::--:=*###########-+*-:-+##+=+###################-:++*#######**+=-*#-..=*###=.........**=-------:--:-::::::.::..:
########=.#########*+#****+++++++++****###:=##++#**=*######=########=*##+=--:::::-:::::::::::::::-=*###==++:..##:*####################+**#+-##**+**##-::=##+#=...+...........-:--=+=#+::-=::::::....-..:
##:######..#######**#############*=..-#...**+++*++++++++**+*########+=##*===+***=-:::::::::::::::::=:::::--+.+-*##################*+:+#**+**#######-::+==##+####-........-......##*=*######+::.::..:::::
#########=.:######################=*..:=-.:+:.:**=+**##+=#####**+==+++++***********#+*+=--:::::::::::.:::::..::--+*#########**#*++=+**##*++=-::::::::+**:##+##=+.....:..........=##**..............:::..
**########-..###################*++=....***-:.....*#*#**#*+=-=*#####*==######***++++++++++++++++++==-=--..-::::::::::::-+**++++-.-+--:::....*=::::+#*=::..++#....::......................:+#=:---.:::::.
***#########:.#########***+++**#...-##########:*+....+**#**##########*=*#######*###*#######*-:------=.:+++++++++++===--::=+-:..:-***###**#*-:::::=#####*=+=::::-:...............*############::.:.::::::
***#########*..*###**++**###++-..:=*######*+=-+-*##+..=#####**########==#######**##+#####+:.:::::...::=*.-:.::::::::::-+=::..::::::::-=--::::::=######*#+=*--=:.:..............=##+*########*#:...:::.::
**####=.#####*:-+++*###...#+....##+++--+*##+-########+..-######*+#####*-*#########*++++-::::::::..::###::##########+=+:::..::::::::::::::-==-:::::::-++*-:++####:.............####*#########=*.+.::.::::
+###########*+*:..#####-.==...:+**+*######-+##**#######*-.=########==-*==##########+=::::-:-==:..+####+.#########*+*##+.+**=-::::::::::::::::-==-::::::::::-+*##*..........-*##############=#.:=+=--:::.
*########*++***##...=+=-.....#####++####*-**********######*..+######+*#+-+********=::--==-:::.:.######-=######*+*###=.=*###=:=##+-::::::::::::::::--=-:...:::::....=:::-:==--*#####**+--::.-:.**#*=*--##
#######*++*###=-=*+........#######+*###+-************########*..########=-#####+......:::::::+=+#####+.#####+*####=.#=::#*-:*######=::::::::::::::::::-=-.:::....::::::-::.::::.-*#######-##.*####=##+##
######++*######*####*=:+*#########+*##==*******+-:-=****########+..#####*=+##-::::::::::.-*=+=:######.+##*+*####-=#######--##########*--=++--::::::::...-:::-:...:+====-==-::::::.:-=*#=+##-:#####+*:::=
####*++########**#################=+#==#******-::::::***#######-:##=..*##==-.::::::::::+##=++-######+.*+*#####-=##*+-:::::-::::-------=-::=--++=:::....::.....:-==-:=-:-::-::::::::::::-*##.*#####*+:::=
##*#+*##########*###-=######**+*++++++++*****:::::::=****###**#+.:###*...-==-::::::.-###*=*.=#######++######.==++#####-:=#-+#####=:::..:::::-=*###*.+#-....::::::::.:-:-::-:::::::::::::::.-######*++=#:
##*+*############+#==**++***######*:+####***-=+++=+*****##***+##-:-##::::...=-.:.:*#***=*=.######*+*.=*++=:*######*..:::-==+**#######::-=::::-+=-::.....:.-++++==:::::::::::::::::::::::::.-=++****-.*:+
##+*##############+++***+=-::::-=+:-*#####*::::::***+++***#######:::.::::::-:..:######=::#####*+++++.+*+.=----...=++-:=############=:+##*:=###+.....-:.=-+*########-.++--::::::::::::::::.:#########-:**
#++############+++#+######*:=####--+#*+=:......:**####*##*++*=.#+::::::::::.:####*+++=####*+=:::-=*+.:-#######:.....::.....=####=:=######--###*....:=+*::++########=.+#=#*=##+:::::::::::.*#########..#=
*+##########*++#####+######+*##*-=-*#####-::::=****+==-::::-=+=++==-::...:+###*=-...-==++*#+*#####*..:######-....=*+:==:.::*#+:=#########+:*########+####*-:+#*####+.-#=#*+###*+###**+++.###+####*#:#:-:
+#########*+*########..=*#####*-+--*####+::::-+###*########+:::.....:-=++++++++++++++*##++######*::...:.=*=....*#*:::*##*=.::+############:-########+#####+#-:-*###+...:.::...:-+######-=######**#::::::
*#######++*######.+##*....................:::=***########-.::::::::::+########+=-....::+*#####*.##...........*###=:::-+-::-...#############-########+#*..-*###*:::.....::::......:.:##*.#####+*#+.::::::
######*+*###############+###*--#=:+######*--=*##*******+::::::::::-*:###########*++*######*+::-:::.........-#####::::::+####-.:#############-######**##=-=*###=..::::..:::...........::=###+*==+.:::::::
*####++*####=.:##########+#*---::-##################+*##.......:+#++:*****+++*####+-######:-######=.......=::.::--:::+#######=..*############-*####**####+##*.:....::::::::.......::::.::=####*..:::::::
+++*++###*##...=##########-:::::--###############+*######:...=######:############:+####*.+############+###############*+=:....:..=+*##########-*###**####+#-.........:::-::::.:::::::.::::==::..-:::::::
+++++#######=...########+--::--+##############*+####################:###########:####-.+################################**+**#+======---:::--=+-=##+#####*-..........:.:--::::.::.::..:::::::..+*-::::::
+++++#######*...=#######----:::*############+*######################:##########:##*..#################################+-===============#########+-=-:..:-:...........::.::::::::::::.::::::::.:*###***##
++++++#######:..=######------:::#########+*#########################:#########*::.:################################+-==================###########:+####=::..............::.:::::::..::....:.=##########
++++++########:.:####+--------:--#####*+*###########################-*#########:-################################=====================+############-*##++..............::...................:###########
++++++########*..*#+:---------:::+##+*##############################=*######*.=################################*-====================-#############+#++#-...............:....:......:...........:-=+*###
++++++#########*.++-------------::+#################################*=####*.*#################################*=====================+##############+####-................:...:..............=##########*
+++++*###+######=.:-------------::=##################################:##+:*####+.*############################=======================*#############+####=.................:.................+###########
+++++*###########..---------------=##################################==*######################################=======================*#####==-*####*####*..................:................############
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------:----------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------::::::::::---------------------------------::-------------------------------------------------------------------------------------
---------------------------------------------------------------------::------------------------------------------::-------------------------------------------------------------------------------------
--------------------------------------------------------------------::----------------:::--------::--------::----::----:::------------------------------------------------------------------------------
--------------------------------------------------------------------::-----:::::::--:::-::::--:::--:::--:::--:::-::--:::-:::----------------------------------------------------------------------------
--------------------------------------------------------------------::----------::-::-----::-::-----::-::-----::-::-:::-::::----------------------------------------------------------------------------
---------------------------------------------------------------------::--------:::-::-----::-::-----::-::-----::-::-::::--------------------------------------------------------------------------------
----------------------------------------------------------------------:::::-::::----:::-::::--:::--:::--:::--:::-::--:::--:::---------------------------------------------------------------------------
--------------------------------------------------------------------------:::---------:::-------:::-------:::-::--:----::::-----------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------::----::----------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------::::::-----------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------::::-:::::-:::-:-::::::::----------:-:--:::-::-:::::::::-----------------------------------------------------------------------------
----------------------------------------------------------------------------------------:---------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
********************************=**************************-+***+=-:-==**==****-*****=-=++=++=*+=--=+=**=---+=:+===++++=+-*+=-+*=+-*+=+-+**+=-*==++=+==+---++=+=****************************************
********************************=**************************==+*+=+++==**==*+**=--==-=--=-=*+=+=*+=====++-==+=-+-==***=++++++=*+===+*=+=::=+=+=-=+---===+=++-===-=***************************************
********************************=**************************=+=+====+=+===-+==-=--=-+++==+=+*+++=*+=:==-==-=:=-+=*+-=--==-=-::::--====+-++:=-=:=+==+=**+=*+-*++=+=+**************************************
********************************=***********************+-+===-++-+==+-+=+=+==++++=+=====+++*+=+=+=*--++**************===-=========--=-+=++-**:***+=**==*==+-===-+**************************************
*******************************=+*****************+===++****+++=-+====--==**+-+*+--:=++=-=++-=--=--+********************+::=======++=-++-*-+*==+*+=+*==++===+=+-==**************************************
*******************************=+*************+==+**********+-:=+-====+:=+=+=--:-=-===++==++=-===+***********************+=+=+=======+=-+==*+-+=+=+=+++==-==-=-=+==*************************************
*******************************=+**********+=+****************-::+=+==+--+===+=+:++==++++=--==-+***************************==+=+======-=+-++-=-=-++=:++-=+=++=+-+=-+**+==+******************************
*******************************=+******+==+*******************+---+===-+--=+:---=+*+=+===-==-+******************************+=+=+++++++==++=+--+**+-+*+-*+-++=+==:-==+****+=****************************
********************************=****==************************+-=:++:+=-====+====**+=+==++=**********************************+--=+=-==+*=+*+:+=**==**==+=++-==:.-**+====***=***************************
********************************=**=+***************************+++=:=+-=--::-=+===+++--===************************************=**==******++:=+++=--+=-==-=-=-+=-.::::::-+**=***************************
********************************=+=+*****************************-=-====-:---===*==+=-===+*************************************+::::::::::::-+**=::=:=+:==:+=++=--=+***+:+**=***************************
********************************+=********************************=+=-+----+==+-=++==**-+****************************************+=+=**=-=--=+*==::=**+=++=+=+-++---***-:-+=+***************************
*********************************=********************************+--:=.--+**=-====-=-=+*+=***********++-===+*********************=++=++*****=+=--+-=====:+=-===---:=++-==+=+***************************
*********************************+=********************************+==-:=+****=-+==++=*****+++***+=::-=-:+=-+---+*****************=:--:--------=-=+-======-==+--+:-:-=-+==+=****************************
*********************************+=*********************************+.:+=******=.::--+*******+=+--=+:=+=-*++***+---****************+.::.......:.=+.=-=:--++====+:.--=-:*==++****************************
**********************************=+********************************+-=-+++++++=-==-+*******+-==+**-:==::=---=----::-=**************+=++-=++++++=-:==:-=-===:+-=+=--+-.:+==+****************************
**********************************++**********************************+==+****++==+******+=-+--====--===-=*=.=++*****=-=++***********+=--=--------+=--===++-+-+=----:-=++==*****************************
**********************************+=**************************************-=+-==********=.:+****+=-+=:+==--*=-=+=***+:+*+-************+--:---------=.--=-+---+--+=--=.:++-******************************
***********************************=+***************************************++*++*****+:=------:==+=*=:+===-*=:=+=**--**:--=***********+::::::::::::-=-+.-+===-=+--=.::==-+*****************************
***********************************+-***************************************+=**=+***=::=+++++=====+=++:+=+-::+:-===:+*--*--+***********=::.::::::::--+---:-==+:-=:..:---=******************************
************************************=+**************************************+=**++**+==+*****+=++=====++.::-----:-=:-=+:*+:-=***********+--==+========+-+-=--*=-*=.:.---:=******************************
************************************+=***************************************=+**=+*=:=++++++-+-====-=:---------------:++:=::*************===-========:+-=--==-=+-:-:---.=******************************
************************************+=***************************************=+**+=+:-=+***-=+-+==+=-----------------:+=-=:::**************==-=======+=-=-=+--+-----:=::=+******************************
*************************************==***************************************=***=+=+==**-++-*-+=::------------------:-=:..:***************:----------==-+=:+=:=-==.:-+=+******************************
*************************************==***************************************=+*+=*=+*=+:+**+:+--:-----------------------:-=+**************+-===++====--*=.:=-+-=-:--:=:+******************************
*************************************=+***************************************+=+-=--=====****+--:---------------------==-:+=+***************+=*--+*****++.---=-+-:-::.:.=******************************
*************************************=*****************************************+=++=*-+***++****=----------------------==-=*=+****************...::::::::::=+====----....-******************************
*************************************=+***************************************++=+=***=+**==+++==----------------------=:.::=*****************+==+=++++++-=++=-=-:--.....=******************************
*************************************+=************************************+==*-++*****=+==++++=:--------------------:=+-.::*******************=++===*****=+-=-:+*:..-.:::******************************
**************************************=+*******************************==++****-:----------++++=---------------------=::::-=+******************+---:-------:==+-+=:.-:...:******************************
**************************************+=*********========+**********+=+*********==+****=-:::::::..------------------==+:--=**=+*****************===-===++++--*+==-::-:::-=+*****************************
***************************************+=*+==--=***+-:..:=++-=+***+-**************+=++--...........---------------=+--=++******=+****************=+-=-=++++=+*-+.---:.-:+=******************************
****************************************+=+*********+--=---+***-+=+*********************+:........-------------:-===:=-+*********+=**************=+==+******+=-:=+-+..===+******************************
***************************************++*****++===========:.::==*************************=:.......--==-:----=--=-:===**********+++==========+++++*-:==============--.::=*******************************
**************************************+=**++-:=:=========:.-+**=+*************************+++:::::::::::==-:=:=:.==++=-======***********************+=+++++++--==+-+-==*********************************
**************************************+:..:=++=+++---::-++****+-***************************+**+=+*+------:---:-:+***********************************=+*=+***=---:=-+-==*********************************
**************************************+.-+***=+**+==+********=+****************************=+****-+****++*==-+************************************++****=+=-++=++-::-:**********************************
**************************************+=***+=+==+*********+=********************************=+***+=*****+=++************************************+=*******+++:++-===.:=+*********************************
****************************************+=-++*********++=+**********************************+=**+=++++++++************************************+=+***********+-==+:+-=***********************************
******************************************+===========***************************************==+=********************************************=+**************=--==+*************************************
*******************************************=**************************************************==******************************************+=+****************=+==+**************************************
*******************************************+=************************************************+-++=+*************************************+=+*****************+=+==+**************************************
********************************************=+***********************************************=******===+*****************************+=+********************+++==***************************************
********************************************++**********************************************++**********++-=+********************+==+***********************=**=++**************************************
********************************************+-*********************************************+=*****************++===============++**************************++**+==**************************************
*********************************************=+*******************************************+=**************************************************************+=****==**************************************
**********************************************=*******************************************=***************************************************************=+****==+*************************************
**********************************************+=*********************++******************=+**************************************************************+=****+==+*************************************
***********************************************=+******************++==*****************=+**************************************************************+=*****+=+=*************************************
************************************************=+****************++*=*****************=+***************************************************************=+*****+=+=*************************************
*************************************************=+***************=*++****************=+***************************************************************=+******=*+=*************************************
**************************************************=+**************=*+****************+=***+=-+********************************************************+=*******=**=+************************************
***************************************************=**************+=*****************-+*==+***********************************************************=+******+=**=+************************************
****************************************************=+*************+=***************+=+=*************************************************************=+*******+=**++************************************
*****************************************************=+**************==++*********+==+=+************************************************************++********++**+=************************************
******************************************************=+****************+++++++=++***+=************************************************************+=*********++**+-************************************
*******************************************************=+****************************-+***********************************************************+=**********-***+-+***********************************
********************************************************=+**************************++************************************************************=**********=+****-+***********************************
*********************************************************+=*************************=************************************************************=**********+=****++-***********************************
**********************************************************++***********************=+***********************************************************=+**********++**+=**=+**********************************
***********************************************************+=*********************+=**++===+++*************************************************=+***********=*+=+***++**********************************
*************************************************************=**************+=====-===+*******++++++===========*******************************=+***********===******+=**********************************
**************************************************************=+*********+=+*****+=*************+++======+++*=+******************************=+*******++=+***********=+*********************************
***************************************************************++******==********=+*****++===++++**********=+*******************************=+*****==+****************=+********************************
.......................................................::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.::::::::::::::..............................................................
......................................................::::::::::::::::::::::::::::::::::::::::::::---====================---::::::::::::::::............................................................
....................................................::::::::::::::::::::::::::::::::::::::::--========+++++++++++++==============--::::::::::::.........................................................
...................................................::::::::::::::::::::::::::::::::::.:-=====+++++++++++++++++++++++++++++++==+======---:::::::::.......................................................
..................................................::::::::::::::::::::::::::::::::::-====++++++++***********************+++++++++++=======--::::::::....................................................
................................................::::::::::::::::::::::::::::::.:-=====+++++++***********************************++++++++======-:::::::..................................................
...............................................::::::::::::::::::::::::::::::-=====++++++*******************************************++++++++=====-:::::::...............................................
..............................................:::::::::::::::::::::::::::::-=====++++++++**********************************************++++++++=====-::::::.............................................
.............................................::::::::::::::::::::::::::::======++++++**************#*****************#**#**#***************+++++++====-::::::...........................................
............................................::::::::::::::::::::::::::-=====++++++**********#####***#*****#******#**##***#**#******************+++++====--::::::........................................
.........................................:..:::::::::::::::::::::::::-=====+++++++******#****##*****#####***************#**#**********************++++=====::::::::.....................................
.........................................::::::::::::::::::::::::::-=====+++++********#**#****#*****+*****#**#**************************************+++++===-::::::::...................................
.......................................:::::::::::::::::::::::::::-=====+++++++******+*#*****+*******************************************************+++++====-::::::::.................................
......................................::::::::::::::::::::::::::---===+++++++++++*#***+*#**********************************************#***************+++++===--:::::::::..............................
.....................................::::::::::::::::::::::::::---===+++++++++***++#***+**********************###**********************+*##**************++++===---:::::::::............................
....................................::::::::::::::::::::::::::----===+++++++++=*#*********************#***#***#**##**#***#********************************++++====--:::::::::::.........................
...................................::::::::::::::::::::::::::---====+++=+**#*+*==++************#******#***#***#**#***#**##**********************************++++==---::::::::::::.......................
.................................:::::::::::::::::::::::::::-----=======+#*=+#*+++++++++++*****#******##*****++*******###****##***************++*************++++====--:::::::::::::....................
................................:::::::::::::::::::::::::::-------=====+=+#***++++++++++++++**+*###***+***************+*******+**#***##***********************+++++==---::::::::::::::..................
...............................::::::::::::::::::::::::::::------===+*+=+=--=+++++++++++++++++*+=++********************************##***************************++++==---::::::::::::::::...............
..............................:::::::::::::::::::::::::::--------==+*****+==+==+++++*+++==++++++++++++++*****************************+****#**********************++++===--:::::::::::::::::.............
............................::::::::::::::::::::::::::::::--------=--=++*+=====+++****++=++++++++++++++++********************************#************************++++===--:::::::::::::::::::..........
...........................::::::::::::::::::::::::::::::::--------==-:==========-***++#*++=++++++++++++**+++***************************#*************************++++===---::::::::::::::::::::........
..........................:::::::::::::::::::::::::::::::-::-------------========+=-*#*+++====+++++++++++++++++++++********************++***************+**********+++++==--:::::::::::::::::::::::.....
........................:::::::::::::::::::::::::::::::::::---------------==========-=============++++++++++++++++++++***********************#**********************++++==---::::::::::::::::::::::::...
.......................::::::::::::::::::::::::::::::::::::-----------------=**+==**==================+++++++++++++++++*********************************************++++===---:::::::::::::::::::::::::.
......................::::::::::::::::::::::::::::::::::::----=-------------=-:=##+==========-===========++++++++++++++***+*****************+***********************+++++===---:::::::::::::::::::::::::
.....................:::::::::::::::::::::::::::::::::::::---=***+=---------------=============**==========++++++++++++++*+*****************************************++++====---:::::::::::::::::::::::::
...................:::::::::::::::::::::::::::::::::::::::--=++**+=------------------===+======:============++==++++++++++++*********+*****************************++++++===---:::::::::::::::::::::::::
..................::::::::::::::::::::::::::::::::::::::::::=***++-------------------==**++=+=-===================++++++++++++++****+*+*********#***#********+******++++====---:::::::::::::::::::::::::
.................:::::::::::::::::::::::::::::::::::::::::--:--:-=--------------------=***+**=-----================+++=+++++++++++++++++********+*******************++++====----::::::::::::::::::::::::
................::::::::::::::::::::::::::::::::::::::::::-+**+=---------------:---------+**=----------===============++++++++++++++++++++**+*****************++**+++++++===----::::::::::::::::::::::::
..............::::::::::::::::::::::::::::::::::::::::::::::::-++------=*+***=------=****=--=--------------===========++++++++++++++++++++++++************++*******#*+++====----::::::::::::::::::::::::
.............:::::::::::::::::::::::::::::::::::::::::::::=*+++*=-----:-**+=*=------++--=*=----------------=============+++++===+++++++++++++++**++*******++++++++++++++====-----:::::::::::::::::::::::
...........:::::::::::::::::::::::::::::::::::::::::::::::::::--::::::--::-------:--+***+*=----------------==-=====================+++++++++++++*+**=+**+++++++++++++++=====----::::::::::::::::::::::::
..........:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:--==:-::-----:--=------------------=========================++++++++++++++++*+*++++++++******+=====----::::::::::::::::::::::::
........::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-****+---:::-+***+=---:::::--------------===------==============+==+++++++++++++++++++++++***+**+====----:::::::::::::::::::::::::
....:.....::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-+**=-:::-:::::=*=--:::::::::------------------------===============+==++=+++++++=+=+++=+=-++======-----::::::::::::::::::::::::
...:-:::....::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:::::-+**+*+--::::::::::::::--------------------------==================++==========++=======------::::::::::::::::::::::::
..::-:::-::....::::::::::::::::::::::::::::::::::::::::::::::::::::::::++*-:::::::::::::--:::::::::::::::-----:::::-::---------------=============+=======================-------:::::::::::::::::::::::
:-:-:::::::-:....:::::::::::::::::::::::::::::::::::::::::+=-::-:::::::+=++==-:::::::-=+*-::::::::::::::::::-::::::::::----------------=======+=++*+===================---------::::::::::::::::::::::::
:::::::::::::-:.....::::::::::::::::::::::::::::::::::::::=+====-::::::---:::::::::-+*+++-:::::::::::::::::::::::::::---------------------=======**+***+=================------:::::::::::::::::::::::::
.:-:::::==-::::-::....::::::::::::::::::::::::::::::::::::-=-:::::::::::::::::::::::::-----::::::::::::::::::::::::::---------------------=======**+=+*+==================-----:::::::::::::::::::::::::
...:-::::::::::-::-:.....::::::::::::::::::::::::::::::::::::::-:::::::::::::::::::::::::-=-:::::::::::::::::::::::::::----:-::-------------=====-=+*++=======+***=-==---------:::::::::::::::::::::::::
......:-::::::::::::-::....::::::::::::::::::::::::::::::::-=-==+-::::::::::::::::::::=++=-:::::::::::::::::::::::::::::::::::::::-::---------=**+===========+*=-=*+-----------:::::::::::::::::::::::::
........::::::::==:::::-:....:::::::::::::::::::::::::::::::+==-+-::::::::::::::::::::-:=+--=::::::::::::::::::::::::::::::::::::::::::------=*+=***+========-+==**=-----------:::::::::::::::::::::::::
...........:-:::::::::::::-:....:::::::::::::::::::::::::::...::::::::::::::::--:::::::--++=::::::::::::::::::::::::::::::::::::::::::::------=-+++*===---==*=--------------::::::::::::::::::::::::::::
.............::::::::--:::::-:....:::::::::::::::::::::::::::::::==::::::::::-:==:::::::-::::===::::::::::::::::::::::::::::::::::::::::::-:------+=--=--==--+**+=----------::::::::::::::::::::::::::::
...............::-::::::::::::-::....::::::::::::::::::::::::-=-=:=-:::::::+-===+-::::::::-=::-+=:::::::::::::::::::::::::::::::::::::::--:::-----------==++=++-=+=-------::::::::::::::::::::::::::::::
..................:-:::::-+-:::::-:....:::::::::::::::::::::::====-:::::::::+=-::::::::::::+=-=+=:::::::::::::::::::::::::::::::::::::-::--:---:----------:=***====------:::::::::::::::::::::::::::::::
....................::-::::::-::-::-::....::::::::::::::::::::::.::::::::::::::::=+-::::::::-=-::::::::::::::::::::::::::::::::::::::=+*+------:-------=+=-=-:===-------::::::::::::::::::::::::::::::::
.......................::-::-:::::::::-:....::::::::::::::::::::::::::::::::::-=+==+=::::::::::::::::::::::::::::::::::::::::::::--::=*+++=-----------==+*+--=-==-----::::::::::::::::::::::::::::::::::
..........................:-:-:--::::::::-:....:::::::::::::::::::::::::::::::.:::==+=:::::::::::::::::::-+++-::::::::::::::::=+*++--::==++------------+****=-----------::::::::::::::::::::::::::::::::
............................:-:::--::::-:::-:.....:::::::::::::::::::::::::::::::-=-:::-=::::::::::::::::-=-=-::=+:==::=+--+-::-=+++:--:-----------=+=---:-=-------=++=--::::::::::::::::::::::::::::::.
...............................:-:-:-::::::::-::....::::::::::::::::::::::::::::::::::==-:::::::::::::::-=-==:::=+++=:::=+++=:::--=+=-::::-:--::--*+=+*=----------=*=-++=-::::::::::::::::::::::::::::..
.................................:-:::--::::-:::-:.....::::::::::::::::::-=::.::::::-+=:::-=::::::::::::::-=-::-+=-+=:::+=-=+-:::-::::::::::--:-:-++=:=*+--------:----::--:::::::::::::::::::::::::::...
...................................::-:::-:::::-::-::....:::::::::::::-:=--=::::::::::::::==+=-::::::::::::::::::--=-::::----:::::::::::::::-++*=::=*+---------------::::::::::::::::::::::::::::::.....
......................................:::::--::::::::-:.....:::::::::::---:::::::::::::::-==:::::::::::::::::::::::::::::::::::::::::::::::-++-=*=-::---------=-----==::::::::::::::::::::::::::::......
........................................::-:-:-:::::::::::.....:::::::::::::::-=:::::::::::::::::::-=::::::::::::::::::::::::::::::::-=+++-:-+=-=*+-----:---=*+*=:::-=:::::::::::::::::::::::::::.......
...........................................:-:-+--::::-:::::.....:::::::::---=-:::::::::::::-==::::==-:=-::::::::::::::::::::::::::::---=++-:-=+=---:-------+==+++=:::::::::::::::::::::::::::::........
.............................................::::-:-::::::::-::....::::::::-=-::::--::::::::::::::-=-==-::::::::::=-:::====::::::::::::--=+=:::::---:--:-+=-::-===-:::::::::::::::::::::::::::..........
................................................:-:::--::::-:::-:.....:::::::-::::::==:::::::::::::::-=:::::::::::==:::::-==::::::::::::=-:::::::::::-==--+=-::--::::::::::::::::::::::::::::...........
..................................................::-::--::::::::-::....::::::::-:-==:::::::::::::::::::::::::::--==::::--==::::::::::::::::::::::::::=++++++-::::::::::::::::::::::::::::::............
.....................................................:-:::--::::-:::-:.....::::.:---:::::--::::::::::::::::::::::--==-::===-::::::::::::::::::::::=+=-:-+=::--::::::::::::::::::::::::::::..............
*******************************====++====-:::..:--====+++======+++++++++++++++*++*+===--===++++++++++++++++++++++++++++========-=====+=---==------===++++++++++++++++++++*++++++++++++*#################
******************************+====++====-:::..:-====++++=======++++++++++++++++++*++=-===++++++++++++++++++++++++++++++=========-===+=---==------===+++++++++++++++++++++**++++++++++*#################
******************************+====++===--:::.::-====+++++========++++++++++++++++**+=-===++++++++++++++++++++++++++++++========--===+=---==------==++++++++++++++++++++++++++++++++++*****#**********#*
*****************************+==========-::::.:--===++++++==========++++++++++++++**+=====+++++++++++++++++++++++++++++========---====----==------==+++++++++++++++++++++++++++++++++++*****************
****************************+=====+=====-::::.:-===+++++++++========++++++++++++++*+++==++++++++++++++++++++++++++++++++======---=-==----===--::--==+++++++++++++++++++++++++++++++++++************+++++
****************************+===+++====-::::.:--===++++++++++=======++++++++++++++++++++++++++++++++++++++++++++++++++++++=======--==----===-:::-===++++++++++++++++**++*****++++++++++********+++++++++
***************************+===++======-::::::--===+++++++++++=+====+++++++++++++++++++++++++++++++++++++++++++++++++++++++======--==---====--:---==++++++++++++++++*****++***++++++++++++++++++++++++++
**************************+====+======-::::.::-===+++++++++++++++====++++++++++++++++++++++++++++++++++++++++++++++++++++========--=-:--====------==+++++++++++++++****++++++*++++++++++++++++++++++++++
**************************+===========-::::::--==+++++++++++++++++====+++++++++++++++++++++++++++++++++++++++++++++++++++===========-:--===-------==+++++++++++++++************+++++++++++++++++++++++++
*************************+===========--::::::-===++++++++++++++++=+====+++++++++++++++++++++++++++++++++++++++++++++++++++==========---====--------==+++++++++++++************++++++++++++++++++++++++++
************************+============-:::::.:-==+++++++++++++++++=======++++++++++++++++++++++++++++++++++++++++++++++++++==========---===---------==++++++++++++**********+++++++++++++++++++++++++++++
+***********************+===========-:::::..:===++++++++++++++++++========+++++++++++++++++++++++++++++++++++++++++===+==================-------======+++++++++*********++++++++++++++++++++++++++++++++
***********************+============-::::..:-===++++++++++++++++++++=======++++++++++++++++++++++++++++++++++=+++=====+=================-::--=========+++++++++******+++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++==--=+=====-::::..:-====+++++++++++++++++++++======+++++++++++++++++++++++++++=+++++++++++++++==+==============--:::--===========+++++++*+++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++==-::-=====-::....:-====+++++++++++++++++++++++=======++++++++++++++****+++++++++++++++=++++++=+++==========------::.::--==--==++===+++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++=---=======-:...:-=====++++++++++++++++++++++++++++====+++++++++*****************++++++++++++++================----:...:--============+++++++++++++++++++++++++++++++++++++++++++
**********************+--========-::..:-=====++++++++++++++++++++++++++++++++===+++**********************++++++++++++++==================--:..::-----=====++++++++++++++++++++++++++++++++++=====+++++++
******+***++*********+=--=======-::..:-===++++++++++++++++++++++++++++++++++++++***************************++====++++++===++==============--:...::----==++++++++++=++++++++++++++++++++++++=====++++++++
+++++++++++++*++++++++=-=======-::..:-==+++++++++++++++++++++++++++++++++++++*********************************+++====+====+++++++==========--::..:-==+++++++++++++++++++++++++++++++++++++=====+++++++++
+++++++++++++++++++++++++=====--:..:-==+++++++++++++++++++++++++++++++++++++**************************************+++++++++++=++++==========--:--=+++++++=++=+++++===+=+++++++++++++++++======++++++++++
+++++++++++++++++++++++++**++==-:..-===+++++++++++++++++++++++++++++++++++***********************************************+++++=+==============++=+++++======+========+++++++++++++++++=======+++++++++++
+++++++++++++++===++=---======+++=--===+++++++++++++++++++++++++++++++++******+=++******************************************++=============++==++++=+++======================++++++++=======++++++++++++
+++++++++++++++++++===---------==+========+++++++++++++++++++++++++++++*****+-...=**************************+****************+===========++==++++++++++====================================+++++++++++++
++++++++++++++++++++++++======-::-==++++====++++++++++++++++++++++++++******+:..:+***********************+=:.:=***************+=======+=====++++++++=====================================+++++++++++++++
++++++++++++++++++++++++++++++===----==++==+===++++++++++++++++++++++********+==*************************+-....+**************+=============++++++======================================++++++++++++++++
====++++++++++++++++++++++++++++++++========++++=======+++++++=+==++************************=**************+--+****************+===========+=++++=======================================++++++++++++++++
=====++++++++++++++++++++++++++++++++++++============+*****+++====+************************+=***********************************+============+++======================================++++++++++++++++++
========++===+++++++++++++++++++++++++++++++++===++***********+===+*********************++++==+*********************************+=========++++++======================================++++++++++++++++++
===============++++++++++=+===++++++++++++++++++***************+==**************************************************************+=======+++++++++====================================+++++++++++++++++++
===================++++==++===++++++++++++++++*******************+***************************************************************======++++++=======================================++++++++++++++++++++
====================+=+==+++====+++++++++++++***********************************************************************************++====++++++========================================++++++++++++++++++++
===========================++++++++========+***********************************************************************************++====+===+===+====================================++++++++++++++++++++++
=============================++++++==+++==+************************++*******************************************************+++++====+==+++=======================================++++++++++++++++++++++
=================================++==++===+************************++++++++++*++************************************++++++++++++====++===+++=============================-========++++++++++++++++++++++
=====================================++===+*************************++++++++++++********************+*********++++++++++++++++=========+=============================-=---========++++++++++++++++++++++
=================================+=++++===+++************************+++++++++++++++++++*++++*******+*++++++++++++++++++++++=====================================---------=======+++++++++++++++++++++++
===========================================+++++**********************+++++++++++++++++++++++++++++++++++++++++++++++++++===---==================================--------======+++++++++++++++++++++++++
=============================================+++++++++*+**************++==++++++++++++++++++++++++++++++++++++++++++++====--:-=================================---------======++++++++++++++++++++++++++
===============================================++++++++++*************++++*******************+++++++++++++++++++++++====-::--=================================---------=======++++++++++++++++++++++++++
===--========================================--====++++++++++***+********************************++++++++++++++++===--:..:--================================-----------=====+++++++++++++++*************
=====--=======================================--:--===+++++++++++**************************************+++++++==--:....:---================================-----------=====++++++++*********************
+=====--=-======================================-::..:-=====+++++***********************************************++==------================================-----------======+++++*********#***#**#*#***#*
++++====---======================================---::..::--=++*********************************************************+++==============================------------=====+++*******************##***#**
***+++====--=======================================---:::...=****************************************************************++========================-----------:-===+++**************##******##******
*******++==---=-====================================----:-=*********************************************************************++=====================-------------==+*************************##******
***********+=----==================================-----=**************************************************************************++================--------------=++******************#*******##******
*************+===-===============================-=---=+******************************************************++**********************++============-----------:--=+*****************************#******
****************==================================---=*********************************************************++************************+======------------::::-=**********************#*********#*****
*****************+==---===========================--+***********************************************************+**************************+==-------------:::--=***********************#***************
******************+=---====-==================-==-=+***************************************************************************************+++=-----------:-:--=+*********************#********#********
********************+=------================----=+***************************************************************+++************************+++=---------::::-=********************#******##************
*********************+=-------============------+*****************************************************************+++*************+++++++++++++=-::::--:::::-=***************#*******#******************
***********************=-----------====-------=+******************************************************************+++*************++++++++++++===:::::::::::=+***************#*********#**********#*****
************************+=-------------------=+***************************************************************+**++++++**********++++++++++++===-::::::::::-+*****************#***#**#******************
***************************+=---------------=+**************************************************************++++++++++++++***++++++++++++======-:.:.::::::-++****************#********#*****************
*****************************=-------------=+++***************************************************************+++++++==+++++++++++++++++=====--:....::::::=++*******************************************
******************************+=----::-::-=++******************************************************************++++++=-=+++++++++++++======---.........::-+*********************************************
********************************+=-:::::-=++++***************************************************************++++++++=-:=++++++========----::...........:=*******************************#**************
***********************************=-:::-++++***************************************************************+++++++++=-..-===========---::.............:=+**********************************************
***************#*********************+===++++*************************************************************+++++++++++=-...:-==-=----::................:-+***********************************************
****************************************+++**************************************************************+++++++++++==-......::::....................:=++***********************************************
**************************************************************************+******************************++++++++++===:..............................-**************************************************
*************************************************************************+++*************************+**++*+++++++===-.............................:-+**************************************************
***********************************************************************+++++************************++++++++++++++===-...........................:=+***********************#*****##*********************