Mouchette

Martine Neddam 1996 Site web http://www.mouchette.org

Martine est Mouchette.

Mouchette est un site historique de la fin des années 90. S’il a survécu, ce n’est pas sans mal, car cette histoire d’adolescente artiste qui joue avec son scanner et son PC en échangeant secrets et humeurs avec les internautes est un vrai trésor qui annonce les réseaux sociaux et les YouTubeurs en émergence.

Mon nom est Mouchette, j’habite à Amsterdam ou ailleurs, j’ai presque 13 ans, je suis une artiste. Le site existe aussi en anglais (français). Mon humeur est... (à rafraichir)”.

Ainsi commence l’histoire de cet appel à communiquer fonctionne essentiellement sur des hyperliens dont malheureusement beaucoup sont mort depuis le temps…. : “Aidez-moi ! On me séquestre derrière mon ordinateur sans jamais me laisser sortir !
Mouchette est une œuvre performative d’une artiste hollandaise des nouveaux médias dont le sujet de travail est l’acte de langage. Martine Neddam est passionnée par les philosophes du langage ordinaire tels que JL Austin, Daniel Vanderveken ou John R Searl, respectivement auteurs des phrases performatives, de la signification des énonciations et du langage comme comportement.
Pour percer les secrets de cette théorie des actes du langage, Martine va mettre en scène plusieurs performances dont la plus connue au musée de Arnhem en 1992. Elle va ainsi piéger ses spectateurs en les obligeant à marcher sur des phrases provocatrices à l’impératif comme “Piétine moi”, “Ecrase moi” ou “Souille moi”. Une installation qui instaure un dialogue et malaise avec les témoins de la scène. Son titre est elle aussi une injonction : Marche sur moi.
C’est à cette époque que Martine Neddam enchaînes les projets dans un espace publique où elle se sent de moins en moins libre. Internet arrive comme une bouffée d’oxygène. Elle va enfin pouvoir parler sans freins avec son public et retrouver sa liberté d’aller plus loin dans ses recherches sur les fonctions des langages de ce nouveau média. Et surtout, aller directement à la rencontre des ressentis de son public, que ses performances muséales avaient tant de mal à lui rendre. Le dialogue pouvait alors s’établir avec les internautes à l’aide d’hyperliens proposant une contamination médiologique une génération algorithmique et une communication interactive à travers des personnages virtuels qui mènent une existence artistique anonyme.
En 1996, Mouchette est la première de ses créatures ; elle est artiste, elle a 13 ans et vit à Amsterdam. En 2001c’est David Still, un consultant IT de 32 ans dans une start-up hollandaise. En 2006, Martine crée Xiao Quian un artiste qui crée des artistes virtuels. Et au bout du bout de cette mise en abîme de la représentation d’identité, Martine Neddam crée My Desktop Life, un véritable espace mental, un Système de Gestion de Contenus (CMS) pour que les internautes créent leurs propres narrations.

Ainsi, Martine Neddam est non seulement une Pionnière du Net.art collectionnée par le ZKM de Karlsruhe et tant d'autres, mais une artiste contemporaine qui a su, malgré l’arrivée des réseaux sociaux, qui verrouillent les nouveaux espaces de communication, inventer d’autres espaces dans lesquels elle place l’internaute maître de son identité et de son acte de langage comme autoportrait. Car, comme le dit si bien Mouchette : “Quand mon père m'a offert un scanner, la première chose que j'ai fait c'est de poser ma langue dessus pour faire mon portrait.
JJG / La revue

Martine Neddam

Martine Neddam, originaire de France résidant à Amsterdam depuis 1994, est une artiste visuelle, chercheur et professeure. L'artiste a fait ses études en littérature et linguistique (1975/79), en scénographie(1983/84) et en arts plastiques(1988/89). Neddam travaille avec des personnages virtuels sur Internet qui mènent une existence artistique autonome dans laquelle l'auteur réel reste invisible. Elle explore de manière anonyme le concept d'identité en ligne à travers des personnages virtuels tels que Mouchette, David Still, XiaoQian et l'interface partagée virtualperson.net.

