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