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