--                                                                      
                                                                              ~;                                                                      
                                                                             ';;                                                                      
                                                                            ;-;';                                                                     
                                                                      '   '---;';'                                                                    
                                                                     --  ;-----;;;'          ~-                                                       
                                                                      -'---|~~~-;;-'    '';--''                                                       
                                                                     ;~~---~~-;;;;---~~~~||}-                                                         
                                                                     ~~--;;-;';;;;---~~~||||'                                                         
                                                                  ''-~-----;;;--;----~~||~||                                                          
                                                        '''''''''''''';;;;;;;;;;----~~|||}|-                                                          
                                                    ''''''       ''''''''';;;;;;;;---~||}}|;'                                                         
                                                ''                    '''''''';;;;;;;;-~|||'-;                                                        
                                             '        -|                '''''''''';;;;;;;--                                                           
                                          '        -~~;=|                 ''''''''''';;;;;;;;                                                         
                                              ';~|~'   '}+}-;'     '';-~-;'''''''''''''';;;;;;;'                                                      
                                       }~-~|}+~;         '//}}+=/}||~-;     ''''''''''''';;;;;;-;'                                                    
                                    '   ;/~;}}           }/~;~}+~            ''''''''''''';;;;;;--;                                                   
                                  '    '/}|}+'          ;+/}}/++'             ''''''''''''';;;;;;---;                                                 
                                 ''    }////'           ;+///++;              ''''''''''''';;;;;;----;                                                
                               '''     /++~              ~//}~                ''''''''''''';;;;;;;-----                                               
                              ''''      '                                     ''''''''''''';;;;;;;;-----                                              
                             ''''                                              '''''''''''';;;;;;;;------                                             
                            '''''                                             ''''''''''''';;;;;;;;-----~-                                            
                           '''''                                             ''''''''''''';;;;;;;;;------~;                                           
                          ';''''                                            '''''''''''''';;;;;;;;;-------~                                           
                   '     ';''''                                        ''''''''''''''''''';;;;;;;;;---------                                          
               '        ';;';--;;'''''                    '''''''''';;;;;'''''''''''''''';;;;;;;;;----------'                  ''                     
               '        ;;;';~|}}||~~~~~~~~~~~~~~~~~~~~~~~~||||||||}}}}|~;''''''''''''''';;;;;;;;;----------;'        '''''''''''';'                  
              ';'      ';;'''-|+=|-~|}////}}}////}}}}}}///}}}}}}}}}}}}+|-;'''''''''''''';;;;;;;;;-----------;;'''''      ''''''';;;-                  
               ;''''   ;;;'''-~+=~'';~}}/}}}}}}}}}}}}}}}}}}|-;;-~||||+/;''''''''''''''';;;;;;;;;------~~~--;;'''''''''''''';;;;;---~                  
               -;;''''';;;''';-/=|;;;-~}}}~~~|}}}}|~~|}}}}|;';;-~|||/=|'''''''''''''';;;;;;;;;;------~~~~~--;;;;;;;;;;;;;;;----~~~~~                  
               '~-;;;';;;;''';-/=};;;-~|}};;;-|}|};;;-~||/}'';-~|||}==-'''''''''''';;;;;;;;;;-------~~~~~~~---;;;;--------~~~~~~~~|;                  
                ;~~--;-;;'''';-}=+;;;-||}+~;;~||/+-;;~||/=+'';-~||}===''''''''''';;;;;;;;;;--------~~~~~~~~~~---~~~~~~~~~~||||||||;                   
                 ;|~~--;;''''';|==;;;~||++/;-||++=};-||/===;';-||}===}''''';;;;;;;;;;;;;;---------~~~~~||||~~~~|||||||||||||||||~;                    
                   ~|~-;;''''';|==~;-||++++}|}++===|||+====|;;~||====-'';;;;;;;;;;;;;;;----------~~~~~|||||||||||||||||||||||~~-'                     
                    '~-;;''''';~==/-~}+++++++++=====+======/;-||====+'';;;;;;;;;;;;;;----------~~~~~~|||||}}}}}||||||||||||~~~'                       
                     '-;;;'''';-===//+++++++++==============||}=====|';;;;;;;;;;;;;-----------~~~~~~|||||}}}}}}|||||||||~~~-'                         
                     '-;;;'''';;+===+++++++++================+======'';;;;;;;;;;;-----------~~~~~~||||||}}}}}}}||||||~~~~-'                           
                     '-;;;;''';;/==+++++++++=======================|';;;;;;;;;;-----------~~~~~~~||||||}}}}}}}}|||~~~~-;                              
                     '--;;;'''';|==+++++++++======================+'';;;;;;------------~~~~~~~~~||||||}}}}}}}}}||~~~-'                                
                     '--;;;'''';-+=++++++++=======================~';;;;;;-----------~~~~~~~~~|||||||}}}}}}}}}|||~;                                   
                      --;;;'''';;/=+++++++=======================/';;;;;-----------~~~~~~~~~~|||||||}}}}}}}}}}||~                                     
                      ---;;;'''';~==++++++=======================;';;------------~~~~~~~~~~||||||||}}}}}}}}}}||~                                      
                      ;--;;;'''';;/=++++++////+++++++++++=======~';------------~~~~~~~~~||||||||||}}}}}}}}}}}||'                                      
                      '---;;;'''';~=++}}||}}}}}|||}}}}////++===}';-----------~~~~~~~~~||||||||||}}}}}}}}}}}}||~                                       
                       ----;;;''';;}|~||||}}|~~||||}}}////++++/';---------~~~~~~~~~||||||||||||}}}}}}}}}}}}}||;                                       
                       ;~---;;;;';~~~~|||}|~~~~~||||}}//+++++/;;------~~~~~~~~~~~||||||||||||}}}}}}}}}}}}}}|||;                                       
                        ~~----;;-~~~~~||||~~~~~~||||}}//++++/;;---~~~~~~~~~~~~~|||||||||||||}}}}}}}}}}}}}}||||}}}}}|-                                 
                        ;~~~---~~~~~~|||~~~~~~~~||||}}//+++/;;--~~~~~~~~~~~~||||||||||||||}}}}}}}}}}}}}}}}||||}}}}|||                                 
                         -~~~~~~-~~~~||~~~~~~~~~|||}}}//+++;;-~~~~~~~~~||||||||||||||||||}}}}}}}}}}}}}}}}||||}}}}|||~                                 
                          ~~~~~---~~~~~~~~~~~~~~|||}}//+++/-~~~~~|||||||||||||||||||||||}}}}}}}}}}}}}}}}|||||}}}|||~'                                 
                          '~~~----~~~~~~~~~~~~~||||}}//++++||||||||||||||||||||||||||}}}}}}}}}}}}}}}}}}||||||||||||'                                  
                           |~~----~~~~~~~~~~~~~|||}}}/+++++}}}||||||||||||||}}}}}}}}}}}}}}}}}}}}}}}}}|||||||||||||;                                   
                          -|~~-----~~~~~~~~~~~||||}}//++++//}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}||||||||||||||||||~'                                    
                          ||~~~-----~~~~~~~~~||||}}}/++++////}}}}}}}}}}}}}}}}}}}}}}}}}}}|||||||||||||||||||||||~                                      
                         ;||~~~~-----~~~~~~|||||}}}//++++////}}}}}}}}}}}}}}}}}}}}}}}}}||||||||||||||||||||||||;                                       
                         -||~~~~~-~~~~~~~~|||||}}}//++++//////}}}}}}}}}}}}}}}}}}}}}}}}||||||||||||||||||||||-                                         
                         ~}||~~~~~~~~~~~||||||}}}}//+++///////}}}}}}}}}}}}}}}}}}}}}}||||||||||||||||||||||~'                                          
                         |}|||~~~~~~~~||||||}}}}}//+++////////}}}}}}}}}}}}}}}}}}}}||||||||||||||||||||~~~'                                            
                         ~}}|||||~~~||||||}}}}}}///+++///////}}}}}}}}}}}}}}}}}}}||||||||||||||||||||~~-'                                              
                         ;/}}|||||||||||}}}}}}////+++////////}}}}}}}}}}}}}}}}}|||||||||||||||||||~~~-'                                                
                          }/}}}}}|||}}}}}}}}/////++++///////}}}}}}}}}}}}}}}}}|||||||||||||||~~~~~~;                                                   
                          ;///}}}}}}}}}}}}/////+++++////////}}}}}}}}}}}}}}}}||||||||||||||~~~~~;'                                                     
                           ~//////////////////++++/////////}}}}}}}}}}}}}}}}||||||||||||||~~~;'                                                        
                            -/++++///////+++++++/~}////////}}}}}}}}}}}}}}}|||||||||||||~-'                                                            
                              ~/++++++++++++++/~    ;~|}//}}}}}}}}}}}}}}}|||||||||~-;'                                                                
                                '-|}//++//}|-;           ';-~~||}}}}}}}}|||~~-;;'