asciio
``'++++'+++:, ,+@@@@@@@@@###+@@,;@@+ .@@@+'@##+@@##@++#@';@@@@@@@` :@@@@#;`',@@';+@@;`::#@@@@,# #;#@@#; @@+@,+#:;@#;;@#@@@@','@@#,; ,#'''`::,@#@@, ##@@'@'+#@@@@@:;@@@@;@##@@`:#@# `.,.#,@+:.#` @@'@:@@,@@@,@@+@@;@@@'.;#;'+@@@@+ '` :`'@'+;@ @@;@'`@@@;@@@##@@@@@@@,.:#@'`;@#;@'#,;+@#@,@,' @@#++@@;@@'# +@@,`;+..;+`,#','####@.##'#+@+@ + @@@@@@@+@' ,,, ,@:`@+;@@+@+'@@@@:@@#;@#.+ . '#@@#@@@@#`+@@@.;#@,@@ .'+##@.@@@@;@:;+. @ #. : .@@'@@@@@' '@@@+@#:#@@@@+:#+`#@:@+,@`#@:@ @:.. : @@@@@@#@'@.+.. #,'##+@@@;#:'++;@#';,#`@., #.,` ; #@@@@@#,@@@@:'##`@@#+#'#+';+@,+@:+++#,@+`+.` .,,.` ;@@+;''+@@@.@@@:+@@;@@+@@':@'+@+;.,;@`.@@`.@:,:;+ @+'@@@#,;+@'@@@@@@.@#'@##,@`@@ :, #::.,#@;;'@''` # ;@@'@@;,#@@+@@@## @@@:@@`@;@'@.;;+`'#:`@#@';:,: ,+ @,@@+:@@@@@'@@@#+`#::@@@:'##: '`;,`:+:@+@@. ;',.:. #+@@@.@+@+@;@:#@`@`+@ @:+';+ '+`;+:;'#+@@+,@:;``.# @@+;@@;+ #@@@@;@:#++@@#@ ,':+,+.':+#.;@@+'@'# :`:; :@@@'@@#@#@@'@@@#'+#,+@@+;+' ;; #+:@`@@@@'@''; ,.:, ##+#+@##@#@@@@@@#@:@;+@';::`' ,,..;`#@+##' `.;` :@@@+@@:,'@@#@#:#+#+@@.@+@ # ,+@ +;@+':@+` `.: .; @@'+@@@#+:@#+;'+@;@;@;#@#:''.#.@#+'@@# ;,; .; @@ @@@+@@@@,@@@;+,@@+@@,@@#@#@,#,;,# ` `:' ` .` #++.@@@@@@:@;@+@@+#'@+@##:+@;,;+#@@` :; ` ; ;@#@@+@@#@@@#@+@;#``#@+.#@'@#@#+@+@ :; ; . .@@#@:.@'@@@#@,+@+':+;@@ ,`;#@;+@@' ,; ` ; '@'@:`####@:+'#`:,+,,+ @@:@`''#,+@@ ,, .. +@`@:;@@ @@,:@@:''+;+'+''+;`'::,+@@ ` ,: ; .;:@@@+@+`@; #`@++'#@@#`,,..'.;,+.@ ; . `'@+#@#+'@;@+ #`@+#.'@@#.#,`.+.;,+.@ ` ` ;@@#;@@,`@#@@+@@##@,@::+#,#``:.''+;# @@@,;:@+@#;@@+@;#;@,@ ;#@''`.,.'''## +#+#'#+@:+#@@ @.@,'@'`@@@#;.;..;#`.@ .#:@+.@:@@##@@`@,`#@;' @#@@#..``;'`.# ##,@' @@@@@##@`+#'#@`,`''@#@ ` `:; '# +;;+#`@;#@@@@'',,@,@+;..:#@@ .`:; :+ ';#@@;@+@@#@@'+ @`+;;;@ @@@ +;:@' +, @@@##@;; @#+@@@# ;+#+;#'+.,@@.; +;+.', `@ .+@;: #'#+#+@;#:'#@#'#'@''@@@:.;;+:+. ':,:# ,,. :, , ##+@,@,#' '+#@#@@++.:+++` + ##:`#.@;#@@@@+,: +.,@;:' ''@;:',@ ;:+`+ # #,#+:+;:@@#,;@@@`` #@@#:@,+:# :. @`#;;.+ @,;,;@'#;+@@+'##@@+@@;` @#@#',,+'@:,# :;:,# ,;#@@++@@@@##;, @ '`;@;+@+@#:#@++##@#@ +.;##,;:@:#@@+; ,..#+ :@###@,.#++@#:#@''#@@+;+:` +;,'+'@;+#;@@+@;#@:#'.;.# + ;+`+'@`@;#@'.: +: :@;@.,'#+@@';#@@`@@@;,@@@,..,'@+,:`@`' ##@`@@@@#.+#@#'@`#@;@,:;@@;,,`+@;`'`,:: :';;@@,@;@##@'@@@@@@++@@'@#+@#@@@#.;+@@`.;:@+@@ @+,@'@:':@@@#;@` #';`'.`:@':,`:.; ,+++'@@'@++@';@@@,,@:#'++#'#:#@#;;@@++,'@@@`+,###;'@+@;+,@;@+.#`#@+:#';.@`;.@++:.',: ;+@+,#'`@#;#@::@@';#,@''@;;.#@;:+@ @;+@@@@##,#;@.@;@#'#@@;@@`'#:@#;':.: @@' :;@. + #;. `':.@++'.@.#@#:;@'##'@#+@@+#;#.,@#@@@#;:#@@@:#,:# @ #@;#.@#@:+@@.'.#+`@ # ;'+` ;@` @ ,: +#.@#@'@@;;@+@#@'':+'+'#;;#+';@;,#@.#;@,##.'#;.@'#.+@'@+@:@@:@#.@@@@.@@+#.`@;#.,+@. @`,' ,':'@:@#@@.@@.@'@@@@.@+@`#+`+@`@#+@#`++';#;#+@@`;'@;@.#@@#@@,#@@@#@,,@+++@',+,:@ +#@@+#`.# `:,:@@'@'@:+@,:@+@,@`+@`#,:,.+ @@,##`.@@#@+'+@@.+@:@ @...#@.@+@@ #'@,@@'@:@:,@;:'@`@@@#:'#:, ;'' @@,:'@,@'`+'#@@+ .,`.#+ @;;@.' +#@'+#:##.#',@'#'+@#@#; @@'#@@@#'':@@:@#@; #+,;@`@@@':;#:` ''# @@+.@+#@:;`@#@;'+@:' :;.+;+',`;:#'' @#@+'@@..@@@'@::#:##+'+''@@@,+@+;@#@'@#;@,,#,+@# ;,'+ ''+@+@@@.@@@.#.#,#;+ +:'..@.@`:`,:@;+`.@@@'#`@@;+@#`#@+@@@:@,`@##:'+@;@@@:@@@@;@,@# @',@;.::,+ #@'#,@@@:@#@`:'+:;+; ,,,``;+`:,..#`'`+@@#++;':#@'#'#@',@:+@@@:# @'@+#;',,@#.+;#@+#' ;'@@#;#.' ' #@#+##'#@@#@#,#',;@::`:; `+' : '+,++;@+#`':';++:'.#@@@+#`@+:@,@#`;#@+@@',@#@,;,.@ @#@:,`@@#`'::, #+@@@.'@##@+@' '`;#`,`,`` @` # ;';@ #,,:'.@;,;.+@+#:`+@#@@@@'',+@`@##+@:@`@##@@@+;@` '.##@@;@', #+@@;@@#,@`'+; @,#'`:`,.` #,`; .,+;`+`#.,'++', @@ #++:;#`.@:@@.@,#`@'@@@@#, @'@@+.:#'#`',,@#+@:; @@'@'@:#,@`@;@#@;;#:,`+`,`;`';```;.;#:`.+#.'`.;@..'@+:'@`;@`+@+#@#+.@+.@@+@@#;@@@@;+@@@@ #+@#'+:;: @:@@#;:@'#;@`#.+#;. ` '; '.:,.`:`.;@+ #`+.+ '@#:@@,;+;+#`@@#.#@ @,:#:#+:'#;@.':@,,#:@,@@ '@@@'@,, +:@+@.+@#,'+@.',` ; @ #+ .., :. .``:'@'#:#;,.+;++##;;#;# #@',@.#'@##@@.:##@@@@.+.+@@@#,@@#,@:.#@@`; ''@+#`@'#';''`:` +' +`:+ :`, .. .'';.` ;@.,'''#'@:#',@@ ;@+@+#;';@#@:@.@;:##@;''@: @@@##'',,@@@@@@@ @#@@@.@`',++##;:;': ,:`: + `` +`@`';;: @@`++:+;:@#@+';@,@@##,,@`+@@@@@@. #'#@+#@'@:#`.@@@@',+@+@@;@' :@#@:@+'#@.#@,`;.`., .;` '+'+ :@, #@@` ;'.@@ :@.;@++@:@#@@;###@,+@#;@+'@:@:@;@@#@#@.@#.,@.;@@+@''@`@. .@@@'@@+':+'+` ,::;; ...; + + :+,,;#+,:@;@;@ :'#,':@`@#:@@;+#+:@##'+@`#@;@''@@+#.@@@:@#@#@#:::`#@@@:@ ':#+,@@@:'@.+'.;,:` `. :. :.;' ++:#.'+#';+@+#`++#;@,,`@@;@;.@'@`'@@#@#:@##@,,`;@@,`+.+.@@,@+@+;+``,.@:` @.@##@@@@@:;.`:@:.`'#.;. ' #. +@`;;.''#:+@;`@'':@,#,;+@@#.;'@`++;#;.#;@''+#@.,@@@@#`#`@,@@'@#,'+@;@@@#@ `@+@#':#''+ ' `,'' ';'., :':, +,@`@;+;#:`#;`.@ @#:@;#' @@+:+@#;`@#@,#;'@+@.@@+#;,+@@@.@@:@'#+`@@,+@'@'@+ ;@:@+;::+#.,@ +;.' :`,, :..#':#`#;''#'#.@@ +@:.@:##.;.'@'@#@###`@#@:@@@#+@;'@+#@,#@' @'@@`@ @#:'++;@##@@` #@#####@,'+`+.; ,; :'.. . ; .@:.#;++.#@@`@##@`,;'+@'@;@@@#@+;;@,@'@@@#@@;#@@@@'@#:@@':;@@`.##@@,##.@:@; '+;@+#`'.'@: ++;,,' :,`, ;,`@ :;' +';#.'::;#'++:@@@@`:+.@'@:#@,#@:@@@ @:'@'+@# @:@`@@'@+`#+`#+@#..+,@`@@@ ,@:@;'@#`@.@;@.: ,:' ' , '```;;,#@ .'#@;'###':,@:@#@.@'`@@@;'@##+@+'@'.@'@@#@#@,;'@,#+@#@@@,@@@##+@,,@@ :,',#:#;+';+@`:;.., ' :, ; :+ ; # @+#:#@:@@@@',@#;''@;.++`###@:@@@@@'@@@@.@#@#@@#@@@.:@@;##@@@@:#@#'@@@'##@ .'@.`###.@@ ;+++# @:`; `:.;.` ` : ; #;' @+.@``.`#+@@'@;@#@@@@` @+##@@@,@+@@:@@@@@@@@:#,@ @@,@,@@'#@`@''@+++';#: ;#;+`:#+'`+@'@@#,@ @`,. , :' , ,; .` ,.:+'#@@ #@+;@+;,@,@++@;'+@#.'@@ @'@ @'@@@@#@#@@`@@@.++@@@@#@###@@@@@.::++`@, ,+;:';.: ;::+,' ;,+:;' ... ` ;: `: ; `:@;# '@#;',@``#@@@'@,#@;#`;@@@@@@@@@#@;:@#@@#@#;.@:@''`#@,@@:#@:@+@'#@@+@;++##@, #:;,; ; `,;.#++@;@:' ', ';:, +: ., #:`:;+@'@++@#;@#@;#@@:`#;@#@@+@@@;#@@'@@`@#+@#+@@'@#,@';@@@@ @#'@@ @@:@.@:;#:@;#'.+ +:@# :;;:, : ,.` #;+++,, ; +.'`.. ; ,.,#.:;:'@;,:'@;;##'':,#.@@;:+.@@@`#@#'@+'#.#@+#@@+@@##;@@'@@##,@+#@@,;@@`@##@@@ ,@;+;@,` ++: '+ .` ;.` :,.@:+,@' ````::.: ,, :,:' ,`+:;@#@+@+@@'`.@'#:'@'@@@@@@@@`@.@#;@+@@@@@@@@@'##'@@++@.@'#;+@;@+@:@+.'@+#@.@+ #`@ #:`+;`'` .' ``, . :;.`@'#;;`, @ #;. ` ` ` : `' +;@#+``,+@#;@@`@#@@@@#@'';@@@#@#@:+@++@+@@'@#@;'#+@@#@,+@@+'@#@ @#@+'@+@@ ,@#@' @+@.++.`#,+ + #.; ;,``` :,:+'#,'; ,`` # # ;: ` ; ;'+,.`.,. @@:@@`@#@+@@+`@@+#@@@@;@@@:@@ '+ ,'.';@'@#. `,; ,'#@ .,@@,@'@@,##,@;;#:@@#. +`'```#` + , . ,` `#;'.;`:, ;` ' . .: ; , @#`:'`;::,,#@@+@##.:+@@@+@ @@'@;'@@'++;+```@;@@@@` ,+#.:+@@@# ,@@.,#+,#@#@@@'+@' @++`@ .+';:` `' : ;,.: . +`.#++:;` : '. '; , `:+.'`: . +`##+:'@.##@@@@'@#@,@@@@#'@@ ;,`.,@##` ,#@@@@#@@#:.'@@' +@ @:+@,@+#::@@ @@@ @;`#+; ; ,@: #` , : :` ,`. @##,'.,' .. ' ' .:,, : '`; .' ''+ ;; #+#@.'@.'@`@#@@@#+#@@`# .+# ,+@`+ `+@@@@#+;;'###, `, .+'#`@@@+`#'+@'@@ @@@`;@#@@;+ ,` +: , # ' : ` :`:+:.;. . ;. , :: , `,`;` :.' @` ,# `+#@@;#'@@@@@@@@#@+`#` #;,,@' `'.`+:. `` .:+#@'. `'# :#+#@@@@+@@@#@+.@+,#,,.`.@.,.@+@ ,. ` :+ '@@;@, ` , :; ` ;`. , '; .;`'`: : +:`@.@@#;@##,@@+##@@, #`'+#, +@'``.'++', .@+#.,#:' ,# +@@@@#` ..'##':@@@#@#., :@ `@; '#+ .:, :. `;` +: #` ; ,` ' #. :`+ ,``: :, ` ,.,+ `@`,:@@#@@##@'#@@' `+ `@@. ##. +. ' .###.'.:#.`;+,`+..,:@@@@#` .`+@@#+',:.#` ##+`; .:` :,. +:@:'' ;` ;: ; #;`:'`; ; , ,,. .`` `;``:','@#;.#@#@''@@+. #@; @, ,@+, , .;';`:+ .':, :+#@@#@#+,,.@@'@ ##.`@, , ; , ` . ;' .#. @; .:, `', `:# ; . : ; ;: ' ,; ,:+;@;..@#.#@,@`,+::' #+` `` `:;;:, :+'`'@';;##; `,;': :@` @@#@: ,@. @:`# + . . , `,`': '. ; ```;,:. ';` `' : : ` '' `#`':@,@@@@#@,;@'',+@`;,: ., :# ' ,:` ;: @'@#;''@+ #++; + . ` ., ,;@;' '; # ', ,, :`:::,`; ` `; . . #. +';##`@`@`';..@`.:: #` . #,:;@`# .`` : : , , .+ # .,`: `;` ;`,.@ ..; : , @'+. :# .,,'#@@#@@@#@'#@ +' `@``@@ @;@++' .. , ., ., . ;. `' ;.`,+: ;'` :. ``` ` `+; `:.#, .@':@.@`'#@; ; .; +@;.. `.;,. . `+ ; :`,; ` :`. + ; ; '` .:: #,#`.:.`@'@@:@: @@ # #@+#@ . ::` , .,`,:.',, ;, `: .;. ' ' : + :, : ,,,`.`#:;+'@+'.'#+ ' ' : : ',` ,,, ' +`;.;; :,``:`:::@ ` .. ` ,:, +;.,'#@@##+:: ,:+; ' ;, ;@'' + : :`: .'.: ` ;:.. ` ' `; . ;` . , , .. :+`+;:;#++#'#.@+;@# '. ;@';,,: `+@+ , ,,, ,, ;' ,,... , + ': `' ' ;' '' , . `#; # `,::@'#`+#@` :: @ . ';: ' + '. +; : . '` .;.: ::. , :. ++ ;+;',`'@@';@;+@ ,. # ';' , .':, #; ... `;,, :.: ..`:; `+ `,`+@ :@@;@ ++@:'+@@, #@ . # ,`; :` . .,; ;; .`; ;,': `:` +. ' ,,'@''`#@.'@;##@;@,#: ', # #` :.'`` , ;;; ;.':+: ` #. #, ; . `` '#`##,:'@#'@ '@;@@`.` ' ` ' ` #;`'.: ;`# +.@+@. : ';` +::` #;: @'+@ #++@@@`@@ @@:' . +. # ;@.; `'+ '. # +';'@`:' ':: ;`: `, ;':,.::.@@':,,@#@@,@@+@@ . ``` `' `':; ; ., ';'# :#,,@;.#+,,; : ,`` `#@ ',. +@@+@';@ @ :@:'+` ,;;#:'` `@ ,@ .@.:: `'+ ;;;@ `++.@'#'@++,,. . `.', @ @#@ :#,+@::@,@#@@@;` .'#..; # + ,.:` ;`#+, @` ;';` ,:`' '+:'` @@;@'#++@#,. ,;` +,, +,;:@:'@@+@`@@;@:,@ #: ++`. + ' # ; . :#' #: `@ .. ' :,#'.'@ '@@'++.++:#; .`` ;, : `':++@'`,',@#+@+#@+: ;;'' ;# ; + ; ' # + `;`:,;+ `@ @@;.;``;' +#+`@@,+@# +;,@@':; ;+`.##++#'+@##@@,@@@#`@;@# ::+@;@; '# @ ; ,`,`;+ . @ +#+` ,` ;, ''#,..; . ;@#`.@';#' :#:@. ; # , : ,:#@.#@@@@@;:;#@@::@ ,@.# ,;#`. ; , ;`., + #@+``#. ;: +:+ :; ' `# :@@` @:;@::#@#@: `. : ., @ . @@@;@@;,+@#+@@@'@ `,'' ' ' , + . @ +@ ' `+#+. +' ' # :: ;'`,:';@ +;#, @;@@@#:@@';'';' : ;;:+..`.@#@ #+##@#@@+@ +.; @: `' #` + # ` # # @ ':;;; ;@ #'++ @@#+@@+@@#. , ,:., . .#,@@,@@+@;@#@.@# . '` ; ` ;., #` ,. : ; ;+;`;`,' `:#'+:#@`@;@+@@`@;. ':: : .'.;#::`@:##@';@@@,#. : ..@ . @ '``# , # ; ' @ # : ``::+;+''#@@`@`'@+@+ + `:` ;`;:`; ,'`#`@`@##@''@@ `, @ '@ ` +; # ; # :` ; ' .,# :: ,@;@@:@@@@@',`@': ':;``#. `;+'@+@;#,@;+'.@#'@ ``: , ' # ,; `, # : + @` +',;` `' '#':@;@@@@+@+# .+` ; ,:@ # `:` '@:@@@#@+#'+#;` . ` # @ : ; ; # ' @ + ' ,. +. `` ',;+;'@@@@,;@'@ :'':@ `.+```, `@'@@@;`#: ..;'+ ,:; `,` ;.: ,, @ # : @ ` + ' :. : ; : `':,; ` .':++@@;@#.+@@ '+.``;+ :.`.,#'@,.@+ ;```` `;`.: `:+, + : .+;: ,+ , @ #+ ` , .`# ` ` # + `', .' :,#+#@#+@++#@, +@'.,+`' ,.#`. .`+ ' , `` ' ,'#. : .` # . . '` ` ..,# + @ @ + : # : : , ` # : ; +,,##@##`@@@@; `@#@#'`. .'`+.'``, ' ,`;' : .; +@#@: ` .'` ##` ; ;@ # ` : +` .` , # : #;` . .+'#@#@;@#@;@ @@@+@:.# '`# :` `+; . . +## ,@ ` +,+` .# ., :': .: `' ' # ' , + , # `.@;@##@@;@#@`. #@@@#.+;:. #`, ; . : `' `,. ':+` ;'. ; ,.' ` ; ,: : + , @ @ `. , , ; ' .+ ` ,.#:#@@@+#@@; #@@@`+, . . ,` `' '` ++. #;, `; # ' ,+: @;+ : + @ ,`.+ # ` ` + ; #. , :;;'#@@@+#@@ ,` ,; .+#..,@@ `,; ,: , ' '; ;'+ `##@+@ ,. #., + ` , ' . `+ + ` , ,:,' .' @;:@+@#:@@ ,+ `#@@' +@@:.'+:;.' . ` ;;'' @`. ;@: `;, #; @.' , @; : . + ;: ` , ` `,.+ @##@`.@.@# : . ` # `#;+' :#+'+;.#:##`#.@# @,,+' '#',:;## . ..` .; @` + :; +# ' `+ @ ` @..' ;`' @@;@ +#'@ ', : ,# ;` +#. `+@@:##@@#,.',:.;#+ ;#,;: `.#; : ` , ';:# ': . @ + ';:` `'`@@##'+:@; ' ` . , '., @: `+::@'+,:. ` `,.@''.,..:`#; `. ; . , ` .;. # ;@ # ,. , . .:,@@@.+##@ +: . # :` # ;, @; '@'@#+@@,,`;#; '#;,`.@` ';; ; , # .# ,.# ;` '+.: ;.,`,@@@ @.@.`; ; ' #.`,,@;';` . , ' ; :#@: ' , ' : #'# # . @ , ,:' `;.`:+@;;`@@ ,+ , ,;+ `.' ; `, :` + +` '. ;' , :`` @ ` : @ ' ,@@@@+.@;:; : :,: + ' `` # ` + `+ . . ;.` @ , @ :`: :@#@+.@@ + , . `#. #;@,' : , ` '` @ + #: ; @ # #. :+`::'#@@#,@,; ` ` ` ;:;.' ; ; ' ,:; `#`@ # @, ` ,' ,#`,.'@@@.@#``+ ` ; ; `. '' ; ` ' : '``', ;@ # ; ` :,,:@@:@;@`,+, , . ` +'`# , `, + :# @ : ; ,@' ` , #; : `+:++@,##@ @' ` ;# ,; ` ; # ;. , ;, #,: ', ## ` + @# ; @;'+@+;@' +, : ; ' , . .. ` @`+: : + ``@ @`+ ;# `: . @; : #'#;@@,@,`: ; . @ ,` ., ' #.`# @,++,,@.@ @:`+.+' ` @ ` +.+#;:@@#; +# ` #: , ++ @ ` .+;;#@'@@.@#`. @# ; :@`; .:'#+:',,' @' , # ` ` #` ; #` # `'`@,.@@,'@;; @@ . :@,, #:'@@### ' , ` ` `' `@ ';.@ @ ;@; @;:`#@# #@ :,' ,.#,#@@,@, , ` : + + + ;# @'# ;,@;@+#,`',';@ . '`+ ';.'@@,'@ `. # ` +' +#+`; : ':.,' ,@#:+@++ @`@ : # + +' :@#@'@ `` . .,.`'' + '@+ @#` @;.`;.@ @,@ ` +.;;;# `#@@@@ , ; '; + ,@` @ ;# @;#,;.@;@@@;:+;++'#, :'`,.#`:;#@+ . ` ` : , : . , `' ,#`'. +;@ `@@ .@,,++;@ @ @;: `: `++.#@@'' , +,: # . @: ` ' , `: ,# #: @;+,,:#.@+:., #:# @,+ . ,` `'@@+'@@ ` . ;` ;':,+#` , ', ,'`,+:` `+, + # '; ;+ #``#;@ `@@ +#'@@@@'`;`,#@ ` ':``;+@@#,@ : :,+ `. ; . ` .:: `;# ; ` :,:':''#,# @ ,` @ , :' ' , ;, :' #, @:+;;`#`'.``,:@ # @:@ , ::;'++,.@@,,# ' ` # ` ` ' # : :#; . +.` , : ` .: ,` ' , ` ` ; ''# + +` '; ' +'@ @+: ,+@+ +.,: ';@# ; ;',;@++'@@++# + , ' + .` : .`:;` . ,;'. ; '' , ,.: + @``,' , ,:;;;. ,. ; `+ +. :, +#':..+ +`,' '.;#' .@ ':+. ;:` .@'@@.;@' ` # : ' + ' : ` ' : ## '` `, , `' ' , , ,` : ;' +; #` +,` + + '' `+, # `++` @## @;;` .: ; :;;` ;+` ';@@@@@: ` ` , ; + + ; + + ' ., '#+; `` `' , `'+ ' : # `' '+ .' ` ; ,;` +' ;.,;';:.,``` `' +;. ':, @@@@@@:, .: . .. ; ' # , : ` # ; ,; . .@,+ ''`+ +' ` , @ ,'+ ' .' .,. :: '. + ,;`:+, : @'' #:;#;@;, , ``..;;;;; `, , '` ``: + . `` ,' ; .@ ' '.@.``` , @ '; @@.@. # , @ ,'++#: `:;` @'';.#:@@+#; '#+',. +```.:,.` ;; , : ' ` ,. ; . . '` # @ ;` ` . , @:;';::;:,..`` ``:,` ',,+`@ @@:'. `,;'''':'''+';';;'+':..```..';;:,...``+ .'+#++:,` '+ , + . @ # `. ` ; + +#` @+ : +,:: .:;,`: #'::.` `.',#:@+@#'., #@@:.:' : '.'`.`, # ; ' @.,;'@+;:';,` ...,:,,...` `,:'; # `;+ .:+;:',; .....+ : ` ::. # ;++;@@ . . : + `; ,;,@## ,, `'+.`` ;. ;'` + ; ;,.+; ;.:` `,:,.` ```,..,::''+';:` ,@. .:,`` :+++;, , +. . ,: :'+: .,;;+';,. ` ;#++''++;::.:,,...` `.:;#'+''.` `:'++;;;;';#;:.` :.`.,,,,.;,` ; `` `:` `::. #';` `+;,` `:+#'` `.;#+##'#': `;,:`., '''::`.,+@ ``;:,` ,;;`' `.+#;, `` .'#;` `.,;';;;;:..,;;;,. '`,` : ;#:#, ;...,;..` ; .` `..,::;'';;;;;::;,,..`` `.,:';:,.`````` ` ` ,; `+'. `;#@' ,': .+;;;;,` ,:, `:;, ``@' ` ' `,'''''+: ``` , : `,+.# `.'''+,.`` ``.,;;;;. ` +. ` @. ` ++:' `;,`:;;;;## ; `,`.` @ + , ``` .+++:` `:;#:````,:;'###: . :: '.' ;#+'';;;;''''';;:::::.,:.````` ` ```:::'# ,,. `+ `#; : . # + '`. ';`: : `': + ' `#@ `, .:.. , : .; @ : @ ;. `. + # ' # ` : ;: + .+ ` '' `
Předpokládám, že už jste se někdy setkali s jednoduchými obrázky, tabulkami či schématy co byly nakresleny pomoci ASCII znaků. K jejich vytvoření není třeba nic než textový editor s neproporcionálním fontem. Ovšem s utilitou, jako je asciio, lze taková schémata tvořit a upravovat rychleji a snáz.
Protože své poznámky píšu do plain textu[1], kde využívám při formátování wiki syntaxi, tvořím takové jednoduché tabulky a schémata čas od času i já. A přesně na tohle se hodí asciio. Aplikace je napsaná perlu a využívá GTK2, tudíž vyžaduje okenní prostředí X serveru. Má ale tu výhodu, že vytvořené obrázky lze kopírovat z a do asciio přes schránku (clipboard).
Instalace
Protože je asciio v repozitářích Debianu, je instalace jednoduchá. Maximálně se doinstalují nějaké doplňkové balíčky pro perl:
root@stroj~# apt-get install asciio
Začínáme s editací
Po spuštění se objeví prázdné okno s mřížkou – kreslící plocha. Klikem na pravé tlačítko myši se zobrazí kontextové menu, které ve výchozím stavu obsahuje tyto tři položky:
- Přes první položku stencils se dostanete na další podmenu asciio ve kterém si můžete zvolit co vlastně chcete vytvořit. K dispozici je sada generických objektů, vhodných ke kreslení tabulek a schémat, které lze libovolně modifikovat. Ostatní podmenu skrývají již hotové objekty, které lze rovněž využít a modifikovat.
- Přes druhou položku lze nastavit vertikální a horizontální pravítka, jimiž si můžete vymezit na kreslicí ploše pracovní prostor.
- Třetí položka obsahuje volby pro uložení souboru.
Obsah kontextového menu se v průběhu editace mění v závislosti na tom, zda-li se kurzor myši nachází nad nějakým objektem, nebo mimo něj. Kromě toho lze využívat klávesových zkratek.
Klávesové zkratky
Klíčová klávesová zkratka CTRL+k otevře externí okno s nápovědou, která ovšem nepoužívá k popisu klávesových zkratek obvyklé popisy kláves. Proto uvávím následující přehled, aby bylo jasné jaké klávesy se vlastně mají použít:
000 | následující klávesa nevyžaduje soutisk |
C00 | CTRL |
00S | SHIFT |
0A0 | ALT |
C0S | Soutisk CTRL + SHIFT |
ISO_Left_tab | TAB |
Kreslení jako kompozice objektů
ASCII obrázek se v asciio nekreslí, ale sestavuje z objektů, které lze podle potřeby modifikovat. Při tvorbě schémat a tabulek tak nepochybně oceníte, že každý objekt…
- lze dle libosti v rámci kreslící plochy přesouvat a tím i měnit kompozici obrazu
- kdykoliv upravit a případně uložit jako nový, univerzálně použitelný objekt
- lze pomocí šipky typu
wirl_arrow
(v menu zvolte "stencils → asciio → wirl_arrow", nebo stiskněte klávesu "a") spojit s jiným objektem
-.-.-..-.-.-
.-------------. ) (
| | -| - - |-
| | |I|_(_)(_)_|I|
| | -| /\ |-
'-------------\ | ( ) |
\_ | |
|________|
/__/\__/\__\
/ | \| \
- Kopírování ASCII artu do asciio
- K nakopírování ASCII artu použijte schránku (clipboard). Nejprve si jej označte myší a pak přes "Ctrl + c" vložte do schránky. Do editačního okna aplikace asciio jej dostanete klávesovou zkratkou "Alt + e" jako nový objekt, se kterým lze dále pracovat.
-
Označení kopírovaného ASCII artu a vložení do schánky přes "Ctrl + c"
-
Vložení ASCII artu přes "Alt + e"
-
Úprava vloženého objektu – zrušení orámování
Vložení textu
I text se vkládá jako objekt. Buď prostřednictvím kontextového menu, volbou "stencils → asciio → text" nebo přes klávesu "t", kdy se rovnou otevře modální okno přes které lze textový obsah kdykoliv změnit. Toto modální okno je stejné pro všechny objekty a otevře se po dvojkliku nad vloženým objektem. Obsahuje tři pole:
- V horním poli se nastavují vlastnosti orámování textového bloku a znaky, které se k tomu mají použít
- Prostřední pole je vyhrazeno pro text záhlaví textového rámce – v případě, že vložený text nebude mít žádné záhlaví, jej ponechte prázdné
- Dolní pole je vyhrazeno pro vlastní textový obsah.
-
Vložení textového objektu
-
Editace textu
-
Objekty jsou navzájem zcela nezávislé a lze je kdykoliv upravit
Schémata
Pokud jste někdy zkoušeli pomocí běžného textovém editoru nakreslit nějakou tabulku nebo schéma v ASCII, budete nepochybně možnostmi asciio nadšeni. Protože jsou vložené objekty vzájemně nezávislé, mohou být libovolně přesouvány a jejich obsah se dá měnit podle potřeby. Také se dají spojovat pomocí objektu wirl_arrow, což je šipka, která se modifikuje automaticky na základě vzájemné pozice spojených objektů
Export a Import
- Kopírování ASCII artu z asciio jinam
- Nejprve stiskem kombinace "Ctrl + e" vložíme obsah editačního okna asciio do schránky (clipboardu), potom se přepneme tam kam potřebujeme a přes "Ctrl + v" vložíme.
Hotový ASCII art lze také vyexportovat do plain textového souboru, pokud se při uložení přes save as použijeme u cílového souboru příponu ".txt". Když použijeme příponu ".png", tak se výsledek uloží jako bitmapový obrázek ve formátu PNG.
Uložení a otevření rozpracovaného obrázku
Rozpracovaný soubor se uloží automaticky v binárním formátu, pokud použijeme v kontextovém menu položku save. Opětovné načtení lze provést buď prostřednictvím kontextového menu přes open, nebo tak, že uložený soubor předhodíme aplikaci User:Keny/ asciio při spuštění.
Uložení objektu
Modifikovaný objekt lze také uložit jako nový stencil, což není to nic jiného, než kus perlovského kódu. Pokud tento soubor vložíte do některého z podadresářů se stávajícími objekty (v /usr/share/perl5/App/Asciio/setup/stencils
), nebo adresář, ve kterém máte svoje objekty uloženy namapujete prostřednictvím konfiguračního souboru /usr/share/perl5/App/Asciio/setup/setup.ini
, pak jej budete moci používat stejným způsobem jako ostatní generické objekty.
- ↑ Můj oblíbený editor geany totiž umí z nadpisů v postranním panelu generovat stromovou strukturu, která výrazně usnadňuje orientaci v obsahu. Také si při psaní nemusím lámat hlavu s formátem souboru – když na to přijde, mohu použít i některý z editorů se kterými se pracuje v terminálovém okně (mcedit, vim, nano, aj.). V takto zpracovaných poznámkách a textech není problém snadno a rychle vyhledávat. Když si nemohu ihned vzpomenout ve kterém souboru něco mám, stačí na ně vypustit grep s jednoduchým vzorkem u kterého je vysoká pravděpodobnost, že se v příslušném kontextu vyskytnul. A pro rychlé pročtení, spojené s vyhledáváním stačí pouhý less.