'########::::::::::::::::::::'########::::::::'#######::'########:::'######:::
 ##.... ##::::::::::::::::::: ##.... ##::::::'##.... ##: ##.... ##:'##... ##::
 ##:::: ##::::::::::::::::::: ##:::: ##:::::: ##:::: ##: ##:::: ##: ##:::..:::
 ########::'#######:'#######: ##:::: ##:::::: ##:::: ##: ########:: ##::'####:
 ##.... ##:........:........: ##:::: ##:::::: ##:::: ##: ##.. ##::: ##::: ##::
 ##:::: ##::::::::::::::::::: ##:::: ##:'###: ##:::: ##: ##::. ##:: ##::: ##::
 ########:::::::::::::::::::: ########:: ###:. #######:: ##:::. ##:. ######:::
........:::::::::::::::::::::........:::...:::.......:::..:::::..:::......::::