.................*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*.....................+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#.....................:#@@@@@@@@@@@@@@@@@@@@
.................=+*##@@@@@@@@@@@@@@@@@@@@@@@@@@@@#*++===......................=++*##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#*++*##@@@@@@@@@@@@@@@@@@@@@@@@@@@@#**++==-.....................-++*##@@@@@@@@@@@@@@@@
........................+#@@@@@@@@@@@@@@@@@@@@#*.......................................+#@@@@@@@@@@@@@@@@@@##*-............=##@@@@@@@@@@@@@@@@@@@@#:......................................=#@@@@@@@@@@@@
...........................#@@@@@@@@@@@@@@@@@@:.........................................:#@@@@@@@@@@@@@@#=....................+@@@@@@@@@@@@@@@@@@=..........................................#@@@@@@@@@@@
............................+@@@@@@@@@@@@@@@@+...........................................#@@@@@@@@@@@#=........................-#@@@@@@@@@@@@@@@#...........................................*@@@@@@@@@@@
.............................*@@@@@@@@@@@@@@@+..........................................+@@@@@@@@@##:...........................-#@@@@@@@@@@@@@@#..........................................-@@@@@@@@@@#-
..............................#@@@@@@@@@@@@@@#.........................................+@@@@@@@@@*...............................+@@@@@@@@@@@@@@#:........................................-#@@@@@@@@#:..
...............................#@@@@@@@@@@@@@@=.......................................*@@@@@@@#+..................................*@@@@@@@@@@@@@@+.......................................=@@@@@@@@#:....
...............................+@@@@@@@@@@@@@@*......................................#@@@@@@#*.....................................#@@@@@@@@@@@@@@......................................*@@@@@@@#:......
................................#@@@@@@@@@@@@@#....................................=#@@@@@@#.......................................+@@@@@@@@@@@@@@+...................................:#@@@@@@#-........
................................:#@@@@@@@@@@@@@*..................................*@@@@@@#-.........................................#@@@@@@@@@@@@@#..................................+@@@@@@#=..........
.................................*@@@@@@@@@@@@@@:...............................=#@@@@@#=...........................................=@@@@@@@@@@@@@@=...............................:#@@@@@#*............
.................................-@@@@@@@@@@@@@@*..............................#@@@@@@*..............................................#@@@@@@@@@@@@@#..............................*#@@@@@#:.............
..................................*@@@@@@@@@@@@@#............................+@@@@@@#................................................=@@@@@@@@@@@@@@+...........................-#@@@@@#=...............
...................................#@@@@@@@@@@@@@+.........................=@@@@@@#-..................................................#@@@@@@@@@@@@@#..........................#@@@@@@+.................
...................................*@@@@@@@@@@@@@@:......................:#@@@@@#+....................................................-@@@@@@@@@@@@@@=.......................*@@@@@@*...................
...................................-@@@@@@@@@@@@@@+.....................*@@@@@#*.......................................................#@@@@@@@@@@@@@#.....................=@@@@@@#:....................
....................................*@@@@@@@@@@@@@#...................+@@@@@@#:........................................................=@@@@@@@@@@@@@@=..................-#@@@@@#=......................
....................................:#@@@@@@@@@@@@@+................-#@@@@@@=...........................................................#@@@@@@@@@@@@@#................:#@@@@@@+........................
.....................................*@@@@@@@@@@@@@#..............:#@@@@@@+.............................................................=@@@@@@@@@@@@@@-..............*@@@@@@#:.........................
.....................................=@@@@@@@@@@@@@@+............*@@@@@@#................................................................#@@@@@@@@@@@@@#............+#@@@@@@-...........................
......................................#@@@@@@@@@@@@@#..........+@@@@@@#-.................................................................+@@@@@@@@@@@@@@=.........-#@@@@@@+.............................
......................................-#@@@@@@@@@@@@@=.......=#@@@@@#+....................................................................#@@@@@@@@@@@@@*.......:#@@@@@@*...............................
.......................................*@@@@@@@@@@@@@#.....:#@@@@@@*......................................................................+@@@@@@@@@@@@@#-.....*@@@@@@#:................................
.......................................=@@@@@@@@@@@@@@+...*@@@@@@#:........................................................................#@@@@@@@@@@@@@#...+#@@@@@#-..................................
........................................#@@@@@@@@@@@@@#.+#@@@@@#=..........................................................................+@@@@@@@@@@@@@@=-#@@@@@#*....................................
........................................-@@@@@@@@@@@@@@@@@@@@@+.............................................................................@@@@@@@@@@@@@@@@@@@@@#......................................
.........................................#@@@@@@@@@@@@@@@@@@*...............................................................................+@@@@@@@@@@@@@@@@@@#-.......................................
.........................................=@@@@@@@@@@@@@@@@#:.................................................................................#@@@@@@@@@@@@@@@#+.........................................
..........................................#@@@@@@@@@@@@@@=...................................................................................+@@@@@@@@@@@@@@*...........................................
..........................................=@@@@@@@@@@@@@@*...................................................................................:@@@@@@@@@@@@@@#...........................................
...........................................#@@@@@@@@@@@@@@:...................................................................................+@@@@@@@@@@@@@@=..........................................
...........................................+@@@@@@@@@@@@@@*....................................................................................#@@@@@@@@@@@@@#..........................................
..........................................+#@@@@@@@@@@@@@@#..................................................................................=#@@@@@@@@@@@@@@@=.........................................
........................................=#@@@@@@@@@@@@@@@@@+...............................................................................:#@@@@@@@@@@@@@@@@@#.........................................
......................................:#@@@@@@@@@@@@@@@@@@@#..............................................................................*#@@@@@@@@@@@@@@@@@@#-........................................
.....................................*@@@@@@#+@@@@@@@@@@@@@@+...........................................................................+#@@@@@#+#@@@@@@@@@@@@@#........................................
...................................*@@@@@@#-..#@@@@@@@@@@@@@#.........................................................................-#@@@@@@*..+@@@@@@@@@@@@@@=.......................................
.................................=#@@@@@#+....:#@@@@@@@@@@@@@=......................................................................:#@@@@@@#.....#@@@@@@@@@@@@@*.......................................
...............................-#@@@@@@*.......*@@@@@@@@@@@@@#.....................................................................*@@@@@@#-......=@@@@@@@@@@@@@#:......................................
..............................#@@@@@@#:........=@@@@@@@@@@@@@@=..................................................................*@@@@@@#=.........#@@@@@@@@@@@@@*......................................
............................*#@@@@@@=...........#@@@@@@@@@@@@@#................................................................=#@@@@@@*...........+@@@@@@@@@@@@@@-.....................................
..........................=#@@@@@@+.............-#@@@@@@@@@@@@#-.............................................................:#@@@@@@#:.............#@@@@@@@@@@@@@*.....................................
........................-#@@@@@@#................*@@@@@@@@@@@@@#............................................................#@@@@@@#-...............=@@@@@@@@@@@@@#.....................................
.......................#@@@@@@#:.................=@@@@@@@@@@@@@@-.........................................................+#@@@@@@+..................#@@@@@@@@@@@@@+....................................
.....................*@@@@@@#=....................#@@@@@@@@@@@@@*.......................................................=#@@@@@@*....................+@@@@@@@@@@@@@@:...................................
...................+@@@@@@@*......................-@@@@@@@@@@@@@#:....................................................:#@@@@@@#.......................@@@@@@@@@@@@@@+...................................
.................-#@@@@@@#.........................#@@@@@@@@@@@@@*...................................................*@@@@@@#-........................+@@@@@@@@@@@@@#...................................
...............:#@@@@@@#-..........................=@@@@@@@@@@@@@@-................................................+@@@@@@#+...........................#@@@@@@@@@@@@@+..................................
..............*@@@@@@@+.............................#@@@@@@@@@@@@@*..............................................+#@@@@@@#.............................+@@@@@@@@@@@@@@:.................................
............+#@@@@@@*...............................-@@@@@@@@@@@@@#-...........................................-#@@@@@@#:...............................#@@@@@@@@@@@@@*.................................
..........-#@@@@@@#:.................................#@@@@@@@@@@@@@#..........................................#@@@@@@#=.................................+@@@@@@@@@@@@@#:................................
........:#@@@@@@#-...................................=@@@@@@@@@@@@@@+.......................................*#@@@@@@*....................................#@@@@@@@@@@@@@#................................
.......*@@@@@@#+......................................#@@@@@@@@@@@@@#.....................................+#@@@@@@*......................................+@@@@@@@@@@@@@@+...............................
.....*@@@@@@@#........................................=@@@@@@@@@@@@@@*..................................=#@@@@@@#-.......................................:@@@@@@@@@@@@@@#...............................
...*#@@@@@@@=..........................................#@@@@@@@@@@@@@@=...............................=#@@@@@@@*..........................................*@@@@@@@@@@@@@@*..............................
.+@@@@@@@@*............................................*@@@@@@@@@@@@@@#.............................=#@@@@@@@#-...........................................:#@@@@@@@@@@@@@@=.............................
@@@@@@@@@+.............................................=@@@@@@@@@@@@@@@#..........................=#@@@@@@@@#..............................................#@@@@@@@@@@@@@@#:............................
@@@@@@@@#..............................................-@@@@@@@@@@@@@@@@#.......................*#@@@@@@@@@@-..............................................#@@@@@@@@@@@@@@@#-...........................
@@@@@@@@#..............................................*@@@@@@@@@@@@@@@@@#-..................-*@@@@@@@@@@@@@-.............................................-#@@@@@@@@@@@@@@@@#+..........................
@@@@@@@@@*...........................................:#@@@@@@@@@@@@@@@@@@@@#=.............:*@@@@@@@@@@@@@@@@#............................................*@@@@@@@@@@@@@@@@@@@@#*........................
@@@@@@@@@@#*=:...................................:+##@@@@@@@@@@@@@@@@@@@@@@@@@#*=:...-+##@@@@@@@@@@@@@@@@@@@@@#+-....................................=*#@@@@@@@@@@@@@@@@@@@@@@@@@##+-...................
@@@@@@@@@@@@@@@@@@-........................+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+........................:#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#:............
@@@@@@@@@@@@@@@@@#.........................#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#.........................*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*.............
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
--------------===-----===-----------=--=-----=------=-----------------=-----=-=-------=-=--=----------------=---------=----------=------=+-----------------===-===---------------:----=+=---------------
----===----===-=-------==-===----=-------=--------==------------------------====------==--------------=-----=----------=+------------------------------------=----=-------====-=======+=+---------------
---=---=-==----===-----===----------------=----===-==++=----++**==----=------====-----------------======-+===---=-------+===+-----------------==---------=+=+-=---=------======-==--==-+----------------
-------==---=-------=----------------=----==-====+=+==+=+-+===========--=-=-=----====--===+=+:::--======-=++----------=-==--===-:::---------=-=--------=--++=--==-=-----------==-------:------+---------
---=--==-==-=----=--==----==--=------------=--=-=+==--+==-=------=-=-=---=---------=-=----=+=--::---------==----------=----------:::--------:=-=---=-------------=-==-------==-----==---------++=-------
---=-=---=-------------=--------=--------=------==+----+=+---=--=-===---=-----------------------:---------=--==--=-----==-=----=-----------------=--=-----------=========-------=---+=-------=::==----=+
----=-------==------:----------*+*+==-=-===-=--+=+------===-----------=-=-------------------==-------------=--+=--------------=-=---------=----------------------==-=====--------=-+=+----------------=-
===----=---=-=====-==--=-=---------==---==-----==-------+=+------------=----------------=======--::--------=-+===--------==-------=---------------------------------=-+=--------===-=-----------------=+
+*==--==-==-==+=-----------------------=------+=+--------+-------------=-----------===========-------------++------------=+--=--------===+----=----------------------+**=-------===---------------------
--=--=-=---====------------------------==------+---------+=+---------=----------=========+=+==-------------+==----------=-----=-----=--++---------------------------=-=-------======-----------------=--
-----=---------=-----------------------------+=+---------=++----------=======---==========+===--------------=-----------------==-----=------=============----------------=-----------=--------------++=-
-------------===+=---------------------------=+=----------------------====================-===-----========--=------------------=-----=---================----------=----------------------=---------+--
------------====-==-------------------------=+=-----------====------=-=========================--------==---===-------=---------------==-=====---==-----==-=+---------=--=------=--------=--------------
=-------------------------------------------+=+------------++------=--=========================------------==-==----------------+++=-----------==--=---=---+=+--------=---==-===--======--=-------------
--------------------------------*=-----------=--+===--------------=---=======+===========+======----------::---#**+-----==-=----=-=-----=---------=---=*----+--------==--=--==---==--++--===------------
-----=------------------------=**=--------====---++--------===-------========+==========+++=====------------=+-:+=-------==--------------------:--==+=------:---------=--------------=--==-=------------
-------------------------------========----++-------------==++===================================----:-----=+++-+==-==---------------------====-=----==----------------=---==-----------====------------
------------------------=-------=========--------------==========================================-------::---=::::::-==--------------=+==---==--==-----+-----------------------=----------===-----------
---------------------========--===========+=+--====--============++=-===============================---------------::-=------------+==++=--==---------=-==-----------==----+=--=-=----------==----------
-------------------========================+=================++=====-===================================--------------=------------+=-=--========-------==-===-==========-+=*---=------------=----------
------------------=======================++-=================++===-====================++==================--------------======-=====-+=---::-------=-----=-=-=--=------=====----:-----------===--------
--=====-----------========================+========*##*+================================+============================-----------------------------------==-==-----==-----=:----==----------==-=--=------
========----=-=====================================+**+=======-===========================================================-----------===============----:--=-----=-==---=-+---=----------=-----=---=----
=====-=+=+==+=+=-=======*+*+*==========+=+====================+=+======================-=====================+=+======================================--===-+=+----====-=***=-=----------===---=---=----
=============+=+=========++++===========++--==================++==============================================+======================================--==++====---====--=+++----------==---=-====-==----
===+++=-=------=+======================+=----============-==================-====--===========================-==================================-======--=-=-=-===----=======------==-=-------=-==-=---
======-========-=+=+=================-+=+==--========================+++===-=-==----==++====----=====================================++=======-------=======-=-----====--===+-:----=+++==--=-===+-=-=---
================-=+=+===================-=---===========================------==---===++======-==========================-----------=++=======--==----------=-+====-===+==+====+=+=====-----------==----
=================-==++===============+=+===--==================+++=======-----====-====================================--------------=------=====-------------:----====--=--=-==-----=---------------:-:
==================-+=+=========-=====-+=======++=========================-----===============+========================----=---=-=#*==-=====----===----------+-=++++-+-==++==+==+==+===:----=------------
=====+=============-+===============+=+-========================-==========================++=================+=+=====-==----==-=+=--------======----------------:-=-===========--==-=----------=-=-----
==================++=+===============+===========================+================+=+-========================+++-==----==-----=++---------=-===--==------------::-=+=+=========-==-==----=====----==---
==========++=========-=============+=+============--============+=+=================+=+=========================-============-==+==------==----==-----==-------------+==========-======---------=------=
====+++=================+=========+==============----============+=================--+=============-------=====-====---:-+-------------====-------=====-====-----================------==+------=-------
=========================+=======++=+============----============-==============----=-============-----------====------==--==-------=--==-=-----------====-=-+-+-===--========-==-:-----------------==--
===================-====-=+==---=+======+========----====================+=====-------===========--=---=--------=****-=---+--+---=-==+==----==-------=========+=====--========----==--------=======-=-=-
=========================--=++=+===-==++===========-=============+=+=====++====---------========---=------=-----=+==+------++=-----=++-----=----=-------==-=-:-=-====+====-+==--=--===----=------=---===
==========================--==++=--===============================+============----=++----======--===------====-=-----------=-----------------------------=====-==------==-===-==--==+=--=-----=-----===
============================-==-==================================-=============---+++-----===----=------==----+=+----------=---=----=------===-==---==-====--==---:--===+++++=+=-+=+=----------=--==---
================================================================================----=------------==--===--------+--=-=-==------------=-+**=--==-===-==--========----===-=-===-====-+=---==--------=-----
=========================--=======================================+=+===========----------------==-=-----------=-==---===---------=----=**--=-===----===***==--=--==-=---==---=====---====-=##*==---===-
-----------==============-=========================================+===========----------------=+=--------------------===-=++=-------=--=-----=---=--===+++===-===--==---==---===-===----==+***=--------
--------------============-========================================-===========---+=+-=-===-=====---------------------=--------------=#*------=====-----=++-=---------=--========---=---==-=------------
-------------------============================================================---=+=-=+=-----=-----=+==----------=-++--------=*+--===#+====----------==-=---=------------==--==------====--------------
:---:------:-----------======-----===============+*================+=+==========-----====--------------------=-----====-=====-+++-+=+--=-==---====-----=-----==+=============-------=--==---=--=--------
-=-=------===-=---------------------=============*+=*+===========================--:-===----===-------------===-+=+=-=---------===-+==------=-----=--=-----=--+=+===--=---=---------===-----------=-----
-----------:=------------------------=============================++=+==========-=+=--=----==---------------==---+=---::::-----------=-=----=-=--=--===-=------+-===-------------:==--=----------=---==-
-------==--=---------------------------============================+============-++=-=-=------==--===---------------=---==----===-=---===---------=--=--==--===-+++=---------==--=-=--==-=-===----------
----=--------=--=----=---==---------------========================-==++=========--=--=-----------=-----------=---------=------=-=------------------=====--=-==---===========-----===--=**+++----==------
=-=---=-----==---===---===-==-----------=--------------========================--::----====------------------=====-=----=--------:=---:-----------===--=-=====-=-=---==-----------++-------==---==------
===*+*+==--=------------=-----=======--==+------------------------===========--=+=+==-----==--------------------==---===-------====-==-----==-------------==--===------=-===---=-=++=-----====--------=-
----------=======------=+------=++++===-+=------------=--=-----------=++=-------=+=--=------=--===--====--======--------==-=--=-==+=-=--+--==--===-------------=-----=--==--=-----=--------=+-=-======-=
-------==-=--=-===========--=-=--------=---=====--------------===-------------------=-=---=--=++++=-===-===+=-+--+=+=-==========-+=+==--==---==-=-==-----=--------------=-------=------------==---------
-------=-==----=------------==---------=---=--==---=====------++++=----+==-=-=====-==-===-==-=-==-=---==----==---=+==--===-=---=--+-=-===------=====-------------=-----=--------------------==---=------
-----====-=-==---==-=--=-=-=---+=+----==-=---------==---------==-------++=-----++------++=--==---==+---==----------=---=-------==-------===----=----------------=-----++=----------------------==----===
---=-=--=-==--==-=====-===-----=-=----------===----=-======-------------+==--====-+**+:=---------=+-------=--------------====---------------=-------=-===---==-+=+=----+=---------=--=-------===--------
------==-=--=-=====-==------=------------======-==-=------===+=--+------+=+--==+=--------:---------===*+*--------------=--==-----------------------=-----==-----+=----------------=------------===---=-=
----=====---==-=-======---=--------------------=---=-----==---=---+=-----+==+===--=--=---------------=**+-------=--------==--------------===-------------=---===-------------=---==-----------======--=-
=--=+-==-==---==----==-==---------=--------=--------=---===---=-----+====:++++--------------------==---=-----------++-----------=+----------=------------=---=-----------------------------------------=
---==---=--------====--===-=------==------------------==-=----=------==++=-==--------------------------=----------=++=----------+=+----------------------=-----=------===-==--------------=-------------
-==--===-------==-==------=---------------------------*=++#*-------------+=------------------==--------------------==------------+------------------------==--------------------=+=-------=-------------
==---===------=-=----:--===-=-=---=--=--------=---------=++++--=------------=-----------------=--------=---=-----------==--====-------=---------------------------------------=-+=+---------------------
----=-----====-==-=---------====------------------=+=----===---------------------=-=--==--------------------------------==------------------------===---=----------=-----=-------=-===------------------
----------=---===---------------------------====--===---=-----------------=------=====-=------------=-------=--=----------------------=------------=----=--------==-----==-------:=-=--==---------------
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####################################@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#*###################################*#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##########+*#########################*#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##########==-=##*-=##=+=#=-+#########*#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##########=+#=:+.==.#.##:==:-########*#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##########=+#=:*.**=#.##-=#=*########*#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#####################################*#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#####################################*#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+++++++++++++++++++++++===========================----------------------------------------------------------------------------------------------------===========================+++++++++++++++++++++++
++++++++++++++++++++++==========================-------------------------------------------::::::::::::::::::-------------------------------------------==========================++++++++++++++++++++++
+++++++++++++++++++++=========================--------------------------------------::::::::::::::::::::::::::::::::--------------------------------------=========================+++++++++++++++++++++
++++++++++++++++++++=========================----------------------------------::::::::::::::::::::::::::::::::::::::::::----------------------------------=========================++++++++++++++++++++
++++++++++++++++++=========================--------------------------------::::::::::::::::::::::::::::::::::::::::::::::::::--------------------------------=========================++++++++++++++++++
+++++++++++++++++=========================------------------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::------------------------------=========================+++++++++++++++++
+++++++++++++++++========================----------------------------::::::::::::::::::::::::::::------::::::::::::::::::::::::::::----------------------------========================+++++++++++++++++
++++++++++++++++=======================----------------------------::::::::::::::::::::--------------------------::::::::::::::::::::----------------------------=======================++++++++++++++++
+++++++++++++++=======================---------------------------::::::::::::::::::----------------------------------::::::::::::::::::---------------------------=======================+++++++++++++++
++++++++++++++=======================--------------------------::::::::::::::::------------------------------------------::::::::::::::::--------------------------=======================++++++++++++++
+++++++++++++=======================-------------------------:::::::::::::::------------------------------------------------:::::::::::::::-------------------------=======================+++++++++++++
++++++++++++=======================------------------------::::::::::::::------------------------------------------------------::::::::::::::------------------------=======================++++++++++++
++++++++++++======================------------------------:::::::::::::----------------------------------------------------------:::::::::::::------------------------======================++++++++++++
+++++++++++======================------------------------::::::::::::----------------------==================----------------------::::::::::::------------------------======================+++++++++++
++++++++++======================-----------------------:::::::::::::------------------============================------------------:::::::::::::-----------------------======================++++++++++
++++++++++=====================-----------------------::::::::::::-----------------==================================-----------------::::::::::::-----------------------=====================++++++++++
+++++++++======================----------------------::::::::::::---------------========================================---------------::::::::::::----------------------======================+++++++++
+++++++++=====================----------------------:::::::::::---------------============================================---------------:::::::::::----------------------=====================+++++++++
++++++++======================---------------------:::::::::::--------------================================================--------------:::::::::::---------------------======================++++++++
++++++++=====================----------------------::::::::::--------------=====================++++++++=====================--------------::::::::::----------------------=====================++++++++
++++++++====================----------------------::::::::::-------------=================++++++++++++++++++++=================-------------::::::::::----------------------====================++++++++
+++++++=====================---------------------::::::::::-------------===============++++++++++++++++++++++++++===============-------------::::::::::---------------------=====================+++++++
+++++++=====================---------------------::::::::::------------==============++++++++++++++++++++++++++++++==============------------::::::::::---------------------=====================+++++++
+++++++====================---------------------::::::::::------------=============++++++++++++++++++++++++++++++++++=============------------::::::::::---------------------====================+++++++
++++++=====================---------------------:::::::::------------=============++++++++++++++++++++++++++++++++++++=============------------:::::::::---------------------=====================++++++
++++++=====================--------------------::::::::::------------============++++++++++++++**********++++++++++++++============------------::::::::::--------------------=====================++++++
++++++====================---------------------::::::::::-----------============++++++++++++****************++++++++++++============-----------::::::::::---------------------====================++++++
++++++====================---------------------:::::::::------------===========+++++++++++********************+++++++++++===========------------:::::::::---------------------====================++++++
++++++====================--------------------::::::::::-----------============++++++++++*******########*******++++++++++============-----------::::::::::--------------------====================++++++
++++++====================--------------------::::::::::-----------===========++++++++++******############******++++++++++===========-----------::::::::::--------------------====================++++++
++++++====================--------------------::::::::::-----------===========++++++++++*****######@@######*****++++++++++===========-----------::::::::::--------------------====================++++++
+++++=====================--------------------::::::::::-----------===========++++++++++*****#####@@@@#####*****++++++++++===========-----------::::::::::--------------------=====================+++++
++++++====================--------------------::::::::::-----------===========++++++++++*****#####@@@@#####*****++++++++++===========-----------::::::::::--------------------====================++++++
++++++====================--------------------::::::::::-----------===========++++++++++*****##############*****++++++++++===========-----------::::::::::--------------------====================++++++
++++++====================--------------------::::::::::-----------============++++++++++******##########******++++++++++============-----------::::::::::--------------------====================++++++
++++++====================--------------------::::::::::-----------============+++++++++++*******######*******+++++++++++============-----------::::::::::--------------------====================++++++
++++++====================---------------------:::::::::------------============+++++++++++******************+++++++++++============------------:::::::::---------------------====================++++++
++++++====================---------------------::::::::::-----------============+++++++++++++**************+++++++++++++============-----------::::::::::---------------------====================++++++
++++++=====================--------------------::::::::::------------============++++++++++++++++******++++++++++++++++============------------::::::::::--------------------=====================++++++
++++++=====================---------------------::::::::::------------=============++++++++++++++++++++++++++++++++++=============------------::::::::::---------------------=====================++++++
+++++++====================---------------------::::::::::-------------=============++++++++++++++++++++++++++++++++=============-------------::::::::::---------------------====================+++++++
+++++++=====================---------------------::::::::::-------------==============++++++++++++++++++++++++++++==============-------------::::::::::---------------------=====================+++++++
+++++++=====================---------------------:::::::::::-------------================++++++++++++++++++++++================-------------:::::::::::---------------------=====================+++++++
++++++++=====================---------------------:::::::::::-------------===================++++++++++++++===================-------------:::::::::::---------------------=====================++++++++
++++++++=====================----------------------:::::::::::--------------================================================--------------:::::::::::----------------------=====================++++++++
+++++++++=====================----------------------:::::::::::--------------==============================================--------------:::::::::::----------------------=====================+++++++++
+++++++++=====================-----------------------:::::::::::---------------==========================================---------------:::::::::::-----------------------=====================+++++++++
++++++++++=====================-----------------------:::::::::::-----------------====================================-----------------:::::::::::-----------------------=====================++++++++++
++++++++++======================-----------------------::::::::::::------------------==============================------------------::::::::::::-----------------------======================++++++++++
+++++++++++======================-----------------------::::::::::::---------------------======================---------------------::::::::::::-----------------------======================+++++++++++
+++++++++++======================------------------------:::::::::::::-------------------------==========-------------------------:::::::::::::------------------------======================+++++++++++
++++++++++++======================-------------------------:::::::::::::--------------------------------------------------------:::::::::::::-------------------------======================++++++++++++
+++++++++++++======================-------------------------:::::::::::::::--------------------------------------------------:::::::::::::::-------------------------======================+++++++++++++
+++++++++++++=======================--------------------------:::::::::::::::----------------------------------------------:::::::::::::::--------------------------=======================+++++++++++++
++++++++++++++=======================---------------------------:::::::::::::::::--------------------------------------:::::::::::::::::---------------------------=======================++++++++++++++
+++++++++++++++========================---------------------------:::::::::::::::::::------------------------------:::::::::::::::::::---------------------------========================+++++++++++++++
++++++++++++++++========================----------------------------:::::::::::::::::::::::------------------:::::::::::::::::::::::----------------------------========================++++++++++++++++
+++++++++++++++++========================------------------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::------------------------------========================+++++++++++++++++
++++++++++++++++++========================-------------------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::-------------------------------========================++++++++++++++++++
+++++++++++++++++++=========================---------------------------------::::::::::::::::::::::::::::::::::::::::::::::---------------------------------=========================+++++++++++++++++++
++++++++++++++++++++==========================-----------------------------------::::::::::::::::::::::::::::::::::::::-----------------------------------==========================++++++++++++++++++++
+++++++++++++++++++++==========================---------------------------------------::::::::::::::::::::::::::::---------------------------------------==========================+++++++++++++++++++++
++++++++++++++++++++++===========================------------------------------------------------------------------------------------------------------===========================++++++++++++++++++++++
++++++++++++++++++++++++===========================--------------------------------------------------------------------------------------------------===========================++++++++++++++++++++++++
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
******************************************...***********************************+..+**************************************..=******************************..:******************************************
******************************************...*********************+*******++****+..+*+*************+****+*****************..=*+*******++*********+*********..:****+*************************************
******************************************...*****..:*+..-*=..*:......*+......-*+.......+*****=...........:*...**-..******.......+*=......+*.......:**:......:*-......**********************************
******************************************...*****+..+....+..-**+*+-..+=...-+***+..=**..-*****=..+*-..+*-..*+..+*..=******..-**..:**+**=..-*...**-..*-..***..:*...:=+***********************************
******************************************...******:....-....**...::..+*+:.....*+..+**..-*****=..+*-..**-..**:..:..*******..=**..:*:...-..-*...**-..*:..***..:**=.....=*********************************
******************************************...*******...=+...=*+..-+...+-..=+-..*+..+**..-*****=..+*-..**-..***....+*******..=**..:*..:+-..-*...**-..*+...=:..:*..:++..:*********************************
******************************************-:=*******+:-**=:-***+...+-:+*+-...=**+::***-:+*****+::**+:-**+:-***+..=********::+**-:=**-..==:-*=:=**+:-***-..==:=**=...:+**********************************
************************************************************************************************************=....***************************************************************************************
************************************************************************************************************+==*****************************************************************************************
********************************************************************************************************************************************************************************************************
***********************************************************************************************************++*******************************************************************************************
**********************************************************************************************************=..*******************************************************************************************
**************************************************************=...+**:.+***:.+*+:..-***-.=..:.:***+.:*****=..=..:+***+:..:+**+..***:.+*-.=:.-***********************************************************
************************************************************+...=...*:..**:..*-..--..+*.....+..-**..-*****=...=...+*...::...*+..+**..=*.....=***********************************************************
************************************************************-.......+*..:=..+*........*...***+..+:..******=..**+..++..+**+..=+..+**..=*...**************************************************************
************************************************************=..+*+=+**+....=**..:**=++*..:****-....+******=..**+..++..=**=..++..+*+..=*...**************************************************************
*************************************************************:.....-***=...***+......+*..:*****...-*******=..**+..+*=......=**.......=*...**+..+********************************************************
***********************************************************************************************...******************************************************************************************************
*********************************************************************************************....*******************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
++==++=-++===-==========+++++===++++++++++*****************************+++***+++++++++***+********++++++++++***+++++++++++++++====::..:====-::-==+++++====-::................................:---:::::::
+=====-=+===--=====+++++++++++++++++++++++++**************************++++***+++++++++++==+*+*++****++++++++====+++++++++++=++===+=::..-===-:-:=++++++=====-::.................................:::-:::::
======-=====-=======+++++++++++++++++++++++++************************+++++***+*+++++=++++*++=-.:--=-:.==++++=-==--==+++++++=++===+=-::..==--::::=++++++=====-:....................................::::::
=====-====------=====+=++++++==++++++++++++++**********************+++++++***+++++*+*+*+++..::..:............=.:=:=---=+==++++=====---..-----:-::=+++++++====...::::.................................:::
==-==--==----==-:==:++:++++++=++++++++++++++++*********************++++++***+++++**++++=:...:.........................:-+====++=====--..:---=---:-=++++++====..--::::...................................
=--=-:===--:---=:=+.**.:.:--==++++++=+++++++++*********************++++++***+*+***+=-::..=*:-=:....:......................:.::=+=====-:..--=====---=++++=+=+...-----::..................................
=--=--===--:.--............:..-=++++++++++++++*********************+++++********+==-=++****+===-.....:--.:==-:...............-=++-===-:..:-==+==-:-===++==+...===-----:.................................
=--=------...........-:......::.-=+++++++++++**********************+++++******+==++*********+======-=---:=++++=:..........-==++=+====--..:==++===---=-=+++-..-=====----:................................
----:---.................-::=+==-:.-=+++++++++*********************+++*******++**************+=-------:-+***+++=.........:--==++++====-:..-++++==---=-:=+=...=======---:::..............................
----:..................:----++++++**===+++*************************+++******+++++++++==+********+++==++***+=:...:....::.===++++++++-=---:.-++++===--==-:-...=+=========--::::..:........................
---=.........:-....::.:--:-+**+****+++++***************************+++*******************+-+-+=.++-:.:---:.......==++++++++++++++++=-----:-++++===---=-....-++++========--::....:.......................
==--......:-==+=:...:::::=+++++=+++===++*************************************************++=-=-++==...:.----=--:.+++++++++**+++++++==-=--=-=++++===-===....-++++=========--::....:......................
=--:.......-==+++===-==+=::::==+++++++*******************************************+******++++=+*+=++-:+==+++++*++=+**********++++++=========-++++======....---=++==========---:..........................
--............:::.:...:.==:.+++++++++++******************************************+++*******++*****++************+***********+++=-::........-*+:.:====....:==--==+===--=====--:-:........................
-=-..:--.......-:--:..:-=+=-=++++++++++********************************************+**++*********+***********+++=-:.........................:=.....==.....:-=--=======-=====--::::..::..................
==---======::===--++=-==+++++++++++++++***********************************************+++===--::....................................:----===--==-..-:.....:-==-========--====--:...::::.................
=====+++++++=++++++++++++++++++++++++*********************************************+=:..............................:::::----================------........-=--=========---====--:...::::................
===++++++++++++++++++++++++++++++++**************************************+:=#***...........:::-----======++++++++++++++++++++=====++++=======-==-.......+--=----========---====--::.:.:::...............
------::::.....................-**-==+********=...-********************#.....+:...-++**************************++++++++++++++++++++++++=====--==....:-=+====---========----=====--:.:..:::..............
...............................:*#:..==.:=***=..=..==******************..=#....:**************************************+++++++++++++++++====-:..=+++==-======-----=======-----===---::.::::..............
:::::::::::--:-:---------=======+===-:......:..***+.=.#***************..=**...:+************************************+*++++++++=======++-..-=::=++=====-=+====-----=====-=----------::::::::.............
================================++++++++==:...:=****:.::************-..+***=:.:*+***********************************+++++++=====-::.:-=++===-:-=+++===---=+===------===--=---::-----:::::::.............
===================++++++++++++++++++++++++++-.=******:....-++++=:...=*+++****+:-+*********************************+++++==-::.:---===++++++==:-========---=++===----====--=--:::::--::::::::............
+++++++++++++++++++++++++++++++++++++++++*+-..=**+*******=.......:+*++++++++++++++++++=======+++*********+++==--::::::------======++++++++++=-============-=+==-=----====--=-:::::::-:::::::............
=====++++++++++++++++======+++++=--:...:-=+**+++++++**********+*+++++=================---------::::::::::::--------==========++++++++++++++==--=+======-:---=+===-----===-:----:::::::::::::............
...........::::::::...........:-=+**++++++++++++++++++++++++++++++=======--------------------------------=======++++++++++++++++++++++++++++=--========-:-::-=====-::-====------::::::::::::............
-::::::::::::::::::::.::::::---===+++++++++++++++++++++++++++=======------------------------=========++++++++++++++++++++++++++*++++++++++++=--========---::--====-::-=====------::::::::::::...........
======-------------:-----------===+++++++++++=++++++++++=============-----------===========++++++++++++++++++++++++++++++++*****++++++++++++=:-=====-==---:::--=+==-::-======-----::::::.::::...........
=====================--------======+++++=============================-=----=--===++++++++++++++++******+*+++++++++++++++********++++++++++++=:=+=====-----:--:--=+=-:.:-=====------:::::................
================================================================================++++++++********************++*+++++**********++*+++++++++++=-=+=====-----:------====:::-=======----:::::::.............
==+++++++++++++====================================================+=++++=====++++*********************+*********************+++++++++++++++--+++====----------:-=====----=======-----::::::............
++++++++++++++++============================================+++++++++++++++++++++****************************************+***++++++++++++++=-=+++====-------------=====--====-====-----:::::............
+++++++++++++++========================================++++++++++++++++++++++++++*********************************************+++++++++++++==+++++==--:-----===---===--=--====-==-------::..............
+++++++++++++++++==+==============================++++++++++++++++++++++==++++++++********************************************++++++++++++=-=+++++===-::---====----==---======--==-------::.............
+++++++++++++++++++++++++========================++++++++++++++++====-====++++++++********************************************++++++++++++=-=+++++===-::--=====-----=-:---====------------::............
++++++++++++++++++++++++======================-=++++++++++++++++==:....:=++++++++********************************************+++++++++++++==++++++===--:--=====-------::--=====----------::::...........
++++++++++++++++++++++++++++====++++++=+++===....=+++++++++++++=-==:.:===+++++++*******************************************+++++++++++++++==++++++===--:--=======----=---======----------:::::..........
+++++++++++++++++++++++++++++++++++++++++++++++==+++++++++++++=+++++=++*++++++++**********************+--++***************+++++++++++++++===++++++===-----=======-----==========----------:::::.........
++++++++++++++++++++++++++++++++++++++++++++++*********++++++++++*+++++++++=++**********************=:....=+++++****++****+**++*+++++++++==+++++++====----========--=-======----=--------::::::.........
++++++++++++++++++++++++++++++++++++++++++++++********************+++++++++***********************+=-::-....++++++**+++++++++++++**++++++=++++++++=--=---=========--=-======----==--------:::::::.....:.
+++++++++++++++++++++++++++++++++++++++++*************************+++*+++************************=:......+:...:++++++++++++++******+++++++++++++++=--=---===================---===---:--::::::.::.....::
++++++++++++++++++++++++++++++++++++++********************************************************+=--::.......+=...+++++=-.:++++*****++++++++++++++++=--==-===+======================---::-:::::::::::.::::
+++++++++++++++++++++++++++++++++++++********************************************************+=---:::.:--...=+...=-:..-+=+++****+++++++++++++++++=-:-=====+=======================------::::::::::::::::
+++++++++++++++++++++++++++++++++++*********************************************************++=---:::::-=+...::....==-==+++++++++++++++++++++++++=-:---===++====================-------:::::::::::::::::
+++++++++++++++++++++++++++++++++++********************************************************++==---:..:--:........-===++++++++++++++++++++++++++++=::---=========================-------:::::::::::::::::
++++++++++++++++++++++++++++++++++********************************************************+++=----............:=-===++++++++-..:=++++++++++++++++=::--===++====================---------::::::::::::::::
+++++++++++++++++++++++++++++++*********************************************************++++==---:...........+===+======+++:+-...-=:++++++++++++=-::--===++==========+========----------::::::::::::::::
++++++++++++++++++++++++++++++++*****************************************************++++====----...........=+==+=====+++==..-....=+++++++++++++=-:-=====+====================----------::::::::::::::::
++++++++++++++++++++++++++++++++**************++******+***+**********************+++++======----::............:==-====++=+++=...-++++++++++++++=-:--===++++================-==-----------:::::-:::::::::
++++++++++++++++++++++++++++++*++++****+++++++++++++++++=+++====+++*++*******++++++=======------::.............----==+=====++==++++++++++++++++=----==+++++===============---=----------::--::--::::::::
++++++++++++++++++++++++++++++*++++++++++++++++++=======---------===+++++++++++++=====-----------:............:---=+==+====++++*******++++++++=----==++++++======++======-::-==------------:-----:::::::
+++++++++++++++++*++++++++++++++++++++++++++======-=-------:::::---:-----===========------------:::...........=---=======+++++++********+++++==--:-==++++++============---:-===-------------------::::::
++++++++++++++++++++++++++++++++++++++++==--:--=----:::...::...:--:::::..:::---------------------::............:-----=====+++++********+++++===---==++++++======+==+==-------==--------:-------:::::::::
+++++++++++++++++++++++++++++++++++++==-:..........................................:-------------.................===....--=-=++++***+++++++==---==+++++++=====+++====--:---===--------::------:::::::::
++++++++++++++++++++++++++++++++++=---:...............:.:----........................:-------------:......::.....-==++=.........:+++++++++++==--====++++++====+++=====-:--=====-------:::----:::::::::::
+++++++++++++++++++++++++++++++++=-::...........-=======+++==----:::....:...............:--------------:-:::.....---=----::....+++++++++++++==-=====+++++======+=====--:--======-------::----:::::::::::
+++++++++++++++++++++++++++++++=-.........................................................------------------:....-----=====+++++*++++++++++==--=====+++======+=======-:--====---------::----:::::::::::-
+++++++++++++++++++++++++++++==-....................::::.:.:::-----::::::.................--=========-------....:=++++++++++++++++++++++++==--======++==============----===-----------:-----::::::::::::
=++++++++++++++++++++++++++++++=--................:..::::....::::-:.:...................::-===================++++++++++++++++++++++++++===----====================----==----------:-------::::.::::::::
=++++++++++++++++++++++++++++++++++=-:..........:::.::::.....:.:::::...............::-=====+++++++++++++++++++++++++++++++++++++++++++=====----==+================----==------------------:::...::::::::
-=+++++++++++++++++++++++++++++++++++++=-::...:----:-----.::::-------:::::::.:---====+++++++++++++++++++++++++++++++++++++++++++++++++====----=====+==============--==-==----------------:........::::::
:=++++++++++++++++++++++++++++++++++++++++==+====+=====--=-===--===-=-=-=========++++++++++++++++++++++++++++++++++++++++++++++++++++=====--=====================---==-==---------------:.........::::::
.-==++++++++++++++++++++++++++++++++++++++++++++++===---::::::::---===========+++++++++++++++++++++++++++++++++++++++++++++++++++++++====--=====================----=--=---------------:..........::::::
.:-==+++++++++++++++++++++++++++++++++++++++++++++================+++++==++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++====-=====================---=-------------------:............:::::
#######**#**+++=+*#*+===========++##****#+----+***++=--=*******+++==********************************+++********+++==============+==========------=======+++++++++++++++++++===-----=++*#################
#######***##****+===++========+++**#+++#=---=****++=:+**++****=====+*******************************+********+++++**#*+=-:......................:::---=======-------===+++++++++++++++==---==+**#########
########**+*+++===++=======--=++*#**++-::::-+++++=-..-*###**+=+====+*+++==--::.........:-+**********#*****++++**#+..............................................::-====-------==++++++++++++==----=+*###
#########*###**************+++**++*+:----:-====-::...:=+++***+=====-.....................-***************+++***.............................................................:-===-----===++++++++++===--
########***#*+**#**#****++*+***+++==:----=+++=-:-...:---=====+++===-.....................-***************+***:......................................................................:---------==++++++++
#######*****=+===+****++++****=+==+=:---=+*++=::==------------=++=--.....................+*********#****+***.....................................:::.......................................:-==-----==++
#**#####*==+++==+*+++**#*+=-===+++++=-=+***+=:-***++------------=++=.::::::::::.........:*******###*#*****+...................................:::.................................................:-=--:
#########++*+=+==+++++***+++==++****+##***+=--####**+:......::---=+=.::....::...........+*******#*********............................................:........................:........................
########*++++++--=++++*#***++=+++***+*+**+==-***+++==-.........-====.::...:....::......-#*******#********::..................................................................:....:-::=-:...............
#########*+++++=---===+*###**+====+##**+===-=+++++++==......::::-==-............:.....:********##********.:....:..............................................................::..............::........
#**#######*++++*+--++++******+======+*+===-=+++++++=-.:-:--::::--==-....:.:::.:.......=***********#*****=:.....:.........................................................::.....:...................::..
###########******=--+====++++**+***+++===-=*++=:.....:.-=--::..:===-..::::::::::.....:*****************#-:....::.................................................:.:::..:::.................::--:.......
###########*******+:--====++******++*+*++#=...:....-==--::.....-==+=::::::::::::.....+*********#**#*****::....-:......................................................::----...:--.:::.::::::::--:-...::
-----------------========--:..--:....:::::::::::-========-:--:::---::::::::----.....-*************#*****::....=:...................................................:------:..:---:::::--:::--===.::--:.:
-----------------=+++===--:..--:....:::::::::...:======--::--.:::--:::::::::::-.....********************::....=:..................................................::.:-----.:==---=:.::---==-::..:.:---:
-----------------======--...::::.::::...:--:::::--====-:::::..::---:::------:-.....=********************.:....=:....................................................:-==-:.:----==:.....:-======-:------
=---------:::-:-======--:....::---:..........:::::-=--:::::..:::--:::====---:.....:*********************.:....=-.::....................:::........................:....::....--=-.............:-========
--=====:-::::::========:-==-------:.......::::...-+--:::::..:::::::-=======-:.....+********************+.:....=-.:::........:..:...::::...........................::....-=:.--=......:-:-..-:-===---=-::
.:--====-::::::=========-----::--:::............::=+-:::::..:::::-:-======--.....:*********************+.:....=-.:::::======-::::.................................::-...:-=:=-...:-=---:=::.===-=+++++==
.:::--====::::--========--:::-::::...:..........::-=+::::...::::---:-------:.....+*********************+.:....+-..:::--========--:................................:::-..:==:.-..::-==-=::..-==-++++-:--=
.:::::--===::.-========--::::::::..:::...........::-+=:::...:::----::-----:.....-**********************=.:...:+-.::.....::-=======-......:........................:----.:===-...:...-++=*..-:=+++-..:=++
.:::::::----..-=========--:::::...::::...........:::-=-:....::-----::-----:.....+**********************=.:...:+=...-====--..:-======:................................................-++=++--=++:....:::
.::::-:::---::========---::::....::::.....::......:::-=:...:::-----:::----.....-***********************=.:...:+=..:--====++++::-=====-............................::-:.....:::.......:=+==+++++--...:.-+
:.....-::::::--=====------::.:::::::......:::.....::--=+-..:::-----:::::::.....************************=.:...:+-......:--=+++++-:=====-...........................-=====:...:-:...:...-+==+=++-..**+*+*+
:.....:=-::::--==-=====----:::::::::.....::.:....:::---==:.:::------:::::.....-************************=.:...:+=----.....:-==++++-==++=-..........................-------:..---...:...-===+=++=----=::==
:.:::.::=-:.:-=======-----:::---::::...:::::::..::::----==.:::-----:.:::......*************************=.:...:+=:=:........:-=++++-=++==:.........................===----.::-=:=.....:-======::-..::--=+
::::::-::-+::-=-===-------::-------:..::::::::..::::-----=:.::----=-..::.....=*************************+.:....+=.........:--::-====.=+++-.........................-:::...:.---=:-=..::::--==::....:-::==
:-::::==::-++=====--------::-------:.:::::::::..:::------=-.::---====-.......*+************************+......+=..........-==-.----.:-===.................................:-=-=:---...:--===++++++=--=++
--::::-==:::=++======----::--------:.::---:-::..::---------.::---=====-.....=***************************......+=...:::.....:=-..::....---................................::--:-.::=....::::::-:--=++*+==
:-:::--==-:::-+*+=-==---::---------:.:------::..::---------=--::-=====......****************************......++...:--:..........--.....................................:::..:-.::-.......::::::::--=+*-
::-::--===:-=--+++++=-=-::---------::--------:..::--------==--:::-=-:......=**++*******************+****:.....==-+:=++=-...............................................:::...::.---........::..::::::-=+
-=-------=:--=--++++===-==-----=++*-:--------:.::----------==-..::=-.......++++++++++**************++***-.....-==-:++=+++=.................................................:::..::-=:..--.:--:-::....:-=
+=--------:---=--+*+*++++=+=--+******--------:.::--==--=-===:..::==-......=++++++++++++************++***=.....-=-:=++++++==+:.........:....................................---+-..:-:...::::.....::...-=
+==-------::-----=+*****+*+++++++****+-------:.-=+========-:..:::---.....:*++++++++++++***********+++***+.....:=-:.:::=======:......::..................................--:.:--===---...:::--:.........:
======---:.:------=****+**+*++++++++++=--============+==:--::::::--:.....++++++++++++++*******+***++++**+......=-.-+=+-.:--==--=++=-.....................................:---::--==+-......-----:.....::
=====----:.::-::::-+****+++++++=++++++===+++=====++===:--:::::::---:....=++++++++++++++**+*++++*+++++++++......=-...=+++=:--==-==-:.-......................................:---::---=+......:----:......
===------:.::::::::-****++=+++++++=+++==+++++++++++=---::::::::::--:...=++++++++++++++++++*++++++++++++++:.....-=....-===::===-:.::--........................................---:.:---=--=+==++-=-..-===
===------:..:::::-::=***++=+++++++++++-=++++++++=-::::::-:::::-::--:..++++++++========+++++++++++++==++++-.....:=....:-==-.====-.+==:..........................................---:.----:-+=++=++=-----:
==-------:..::::-:::-++*+==++++++++++=-=++++*+--:-:::::-:::----=----+++++++===========+++++++++++++==+++++......=....:-==-:=+==-=++=:.....................................::----:.:====-:==+--+++===-:--
==-------:..::--------+++=+**++++++++-=++*+=::::::-:::-:--------=:-=+++++=============++++++++++++++=++++*:.....-:..:--==-:=++=-=++-:.....................................-:::-==-=++=:=-=+=+=---+=--===
==--------..::--------=++=+**+++++++=+**=--::::----::--------------=*++++=============+++++++++*+++++++***=.....:-::-====--++++-=++--:...........:........................:====::+++--==...:..+++=======
==--------...:----==---++=+**++++++=++=-::::-------::--------------=*******++++=+==++++*+**+++**+*+++*****+......-:-=====-=+*++-=+=--......................................---=-=++-===--------==++=++==
====------...:---====---+=+***+*+++=--:::::-------:::--------------=++++++*********++++********************......-:-====-==+*+==++=-*.............:........................:..::-=:-============++==++=-
=====-----...:----===----++**+*++=--:::::---==----:.---------------=*+++++++++**+***##*###*****************=.....:--:..--===*=-+++-+*=........:...:........................-=:====++++++===-.-+++=-+++=-
===-------....:---===----=++***=---:..::---===---:.:-------------:-=*+*******************#****#*********###*......:.:.-:====-=+++++*+-..........::--:.......................+=:------:--:==+==++=-:+++=-
==-==--=--:...:---===----=+**+----:...:---=====--:.----==--------::-******************#**#****#********#####:.......:::-=====++++**++=..........:::-::......................=++-:==-===:---=-::--+==+++=
==--++---=....:----==-----++=-----...:---==+====-..---====------:::=*********************##***#*********####=.........-:-++++****+++=..........::::--:.........................+:-.-.-+===-=====-==-+++=
=-=-=-++=-....:---==--===-==-----::..--==+++====:.:======------:::=+********************##****#**********##**........:-=-==+****++=:....:::...::::::-:.......................--:--=====-====+==-===---==
=======-=-.....---==-=========---::.-===++++===-..======---=---::-=+**************************#***********##*:......:-:-+---=+==-==-:.....::--::::::::.......................--=========+++=---====+=-:=
=========-.....------==========-::.:====+++====:.:=====--=----::-==++++***********************#************#*=......:=.==***=======*:.......:-=::::::-:......................:======++++==--+++++====--=
==++======.....:----===+======-::::-=++++++====..=====--==-=:-::===++++++***********************************#+......---:=+++++===+**:........::-:::::::.....................:=--==+=======:+==+++++++-..
==++++++==:.....::--==+++====-:::::==+++++++==-.:=====-=------:-==+++++++++++++*******************+=*********#......:==+======--+*++:.........::::::::-...................::.::.-----====+++***+++=-:.:=
==+++++++=-......::==++++====-::::-=++++++++==..=+++++=-==---::===++=++++++++++*+*****************+=*********#-.....-+=+++=-++==++=--..........:::::::::...............--===-::::==-=++++++*+++=-:--:::-
==+++++++=-.......-+++++++=--:::::-=++++++++=-.-++++++++===--.-==+++===++++++++++*****************+=**********=.....:*+=++**+::+==+++..........:::::::::.............-====-----=+:===========-:-===---::
==++++++++=......:+++++++==-:...::==++****++=:.++++++++++===::===+++====+++++++++***************+++=*+********+......***-++**+++**++=...........:.::::::............=========+====:.:-=++++-=-=-===-==-=
===+++++++=......=++++++=---....::==++****++=.-++++++++++==-.-===+++=====++++++++***************+*+*+++********......+***-:+*+-+++=.:...........:..::::::.......=+*+++=+==+++==+=+-=-++++=-+-=====-=+--=
===++++++++:....:++++++=---......-=+++***+++=:+++++++++++==.:-===+++======+++++++*********+*****++**+++********......=****+-::.:.:-==..............::::::......:-=-++++++++++-====--=++*=-=+++-==-===+++
===+++++++=-....-++++++-=-:......-==++****++==++++++*++++=-:-====+++======+++++++********++*****++**+++********......:++***+=--=-====:...............:.::........::=++++++=--===++====++*+==+*+=--=-:-=+
====+++++++=....=++++++--:.......:==++****++-++++++*+++++=.:-====+++======+++++++********+++****+***++*********:.....:+=+****=.:====-:..................:.........:..--::=*++=---:=++==++**+=+++=-=:-+**
-===++++++++....=+++++=-:........:==++***++==++++++++++++:.:-====+++=====++++++++********+++****+******+*******-......*+++****----::--..................::.........::--:.=:+++=--::+++++++++++++==+****+
.-==++++++++....=====-:...........===++*+++-++++++++++++=..:-=====++====+++++++++********++*****+++===+********-......+**=+*+++++=====..................::.......-====++==-:----=-::++++***++*+++****+==
.--==+++++++:...=-==-:............-===++++=-++++***+++++:..::-=-==++==+++++++++++*********+***===+*++**********=......-***+===:=++====...................:....:=...--=+=+++++=-+==--:-+++++***++**++--+*
..--=+++++++:.....:................---=++=.=+++++***+++=....::---==+=++++++++++++**************+*+---+*********+.......-++:+=-=++++++=-..................:....=++...-+*+-=+***++++-=.:-===+++=++==--+=++
..:--=++++++:...........................:..+++++***+++=:.....::::-====+++++++++++********+++****+:---=+********+........-=+=-=---=====+-.................:...:=+*=++=+**+--=+**++++=*****+:::---++==-.:-
=======================-===================+=============================***+++++*****+--:***********++-+==+++++++++++++++++++++++=+=+++++=-::::::-=-::------::::::::::::::::::==--==================-==
=....=======---======-=+-==================--============================***=--=+*****+--:+*********+++=====++++++++++++++++++++++++++===+++++==-:::::-===========================-=====================
=::::======-::-======---=======---========---===========================+*************+--:+*********+++=+++++===++++++++++++++++++++++++++++=++++++=-::--::=+++=++++++++++++++++++-===============-====-
++++++==++++=++++====++++====++++++++=++==+=++==========================+***++++=*****++++=*********+++=+++++++==+===++=++++++++++++++++++++++++++++++++=--=+==+++++++++++++++++++===========+===---==--
========================================================================+*****************************+=++++++++++++++=======++++=++++++++++++++++++++++++++=+++++++++++++++++++++++++++++++++++-===----
===-========+========-::-=======-===================-===================+******=+*********************+=+++++++++++++++++++=-=+=-+++++++++++=+++++++++++++===================================+==--------
===-=======+=--======:=::=======*+=======----======-+===============----=*****+*+*****++=-+***********+=++++++=++++++++++=++++++======++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-==-----
===-========--======================================================:---=****++=**********************+========+==========++++++++++=======+++=-=+++++++=======++++++++==++=++++++++++++++++++++:=------
=============+===============-::::---------------------------------++++++***+++*=*****=++++***********+===================-===============-++==--+++++++++++++++++++++++++++++++++++++++++++++++-=++====
=============================-:------------------------------------+++===****************************++:::::::::::-=-=-==-=================++=====++++++++++++++++++++++++++++++++++++++++++++++:===----
===-=======....======--======+++=----::::::------------------------++++=+*************+=+=+***********+++++++++++++++++++==================+++++++++++++++++++++++++++++++++++++++++++++++++++++=++=====
==+========:...======--+=====++=+------------------================+++++++================+++++++++++++=+++++++++++++++++==================++++++++++++++++++++++++++=++++++++++=+++++++++++++++=++====-
=========+===================++=+++=-=-=---------------------------+++++++++++++++++++++++++++++++++++=+**************=====================++++++++++++++++++++++++++=*+++++++++=+++++++++++++++=++=+===
=============================+++++=+===============================++++++++++++++++++++++++++++++++++++++++++++++++++++++=======================================================================--==-===
=============================+++++=++++-====--------------------===+++***=--==*****+++=+***************=++==*****+:--****+=====================+======++=++===========================================+=
=======================-=====++++++++=++++=-----=====================+***-----*****=---+******==*******+==-+*****=---+***+=====================+++=++===+====++++++++++++++++++++++++++++++++++++++++=++
============--========:-=====+++++++++++++----=--------=-::::::------=****************+*****************++*********++****+=====================++++++++*+****++***+++**+*************************==+==++
=++++=====++++++====+++++====+++++++++++=++++=::::-----=::::::::::::-=***+*+*+****+****+********+++*****+=*+*+****++*+***======================++======++++++++++++++++++++++++++++++++++++++++++=====++
=============================+++++++++++++++=----------=+++=++++++++++***************************************************+=====================++*****+******+---*********++************************+=++
=:+*========-========--=-=======+++++++++++==+++=------=++-=--++++++++***-+=-=*****==-=******+-+=+******+-+******=-:--***======================++**=---=*****+---+*******+*+******====*****+:---****+=++
=.=:=======---:======----======-+++++++++++++++=+------=++::--++++++++***-====*****----+*****--+++*****+-=+******+=-:-***======================++************+:::+******++++*************************=--
=:==========---========-===========++++++++++++=++++-=-=++++++++++++++****+++*****************++*+*******++******+++*****+=====================++**++++=*****++++=*****++++=*****+==+=*****=+++=****++**
++++++=======+=========+=+=========+++++++++++++++=+===+++++++++++++++*****+*+*******+********++**+**++*++*+++**+++++++**+=====================++***************************************************+=++
=================================+=+==++++++++++++=+++==++++++++++++++******************************=+=------::::::::::::::*+=-==--============++**+-=-+******++++*******==+*****+=+++******--:+*****+**
=-==-======--:========---================++++++++++++=+====-=========+***+---+-=---::::::::::::::::::::::::::++-=-==-=============-============+***+---+******===+******===+******==++******-===*****+==
====+======::::======-=-=======--========+++++++++++++=+++-====-----==***----+--:::::::::::::::::::::::::::::::-::---+++++++++++++-============+***+===+******===+******===+******===+******---+*****+=-
==========================================-==+++++++++++=++++=----===+******+++=-=+--=+=-==+++++++++++++++++++++++++=*********+=++-============+***+++++*****++++=*****++++=*****++++=*****++++=****++++
=============================================++++++++++++++++========+********+++++++***************************++++=+++++++*++==+-============+****************************************************++++
================================================++++:---:::::::------=********++++==+***++**********************+==+=*************-============+***+*+++*****+==-+*****+---=************************++**
=:+========:+-+======++========+**========-=-===++++++++++++++++++++++********+*************************************=+*********++*-============+***++=*+*****+=+++*****:::::************************+=::
==--=======:==+=========+========+=========-=======+++==-+++++++++++++********+**+++=-******=+==+*****++===*********=+**********+*-============+***++++*******=++************************************:::
+=+=++===+=+=++=+====++=+=+=====+=+=+==++++========++==-=-++++++++++++********+**+===-******====+*****=====*******+*-++=**********-============+***+*+*+*******+*=*******+++*************************+**
++=++++===++=++====================================+++=--+++++++++++++********+**************************+********+*=*************-============+****************************************************++**
===================================================++++++++++++++++++=********+**********************************++*-+************-============+****************************************************++**
===================================================+++++++++++++++++==********+**********************************++*=+************-============+****************************************************++**
===============================+---::-----:::---:::::::-=-==-=-=++++:=********+**+====+*****=+==+*****=++==******++*=+************-============+****************************************************++**
===============================+--:--::::::::::::::::::--:---=-====--=********+**+===-+****+===-+*****===-+******++*=+++++++++++++-============+****************************************************++**
===============================++=+++=+++++++++++++++++++++++++-+==-===++++++++*************************+********++*=+++++++++++++-============+****************************************************++**
===============================++++++++++++++++++++++++++++++++=++--:++++++++++**********************************++*=++++======================+****************************************************++**
===============================++=++=++*++*****************===+--=--=+========+**********************************++*-===-======================+*****************************************************=++
===============================++======++++++++++++++++++++====-=:--+++++++++++***====+*****====+*****====+******+++-+++=======================++****************************************************-==
================================+**+++++******+++++************==--=+++++++++++***----+****+----+****+----+******+++-==========================++***************************************************+-==
================================+**++++=+*****==+==***********+=:--++++++++++++**+++++*****+++*******+++=+********++-==========================++***************************************************+=++
================================+***=+++******++++************+--:++--===++++++************************************+-==========================++***************************************************+=++
================================+***+++=*******++*************+:-=+++==-+++++++***++********++********++***********+-==========================++***************************************************+-==
================================+*****************************+=+++++++++++++++***=====*****====+*****==+=+********+-==========================++****************************************************===
================================+***++*+******++*+************+++++++++++++++++***----+*****----*****+----*********+-==========================++***************************************************+=+=
================================+***=++=+*****=++==***********+================****++*******++==******++=+*********+===========================++================+++++++++++++++++++++++++++++++++++++++
================================+***====******====************+===============+************************************+===========================++++++++++++++++++++++++++++++=++++++++++++++++++++++=+++
================================+**===+=+*****+=+*************+=====:---------=***+++++*****=-==******:::=*********+:==-=======================---+---------------:-+-::--:-++++++=+++++++++++***+*+=***
================================+*****************************=====+-=========+***+++==*****=--=******---=*********=-==============================--============--::::-=+++++=+++++++++++++++****==+***
================================+***++++******====************=====++++==++++++***++++******====******---=*********==+++=====================+=:::-++==++++++=:::::-=+++++==++++++++++++++++++***+++=***
================================+***=++=+*****=---************=====++-==+=+++++****++*****+=****+****************++=++++===================+-:::=++++++-+=:-:::-++++++=++++++++++++++++++++++++++++++++*
================================+***++++******+===************=====++=:--=+++++++++++++++++++++++++++++++++++++++++=++++==================::::=+++++++++=-:-=+++++=+++++++++++++++++=++++++==+*+**+++++*
================================+***++++******++++************=====+++++++++++++==-==++++++++++++++++++++++++++++++=++++===============+::::=+++++++++++++=++====++++++++++++++++++++=++===+++******=***
================================+*****************************=====+++++++++++====:::-==-======-==--=----===========++++-=============::::+++++++++++++++++=+++++++++++++++++++++==+==++++++++****==+***
================================+***++*-******=-=-************=====++++++++++++=+:::+++=++++++++++==-====+++++++++++++++::::::::::=-:::-++++++++++++++++++++=++++++++++++++=+====--=++++++++++***+++=***
=++*+===========================+**+=--=******=-=-************======---------===:--++=-++++++++++=+=====================+++++++++-:::-++++++++++++++++++++==+++++++++++++==+===+++-==========++++++++++*
====-===========================+***++++*******++*************=================---++==++++++++++-=++======+==-=========+=++++=+::::=++++++++++++++++++++-++++++++++++==+==++++++++-==========+++++++++++
================================+***************+*************-==============-:--++++++++++++++==+++++++++++++++++++++++++++=::::=+++=++++++++++++++++=++++++++++++====+++++++++++-==========+==========
================================+*****************************-============+---=++++++++++++++==++++++++++++++++++++++++++=::::++++==+++++++++=+++++-+++++++++++=-=+++++++++++++++-===========----------
================================+***=-=-**********************-===========+:-:=+++++++++++++++-+++++++++++++++++++++++++=:::-++++++++++++++++++====+++++++++=-++++++++++++++++++++-=====================
================================+***=-=-**********************-==========+:-:++++++++++++++++=++++++++++++++++=+++++=+-:::-++++++++++++++++++====+++++++===++==+++=+++++++++++++++-=====================
=================================**+++*++*********************-=========+=::+++-:=-=+++++++==++++++++==========+====---:-+++=++++++++++++++====+++++===++++++======+++++++++++++++-=====================
+*+=...------::***+....:-..---...-:...-::..-=+=:.=*#=..::+.+==.:....-:.:=...=-..:-----==.:-:-----==+++===-...:-+.:-=-.-=..:++=+++====+...:-=.....-.=:=-#-:..:===+++++++=..--.-:=.:..-=--+++=++.:-.......
=-::.:.---:-+-:***=....-:.:---:.........---++=:.-===*::..-+==::....=+-+**...=#*-=++=-*#*...........-=+**=....-:+-.:+-.:-*++===++-=+==+...........=-=-++++====.:--:-===.......+*+*-..:=--=+==+*::::.::...
=---:-::......:##*=.**..-::-:::--::-=:::==+#+-###-==#:...:-:::::....+:=+=-..=##::+=.-##*.:=++++:...-=*##+=-::=:+-.-+=-*+*#*+++++++++++...::......-=-:*+=*+===--::--::.....::+*###*..:-.....::...:.:::-..
:::::-=+**********+...:.::::.:.:-----::-:--:=+-*=====:..-==+=-:-:.........:=*##:.::.-##*:+#*++*#*..-+###*+=-:=:#++*#######*+++++++++++....:---:..=***#####***::::::::::::.::*+****..*##########+........
:-----:+****####**+:::::::::::-----::--=::::--::--:--:..--=+-----.....:-::==*#*:-==-:##*.+=++++++..-=****+--==-#+#########********+++*...:-==-::.+**######***------------.:==****-..*+#*+***#*+*==--++++
:.::::.++****#####*=++++=+==++--=-=+::--=:.=.::.-=:-::::.:-+:::--....-:=:===......:-....:*-=++***..............#+*#########*===+#***+#.....--..::+*=:.....:*+=--=+===---:..:=****-..***+==+*#+**+-..==:+
--:.:--+++****#####=+++=-=++++:-==:=-:-:--.:=:..::.-:-===--+-====...:+=++==-....=*=:**:.:*.+*****:.....+.-.....############*++++#++*+#-.:=::-==::+@-..:+*=:##====+======-.::=*#++-..*==++++*+=#*+-..===+
-=++=--=+++++++++**+++==.-=++=+---:-+***++=+++--::--:.....-::.......:=+++=::...-##+=*+:.:*:*+=++*+....*=-=.......:=++===-:=*++++*++*+#--.::.:--:-+@-.:-*-:-##===========:-++=.:--...**+*+*+*++#*++=++==+
*******++******+++++++=+======..::-:::-+::-+=*=--+:::....:-::........-*+=........:-:-:...-.=====++....***+*....---===---:.-**********#:::....:.::+@##=.:.++##++==-=+======+==:::-:..+++++==+++=++=+++=*:
++***=.+******+===-===========.....==-:-+-:::-::=+**#:...=-::::......*+++.....:--:::.:::.=.+++=++*:..-**+*.....-:.:-::......::-=..:::-:......---:=@#**-.+#*##:.:..:::.-=-...........**=++*+++-:-++**+===
++=:...=+++++++===-===========:::--=====..--==.:---.+:..:.--*-::....:++==....=*##:===:=-.-:-++++*=:..:+==*.....:.:+++-:-:..:==-+..=:=+.:..::-----=*+-==-===#*:::.:...:--:...........++-+++++====+=**+---
-......==+========---+=..-=-:=.....+*=.....::.::=====..::-=+=-:=-...:==.:...-###+:--+*-+....:.=:=:....+*##+=:..............*==*+:#:-*=....--:-::.=*++####+*+#-=-:..:+*:=............==+==++====-+=**+---
:=-==========------:--::-=-.-=..:::::-:...:::-.:===:*:...:-+=::::...........-**###:::.:+##*-:::-+##-.-####*+...+++=+=-===+==:.=+.-::==##*==+######*##########.......................------------=++++---
=++::+#*++++++++++=.--::::-----::.::::::..-=+=::==:.-.:+#*--=++:...:=**###*******==+**+=#:..=+++:.+-.*#+*##+...-=++*-:::::=:..-=:::.:*#*..-*#**###**###**####.......:=....::::::::-:*########***=:..=+++
=-:=-=-***********+..:-------:.:=+===-=-..:::-:-*+#*#-**##**+**##*****##-#=**++=++++++++-.:*=.:.-:::..=*+-:....:++**+-::::=....=-:...-##-..-=:=###**###-#**##........-...-====++++++*######****+====++++
-:=*++:***+-=**=-++.:::------:.--:..=::...=-=+.:--:.==#+######*##*******-#+=*--=++=+++=+::=:..:..-:*########*#*--::--:..:.-...:==-.-.=##*...:+####*+*##-#****-----::-....-===....+*+########***+-:*=+==+
:-.:--:****--=+---+##+------=#:.:...........-::-+++++*++++=:....-+-=****:*#++-=+++++=+=++:-....:.::#**#+#***=+=-:.::::::.:.:+=:=##=-*#*#=-+***#**########*##*-+-+=====+=:-===-...+*+*###*:..***+==+=+=++
==--++=*+-=:::=:::=##.......:#+--....====-::+=.:--==**+++.......--..-==+-=+*+##**==+--:-@*--.:..:+#####*****+*+=:-:::-=:.::++--###*+@#---======++-::::::::::.=*.:=:=+...---=-*::.+*+####*++*##*=.-:.--=:
----:-=+:.:-=-+:::-#*.......:#+==:...++++-.-=-::-=-.-*+===+.....--------=====+***====:::####***####*===-+===-=-=-=====-:::=#*-####**#+---=====+++-::::::-:-:-::.-*+++..:=----+---=+++***###****=..:-...:
+-+==:=-:-====-----##-......:#**+-.-.-***=----==---=-=++==+--++==---:==========-===-::.............:..:.-.#####+--++++=-.-=*==#*+*=***:-==--==+++-::=-==::-::.:-=++::*-.-+-=-=-===++++*********=.......:
+-*+-.=+++*++++*+++###+.....:#+*+=...=#**=.:-.:=:.-:.+....-=*+..=--:::-=-===*###*#*####*.............:+-..-++-.-=====-+-::-=====:-===-.:-:..:::---:=++=----::..+#*=.-+:.:=:--+-=====+*++*******=:..:...:
:----==*****++=-::-######***##*#*+:+==#**-:--::::-=-.-..==--====+=----==---=*##=--=-*##*...=*-........=...-+=-.:=-====+-.---=====-====####=*#####=:::----::-:..-.::......-::.::::---+**********=....+*+-
=-=+=-=..-.........:-==---.:=:+***---=#+--:::--.=-=-.=+===+*+======-======-=*#+=-===-##*..:==.:-...........:...:-::-:::::-:----=*+.---###:=::.+##=-+:-:::-=::=+*#######--===++++*##************=...=*+-=
===+-==.....-..-.....-:.:+===#****--.=**-+...::--:-..-++=::-.:-===++++++=:-:+@=-==+-:*#*.::=-.::...............==.:-:-::.::-----:..:--###**#**###=::-:::=::::=+#=-+=#:+-:==*##*+++*+=--=+===+++=-:.::..=
+=+=+++....--..-...=::-====-+#+**+=-.:+*:....::::::...=...-=##@#+++++==++=:+*@+-==--:*#*:--=:..................--.::::::.::=-----:----###########+-:::--:::::..:..-+*-*+=###++++++*+==-=+=+++++=..::-..:
*+*****........:.....:-=+=-:+#:...=.:.....-..:.==:::.-=...=:-#-*+++++++=-=+:+#*-----:+#*...:-+.................++*******++*##########**:+::::::*#=.::::::::::-=*=+******+***+++****+==-.=++==++=.:-:::::
#######............:--.......::...........:-==:::::..-====-=*-:.=##*******+-*#*--.:--*#*....:.......:::::::::::****+##*=***###***###***.:+:.:...#-...........=+=:+++++++*##+.....###-:::-=++-=++-+:::-::
+##+=+*...........:====+*++++-:............::-++-::..-=:...:+-..--====-=====*@*------*#*...:-=:....:=====------***+.+**-=*+--:::+****+#-#=+...:.+-...........=+=..+*+-:=*#+...:=:.-#---::::---=-........
=-*--:=:-::++*#******=+**##++=:...............:-==-..-:=:...-...-=====+=++==*###########.:.:.......=***********+==:::::-+=+**********+#+#*#*:--*#-...........===.::=+*::-#:...++*.+@---::::::--:.==.....
:.-==--..:::.-=--==-++::::...::...........----.:-:::::-:-.....:::=-==-=.:+=+:.:+***#+=*#***+*#*:::.-++=....:*++==**+*+*+*+-=====++++*=**#########-...........--:.::=-:+:-#*.+###+*##:....:......:-+=....
#######.:-==-:...==-:...---::::...........---::.:=---:.:-........==--:.-+=++:..===+=--+-**+*+++*-:.=*==*#+#===+...:-:---++=-----------###==######-...........:::--=***#+=##*#+**###@:...........:-+.....
#######.--+=-::.:--......:::=+..::...+*=..:---:.::::.********#***==-:=-+===+:..:.:::.:+-*++-+**+:..-::........::::=+++=-+==-----------###-+*#*###-......:=*-.-++=-.=###++##*########:..:-++-:..-+-.:.=..
*+**###:-:=+:::..:-:::::.:::--..-=.+.:==..::.......:-**=+++++#+++=:-----:--=:........:=.:::::......:-....:.....**#*++**::=+-----------###*#*=####=..=+:+-.+**++*+*==+*#######**#####:.---==--:..........
+=+*=*#+++==:-++--+::.:---=-=+-=+=-:++***:..:.:::..::*##*#=...=+*=:::::::.:=:.:=+==.....#*#*#######+=-:::::::::.........::--===:=====-=+++++++++=:.-+====...:...........:#######*###::--:..:--:.........
+*+-+**************+=::--:::::.::+-:++++-.::===:-=:::+###*=-::=+*-:::::::::-...::....:.:=::.*+#*#@@#############******#**#=-==+===+==-+++-=:-=-+++**=+==+**+......::....-###=*######::---++:::--=***=:=*
=+:-=+#*#####*+-...-------=+++......=::::::-==-=*=::.++*+#*-+#*=*------:----:..:::..:.:.#***##########@@###@@##*++*+******+==+=*-+:==-+-+------=--.-*:-**-::............:##**#+****#-----==-:-===+*+=-=*
-=--=++###@@###*+==*---+-----*-==++*****+--=++=--.:-:+:==.....:--==-=====-==:.:.....----#*#**##***+###@@+=*####*+*+******#+=======----+------:---:....-..:...:::::::::::=***++++++++-----+-:---=+**=:=++
.::..--*#########**=::::+--:-++=+***=**======-::.-:--=....-...:+===:+===.-==-..-:::::::.############@@@##*##@###*+***+:=**=---==-=--::****#*+*+++-.:.:::....:**+=+*=+-+:************-:--:.-=---===*:-:-+
-+:::==*#########**=::::+:--:=++***+*****=:-=----::.-+:.::.:.=+++===++=+-.=+=:::--.:-::.##*====-:+##@@@@@#@@@##*******.:#*###*###**=#*==-+##+-::=:.........::=-+=--:-.:-=***********+===-===-++=........
:-=-=-:***+*#######=::::+:---++**##**+*****#*+.::-..+=-::.--..-=-====+==:-==-:-:..-.::..#*----=*+-+#############**###+..*####*#****##*:::+++=--:::.......-:.:==----==---+********###+++-=+----+-........
=-.:--.*##****#####=.:::+----++*#********=..-::.+--.*=--==---=====:::+==-===:.:.........#=:+##+-*##=-=:....-...#*####+.=#####***##****..-:=-:.-::........--=:*###########***********+++=-=-:-:=-..===...
:=:-:=+++*+*****+**++++=+=+==+++===+-.+##++=......::+.......:....==--::::::=:...........###########+-=+---=--::######*:+##############.-:::.:-.:......-+::=-.*#####*#*###********##*-----==-:.--..+**...
=:-:.-:=+**######**++++++++++++***++*-=**+##-.+=...=-..:....:.:::===-======-*###++#####*...........:==*#*=--.*#######**###*+=*##*=+-..:.......:.:....=**::-::*+-#+#++-*##****#******======+=---=.:**=:-:
-===+=-************++++++++++++*#+==::==#+*=+==+#+=++=:........::========+::*###*-#####*.....=......:-.--:::.:=...........:+*###*#*:............:-++=--*###****+#*#+++*+#****#******+++--=--.-+=.:==+-==
.---+--====++=++++=====+=====-=**##=++:-*+##=*#######=:--------::=-+*#*=:-++*##+--..###*....:-......-++*+--:=-+=:-.:*.:+..:==*++*##+=:#+++**+**+**++++*+*##******************#=-****+++=--==+-+=.....-==
::=...:::---.::==-:===*#=+++=-==:-+++-::*+*+=*+++****-.-======---**=:+##**+-+##-....-+*-:.....:....:=+=-+-:.==++#=+##*##++=:-+=+====.:#++=::-++++******=-****##**##*+*++######++####++++:---=-=+++++*###
#*#####--===:=+++-:==--=-==+===-==--=--++++*--+*==-++=:-++=++===-...........=*+.-:...-#-..:-...:==++==+::::::--#########*#=...:--.....#++=*+*+*++*++***==**++*#*******++*###########*++-:::---=+-#######
--....====+=.:+*+--==-------+=+#*=-*=*++*+**-:++=**-*-:=+++++++--....:......-=+...:...+-:-==...===*-.-+*=--.==+#::+***:.:#--.::::.....#*=#*+-**++=........:::++***++*+++*###########=.:::--:::-:-++++**+
---++-=-====**#*+-:+--------==+*#*+**=***=:=:===-=+*=-:=+===-=-==:::.:..:::.-++-.......--===--:===+###*=::-*#+:+**++++=*+*-..--:......#***=:***+*=...........++*+**+*+*=+###########..:::.-::...::::::--
===--:=-==:=***++-:+--------==+##########=-=-===------=+===--=--=:::::..::::-*--..:*...--====+=+=++##*=:=-:++=---+=++**#**=:-::.......#+***+-++++-...........+*****+*****###########:.-=+=:-::..::::::-:
..-==:=-===+##+++-:==--------=*#@@@##@@@#*:+--*++----==+++++=+++=::::::.::::=*=*=.:#*++*======-+==**+-:.-=+=:=-+#===--+=+*-:::........#++#*+=-+++-...........=*+++++++++*###########....-++-:...:...:-:-
--:::.=-===***-+=-:=----------*##########*---=**+==--............:::::..::::=+=++=-*++=+-====-====*##*..:**+**#*--+=--====:...........#=-#==:-+=+=...........++++++++++**#####**####....:::--:..::.---:.
..::-.=---:...:-::.-====-=----*#*########*---=#+====-............:::::::::::=*++=--==:::#**********##+...*#####+++-......-:...........#====----=+-...........*##***#**#*#***#+-+*#**---....=---....===:.
...:-:=:..........:+=====---::*##########*-=-=#+===+-............::::::.:::.=*++=--==:::***********##=...-#####++**+=+++**-...........*###*####**-...........***###*-=##+:-++==*+--::---:..:::.::..:::.:
-:::..=:...........========--:*##########*===+#+===+=............:::....:.:.-*++-::.-:-:*****#*****####==*#####++#***=+**+:.....::::::::=+:+*+++=----::---::-#***++*==+++::+++++*=:.:-:......::=##*==:-+
*******............--======---*##########*===+#*==+==............:.:...:.:::=*+*++++-:--*********###***-++#####****#=*****+***********:=*=:+*#**#-...........*###**##++#=....=+.......:.-:--.::=#*-*.--*
...................=------:-:-================+#++===............:..--=--.:==::.........+++++++**+*+**+-::......-+*+-=**+==***********::-*++=**##-...........*=+*=**+**++...:==+....---::::::==--**#+=*=
-------............--==-:--:::-======+**==###########............::++----...:-:.....-*+=--==+++++===-==:::.....##*-===*####******+****:::::==-+##=::::::::.:.***#****#*++:.:.-=-....*##*+==--.-:+#*+===+
--::--:............------+====-=#=---+++=-########*++.............=#+=:=-:..:-:.....::-===+-==-===+-.+*-.:.....##+.:::=#@@#**-:-:-:+***####*#####=::*+:::::::*+*+*+##*****+++***++++::===+*=-:::=**+-+-+
---:..:------:.:::--.::+=====--:.::--...::+***++++++=............:-*--:-::-*:-.=....++==+**===-++*+::-=:.:=-...##+.:..=+**#*****************+==--:..=-:.-::::++*+*++++++*++**+++++=*==*+==-+-:::-:-===-:
=--:...*=++*+=-==+*-.:=:-:::-=............---========..............++=-:.-#::-:+:.::-=--++*++=-+*+=-:--+*++-::-*+++++#*++*************.::::=+++==-...:.==-.:.::---===..:=##*******+#===-=+--::::-:::--::
.::.:..-=*+==+-=*#*===========....-=:.....---========..:::--:=-....:==-..:.=-:.-+=----.-+***+==*++=++++*###++++#+-:=-=+++##**+=++======+==++++==-:+-=-==-==+-:-=-..--.::+******+**+#-------:-..:=-------
:.....:+++*-++-+=**-========--....+*=.....-:-----=---..:=-:.::...==*=.....++--.-++=--:::+##++==+++=+=-=*###====##+-=-=++###**+==+====+:---====-=+-=:-..:---==-=---:=-..=+##***##***#::+--=====+=---=----
...-:..+++==---:::=---=:.:.-**...:*++.....::-:-:-+--:............:=#=:....:+:.=--++=:...==+=++=*+-::---=##+=---:-:-:-::---+**+=+++++=+===+*+=++**----:-----::+*#=+++=-:-++-==+*=+=+#:::-=-----++--------
......................................................:======+:...............*-............................................................+=..........................................................
.....................................................-########=..=######+.....*-............................................................+=..........................................................
.....................................................-##@@@@##=..=##@@@##.....*-............................................................+=..........................................................
.....................................................-##@@@@##=..=##@@@#*.....*-............................................................+=..........................................................
.....................................................:##@@####=..=######+.....*-....................:+.*-:-+:...............................+=..........................................................
......................................................#####+=#+.-########+....*-.....................+-.*-.+=*.++.*--++.....................+=..........................................................
.....................................................-#######*+.:##@@@@@#+....*-......................-.:..+=*.+=:*..+=.....................+=..........................................................
.....................................................-########=.:####@@##+....*-............................................................+=..........................................................
.....................................................-#=+##=##*.:##*####*+....*-............................................................+=...........................................:....:.....-...
....................................................-*#--:..--+.=##*###*#*....*-.........................-+.+..*:...........................+=.........................................:-............=:.
....................................................=##***...++.*=-#++=+##=...*-........................:=--=-:-+::.........................+=......................................:...-:..........:-:.
....................................................###....:..+##-=-..=+*#+...*-..................................--........................+=.....................................-+########-.........:
....................................................+##:.-=:.-=##+-+*=-.:#*...*-.......................+-=:--.+:=..=-.......................+=.............................-+############@####*=........
....................................................###+=###+=*#@#########*...*-........................*::--:+-+.:.........................+=............................-####@@@@@@@@@@@@@####*-...-:.
....................................................######################*...*-.......................+---::-:::-:-:.......................+=...........................-*###@@@@@@@@@@@@@@@@####*.-:..
......................................................:::..........:::::::....*-............................................................+=..........................=*####@@@@@@@@@@@@@@@@@@@##=.-..
..............................................................................*-............................................................+=..........................-###@@@@@@@@@@@@@@@@@@@@@###-:..
..............................................................................*-............................................................+=.........................:=##@@@@@@@@@@@@@@@@@@@@@@####-..
..............................................................................*-............................................................+=.......................-=######@#@@@@@@@@@@@@@@@@@@@###-..
..............................................................................*-.....................+............:.-.......................+=...........................:+*#####@@@@@@@@@@@@@@@@####...
..............................................................................*-.....................+..=.::-*.*:-..+.......................+=..................:.:######=...:*##@@#####@@@@########+...
..............................................................................*-....................-+:.:+--++-+-=..-=......................+=.........................-=--#*-*###@##*==:..:-*#++##*....
..............................................................................*-............................................................+=..........................+=+::..*########*+*######+.*....
..............................................................................*-.........................::.-..-............................+=.........................=.......=##@###-....=#######=....
..............................................................................*-.........................=++=:=-:...........................+=......................**##=......-#####*:++...--+####:.-..
..............................................................................*-.........................=---------.........................+=..................-=######-......:#######*=.-**+.=###.:+..
..............................................................................*-............................................................+=.................=###@###**......:###@###############*#=..
..............................................................................*-........................=-::==.+:+..........................+=.................=*###@@###-....:####@@@@@@#@####@@###*:..
..............................................................................*-.........................*-:+=-+-*..........................+=..................+###@@###=...:.####@@@@@@@@@@@@@@###*...
..............................................................................*-........................+-..................................+=..................=#@#@@###+.#*.:##*+##@@@@@@@@@@@@###:...
..............................................................................*-............................................................+=..................+#########:-::=##+*##@@@@@@@@@@@@##*....
..............................................................................*-............................................................+=..................::=########:-#######@@@@@@@@@@@####=....
..............................................................................+-............................................................+=.....................:*####*=###@@@@@@@@@@@@@@@@####=.....
..............:=##******=::...................................................*-............................................................+-.....................-###==++######@@@@@@@@@@@@###+:......
..........-######@@@@@########@@##+-..........................................*-............................................................+=....................###-.:::-=++####@@@@@@@@@@@@#-........
.......*###@@@@@@@@@@@@@@@@@@@@@@@########**-.................................*-............................................................+=..................:##+:=....::.....=*###@@@@@###*.........
.....+##@@@@@@@@######@@@@@@@@@@@@@@@@####*####=-:............................*-............................................................+=...................+==*#*:=##*########*#@@@@####..........
....###@@@@@@@##*-...*###@@@@@@@@@@@@@#+.....=####@@#=........................*-............................................................+=...................+#**######*#########@@@@@###-..........
...##@@@@@@@###.........##@@@@@@@@@@##-...**+.:##@@@@#####*+-.................*-............................................................+=....................+*.-##@####@@@@#@@@@@@####............
..=#@@@@@@@@##=.........=#@@@@@@@@@@##:.:.:+-.+#@@@@@@@@@@#######=--..........*-............................................................+=.......................=@@@@@@@@@@@@@@@@####+.............
.:##@@@@@@@@##-.........*#@@@@@@@@@@##=.-#+=..##@@@@@@@@@@@@@@@@@####=........*-............................................................+=..................-....+##@@@@@@@@@@@@@@##*...............
.*##@@@@@@@@#+.:*-=.....*#@@@@@@@@@@##=.*#=..:##@##@@@@@@@@@@@@@@@@@##*:......*-............................................................+=.................+###+:+###@@@@@@@@@@@@###.+..............
##@@@@@@@@@@##=...::....:###@@@@@@@@@##:::...*###-+#####@@@@@@@@@@@@@@##:.....*-............................................................+-.................-######*##@@@@@@@@@@@@@##..*.............
##@@@@@@@@@@##*...........-#####@@@@@@*.=*...+@##*::#+##@@@@@@@@@@@@@@##-.....*-............................................................+=..................##@###@##@@@@@@@@@@####+..+=............
##@@@@@@@@@@@@####=...:........+###@@@##:-.:.-##*.::+-##@@@@@@@@@@@@@@##-.....*-............................................................+=.................:##@#@@@@@@@@@@@@@@#####...#-............
##@@@@@@@@@@@@@@##..--...........*#####**.--.:=+:...-=##@@@@@@@@@@@@@@@#*.....*-............................................................+=..................*###@@@@@@@@@@@@@####=...+*:............
##@@@@@@@@@@@@@@#*..*............*##*#-+-:...+#-....-##*##@@@@@@@@@@@@@##.....*-............................................................+=.................+###@@@@@@@@@@@#####+....=#=.............
##@@@@@@@@@@@@@@#-..-:...........*####-.=#*=.*#.......++*##@@@@@@@@@@##*:.....*-............................................................+=..................*###############*=.....*#*..............
##@@@@@@@@@@@@###:...............-###+*#####*##....+*.-####@@@@@@@@@###.......*-............................................................+=.....................-=++++++++-........+++...............
*#@@@@@@@@@@@@@##:..-....::.......###.-###-=+-*...:=.==*###@@@@@@@@###........*-............................................................+=..........................................................
##@@@@@@@@@@@###*.................+###.=*+*-..*..=....:####@@@@@@@@##=........*-............................................................+-..........................................................
=#@@@@@@@@@@#+....................:###=:*#*:..+.....-:+*@@@@@@@@@@@##+-.......*-............................................................+=..........................................................
=#@@@@@@@###=........::............*#####==-..:.......-:*##@@@@@@@@@#*........*-............................................................+=..........................................................
:##@@#@###-......-.................*#######*::...........#####@@@@####........*-............................................................+=..........................................................
.=#####-...........................*####*-....*+.........##*####@@###*........*-............................................................+=..........................................................
.=####*................:...:.:.....=+-.....+::.*+-:+=.........=#@@#=..........*-............................................................+=..........................................................
.:####=....................:-............*+=::**+==*##...*#*..................*-............................................................+=..........................................................
.=####*.................................-#-........=.....*#=..................*-............................................................+=..........................................................
.=#####.......................................................................*-............................................................+=..........................................................
..=####.......................................................................*-............................................................+=..........................................................
...*###-......................................................................*-............................................................+=..........................................................
...**..*..............-.......................................................*-............................................................+=..........................................................
...:#*-#......................................................................*-............................................................+=..........................................................
..............................................................................*-............................................................+=..........................................................
..............................................................:-==++++++++++++++++++++++++++**************+*+++++++++++++++++==-::......................................................................
............................................................:-=+++++++++++++++++++++++++++++++++++++++******+++++++++++++++++++++++=-:.............................::::::::::::::::.....................
...........................................................::-=++***+++++++++++====================++++++++++++++++++++++++++++++++++++==-......................:::::::::---::::::......................
...........................................................:--=+*****+++++++====--:--------------==========+++++++++++++++++++++++++++++++====:.................:::.:.::::::..:::::::::::::.............
...........................................................:--=++**++++++===----::..::::----:::::::------====+++++====+++++++++++++++++++++++++====-:...........::::::::::::::::::-------::.............
...........................................................::--==+++++===---::::.........::.........:::::----==========+++++++++++++++++++++++++=+++======--:...::::::::--:::::::::::::::::.............
............................................................:--==+++===---:::.............................:::-:---=====+++++++++++++++++++++++++++++++++================----------====-=-------=--------
.............................................................:=+++===-:::.......:--:...........................:-----=====+++++++++++++++++++++++++++++++++++++++======================================-
.............................................................-=++==--:........:-::.....::::.....................:-------====+++++++++++++++++++++++++++++++++++++++++======++++=========================
............................................................:====---:.................:::..::.....::.............:---::---====++++++++++++++++++++++++++++++++++++++++++++===+++========================
............................................................-===--:..................::....:::...::---===--:.......---------===++++++++++++++++++++++++++++++++++==+++=++===============================
..........................................................:====-:..................:....::::.....:=+**#*+=-:::......-=--------===+++++++++++++++++++++++++++++++++=======+===========================---
........................................................:-===-::.....:--:...........::::::-::....-+######*=-::......:====------==+++++++++++++++++++++++++++=+++=+==================--=====-------------
..................................................::---=====::......::::---:......:-=-==----:...:=*######*=--:.......-==========++++++++++++++++++++++++++++++++================------------------------
.............................................::-=+====-----........::....:---:...:-=====---:...:-+*######*=--.........-========++++++++++++++++++++++++++++++======----=====----------------------::::::
......................................:::----==+++=----:-:..............:..:-:..:-======-:.....:-+*######+--:..........-=====+++++***++++++++++++++++++++=======---------------------------:::::::::::::
.................................::--=====--:::--------::::........::--=+=-:.:::-======--......:=*#######=-:...........:==+++++++******++++++++++++++++++=====----------------::::::::::::::::::::::::::
.............................::----:-::::....::--:------:::::::--====++****+-.:--======--.....:-+*######*=-:............-=+++++********+++++++++++++=======------::::::::::::::::::::::::::::.....::....
............................:--:.....::::....:--:::::::::--=====++*+++*******-:-==+====-:.....:-+#######+=:.............=+++***********++++++++++========-----:::::::::::::::...........................
...........................:-:................:.:::------=+=====+====++*******-=+++++==-:.....:=*#######+-...........:=++*************+++++++========-----::::::.::.....................................
..........................::-:..........:-----:--====--==+=--===++*+++*******+-=++++===-:....:-+*####**+-:.......:-=+********+++++**++++========------:::::.............................................
..........................::-:........::-====----===+=--=++++++*********+++=++===++====-.....:-+#####*+=---===++++********++++++++++++======------:::::.................................................
..........................:::--..:::--====----====+=+++***+++******+++++++++++=========-....::=*###**++++++++********+++++++++++++=====-------:::::.....................................................
............................:---..:-:----======+++++*******++++++++++++++***++-=======-:....::=+**++++++++********++++++++++++=====-----::::::...................:=+++=.................................
.............................:--:..----=-=+++************************+++++===========-:..:..-==+=====++++++++++++++++==========----:::::...................:-=+++======-................................
.............................::---:.--:::=*****************************+=----========-::..-==============++++++============----::::....................-=++++++++=======-:..............................
..............................::---:.=+=+++****************+++++++++===-:----=--=====-::-=++++++==--==----===========-----::::..................:--====++===========-----:..............................
................................:---:.=+****************************=-==--=+++=----=--:-===++++++=-------------------:::::...............:--================---------::::::.............................
................................::----:+***************++**********************+-----::---======--::::::::::::::::::......................:----------::::::::::::::::::::::.............................
.................................::----:+*****++++**+***************************+:::-:::::----:::::.......................................::::::..........................:.............................
..................................::----:-*****++++++++++************************=:::::...:.:--:...........................................::...........................................................
.....................................:---:-+++++=====+++**************************==-::.....-######-:...................................................................................................
......................................:---::+++++++==-=++++***+++*****************+=--:.....*######-:....::.............................................................................................
.......................................:-:::.****+++***++====+*****+++++++++++++***=--:....:######*-:...::....-.........................................................................................
........................................:-:::.*+:-+++*++=:------=***+++++++*******++=-::...=######+:......:...-.........................................................................................
.........................................:-:::.:-::-===-=-::--:-+*++**+********+++******=..*######-:....................................................................................................
..........................................:::::.::--=+==---:--+++++*********************:..##*###*:...--................................................................................................
..........................................=:::::.:-:-----:::--:-+**********#***********+..:######=:...*++...............................................................................................
...........................................-:::::..:::::-:..--=*********+***************=.=*#####-:..=*++*..............................................................................................
............................................=:-:::..:-:-::::=***#*++********************+::-+***-...:*+**+--............................................................................................
................:............................=:---:..-=+*****-=-==+*********************=::----:...+**+-==:.:.........................................................................:.................
..............................................=:----:+*+=+++*=**************************-::--=-:..-*+++++*==-=-.......................................................................:-................
....................:..........................-:---::-+-*******************************-::---:...-++**+==+++=-=...................................:::-:.......:.-=-:--::------::--::::-:...............
................................................=:--::--++=+***************************+*:..:::...-+++=++=:..--.:...................................:-:---:...:.........................:...............
.........................:::::...................-:---:::*+***************************+*++=-.......:===-:-..........................................:............................:::::...:..............
..................................................-:--::.:****************************+++..:.......::....................:--:-.......................:...:::::::---------------------:...:..............
.........................................:--==-----=---::.:****************+:-::====++--:......-+-.......................:---::......................:-:-----------------------------:...::.............
.........................................:=+++++==++====--::**=*******++====-=+*#*:-==-::...........................::...:--==-:......................:-------------------------::::::....-.............
.........................................:-=++++==+++++++====*+=-:.:*+****+*+-=**+.--:-:.......................::::......:-====--......................:-::----::----:--::::::::-::-------:.............
..........................................:-=======+++++++++++*++=+*****++***=--+:.........................:::...........:--=====-:.....................=----====---....................................
.......................:....................::---===+++++++++*+**++**++*+++=--.........................:::................:-======--....................................................................
.......................*:..................::.::---====++++++********++++++===-::.......:.........:::.....................:--=======-:..................................................................
.....................:.=-.:::.:........:........::----===++++++++++++++++++++++++===-:......::::............................:-========-.................................................................
........................:.::::::-..................::---====+++++++++++++++++++++++++++++===-:..............................:--=========:...............................................................
....................................................:-----=================+++++*********+++++==---:.........................:-==========-..............................................................
........................................::::::::..:::--:::---===============++++++***+++*+++++*++++++===-::...................:--=========-.............................................................
................................:.::::::::.........:::::::::::---====--======++++++++++++++++++*******++++===--::..............:--=========-:...........................................................
.............::.....................................:::---:::::::-----=======+++++++++++++++++++*********++++++===-:............:--=========--..........................................................
....................................................:------===---:::---=======+++++++++++++++++++*************++++++==-:........::--==========-:........................................................
....................................................:----===+++===----:---======++++++++++++++++++++*************+++++++==--:..:::---======+====-:......................................................
.....................................................:---==++++++++++===------======+++++++++++++++++++++++++++++++***++++++===-------===========-:.....................................................
......................................................:--===+++++++****+++==-------====++++++++++++++++++++++++++++++++***++++++=================---:...................................................
..................................-=====-:.............:--====+++++*******+++++===-----==++++++++++++++++++++++++++++++**+*+++++++=================---..................................................
.................................:==+++====-:...........---=====+++++++++++++***+++++=======+++++++++++++++++++=+++++++++**++++++++++=================-:................................................
.........................................:=+++++++++++++++++++++++++=========================================-:--::::.:..:...:::::::::.......-----------------------------------------------------------
.........................................:=++++++++++++++++++++++=+=======================================-::::::::::::::::::::::::::::.....:-----------------------------------------------------------
.........................................:=++++++++++++++++++++++++======================================::::::::::::::::::::..::::::........:----------------------------------------------------------
.........................................:=++++++++++++++++++++++++====================================-::::.::::::::::::::...::...::...........--------------------------------------------------------
.........................................:++++++++++++++++++++++++================================---:===-::.............:::.::....::::..........-------------------------------------------------------
.........................................:++++++++++++++++++++++++==========================-:::::::::::::::::............:::::.:::::::::..:......------------------------------------------------------
.........................................-+++++++++++++++++++++++========================-:::::::-::...-.::::.:..........::::::::::::::::..::.....:-----------------------------------------------------
.........................................=+++++++++++++++++++=+++======================-::::::......:.:.::.:....::.....:.:::::::........::.:.......-----------------------------------------------------
........................................:+++++++++++++++++++++=======================-::-:..............:.::::..:::....:.:::::::.........:...:.....:----------------------------------------------------
........................................=++++++++++++++++++++=====================--:::::..................::.....:::::....:::::..........:.........----------------------------------------------------
.......................................:+++++++++++++++++++++===================-:::::::....................:.......:::.....:::..........::.........:---------------------------------------------------
.......................................=+++++++++++++++++++++==================::::..:...................:..........::::.....:::::....::::::.:......:---------------------------------------------------
......................................:++++++++++++++++++=++==================-..........................................:...::::::....::::::.......:---------------------------------------------------
......................................++++++++++++++++++++++==================-:::...........................::...............:::::.....:::::.......----------------------------------------------------
.....................................=+++++++++++++++++++=++==================..........................::::----:::...............:.......::........:---------------------------------------------------
....................................-+++++++++++++++++++++++==============-::::::...............::---------------------::.........::......::.........:--------------------------------------------------
...................................:+++++++++++++++++++++++===========:::::::-:.............::-----------------------------:...............:::::......:-------------------------------------------------
..................................:++++++++++++++++++++++++=========:::::::..............:------------------------------------.............:::::........-------------------------------------::::::::---
..................................=++++++++++++++++++++==++=====-:::...................:----------------------------------------:..........:::::.........:----------------------------:::::::------::::-
.................................=+++++++++++++++++++++=+===-:::::::::...............---------------------------------------------........................:--------------------------::::::-------------
................................-+++++++++++++++++++++=-::::::::::::::.............:-----------------------------------------------:......................:--------------------------:::----------------
...............................-+++++++++++++++++==-:::::::::::::::..............:---------------------------------------------------......................--------------------------::--------::-------
..............................:++++++++++++++=-:::::::::::::::::................:----------------------------------:::::::------------.........::..........--------------------------------::::::::-----
.............................:+++++++++++=-:::::::::::::::::::::...............:-------------------------------:....:.......:::--------............:......:--------------------------------::::::::::---
.............................=++++++=--::::::::::::::::::::.::................:-----------------------------::=*####***+++==-:...:------..................:-------------------------------::::::::::::--
............................=+++=-:::::::::::::::::::::::::..................::::--------------------------=###############**++=-..:-----..................:------------------------------::::::::::::--
...........................-=::::::::::::::::::::::::::::.:::...............-:::::-----------------------+###################****+=..:---:...........:......------------------------------::::::::::::--
..........................:::::::::::::::::::::::::::::::..................::::::::---------------------###################******+++-.:---..................------------------------------::::::::::::--
.........................-+-:::::::::::::::::::::::::::::.................:::::::::::-----------------=###################******+++++=:---:.................------------------------------::::::::::::--
........................:++=::::::::::::::::::::::::::::.................::::::::::::::--------------=#**###############******+++++++==:--:................--------------------------------::::::::::---
.......................:++++-:::::::::::::::::::::::::::-=:.............:::::::::::::::--------------***###############******++++=+====-:--..............:---------------------------------::::::::-----
......................:+++++=::::::::::::::::::::::::-+=:...............::::::::::::::::-::::-------*****++===++++**********++++=======----.............:-------------------------------------:::-------
......................+++++++-.:::::::::::::::::::-++-.................::::::::::::::::--::::------+***++++======++**+++++++++++=======-:--..............:----------------------------------------------
.....................=++++++==-:::::::::::::::::-+=:...................::::::::::::::::::-::::-----**++=-::::===++***+==-------======---:::...............:---------------------------------------------
....................=++++++====:.::::::::::::::=+:....................:::::::::::::::::::-:::::--:+****+++-:---=+*##*+------====-------:.::.................--------------------------------------------
..................:=+++++++=====::::::::::::::-=:.....................:::::::::::::::::::::::::::-**#####***+****##*+=--::..::---------:.::..................-------------------------------------------
.................:++++++++=====--::::::::::::-=:......................:::::::::::::::::::::::::-=+**#########****#*+=====+=---::---:--:..-:..................-------------------------------------------
................:+++++++++=====--=:.::::::::-=:.......................::::::::::::::::::::::::-:+**###########**##+=-==++**+=---------:.:-...................-------------------------------------------
...............-+++++++++=====-----::::::::-=-........................::::::::::::::::::::::::=++****#######**+++=---=+++****++====--::.::..................:-------------------------------------------
..............=+++++++++=====-------::::::-=-:.......................::::::::::::::::::::::::-+=-+****######*=::-:.:-=+++****+++++=--:..-:.................:--------------------------------------------
............:+++++++++++=====--------::::-+-.........................::::::::::::::::::::::::-***++****#####****+=--.-++++++++++===-:..::...................--------------------------------------------
...........=+++++++++++=====----------:.-=-..........................::::::::::::::::::::::::-**+++*****#####*****+==++++++++====--:...:....................::------------------------------------------
.........-++++++++++++=====------------=-:............................::::::::::::::::::::::::**++++*****+=-------==++++======---:..........................:::-----------------------------------------
.......-++++++++++++++====------------=:..............................::::::::::::::::::::::::-==+++++++*******+=:::-======----::...........................:::::---------------------------------------
....:=+++++++++++==++====-==--:::::-+=:...............................::::::::::::::::::::::::::=++++++++++========-:-===-----::.........:..................::::::--------------------------------------
:-=++++++++++++========--:::::::......................................::::::::::::::::::::::::::-+++++++++++==-:::----------::..............................::::::::------------------------------------
=+++++=+++++===+++=-:::::..............................................:::::::::::::::::::::::::-===++++++*****++===-------::..............................::::::::::-----------------------------------
==========+==-:::::....................................................::::::::::::::::::::::::::-===+++++*****++==------::................................::::::::::::---------------------------------
=========::::::.........................................................::::::::::::::::::::::::::---=============----:::........:........................::::::::::::::--------------------------------
=+--=+=::::..::.........................................................::::::::::::::::::::::::::==::-------::::::::::........::.........................::::::::::::::::------------------------------
=:::::::.................................................................::::::::::::::::::::::::-===-........................:..........................::::::::::::::::::-----------------------------
:....::...................................................................:::::::::::::::::::::::+*====-.....................:.........................::::::::::::::::::::::---------------------------
...........................................................................:::::::::::::::::::::-*##+==+==:...........................................::::::::::::::::::::::::--------------------------
.....................................................:::::.................::::::::::::::::::::=*###*+=====-:.......................................::::::::::::::::::::::::::::------------------------
................................................:-:.::::::-.................::::::::::::::::::=*####**++==---:....................................:::::::::::::::::::::::::::::::-----------------------
...............................................:---:.:::::::.................::::::::::::::::::::::-+***++=-::::................................:::::::::::::::::::::::::::::::::::---------------------
................................................----:.:::::::..................::::::::::::::::::::::::-=++++=-:::.............................:::::::::::::::::::::::::::::::::::::--------------------
..............................................:------:.:::::::....................::::::::::::::::::::::::::-=+-.............................:::::::::::::::::::::::::::::::::::::::::------------------
:..........................................:----------..::::::......................::::::::::::::::::::::......:::....................::::::::::::::::::::::::::::::::::::::::::::::::-----------------
::::...................................:-------------=-..:::::...........................:::::::::::................................:::::::::::::::::::::::::::::::::::::::::::::::::::::---------------
:::::::.............................:-----------------=-..::::.....................................................................:::::::::::::::::::::::::::::::::::::::::::::::::::::::--------------
:::::::::::::...................:---------------------==-..:::.....................................................................:::::::::::::::::::::::::::::::::::::::::::::::::::::::::------------
::::::::::::::::::...........:-===--------------------===-..::....................................................................:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-----------
:::::::::::::::::::::::...:-=======--------------------===-..:.........:........................................................:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::---------
++-+*++*++==+++++*******=-----********+++++=+****+*******+***+++*++***************+**+++*************************++=-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-=++++*******
*++*++++++++++++++*****+:::::-++***+***++++=++++++*******++==+****+************************+****************************++=--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-====++*+
++**+++===++++***+*****=::::::-::---+*++*=+++++++*+::+*****+==++++++********************************************+***************=-:::--:::::::::::::::::::::::::=:::::::--::::::::-:::::::::::::--::::::
=**++++===-----=++*****:::::-***++=***+*+==++++++**:-*+++++===+++++**++*+**************************************************************+=-:::-:::::::::::::::::::::::::::.:::::::::::::::::::::-::::::::
+++*++==-------=-=====-:::::+***++***+++===++--+******++++++=++**+=--=+++**+++*++**************************++++++*****************************-----:-:::::::::::::::::::::::::::::::::::::::::::::::::::
+++++++---------=====-:::::::+*******+++-+++*+#+:#=++==+*+==+*+++++***++++++++**++*+++***********++*******++++***+++**************************-+*=-:-::::----:::::::::::::::::.::::::::::::-::::::::::::
+++++++====---=======::::::::++***++++++=+++++**####**++++:++++:+++*+=+++++++++++*+++***++++*****+*++****+--=+*****+*******************************+==::::::::--::--::::::::::::::.:::::-:::::::::::::::
----=++++++++++----=-:::::::-:-+++++++*=-=*+****#+**++++-**=+++**=*=---+++++*++===++++++*++++++++++++++*+++++++++++**************************************+==-::::::------:::::::::::::::::::::::::-:::::
++++++++++++++=::::::.::::::-::-:-+*+*+*++++**+**.+*+++===-+++++**#*+++++++++++*#=++++++++++++++++++++*++===****+++*******************************************#**+-:-----:::::---::--:::::::::::=+::::::
++++++++++++++++=::::.:.:.:::::=-+++++++**+-*+****+***+++++++++*+*:++++++++=+*+**==+++++++++++++++*++++++*+*+++*+************************************************+:-:----:::::---:::----::::::::::::::::
==+++*+++++++++*-::::::::-::.::+++++++++***+++*******+*+==*****+**+=++++++**=:=#*+**+++++++++++++++++++++=--==+*++***+*************++**********************++****---------:::--:-----:--:-:------:::::::
:-:::::-=+*****=::-::-:::::::::++===+++===+++*****+++*+=:=+**+=******++++++++*##*+=+*++++++++++++++++++==++==*++*+:-++***++*************************************+=--:---::::-::-::-------::---------:--:
:::::::::::--:-----::-::::::::-::=+++=+==+====+++++++*+--::++*+********+***+++*++++++++++++++++++++++++++--=++++++**++++++*******+******************+*************--:::-::-::--:-::------+**++=-----:++=
---::--:-::::::::::--::::::::=*****+++++++===++===+++++*****+********+**+**=+*#=:++++++++++++++*+++++++==+=+--:=+***+*+++++***++**+*+++++++*+++***++******+**++++**+=-:::--:::----------=**********+=---
::::::::::::::::::--:::::::::++++***+****++++*++++++++++*****+****++*#*+***=+***+-++++++++++++*++++++++=-=+++=*##+---+++++++++***++++++++++++++**++++++*=++**++*****+::::-:::--:----:--+*+*******+*+++**
::::::::::::::::::::::::::::-***********++*+******+++++++**+=+*****+==********+**+++++++=+++++*++++++++===-+++++#**++-++++++++++++++++++++++++++++++++++=+++*****+**=::::::::::-:::--+++*+*++++*******++
........:::::::::::::::::::-::::--++++++*****+**********++++++*++++*#*+*+*++*****++++++++++++++++++++:-*+=-+++**+=++=++++++++++++++++++++++++++++++++++++++++****+*+-:::::::::--::::-++***+*******++****
...::---::::::::::::::::::::::::::::::::-+**********************+++*+**+++++*******+*+*++++***++++++++++**+++=**+++=+-++++++++++++++++++++++++++++++++++++++++++***=:::::::::-::::::+++*++**************
=-:::.:::::::::::::::::::::::::::::::::::::-::-+**************+*****+**+++++*++++++**++**+***++++++++:--++++++++++++=:++++++++++++++++++++++++++++++++-+++++++***++::::-::-:---::::-***++***************
+++::::::::::..:..:::::::.:::::::::::::::::::::=******+************+*********++++++++++==*****+++++++*+++==+++++++++=:+++++++**++++++++++++++++++++++==*+**++*****+:::::::::---::::=++++****+=++++++++**
++**=:::::::::-::::::.....::::::.-*:::::::-::::-*************+***************++*+++++*++**++*++++**+=--*++++++++++++==++++++*****+++**++++**+++=-+++++==+*****+*+*-::::::::-::::::-++++*+*++++++++++++++
:++***=::::::-:::::::::::.:....:::-:::::::::::::::=*****************+**********+++++**+++*+*++++++++++*++***+++++++++++++++++++++++++-+=+++++++++++++++*+*#**+*+*+::::::::--::::::=+++-++++:+===++++*+++
..=++*+:::::::::::::-=**=::-::::-*-..:::::::::::::::::-=+************************+++++++*+**+++++++++*++*+++++*++*+++++++++++*+++++=*+++++****+++++++++*+++++****-::::::::-::::::-++*+++++=+=+++*++++*++
-.:++*-:::::::::::-*******+**=+*=::+:-...:..::::::::::::::::::-+*#*************++++==++**+*+++*+++*++++++*++*+++++++++****+++*+++++=+*+++=++++*++++=.-+***+++*+*+:::::::::-::-:::=+*=+*++++++++++++++*++
-.:+*+::::-::::::+*****+********+*++***=++=-::..:.::::::::::::::::::-=+****+++***##*+++++*******++++++++++++++*+*+++++++++++++****+++++++++**++++++**+**********-::::::::-:::::::++*=*++++++++++++++++**
-::=+-:::::::::-*********************++==+++****+=--::::::::::::::...=-:-*#*++++++*++++****+*++*+++++++++++*+++****++++++++++++++++*++***++*+++++++++++*++*****+:::::::::-::::::=++*+*+++++*++*+++++++*+
:..+++=-::++*--+=.:+****************+=++***+=+***++****+=-:..::...-*##+...::::::::-=++*******+**++++**++++*++**++*++*+**+*+++++++++++****+++***+++++++**+******-::::::::-:::::::++*+++++++++++++++++*+++
-.:+*=:==++=====:...-+************+=+********+=+************+++##=:.:*--==-:::::::::::::-==+******++++*******+**+++*******+******++***+*+*+++=-=+*+++++++++***+:::::::::-::::::=***+*+++=++++++++++*+*+*
-.:++-::::::=+=..:-:::-+*********++**********+*+=******++++##+=++****=-::::::::::::::::::::--::-=++**++****************++****+**********************++++++++++-:-:::::::-:-::::++*+*++=+=+*++++**+**+*+*
-::+=::::::-+=..-=--=:.:=******+=***************+==+**+=*#=+++++++++++*****+=-:::::::::::::::::------::-=******+**********+**+*****************************+++::::-::::::----:-++++++===++*+************
-.:+-::::::==..------=-:.:=**+=*****************+++==++#=::::::::::::::::-=++*****+=--:::::::::-:-:::::----::-==+**************************++****************=::::-:::::::::==++====+==++*++************
:.-=::::::-+:.---===-----::-=+********************++=-#:::--=====-=-===--:::::::-=++*****+=-::::::::::-:::::::----:::=+********************#:=*************++::::::::::--::-++++++++++++**+*+***********
::=-::::::=-..---====-=----::-+*****************++++-*-:----===-----=-------==--:::::::-=++*****+=-::::::::---:-:-:----------=+************##:-***********++=::::-:::::--::+***+++++*++++**+************
.-+::::::-+:.---==-----=-----::-******************+++*.:------:---------=======-====---:::::::-=++****++=-:::::::::-------------::--==******##+=****=-=+++++-:::-:::::::-:-**********++++***************
.=-::::::==..--==--------------::=*****************++*.-==--=-------------=----=-=====-=------::::::--=+++****+=-:::::::::----:-:::::..:::-+*##=:+--::::::::::::::::::::-:=*****************************
:=:::::::+:.:-==-=--------------:::=**************+=*=.:=---==-----------------------------===--==--:::::--+**+=+++=+=--::::::::::::==.....-=+##*::::::::::::::::::::::::-+*********************++******
=-::::::-=..---==-----:-----------:::+*************+*+:.:=--------------------:::----------------------=--::::=++***###*+=+++=-:::::-:::+++==-++++......::::::::::::::::::-=++*********************+++++
+:::::::+-::------:::::-------------::-************+**=:.:=--=--------------::::::::::---------------===---=-::::-+*+++=+##+++*****+##:.:--=+*#######*=-:::::-=::.::.::::::::::-*************+**********
=::::::-+..-----=-----:::::::---------::-**********++#=+:::--==------------:::::::::--::::::-------------==---=--:::-++*+++#++**++=+++****+==###*-:::::::::::::::::::::::::::::+**********************++
-::::::++.:----=-------===-----::::----:::=*********+#==+=::--=-------------:----:::-::::::::--------:-------=---==--::=++++#+++*******++++=*##***=--::::::::--::::::::...::::::=****************++****+
::::::-++.------=----:--:::---==-------:-:::=*******=#=+**=::--------------:::--:::::::-::::-------:::---------===----:::=++#=+***********+##=++++++****+==::-::::::::::......:::::-=+***********==+***+
:::::::=+:--==-------:-------:-------:::::::::+****++*#+***=:::-----------:--:---:::::.:::::::::---:-:----------===---=--::-#++***********#***********++=++--:::+=-::::::.:::::::::::+=:::--=+**====****
:::::::+=----------------------:::::-::----:::::+++**+#*+****-::--------------:::-:::::-::::::::-:::::-----:----====--=-==-.*++****************************+++==******+=-:::...::::::-::::::::::--==+***
.:::::::-=-----------------==------:---:-------::-****+#*+*****:::-------------:------::::-:::-::--:---:---------====-====--#:++**************************++*+*++************+=-::::::::::::::::::--::::
:-=+=-::=+--------------===--===-----------------::-***+**+*****+:::-----------::-:::::::-:-:::-----------------===-:-==---#=:++************************+*+*+***++*******+***++++++++=--::::::::::::::::
::::.::-+++=------------------=-=------------==----::=**++#++*****+:::-----:----------:::-:::-::-:::--:::-:---====-====---#-:=+**************************++***++*++++++++++++++++++++++***++=--:::::::::
--:...:=++++=----------------=====-----------=-==----::+**+##++*****=:::::::----------------::-----------------==--::::.-#-=++++++********************************+=-::---:-----:::-::::--=++****++=::::
...:.:-=++++++=----------------=-=--------------------:::+*++#*+++****=:::----::---------------------------::::::-:--=*#+=++**********++++**********************++----===========--===---::::::--=++****
........:.::-==++----------------------:-------------=--::-++++*##+++**+-::---------:::--------------::::.:::-==+==+#*++*******++++++++++++****++**************++::-==-======---======-:-----------:::--
..........:::::::::-====---=-=---==-------:---------------::-***+=+##*+=++:::---:----::----::--::....::-++++==+###+++*****++++++++++++++==+++****++++++++*****++::-======--==----=-------:--:-----=---::
.............:.::::::::::::-=========-=---------------------::-++***++++*#**==:-:::::::::......::-======**###*++++++*+++++++++++++=-:::::::-+++***+++++++++++++=::-==-==----==========------------======
..............:..:.::::::::::::::--====----------------------:..-*******+++++--:=++*******###########**+++++++++++++**++++++=-:::::::-==---::=+++***++++++++++++::-=---=-------------------------------=
....:::.............::::::::::::::::::::-====------------------:..=*+*+********=:.:-=+++++++++********+++++++++++++==+=-:.:::::--=----:::---:::=++****++++++++++=::-===--:-:--------:--::---------------
...........::..............:::::.::::::::::::::--===--------:----:.:+***********++++++*********++++++++++++++++=-::::::::--:::--------::::----:::=+*****++++++++=:::-----:-----:::-:--:-:-:-------:-----
:::...............:--:.............::::::::.::::::.:::-===--------..=++++****************++++++++++++++++=-:::.:.::--::------::::-------------=-::-+*****++++**=++=::---------:::----::::::::--:::--:---
:::..:::::::............:-=:............::.::::::.::::::::.::--:::++++++*****++++****++++++++++++++=-::::..::--:::::::-:::::---:::::------------=-.:-+*+***++++++++=:.----=------::-::::::.:::::::::::--
:::::::::::::::::................::.....................::.::::...::===+*+=++*+**+++**+++++==-::::::::-----:-------:::::::------::-----:::::::::---:::=+***+++++++++=::------------:::::::::::::::::::::
:-==--:::::::::::::::..:..............:--:............................:...:-=+**+*+++**+++::::::-----:::::::-----:----::::::-----------------:------::::=++****+++++++:::--------:--::::::::::::::--::.:
----=---===--:..::::::::::::::...:..............:........................:.::...::=+***+**++=::::-------:-------::--------:------------------::--------:--+******++++++-::----------::::::::::::::::::::
::::::::------====--:::::::::.::::::::::............::::......................:::......:-=+*=-+-:::------------------------------------------:--:-:----=-::-+*****+++++++-::---------:::::::::::::::::::
..:::::::::-----------===--::::::::::::::::::...............................................:::-=+------------------:-------------------:---------:::::--=-::-+*****++++++=:::--------::::::::::::::::::
.......::::::::::::::---------==--:.::::::::::::::................:::...........................::::::-===--------------------------------------::--:------=-::=******++++++=:::--:::---::::::::::::::::
.:.....:.:::::::::::::::-----------==----::::::::::::::..::......................................:::::::::::--===---------------:--------------:--------------:::=******++++++=:::=----::---::::::::::::
......:::::::::::::--:::---::-::::::-------==-:::::::::.::::.::................::::...................::::::::::::::-===--------------------------:::::---::----:::++*****++++++-::----------===--::::::
========================================================================================================================================================================================================
========================================:::::--:::::-=::-=====-::====-:-====--=====:::::-=====::::::=:-===-:-:::::::=::::::=-::====:-==-::::-==-:===-::::===-:-====:-===================================
========================================:-====-:======:::=====:::====:-.====:-=====.-=========:-=====-.-==.-====.-===::=====-::-===::=-.====.-=::==:-===-.==-::-===:-===================================
========================================:-====-:======:-:-===-:-:===-:=::===:-=====.-=========:-======-.=:-=====.-===::=====-:=:-==::==:-======::=-.=====:-=-:-.===:-===================================
========================================:::::=-.::::==:--:===:--:===:-=-.-==:-=====.::::-=====:::::-===-.-======.-===:.::::=-:=-.-=::===-.:-===::=-.=====:-=-:=-:==:-===================================
========================================:-====-:======:-=:-=-:=-:==-:===-:==:-=====.-=========:-======-.-.-=====.-===::=====-:==-.=::======::==::=-.=====:-=-:==-:=:-===================================
========================================:-====-:======:-=-.=:-=-:==:-----.-=:-=====.-=========:-======:-=-.-====.-===::=====-:===::::=-:====:-=::==:-====:-=-:===:::-===================================
========================================:-====-.-----=:-==-.:==-:=-:=====::=::----=.-----=====:-----=:-===-.-===.-===::----=-.====:.:==::--::==::==-:---:-==-:====:.-===================================
========================================================================================================================================================================================================
========================================================================================================================================================================================================
========================================================================================================================================================================================================
========================================================================================================================================================================================================
========================================================================================================================================================================================================
==============================================================::--:--------------------:-----::::---:---::--------------------------------:=============================================================
==============================================================--:=====================-:--=========--==========--:-====================----=============================================================
==============================================================-=---===============---==-===========--===========--==---==============--=-=-=============================================================
==============================================================-==-=--==========---=====-===========--===========--=====---==========-==-==-=============================================================
==============================================================-==--==:-======--========-===========--===========--========--======--==-===-=============================================================
==============================================================-===--===--==--==========-============-===========--==========---=--===-====-=============================================================
==============================================================:====--====:-============-============-===========--============-:====--====-=============================================================
==============================================================-=====--=--=--===========-============-===========--===========:==--=--=====-=============================================================
==============================================================-======---====--=========-============-===========--=========--=====:-======-=============================================================
==============================================================-======--=======--=======-============-====================--======----=====-=============================================================
==============================================================-====--==:========-======-============-==================--========-==--====-=============================================================
==============================================================-====-====-========--====-============-===========--====-=========-====--===-=============================================================
==============================================================-===-======-=========--==-============-===========--==--=========-======--==-=============================================================
==============================================================-==-=======--==========---============-===========----==========--=======-==-=============================================================
==============================================================--::---------------------:------------:-----:-----::-----------:----------:--=============================================================
==============================================================-=-==========--==========---==========-=========--=-==========--==========---=============================================================
==============================================================---===========--=========-==--========-========:-==-=========--============--=============================================================
==============================================================--=============--========--===--======-======--====-========--=============-:=============================================================
==============================================================---------------=-------=------==----::::::--:===----=====-=--===-==-====-===:=============================================================
==============================================================--===============:=======----::-:--:=-:--:----:::-=-=======-================-=============================================================
==============================================================--================:-------::--:-::-::-:-::-:--:-::-:-------=================-=============================================================
==============================================================-----------=---::---=----:-:----::-:--:--:-:--:--:-:=--------::-------------:=============================================================
==============================================================--====--::::-:--:-::-:--:--:----::-:----::-:--:--:----:--:-:--:--:-:::--====-=============================================================
==============================================================-::::::::::::::::::::::-:::::::-::::--::::::--:-:::::-:::::::::::::::-:::::-:=============================================================
==============================================================--:-------::-------------:-----------------:--------:------------::---------:-============================================================
==============================================================----:--:--------------------:------:::.:::------::----:--------------:---:--:-============================================================
==============================================================-:---::----------------:----=::----:......---=:------:---------------=-:---:--============================================================
==============================================================--:=:--:---------------=----:------:......-----=:--------------------:--------============================================================
==============================================================---------:------------=--:--=--=---:......=-------::---------=-------=----:---============================================================
==============================================================--:------=----=-----------:-=------:......-:=------:--------------------------============================================================
==============================================================-:--:-=----=--=--=----=:---:=----=-:......----------=:----=--=-=:-=-==---:=---============================================================
==============================================================-:-------=----:------:------:--=---:......-------:-----:-----=:---=----=--=-:-============================================================
==============================================================----------------:------------------:......------:--------:--------------------============================================================
==============================================================-------:-----:----:-------:--:-----:::::..-----:-----------:=---------:-------============================================================
==============================================================--------:-------:---:--------------:----------:----:-----:-----------:---:----============================================================
==============================================================-:--:::.::--:.:.:---:.:::-:-:.:.:--::::::.---:::::---:::.:=--:::::=-::::::=-:-============================================================
==============================================================-:-=:....=--:....=--....:---....:=::......:--.....=:-.....=--....:---.....=---============================================================
==============================================================---=:....---.....---.....::-....::-:......-:-.....-:-.....=--.....---.....----============================================================
===============================================================--:--=-=:---=--==----==-=:---==--::......-::-====::=====---==--=-=:-=-=--:---============================================================
===============================================================---:--:------=--:----=---:=--=----:......---:==:---==-==---:=-=--=-=:-=-:=---============================================================
===============================================================--=:....--=:....---.....-:-....:--:-=-==---=.....--=.....---.....--=.....=---============================================================
===============================================================---:....---:....---.....-:-....:--:----:----:....-:-.....---.....---.....=---============================================================
==============================================================--:-:....--::....---.....:::....:-::--::=--:-:....::-.....---.....::=.....-:--============================================================
===========================================================-::-:--::::-----:-:--:-::-:--:-:::::::::::::.::-::-::-:=::-::::::::::-:-:::::-::---:=========================================================
========================================================-----:----:---=---::-:--:-------:--:---=:::.....-:---=---:----:--:--:-::-::------:=----::-======================================================
=====================================================-:-=----:---=-----=--:--:---=--=---::::----:-..:.::::---:::::---=---:--------=--=::------:----:-===================================================
===================================================-:----------:-------------:----------::::----:-.::.:.-:----:--:-----------=---:----:---=--=--------:=================================================
================================================-:-=------------=--=--=----:-::-:-------:---=-:=--......---:-=---:=------:-:--:---=---:-----------=-----:-==============================================
==============================================::-:--::-:--:-::-:::::::--:-:-::-:::::-::::-::----:-.....::-----::::--------------------::---=-=---:=--=-----:============================================
==============================================::----::-:------------::-:--::::--:-::-:--:--:----::......::-:-----:----:--:----:--:--:-:----------:----::------==========================================
========================================================================================================================================================================================================
---------------------------------------------------------------------:.....................................................................:::----------------------------------------------------------
---------------------------------------------------------------------------...........................................:::-------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------:::.:::-----=-----------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------:-::::::::::-------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------:..::::::::::::--------------------------------------------------------------::::----------------------------------------
------------------------------------------------------------------------------::...:-:::::.:::--------------------------------------------------------::::::::::--------------------------------------:-
------------------------------------------------------------------------------::...--:::::.:::---------------------------------------------------:::::::::::::::----------------------------------------
------------------------------------------------------------------------------::...---::::.:::--------------------------------------------:-::::::::::::::::::::----------------------------------------
------------------------------------------------------------------------------::...---:::-.::::----------------------------------------::::::::::::::::::::::::::-------------------:----------::-------
------------------------------------------------------------------------------::...---:::-.::::---------------------------------------:::::::::::::::::::::::::::--------:--------------------::::::::-:
------------------------------------------------------------------------------::...---::::..:::--------------------------------------:::::::::::::::::::::::::::::---:::::------------:::----::::::::::-
-----------------------------------------------------------------------------:::...---::::..::::-------------------------------------::::::::::::::::::::::::::::::::::::::-----------:-::-:::::::::::-:
-----------------------------------------------------------------------------:::...:-::::::.::::-------------------------------------::::::::::::::::::::::::::::::::::::::----------::::::::::::::--:-:
-----------------------------------------------------------------------------:::...::::::::.::::--------------------------------------::::::::::::::::::::::::::::::::::::::----------:::::::::::::::::-
-----------------------------------------------------------------------------:::...::::::::.::::--------------------------------------::::::::::::::::::::::::::::::::::---:----------::::.-.::::-::----
-----------------------------------------------------------------------------:::...::::::::.:::::------------------------------------::::::::::::::::::::::::::::::::::::------------:--::::-:---:::----
----------------------------------------------------------------------------::::...::::::::.::::-----------------------------------.:--::::.:::::::::::::::::::::::::::--::--------=--:-:.-:::--:--:----
----------------------------------------------------------------------------::::...::::::::.:::::---------------------------------.:::-::::::::::::::::::::::--:::::::::::---------=----:.--::--:-------
---------------------------------------------------:..::--------------------::::...::::::::.::::---------------------------------:::::--::::::::::::::::::::--::::::::::::--------==-:--::::::--:-------
----------------------------------------------------------------------------::::...::::::::.::::---------------------------------::::::::-:::::-:::-::--::::--:-::::::::----------=-:---:::..--::-:-----
----------------------------------------------------==----------------------::::...::::-:--:::::----------------------------------:::--::-:::::-:::------:::-----:::::::---------------::--.::::--:---:-
----------------------------------------------------===---------------------::::...::::::--:::::-===-------------------------------:-----:::::-----------:--:---::.:.:::--------------::----::.--::::---
---------------------------------------------------=+++=--------------------::::...:::--::-.:::--------------------------------------:--:::--------.--------:-:---:::::-----------:---:-:-:::::::::-----
----------------------------------------------------++++--------------------::::---::--=-::-:::::------------------------------------------------::-::-:----::::--::::::----------:---:::.--:.:::-------
----------------------------------------------------=+++=-------------------:::---:-:-=--:---:--=---=--------=----------------------------------..:.--::---:::-:::.:.::::---:-----:--:::::::::----------
----------------------------------------------------====--------------------:-=---.:-::-----------=======-=-------=--------------------------::::::::::-----::::::..::::::---:----:---::-:.:------------
---------------------------------------------------:----------=--------------=---..------=-------==========-------=------------------------::::.::::::--::--::::::::.::-::::-:-----::--:::--------------
---------------------------------------------------::==:-----------------------::--==------:=-=-:--=========---=-------------------------::::::::::-:-::--::::::::::::-.::::::---:---::::-:-------------
-------------------------------------------------=-..:==:--------=-----------:::...---------------=-----=====--------=-----------------:::---:::.::::::-::.::::::::::::::::::-:::-:-::::--:::.:---------
----------------------------------------------------::--------------------==-::::.:---------=-::---::::-=++=---------=---------------:::::::::..::..::--:::::::-:::::.:.:::::-:-:--:.::::..:..:---------
-----------------------------------------------------=--------=-------------::-------:::::::.::::.......:-==--=---------------------::::::::....::::.::::::..::-:::::::::..:-:::-:::---:.::...::--------
----------------------------------------------------+=--=-------------------=---:----:::::::.-:::::::::-----==----------------------::...:::...:.....:::::..---:-::-:.::.::.:-::::::::-:::....::--------
-------------------------------------------------------------------------===------:-::::.::...........::=----=-----==----------------:....:.........:....:.:.:-:-:-::...:...::::::::::::::::-:.:--------
------------------------------------======------------------------------------:::::::::-:::...:....:::::::--=------=-==-----------:::::......................:::::-::-.....:.:::.::::.::-:::::----------
-----------------------------------------=====------------------------------:::::::::---:::.:.::::::-::::-----==-----==---------:.::-::::..::....::.........:-:::::::::......::::::.::::::--------------
---------------------------------------------------------------------------=-::-------::::::::.:::::--=:-----=------------------.:.::--::::::::::--::......:-:-::::::..:......::::..::.:::--------------
---------------------------------------------------------------------------=--==-:----::--:::.-:::::-----------=----------------::::-:---:-:::------::....:-:::::.::..........::::.:::::----------------
-----------------------------------:--------------------------------------=--::::..------::::---::::-----------------------------::------:::---------:::.:--:::.:............::..::..:------------------
-----------------------------------::---------------------------------------::-=-:---=-:-::-+==--+++----=-------==----------------:-::::-:---:-------:::---::-:..:............::..::--------------------
----------------------------------::::-------------------------------------:-=-==-..:----::-:----------=-----------------------------::-----:---:------:::.:----:::..............:----------------------
----------------------------------::::---------------------------------------=---...-:::=-==-=-::-==-----------====------------------------:::-:::-:----:.:-----:..:.:........:..::---------------------
----------------------------------::::-------------------------------------:::::::-=::-::--:.:--:--------=----==--------------------------:::::::::-----::--:::-::....:::...:::::::::::-----------------
----------------------------------::::-------------------------------------:::::.:-==-:----.::-==----------------------------------------.:::::::::--------:::::-::..:...:::::::::::::::----------------
----------------------------------:::--------------------------------------:::::...--::::-=:.-::::-----=-===-----------------------------::::::::::::::---:--::::-:::.::::::::::::::::::----------------
---------------------------------------------------------------------------:::::....:::::-----:::::---------------------------------------::::::::::::::----::::::::..::::::::::::::::::----------------
--------------------------------------------------------------------------::::::.....::::---=----------------------------------------------:::::::::-------:::::::::.:::::::::::::::::::----------------
--------------------------------------------------------------------------::::::.-=========------==========------------------------------------------------..:::::::::.::::::::::::::::-----------------
--------------------------------------------------------------------------:::::::================----=----------------------------------------------------:..::::::::::::::::::::::---------------------
-------------------------------------------------------------------------:::::::.=================--==----------------------------------------------------:::::::::::.::..:::.::------------------------
-------------------------------------------------------------------------:::::::.=====================-----------------------------------------------------:...:::::::.:.::::---------------------------
-------------------------------------------------------------------------:::::::.=====================------------------------------------------------------:...:......:::------------------------------
------------------------------------------------------------------------::::::::.=====================--------------------------------------------------------:.....:::---------------------------------
---------------------------------:-------------------------------------::::::::..======================-------------------------------------------------------------------------------------------------
---------------------------------:------------------------------------::::::::...======================-------------------------------------------------------------------------------------------------
---------------------------------------------------------------------:::::::::...======================-------------------------------------------------------------------------------------------------
----------------------------------------------------------------------::::::::.::======================-------------------------------------------------------------------------------------------------
------------------------------------------------------------------------:--------======================-------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------======================--------=====------------------------------------------:::::-------------------------------------
-------------------------------:::-----------------------------------------------======================--------=============--------------------------------------------:-------------------------------
------------------------------::::------------------------------------------===========================--------===========--===-------------------------------------------------------------------------
-----------------------------::::::---------------------------------===================================--------===============--------------------------------------------------------------------------
---------------------------::::::::---------==-------------------------=--=============================-----------------=========-------------====================================-====-------=====-----
--------------------------:::::::::--------------===========================---========================----------------------========================================================---------=---------
-------------------------::::::::::::::------------====================================================--------====================================================------===========--------------------
..+#############*##**++++++..:#+-###--##*-##*-:--**#***+++++****--...:*########*++-*#*+=-=*:.:-+#####=.....:=.:###*###################*::-++...::::::::::::::::::::::::::+#-=###########+::+-###+++*####
..:########**+++++*####**####..:###--####=-*###*=+*=-==*****###=.*-+**++++++*#*+-...--==+-:::=###########=:....:+#=####################::::=+=..:::::::::::::::::::::::::*#*+*###***++=.-=:-:===++######
..:#####++++*################+:.-#-=#######*-################++.*++=-##+-..:=*+===++++**##=:+################=......+#################*-......::::::::::++-::::::::::::::::-=++++**##+:...:--+##+++*####
....+=..-*######*+#########:=*##:.:########**+#########**++*+=:..::-++#####*-::+######-*#*-=+++********#######+..+:.....=########*++*###.........::..:::++-:::::::::::-=+++****--:=+*###:..=####++++####
.....-#####-=##-:-:*#######+:.-*-=###########*-#*+--::::-=+######:=#=-+*+=::-*##########*-*:#*******#**********+..+**=:....:=++*#######*............=::...:::::::-=+++--=###*+-=*=-:=#*-=-..+###*+++*##+
.....+#########---:*###*..+#+##=:*###-*#+-:...--##################==:-*+-:+#-##############:*#**=::=#########*++-..:++#**=:.....=######...............:...::=++++-::::*=..-*+######*.:-+##=..####++++=.*
...=##########-:-:*#+.=----*=+=....-:+=######+##=##############=-*##=-::++=:=**#*********++:==:-=+=-##***+++===+**:..=+++=-=**-.....-=:.................=++=-:::::::*####+:-#####*-+::---##..*###++:.+++
*#########+::-:*=-##-..--..:-*=:*##=##*##########=########*+=+###=#*====--=====--========-::-===+*#*+-+########****+.....:-=**--=.......=*#*++-:=+-........:::::::*########+-+*==*##**:--*#=.=##*::+++++
###########=-:+#:=*:-#####-:=#####=####+######**++:+*#*--*#######*-###-:=+########*=*##**-::-+=+==*=:=+:-=#*=*########=:.......-*==++=....-++=+#*:.............*####**#*+--**:-###+*#*:--*##..#.-*++++++
#########==#:+#+::-*########=####=##==+-*########+--*##########+=###+:-*###########+:::::=#=###*+--*##*=+:+:+#########=...=*#########*++=-......:+*=............=*+**###*#==##*-=####*::*###-.-####*++*#
###########-+##--*##########=###=*=####+*###*+=+###+#########+=##*=-=**==*######*-:-++==:::-*#*--**+*####=....:+#################*++*=-*#####*-.....-+...........#######+*#***##=-*##---##=.=.:#########
##########*:#=::+###########=##=#+######-:-#########*######=+##+-==*##*==#####+::+##*-###-::=-:-*######*........-############*++*##*:*########****-.............=####=.-.....:=....=#--*=.###..*########
##########+-:=+-####-:######=#+##+**==+#=*###########+###-=#*====-+#####-**+-:-*###=*#####*::-###*++###-.........*######**+*+=###*-+####***##########*=........+=-::*#######+....:......*###-=.+########
##########--*#-+###*+++++**#+++*+-+=####+#############+-+####====*######*-:-**+*#*=###**+#-:-::*#####+=-..........+#**+**#++####+-##***-*#**##############=.....::+###*###*........:.....-##....########
########=::*#*:*#####*=++###=.+##+-#####*############:*+####*==-+########-::.###+=+#+*###=:+#=::*#######.::.....:++*####=*#####-=#+################++#+######*:......+###=...........:-....#*...=#######
**####*:=*:##=-#######*:=-=***###########+########+-*###+###+===##########=:+##==*=**+**-=-*##*::=#####-....-=+=:.-###++#####*-+*############....:####+####-=+####+:....................:..:#-...#######
##*##--##*-##:+#######=-++###+###########+######=:+######+##*==############-:+-+=*###=:-===#####-:-###=-=++=:...-=*=++######=+##############+.....=##+**+:=*#+########+:..................:.*#...+=--+##
###=:*###+-#+:######:=+#*:-##=###########=####-:+#########+#*==############=::::+::==++:+*##++-*#=::-++=:=#####=###*--####=:#######+######*+#:.....=##=+=*###*-#########=..................:*#-..:=--*##
#*:=##*##==#-+####*:-*####=:+=*##########*+*-:*############*+==###########*+-----:::::=#*####*--=++=-:+#######+-*#####+==-=##########*++*######....=-*#######*-*==-=+###+...................=*#=..--=*+=
=:*####**==*:####*.=#######*::=##########*:-*###############-=-*#########=:+-::::::::*##+###*++==--=-::::::###:-=####**=:*#==*####*+##*#########+==##+*######+=#####==+.=:.................==-=+..---+*#
-*#######**=-###*.=##########=:-:-+**-::-=+#################+==*#######+=:*-::::::::-##**++**::---:+:::::::=####=+*+*=:-#+=####--######.+#####*:#*--*########+*+####+.*+-+....................+*=.:-+###
#*=######==+*###-+############*=-:::::-+*#+##################==-::-=+**=####++#*+==**+*+#####+--+::-#*:**=:::::::::-:::===+:=-=+*-.-+##=####===-+###########*+#+##=.*###.-+:............:#*-.....----+##
###++####=::#**################*##########**#################*-=+####+##########*++*###+####*-*##############**=-:::+++*+-+=*-+=-:.....-+-..:+########+:-###++#*:.####-.+:::.........:+#######*..:.-.::.
.####-###=:+###*+::-+*#########*###########+##################+=-+#=+#######*+*#*+*####*###+-*###############+**=#####*=#+####+.####*:....=-*#:*#:#-*-:*####++:-++-::.::::-*#:...:##*=#########=-#+-....
.=####+=#=:*##*::=+-:::::--+*##+###########=###########==*#####==*=####**+****+*######*###+=###############**###::+##=*+#####:##+=##+-*#:...+*=-.*##.+##**=-..::::::::-=+*###*+###*=**=#######*=.#==-::.
#.####*#=--:+#*::::-+=:::::::::::-+*#######+############*######*-+##*++++*#**#########*##==##############**#####-:+=*+*###+=+####*::#####=#:..*##+-:-:-=+=.=*###=+*##################=*=#####*+#=+==*:::
#+.######=:=:*##=:::-==*=:::::::::::::::-=*+*#################*-=++*####*+############+#==#############**#######=*-*+##=*######-:###+-####=*=...+-+#*-=-.*#**##+::=###################*-=##**+*##.==##=+
##=:#####=*-:-#######**=-=+=-:::::::::::::::.::-=+*##########=+#*-*##***##############+==############**#########=++#*=######+:+####*+=----*##---..*##.:*#*===+=-:=######################+=**+*###+-+*+=:
###.-####=###############*+**+*+====--::::::.:::::::::-=**#*-####=++*################**#############+##########=+*#=#####*--*+===*######+=*==*###=..:=+##*--::-==:#**########*######***##++-+##**+++=..:
####.+###=#################*++**++##***++***+++++*****-:::::::-*++=##################+###########*+###########-+*++##*=-:+############+:########*.......*#+*+#**+++++*******#**+****+++++++++++*---::::.
####*.###+######*########+*#####*+*++*####**+---=****+::::::-=-:::=--=+*#############+#########**###########*:===-**+==*#########*+=====+++***=.+####..:*+++**+=##+####******###########**#=*#+----.::::
#####*.##+##############**#######=####**#####=####*=-::::-==::::::--::::::::-+*######+######**########*+=-=+=###.=+-+#####=+--=*############=.*####*++=...#+:::==-:-=*#################=####==-::--:.:::
######+.*+#############+*+*######=#######+####=#######-+**+=:.:::::=-::::::::::::::-=+###*+###*+==+*######=*##.=+-####+:+#################-.##*+*#####*-*...*+**###*###*+=--+#####*##*.###*=-:::::.:..:.
***+++:..+**********#+*##########=*#######++*#**####**######+###*+=-=:::::::::::::::-::::--:=*###########-+*-:-+##+=+###################-:++*#######**+=-*#-..=*###=.........**=-------:--:-::::::.::..:
########=.#########*+#****+++++++++****###:=##++#**=*######=########=*##+=--:::::-:::::::::::::::-=*###==++:..##:*####################+**#+-##**+**##-::=##+#=...+...........-:--=+=#+::-=::::::....-..:
##:######..#######**#############*=..-#...**+++*++++++++**+*########+=##*===+***=-:::::::::::::::::=:::::--+.+-*##################*+:+#**+**#######-::+==##+####-........-......##*=*######+::.::..:::::
#########=.:######################=*..:=-.:+:.:**=+**##+=#####**+==+++++***********#+*+=--:::::::::::.:::::..::--+*#########**#*++=+**##*++=-::::::::+**:##+##=+.....:..........=##**..............:::..
**########-..###################*++=....***-:.....*#*#**#*+=-=*#####*==######***++++++++++++++++++==-=--..-::::::::::::-+**++++-.-+--:::....*=::::+#*=::..++#....::......................:+#=:---.:::::.
***#########:.#########***+++**#...-##########:*+....+**#**##########*=*#######*###*#######*-:------=.:+++++++++++===--::=+-:..:-***###**#*-:::::=#####*=+=::::-:...............*############::.:.::::::
***#########*..*###**++**###++-..:=*######*+=-+-*##+..=#####**########==#######**##+#####+:.:::::...::=*.-:.::::::::::-+=::..::::::::-=--::::::=######*#+=*--=:.:..............=##+*########*#:...:::.::
**####=.#####*:-+++*###...#+....##+++--+*##+-########+..-######*+#####*-*#########*++++-::::::::..::###::##########+=+:::..::::::::::::::-==-:::::::-++*-:++####:.............####*#########=*.+.::.::::
+###########*+*:..#####-.==...:+**+*######-+##**#######*-.=########==-*==##########+=::::-:-==:..+####+.#########*+*##+.+**=-::::::::::::::::-==-::::::::::-+*##*..........-*##############=#.:=+=--:::.
*########*++***##...=+=-.....#####++####*-**********######*..+######+*#+-+********=::--==-:::.:.######-=######*+*###=.=*###=:=##+-::::::::::::::::--=-:...:::::....=:::-:==--*#####**+--::.-:.**#*=*--##
#######*++*###=-=*+........#######+*###+-************########*..########=-#####+......:::::::+=+#####+.#####+*####=.#=::#*-:*######=::::::::::::::::::-=-.:::....::::::-::.::::.-*#######-##.*####=##+##
######++*######*####*=:+*#########+*##==*******+-:-=****########+..#####*=+##-::::::::::.-*=+=:######.+##*+*####-=#######--##########*--=++--::::::::...-:::-:...:+====-==-::::::.:-=*#=+##-:#####+*:::=
####*++########**#################=+#==#******-::::::***#######-:##=..*##==-.::::::::::+##=++-######+.*+*#####-=##*+-:::::-::::-------=-::=--++=:::....::.....:-==-:=-:-::-::::::::::::-*##.*#####*+:::=
##*#+*##########*###-=######**+*++++++++*****:::::::=****###**#+.:###*...-==-::::::.-###*=*.=#######++######.==++#####-:=#-+#####=:::..:::::-=*###*.+#-....::::::::.:-:-::-:::::::::::::::.-######*++=#:
##*+*############+#==**++***######*:+####***-=+++=+*****##***+##-:-##::::...=-.:.:*#***=*=.######*+*.=*++=:*######*..:::-==+**#######::-=::::-+=-::.....:.-++++==:::::::::::::::::::::::::.-=++****-.*:+
##+*##############+++***+=-::::-=+:-*#####*::::::***+++***#######:::.::::::-:..:######=::#####*+++++.+*+.=----...=++-:=############=:+##*:=###+.....-:.=-+*########-.++--::::::::::::::::.:#########-:**
#++############+++#+######*:=####--+#*+=:......:**####*##*++*=.#+::::::::::.:####*+++=####*+=:::-=*+.:-#######:.....::.....=####=:=######--###*....:=+*::++########=.+#=#*=##+:::::::::::.*#########..#=
*+##########*++#####+######+*##*-=-*#####-::::=****+==-::::-=+=++==-::...:+###*=-...-==++*#+*#####*..:######-....=*+:==:.::*#+:=#########+:*########+####*-:+#*####+.-#=#*+###*+###**+++.###+####*#:#:-:
+#########*+*########..=*#####*-+--*####+::::-+###*########+:::.....:-=++++++++++++++*##++######*::...:.=*=....*#*:::*##*=.::+############:-########+#####+#-:-*###+...:.::...:-+######-=######**#::::::
*#######++*######.+##*....................:::=***########-.::::::::::+########+=-....::+*#####*.##...........*###=:::-+-::-...#############-########+#*..-*###*:::.....::::......:.:##*.#####+*#+.::::::
######*+*###############+###*--#=:+######*--=*##*******+::::::::::-*:###########*++*######*+::-:::.........-#####::::::+####-.:#############-######**##=-=*###=..::::..:::...........::=###+*==+.:::::::
*####++*####=.:##########+#*---::-##################+*##.......:+#++:*****+++*####+-######:-######=.......=::.::--:::+#######=..*############-*####**####+##*.:....::::::::.......::::.::=####*..:::::::
+++*++###*##...=##########-:::::--###############+*######:...=######:############:+####*.+############+###############*+=:....:..=+*##########-*###**####+#-.........:::-::::.:::::::.::::==::..-:::::::
+++++#######=...########+--::--+##############*+####################:###########:####-.+################################**+**#+======---:::--=+-=##+#####*-..........:.:--::::.::.::..:::::::..+*-::::::
+++++#######*...=#######----:::*############+*######################:##########:##*..#################################+-===============#########+-=-:..:-:...........::.::::::::::::.::::::::.:*###***##
++++++#######:..=######------:::#########+*#########################:#########*::.:################################+-==================###########:+####=::..............::.:::::::..::....:.=##########
++++++########:.:####+--------:--#####*+*###########################-*#########:-################################=====================+############-*##++..............::...................:###########
++++++########*..*#+:---------:::+##+*##############################=*######*.=################################*-====================-#############+#++#-...............:....:......:...........:-=+*###
++++++#########*.++-------------::+#################################*=####*.*#################################*=====================+##############+####-................:...:..............=##########*
+++++*###+######=.:-------------::=##################################:##+:*####+.*############################=======================*#############+####=.................:.................+###########
+++++*###########..---------------=##################################==*######################################=======================*#####==-*####*####*..................:................############
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------:----------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------::::::::::---------------------------------::-------------------------------------------------------------------------------------
---------------------------------------------------------------------::------------------------------------------::-------------------------------------------------------------------------------------
--------------------------------------------------------------------::----------------:::--------::--------::----::----:::------------------------------------------------------------------------------
--------------------------------------------------------------------::-----:::::::--:::-::::--:::--:::--:::--:::-::--:::-:::----------------------------------------------------------------------------
--------------------------------------------------------------------::----------::-::-----::-::-----::-::-----::-::-:::-::::----------------------------------------------------------------------------
---------------------------------------------------------------------::--------:::-::-----::-::-----::-::-----::-::-::::--------------------------------------------------------------------------------
----------------------------------------------------------------------:::::-::::----:::-::::--:::--:::--:::--:::-::--:::--:::---------------------------------------------------------------------------
--------------------------------------------------------------------------:::---------:::-------:::-------:::-::--:----::::-----------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------::----::----------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------::::::-----------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------::::-:::::-:::-:-::::::::----------:-:--:::-::-:::::::::-----------------------------------------------------------------------------
----------------------------------------------------------------------------------------:---------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
********************************=**************************-+***+=-:-==**==****-*****=-=++=++=*+=--=+=**=---+=:+===++++=+-*+=-+*=+-*+=+-+**+=-*==++=+==+---++=+=****************************************
********************************=**************************==+*+=+++==**==*+**=--==-=--=-=*+=+=*+=====++-==+=-+-==***=++++++=*+===+*=+=::=+=+=-=+---===+=++-===-=***************************************
********************************=**************************=+=+====+=+===-+==-=--=-+++==+=+*+++=*+=:==-==-=:=-+=*+-=--==-=-::::--====+-++:=-=:=+==+=**+=*+-*++=+=+**************************************
********************************=***********************+-+===-++-+==+-+=+=+==++++=+=====+++*+=+=+=*--++**************===-=========--=-+=++-**:***+=**==*==+-===-+**************************************
*******************************=+*****************+===++****+++=-+====--==**+-+*+--:=++=-=++-=--=--+********************+::=======++=-++-*-+*==+*+=+*==++===+=+-==**************************************
*******************************=+*************+==+**********+-:=+-====+:=+=+=--:-=-===++==++=-===+***********************+=+=+=======+=-+==*+-+=+=+=+++==-==-=-=+==*************************************
*******************************=+**********+=+****************-::+=+==+--+===+=+:++==++++=--==-+***************************==+=+======-=+-++-=-=-++=:++-=+=++=+-+=-+**+==+******************************
*******************************=+******+==+*******************+---+===-+--=+:---=+*+=+===-==-+******************************+=+=+++++++==++=+--+**+-+*+-*+-++=+==:-==+****+=****************************
********************************=****==************************+-=:++:+=-====+====**+=+==++=**********************************+--=+=-==+*=+*+:+=**==**==+=++-==:.-**+====***=***************************
********************************=**=+***************************+++=:=+-=--::-=+===+++--===************************************=**==******++:=+++=--+=-==-=-=-+=-.::::::-+**=***************************
********************************=+=+*****************************-=-====-:---===*==+=-===+*************************************+::::::::::::-+**=::=:=+:==:+=++=--=+***+:+**=***************************
********************************+=********************************=+=-+----+==+-=++==**-+****************************************+=+=**=-=--=+*==::=**+=++=+=+-++---***-:-+=+***************************
*********************************=********************************+--:=.--+**=-====-=-=+*+=***********++-===+*********************=++=++*****=+=--+-=====:+=-===---:=++-==+=+***************************
*********************************+=********************************+==-:=+****=-+==++=*****+++***+=::-=-:+=-+---+*****************=:--:--------=-=+-======-==+--+:-:-=-+==+=****************************
*********************************+=*********************************+.:+=******=.::--+*******+=+--=+:=+=-*++***+---****************+.::.......:.=+.=-=:--++====+:.--=-:*==++****************************
**********************************=+********************************+-=-+++++++=-==-+*******+-==+**-:==::=---=----::-=**************+=++-=++++++=-:==:-=-===:+-=+=--+-.:+==+****************************
**********************************++**********************************+==+****++==+******+=-+--====--===-=*=.=++*****=-=++***********+=--=--------+=--===++-+-+=----:-=++==*****************************
**********************************+=**************************************-=+-==********=.:+****+=-+=:+==--*=-=+=***+:+*+-************+--:---------=.--=-+---+--+=--=.:++-******************************
***********************************=+***************************************++*++*****+:=------:==+=*=:+===-*=:=+=**--**:--=***********+::::::::::::-=-+.-+===-=+--=.::==-+*****************************
***********************************+-***************************************+=**=+***=::=+++++=====+=++:+=+-::+:-===:+*--*--+***********=::.::::::::--+---:-==+:-=:..:---=******************************
************************************=+**************************************+=**++**+==+*****+=++=====++.::-----:-=:-=+:*+:-=***********+--==+========+-+-=--*=-*=.:.---:=******************************
************************************+=***************************************=+**=+*=:=++++++-+-====-=:---------------:++:=::*************===-========:+-=--==-=+-:-:---.=******************************
************************************+=***************************************=+**+=+:-=+***-=+-+==+=-----------------:+=-=:::**************==-=======+=-=-=+--+-----:=::=+******************************
*************************************==***************************************=***=+=+==**-++-*-+=::------------------:-=:..:***************:----------==-+=:+=:=-==.:-+=+******************************
*************************************==***************************************=+*+=*=+*=+:+**+:+--:-----------------------:-=+**************+-===++====--*=.:=-+-=-:--:=:+******************************
*************************************=+***************************************+=+-=--=====****+--:---------------------==-:+=+***************+=*--+*****++.---=-+-:-::.:.=******************************
*************************************=*****************************************+=++=*-+***++****=----------------------==-=*=+****************...::::::::::=+====----....-******************************
*************************************=+***************************************++=+=***=+**==+++==----------------------=:.::=*****************+==+=++++++-=++=-=-:--.....=******************************
*************************************+=************************************+==*-++*****=+==++++=:--------------------:=+-.::*******************=++===*****=+-=-:+*:..-.:::******************************
**************************************=+*******************************==++****-:----------++++=---------------------=::::-=+******************+---:-------:==+-+=:.-:...:******************************
**************************************+=*********========+**********+=+*********==+****=-:::::::..------------------==+:--=**=+*****************===-===++++--*+==-::-:::-=+*****************************
***************************************+=*+==--=***+-:..:=++-=+***+-**************+=++--...........---------------=+--=++******=+****************=+-=-=++++=+*-+.---:.-:+=******************************
****************************************+=+*********+--=---+***-+=+*********************+:........-------------:-===:=-+*********+=**************=+==+******+=-:=+-+..===+******************************
***************************************++*****++===========:.::==*************************=:.......--==-:----=--=-:===**********+++==========+++++*-:==============--.::=*******************************
**************************************+=**++-:=:=========:.-+**=+*************************+++:::::::::::==-:=:=:.==++=-======***********************+=+++++++--==+-+-==*********************************
**************************************+:..:=++=+++---::-++****+-***************************+**+=+*+------:---:-:+***********************************=+*=+***=---:=-+-==*********************************
**************************************+.-+***=+**+==+********=+****************************=+****-+****++*==-+************************************++****=+=-++=++-::-:**********************************
**************************************+=***+=+==+*********+=********************************=+***+=*****+=++************************************+=*******+++:++-===.:=+*********************************
****************************************+=-++*********++=+**********************************+=**+=++++++++************************************+=+***********+-==+:+-=***********************************
******************************************+===========***************************************==+=********************************************=+**************=--==+*************************************
*******************************************=**************************************************==******************************************+=+****************=+==+**************************************
*******************************************+=************************************************+-++=+*************************************+=+*****************+=+==+**************************************
********************************************=+***********************************************=******===+*****************************+=+********************+++==***************************************
********************************************++**********************************************++**********++-=+********************+==+***********************=**=++**************************************
********************************************+-*********************************************+=*****************++===============++**************************++**+==**************************************
*********************************************=+*******************************************+=**************************************************************+=****==**************************************
**********************************************=*******************************************=***************************************************************=+****==+*************************************
**********************************************+=*********************++******************=+**************************************************************+=****+==+*************************************
***********************************************=+******************++==*****************=+**************************************************************+=*****+=+=*************************************
************************************************=+****************++*=*****************=+***************************************************************=+*****+=+=*************************************
*************************************************=+***************=*++****************=+***************************************************************=+******=*+=*************************************
**************************************************=+**************=*+****************+=***+=-+********************************************************+=*******=**=+************************************
***************************************************=**************+=*****************-+*==+***********************************************************=+******+=**=+************************************
****************************************************=+*************+=***************+=+=*************************************************************=+*******+=**++************************************
*****************************************************=+**************==++*********+==+=+************************************************************++********++**+=************************************
******************************************************=+****************+++++++=++***+=************************************************************+=*********++**+-************************************
*******************************************************=+****************************-+***********************************************************+=**********-***+-+***********************************
********************************************************=+**************************++************************************************************=**********=+****-+***********************************
*********************************************************+=*************************=************************************************************=**********+=****++-***********************************
**********************************************************++***********************=+***********************************************************=+**********++**+=**=+**********************************
***********************************************************+=*********************+=**++===+++*************************************************=+***********=*+=+***++**********************************
*************************************************************=**************+=====-===+*******++++++===========*******************************=+***********===******+=**********************************
**************************************************************=+*********+=+*****+=*************+++======+++*=+******************************=+*******++=+***********=+*********************************
***************************************************************++******==********=+*****++===++++**********=+*******************************=+*****==+****************=+********************************
.......................................................::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.::::::::::::::..............................................................
......................................................::::::::::::::::::::::::::::::::::::::::::::---====================---::::::::::::::::............................................................
....................................................::::::::::::::::::::::::::::::::::::::::--========+++++++++++++==============--::::::::::::.........................................................
...................................................::::::::::::::::::::::::::::::::::.:-=====+++++++++++++++++++++++++++++++==+======---:::::::::.......................................................
..................................................::::::::::::::::::::::::::::::::::-====++++++++***********************+++++++++++=======--::::::::....................................................
................................................::::::::::::::::::::::::::::::.:-=====+++++++***********************************++++++++======-:::::::..................................................
...............................................::::::::::::::::::::::::::::::-=====++++++*******************************************++++++++=====-:::::::...............................................
..............................................:::::::::::::::::::::::::::::-=====++++++++**********************************************++++++++=====-::::::.............................................
.............................................::::::::::::::::::::::::::::======++++++**************#*****************#**#**#***************+++++++====-::::::...........................................
............................................::::::::::::::::::::::::::-=====++++++**********#####***#*****#******#**##***#**#******************+++++====--::::::........................................
.........................................:..:::::::::::::::::::::::::-=====+++++++******#****##*****#####***************#**#**********************++++=====::::::::.....................................
.........................................::::::::::::::::::::::::::-=====+++++********#**#****#*****+*****#**#**************************************+++++===-::::::::...................................
.......................................:::::::::::::::::::::::::::-=====+++++++******+*#*****+*******************************************************+++++====-::::::::.................................
......................................::::::::::::::::::::::::::---===+++++++++++*#***+*#**********************************************#***************+++++===--:::::::::..............................
.....................................::::::::::::::::::::::::::---===+++++++++***++#***+**********************###**********************+*##**************++++===---:::::::::............................
....................................::::::::::::::::::::::::::----===+++++++++=*#*********************#***#***#**##**#***#********************************++++====--:::::::::::.........................
...................................::::::::::::::::::::::::::---====+++=+**#*+*==++************#******#***#***#**#***#**##**********************************++++==---::::::::::::.......................
.................................:::::::::::::::::::::::::::-----=======+#*=+#*+++++++++++*****#******##*****++*******###****##***************++*************++++====--:::::::::::::....................
................................:::::::::::::::::::::::::::-------=====+=+#***++++++++++++++**+*###***+***************+*******+**#***##***********************+++++==---::::::::::::::..................
...............................::::::::::::::::::::::::::::------===+*+=+=--=+++++++++++++++++*+=++********************************##***************************++++==---::::::::::::::::...............
..............................:::::::::::::::::::::::::::--------==+*****+==+==+++++*+++==++++++++++++++*****************************+****#**********************++++===--:::::::::::::::::.............
............................::::::::::::::::::::::::::::::--------=--=++*+=====+++****++=++++++++++++++++********************************#************************++++===--:::::::::::::::::::..........
...........................::::::::::::::::::::::::::::::::--------==-:==========-***++#*++=++++++++++++**+++***************************#*************************++++===---::::::::::::::::::::........
..........................:::::::::::::::::::::::::::::::-::-------------========+=-*#*+++====+++++++++++++++++++++********************++***************+**********+++++==--:::::::::::::::::::::::.....
........................:::::::::::::::::::::::::::::::::::---------------==========-=============++++++++++++++++++++***********************#**********************++++==---::::::::::::::::::::::::...
.......................::::::::::::::::::::::::::::::::::::-----------------=**+==**==================+++++++++++++++++*********************************************++++===---:::::::::::::::::::::::::.
......................::::::::::::::::::::::::::::::::::::----=-------------=-:=##+==========-===========++++++++++++++***+*****************+***********************+++++===---:::::::::::::::::::::::::
.....................:::::::::::::::::::::::::::::::::::::---=***+=---------------=============**==========++++++++++++++*+*****************************************++++====---:::::::::::::::::::::::::
...................:::::::::::::::::::::::::::::::::::::::--=++**+=------------------===+======:============++==++++++++++++*********+*****************************++++++===---:::::::::::::::::::::::::
..................::::::::::::::::::::::::::::::::::::::::::=***++-------------------==**++=+=-===================++++++++++++++****+*+*********#***#********+******++++====---:::::::::::::::::::::::::
.................:::::::::::::::::::::::::::::::::::::::::--:--:-=--------------------=***+**=-----================+++=+++++++++++++++++********+*******************++++====----::::::::::::::::::::::::
................::::::::::::::::::::::::::::::::::::::::::-+**+=---------------:---------+**=----------===============++++++++++++++++++++**+*****************++**+++++++===----::::::::::::::::::::::::
..............::::::::::::::::::::::::::::::::::::::::::::::::-++------=*+***=------=****=--=--------------===========++++++++++++++++++++++++************++*******#*+++====----::::::::::::::::::::::::
.............:::::::::::::::::::::::::::::::::::::::::::::=*+++*=-----:-**+=*=------++--=*=----------------=============+++++===+++++++++++++++**++*******++++++++++++++====-----:::::::::::::::::::::::
...........:::::::::::::::::::::::::::::::::::::::::::::::::::--::::::--::-------:--+***+*=----------------==-=====================+++++++++++++*+**=+**+++++++++++++++=====----::::::::::::::::::::::::
..........:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:--==:-::-----:--=------------------=========================++++++++++++++++*+*++++++++******+=====----::::::::::::::::::::::::
........::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-****+---:::-+***+=---:::::--------------===------==============+==+++++++++++++++++++++++***+**+====----:::::::::::::::::::::::::
....:.....::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-+**=-:::-:::::=*=--:::::::::------------------------===============+==++=+++++++=+=+++=+=-++======-----::::::::::::::::::::::::
...:-:::....::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:::::-+**+*+--::::::::::::::--------------------------==================++==========++=======------::::::::::::::::::::::::
..::-:::-::....::::::::::::::::::::::::::::::::::::::::::::::::::::::::++*-:::::::::::::--:::::::::::::::-----:::::-::---------------=============+=======================-------:::::::::::::::::::::::
:-:-:::::::-:....:::::::::::::::::::::::::::::::::::::::::+=-::-:::::::+=++==-:::::::-=+*-::::::::::::::::::-::::::::::----------------=======+=++*+===================---------::::::::::::::::::::::::
:::::::::::::-:.....::::::::::::::::::::::::::::::::::::::=+====-::::::---:::::::::-+*+++-:::::::::::::::::::::::::::---------------------=======**+***+=================------:::::::::::::::::::::::::
.:-:::::==-::::-::....::::::::::::::::::::::::::::::::::::-=-:::::::::::::::::::::::::-----::::::::::::::::::::::::::---------------------=======**+=+*+==================-----:::::::::::::::::::::::::
...:-::::::::::-::-:.....::::::::::::::::::::::::::::::::::::::-:::::::::::::::::::::::::-=-:::::::::::::::::::::::::::----:-::-------------=====-=+*++=======+***=-==---------:::::::::::::::::::::::::
......:-::::::::::::-::....::::::::::::::::::::::::::::::::-=-==+-::::::::::::::::::::=++=-:::::::::::::::::::::::::::::::::::::::-::---------=**+===========+*=-=*+-----------:::::::::::::::::::::::::
........::::::::==:::::-:....:::::::::::::::::::::::::::::::+==-+-::::::::::::::::::::-:=+--=::::::::::::::::::::::::::::::::::::::::::------=*+=***+========-+==**=-----------:::::::::::::::::::::::::
...........:-:::::::::::::-:....:::::::::::::::::::::::::::...::::::::::::::::--:::::::--++=::::::::::::::::::::::::::::::::::::::::::::------=-+++*===---==*=--------------::::::::::::::::::::::::::::
.............::::::::--:::::-:....:::::::::::::::::::::::::::::::==::::::::::-:==:::::::-::::===::::::::::::::::::::::::::::::::::::::::::-:------+=--=--==--+**+=----------::::::::::::::::::::::::::::
...............::-::::::::::::-::....::::::::::::::::::::::::-=-=:=-:::::::+-===+-::::::::-=::-+=:::::::::::::::::::::::::::::::::::::::--:::-----------==++=++-=+=-------::::::::::::::::::::::::::::::
..................:-:::::-+-:::::-:....:::::::::::::::::::::::====-:::::::::+=-::::::::::::+=-=+=:::::::::::::::::::::::::::::::::::::-::--:---:----------:=***====------:::::::::::::::::::::::::::::::
....................::-::::::-::-::-::....::::::::::::::::::::::.::::::::::::::::=+-::::::::-=-::::::::::::::::::::::::::::::::::::::=+*+------:-------=+=-=-:===-------::::::::::::::::::::::::::::::::
.......................::-::-:::::::::-:....::::::::::::::::::::::::::::::::::-=+==+=::::::::::::::::::::::::::::::::::::::::::::--::=*+++=-----------==+*+--=-==-----::::::::::::::::::::::::::::::::::
..........................:-:-:--::::::::-:....:::::::::::::::::::::::::::::::.:::==+=:::::::::::::::::::-+++-::::::::::::::::=+*++--::==++------------+****=-----------::::::::::::::::::::::::::::::::
............................:-:::--::::-:::-:.....:::::::::::::::::::::::::::::::-=-:::-=::::::::::::::::-=-=-::=+:==::=+--+-::-=+++:--:-----------=+=---:-=-------=++=--::::::::::::::::::::::::::::::.
...............................:-:-:-::::::::-::....::::::::::::::::::::::::::::::::::==-:::::::::::::::-=-==:::=+++=:::=+++=:::--=+=-::::-:--::--*+=+*=----------=*=-++=-::::::::::::::::::::::::::::..
.................................:-:::--::::-:::-:.....::::::::::::::::::-=::.::::::-+=:::-=::::::::::::::-=-::-+=-+=:::+=-=+-:::-::::::::::--:-:-++=:=*+--------:----::--:::::::::::::::::::::::::::...
...................................::-:::-:::::-::-::....:::::::::::::-:=--=::::::::::::::==+=-::::::::::::::::::--=-::::----:::::::::::::::-++*=::=*+---------------::::::::::::::::::::::::::::::.....
......................................:::::--::::::::-:.....:::::::::::---:::::::::::::::-==:::::::::::::::::::::::::::::::::::::::::::::::-++-=*=-::---------=-----==::::::::::::::::::::::::::::......
........................................::-:-:-:::::::::::.....:::::::::::::::-=:::::::::::::::::::-=::::::::::::::::::::::::::::::::-=+++-:-+=-=*+-----:---=*+*=:::-=:::::::::::::::::::::::::::.......
...........................................:-:-+--::::-:::::.....:::::::::---=-:::::::::::::-==::::==-:=-::::::::::::::::::::::::::::---=++-:-=+=---:-------+==+++=:::::::::::::::::::::::::::::........
.............................................::::-:-::::::::-::....::::::::-=-::::--::::::::::::::-=-==-::::::::::=-:::====::::::::::::--=+=:::::---:--:-+=-::-===-:::::::::::::::::::::::::::..........
................................................:-:::--::::-:::-:.....:::::::-::::::==:::::::::::::::-=:::::::::::==:::::-==::::::::::::=-:::::::::::-==--+=-::--::::::::::::::::::::::::::::...........
..................................................::-::--::::::::-::....::::::::-:-==:::::::::::::::::::::::::::--==::::--==::::::::::::::::::::::::::=++++++-::::::::::::::::::::::::::::::............
.....................................................:-:::--::::-:::-:.....::::.:---:::::--::::::::::::::::::::::--==-::===-::::::::::::::::::::::=+=-:-+=::--::::::::::::::::::::::::::::..............
*******************************====++====-:::..:--====+++======+++++++++++++++*++*+===--===++++++++++++++++++++++++++++========-=====+=---==------===++++++++++++++++++++*++++++++++++*#################
******************************+====++====-:::..:-====++++=======++++++++++++++++++*++=-===++++++++++++++++++++++++++++++=========-===+=---==------===+++++++++++++++++++++**++++++++++*#################
******************************+====++===--:::.::-====+++++========++++++++++++++++**+=-===++++++++++++++++++++++++++++++========--===+=---==------==++++++++++++++++++++++++++++++++++*****#**********#*
*****************************+==========-::::.:--===++++++==========++++++++++++++**+=====+++++++++++++++++++++++++++++========---====----==------==+++++++++++++++++++++++++++++++++++*****************
****************************+=====+=====-::::.:-===+++++++++========++++++++++++++*+++==++++++++++++++++++++++++++++++++======---=-==----===--::--==+++++++++++++++++++++++++++++++++++************+++++
****************************+===+++====-::::.:--===++++++++++=======++++++++++++++++++++++++++++++++++++++++++++++++++++++=======--==----===-:::-===++++++++++++++++**++*****++++++++++********+++++++++
***************************+===++======-::::::--===+++++++++++=+====+++++++++++++++++++++++++++++++++++++++++++++++++++++++======--==---====--:---==++++++++++++++++*****++***++++++++++++++++++++++++++
**************************+====+======-::::.::-===+++++++++++++++====++++++++++++++++++++++++++++++++++++++++++++++++++++========--=-:--====------==+++++++++++++++****++++++*++++++++++++++++++++++++++
**************************+===========-::::::--==+++++++++++++++++====+++++++++++++++++++++++++++++++++++++++++++++++++++===========-:--===-------==+++++++++++++++************+++++++++++++++++++++++++
*************************+===========--::::::-===++++++++++++++++=+====+++++++++++++++++++++++++++++++++++++++++++++++++++==========---====--------==+++++++++++++************++++++++++++++++++++++++++
************************+============-:::::.:-==+++++++++++++++++=======++++++++++++++++++++++++++++++++++++++++++++++++++==========---===---------==++++++++++++**********+++++++++++++++++++++++++++++
+***********************+===========-:::::..:===++++++++++++++++++========+++++++++++++++++++++++++++++++++++++++++===+==================-------======+++++++++*********++++++++++++++++++++++++++++++++
***********************+============-::::..:-===++++++++++++++++++++=======++++++++++++++++++++++++++++++++++=+++=====+=================-::--=========+++++++++******+++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++==--=+=====-::::..:-====+++++++++++++++++++++======+++++++++++++++++++++++++++=+++++++++++++++==+==============--:::--===========+++++++*+++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++==-::-=====-::....:-====+++++++++++++++++++++++=======++++++++++++++****+++++++++++++++=++++++=+++==========------::.::--==--==++===+++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++=---=======-:...:-=====++++++++++++++++++++++++++++====+++++++++*****************++++++++++++++================----:...:--============+++++++++++++++++++++++++++++++++++++++++++
**********************+--========-::..:-=====++++++++++++++++++++++++++++++++===+++**********************++++++++++++++==================--:..::-----=====++++++++++++++++++++++++++++++++++=====+++++++
******+***++*********+=--=======-::..:-===++++++++++++++++++++++++++++++++++++++***************************++====++++++===++==============--:...::----==++++++++++=++++++++++++++++++++++++=====++++++++
+++++++++++++*++++++++=-=======-::..:-==+++++++++++++++++++++++++++++++++++++*********************************+++====+====+++++++==========--::..:-==+++++++++++++++++++++++++++++++++++++=====+++++++++
+++++++++++++++++++++++++=====--:..:-==+++++++++++++++++++++++++++++++++++++**************************************+++++++++++=++++==========--:--=+++++++=++=+++++===+=+++++++++++++++++======++++++++++
+++++++++++++++++++++++++**++==-:..-===+++++++++++++++++++++++++++++++++++***********************************************+++++=+==============++=+++++======+========+++++++++++++++++=======+++++++++++
+++++++++++++++===++=---======+++=--===+++++++++++++++++++++++++++++++++******+=++******************************************++=============++==++++=+++======================++++++++=======++++++++++++
+++++++++++++++++++===---------==+========+++++++++++++++++++++++++++++*****+-...=**************************+****************+===========++==++++++++++====================================+++++++++++++
++++++++++++++++++++++++======-::-==++++====++++++++++++++++++++++++++******+:..:+***********************+=:.:=***************+=======+=====++++++++=====================================+++++++++++++++
++++++++++++++++++++++++++++++===----==++==+===++++++++++++++++++++++********+==*************************+-....+**************+=============++++++======================================++++++++++++++++
====++++++++++++++++++++++++++++++++========++++=======+++++++=+==++************************=**************+--+****************+===========+=++++=======================================++++++++++++++++
=====++++++++++++++++++++++++++++++++++++============+*****+++====+************************+=***********************************+============+++======================================++++++++++++++++++
========++===+++++++++++++++++++++++++++++++++===++***********+===+*********************++++==+*********************************+=========++++++======================================++++++++++++++++++
===============++++++++++=+===++++++++++++++++++***************+==**************************************************************+=======+++++++++====================================+++++++++++++++++++
===================++++==++===++++++++++++++++*******************+***************************************************************======++++++=======================================++++++++++++++++++++
====================+=+==+++====+++++++++++++***********************************************************************************++====++++++========================================++++++++++++++++++++
===========================++++++++========+***********************************************************************************++====+===+===+====================================++++++++++++++++++++++
=============================++++++==+++==+************************++*******************************************************+++++====+==+++=======================================++++++++++++++++++++++
=================================++==++===+************************++++++++++*++************************************++++++++++++====++===+++=============================-========++++++++++++++++++++++
=====================================++===+*************************++++++++++++********************+*********++++++++++++++++=========+=============================-=---========++++++++++++++++++++++
=================================+=++++===+++************************+++++++++++++++++++*++++*******+*++++++++++++++++++++++=====================================---------=======+++++++++++++++++++++++
===========================================+++++**********************+++++++++++++++++++++++++++++++++++++++++++++++++++===---==================================--------======+++++++++++++++++++++++++
=============================================+++++++++*+**************++==++++++++++++++++++++++++++++++++++++++++++++====--:-=================================---------======++++++++++++++++++++++++++
===============================================++++++++++*************++++*******************+++++++++++++++++++++++====-::--=================================---------=======++++++++++++++++++++++++++
===--========================================--====++++++++++***+********************************++++++++++++++++===--:..:--================================-----------=====+++++++++++++++*************
=====--=======================================--:--===+++++++++++**************************************+++++++==--:....:---================================-----------=====++++++++*********************
+=====--=-======================================-::..:-=====+++++***********************************************++==------================================-----------======+++++*********#***#**#*#***#*
++++====---======================================---::..::--=++*********************************************************+++==============================------------=====+++*******************##***#**
***+++====--=======================================---:::...=****************************************************************++========================-----------:-===+++**************##******##******
*******++==---=-====================================----:-=*********************************************************************++=====================-------------==+*************************##******
***********+=----==================================-----=**************************************************************************++================--------------=++******************#*******##******
*************+===-===============================-=---=+******************************************************++**********************++============-----------:--=+*****************************#******
****************==================================---=*********************************************************++************************+======------------::::-=**********************#*********#*****
*****************+==---===========================--+***********************************************************+**************************+==-------------:::--=***********************#***************
******************+=---====-==================-==-=+***************************************************************************************+++=-----------:-:--=+*********************#********#********
********************+=------================----=+***************************************************************+++************************+++=---------::::-=********************#******##************
*********************+=-------============------+*****************************************************************+++*************+++++++++++++=-::::--:::::-=***************#*******#******************
***********************=-----------====-------=+******************************************************************+++*************++++++++++++===:::::::::::=+***************#*********#**********#*****
************************+=-------------------=+***************************************************************+**++++++**********++++++++++++===-::::::::::-+*****************#***#**#******************
***************************+=---------------=+**************************************************************++++++++++++++***++++++++++++======-:.:.::::::-++****************#********#*****************
*****************************=-------------=+++***************************************************************+++++++==+++++++++++++++++=====--:....::::::=++*******************************************
******************************+=----::-::-=++******************************************************************++++++=-=+++++++++++++======---.........::-+*********************************************
********************************+=-:::::-=++++***************************************************************++++++++=-:=++++++========----::...........:=*******************************#**************
***********************************=-:::-++++***************************************************************+++++++++=-..-===========---::.............:=+**********************************************
***************#*********************+===++++*************************************************************+++++++++++=-...:-==-=----::................:-+***********************************************
****************************************+++**************************************************************+++++++++++==-......::::....................:=++***********************************************
**************************************************************************+******************************++++++++++===:..............................-**************************************************
*************************************************************************+++*************************+**++*+++++++===-.............................:-+**************************************************
***********************************************************************+++++************************++++++++++++++===-...........................:=+***********************#*****##*********************