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