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