.o88888888o.
                      .o8888888888888888o.
          .o88o.    .o888888888888888888888b.
        o88888888o.d88888888888888888888888888o.
      .d8888888888888888888888888888888888888888.
     d8888888888888888888888888888888888888888888
     88888888888888888888888888888888888888888888
     88888888888888888888888888888888888888888888b
     88888888888P'    'Y88888P'   'Y88888888888888
     88888888P'                             888888
            8                               Y8888P
           .8  .88       o8888     88.       8888
          d8'  8'   db  d'      db  '8       8888
        .d8'   8.   YP  8       YP  .8       Y888b.
    .o888P    '8       Y8888       8'        8'  8.
   .d8888P                                        .8
  d88888P                                      .  8K
 d888888      Yb                               8.d8Yb.
d8888888       Yb                   .od        8888888b
88888888        Yb               .d8P'        d88888888b
88888888b        Yb.          .odP'          d8888888888
Y88888888b        'Y8888888888Y'             88888888888
 Y88888888                                 .d''Y8888888P
  Y88888P'8o.                            .dP'   'Y8888P
   'Y88P   'Yb.                        .dP'       88P'
             Y88o.                  .o8P'
                'Y888o.       .O8888P'