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