::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::..:::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::—-::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::-::::::::::::::::::.//.::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::.–:::::::::::::::.://:.:::::::::::::::–.:::::::::::::::::::::::::::
:::::::::::::::::::::::::::::.::–::::::::::::–////:-::::::::::::–:/.:::::::::::::::::::::::::::
:::::::::::::::::::::::::::::–//:–::::::::::.//////.::::::::::–://:-:::::::::::::::::::::::::::
::::::::::::::::::::::::::::::.////:—::::::.://////:.::::::—:////.::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::.://///::–:::–////////–:::–:://///:.::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::-////////:–:.//////////.:–:////////–::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::.//////////:.-//////////-.://////////.:::::::::::::::::::::::::::::
::::::::::::::-::::::::::::::::–//////////.:-://////:-:.//////////–::::::::::::::::-::::::::::::
::::::::::::::–::::—–:::::::./////////-://:-://:-://:-/////////.:::::::—–::::-.::::::::::::
:::::::::::::::–://////:::::—.-::://///./////:–://///-:////:::-.—::::://////:–:::::::::::::
:::::::::::::::::–://///////////.::::-::-:////:—-:////:-::-::::./////////////:–:::::::::::::::
:::::::::::::::::::–:///////////-://///:.::—-://:—-::.://///:-///////////:–:::::::::::::::::
:::::::::::::::::::::–///////////./////:-//:–:—-:–://:://///.///////////:-:::::::::::::::::::
::::::::::::::::::::::–://///////:-/::-.-:-.-.-..-.-.-.-:-.:::/–/////////:–::::::::::::::::::::
::::::::::::::::::::::::–://::-:::.-://./-..–.-::-.–..-:.//:-.::–:::/:–::::::::::::::::::::::
::::::::::::::::::::::—–.-://///:.//-.-.–:–/–/–:–.-.-//.://///:-.—–::::::::::::::::::::
::::::::::::::::—–:://///:-://///-.-:.`::.:/.–.-./:.::..:-.-/////:–/////::—–::::::::::::::
:::::::::::—-:://///////////–:/–:-:-…::-..“` ..-::.…:-:–/:–/////////////::—-:::::::::
::::::::-.-:////////////////////..:///`:`:-.–.` `.–.-/`:`///:..////////////////////:-..::::::
:::::::::::—–::////////////–//:-:-:-…::-..““..-::-..-:-:-://–////////////::—–:::::::::
:::::::::::::::::—–::////–//////—:..::./:.–.-.:/-::..—-//////–////::—–:::::::::::::::
:::::::::::::::::::::::—..-::////:-//:.-`-.:–/–/–:.-`-.://-:////::-..—:::::::::::::::::::::
::::::::::::::::::::::::–://:::-::.-:::./:..–..::..–..:/.::::.:—:://:–::::::::::::::::::::::
::::::::::::::::::::::–://///////–//::.-:-.-.-.…-.-.-:-.:://–/////////:–::::::::::::::::::::
::::::::::::::::::::–:///////////./////:-///–:—-:–///-://///.///////////:–::::::::::::::::::
:::::::::::::::::::–////////////-:////::.:–::-://:-::–:.::////:-////////////:-:::::::::::::::::
:::::::::::::::::–:////////////:.:::–::–/////:–://///:-::–:::.:////////////:–:::::::::::::::
:::::::::::::::–://///:::::—-.::://////./////—-/////.//////:::.—-::::://///:–:::::::::::::
::::::::::::::.-::——::::::::./////////-://:-://:-://:-/////////.::::::::——::-.::::::::::::
::::::::::::::-::::::::::::::::-://////////.:-://////:-:.//////////:-::::::::::::::::-::::::::::::
:::::::::::::::::::::::::::::::.//////////:.-//////////-.:://///////.:::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::–///////::–:.//////////.::–:///////–::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::.://///:–::::–////////–::::–://////.::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::.////:–:::::::.://////:.:::::::–:////.::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::-://:–::::::::::.//////.::::::::::–://:-:::::::::::::::::::::::::::
:::::::::::::::::::::::::::::.::–::::::::::::–////–::::::::::::–::.:::::::::::::::::::::::::::
:::::::::::::::::::::::::::::.–:::::::::::::::.://:.:::::::::::::::–.:::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::.//.::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::—-::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::..:::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::