`'@@@#:                                                                                                                                                         
  @@@@@@#                             +@@@@@@@@@@,              @@@@@@;                                ,@@@@@@@                                #@@@@@@@@@@@@@@@@@@@@@@;   :@@@@@@@@@@@@@@#`             
  @@@@@@#                           .@@@@@@@@@@@@@@             @@@@@@;                                #@@@@@@@                                #@@@@@@@@@@@@@@@@@@@@@@;   :@@@@@@@@@@@@@@@@@;           
  @@@@@@#                          ;@@@@@@@@@@@@@@@@            @@@@@@;                                @@@@@@@@`                               #@@@@@@@@@@@@@@@@@@@@@@;   :@@@@@@@@@@@@@@@@@@@          
  @@@@@@#                         ;@@@@@@@@@@@@@@@@@@           @@@@@@;                                @@@@@@@@;                               #@@@@@@@@@@@@@@@@@@@@@@;   :@@@@@@@@@@@@@@@@@@@@`        
  @@@@@@#                        `@@@@@@@@@@@@@@@@@@@@          @@@@@@;                                @@@@@@@@#                               #@@@@@@@@@@@@@@@@@@@@@@;   :@@@@@@@@@@@@@@@@@@@@@`       
  @@@@@@#                        @@@@@@@@@@@@@@@@@@@@@#         @@@@@@;                               .@@@@@@@@@                               #@@@@@@@@@@@@@@@@@@@@@@;   :@@@@@@@@@@@@@@@@@@@@@@       
  @@@@@@#                       +@@@@@@@@@@@@@@@@@@@@@@`        @@@@@@;                               '@@@@@@@@@                               #@@@@@@@@@@@@@@@@@@@@@@;   :@@@@@@@@@@@@@@@@@@@@@@@      
  @@@@@@#                       @@@@@@@@@@@@@@@@@@@@@@@@        @@@@@@;                               @@@@@@@@@@                               #@@@@@@;;;;;;;;;;;;;;;;,   :@@@@@@@@@@@@@@@@@@@@@@@,     
  @@@@@@#                      #@@@@@@@@@@',,#@@@@@@@@@@`       @@@@@@;                               @@@@@@@@@@:                              #@@@@@@                    :@@@@@@';;;'#@@@@@@@@@@@@     
  @@@@@@#                      @@@@@@@@@.      +@@@@@@@@#       @@@@@@;                               @@@@@@@@@@#                              #@@@@@@                    :@@@@@@`       +@@@@@@@@@:    
  @@@@@@#                     :@@@@@@@@         :@@@@@@@@       @@@@@@;                              .@@@@@@@@@@@                              #@@@@@@                    :@@@@@@`        `@@@@@@@@@    
  @@@@@@#                     @@@@@@@@.          #@@@@@@@'      @@@@@@;                              ;@@@@@@@@@@@                              #@@@@@@                    :@@@@@@`          @@@@@@@@`   
  @@@@@@#                     @@@@@@@#            @@@@@@@@      @@@@@@;                              @@@@@@@@@@@@                              #@@@@@@                    :@@@@@@`          `@@@@@@@#   
  @@@@@@#                    :@@@@@@@             ;@@@@@@@      @@@@@@;                              @@@@@@@@@@@@,                             #@@@@@@                    :@@@@@@`           #@@@@@@@   
  @@@@@@#                    @@@@@@@@              @@@@@@@,     @@@@@@;                              @@@@@@@@@@@@+                             #@@@@@@                    :@@@@@@`            @@@@@@@`  
  @@@@@@#                    @@@@@@@:              @@@@@@@#     @@@@@@;                             `@@@@@@+@@@@@@                             #@@@@@@                    :@@@@@@`            @@@@@@@+  
  @@@@@@#                   `@@@@@@@               :@@@@@@@     @@@@@@;                             :@@@@@@,@@@@@@                             #@@@@@@                    :@@@@@@`            .@@@@@@@  
  @@@@@@#                   ,@@@@@@@                @@@@@@@     @@@@@@;                             @@@@@@@`@@@@@@                             #@@@@@@                    :@@@@@@`             @@@@@@@  
  @@@@@@#                   #@@@@@@#                @@@@@@@     @@@@@@;                             @@@@@@@ @@@@@@.                            #@@@@@@                    :@@@@@@`             @@@@@@@  
  @@@@@@#                   @@@@@@@;                @@@@@@@:    @@@@@@;                             @@@@@@+ @@@@@@+                            #@@@@@@                    :@@@@@@`             +@@@@@@; 
  @@@@@@#                   @@@@@@@`                +@@@@@@+    @@@@@@;                            `@@@@@@: @@@@@@@                            #@@@@@@                    :@@@@@@`             ,@@@@@@+ 
  @@@@@@#                   @@@@@@@                 ,@@@@@@@    @@@@@@;                            ,@@@@@@  '@@@@@@                            #@@@@@@                    :@@@@@@`             `@@@@@@@ 
  @@@@@@#                   @@@@@@@                 `@@@@@@@    @@@@@@;                            #@@@@@@  .@@@@@@                            #@@@@@@                    :@@@@@@`              @@@@@@@ 
  @@@@@@#                  `@@@@@@@                 `@@@@@@@    @@@@@@;                            @@@@@@@   @@@@@@`                           #@@@@@@                    :@@@@@@`              @@@@@@@ 
  @@@@@@#                  .@@@@@@@                  @@@@@@@    @@@@@@;                            @@@@@@@   @@@@@@'                           #@@@@@@                    :@@@@@@`              @@@@@@@ 
  @@@@@@#                  :@@@@@@@                  @@@@@@@    @@@@@@;                            @@@@@@+   @@@@@@#                           #@@@@@@''''''''''          :@@@@@@`              @@@@@@@ 
  @@@@@@#                  '@@@@@@#                  @@@@@@@    @@@@@@;                           .@@@@@@,   @@@@@@@                           #@@@@@@@@@@@@@@@@          :@@@@@@`              @@@@@@@ 
  @@@@@@#                  +@@@@@@#                  @@@@@@@    @@@@@@;                           +@@@@@@    ;@@@@@@                           #@@@@@@@@@@@@@@@@          :@@@@@@`              @@@@@@@`
  @@@@@@#                  #@@@@@@#                  @@@@@@@`   @@@@@@;                           @@@@@@@    .@@@@@@`                          #@@@@@@@@@@@@@@@@          :@@@@@@`              @@@@@@@.
  @@@@@@#                  @@@@@@@+                  @@@@@@@`   @@@@@@;                           @@@@@@@     @@@@@@;                          #@@@@@@@@@@@@@@@@          :@@@@@@`              @@@@@@@.
  @@@@@@#                  @@@@@@@+                  @@@@@@@`   @@@@@@;                           @@@@@@#     @@@@@@#                          #@@@@@@@@@@@@@@@@          :@@@@@@`              @@@@@@@.
  @@@@@@#                  @@@@@@@+                  @@@@@@@`   @@@@@@;                          .@@@@@@+     @@@@@@@                          #@@@@@@@@@@@@@@@@          :@@@@@@`              @@@@@@@.
  @@@@@@#                  @@@@@@@+                  @@@@@@@`   @@@@@@;                          ;@@@@@@,     #@@@@@@                          #@@@@@@@@@@@@@@@@          :@@@@@@`              @@@@@@@.
  @@@@@@#                  @@@@@@@+                  @@@@@@@`   @@@@@@;                          @@@@@@@      :@@@@@@                          #@@@@@@                    :@@@@@@`              @@@@@@@.
  @@@@@@#                  @@@@@@@+                  @@@@@@@`   @@@@@@;                          @@@@@@@      `@@@@@@:                         #@@@@@@                    :@@@@@@`              @@@@@@@.
  @@@@@@#                  #@@@@@@#                  @@@@@@@    @@@@@@;                          @@@@@@@       @@@@@@#                         #@@@@@@                    :@@@@@@`              @@@@@@@`
  @@@@@@#                  '@@@@@@#                  @@@@@@@    @@@@@@;                         `@@@@@@#       @@@@@@@                         #@@@@@@                    :@@@@@@`              @@@@@@@`
  @@@@@@#                  :@@@@@@@                  @@@@@@@    @@@@@@;                         ;@@@@@@'       @@@@@@@                         #@@@@@@                    :@@@@@@`              @@@@@@@ 
  @@@@@@#                  ,@@@@@@@                  @@@@@@@    @@@@@@;                         @@@@@@@.       #@@@@@@                         #@@@@@@                    :@@@@@@`              @@@@@@@ 
  @@@@@@#                  .@@@@@@@                  @@@@@@@    @@@@@@;                         @@@@@@@        ,@@@@@@,                        #@@@@@@                    :@@@@@@`              @@@@@@@ 
  @@@@@@#                  `@@@@@@@                 `@@@@@@@    @@@@@@;                         @@@@@@@        `@@@@@@+                        #@@@@@@                    :@@@@@@`              @@@@@@@ 
  @@@@@@#                   @@@@@@@                 .@@@@@@@    @@@@@@;                        `@@@@@@@         @@@@@@@                        #@@@@@@                    :@@@@@@`             `@@@@@@@ 
  @@@@@@#                   @@@@@@@                 ;@@@@@@#    @@@@@@;                        ,@@@@@@@@@@@@@@@@@@@@@@@                        #@@@@@@                    :@@@@@@`             .@@@@@@@ 
  @@@@@@#                   @@@@@@@,                @@@@@@@'    @@@@@@;                        #@@@@@@@@@@@@@@@@@@@@@@@                        #@@@@@@                    :@@@@@@`             '@@@@@@@ 
  @@@@@@#                   #@@@@@@+                @@@@@@@,    @@@@@@;                        @@@@@@@@@@@@@@@@@@@@@@@@.                       #@@@@@@                    :@@@@@@`             @@@@@@@# 
  @@@@@@#                   ,@@@@@@@                @@@@@@@     @@@@@@;                        @@@@@@@@@@@@@@@@@@@@@@@@+                       #@@@@@@                    :@@@@@@`             @@@@@@@' 
  @@@@@@#                   `@@@@@@@               `@@@@@@@     @@@@@@;                       `@@@@@@@@@@@@@@@@@@@@@@@@@                       #@@@@@@                    :@@@@@@`            `@@@@@@@. 
  @@@@@@#                    @@@@@@@`              +@@@@@@@     @@@@@@;                       ,@@@@@@@@@@@@@@@@@@@@@@@@@                       #@@@@@@                    :@@@@@@`            +@@@@@@@  
  @@@@@@#                    @@@@@@@#              @@@@@@@+     @@@@@@;                       +@@@@@@@@@@@@@@@@@@@@@@@@@                       #@@@@@@                    :@@@@@@`            @@@@@@@@  
  @@@@@@#                    ;@@@@@@@             `@@@@@@@`     @@@@@@;                       @@@@@@@            .@@@@@@`                      #@@@@@@                    :@@@@@@`           :@@@@@@@@  
  @@@@@@#                     @@@@@@@;            @@@@@@@@      @@@@@@;                       @@@@@@@            `@@@@@@'                      #@@@@@@                    :@@@@@@`           @@@@@@@@+  
  @@@@@@#                     @@@@@@@@           .@@@@@@@#      @@@@@@;                       @@@@@@@             @@@@@@#                      #@@@@@@                    :@@@@@@`          @@@@@@@@@   
  @@@@@@#                     ;@@@@@@@#          @@@@@@@@.      @@@@@@;                      .@@@@@@#             @@@@@@@                      #@@@@@@                    :@@@@@@`         #@@@@@@@@@   
  @@@@@@+                      @@@@@@@@#        @@@@@@@@@       @@@@@@;                      '@@@@@@'             @@@@@@@                      #@@@@@@                    :@@@@@@`        @@@@@@@@@@+   
  @@@@@@#;;;;;;;;;;;;;;;;;     @@@@@@@@@@.    ;@@@@@@@@@+       @@@@@@+;;;;;;;;;;;;;;;;;     @@@@@@@.             '@@@@@@`                     #@@@@@@                    :@@@@@@`     :@@@@@@@@@@@@    
  @@@@@@@@@@@@@@@@@@@@@@@@     `@@@@@@@@@@@@@@@@@@@@@@@@        @@@@@@@@@@@@@@@@@@@@@@@@     @@@@@@@              .@@@@@@;                     #@@@@@@                    :@@@@@@@@@@@@@@@@@@@@@@@@#    
  @@@@@@@@@@@@@@@@@@@@@@@@      @@@@@@@@@@@@@@@@@@@@@@@+        @@@@@@@@@@@@@@@@@@@@@@@@     @@@@@@@              `@@@@@@#                     #@@@@@@@@@@@@@@@@@@@@@@;   :@@@@@@@@@@@@@@@@@@@@@@@@     
  @@@@@@@@@@@@@@@@@@@@@@@@       @@@@@@@@@@@@@@@@@@@@@@         @@@@@@@@@@@@@@@@@@@@@@@@    `@@@@@@@               @@@@@@@                     #@@@@@@@@@@@@@@@@@@@@@@;   :@@@@@@@@@@@@@@@@@@@@@@@:     
  @@@@@@@@@@@@@@@@@@@@@@@@       ;@@@@@@@@@@@@@@@@@@@@,         @@@@@@@@@@@@@@@@@@@@@@@@    ;@@@@@@#               @@@@@@@                     #@@@@@@@@@@@@@@@@@@@@@@;   :@@@@@@@@@@@@@@@@@@@@@@#      
  @@@@@@@@@@@@@@@@@@@@@@@@        @@@@@@@@@@@@@@@@@@@#          @@@@@@@@@@@@@@@@@@@@@@@@    @@@@@@@'               @@@@@@@                     #@@@@@@@@@@@@@@@@@@@@@@;   :@@@@@@@@@@@@@@@@@@@@@#       
  @@@@@@@@@@@@@@@@@@@@@@@@         @@@@@@@@@@@@@@@@@@           @@@@@@@@@@@@@@@@@@@@@@@@    @@@@@@@`               '@@@@@@:                    #@@@@@@@@@@@@@@@@@@@@@@;   :@@@@@@@@@@@@@@@@@@@@+        
  @@@@@@@@@@@@@@@@@@@@@@@@          @@@@@@@@@@@@@@@#            @@@@@@@@@@@@@@@@@@@@@@@@    @@@@@@@                .@@@@@@#                    #@@@@@@@@@@@@@@@@@@@@@@;   :@@@@@@@@@@@@@@@@@@@          
  @@@@@@@@@@@@@@@@@@@@@@@@           +@@@@@@@@@@@@:             @@@@@@@@@@@@@@@@@@@@@@@@   `@@@@@@@                `@@@@@@@                    #@@@@@@@@@@@@@@@@@@@@@@;   :@@@@@@@@@@@@@@@@@`           
  ++++++++++++++++++++++++             #@@@@@@@@'               ++++++++++++++++++++++++   ,+++++++                 +++++++                    '++++++++++++++++++++++:   ,+++++++++++';.               
                                          `..                                                                                                                                                           
                                                                                                                                                                                                        
                                                                                                                                                                                                        
                                                                                                                                                                                                        
                                                                                                                                                                                                        
                                                                                                                                                                                                        
  ::::::  ::    ;: :::::::;  :::::;  ::::,   ;:::::::  ::,    :: `;:    ;, .::    `:;  ::::::  ::    ;: ::::::::      .:::,      :::::: ::     ;; `:::::: `:         `';     ;::::    ::::::  :::::     
  @@@@@@  @@,   @@ +@@@@@@@  @@@@@@ `@@@@@@  @@@@@@@@  @@#    @+ .@@    @' ;@@    '@@  @@@@@@  @@`   @# @@@@@@@@      :@@@@@:   `@@@@@@ #@     @@ .@@@@@# .@        @@@@@.   @@@@@@'  @@@@@@  @@@@@@+   
  @@@@@@  @@@   @@ +@@@@@@@  @@@@@@ `@@@@@@@ @@@@@@@# `@@@    @+ .@@;   @; ;@@`   @@@  @@@@@@  @@#   @# @@@@@@@@      :@@@@@@,  `@@@@@@ ,@,    @# .@@@@@# .@       ;@@@@@@   @@@@@@@  @@@@@@  @@@@@@@   
  @#      @@@   @@    #@     @:     `@:   @@    @@    '@+@    @+ .@@@   @; ;@@+   @@@  @+      @@@   @#    @@         :@   '@@  `@:      @#   .@; .@.     .@       @@   :@+  @@   .@' @@      @@   .@'  
  @#      @@@'  @@    #@     @:     `@:   ,@    @@    @@.@`   @+ .@@@   @; ;@@@  .@@@  @+      @@@,  @#    @@         :@    #@: `@:      @@   ;@  .@`     .@      `@;    @@  @@    @# @@      @@    @#  
  @#      @+@@  @@    #@     @:     `@:   ,@    @@    @# @+   @+ .@.@#  @; ;@'@  #@@@  @+      @;@@  @#    @@         :@     @# `@:      @@   @@  .@`     .@      ;@     '@  @@    @# @@      @@    @#  
  @#      @++@` @@    #@     @:     `@:   #@    @@    @; @@   @+ .@`@@  @; ;@`@: @#@@  @+      @;@@  @#    @@         :@     @@ `@,      :@   @@  .@`     .@      #@     .@  @@    @+ @@      @@   `@'  
  @@@@,   @+`@# @@    #@     @@@@   `@#++@@@    @@   ,@  @@   @+ .@`:@, @; ;@ @# @,@@  @@@@`   @;`@+ @#    @@         :@     @@ `@@@@    `@:  @+  .@@@@   .@      @@     `@` @@+++@@  @@@@+   @@+++@@   
  @@@@,   @+ @@ @@    #@     @@@@   `@@@@@@     @@   #@  ;@   @+ .@` @@ @; ;@ @@,@ @@  @@@@`   @; @@ @#    @@         :@     @@ `@@@@     @# .@`  .@@@@   .@      @@     `@` @@@@@@#  @@@@+   @@@@@@+   
  @#      @+ ,@:@@    #@     @:     `@@#@@      @@   @@  `@:  @+ .@` @@ @; ;@ ,@@@ @@  @+      @; '@`@#    @@         :@     @@ `@:       @@ ;@   .@`     .@      #@     .@  @@###,   @@      @@##@+    
  @#      @+  @@@@    #@     @:     `@: `@'     @@   @@@@@@#  @+ .@` .@'@; ;@  @@# @@  @+      @; `@#@#    @@         :@     @# `@:       +@ @@   .@`     .@      '@     '@  @@       @@      @@  @@    
  @#      @+  @@@@    #@     @:     `@:  @@     @@  `@@@@@@@  @+ .@`  @@@; ;@  @@. @@  @+      @;  @@@#    @@         :@    +@; `@:       .@ @#   .@`     .@      .@;    @@  @@       @@      @@  '@`   
  @#      @+  `@@@    #@     @:     `@:  +@     @@  ;@@@@@@@  @+ .@`  +@@; ;@  +@  @@  @+      @;  ,@@#    @@         :@   :@@  `@:        @;@:   .@`     .@       @@   ,@#  @@       @@      @@   @#   
  @@####  @+   @@@    #@     @@#### `@:  `@+    @@  @@    ,@` @+ .@`   @@; ;@  `@  @@  @@####  @;   @@#    @@         :@##@@@;  `@@####    @@@    .@@###+ .@#####  '@@'#@@   @@       @@####  @@   @@   
  @@@@@@  @+   '@@    #@     @@@@@@ `@:   @@    @@  @@    `@+ @+ .@`   @@; ;@   +  @@  @@@@@@  @;   #@#    @@         :@@@@@'   `@@@@@@    @@@    .@@@@@# .@@@@@@   @@@@@;   @@       @@@@@@  @@   :@`  
  ++++++  +;    ++    ++     ++++++  +,   :+    ++  +'     #+ +' `+`   ,+: :+      ++  ++++++  +:   `+'    ++         ,+++;      ++++++    ,++    `+++++' .++++++    ,@#     ++       ++++++  ++    +'