::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::–:::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::–:::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::-:::::::::::::–:::::::::::::-:::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::.::::::::::::–::::::::::::.::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::.-::::::::::–::::::::::-.:::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::.-:::::::::–:::::::::-.::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::.-::::::::–::::::::-.:::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::–:::::::–:::::::–::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::—-:::::::::::::-.::::::–::::::.-:::::::::::::—-::::::::::::::::::::::
::::::::::::::::::::::::::::—-::::::::::-.:::::–:::::.-::::::::::—-::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::—-::::::::-.::::–::::.-::::::::—-:::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::—:::::::.-::–:::.:::::::—-::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::—-::::.-:–:-.::::—-::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::::—-::.—-.::—-:::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::-.…`..–:::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::—————————.` `.—————————::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::–.-.…-.–::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::::–.-::.—-.::-.–:::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::—-::::.::–::.:::::—-:::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::—-::::::-.:::–:::.-::::::—-::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::—-::::::::-.::::–::::.-::::::::—-:::::::::::::::::::::::::::::
:::::::::::::::::::::::::::—-:::::::::::-.:::::–:::::.-:::::::::::—-:::::::::::::::::::::::::
::::::::::::::::::::::::—-:::::::::::::–::::::–::::::–:::::::::::::—-::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::.-:::::::–:::::::-.::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::.-::::::::–::::::::-.:::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::.-:::::::::–:::::::::-.::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::.:::::::::::–:::::::::::.:::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::-.::::::::::::–::::::::::::.-:::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::-:::::::::::::–:::::::::::::-:::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::–:::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::–:::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::