.:.::.:...........................:.:.:.:.:....:.:.:.:.::.:::.::.:::.::.:.................:.:.:..::::...........................:..........::.:.:.:.:...........
::::::::.:.........:............:.::.:::.:::.::::::.::::::::::::::::::::::::.............:::::::.:.::..........................:..........::::::::::::::..:.:::.
::::.:::............:.:..........:.::.::::.::..:.:::.:.:::::::::::::::::.:.:............:.:.:.::.::::...........................:..........::::::::::::::::....:
.:::::::::........:.:....:.:.....::.::.:.::.:.::::.::::::::::::::::::::::::..............:.::::::.:.:.:.........................:.........:::::::::+::++:+:::.:.
::::::::.::........:.:.:.....:....::.:::::::.:.:.:::.:.::::::.:::::::.:::.::...........:.:::.::.::.:.:...................................::+++++++++++::+:::::.:
::.:::.:::.:..:..:..:.....:....:.:.:::.::.:::..::::::::.:::::::::.:::::::::.:.............::::::.::::...:......................::.........::+::+++:::::::::::+:+
.::::::::::.:......:.:.:....:.....:.:.::::.:.:.::.::.::::::::::::::::::::.::.........:.:.:.::.:.::.:::..........................:.........:.:::::::::::::::+::+:
::::::::::.:....:...:.:..:....:...:.:::.:::::.:::::::.::.::::::::::::::::::::............:::::::::::::.:.......................::.............:::::::::::::.:::+
::::::::::::.:....:..:.:...:....:..::.::.:.::..:.:.::::::::::::::::::::::::.:.:.......:.:.:.::::.:::::...:.....................::..............:::::::.:::::::::
:.::.:::::::..:.....:.:..:...:.....:.:::::::.:.:::::.::.:::::::::::::::::::::.............:::::::.:::::.:......................:::...............:::::::::::::::
:::::::::::::...:....:.:...:...:.:..::.:.::.::.::.::::::::::::::::::::::::::::......:.:.:.:::.::::.::::........:...............::........:::::.....:::::::::.:::
::::::::::::::.:...:..:.:....:.....:.::::.::::..:::.::::::::::::::::::::::::.:.:..:...:..:.::::::::::.:..:...:....:............::.........:::::......::::.::::::
:.:::::::::::.:.......:.:.:....:.:..:.:.::::.:.::.::::.:::::::::::::+::+::::::......:..::.:::::::::.::.:.............:.........::........:::::::.:....:.::::::::
::::::::::::::.:.:..:..:...:.:......:.:::.::::.:::::.:::::::::+::+:::::::::::::::.::.::.:::::::+:+::::.:..:.....:..:....:......::.........::::::::.:...:::::::::
:::::::::::::::......:.:.:....:.:.:..::.:::.:::.::.:::::::::::::::+:+:+:++:::::.::.:::::++++===@@@@+:+:.:.....:.......:.........::.......:::::::::::......:::+:+
::::::::::::::::.:.:...:.:.:.:...:...:.::.::::.:.:::::::::::+:++:+::+:+::+++++++++====@@@[email protected]@@@@@@=@+:::..:........:............::.......:.::::::::::::..:.::::::
:.:::::::::::::.:....:.:.:..:..:...:..:.:.:::::.::::::::::+:+:+:+++++=+====@[email protected][email protected]@@@@@@@@@@@@@@[email protected]@@@=:+::...:........:..:..:.....:........::::::+:+:+:+::.....:::
:::::::::::::::::.:...:.:.:..:..:.:.:.:.:.:.:::::::++++=+=+===@=@=@@@@@@@@@=@@@@@=@[email protected]@[email protected][email protected]@@@@@@@@@+:+:.:....:..:.:......:.....:.:....:.::::++:+:+:::::.:...:..:
:::::::::::::::::..:.:..::.:..:......:.:.:.::::::==@[email protected]@=@@@@@@@@@@@@@=@[email protected]@[email protected]@@@@@@@@@@@@@@@@======@=:::..:.:.........:.:.......::.......:::::::::::::::::::...:.
::::::::::::::::::....:..:.::..:.:.:..:.:.:.:::::@@@@@@@@@@@@@@@@@@@@@@@@@@@@[email protected][email protected]@@====++==++====@@=::::.:.....:.:.:.....:.....::..........::::+:::+:+:+::::....
:.:::::::::::::::::.:..:.::.:.:..:..:.....:.:.::+[email protected]=@====@@@=@+=@@+:=@=@@@@=@@@@@=+==@@==+:.+@@@@@@=.::.:....:.......:.:......:.:+:.:........:::::::::::::::::..
::::::::::::::::::.:.:..:.:.:.:.:..........:.:::+@@=+==+:==@@=:=@@+:@@@@@=@@@==@+:=@@@@@@:+=++=+=@@=:::.:.:....:.:.:.....:.:.::+===+++:........::::::::::::::::.
:::::::::::::+::::::..:.:.:.:.:...:.........:::+=@++=@@@+:@@@+:====:+=++@@====:::=@@@@@=:+@@@@@=:+@=::::.:.:........:.:.....::+=======++........::::::::::::::::
::.::::::::::::::::.:..:.::.::.:.:..:......:.::+=+:@@@@@=:===+:=@@+:+==.=+:=====:+==@=++@@@@@@@@+:@=:::.:...:.:.:.:....:.::::+==+=++====++.....:.:::::::::::::::
:::::::::::::::+:::::.:.:.::.:.:.:.:.......:.::+@:+=====+:@=@+:@[email protected]+:@@@:=::====@@=====@@@=@@@==++=@@::::.::......:.:.:..:::==========[email protected]+=:::....::::::::::+:::::
:::::::::::::::::::::..:.:.:.:::::::::.:...:.::==:==@@=@++@@@++@@@:+@@:+@===@@=@@@@@@@@=========@@@=::::.:.:.:.:....:.:::+===@==========:.::::::::::::::+:::::::
:.:::::::::::+:::+::::.:.::::.:::+:+::::::..::+@=:=@@@@@:+@=@:+@=@+=@@=@=@@@[email protected]@@@@@@@@@@@@@@@@@@@@@+:::::...:...:.:..:::===@[email protected][email protected]=======+++=++++=+++::+:::+:++::
::::::::::::::::::::::..:.:.:::+:+::+:+:::::::+@=:=@@@=@+=@@@++@@@@@@=@@@@=@@@@@[email protected]=========+++++++++::::.::..:.:..:.:::===[email protected][email protected][email protected][email protected]=====@=@=@===++:+++:++:+:::::
:::::.:::::::::+::+::::.:.::::+:+:+::::+:::.::+@=:=@[email protected]@===@=@@@@@@@@@@=@==@=+++=+++++++++++:::::::++++:::.:.:...:...::+=[email protected][email protected]==========@@@=@==+::::++:::::::::
:.:::::::::::::::::::::.:.::::::::::::.:....:.+@=+=@@@@@@@@@@@=@===+++++++:+:+++++++++++::::.:.::::::::.:.....:...:.:+=====@[email protected][email protected][email protected]=========@==+::::::++::+:+:::
:::::::::::::+::+:::::::.:.::+:+:::.........::+=@@@====+=+++++:::::::::++===++++++++::.::...:...:........:.:....:..:++=[email protected]===@[email protected][email protected]======+=====++:::..:::+++::::::
:::.::::::::::::::+::::::.::::::::......:....::+:::::::::::::::+::+:+:++=@=@++++++:::.:..:.:.::.:.:.:.:.:...:.:...::+====@[email protected][email protected]==@=====+===+++:::::..::+++:+:::
.:::::::::::::::::::+::::.:::+::...:.:::.:.:::+:+:.:::::::::::::::::::::=@==+++++::.:.:..:..:..:.::.:.....:....:.:.:+==@[email protected][email protected][email protected]==========+==+=:+::::.:.:::++::::
::::::::::::::+::+:::::.::::::...:..:.::++::.:+=++:.::::.:::::::::.:..::==@@++::::.:...:.:.:.:::+==+.:.:.:..:.:...::+===@[email protected][email protected]======+===+=+++::::::...:::++:::
::.::::::::::::::::::.:::.:::..:..:.:====@=+::+==++:.:.:.:..:.....:.:.::=@==+++:....:.:.::::++:+====+::.:..:.:..:.::+=@===@=[email protected]=========+=+=+=++::::::::..:::+++:
.:::::.::::::::::::::::.:::...:..::+++:======+=+==++:...:.:..:.:.:...:.:==@@++:::::.:.::+==@@=+===[email protected]===+::.:..:..:.:+===============+=+==+=+++:::::::::::..:.:++
::::::::::::::::+::::.::::::.:.:.:++=:::+==+========+::....:....:..:..::=@=@++::...::::+=@@====[email protected][email protected][email protected][email protected]==+:::..:..:::==[email protected]=========+==+=+=++++::+:+:+:+:::..::::+
::.::::::::::::::::::::.:::.:..:+====+:+++===========++:.:..:.:..:.:.:.:==@=++++=+++=@++++=====@[email protected][email protected][email protected][email protected]===::.:.:..:::=======+=++=+=+=+=++++::::+:+:::+::::..:::
.::::.:::::::::::::::.:::.::::::++====++=====[email protected][email protected]====++:.:...:.:...:..:=[email protected]@+++@@@@@=@+::+====[email protected][email protected][email protected][email protected]=@===::..:.:.::+++++++++=+=+=+=++++:::::+:+:+:::::::.:.::
:::::::::::::::::::::::::::::::+++=+=+===+==[email protected]========++..:.:...:.:..:.==@==++@=@@@@@@=+======[email protected][email protected][email protected]=@=@[email protected]==::.:..::::+++++===+=+=+++++:::::::+:+:::+:+:+::.:..
:.::::::::::::::::::::::::::::++=+==+=+=====[email protected][email protected]====+:.:...:..:..:.:==@==+++@=@@=@=@=====@[email protected][email protected][email protected][email protected][email protected]=@[email protected]==::.:::::+++++=+=+=+=+++:::::::::+:+:::::::::::::.:
:::.:::.::::::::::::+:::::::+:+++++=+==+===[email protected][email protected]======++:..:..:..:..:.+@@==++++==[email protected][email protected]======[email protected][email protected][email protected][email protected][email protected][email protected][email protected]==+:.:::+:::+++=+=++++:::::::::::::+:+:+:::+++++++::
.::::.::::::::::::::::+::::::++++=++=+==+=====@[email protected][email protected]====+:.:.:..:..:.:.==@@=+++==[email protected][email protected]==@===@[email protected][email protected][email protected][email protected][email protected][email protected]=@[email protected]=+::::+::::+++++++:::::+:+:+:+::::::+::++++++++++:
:::.:::::::::::::::::::+:+:::::+++=++=+=====[email protected][email protected]======+=::...:..:.:.::+@=@@+++==[email protected]=======[email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected]==+::+:+:+:::::::::::+:+:+:+:+:::::+::++:+++++++++:
.::::::::::::::::::::::::+:+::+:+++=++=+=+===@===[email protected][email protected]===++.:..:.:.:.::++@@@==++====@[email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected]=@=@===++:+++:+::::::::+:+:+:+:+:+:::+:+:+:+++===+=++:::
::.:::::.:::::::.:::::::+:::::::++++=++=+====[email protected]========++..:..:.::+++++@=@@=++===[email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected]=@=@==+:+:+:+:+::::+::+:+:+:+::::::::::::++====+::::::
.::::.::::::::::::.:::::::+:+::::+++++=+=+====[email protected][email protected]====+:..:.:::++:+++@@=@+++==========@[email protected]=[email protected][email protected][email protected][email protected][email protected]=@====+:++++:+:+:+:++:++:+:+:+:+::::+:+:::::====+:::::
:::.:::::::.:::::::::::::::+::::+:++++++=+=+=============+:.:.:::++++++++=@@==:++=@=====@======@=[email protected][email protected][email protected][email protected][email protected]=++:+:+:+:+:+:+:++:+++:+:+::+:+::::::::::+===+::::
.::::::.:::::::::::::::::::::::::::++=+++=+======[email protected]=====+::.:::+++:++:++=@=@+::++==[email protected]===[email protected]===[email protected]===@[email protected]=====+:++++:+:+:++:+:++:+:++:+++:++++++::.:::++==++:::
:.:.::::::::::::::::::::+:+:+:::::+::++++++=+===========++:.:::++:+++++++==@==::::++===============[email protected]=[email protected]==+::+++:+:+:++:++++++++:++:+:++::+:++::.:::++===++:
.::::.::.::.:::::::::::::::::::::+:::+++=+++++===========+.:::++++++:++:+=@===:+:::+++==[email protected]===================+:++++==+:::+:++:+:+:+:+++++++++++++=+::.::::+===+:
::.:::::::::::::::::::::+::::::::::+::::++++=++=+======++::::+:+++:++++++==@==::+++::++====================+++:+++++=++++::+:+++:+++:+:+:++:+++==+=+::.:::++===+
.:::.:.::.::::.:::::+:::::+:::::::::::::::+++++++=+=====+.:::+++:+++++:+++@===::+:+++:+++========+=+=++=+=+=++:+++=++==+=++::+:+:+:+++++++++++======+::.:::++==+
:.::::::::::.:::::::::.::::::::::::+:::::::::::::+===+=+::::+:++++++++++++::::++:+++++:+:++==============+=++:+++++=====+===++::+:++:+:+:+:++========+::.::::+==
.::.:.::.::::::::::+:....:::::::+:::::::::::::.:::+++=+:.:::++:++:++:++++++:+:+:++++++++:+:++=============++:+:+::+:+=========+=+++++++:++++==========+::.:::++=
:.::::::::.::::::::+:.:.:.:::::::+:::::::::::::....::::::::+:+++++++++++:++++++++:++++++++++:++++=======+++::+::++++++++=+==========+=+++++==[email protected][email protected]===+=:::.:::++
.::.:.:.::::.::.:::::....:::::+:+::+::::::.:...:.:..::::::+:+++:+++:++++++++++:+:++++++++++++::::++++=+=++::+:+++++==+==+====++=+===========@[email protected]=========+:::::::
:.:::::::.::::::::::...:..:::::::+:::::::::::::::::::::::+:+::++++++++++++++++++:++++++++++:++++:+:+++:+::+::+:+++====@=@==+=============+===[email protected]=@=@====+=+::.:::
.::.:.:.::::.:::::+:.:...:..:::+:::++=+=++++++++++++++:++:+:+:::::++++++++++++:+++++++++++++++:+++++:++++::+:++++=+===[email protected]====+=+++++=+=+========@=@=@====+=:::.::
:.::.::::.::::.:::::.:+++++++:+:+:++++=+=+=+++=+=+++++++:++++:+::+:::+:+:+:+:+:+++++++++++++++++++:+++:+::+:+:+:+=====@[email protected]=====+=+++++++++=======@===@======+:::.
.:.:::.::::.:::::::.:++=+=++++++++++++++=+=+=+====+=+=+++++:+::+::+:::::::::::+:+++++++++++++++++++++++:+::+:++++++======@@=@[email protected][email protected]=======++=+====[email protected]@==@===+==::::
.::.:.::.::::.:::::::+=+=+=++=++=+=+=+=++=+=+========+=+++++:+::::::::::::::++++++++++++++++++++++++++++:+++++++++++=+=====@@[email protected]@=@@@[email protected]=@========@[email protected]======+=++::
:.:::::.::.:::::::.::=+=+=++++=++=+=+=++++===============+=+++:++:+++++++++:+:+++++++++++++++++++++++++:+++++++=+==+=======@=@@=@@[email protected]@[email protected][email protected]@======[email protected][email protected][email protected][email protected]==+==++:
.:.:.:.:::::.::.::.:+==+=++++++=+=+=+++++=@[email protected]=@[email protected]===========++=++++++++++++++++++++++++++++++++++++++++=+==+==+==+===+===@=@=@[email protected]@[email protected]=@@[email protected][email protected][email protected]@[email protected]@[email protected]=[email protected]======+==+:
:.::.:::.:.:::::::.:=+==+++=+=++=+++++===@=[email protected][email protected][email protected][email protected]===================+=+=+++++++++++++++++++++++++======+==+==========@=@@@[email protected]@[email protected][email protected]@[email protected]@[email protected][email protected]=[email protected][email protected]==@[email protected]===++==+
.:.::.:.::::.::.:.:+=+=+=+++++++++======@[email protected][email protected][email protected][email protected][email protected]=@[email protected][email protected][email protected]===@==========++++++++++++++++++++++====================@=@@=@[email protected][email protected]@[email protected][email protected]=@[email protected][email protected]=@[email protected]=[email protected]=[email protected]=====++==
.::.:.:::.::::::.::+=+==+========@==@=@[email protected][email protected][email protected]=[email protected][email protected][email protected]=@[email protected][email protected]=@@[email protected]=@@[email protected]@[email protected][email protected]=+++++++++++++======@====[email protected]=====[email protected]=@=@=@@[email protected]@[email protected]@[email protected][email protected][email protected][email protected][email protected][email protected]=@[email protected][email protected][email protected]==@=====++=
:.:.::.:.::.:.:.:.++==+=============[email protected][email protected][email protected][email protected]=@==@[email protected][email protected][email protected]=@[email protected][email protected][email protected][email protected][email protected][email protected]=@[email protected][email protected]==++++++++===@[email protected]@@@@@@@===@[email protected]==@=@=====@=@@@[email protected]@[email protected]=@[email protected]@[email protected][email protected][email protected]=@[email protected][email protected]==@=[email protected]=@===++
.:.:.::::.:::::.::+=+==+========[email protected][email protected]==[email protected]=[email protected][email protected][email protected][email protected][email protected][email protected]==@[email protected][email protected][email protected]@[email protected][email protected]=@[email protected]@[email protected]@=@@=++++=======@@[email protected][email protected][email protected]@@==========@[email protected]@@=@@[email protected]@[email protected]=@[email protected][email protected][email protected][email protected][email protected]=@[email protected][email protected]===@[email protected]=======++
.::.:.:.::.:.:.:.:+=+=+===+==========@==[email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected]=@[email protected]=@@@[email protected]@[email protected]@=@======[email protected]====@@@@@@[email protected]@@@@@@@@@@[email protected]@[email protected]@[email protected][email protected][email protected]=@[email protected][email protected][email protected][email protected]=@=@[email protected][email protected]=@[email protected]==@=@=====+
.:.::.::.:::::.:::=+====+==============@==@[email protected][email protected][email protected][email protected]==@[email protected][email protected][email protected][email protected][email protected]=@[email protected][email protected]=@[email protected]=@====[email protected][email protected][email protected]===@=@@@@[email protected]@[email protected]@[email protected]@@@[email protected]@[email protected]@@[email protected]=@@=@=@=@[email protected][email protected][email protected][email protected][email protected][email protected]===[email protected]=========+
.:.:.:.::.:.:.:.:+=+=+=+===========@[email protected]===[email protected][email protected][email protected][email protected][email protected]=@=@[email protected][email protected][email protected][email protected]@[email protected][email protected][email protected]@=@======[email protected][email protected]@=[email protected][email protected]=@[email protected]@@@[email protected]@@@[email protected][email protected]@[email protected]@[email protected][email protected]@=@[email protected]=@=@[email protected][email protected][email protected][email protected][email protected][email protected]=@==@[email protected]======+
.:.:.::.::.::.:.:+=+==+===+===========[email protected]=@[email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected]=@=@[email protected]=@=@@[email protected]@@=@=========[email protected][email protected][email protected]=[email protected]==@=@@[email protected]@@@[email protected][email protected]@@[email protected]@[email protected]@[email protected]=@[email protected][email protected]=@@=@[email protected]=@[email protected][email protected][email protected][email protected][email protected]====@======
.:.::.:.:.::.:.:+=+=+===+==========[email protected]=@[email protected]===@[email protected][email protected][email protected][email protected][email protected]=@[email protected][email protected][email protected]@[email protected]=@=@[email protected]========[email protected]=[email protected][email protected]======@=@=@@[email protected]@[email protected][email protected]@@[email protected][email protected][email protected]@[email protected][email protected]@[email protected][email protected]=@[email protected][email protected][email protected][email protected][email protected][email protected]==@==[email protected][email protected]===@====
.:.:.:.:::.::.::++==+=+====+=======[email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected]=@[email protected][email protected][email protected][email protected][email protected]@=@=@==[email protected]======@=========@=@@[email protected]@@=@@@[email protected][email protected]@@[email protected][email protected][email protected]@[email protected][email protected]@[email protected][email protected]=@[email protected][email protected][email protected][email protected]==@=[email protected][email protected][email protected]=======
.:.:.::..::.:.::+=+==+==+===========@[email protected]==@=[email protected][email protected][email protected][email protected]==@=@[email protected]=@[email protected][email protected][email protected][email protected]=@=================@@@@@[email protected]@@[email protected]@[email protected][email protected]@@[email protected][email protected]@@[email protected]=@[email protected][email protected][email protected][email protected][email protected]=@[email protected][email protected][email protected][email protected]=[email protected]===[email protected][email protected][email protected]====+
.:.:.:.::.:.:.:++==+==+===============@[email protected][email protected]=@[email protected][email protected][email protected][email protected][email protected]=@[email protected][email protected][email protected][email protected]@[email protected][email protected][email protected]=@@=@=@=@[email protected]=[email protected]=@@@[email protected][email protected]@@@[email protected]@[email protected]@[email protected][email protected][email protected][email protected][email protected]=@@[email protected][email protected][email protected][email protected]=@=@=[email protected][email protected][email protected]==[email protected][email protected]=@==[email protected]========
..:.:.:.:.::.:.+=+=+=+==+=+==+=====@[email protected][email protected]==@[email protected][email protected][email protected]=@=@=@[email protected][email protected][email protected][email protected][email protected][email protected]@=@[email protected]@[email protected]@@[email protected]@@@@@[email protected]@@@@=@[email protected]@[email protected]@[email protected]@@[email protected]@[email protected]@[email protected][email protected][email protected][email protected][email protected][email protected]=@=@=@[email protected][email protected][email protected]=@[email protected]==@[email protected][email protected]==========
.:.:.:.:.:..:.+=+=+===+=============[email protected][email protected][email protected]=[email protected][email protected][email protected][email protected]=@=@[email protected][email protected][email protected][email protected][email protected][email protected][email protected]@[email protected]@=@@=@@@[email protected][email protected]=@@[email protected][email protected]@[email protected]=@@[email protected]@[email protected][email protected][email protected]@[email protected]@[email protected][email protected]@[email protected]@[email protected][email protected]=@[email protected]=@[email protected][email protected]==@[email protected][email protected]=[email protected]========
....:..:.:.:.:++==+=+===+===========@[email protected][email protected][email protected][email protected][email protected][email protected]==@=@=@=@[email protected][email protected][email protected]@=@[email protected]=@@[email protected]@[email protected][email protected]@@@@@[email protected]@@[email protected]@@@[email protected]@=@@[email protected]@@[email protected][email protected][email protected][email protected][email protected][email protected]=@=@[email protected][email protected][email protected][email protected][email protected]====@[email protected]=@[email protected]===========
.::..:.:.:.:.:+=+=+==+====+==========[email protected]=[email protected][email protected]=@=[email protected][email protected][email protected][email protected]=[email protected][email protected][email protected][email protected][email protected][email protected][email protected]@=@[email protected]@[email protected]@[email protected]@[email protected]=@=@@[email protected]@[email protected]=@@[email protected]@=@@=@=@[email protected][email protected][email protected]@[email protected][email protected][email protected]=@[email protected]=[email protected][email protected][email protected][email protected]=@@[email protected]=[email protected]===@=[email protected]======
...:.:.:.:.:.++=+==+==+=+==========@===@[email protected][email protected]=@=[email protected]=@==@=@[email protected][email protected]=@=@=@[email protected][email protected][email protected][email protected][email protected]@=@[email protected][email protected][email protected][email protected]=@@=@[email protected][email protected]=@=@=@[email protected][email protected][email protected]@[email protected][email protected]@[email protected]=@=@[email protected]=@=@=@[email protected]==@=@=====@==@=======@=======+
:+::::::::::::::::::::+++:::::::++:::+:::+::::+::::++:+::+::+:::++:+:::+:+:+::++:++++++:::+::+::+::+::+:::+::++++:+:+::++:+:+:++::+::+++++++:++::++++:+:+:++:+::
=+=+=+=++=+:++=+=++++=+=:+++++=++=+=+++=++=+=+:+++++=++++:=+++=++=++=::::++==:=+++:++:+::::::::::::::::::::::=+==+++++:+++=:==+=+=:=+:++++++=++::=:=::=+=:+=:=+:
+:::++++:++:+:+:++++:+:+::+:+++++++++++++:+:++:++++:++:++:+:++++::++++:+:+::+++:+::+::::::::::::::::::::::::::++:+++:+:++++::++:++:=::+:++++:+::::+:::+:+::+:+::