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