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