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