oooo                            .o.
                                     `888                            888
oooo oooo    ooo  .ooooo.   .ooooo.   888 .oo.    .ooooo.   .ooooo.  888
 `88. `88.  .8'  d88' `88b d88' `88b  888P"Y88b  d88' `88b d88' `88b Y8P
  `88..]88..8'   888   888 888   888  888   888  888   888 888   888 `8'
   `888'`888'    888   888 888   888  888   888  888   888 888   888 .o.
    `8'  `8'     `Y8bod8P' `Y8bod8P' o888o o888o `Y8bod8P' `Y8bod8P' Y8P
 
                                     oooo                            .o.
                                     `888                            888
oooo oooo    ooo  .ooooo.   .ooooo.   888 .oo.    .ooooo.   .ooooo.  888
 `88. `88.  .8'  d88' `88b d88' `88b  888P"Y88b  d88' `88b d88' `88b Y8P
  `88..]88..8'   888   888 888   888  888   888  888   888 888   888 `8'
   `888'`888'    888   888 888   888  888   888  888   888 888   888 .o.
    `8'  `8'     `Y8bod8P' `Y8bod8P' o888o o888o `Y8bod8P' `Y8bod8P' Y8P
 
                                     oooo                            .o.
                                     `888                            888
oooo oooo    ooo  .ooooo.   .ooooo.   888 .oo.    .ooooo.   .ooooo.  888
 `88. `88.  .8'  d88' `88b d88' `88b  888P"Y88b  d88' `88b d88' `88b Y8P
  `88..]88..8'   888   888 888   888  888   888  888   888 888   888 `8'
   `888'`888'    888   888 888   888  888   888  888   888 888   888 .o.
    `8'  `8'     `Y8bod8P' `Y8bod8P' o888o o888o `Y8bod8P' `Y8bod8P' Y8P
 
--------------------------------------------------------------------------------
oooooooooo.    .oooooo.     .oooooo.   ooo        ooooo .o. 
`888'   `Y8b  d8P'  `Y8b   d8P'  `Y8b  `88.       .888' 888
 888     888 888      888 888      888  888b     d'888  888
 888oooo888' 888      888 888      888  8 Y88. .P  888  Y8P
 888    `88b 888      888 888      888  8  `888'   888  `8'
 888    .88P `88b    d88' `88b    d88'  8    Y     888  .o.
o888bood8P'   `Y8bood8P'   `Y8bood8P'  o8o        o888o Y8P
                                                           
oooooooooo.    .oooooo.     .oooooo.   ooo        ooooo .o.
`888'   `Y8b  d8P'  `Y8b   d8P'  `Y8b  `88.       .888' 888
 888     888 888      888 888      888  888b     d'888  888
 888oooo888' 888      888 888      888  8 Y88. .P  888  Y8P
 888    `88b 888      888 888      888  8  `888'   888  `8'
 888    .88P `88b    d88' `88b    d88'  8    Y     888  .o.
o888bood8P'   `Y8bood8P'   `Y8bood8P'  o8o        o888o Y8P
                                                           
oooooooooo.    .oooooo.     .oooooo.   ooo        ooooo .o.
`888'   `Y8b  d8P'  `Y8b   d8P'  `Y8b  `88.       .888' 888
 888     888 888      888 888      888  888b     d'888  888
 888oooo888' 888      888 888      888  8 Y88. .P  888  Y8P
 888    `88b 888      888 888      888  8  `888'   888  `8'
 888    .88P `88b    d88' `88b    d88'  8    Y     888  .o.
o888bood8P'   `Y8bood8P'   `Y8bood8P'  o8o        o888o Y8P