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