######## ########                                              
                  ######## ########                                              
 ###  ##          ######## ########           ########     #### ###### ### ###   
 ###  ##          ######   ######                   ##    ###  ###     ### ###   
 #######          ####     ####                #######    ###  ###     ### ###   
 ###  ##       ##                   ########   ###  ##    ###  ###     ### ###   
 ###  ##     ####                   ########   ###  ## #####    ###### ### ###   
 ###         ####                   ########