.                                               
                    .''                         !                                               
                    .'.                     ....%!'             ..   ..                         
            ...''.  .'. ..'''  ...  ..    .''  :+!  ''  ''.  ..  .''..''   ''.   .'             
               ':.  ':.  '!++::''.        ''.  +^+: ''  '.  ''    '!!':!.  '''  .'              
     .    .'.':^!.  :!...'^/%/%%^:'.      .'' :+^^^ '' ''. .:!'':^+X/++%:.'..:'.'               
   ..'!^!!!'':^+/!:!+/^:'!+%/+///+:!::     .':%%%+^+''  '::':^^^^^+++^^++:'::!^!:^!'. ...       
    .!!^^!:'':!!^^^:!^++^/%//////+:'':!!:'.  ://+^!+:''.'!^^:'.:!+/////+^^^^!:^!!:'''':!^+^!:   
       !^!!!^..':'^++++++^^+////++^^+^^^++++^+++++^+!^!^!^!!^///%/////+^!+++!^+!::'':!!!^++^:   
        :!!:' .:':++^++++^!!^++//+++++++!!^^+++//++++^!::!^+++++///++!::!!+++++^''. .!!^!!:'    
         .':^^^!!^+!!!!^^^!^!!!^^++/////+^:!+++++/+++^!:+//////++^^!^^^+//++++++^^!!^^^^!       
            ''.''....'....:!^:'':!^++^!+++.':++/++/+!:.!//^!+++^^:!!^^+^!:'''::::!^!^+!.        
                 ''::'...''!'''':^^^^:..^+:.!^++++++^'.++'.:^^^+/:'':+%%+:::!!::'.              
                  ...''..'!!+^!!!:!!!!!:'+/!!^++^+++^:++:':!^+^++/^!^/XC%^:!!!!'..              
                        .''!^++++!'':::!^^//+++/^+++^+/^^!:^+^^+/%C/++++/^^::'''..              
                      ...':.:^^^:'':!^^^^+^//+++^+++//+^^^^%XXX%XC%/!:!:!!^:::''''              
                  .:^!^':.'. ''^++++/++/+^+//+++++++//++++/0$BNNB@%^ '^!^+:.    ''              
               .::/%%%%+^: :  ..!^+^^^!. :^^++/++++++^^!..^C@$BB0%^' :^^+:               .!'    
               '+^/%%%%/^:.:'      ..   '..:+//+^+++^:..' .+%X%++^:. :^+^                  :    
               '^:+%%%%^!:....           ^^^+/++!++++^:^  '+/+/++^!. !++^ '                     
                 .:^/^.'+:. .            '++++^+++^+++^:  '////+^^:  :^^^.''                    
              ..:^^'%/+!/: '.             .:!!^++!!++!'   !/^:'.'^.  .'::. '.                   
               '^+'./%++^ ...              .''^/++++!.   :^^^'.  //!''::....:.                !.
                :^!:++/+'                ..''^++^++^:... ^++%^.  +^:!:''.':::'                ''
                 '..:^/:'.'.            '.^++/+^!^++^':.'':^^:.  ^/+::. ......                  
               .'''^//^:..!^!.         '!++++/++!!^++++^!:':'     '::''..                  ..   
             '!+/!''^.''''!^!^       ..'^/+^+++++++/++++^:''                                    
        :   '      ^:'::'^^.:!       .'!+///++/+^+//+++++!!:  .                                 
    ^^    .'!     ...':' +! '.        ''':^++///+/////+^:':'  ..                   .            
     :+.  '.       ..... !. '.             ^++/+++++++   ..    ..                 '             
       .               . ' ..             .!^^!!^!:^!^.  ...                                    
                      '   .'                             '..                                    
                        .  '                             ...                     .              
           .              .'                             .