... 						8888888888 .d88888b.  8888888b.  888     888 888b     d888 
             ;::::; 						888       d88P" "Y88b 888   Y88b 888     888 8888b   d8888 
           ;::::; :; 						888       888     888 888    888 888     888 88888b.d88888 
         ;:::::'   :; 						8888888   888     888 888   d88P 888     888 888Y88888P888 
        ;:::::;     ;. 						888       888     888 8888888P"  888     888 888 Y888P 888 
       ,:::::'       ;           OOO\   			888       888     888 888 T88b   888     888 888  Y8P  888 
       ::::::;       ;          OOOOO\ 				888       Y88b. .d88P 888  T88b  Y88b. .d88P 888   "   888 
       ;:::::;       ;         OOOOOOOO 			888        "Y88888P"  888   T88b  "Y88888P"  888       888 
      ,;::::::;     ;'         / OOOOOOO                                                            
    ;:::::::::`. ,,,;.        /  / DOOOOOO                                                            
  .';:::::::::::::::::;,     /  /     DOOOO                                                            
 ,::::::;::::::;;;;::::;,   /  /        DOOO 	  		8888888b.   .d88888b.  888       888 888b    888 888      .d88888b.        d8888 8888888b.   .d8888b.  
;`::::::`'::::::;;;::::: ,#/  /          DOOO 			888  "Y88b d88P" "Y88b 888   o   888 8888b   888 888     d88P" "Y88b      d88888 888  "Y88b d88P  Y88b 
:`:::::::`;::::::;;::: ;::#  /            DOOO 			888    888 888     888 888  d8b  888 88888b  888 888     888     888     d88P888 888    888 Y88b.      
::`:::::::`;:::::::: ;::::# /              DOO 			888    888 888     888 888 d888b 888 888Y88b 888 888     888     888    d88P 888 888    888  "Y888b.   
`:`:::::::`;:::::: ;::::::#/               DOO 			888    888 888     888 888d88888b888 888 Y88b888 888     888     888   d88P  888 888    888     "Y88b. 
 :::`:::::::`;; ;:::::::::##                OO 			888    888 888     888 88888P Y88888 888  Y88888 888     888     888  d88P   888 888    888       "888 
 ::::`:::::::`;::::::::;:::#                OO 			888  .d88P Y88b. .d88P 8888P   Y8888 888   Y8888 888     Y88b. .d88P d8888888888 888  .d88P Y88b  d88P 
 `:::::`::::::::::::;'`:;::#                O 			8888888P"   "Y88888P"  888P     Y888 888    Y888 88888888 "Y88888P" d88P     888 8888888P"   "Y8888P"  
  `:::::`::::::::;' /  / `:#                                                                                                        
   ::::::`:::::;'  /  /   `#                                                                                                        
                                                                                                        
 
								       d8888 8888888b.   .d8888b.  888    888 8888888 888     888 8888888888 
								      d88888 888   Y88b d88P  Y88b 888    888   888   888     888 888        
								     d88P888 888    888 888    888 888    888   888   888     888 888        
								    d88P 888 888   d88P 888        8888888888   888   Y88b   d88P 8888888    
								   d88P  888 8888888P"  888        888    888   888    Y88b d88P  888        
								  d88P   888 888 T88b   888    888 888    888   888     Y88o88P   888        
								 d8888888888 888  T88b  Y88b  d88P 888    888   888      Y888P    888        
								d88P     888 888   T88b  "Y8888P"  888    888 8888888     Y8P     8888888888