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