diff --git a/.dir-locals.el b/.dir-locals.el new file mode 100644 index 0000000..c8b5b4f --- /dev/null +++ b/.dir-locals.el @@ -0,0 +1 @@ +((nil . ((c-basic-offset . 4)))) diff --git a/CMakeLists.txt b/CMakeLists.txt index 99c1c9e..44bcf77 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,6 +6,7 @@ set( "src/main.cpp" "src/capabilities.cpp" "src/coloring.cpp" + "src/debug.cpp" "src/flags.cpp" "src/font.cpp" "src/menu.cpp" diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..ecbe9d0 --- /dev/null +++ b/Makefile @@ -0,0 +1,34 @@ + +########################################################### +# Build Instructions # +# ------------------ # +# # +# If you want to build this yourself, you'll need # +# CMake version 3.15 or later and a # +# C++ compiler supporting C++20 or later. # +# # +# 1. Download or clone the source: # +# `git clone https://github.com/j4james/vtinterco.git` # +# # +# 2. Change into the build directory: # +# `cd vtinterco/build` # +# # +# 3. Generate the build project: # +# `cmake -D CMAKE_BUILD_TYPE=Release ..` # +# # +# 4. Start the build: # +# `cmake --build . --config Release` # +########################################################### + +all: debug + +release: + cmake -S . -B build -D CMAKE_BUILD_TYPE=Release + cmake --build build --config Release + +debug: + cmake -S . -B build -D CMAKE_BUILD_TYPE=Debug + cmake --build build --config Debug + +clean: + cmake --build build --target clean diff --git a/screenshots/alphabetflags.png b/screenshots/alphabetflags.png new file mode 100644 index 0000000..af33b42 --- /dev/null +++ b/screenshots/alphabetflags.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ff51ab6b426a383640fb7cc4b848ab920b056066c253b8ae7ddcb99687f6ca4a +size 5209 diff --git a/screenshots/alphabetflags.six b/screenshots/alphabetflags.six new file mode 100644 index 0000000..430e194 --- /dev/null +++ b/screenshots/alphabetflags.six @@ -0,0 +1 @@ +P0;2;6q"1;1;800;480#1;2;0;0;60#2;2;100;0;0#3;2;0;60;0#4;2;60;0;0#5;2;100;100;100#6;2;100;80;0#7;2;60;80;94#8;2;0;0;0#9;2;34;34;60#10;2;60;27;27#11;2;34;60;34#12;2;60;34;60#13;2;34;60;60#14;2;60;60;34#15;2;80;80;80#0;2;0;0;0#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!15~NN!12~!8N!30~NNNN!36~NNNN!40~NNNN!34~!14N!6~!8N!255~!73~$#0!255?!15?oo!12?!8o!30?oooo!36?oooo!40?oooo!34?!14o!6?!8o-#7!255~!11~NN??oo??NN!12~????!10~NNNN~~!6N!8~????~~!8N!10~!10N!6~????~~!6N!12~!10N!6~NNNN????!8N!26~????!20~????!14~!10N!10~!12N!8~!10N!255~!9~$#0!255?!11?oo~~NN~~oo!12?~~~~!10?oooo??!6o!8?~~~~??!8o!10?!10o!6?~~~~??!6o!12?!10o!6?oooo~~~~!8o!26?~~~~!20?~~~~!14?!10o!10?!12o!8?!10o-#7!255~!9~BB??{{~~{{??BB!10~????!10~????{{~~~~{{??BB~~~~????{{!6~????!6~{{{{!6N????~~~~????{{~~~~{{??BB~~~~BB??KK!6N????!8~????!34~????!8r!12~????!12~{{{{!6N????~~~~BB??{{!6~????!6~oo??BBNNNN{{{{!255~!7~$#0!255?!9?{{~~BB??BB~~{{!10?~~~~!10?~~~~BB????BB~~{{????~~~~BB!6?~~~~!6?BBBB!6o~~~~????~~~~BB????BB~~{{????{{~~rr!6o~~~~!8?~~~~!34?~~~~!8K!12?~~~~!12?BBBB!6o~~~~????{{~~BB!6?~~~~!6?NN~~{{ooooBBBB-#7!255~!7~BB??!10{??BB!8~????!10~????!6~NN??oo~~~~????!8~????~~~~BB??{{~~~~NN????~~~~????!6~NN??oo~~~~oo??NN!6~NNNN!8~????!6~NN!26~????!20~????!10~BB??{{~~~~NN????~~~~oo??NN~~~~NN????!6~NNNN~~{{oo??BB!255~!7~$#0!255?!7?{{~~!10B~~{{!8?~~~~!10?~~~~!6?oo~~NN????~~~~!8?~~~~????{{~~BB????oo~~~~????~~~~!6?oo~~NN????NN~~oo!6?oooo!8?~~~~!6?oo!26?~~~~!20?~~~~!10?{{~~BB????oo~~~~????NN~~oo????oo~~~~!6?oooo??BBNN~~{{-#7!255~!7~{{{{!10~{{{{~~!16{~~~~????!8{!8~{{{{!8~{{{{!6~!8{~~{{{{~~~~!12{!12~!10{!12~!8{!28~{{{{!14~!16{!6~!8{~~{{{{!8~!6{~~????!8~!10{!255~!9~$#0!255?!7?BBBB!10?BBBB??!16B????~~~~!8B!8?BBBB!8?BBBB!6?!8B??BBBB????!12B!12?!10B!12?!8B!28?BBBB!14?!16B!6?!8B??BBBB!8?!6B??~~~~!8?!10B-#7!255~!47~{{{{!196~{{oo!6roo{{!255~!29~$#0!255?!47?BBBB!196?BBNN!6KNNBB-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!70~!59Br!40~!59Br!40~!60B!40~!60B!40~!60B!40~!60B!40~!60B!70~$#6!255?!115?!60{!240?!10{!10?!10{!10?!10{$#5!70?!30{!255?!215?!26{[KC??CK[!26{$#2!170?!59{K!255?!111?_ow{{wo_$#1!100?!29{K!140?!60{!140?!60{!150?!10{!10?!10{!10?!10{-#7!70~!56?o{!42~!56?o{!42~!60?!40~!60?!40~!60?!40~!60?!40~!60?!70~$#6!255?!115?!60~!240?!10~!10?!10~!10?!10~$#5!70?!30~!255?!215?!20~^NFB@!10?@BFN^!20~$#2!170?!56~NB!255?!107?_ow{}!10~}{wo_$#1!100?!26~NB!142?!60~!140?!60~!150?!10~!10?!10~!10?!10~-#7!70~!53?o{!45~!53?o{!45~!60?!40~!60?!40~!60?!40~!60?!40~!60?!70~$#6!255?!115?!60B!240?!10~!10?!10~!10?!10~$#5!70?!30~!170?!60{!240?!14~^NFB@!22?@BFN^!14~$#2!170?!53~NB!255?!104?_ow{}!22~}{wo_$#1!100?!23~NB!145?!60B!40?!60{!40?!60~!150?!10~!10?!10~!10?!10~-#7!70~!50?o{!48~!50?o{!48~!60?!40~!60?!40~!60?!40~!60?!40~!60?!70~$#6!255?!255?!160?!10~!10?!10~!10?!10~$#5!70?!30~!170?!60~!240?!8~^NFB@!34?@BFN^!8~$#2!170?!50~NB!255?!101?_ow{}!34~}{wo_$#1!100?!20~NB!248?!60~!40?!60~!150?!10~!10?!10~!10?!10~-#7!70~!47?o{!51~!47?o{!51~!60?!40~!60?!40~!60?!40~!60?!40~!60?!70~$#6!255?!255?!160?!10~!10?!10~!10?!10~$#5!70?!30~!170?!60B!240?~~^NFB@!46?@BFN^~~$#2!170?!47~NB!51?!60{!242?_ow{}!46~}{wo_$#1!100?!17~NB!251?!60~!40?!60~!150?!10~!10?!10~!10?!10~-#7!70~!46?N!53~!46?N!53~!60?!40~!60?!40~!60?!40~!60?!40~!60?!70~$#6!255?!255?!160?!10~!10?!10~!10?!10~$#5!70?!30~!255?!215?xo_!54?_ox$#2!170?!46~o!53?!60~!140?!60{!40?EN^!54~^NE$#1!100?!16~o!253?!60~!40?!60B!150?!10~!10?!10~!10?!10~-#7!70~!48?BN!50~!48?BN!50~!60?!40~!60?!40~!60?!40~!60?!40~!60?!70~$#6!255?!255?!160?!10~!10?!10~!10?!10~$#5!70?!30~!170?!60{!240?~~~~}{wo_!42?_ow{}~~~~$#2!170?!48~{o!50?!60B!140?!60~!44?@BFN^!42~^NFB@$#1!100?!18~{o!250?!60~!250?!10~!10?!10~!10?!10~-#7!70~!51?BN!47~!51?BN!47~!60?!40~!60?!40~!60?!40~!60?!40~!60?!70~$#6!255?!255?!160?!10~!10?!10~!10?!10~$#5!70?!30~!170?!60~!240?!10~}{wo_!30?_ow{}!10~$#2!170?!51~{o!247?!60~!50?@BFN^!30~^NFB@$#1!100?!21~{o!247?!60~!250?!10~!10?!10~!10?!10~-#7!70~!54?BN!44~!54?BN!44~!60?!40~!60?!40~!60?!40~!60?!40~!60?!70~$#6!255?!115?!60{!240?!10~!10?!10~!10?!10~$#5!70?!30~!170?!60B!240?!16~}{wo_!18?_ow{}!16~$#2!170?!54~{o!244?!60~!56?@BFN^!18~^NFB@$#1!100?!24~{o!144?!60{!40?!60B!250?!10~!10?!10~!10?!10~-#7!70~!57?BN!41~!57?BN!41~!60?!40~!60?!40~!60?!40~!60?!40~!60?!70~$#6!255?!115?!60~!240?!10~!10?!10~!10?!10~$#5!70?!30~!255?!215?!22~}{wo_!6?_ow{}!22~$#2!170?!57~{o!241?!60~!62?@BFN^!6~^NFB@$#1!100?!27~{o!141?!60~!255?!95?!10~!10?!10~!10?!10~-#7!70~!60{!40~!60{!40~!60{!40~!60{!40~!60{!40~!60{!40~!60{!70~$#6!255?!115?!60B!240?!10B!10?!10B!10?!10B$#5!70?!30B!255?!215?!28BA??A!28B$#2!170?!60B!240?!60B!68?@BB@$#1!100?!30B!140?!60B!255?!95?!10B!10?!10B!10?!10B-#7!72~^F`w`F^~~~}}??!5~FFnvvfN^~~??nvvvFN~~~nfvvvFN!52~??]]]?P~~~~vFFnvvf~~~nfvvvFN~~FF~~~~FF~~^NfvvfN^!52~B@{}}}|w~~??nvvvFN~~~nfvvvFN~~~vFFnvvf~~~}}??!6~vvCC!5~^NfvvvFN!32~}??}}{@B~~^NfvvvFN~~~}}??!5~vv??vvvv~~~nfvvvFN!53~??]]]]}~~^Nfvvvfn~~??nvvvFN~~^NfvvfN^!63~??]]]]}~~^NfvvfN^~~vfF^~^Ffv~vv??vvvv~~~vFFnvvf~~^NfvvfN^~~vv??vvvv!32~B@{}}}|w~~^NfvvfN^~~~}}??!6~vv@?uuu!91~$#0!72?_w]F]w_???@@~~!5?wwOGGWo_??~~OGGGwo???OWGGGwo!52?~~```~m????GwwOGGW???OWGGGwo??ww????ww??_oWGGWo_!52?{}B@@@AF??~~OGGGwo???OWGGGwo???GwwOGGW???@@~~!6?GGzz!5?_oWGGGwo!32?@~~@@B}{??_oWGGGwo???@@~~!5?GG~~GGGG???OWGGGwo!53?~~````@??_oWGGGWO??~~OGGGwo??_oWGGWo_!63?~~````@??_oWGGWo_??GWw_?_wWG?GG~~GGGG???GwwOGGW??_oWGGWo_??GG~~GGGG!32?{}B@@@AF??_oWGGWo_???@@~~!6?GG}~HHH-#7!71~b_{|||{_b~nnn__nnn~~??nnnfow~~__~~~~__~~r`lmmu__!52~__nnnn_o~~~n__n!5~r`lmmu__~~~{offo{~~~wofnnfow!52~wofnnnfv~~__~~~~__~~r`lmmu__~~~n__n!5~nnn__nnn~~nnn__nnn~~woemmmeu!32~n__nnfow~~woemmmeu~~nnn__nnn~~~~o_nnnv~~r`lmmu__!53~__!5n~~wofnnnfv~~__~~~~__~~wofnnfow!63~__!7~wofnnfow~~nfbw{wbfn~~~o_nnnv~~~n__n!5~wofnnfow~~~~o_nnnv!32~wofnnm_o~~wofnnfow~~nnn__nnn~~~~n__n!93~$#0!71?[^BAAAB^[?OOO^^OOO??~~OOOWNF??^^????^^??K]QPPH^^!52?^^OOOO^N???O^^O!5?K]QPPH^^???BNWWNB???FNWOOWNF!52?FNWOOOWG??^^????^^??K]QPPH^^???O^^O!5?OOO^^OOO??OOO^^OOO??FNXPPPXH!32?O^^OOWNF??FNXPPPXH??OOO^^OOO????N^OOOG??K]QPPH^^!53?^^!5O??FNWOOOWG??^^????^^??FNWOOWNF!63?^^!7?FNWOOWNF??OW[FBF[WO???N^OOOG???O^^O!5?FNWOOWNF????N^OOOG!32?FNWOOP^N??FNWOOWNF??OOO^^OOO????O^^O-#7!91~{{!255~!255~!197~$#0!91?BB-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#8!255?!245?!30~$#7!70~!60?!40~!60?!40~!60?!40~!60?!40~!60?!40~!60?!40~!60?!70~$#6!170?!60~!140?!30~!70?!30~$#5!70?!30~!255?!215?!6~}{wo_!38?_ow{}!6~!55?!15~!15?!15~$#2!100?!30~$#1!255?!15?!60~!70?!30~!146?@BFN^!38~^NFB@!46?!15~!15?!15~-#8!255?!245?!30~$#7!70~!60?!40~!60?!40~!60?!40~!60?!40~!60?!40~!60?!40~!60?!70~$#6!170?!60~!140?!30~!70?!30~$#5!70?!30~!255?!215?@BFN^!7~}{wo_!26?_ow{}!7~^NFB@!55?!15~!15?!15~$#2!100?!30~$#1!255?!15?!60~!70?!30~!140?}{wo_!7?@BFN^!26~^NFB@!7?_ow{}!40?!15~!15?!15~-#8!255?!245?!30~$#7!70~!60?!40~!60?!40~!60?!40~!60?!40~!60?!40~!60?!40~!60?!70~$#6!170?!60~!140?!30~!70?!30~$#5!70?!30~!255?!221?@BFN^!7~}{wo_!14?_ow{}!7~^NFB@!46?!15w!15F!15w!15F$#2!100?!30~$#1!255?!15?!60~!70?!30~!140?!6~}{wo_!7?@BFN^!14~^NFB@!7?_ow{}!6~!40?!15F!15w!15F!15w-#8!190?_ow{}}!8~}}{wo_!255?!35?!30~$#7!70~!60?!40~!60?!40~!60?!40~!60?!40~!60?!40~!60?!40~!60?!70~$#6!170?!20~^NFB@@!8?@@BFN^!20~!140?!30~!70?!30~$#5!70?!30~!170?!60{!252?@BFN^!7~}{wo_??_ow{}!7~^NFB@!52?!15~!15?!15~$#2!100?!30~$#1!255?!15?!60B!70?!30~!140?!12~}{wo_!7?@BFN^~~^NFB@!7?_ow{}!12~!55?!15~!15?!15~-#8!188?_}!20~}_!255?!33?!30~$#7!70~!60?!40~!60?!40~!60?!40~!60?!40~!60?!40~!60?!40~!60?!70~$#6!170?!18~^@!20?@^!18~!140?!30~!70?!30~$#5!70?!30~!170?!60~!255????@BFN^!14~^NFB@!58?!15~!15?!15~$#2!100?!30~$#1!255?!145?!30~!140?!18~}{wo_!14?_ow{}!18~!55?!15~!15?!15~-#8!188?@^!20~^@!255????!30~$#7!70~!60?!40~!60?!40~!60?!40~!60?!40~!60?!40~!60?!40~!60?!70~$#6!170?!18~}_!20?_}!18~!140?!30~!100?!30~$#5!70?!30~!170?!60~!255????_ow{}!14~}{wo_!73?!15~!15?!15~$#2!100?!30~$#1!255?!145?!30~!140?!18~^NFB@!14?@BFN^!18~!40?!15~!15?!15~-#8!190?@BFN^^!8~^^NFB@!255?!5?!30~$#7!70~!60?!40~!60?!40~!60?!40~!60?!40~!60?!40~!60?!40~!60?!70~$#6!170?!20~}{wo__!8?__ow{}!20~!140?!30~!100?!30~$#5!70?!30~!170?!60N!252?_ow{}!7~^NFB@??@BFN^!7~}{wo_!67?!15~!15?!15~$#2!100?!30~$#1!255?!15?!60o!70?!30~!140?!12~^NFB@!7?_ow{}~~}{wo_!7?@BFN^!12~!40?!15~!15?!15~-#8!255?!215?!30~$#7!70~!60?!40~!60?!40~!60?!40~!60?!40~!60?!40~!60?!40~!60?!70~$#6!170?!60~!140?!30~!100?!30~$#5!70?!30~!255?!221?_ow{}!7~^NFB@!14?@BFN^!7~}{wo_!46?!15w!15F!15w!15F$#2!100?!30~$#1!255?!15?!60~!70?!30~!140?!6~^NFB@!7?_ow{}!14~}{wo_!7?@BFN^!6~!40?!15F!15w!15F!15w-#8!255?!215?!30~$#7!70~!60?!40~!60?!40~!60?!40~!60?!40~!60?!40~!60?!40~!60?!70~$#6!170?!60~!140?!30~!100?!30~$#5!70?!30~!255?!215?_ow{}!7~^NFB@!26?@BFN^!7~}{wo_!40?!15~!15?!15~$#2!100?!30~$#1!255?!15?!60~!70?!30~!140?^NFB@!7?_ow{}!26~}{wo_!7?@BFN^!55?!15~!15?!15~-#8!255?!215?!30~$#7!70~!60?!40~!60?!40~!60?!40~!60?!40~!60?!40~!60?!40~!60?!70~$#6!170?!60~!140?!30~!100?!30~$#5!70?!30~!255?!215?!6~^NFB@!38?@BFN^!6~!40?!15~!15?!15~$#2!100?!30~$#1!255?!15?!60~!70?!30~!146?_ow{}!38~}{wo_!61?!15~!15?!15~-#7!71~NN~~~~NN!14~NN!17~nnNN!56~nnNNnn!19~NN!5~NN!67~nnNNn!14~nnNN!8~NN!17~NN!8~NN!36~NN~~~^Nn!5~NN!6~nnNN!76~NN!10~NN!85~NN^~~~^NN~~~~NN!6~NN!77~NN^~~~NN!42~NN!77~$#0!71?oo????oo!14?oo!17?OOoo!56?OOooOO!19?oo!5?oo!67?OOooO!14?OOoo!8?oo!17?oo!8?oo!36?oo???_oO!5?oo!6?OOoo!76?oo!10?oo!85?oo_???_oo????oo!6?oo!77?oo_???oo!42?oo-#7!71~??vvvv??~~FBx||xBF~~||??||||~~FBhlll`b!5~??!58~??!5~@@z|||@B~~FBx|||??~~~||@@!6~ZXlll@B!56~??~~~~@@~~~~@@!5~??!6~||@@!5~FBhlll`b~~||??||||~~||??||||!32~??r`K]!5~||@@!8~??!5~FBx||xBF!63~??!8~||@@!5~@B|@B|@B~~~ZXlll@B!62~??{`N`{??~~||@@!6~??NFrx|~~FBhlll`b!62~??}xf^??~~FBx||xBF~~p@N~~N@p~~FBhlll`b~~@B|@B|@B~~??z||xBF~~FBhlll`b~~~|@@z||x!51~$#0!71?~~GGGG~~??w{EAAE{w??AA~~AAAA??w{UQQQ][!5?~~!58?~~!5?}}CAAA}{??w{EAAA~~???AA}}!6?ceQQQ}{!56?~~????}}????}}!5?~~!6?AA}}!5?w{UQQQ][??AA~~AAAA??AA~~AAAA!32?~~K]r`!5?AA}}!8?~~!5?w{EAAE{w!63?~~!8?AA}}!5?}{A}{A}{???ceQQQ}{!62?~~B]o]B~~??AA}}!6?~~owKEA??w{UQQQ][!62?~~@EW_~~??w{EAAE{w??M}o??o}M??w{UQQQ][??}{A}{A}{??~~CAAE{w??w{UQQQ][???A}}CAAE-#7!71~ww~~~~ww~~}{xzzx{}~~~~{wzzz|~~}{xzzzx|~~zzzwwzzz!53~zzwwzz~~~ww~~~~ww~~}{xzz|ww~~zzzwwzzz~~{wzzz|ww!52~|xzzw{~~~~{wzzz|ww~~zzzwwzzz~~zzzwwzzz~~}{xzzzx|~~~~{wzzz|~~~~{wzzz|!32~ww~~~}{xz~zzzwwzzz~~zzzwwzzz~~}{xzzx{}!63~ww!5z~~zzzwwzzz~~ww~ww~ww~~{wzzz|ww!62~ww~~}~~ww~zzzwwzzz~~~ww~}{xz~~}{xzzzx|!62~ww~~~}ww~~}{xzzx{}~~~~{xx{~~~~}{xzzzx|~~ww~ww~ww~~wwzzzx{}~~}{xzzzx|~~~zwwz!54~$#0!71?FF????FF??@BECCEB@????BFCCCA??@BECCCEA??CCCFFCCC!53?CCFFCC???FF????FF??@BECCAFF??CCCFFCCC??BFCCCAFF!52?AECCFB????BFCCCAFF??CCCFFCCC??CCCFFCCC??@BECCCEA????BFCCCA????BFCCCA!32?FF???@BEC?CCCFFCCC??CCCFFCCC??@BECCEB@!63?FF!5C??CCCFFCCC??FF?FF?FF??BFCCCAFF!62?FF??@??FF?CCCFFCCC???FF?@BEC??@BECCCEA!62?FF???@FF??@BECCEB@????BEEB????@BECCCEA??FF?FF?FF??FFCCCEB@??@BECCCEA???CFFC-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!70~!60N!40~!60N!40~!60N!40~!60N!40~!60N!40~!60N!40~!60N!70~$#6!70?o_!198?!60o!64?!12o$#5!255?!215?!60o!60?!20o!90?!30o$#2!71?O!58o!240?!24o!12?!24o!140?!20o!80?!30o$#1!170?!60o!255?!125?!20o-#7!70~!60?!40~!60?!40~!60?!40~!60?!40~!60?!40~!60?!40~!60?!70~$#6!70?~~~}{wo_!192?!60~!64?!12~$#5!255?!215?!60~!60?!20~!90?!30~$#2!73?@BFN^!52~!240?!24~!12?!24~!140?!20~!80?!30~$#1!170?!60~!255?!125?!20~-#7!70~!60?!40~!60?!40~!60?!40~!60?!40~!60?!40~!60?!40~!60?!70~$#6!70?!9~}{wo_!186?!60~!64?!12~$#5!255?!215?!60~!60?!20~!90?!30~$#2!79?@BFN^!46~!240?!24~!12?!24~!140?!20~!80?!30~$#1!170?!60~!255?!125?!20~-#7!70~!60?!40~!60?!40~!60?!40~!60?!40~!60?!40~!60?!40~!60?!70~$#6!70?!15~}{wo_!180?!60~!64?!12~$#5!255?!215?!60~!60?!20~!90?!30~$#2!85?@BFN^!40~!240?!24~!12?!24~!140?!20~!80?!30~$#1!170?!60~!255?!125?!20~-#7!70~!60?!40~!60?!40~!60?!40~!60?!40~!60?!40~!60?!40~!60?!70~$#6!70?!21~}{wo_!174?!60~!40?!24o!12~!24o$#5!190?!20~!255?!5?!20~!20?!20~!60?!20~!90?!30~$#2!91?@BFN^!34~!240?!24N!12?!24N!140?!20~!80?!30~$#1!170?!20~!20?!20~!255?!5?!20~!100?!20~-#7!70~!60?!40~!60?!40~!60?!40~!60?!40~!60?!40~!60?!40~!60?!70~$#6!70?!27~}{wo_!168?!60~!40?!60~$#5!190?!20~!255?!5?!20~!20?!20~!60?!20~!60?!30o!30N$#2!97?@BFN^!28~!255?!185?!20~!80?!30N!30o$#1!170?!20~!20?!20~!255?!5?!20~!100?!20~-#7!70~!60?!40~!60?!40~!60?!40~!60?!40~!60?!40~!60?!40~!60?!70~$#6!70?!33~}{wo_!162?!60~!40?!24N!12~!24N$#5!190?!20~!255?!5?!20~!20?!20~!60?!20~!60?!30~$#2!103?@BFN^!22~!240?!24o!12?!24o!140?!20~!110?!30~$#1!170?!20~!20?!20~!255?!5?!20~!100?!20~-#7!70~!60?!40~!60?!40~!60?!40~!60?!40~!60?!40~!60?!40~!60?!70~$#6!70?!39~}{wo_!156?!60~!64?!12~$#5!190?!20B!255?!5?!20~!20{!20~!60?!20~!60?!30~$#2!109?@BFN^!16~!240?!24~!12?!24~!140?!20~!110?!30~$#1!170?!20~!20{!20~!255?!5?!20B!100?!20~-#7!70~!60?!40~!60?!40~!60?!40~!60?!40~!60?!40~!60?!40~!60?!70~$#6!70?!45~}{wo_!150?!60~!64?!12~$#5!255?!215?!60~!60?!20~!60?!30~$#2!115?@BFN^!10~!240?!24~!12?!24~!140?!20~!110?!30~$#1!170?!60~!255?!125?!20~-#7!70~!60?!40~!60?!40~!60?!40~!60?!40~!60?!40~!60?!40~!60?!70~$#6!70?!51~}{wo_!144?!60~!64?!12~$#5!255?!215?!60~!60?!20~!60?!30~$#2!121?@BFN^~~~~!240?!24~!12?!24~!140?!20~!110?!30~$#1!170?!60~!255?!125?!20~-#7!70~!60o!40~!60o!40~!60o!40~!60o!40~!60o!40~!60o!40~!60o!70~$#6!70?!57NMKG!140?!60N!64?!12N$#5!255?!215?!60N!60?!20N!60?!30N$#2!127?@BF!240?!24N!12?!24N!140?!20N!110?!30N$#1!170?!60N!255?!125?!20N-#7!71~NFrzzrFN~~~~!5^!5~!5^!5~!5^~~~~^^^~^^^!52~BBzzzvFN~~~~!5^~~~^^~^^^!6~!5^!63~NFrzzrFN~~^^~~~~^^~~~~!5^~~~BB~^^^!6~!5^!5~!5^!43~BBzzzvFN~~~~^^^^~~~~^~^^~^^!5~!5^!5~^^^^!54~NFrzzzbf~~~^^RR!7~!5^~~~~^^^~^^^~~~^^^~^^^~~~~!5^!43~zzzBBzzz~~~~!5^~~~^^~^^^^!5~!6^~~~~^^^^!54~BB~~~~BB~~^^~^^^^~~~~^^RR!6~^^FBZZZ~~~~^^^^!5~^^^~^^^~~^~^^~^^!62~$#0!71?owKCCKwo????!5_!5?!5_!5?!5_????___?___!52?{{CCCGwo????!5_???__?___!6?!5_!63?owKCCKwo??__????__????!5_???{{?___!6?!5_!5?!5_!43?{{CCCGwo????____????_?__?__!5?!5_!5?____!54?owKCCC[W???__kk!7?!5_????___?___???___?___????!5_!43?CCC{{CCC????!5_???__?____!5?!6_????____!54?{{????{{??__?____????__kk!6?__w{ccc????____!5?___?___??_?__?__-#7!71~_?^~~^?_~~~[WxrbEM~~`?]~~~]]~~NEuzzZ??~~~~??}~~}!52~??zzz|{}~~NEuzzZ??~~??}~~]?`~~NEuzzZ??!62~_?^^~^?_~~??~~~^??~~`?YzzzWW~~??}~~]?`~~`?YzzzWW~~`?]~~~]]!42~??zzrdK]~~`?]~~]?`~~??~??~??~~`?YzzzWW~~`?]~~]?`!52~NM[{xxBF!5~??!5~`?YzzzWW~~~~??}~~}~~~~??}~~}~~NEuzzZ??!45~??!5~NEuzzZ??~~??}~~~??~~`?]~~^??~~`?]~~]?`!52~o?^~~^?o~~??}~~~??!5~??!8~??!5~`?]~~]?`~~~~??}~~}~~??~??~??!61~$#0!71?^~_??_~^???bfEK[xp??]~`???``??oxHCCc~~????~~@??@!52?~~CCCAB@??oxHCCc~~??~~@??`~]??oxHCCc~~!62?^~__?_~^??~~???_~~??]~dCCCff??~~@??`~]??]~dCCCff??]~`???``!42?~~CCKYr`??]~`??`~]??~~?~~?~~??]~dCCCff??]~`??`~]!52?opbBEE{w!5?~~!5?]~dCCCff????~~@??@????~~@??@??oxHCCc~~!45?~~!5?oxHCCc~~??~~@???~~??]~`??_~~??]~`??`~]!52?N~_??_~N??~~@???~~!5?~~!8?~~!5?]~`??`~]????~~@??@??~~?~~?~~-#7!73~}}}}!6~!5}!5~!5}~~~~}}}}~}}~~~}}}}!55~}}!9~}}}}~}}~~oo}}}}!5~}}}}~}}!64~}}{wz~~~~}}}}~}}~~~~!5}~~~!6}!6~!5}!5~!5}!43~}}!5~}}~~~}}}}~~~~}}~}}~}}~~~~!5}!5~}}}}!55~!6}~~~!8}~~~~!5}~~~~}}}}!6~}}}}!6~}}}}~}}!45~}}!6~}}}}~}}~~}}~~~~}}~~vfmmmfow~~~~}}}}!56~}}}}~~~~}}~~~~}}~~!8}~~~~}}}}!6~}}}}!5~}}}}!5~}}~}}~}}!61~$#0!73?@@@@!6?!5@!5?!5@????@@@@?@@???@@@@!55?@@!9?@@@@?@@??NN@@@@!5?@@@@?@@!64?@@BFC????@@@@?@@????!5@???!6@!6?!5@!5?!5@!43?@@!5?@@???@@@@????@@?@@?@@????!5@!5?@@@@!55?!6@???!8@????!5@????@@@@!6?@@@@!6?@@@@?@@!45?@@!6?@@@@?@@??@@????@@??GWPPPWNF????@@@@!56?@@@@????@@????@@??!8@????@@@@!6?@@@@!5?@@@@!5?@@?@@?@@-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#8!255?!255?!60?wo_$#7!170~!60B!40~!60B!40~!60B!40~!60B!40~!60B!170~$#6!255?!215?!9{[KC!9?_ow!9{[KC!9?_ow!9{[KC!40?CK[!54{[KC$#5!176?CK[!42{[KC!146?!24{!12?!24{$#2!170?!6{wo_!42?_ow!6{!249?_ow!9{[KC!9?_ow!9{[KC!9?_ow$#1!255?!15?!60{!64?!12{!221?_ow-#8!255?!255?!60?~~~~}{wo_$#7!170~!60?!40~!60?!40~!60?!40~!60?!40~!60?!170~$#6!255?!215?~~~^NFB@!7?_ow{}!7~^NFB@!7?_ow{}!7~^NFB@!48?@BFN^!42~^NFB@$#5!170?wo_!7?@BFN^!30~^NFB@!7?_ow!140?!24~!12?!24~$#2!170?FN^!7~}{wo_!30?_ow{}!7~^NF!243?_ow{}!7~^NFB@!7?_ow{}!7~^NFB@!7?_ow{}~~~~$#1!255?!15?!60~!64?!12~!215?_ow{}~~~~-#8!255?!255?!60?!10~}{wo_$#7!170~!60?!40~!60?!40~!60?!40~!60?!40~!60?!170~$#6!255?!215?B@!7?_ow{}!7~^NFB@!7?_ow{}!7~^NFB@!7?_ow!50?@BFN^!30~^NFB@$#5!170?~~~~}{wo_!7?@BFN^!18~^NFB@!7?_ow{}~~~~!50?!40~!50?!24~!12?!24~$#2!174?@BFN^!7~}{wo_!18?_ow{}!7~^NFB@!244?{}!7~^NFB@!7?_ow{}!7~^NFB@!7?_ow{}!7~^NF$#1!255?!15?!10~!40?!10~!64?!12~!209?_ow{}!10~-#8!255?!255?!60?!16~}{wo_$#7!170~!60?!40~!60?!40~!60?!40~!60?!40~!60?!170~$#6!255?!218?_ow{}!7~^NFB@!7?_ow{}!7~^NFB@!7?_ow{}~~~~!56?@BFN^!18~^NFB@$#5!170?!10~}{wo_!7?@BFN^!6~^NFB@!7?_ow{}!10~!50?!10~!20N!10~!50?!24~!12?!24~$#2!180?@BFN^!7~}{wo_!6?_ow{}!7~^NFB@!70?!20o!160?~~~^NFB@!7?_ow{}!7~^NFB@!7?_ow{}!7~^NFB@$#1!255?!15?!10~!40?!10~!64?!12~!203?_ow{}!16~-#8!255?!255?!60?!22~}{wo_$#7!170~!60?!40~!60?!40~!60?!40~!60?!40~!60?!170~$#6!255?!215?{}!7~^NFB@!7?_ow{}!7~^NFB@!7?_ow{}!7~^NF!62?@BFN^!6~^NFB@$#5!170?!16~}{wo_!7?@BB@!7?_ow{}!16~!50?!10~!20?!10~!50?!24B!12?!24B$#2!186?@BFN^!7~}{{}!7~^NFB@!76?!20~!160?B@!7?_ow{}!7~^NFB@!7?_ow{}!7~^NFB@!7?_ow$#1!255?!15?!10~!40?!10~!40?!24{!12~!24{!173?_ow{}!22~-#8!255?!255?!60?!26~^NEC$#7!170~!60?!40~!60?!40~!60?!40~!60?!40~!60?!170~$#6!255?!215?~~~^NFB@!7?_ow{}!7~^NFB@!7?_ow{}!7~^NFB@!72?@BB@$#5!170?!20~^NE!14?EN^!20~!50?!10~!20?!10~$#2!190?_ox!14~xo_!80?!20~!163?_ow{}!7~^NFB@!7?_ow{}!7~^NFB@!7?_ow{}~~~~!66?_owwo_$#1!255?!15?!10~!40?!10~!40?!60~!170?K]!28~-#8!255?!255?!60?!20~^NFB@$#7!170~!60?!40~!60?!40~!60?!40~!60?!40~!60?!170~$#6!255?!215?B@!7?_ow{}!7~^NFB@!7?_ow{}!7~^NFB@!7?_ow$#5!170?!14~^NFB@!7?_ow{{wo_!7?@BFN^!14~!50?!10~!20?!10~!50?!24{!12?!24{$#2!184?_ow{}!7~^NFBBFN^!7~}{wo_!74?!20~!160?{}!7~^NFB@!7?_ow{}!7~^NFB@!7?_ow{}!7~^NF!60?_ow{}!8~}{wo_$#1!255?!15?!10~!40?!10~!40?!24B!12~!24B!173?@BFN^!22~-#8!255?!255?!60?!14~^NFB@$#7!170~!60?!40~!60?!40~!60?!40~!60?!40~!60?!170~$#6!255?!218?_ow{}!7~^NFB@!7?_ow{}!7~^NFB@!7?_ow{}~~~~$#5!170?!8~^NFB@!7?_ow{}!10~}{wo_!7?@BFN^!8~!50?!40~!50?!24~!12?!24~$#2!178?_ow{}!7~^NFB@!10?@BFN^!7~}{wo_!248?~~~^NFB@!7?_ow{}!7~^NFB@!7?_ow{}!7~^NFB@!58?_ow{}!20~}{wo_$#1!255?!15?!10~!40?!10~!64?!12~!203?@BFN^!16~-#8!255?!255?!60?!8~^NFB@$#7!170~!60?!40~!60?!40~!60?!40~!60?!40~!60?!170~$#6!255?!215?{}!7~^NFB@!7?_ow{}!7~^NFB@!7?_ow{}!7~^NF$#5!170?~~^NFB@!7?_ow{}!22~}{wo_!7?@BFN^~~!50?!40N!50?!24~!12?!24~$#2!172?_ow{}!7~^NFB@!22?@BFN^!7~}{wo_!242?B@!7?_ow{}!7~^NFB@!7?_ow{}!7~^NFB@!7?_ow!48?_ow{}!32~}{wo_$#1!255?!15?!10~!40o!10~!64?!12~!209?@BFN^!10~-#8!255?!255?!60?~~^NFB@$#7!170~!60?!40~!60?!40~!60?!40~!60?!40~!60?!170~$#6!255?!215?~~~^NFB@!7?_ow{}!7~^NFB@!7?_ow{}!7~^NFB@$#5!170?@!7?_ow{}!34~}{wo_!7?@!140?!24~!12?!24~$#2!170?}!7~^NFB@!34?@BFN^!7~}!243?_ow{}!7~^NFB@!7?_ow{}!7~^NFB@!7?_ow{}~~~~!42?_ow{}!44~}{wo_$#1!255?!15?!60~!64?!12~!215?@BFN^~~~~-#8!255?!255?!60?@$#7!170~!60{!40~!60{!40~!60{!40~!60{!40~!60{!170~$#6!255?!215?B@!11?A!11B@!11?A!11B@$#5!176?A!46BA!146?!24B!12?!24B$#2!170?!6B@!46?@!6B!241?A!11B@!11?A!11B@!11?A!10B!40?A!56BA$#1!255?!15?!60B!64?!12B!221?@BB-#7!171~_?~~~~?_~~~vvCC!5~^Nfvvvfn~~vv??vvvv~~^NfvvfN^~~~vFFnvvf!42~??~~F~~??~??nvvvFN~~~vvCC!6~NFVvvfn~~~??~^Nfv~~^NfvvvFN~~fF^~~^Ff!32~{obNNbo{~~!8^~~~vFFnvvf~~~nfvvvFN~~fF^~~^Ff!52~{oB^^Bo{~~~nfvvvFN~~FFnvvvFN~~~??~^Nfv~~^NfvvvFN~~^NfvvvFN!43~{}]ME_w~~FF~~~~FF~~~}}??!5~FF~~~~FF!191~$#0!171?^~????~^???GGzz!5?_oWGGGWO??GG~~GGGG??_oWGGWo_???GwwOGGW!42?~~??w??~~?~~OGGGwo???GGzz!6?owgGGWO???~~?_oWG??_oWGGGwo??Ww_??_wW!32?BN[oo[NB??!8_???GwwOGGW???OWGGGwo??Ww_??_wW!52?BN{__{NB???OWGGGwo??wwOGGGwo???~~?_oWG??_oWGGGwo??_oWGGGwo!43?B@`px^F??ww????ww???@@~~!5?ww????ww-#7!172~{offo{~~~nnn__nnn~~wofnnnfv~~~~o_nnnv~~wofnnfow~~~n__n!45~}wbo}obw}~__~~~~__~~nnn__nnn~~~vemkg`r~~~__{wrfn~~woemmmeu~~~}WB`w}!33~f`w}}w`f~~!8}~~~n__n!5~r`lmmu__~~~}WB`w}!56~__!5~r`lmmu__~~__~~~~__~~~__{wrfn~~woemmmeu~~woemmmeu!43~b_kmnnf~~o_nnnv__~~nnn__nnn~~o_nnnv__!191~$#0!172?BNWWNB???OOO^^OOO??FNWOOOWG????N^OOOG??FNWOOWNF???O^^O!45?@F[N@N[F@?^^????^^??OOO^^OOO???GXPRV]K???^^BFKWO??FNXPPPXH???@f{]F@!33?W]F@@F]W??!8@???O^^O!5?K]QPPH^^???@f{]F@!56?^^!5?K]QPPH^^??^^????^^???^^BFKWO??FNXPPPXH??FNXPPPXH!43?[^RPOOW??N^OOOG^^??OOO^^OOO??N^OOOG^^-#7!255~!77~|{}!77~|{}!255~!130~$#0!255?!77?AB@!77?AB@-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-\ \ No newline at end of file diff --git a/screenshots/indiabig.png b/screenshots/indiabig.png new file mode 100644 index 0000000..c92d7a4 --- /dev/null +++ b/screenshots/indiabig.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1528c15b85631cafe1cd0390bbb890fc3ccd86524239cb7eefe51ee159c6ee09 +size 2624 diff --git a/screenshots/indiabig.six b/screenshots/indiabig.six new file mode 100644 index 0000000..98730d5 --- /dev/null +++ b/screenshots/indiabig.six @@ -0,0 +1 @@ +P0;2;6q"1;1;800;480#1;2;0;0;60#2;2;100;0;0#3;2;0;60;0#4;2;60;0;0#5;2;100;100;100#6;2;100;80;0#7;2;60;80;94#8;2;0;0;0#9;2;34;34;60#10;2;60;27;27#11;2;34;60;34#12;2;60;34;60#13;2;34;60;60#14;2;60;60;34#15;2;80;80;80#0;2;0;0;0#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!40~!255B!45B!255~!205~$#6!40?!255{!45{-#7!40~!255?!45?!82~????~~~~FF~~~~????~~????nn!6vFFNN!6~nnff!6vFFNN~~~~vvvv????!8v!24~^^NNff!6v????~~~~^^NNffvvvvffNN^^~~~~^^NNff!6vFFNN!6~NNFFVVvvvvffnn!24~vvvv????!8v~~~~????nn!6vFFNN!6~vvvvCCCC!12~NNFFVVvvvvffnn!102~$#6!40?!255~!45~$#0!255?!167?~~~~????ww????~~~~??~~~~OO!6Gwwoo!6?OOWW!6Gwwoo????GGGG~~~~!8G!24?__ooWW!6G~~~~????__ooWWGGGGWWoo__????__ooWW!6Gwwoo!6?oowwggGGGGWWOO!24?GGGG~~~~!8G????~~~~OO!6Gwwoo!6?GGGGzzzz!12?oowwggGGGGWWOO-#7!40~!255?!45?!82~}}wwbboo}}oobbww}}~~____!8~____~~~~rr``llmmmmuu____!8~oo__!6nvv!24~wwooffnnnnvv____~~~~wwooffnnnnffooww~~~~wwooee!6meeuu!6~vveemmkkgg``rr!28~oo__!6nvv~~~~____!8~____~~~~!6n____!6n!6~vveemmkkgg``rr!102~$#6!40?!255~!45~$#0!255?!167?@@FF[[NN@@NN[[FF@@??^^^^!8?^^^^????KK]]QQPPPPHH^^^^!8?NN^^!6OGG!24?FFNNWWOOOOGG^^^^????FFNNWWOOOOWWNNFF????FFNNXX!6PXXHH!6?GGXXPPRRVV]]KK!28?NN^^!6OGG????^^^^!8?^^^^????!6O^^^^!6O!6?GGXXPPRRVV]]KK-#7!40~!255?!45?!255~!205~$#6!40?!255~!45~-#7!40~!255?!45?!84~^^^^FFBB!6Z!6~zzzzBBBB!14~!10^!10~!12^!24~^^~~^^^^~~^^^^!10~!10^!10~!10^!6~^^^^~~!8^!8~ffbb!6zBBFF!182~$#6!40?!255~!45~$#0!255?!169?____ww{{!6c!6?CCCC{{{{!14?!10_!10?!12_!24?__??____??____!10?!10_!10?!10_!6?____??!8_!8?WW[[!6C{{ww-#7!40~!255?!45?!88~????!16~????!10~NNEEuuzzzzZZ????~~~~``??]]~~~~^^????!24~????~~????~~????~~~~``??YY!6zWWWW~~~~NNEEuuzzzzZZ????~~~~????}}!6~????!10~VVRRxx{{}}!182~$#6!40?!255~!45~$#0!255?!173?~~~~!16?~~~~!10?ooxxHHCCCCcc~~~~????]]~~``????__~~~~!24?~~~~??~~~~??~~~~????]]~~dd!6Cffff????ooxxHHCCCCcc~~~~????~~~~@@!6?~~~~!10?ggkkEEBB@@-#7!40~!255?!45?!86~!8}!8~!16}!6~!8}~~}}}}~~~~vvff!6mffooww!24~}}}}~~}}}}~~}}}}!8~!10}!8~!8}~~}}}}~~~~}}}}!8~}}}}!10~}}}}!188~$#6!40?!255~!45~$#0!255?!171?!8@!8?!16@!6?!8@??@@@@????GGWW!6PWWNNFF!24?@@@@??@@@@??@@@@!8?!10@!8?!8@??@@@@????@@@@!8?@@@@!10?@@@@-#7!40~!255?!45?!255~!205~$#6!40?!255~!45~-#7!40~!255?!45?!255~!205~$#6!40?!255~!45~-#7!40~!255?!45?!255~!205~$#6!40?!255~!45~-#7!40~!255?!45?!255~!205~$#6!40?!255~!45~-#7!40~!255?!45?!83~z|??!25~}}??}}!13~??nvvvFN~~~nfvvvFN~~FF~~~~FF~~^NfvvvFN!13~nfvvvFN!12~^Nfvvv??~~~vvCC!5~FF~~~~FF~~^NfvvvFN~~~vFFnvvf!12~^Nfvvv??~~^NfvvfN^~~FF~^^~FF~~FFnvvvFN~~~~NN!17~??~^Nfv~~^NfvvvFN~~^NfvvvFN~~FFnvvfN^!12~FF~^^~FF~~^NfvvvFN~~~}}??!6~}}??!54~$#6!40?!255~!45~$#0!255?!168?CA~~!25?@@~~@@!13?~~OGGGwo???OWGGGwo??ww????ww??_oWGGGwo!13?OWGGGwo!12?_oWGGG~~???GGzz!5?ww????ww??_oWGGGwo???GwwOGGW!12?_oWGGG~~??_oWGGWo_??ww?__?ww??wwOGGGwo????oo!17?~~?_oWG??_oWGGGwo??_oWGGGwo??wwOGGWo_!12?ww?__?ww??_oWGGGwo???@@~~!6?@@~~-#7!40~!255?!45?!83~nn__nn~~~~ff!17~nn__nn!13~__~~~~__~~r`lmmu__~~~{offo{~~~woemmmeu!12~r`lmmu__!12~wofnnv__~~nnn__nnn~~~{offo{~~~woemmmeu~~~n__n!15~wofnnv__~~wofnnfow~~{_bwwb_{~~__~~~~__~~~^Ff!17~__{wrfn~~woemmmeu~~woemmmeu~~??nnnfow!12~{_bwwb_{~~woemmmeu~~nnn__nnn~~nnn__nnn!51~$#6!40?!255~!45~$#0!255?!168?OO^^OO????WW!17?OO^^OO!13?^^????^^??K]QPPH^^???BNWWNB???FNXPPPXH!12?K]QPPH^^!12?FNWOOG^^??OOO^^OOO???BNWWNB???FNXPPPXH???O^^O!15?FNWOOG^^??FNWOOWNF??B^[FF[^B??^^????^^???_wW!17?^^BFKWO??FNXPPPXH??FNXPPPXH??~~OOOWNF!12?B^[FF[^B??FNXPPPXH??OOO^^OOO??OOO^^OOO-#7!40~!255?!45?!255~!46~}}!48~{{!107~$#6!40?!255~!45~$#0!255?!255?!131?@@!48?BB-#7!40~!255?!45?!113~!5^~~~~zzBB!7~!5^!5~!5^~~~~^^^~^^^!14~!5^~~~^^BB^^^^!14~!5^~~~~zzBB!7~^^^^~~~~^^~~~~^^!14~!5^~~~^^~^^^!6~!5^!5~!5^!5~^^^^BB!161~$#6!40?!255~!45~$#0!255?!198?!5_????CC{{!7?!5_!5?!5_????___?___!14?!5_???__{{____!14?!5_????CC{{!7?____????__????__!14?!5_???__?___!6?!5_!5?!5_!5?____{{-#8!169?___ooo!5w!20{!5wooo___$#7!40~!255?!45?!111~`?]~~~]]!5~??!5~`?YzzzWW~~NEuzzZ??~~~~??}~~}!12~NEuzzZ??~~~~??~~~^!13~[WxrbEM!5~??!5~`?]~~]?`~~o?N``N?o!13~[WxrbEM~~??}~~]?`~~`?YzzzWW~~`?YzzzWW~~`?]~~^??~~~~^^!155~$#6!40?!129~^^^NNN!5F!20B!5FNNN^^^!129~$#0!255?!196?]~`???``!5?~~!5?]~dCCCff??oxHCCc~~????~~@??@!12?oxHCCc~~????~~???_!13?bfEK[xp!5?~~!5?]~`??`~]??N~o]]o~N!13?bfEK[xp??~~@??`~]??]~dCCCff??]~dCCCff??]~`??_~~????__-#8!157?__oow{{}}}!46~}}}{{woo__$#7!40~!255?!45?!113~!5}~~~!8}~~~~!5}~~~~}}}}~}}~~~}}}}!16~}}}}~}}!5~}}}}!15~!5}~~~!8}~~~~}}}}!5~}}~~}}!15~!5}~~~oo}}}}!6~!5}!5~!5}!5~}}}~}}~~~~}}!155~$#6!40?!117~^^NNFBB@@@!46?@@@BBFNN^^!117~$#0!255?!198?!5@???!8@????!5@????@@@@?@@???@@@@!16?@@@@?@@!5?@@@@!15?!5@???!8@????@@@@!5?@@??@@!15?!5@???NN@@@@!6?!5@!5?!5@!5?@@@?@@????@@-#8!150?_ow{}}!68~}}{wo_$#7!40~!255?!45?!255~!205~$#6!40?!110~^NFB@@!68?@@BFN^!110~-#8!144?_ow{}!82~}{wo_$#7!40~!255?!45?!255~!205~$#6!40?!104~^NFB@!82?@BFN^!104~-#8!140?ow}!94~}wo$#7!40~!255?!45?!255~!205~$#6!40?!100~NF@!94?@FN!100~-#8!136?_w{!102~{w_$#7!40~!255?!45?!255~!205~$#6!40?!96~^FB!102?BF^!96~-#8!134?o{!108~{o$#7!40~!255?!45?!82~xw}]M?`!23~}}??}}!14~nfvvvFN~~FNvFNvFN!13~nfvvvFN~~~}}??!5~vv??vvvv~~^NfvvvFN~~~vFFnvvf~~~vvCC!5~FFnvvvFN~~^NfvvvFF!12~FNvFNvFN~~fF^~~^Ff!12~^Nfvvvfn~~^NfvvfN^~~FF~~~~FF~~~vFFnvvf~~~NFVvvfn~~^NfvvvFN!12~vv??vvvv~~^NfvvfN^!91~$#6!40?!94~NB!108?BN!94~$#0!255?!167?EF@`p~]!23?@@~~@@!14?OWGGGwo??woGwoGwo!13?OWGGGwo???@@~~!5?GG~~GGGG??_oWGGGwo???GwwOGGW???GGzz!5?wwOGGGwo??_oWGGGww!12?woGwoGwo??Ww_??_wW!12?_oWGGGWO??_oWGGWo_??ww????ww???GwwOGGW???owgGGWO??_oWGGGwo!12?GG~~GGGG??_oWGGWo_-#8!132?o}!112~}o$#7!40~!255?!45?!82~`_kmmff~~~~ff!17~nn__nn!13~r`lmmu__~~__~__~__!12~r`lmmu__~~nnn__nnn~~~~o_nnnv~~woemmmeu~~~n__n!5~nnn__nnn~~__~~~~__~~wofnnv??!12~__~__~__~~~}WB`w}!13~wofnnnfv~~wofnnfow~~o_nnnv__~~~n__n!6~vemkg`r~~woemmmeu!14~o_nnnv~~wofnnfow!91~$#6!40?!92~N@!112?@N!92~$#0!255?!167?]^RPPWW????WW!17?OO^^OO!13?K]QPPH^^??^^?^^?^^!12?K]QPPH^^??OOO^^OOO????N^OOOG??FNXPPPXH???O^^O!5?OOO^^OOO??^^????^^??FNWOOG~~!12?^^?^^?^^???@f{]F@!13?FNWOOOWG??FNWOOWNF??N^OOOG^^???O^^O!6?GXPRV]K??FNXPPPXH!14?N^OOOG??FNWOOWNF-#8!131?w!116~w$#7!40~!255?!45?!231~|xzzzx{}!23~|{}!195~$#6!40?!91~F!116?F!91~$#0!255?!255?!61?AECCCEB@!23?AB@-#8!131?!118~$#7!40~!255?!45?!111~^^~^^^!6~^^^^!5~^^^~^^^~~^^BB^^^^!255~!56~$#6!40?!91~!118?!91~$#0!255?!196?__?___!6?____!5?___?___??__{{____-#8!130?E!118~E$#7!40~!255?!45?!111~??}~~]?`~~`?]~~]?`~~~~??}~~}~~~~??~~~^~~~~^^!255~!50~$#6!40?!90~x!118?x!90~$#0!255?!196?~~@??`~]??]~`??`~]????~~@??@????~~???_????__-#8!131?!118~$#7!40~!255?!45?!111~oo}}}}!6~}}}}!5~}}}}!8~}}}}!5~}}!255~!50~$#6!40?!91~!118?!91~$#0!255?!196?NN@@@@!6?@@@@!5?@@@@!8?@@@@!5?@@-#8!131?@!116~@$#7!40~!255?!45?!255~!205~$#6!40?!91~}!116?}!91~-#8!133?F!112~F$#7!40~!255?!45?!255~!205~$#6!40?!93~w!112?w!93~-#8!135?B^!106~^B$#7!40~!255?!45?!255~!205~$#6!40?!95~{_!106?_{!95~-#8!137?@BN!100~NB@$#7!40~!255?!45?!255~!205~$#6!40?!97~}{o!100?o{}!97~-#8!141?@FN^!90~^NF@$#7!40~!255?!45?!82~xw]]M_p!22~??pF~Fp??~~nfvvvFN~~FFnvvvFN!12~^NfvvfN^~~FF~~~~FF~~^NfvvvFN~~~vFFnvvf~~??nvvfN^~~^NfvvfN^~~~nfvvvFN~~~vFFnvvf~~^Nfvvv??!221~$#6!40?!101~}wo_!90?_ow}!101~$#0!255?!167?EF``p^M!22?~~Mw?wM~~??OWGGGwo??wwOGGGwo!12?_oWGGWo_??ww????ww??_oWGGGwo???GwwOGGW??~~OGGWo_??_oWGGWo_???OWGGGwo???GwwOGGW??_oWGGG~~-#8!146?@BFN^!78~^NFB@$#7!40~!255?!45?!82~rbnnm_p~~~~ff!16~__~}w}~__~r`lmmu__~~__~~~~__!12~wofnnfow~~~{offo{~~~woemmmeu~~~n__n!5~__nnnfow~~wofnnfow~~r`lmmu__~~~n__n!5~wofnnv__~~~~ff!215~$#6!40?!106~}{wo_!78?_ow{}!106~$#0!255?!167?K[OOP^M????WW!16?^^?@F@?^^?K]QPPH^^??^^????^^!12?FNWOOWNF???BNWWNB???FNXPPPXH???O^^O!5?^^OOOWNF??FNWOOWNF??K]QPPH^^???O^^O!5?FNWOOG^^????WW-#8!152?@BFFN^^!62~^^NFFB@$#7!40~!255?!45?!255~!205~$#6!40?!112~}{wwo__!62?__oww{}!112~-#8!161?@BBFFFNN^^^!36~^^^NNFFFBB@$#7!40~!255?!45?!255~!205~$#6!40?!121~}{{wwwoo___!36?___oowww{{}!121~-#8!175?!5@!20B!5@$#7!40~!255?!45?!255~!205~$#6!40?!135~!5}!20{!5}!135~-#7!40~!255?!45?!255~!205~$#6!40?!255~!45~-#7!40~!255?!45?!84~^NNN!23~NN~~~~NN!115~NN!38~NN!17~NN!32~NN!131~$#6!40?!255~!45~$#0!255?!169?_ooo!23?oo????oo!115?oo!38?oo!17?oo!32?oo-#7!40~!255?!45?!81~NBO[^??^^!22~{oFFo{~~~FBx||xBF~~@@~~~~@@!13~ZXlll@B~~~|@@z||x~~FBhlll`b!13~|@@z||x~~@@~~~~@@~~@@z|||@B~~@@z|||@B~~~||@@!5~@@z|||@B~~FBx|||@@!13~||@@!5~@@z|||@B~~||??||||~~FBx||xBF!12~FBx|||??~~~ZXlll@B~~@@z|||@B~~FBx|||@@~~FBhlll`b~~~|@@z||x!81~$#6!40?!255~!45~$#0!255?!166?o{nb_~~__!22?BNwwNB???w{EAAE{w??}}????}}!13?ceQQQ}{???A}}CAAE??w{UQQQ][!13?A}}CAAE??}}????}}??}}CAAA}{??}}CAAA}{???AA}}!5?}}CAAA}{??w{EAAA}}!13?AA}}!5?}}CAAA}{??AA~~AAAA??w{EAAE{w!12?w{EAAA~~???ceQQQ}{??}}CAAA}{??w{EAAA}}??w{UQQQ][???A}}CAAE-#7!40~!255?!45?!86~ww!5~xx!19~ww!5~}{xzzx{}~~{wzzz|ww!12~{wzzz|ww~~~zwwz!5~}{xzzzx|!13~zwwz!5~{wzzz|ww~~ww~~~~ww~~ww~~~~ww~~zzzwwzzz~~ww~~~~ww~~][xzz\?_!12~zzzwwzzz~~ww~~~~ww~~~~{wzzz|~~}{xzzx{}!12~}{xzz|ww~~{wzzz|ww~~ww~~~~ww~~][xzz\?_~~}{xzzzx|~~~zwwz!7~xx!75~$#6!40?!255~!45~$#0!255?!171?FF!5?EE!19?FF!5?@BECCEB@??BFCCCAFF!12?BFCCCAFF???CFFC!5?@BECCCEA!13?CFFC!5?BFCCCAFF??FF????FF??FF????FF??CCCFFCCC??FF????FF??`bECCa~^!12?CCCFFCCC??FF????FF????BFCCCA??@BECCEB@!12?@BECCAFF??BFCCCAFF??FF????FF??`bECCa~^??@BECCCEA???CFFC!7?EE-#7!40~!255?!45?!252~!5}!95~!5}!103~$#6!40?!255~!45~$#0!255?!255?!82?!5@!95?!5@-#7!40~!255?!45?!255~!205~$#6!40?!255~!45~-#7!40~!255?!45?!255~!205~$#6!40?!255~!45~-#7!40~!255?!45?!255~!205~$#6!40?!255~!45~-#7!40~!255?!45?!255~!205~$#6!40?!255~!45~-#7!40~!255?!45?!255~!205~$#6!40?!255~!45~-#7!40~!255?!45?!255~!205~$#6!40?!255~!45~-#7!40~!255?!45?!255~!205~$#6!40?!255~!45~-#7!40~!255?!45?!255~!205~$#6!40?!255~!45~-#7!40~!255?!45?!255~!205~$#6!40?!255~!45~-#7!40~!255{!45{!255~!205~$#6!40?!255B!45B-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-\ \ No newline at end of file diff --git a/screenshots/indiatango3.png b/screenshots/indiatango3.png new file mode 100644 index 0000000..04c38e5 --- /dev/null +++ b/screenshots/indiatango3.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aa3a2d5c992ace4d8b47c7fbc5a8b8a207da73d758eddaea62ff72f6894cf53d +size 1877 diff --git a/screenshots/indiatango3.six b/screenshots/indiatango3.six new file mode 100644 index 0000000..6a9005c --- /dev/null +++ b/screenshots/indiatango3.six @@ -0,0 +1 @@ +P0;2;6q"1;1;800;480#1;2;0;0;60#2;2;100;0;0#3;2;0;60;0#4;2;60;0;0#5;2;100;100;100#6;2;100;80;0#7;2;60;80;94#8;2;0;0;0#9;2;34;34;60#10;2;60;27;27#11;2;34;60;34#12;2;60;34;60#13;2;34;60;60#14;2;60;60;34#15;2;80;80;80#0;2;0;0;0#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!144~{{{{????{{{{!6~????BB!6~????~~~~{{????{{{{ooBBNN!6~{{{{????{{{{!12~BB??BB!28~!6{????!6{!10~BB??BB!8~????BB!6~????~~~~NNBBoo!6{rr??~~~~NNBBoo{{{{ooBBNN!24~!6{????!6{!6~????!10{~~~~????!6{rrBBNN~~~~????!6{rrBBNN!10~BB??BB!8~!6{????!6{~~~~????!8~????~~~~????!6{rrBBNN!6~????!10{!6~????!10{!222~$#0!144?BBBB~~~~BBBB!6?~~~~{{!6?~~~~????BB~~~~BBBBNN{{oo!6?BBBB~~~~BBBB!12?{{~~{{!28?!6B~~~~!6B!10?{{~~{{!8?~~~~{{!6?~~~~????oo{{NN!6BKK~~????oo{{NNBBBBNN{{oo!24?!6B~~~~!6B!6?~~~~!10B????~~~~!6BKK{{oo????~~~~!6BKK{{oo!10?{{~~{{!8?!6B~~~~!6B????~~~~!8?~~~~????~~~~!6BKK{{oo!6?~~~~!10B!6?~~~~!10B-#7!148~????!10~????~~ooNN~~????!6~????!6~????!10~????!12~NN??oo~~oo??NN!30~????!12~NN??oo~~oo??NN~~~~????~~ooNN~~????~~~~????!16~????!8~????!30~????!12~????!8N!6~????!6~NN??oo~~~~????!6~NN??oo!6~NN??oo~~oo??NN!10~????!10~????!8N????~~~~????!6~NN??oo!6~????!8N!8~????!8N!224~$#0!148?~~~~!10?~~~~??NNoo??~~~~!6?~~~~!6?~~~~!10?~~~~!12?oo~~NN??NN~~oo!30?~~~~!12?oo~~NN??NN~~oo????~~~~??NNoo??~~~~????~~~~!16?~~~~!8?~~~~!30?~~~~!12?~~~~!8o!6?~~~~!6?oo~~NN????~~~~!6?oo~~NN!6?oo~~NN??NN~~oo!10?~~~~!10?~~~~!8o~~~~????~~~~!6?oo~~NN!6?~~~~!8o!8?~~~~!8o-#7!148~????!10~????~~~~{{BB????!6~????!6~????!10~????!10~NN??oo!6roo??NN!28~????!10~NN??oo!6roo??NN~~????~~~~{{BB????~~~~????!6~{{????~~~~????!8~????!30~????!12~????!14~????{{{{ooBBNN!6~????{{{{ooBBNN!6~NN??oo!6roo??NN!8~????!10~????!8~????~~~~????{{{{ooBBNN!8~????!16~????!232~$#0!148?~~~~!10?~~~~????BB{{~~~~!6?~~~~!6?~~~~!10?~~~~!10?oo~~NN!6KNN~~oo!28?~~~~!10?oo~~NN!6KNN~~oo??~~~~????BB{{~~~~????~~~~!6?BB~~~~????~~~~!8?~~~~!30?~~~~!12?~~~~!14?~~~~BBBBNN{{oo!6?~~~~BBBBNN{{oo!6?oo~~NN!6KNN~~oo!8?~~~~!10?~~~~!8?~~~~????~~~~BBBBNN{{oo!8?~~~~!16?~~~~-#7!144~rrrroooorrrr!6~oooo!8~oooo~~~~rroooorrrroo{{!8~rrrroooorrrr!6~oooo!10~oooo!28~oooo!10~oooo!10~oooo~~oooo!8~oooo!6~{{oo!6roo{{!6~{{oorrrroo{{!32~oooo!12~oooo!10r~~~~oooo!8~{{oorr~~oooo!8~{{oorr~~oooo!10~oooo!8~oooo!10~oooo!8~oooo~~~~oooo!8~{{oorr~~~~oooo!10r!6~oooo!10r!222~$#0!144?KKKKNNNNKKKK!6?NNNN!8?NNNN????KKNNNNKKKKNNBB!8?KKKKNNNNKKKK!6?NNNN!10?NNNN!28?NNNN!10?NNNN!10?NNNN??NNNN!8?NNNN!6?BBNN!6KNNBB!6?BBNNKKKKNNBB!32?NNNN!12?NNNN!10K????NNNN!8?BBNNKK??NNNN!8?BBNNKK??NNNN!10?NNNN!8?NNNN!10?NNNN!8?NNNN????NNNN!8?BBNNKK????NNNN!10K!6?NNNN!10K-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!144~NNBB@@@@BBNN!8~NNBB@@@@BBNN!26~!16N!26~NNBB@@@@BBNN!8~NNBB@@@@BBNN!8~NNBB@@@@BBNN!6~!16N~~~~!16N!255~!207~$#0!144?oo{{}}}}{{oo!8?oo{{}}}}{{oo!26?!16o!26?oo{{}}}}{{oo!8?oo{{}}}}{{oo!8?oo{{}}}}{{oo!6?!16o????!16o-#7!144~{{oo____oo{{!8~{{oo____oo{{!26~!16{!26~{{oo____oo{{!8~{{oo____oo{{!8~{{oo____oo{{!6~!16{~~~~!16{!255~!207~$#0!144?BBNN^^^^NNBB!8?BBNN^^^^NNBB!26?!16B!26?BBNN^^^^NNBB!8?BBNN^^^^NNBB!8?BBNN^^^^NNBB!6?!16B????!16B-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!144~^N^!107~^Nnnn!5~NN!26~^NnnnN^!255~!246~$#0!144?_o_!107?_oOOO!5?oo!26?_oOOOo_-#7!142~F@W]W@F~~~|@@z||x~~FBhlll`b!12~x`F~^F`x~~FBx||xBF~~@@~~~~@@!12~FBx||xBF~~@@z|||@B!13~||??|||~~~||@@!6~|@@z||x~~FBhlll`b~~~}}^Nfow!255~!246~$#0!142?w}f`f}w???A}}CAAE??w{UQQQ][!12?E]w?_w]E??w{EAAE{w??}}????}}!12?w{EAAE{w??}}CAAA}{!13?AA~~AAA???AA}}!6?A}}CAAE??w{UQQQ][???@@_oWNF-#7!141~ww!5~ww~~zwwz!5~}{xzzzx|!13~^E_w}~~~~}{xzzx{}~~{wzzz|ww!12~}{xzzx{}~~ww~~~~ww!14~zwwz~~~~zzzwwzzz~~~zwwz!5~}{xzzzx|!5~xx!255~!249~$#0!141?FF!5?FF??CFFC!5?@BECCCEA!13?_x^F@????@BECCEB@??BFCCCAFF!12?@BECCEB@??FF????FF!14?CFFC????CCCFFCCC???CFFC!5?@BECCCEA!5?EE-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!140~!120?!20~!120?!255~!145~$#6!140?!120~$#5!255?!65?!40~$#2!255?!25?!40~$#1!255?!105?!40~-#7!140~!120?!20~!120?!255~!145~$#6!140?!120~$#5!255?!65?!40~$#2!255?!25?!40~$#1!255?!105?!40~-#7!140~!120?!20~!120?!255~!145~$#6!140?!120~$#5!255?!65?!40~$#2!255?!25?!40~$#1!255?!105?!40~-#7!140~!120?!20~!120?!20~!9B!9F!9N!9^!255~!89~$#6!140?!120~$#5!255?!65?!40~$#2!255?!25?!40~!100?!9{!9w!9o!9_$#1!255?!105?!40~-#7!140~!120?!20~!120?!20~!45?!9@!9B!9F!9N!9^!255~!35~$#6!140?!120~$#5!255?!65?!40~!120?{{{!9w!9o!9_$#2!255?!25?!40~!100?!45~!9}!6{$#1!255?!105?!40~-#7!140~!120?!20~!120?!20~!99?!9@!9B!9F!9N!9^!236~$#6!140?!120~$#5!255?!65?!40~!120?!39~!9}!9{www$#2!255?!25?!40~!100?!60~$#1!255?!105?!40~!140?!6w!9o!9_-#8!185?_oww{{}}}!12~}}}{{wwo_$#7!140~!120?!20~!120?!20~!153?!9@!9B!9F!9N!9^!182~$#6!140?!45~^NFFBB@@@!12?@@@BBFFN^!45~$#5!255?!65?!40~!120?!60~$#2!255?!25?!40~!100?!60~$#1!255?!105?!40~!140?!33~!9}!9{!9w!9o!9_-#8!180?ow{}!32~}{wo$#7!140~!120?!20~!120?!20~!200?!180~$#6!140?!40~NFB@!32?@BFN!40~$#5!255?!65?!40~!120?!60~$#2!255?!25?!40~!100?!60~$#1!255?!105?!40~!140?!80~-#8!177?_{!42~{_$#7!140~!120?!20~!120?!20~!200?!180~$#6!140?!37~^B!42?B^!37~$#5!255?!65?!40~!120?!60~$#2!255?!25?!40~!100?!60~$#1!255?!105?!40~!140?!80~-#8!176?_!46~_$#7!140~!120?!20~!120?!20~!200?!180~$#6!140?!36~^!46?^!36~$#5!255?!65?!40~!120?!60~$#2!255?!25?!40~!100?!60~$#1!255?!105?!40~!140?!80~-#8!176?@!46~@$#7!140~!120?!20~!120?!20~!200?!180~$#6!140?!36~}!46?}!36~$#5!255?!65?!40~!120?!60~$#2!255?!25?!40~!100?!60~$#1!255?!105?!40~!140?!80~-#8!177?@N!42~N@$#7!140~!120?!20~!120?!20~!189?!9_oo!180~$#6!140?!37~}o!42?o}!37~$#5!255?!65?!40~!120?!60~$#2!255?!25?!40~!100?!60~$#1!255?!105?!40~!140?!69~!9^NN-#8!180?BFN^!32~^NFB$#7!140~!120?!20~!120?!20~!135?!9_!9o!9w!9{!9}!200~$#6!140?!40~{wo_!32?_ow{!40~$#5!255?!65?!40~!120?!60~$#2!255?!25?!40~!100?!60~$#1!255?!105?!40~!140?!15~!9^!9N!9F!9B!9@-#8!185?@BFFNN^^^!12~^^^NNFFB@$#7!140~!120?!20~!120?!20~!81?!9_!9o!9w!9{!9}!254~$#6!140?!45~}{wwoo___!12?___ooww{}!45~$#5!255?!65?!40~!120?!21~!9^!9N!9F!9B@@@$#2!255?!25?!40~!100?!60~$#1!255?!105?!40~!140?!6@-#7!140~!120?!20~!120?!20~!27?!9_!9o!9w!9{!9}!255~!53~$#6!140?!120~$#5!255?!65?!40~!120?BBB!9@$#2!255?!25?!40~!100?!27~!9^!9N!9F!6B$#1!255?!105?!40~-#7!140~!120?!20~!120?!20~!9{!9}!255~!107~$#6!140?!120~$#5!255?!65?!40~$#2!255?!25?!40~!100?!9B!9@$#1!255?!105?!40~-#7!140~!120?!20~!120?!255~!145~$#6!140?!120~$#5!255?!65?!40~$#2!255?!25?!40~$#1!255?!105?!40~-#7!140~!120?!20~!120?!255~!145~$#6!140?!120~$#5!255?!65?!40~$#2!255?!25?!40~$#1!255?!105?!40~-#7!140~!120?!20~!120?!255~!145~$#6!140?!120~$#5!255?!65?!40~$#2!255?!25?!40~$#1!255?!105?!40~-#7!140~!120?!20~!120?!255~!145~$#6!140?!120~$#5!255?!65?!40~$#2!255?!25?!40~$#1!255?!105?!40~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!140~!255^!245^!160~$#0!140?!255_!245_-#7!140~?!218Z?!12~nnNNnn~~~nnnNNnnn~~~^NnnnN^!11~?!228Z?!160~$#0!140?~!218c~!12?OOooOO???OOOooOOO???_oOOOo_!11?~!228c~-#7!140~?!218Z?!14~??!8~??!6~}}vvbG[!11~?!228Z?!160~$#0!140?~!218c~!14?~~!8?~~!6?@@GG[vb!11?~!228c~-#7!140~?!218Z?!12~zzwwzz!6~ww!6~{wzzzw{!11~?!228Z?!160~$#0!140?~!218c~!12?CCFFCC!6?FF!6?BFCCCFB!11?~!228c~-#7!140~w!218zw!50zw!228zw!160~$#0!140?F!218CF!50CF!228CF-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-\ \ No newline at end of file diff --git a/screenshots/menu.png b/screenshots/menu.png new file mode 100644 index 0000000..d3d1922 --- /dev/null +++ b/screenshots/menu.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:86968b6b5b89951af5193deb7ba30c190876f436fac294ba92cf10017edea0fe +size 2032 diff --git a/screenshots/menu.six b/screenshots/menu.six new file mode 100644 index 0000000..0707948 --- /dev/null +++ b/screenshots/menu.six @@ -0,0 +1 @@ +P0;2;6q"1;1;800;480#1;2;0;0;60#2;2;100;0;0#3;2;0;60;0#4;2;60;0;0#5;2;100;100;100#6;2;100;80;0#7;2;60;80;94#8;2;0;0;0#9;2;34;34;60#10;2;60;27;27#11;2;34;60;34#12;2;60;34;60#13;2;34;60;60#14;2;60;60;34#15;2;80;80;80#0;2;0;0;0#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!9~nnnnNNNNnnnn!6~NNNN^^!6~NNNN~~~~!6nNNNN!6n!6~NNNN!10n~~~~NNNN!6n^^^^!6~NNNN^^!6~NNNN!10~^^NN^^!8~!6nNNNN!6n!6~nnnnNNNNnnnn!8~^^NNnnnnNN^^!6~NNNN^^!6~NNNN!10~^^NN^^!10~NNNN!255~!37~$#0!255?!9?OOOOooooOOOO!6?oooo__!6?oooo????!6Ooooo!6O!6?oooo!10O????oooo!6O____!6?oooo__!6?oooo!10?__oo__!8?!6Ooooo!6O!6?OOOOooooOOOO!8?__ooOOOOoo__!6?oooo__!6?oooo!10?__oo__!10?oooo-#7!255~!13~????!10~????}}xxff^^????!10~????!12~????!8v!6~????nnnnNNVVooww~~~~????}}xxff^^????!6~FF@@WW]]WW@@FF!10~????!16~????!10~????!8~????~~~~????}}xxff^^????!6~FF@@WW]]WW@@FF!6~????!255~!37~$#0!255?!13?~~~~!10?~~~~@@EEWW__~~~~!10?~~~~!12?~~~~!8G!6?~~~~OOOOooggNNFF????~~~~@@EEWW__~~~~!6?ww}}ff``ff}}ww!10?~~~~!16?~~~~!10?~~~~!8?~~~~????~~~~@@EEWW__~~~~!6?ww}}ff``ff}}ww!6?~~~~-#7!255~!9~zzzzwwwwzzzz!6~wwww!6~}}wwww!10~wwww!12~wwww!10z~~~~wwww!6~}}{{xxzz~~wwww!6~}}wwww~~~~wwww!10~wwww!8~wwww!12~zzzzwwwwzzzz!6~}}{{xxzzzzxx{{}}~~~~wwww!6~}}wwww~~~~wwww!10~wwww~~~~wwww!10z!255~!27~$#0!255?!9?CCCCFFFFCCCC!6?FFFF!6?@@FFFF!10?FFFF!12?FFFF!10C????FFFF!6?@@BBEECC??FFFF!6?@@FFFF????FFFF!10?FFFF!8?FFFF!12?CCCCFFFFCCCC!6?@@BBEECCCCEEBB@@????FFFF!6?@@FFFF????FFFF!10?FFFF????FFFF!10C-#7!255~!255~!255~!35~-#7!246~!8N~~NN!8~!8N!8~!12N!10~!14N!28~!8N!10~!14N!28~!10N!8~!12N!10~!8N~~NN~~~~NNNN!8~NNNN!12~NN!12~NNNN!18~!10N!255~!9~$#0!246?!8o??oo!8?!8o!8?!12o!10?!14o!28?!8o!10?!14o!28?!10o!8?!12o!10?!8o??oo????oooo!8?oooo!12?oo!12?oooo!18?!10o-#7!242~BB??{{!6~{{oo~~~~BB??{{~~~~{{??BB!6~????~~~~{{??BB!6~????!34~BB??{{~~~~{{??BB!6~????!34~BB??{{!6~oooo!10~????!10~BB??{{!6~{{oo~~~~????ooNN~~~~????!8~NN??oo??NN!8~????!14~BB??{{!6~oooo!255~!7~$#0!242?{{~~BB!6?BBNN????{{~~BB????BB~~{{!6?~~~~????BB~~{{!6?~~~~!34?{{~~BB????BB~~{{!6?~~~~!34?{{~~BB!6?NNNN!10?~~~~!10?{{~~BB!6?BBNN????~~~~NNoo????~~~~!8?oo~~NN~~oo!8?~~~~!14?{{~~BB!6?NNNN-#7!242~????!16~????!8~????!6~????!6~????!6~????!8r!26~????!8~????!6~????!8r!28~{{ooooBBBBNN!12~????!10~????!6~!6N~~~~????~~{{BB~~????!6~BB??{{~~{{??BB!6~????!16~{{ooooBBBBNN!255~!9~$#0!242?~~~~!16?~~~~!8?~~~~!6?~~~~!6?~~~~!6?~~~~!8K!26?~~~~!8?~~~~!6?~~~~!8K!28?BBNNNN{{{{oo!12?~~~~!10?~~~~!6?!6o????~~~~??BB{{??~~~~!6?{{~~BB??BB~~{{!6?~~~~!16?BBNNNN{{{{oo-#7!242~oo??NN!6~NNNN~~~~oo??NN~~~~NN??oo!6~????~~~~NN??oo!6~????!34~oo??NN~~~~NN??oo!6~????!34~BBBBNN!6~????!10~????!10~oo??NN!6~????~~~~????!6~oo????~~~~BB??!10{??BB~~~~????!14~BBBBNN!6~????!255~!7~$#0!242?NN~~oo!6?oooo????NN~~oo????oo~~NN!6?~~~~????oo~~NN!6?~~~~!34?NN~~oo????oo~~NN!6?~~~~!34?{{{{oo!6?~~~~!10?~~~~!10?NN~~oo!6?~~~~????~~~~!6?NN~~~~????{{~~!10B~~{{????~~~~!14?{{{{oo!6?~~~~-#7!246~!10{!10~!8{!8~!12{!10~!14{!28~!8{!10~{{{{!36~!12{!8~!12{!10~!10{!6~{{{{!8~{{{{~~~~{{{{!10~{{{{~~~~!14{!6~!12{!255~!9~$#0!246?!10B!10?!8B!8?!12B!10?!14B!28?!8B!10?BBBB!36?!12B!8?!12B!10?!10B!6?BBBB!8?BBBB????BBBB!10?BBBB????!14B!6?!12B-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!7~|xrfN^!13~_?~~~~?_~~~}}??}}~~~~??]]]]}~~??~~F~~??!12~^F`w`F^~~~??!7~??}}}\@b~~??^^^^??~~~^F`w`F^~~??]]]?P~~~~??]]]]}~~}}}??}}}!13~??]]]]}~~~??!8~^F`w`F^~~B@{}}}|w~~r`KM]]wx!255~!76~$#0!255?!7?AEKWo_!13?^~????~^???@@~~@@????~~````@??~~??w??~~!12?_w]F]w_???~~!7?~~@@@a}[??~~____~~???_w]F]w_??~~```~m????~~````@??@@@~~@@@!13?~~````@???~~!8?_w]F]w_??{}B@@@AF??K]rp``FE-#7!255~!7~vrx{}!15~{offo{~~~~nn__nn~~~~__!5n~~}wbo}obw}!11~b_{|||{_b~~__!5n~~__}}}!5~__~~~~__~~b_{|||{_b~__nnnn_o~~~__!5n!5~__!16~__!8~__!5n~~b_{|||{_b~wofnnm_o~~rbfnmm_p!255~!76~$#0!255?!7?GKEB@!15?BNWWNB????OO^^OO????^^!5O??@F[N@N[F@!11?[^BAAAB^[??^^!5O??^^@@@!5?^^????^^??[^BAAAB^[?^^OOOO^N???^^!5O!5?^^!16?^^!8?^^!5O??[^BAAAB^[?FNWOOP^N??K[WOPP^M-#7!255~!255~!255~!35~-#7!255~!26~BB~~~~BB~~~zzBBzz~~~~BB!5z~~BB~~^~~BB!11~BBf^~~BB~~BB~~~~BB~~BBF^~^FBB~~BB!5z~~BBzzzvFN~~~~^FbF^~~~~BB!17~BBzzzvFN~~~BB!5z~~BBf^~~BB~~BBf^~~BB~~~~^FbF^~~~BBf^~~BB~~zzzBBzzz~~NFrzzzbf!255~!56~$#0!255?!26?{{????{{???CC{{CC????{{!5C??{{??_??{{!11?{{W_??{{??{{????{{??{{w_?_w{{??{{!5C??{{CCCGwo????_w[w_????{{!17?{{CCCGwo???{{!5C??{{W_??{{??{{W_??{{????_w[w_???{{W_??{{??CCC{{CCC??owKCCC[W-#7!255~!26~}oB^^Bo}!5~??!6~??||||~~~w_NBwBN_w!11~??~}xf??~~o?^~~^?o~~??~wbw~??~~??||||~~~??zzrdK]~~N@ouvuo@N~~??!17~??zzz|{}~~~??||||~~~??~}xf??~~??~}xf??~~N@ouvuo@N~??~}xf??!5~??!5~NM[{xxBF!255~!56~$#0!255?!26?@N{__{N@!5?~~!6?~~AAAA???F^o{F{o^F!11?~~?@EW~~??N~_??_~N??~~?F[F?~~??~~AAAA???~~CCKYr`??o}NHGHN}o??~~!17?~~CCCAB@???~~AAAA???~~?@EW~~??~~?@EW~~??o}NHGHN}o?~~?@EW~~!5?~~!5?opbBEE{w-#7!255~!29~}}!6~!6}~~~~!7}~~~~}~~~}!13~}}~~~~}}~~~~}}}}~~~~}}!5~}}~~!7}~~}}!5~}}~}}!5~}}~~!7}!12~}}!9~!7}~~}}~~~~}}~~}}~~~~}}~~}}!5~}}~}}~~~~}}!5~}}!6~!6}!255~!57~$#0!255?!29?@@!6?!6@????!7@????@???@!13?@@????@@????@@@@????@@!5?@@??!7@??@@!5?@@?@@!5?@@??!7@!12?@@!9?!7@??@@????@@??@@????@@??@@!5?@@?@@????@@!5?@@!6?!6@-#7!255~!26~nnnNNnnn~~~NN!5n~~~^NnnnN^~~nnnNNnnn!15~^N^!5~NN!7~NNnnn^^~~~NN~~~~NN!5~^N^~~~~NNnnnN^~~~~NN!5n~~nnnNNnnn!13~NN!5n~~~NN!10~^N^!5~^Nnnn^N~~~^NnnnN^!255~!76~$#0!255?!26?OOOooOOO???oo!5O???_oOOOo_??OOOooOOO!15?_o_!5?oo!7?ooOOO__???oo????oo!5?_o_????ooOOOo_????oo!5O??OOOooOOO!13?oo!5O???oo!10?_o_!5?_oOOO_o???_oOOOo_-#7!255~!29~??!6~??vvvv~~~{wrrffM]!5~??!16~F@W]W@F~~~??!7~??nnnvow~~??vvvv??~~~F@W]W@F~~??vvvoCN~~~??vvvv!6~??!16~??vvvv~~~~??!8~F@W]W@F~~??~~~nNM~~{wrrffM]!255~!76~$#0!255?!29?~~!6?~~GGGG???BFKKWWp`!5?~~!16?w}f`f}w???~~!7?~~OOOGNF??~~GGGG~~???w}f`f}w??~~GGGNzo???~~GGGG!6?~~!16?~~GGGG????~~!8?w}f`f}w??~~???Oop??BFKKWWp`-#7!255~!29~ww!6~ww!5z~~{wxzzzw{!5~ww!15~ww!5~ww~~ww!5z~~ww!8~ww~~~~ww~~ww!5~ww~wwzzzzw{~~~ww!5z!5~ww!16~ww!8~ww!5z~~ww!5~ww~}{xzzzw{~~{wxzzzw{!255~!76~$#0!255?!29?FF!6?FF!5C??BFECCCFB!5?FF!15?FF!5?FF??FF!5C??FF!8?FF????FF??FF!5?FF?FFCCCCFB???FF!5C!5?FF!16?FF!8?FF!5C??FF!5?FF?@BECCCFB??BFECCCFB-#7!255~!255~!255~!35~-#7!255~!26~}}}??}}}~~~??]]]]}~~r`KM]]wx~~}}}??}}}!12~??xf^~??~~??~~~~??~~??pF~Fp??~~??]]]]}~~??}}}\@b~~~^F`w`F^~~~??!17~??}}}\@b~~~??]]]]}~~??xf^~??~~??xf^~??~~~^F`w`F^~~??xf^~??~~}}}??}}}~~r`KM]]wx!255~!56~$#0!255?!26?@@@~~@@@???~~````@??K]rp``FE??@@@~~@@@!12?~~EW_?~~??~~????~~??~~Mw?wM~~??~~````@??~~@@@a}[???_w]F]w_???~~!17?~~@@@a}[???~~````@??~~EW_?~~??~~EW_?~~???_w]F]w_??~~EW_?~~??@@@~~@@@??K]rp``FE-#7!255~!29~__!6~__!5n~~rbfnmm_p!5~__!15~__~~}x__~~{ofnnfo{~~__~}w}~__~~__!5n~~__}}{xrfn~b_{|||{_b~~__!5n!12~__}}}!6~__!5n~~__~~}x__~~__~~}x__~~b_{|||{_b~__~~}x__!5~__!5~rbfnmm_p!255~!56~$#0!255?!29?^^!6?^^!5O??K[WOPP^M!5?^^!15?^^??@E^^??BNWOOWNB??^^?@F@?^^??^^!5O??^^@@BEKWO?[^BAAAB^[??^^!5O!12?^^@@@!6?^^!5O??^^??@E^^??^^??@E^^??[^BAAAB^[?^^??@E^^!5?^^!5?K[WOPP^M-#7!255~!255~!255~!35~-#7!255~!26~zzzBBzzz~~~BB!5z~~NFrzzzbf~~zzzBBzzz!12~NFrzzzbf~~~zzBBzz~~~BBf^~~BB~~NFrzzzvb~~~BB!8~BB!5z!13~BB!5z~~~BB!9~^FbF^~~~NFrzzzvb!12~NFrzzzbf~~~zzBBzz~~~NFrzzzvb~~BBf^~~BB~~~~^FbF^~~~~BB!7~NFrzzzbf!255~!26~$#0!255?!26?CCC{{CCC???{{!5C??owKCCC[W??CCC{{CCC!12?owKCCC[W???CC{{CC???{{W_??{{??owKCCCG[???{{!8?{{!5C!13?{{!5C???{{!9?_w[w_???owKCCCG[!12?owKCCC[W???CC{{CC???owKCCCG[??{{W_??{{????_w[w_????{{!7?owKCCC[W-#7!255~!29~??!6~??||||~~~NM[{xxBF!5~??!15~NM[{xxBF!5~??!5~??~}xf??~~_?^~~zBB~~~??!8~??||||!14~??||||~~~~??!7~N@ouvuo@N~_?^~~zBB!12~NM[{xxBF!5~??!5~_?^~~zBB~~??~}xf??~~N@ouvuo@N~~??!7~NM[{xxBF!255~!26~$#0!255?!29?~~!6?~~AAAA???opbBEE{w!5?~~!15?opbBEE{w!5?~~!5?~~?@EW~~??^~_??C{{???~~!8?~~AAAA!14?~~AAAA????~~!7?o}NHGHN}o?^~_??C{{!12?opbBEE{w!5?~~!5?^~_??C{{??~~?@EW~~??o}NHGHN}o??~~!7?opbBEE{w-#7!255~!29~}}!6~!7}~~~!6}!6~}}!16~!6}~~~~!6}~~~}}~~~~}}~~~~!5}~~~~!7}~~~!7}!13~}}!8~!7}~~}}!5~}}~~~!5}!14~!6}~~~~!6}!5~!5}~~~}}~~~~}}~~}}!5~}}~~!7}~~~!6}!255~!27~$#0!255?!29?@@!6?!7@???!6@!6?@@!16?!6@????!6@???@@????@@????!5@????!7@???!7@!13?@@!8?!7@??@@!5?@@???!5@!14?!6@????!6@!5?!5@???@@????@@??@@!5?@@??!7@???!6@-#7!255~!26~nnnNNnnn~~~NN!5n~~~^NnnnN^~~nnnNNnnn!12~nNNnnN^~~~~^NnnN^~~~NN~~~~NN~~NNnnnN^~~~~NN!8~NN!5n!13~NN!5n~~~NN!10~^N^!5~^Nnnn^N!13~^NnnnN^~~~nnNNnn~~~~^Nnnn^N~~NN^~~~NN!5~^N^!5~NN!8~^NnnnN^!255~!26~$#0!255?!26?OOOooOOO???oo!5O???_oOOOo_??OOOooOOO!12?OooOOo_????_oOOo_???oo????oo??ooOOOo_????oo!8?oo!5O!13?oo!5O???oo!10?_o_!5?_oOOO_o!13?_oOOOo_???OOooOO????_oOOO_o??oo_???oo!5?_o_!5?oo!8?_oOOOo_-#7!255~!29~??!6~??vvvv~~~{wrrffM]!5~??!16~??~~~??~~??~~~~??~~??~~~~??~~??vvvoCN~~~??!8~??vvvv!14~??vvvv~~~~??!8~F@W]W@F~~??~~~nNM!12~{wrrffM]!5~??!5~??~~~nNM~~??}xf^??~~~F@W]W@F~~~??!7~{wrrffM]!255~!26~$#0!255?!29?~~!6?~~GGGG???BFKKWWp`!5?~~!16?~~???~~??~~????~~??~~????~~??~~GGGNzo???~~!8?~~GGGG!14?~~GGGG????~~!8?w}f`f}w??~~???Oop!12?BFKKWWp`!5?~~!5?~~???Oop??~~@EW_~~???w}f`f}w???~~!7?BFKKWWp`-#7!255~!29~ww!6~ww!5z~~{wxzzzw{!5~ww!15~zwwzzx{}~~}{xzzx{}~~~{xzzx{~~~wwzzzzw{~~~ww!5z~~~ww!5z!13~ww!8~ww!5z~~ww!5~ww~}{xzzzw{!12~{wxzzzw{~~~zzwwzz~~~}{xzzzw{~~ww~~~}ww~~ww!5~ww~~ww!5z~~{wxzzzw{!255~!26~$#0!255?!29?FF!6?FF!5C??BFECCCFB!5?FF!15?CFFCCEB@??@BECCEB@???BECCEB???FFCCCCFB???FF!5C???FF!5C!13?FF!8?FF!5C??FF!5?FF?@BECCCFB!12?BFECCCFB???CCFFCC???@BECCCFB??FF???@FF??FF!5?FF??FF!5C??BFECCCFB-#7!255~!255~!255~!35~-#7!255~!27~??!7~B@{}}{@B~~B@{}}{@B~~??NFrx{}~~??~~~~??~~??}}}\@b!13~??]]]]}~~~??!8~^F`w`F^~~B@{}}}|w!12~r`KM]]wx~~~??]]]]}~~B@{}}{@B~~??~~~~??~~~??]]]]}~~??xf^~??~~B@{}}}|w~~~??]]]]}!255~!66~$#0!255?!27?~~!7?{}B@@B}{??{}B@@B}{??~~owKEB@??~~????~~??~~@@@a}[!13?~~````@???~~!8?_w]F]w_??{}B@@@AF!12?K]rp``FE???~~````@??{}B@@B}{??~~????~~???~~````@??~~EW_?~~??{}B@@@AF???~~````@-#7!255~!27~__!5n~~wofnnfow~~wofnnfow~~__~}{xrfn~{ofnnfo{~~__}}}!16~__!8~__!5n~~b_{|||{_b~wofnnm_o!12~rbfnmm_p~~~__!5n~~woffNFow~~{ofnnfo{~~~__!5n~~__~~}x__~~wofnnnfv~~~__!5n!255~!66~$#0!255?!27?^^!5O??FNWOOWNF??FNWOOWNF??^^?@BEKWO?BNWOOWNB??^^@@@!16?^^!8?^^!5O??[^BAAAB^[?FNWOOP^N!12?K[WOPP^M???^^!5O??FNWWowNF??BNWOOWNB???^^!5O??^^??@E^^??FNWOOOWG???^^!5O-#7!255~!171~}}!255~!117~$#0!255?!171?@@-#7!255~!27~BB!5z~~rBN~~NBr~~~zzBBzz~~~zzzBBzzz!255~!226~$#0!255?!27?{{!5C??K{o??o{K???CC{{CC???CCC{{CCC-#7!255~!27~??||||~~~^FawwaF^!5~??!8~??!255~!229~$#0!255?!27?~~AAAA???_w\FF\w_!5?~~!8?~~-#7!255~!27~!7}~~}}~~~~}}~~~!6}!6~}}!255~!229~$#0!255?!27?!7@??@@????@@???!6@!6?@@-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-\ \ No newline at end of file diff --git a/screenshots/paparomeo.png b/screenshots/paparomeo.png new file mode 100644 index 0000000..dadee0e --- /dev/null +++ b/screenshots/paparomeo.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7ecd478b8602171d978e53371b23417e1418356b35edd1a7e0fe5a74d5cb4783 +size 2961 diff --git a/screenshots/paparomeo.six b/screenshots/paparomeo.six new file mode 100644 index 0000000..2fbbe32 --- /dev/null +++ b/screenshots/paparomeo.six @@ -0,0 +1 @@ +P0;2;6q"1;1;800;480#1;2;0;0;60#2;2;100;0;0#3;2;0;60;0#4;2;60;0;0#5;2;100;100;100#6;2;100;80;0#7;2;60;80;94#8;2;0;0;0#9;2;34;34;60#10;2;60;27;27#11;2;34;60;34#12;2;60;34;60#13;2;34;60;60#14;2;60;60;34#15;2;80;80;80#0;2;0;0;0#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!80~!120N!255~!255~!90~$#1!80?!120o-#7!80~!120?!82~BBBB~~~~^^~~~~BBBB~~BBBB~~!8^!10~!10^!6~^^^^BBBB!8^!28~!8^BBBB!8~!8^!12~!10^!10~!10^!26~^^^^BBBB!8^~~~~BBBB~~!8^!8~^^^^RRRR!14~!10^!28~^^^^FFBB!6Z!6~zzzzBBBB!14~!10^!10~!12^!142~$#1!80?!120~$#0!255?!27?{{{{????__????{{{{??{{{{??!8_!10?!10_!6?____{{{{!8_!28?!8_{{{{!8?!8_!12?!10_!10?!10_!26?____{{{{!8_????{{{{??!8_!8?____kkkk!14?!10_!28?____ww{{!6c!6?CCCC{{{{!14?!10_!10?!12_-#7!80~!120?!82~ww__NNBBwwBBNN__ww~~????}}!6~????~~~~NNEEuuzzzzZZ????!8~????!6~^^!24~``??]]~~~~^^????~~~~``??]]~~~~]]??``~~~~``??YY!6zWWWW!6~[[WWxxrrbbEEMM!28~????!6~^^~~~~????}}!6~????!10~????!12~[[WWxxrrbbEEMM!30~????!16~????!10~NNEEuuzzzzZZ????~~~~``??]]~~~~^^????!142~$#1!80?!120~$#0!255?!27?FF^^oo{{FF{{oo^^FF??~~~~@@!6?~~~~????ooxxHHCCCCcc~~~~!8?~~~~!6?__!24?]]~~``????__~~~~????]]~~``????``~~]]????]]~~dd!6Cffff!6?bbffEEKK[[xxpp!28?~~~~!6?__????~~~~@@!6?~~~~!10?~~~~!12?bbffEEKK[[xxpp!30?~~~~!16?~~~~!10?ooxxHHCCCCcc~~~~????]]~~``????__~~~~-#7!80~!120?!86~}}!6~}}!6~}}}}!8~}}}}!6~!8}~~}}}}!10~!8}!30~!6}~~}}}}!8~!8}!12~!10}!10~!10}!32~!8}!6~}}}}!8~}}}}~~~~!16}!8~!10}!30~!8}!8~!16}!6~!8}~~}}}}~~~~vvff!6mffooww!142~$#1!80?!120~$#0!255?!31?@@!6?@@!6?@@@@!8?@@@@!6?!8@??@@@@!10?!8@!30?!6@??@@@@!8?!8@!12?!10@!10?!10@!32?!8@!6?@@@@!8?@@@@????!16@!8?!10@!30?!8@!8?!16@!6?!8@??@@@@????GGWW!6PWWNNFF-#7!80~!120?!142~NNNN!22~NNNN!54~NNNN!18~NNNN!152~^^NN!6nNN^^!182~$#1!80?!120~$#0!255?!87?oooo!22?oooo!54?oooo!18?oooo!152?__oo!6Ooo__-#7!80~!120?!82~FFBBxx!6|xxzz~~~~FFBBxx||||xxBBFF~~~~@@BB||@@BB||@@BB~~~~????zz||||xxBBFF!6~||||@@@@!10~@@@@zz!6|@@BB!6~ZZXX!6l@@BB~~~~||||????!8|!6~||||@@@@!10~FFBBxx||||xxBBFF~~~~@@@@zz!6|@@BB!24~@@BB||@@BB||@@BB~~~~FFBBhh!6l``bb!6~ZZXX!6l@@BB~~~~@@@@zz!6|@@BB!6~}}}}^^NNffooww!182~$#1!80?!120~$#0!255?!27?ww{{EE!6AEECC????ww{{EEAAAAEE{{ww????}}{{AA}}{{AA}}{{????~~~~CCAAAAEE{{ww!6?AAAA}}}}!10?}}}}CC!6A}}{{!6?ccee!6Q}}{{????AAAA~~~~!8A!6?AAAA}}}}!10?ww{{EEAAAAEE{{ww????}}}}CC!6A}}{{!24?}}{{AA}}{{AA}}{{????ww{{UU!6Q]][[!6?ccee!6Q}}{{????}}}}CC!6A}}{{!6?@@@@__ooWWNNFF-#7!80~!120?!82~}}{{xx!6zxx||~~~~}}{{xxzzzzxx{{}}~~~~wwww~~wwww~~wwww~~~~wwww!6zxx{{}}~~~~!6zwwww!6z~~~~wwww!8~wwww~~~~{{ww!6z||wwww!8~{{ww!6z||~~~~!6zwwww!6z~~~~}}{{xxzzzzxx{{}}~~~~wwww!8~wwww!24~wwww~~wwww~~wwww~~~~}}{{xx!6zxx||~~~~{{ww!6z||wwww~~~~wwww!8~wwww!10~xxxx!188~$#1!80?!120~$#0!255?!27?@@BBEE!6CEEAA????@@BBEECCCCEEBB@@????FFFF??FFFF??FFFF????FFFF!6CEEBB@@????!6CFFFF!6C????FFFF!8?FFFF????BBFF!6CAAFFFF!8?BBFF!6CAA????!6CFFFF!6C????@@BBEECCCCEEBB@@????FFFF!8?FFFF!24?FFFF??FFFF??FFFF????@@BBEE!6CEEAA????BBFF!6CAAFFFF????FFFF!8?FFFF!10?EEEE-#7!80~!120?!255~!255~!90~$#5!120?!40{$#1!80?!40~!40B!40~-#7!80~!120?!255~!255~!90~$#5!120?!40~$#1!80?!40~!40?!40~-#7!80~!120?!255~!255~!90~$#5!120?!40~$#1!80?!40~!40?!40~-#7!80~!120?!255~!255~!90~$#5!120?!40~$#1!80?!40~!40?!40~-#7!80~!120?!83~nvBB!25~zzBBzz!15~!5^!5~!5^~~~^^~^^^^!15~^^^^~~~~^^~^^^^~~~~zzBB!5~^^~~~~^^!14~!5^!5~!5^!5~!5^~~~~^^RR!7~!5^~~~^^BB^^^^!13~^^RR!6~^^FBZZZ!12~^^~~~~^^~~~~^^^^~~~~^^~~~~^^!12~^^~~~~^^~~~^^RR!6~zzBB!6~zzBB!15~^~^^~^^!5~!5^~~~~BB~~~^^~~~~!5^!15~!5^~~~~zzBB!6~zzBB!114~$#5!120?!40~$#1!80?!40~!40?!40~$#0!255?!28?OG{{!25?CC{{CC!15?!5_!5?!5_???__?____!15?____????__?____????CC{{!5?__????__!14?!5_!5?!5_!5?!5_????__kk!7?!5_???__{{____!13?__kk!6?__w{ccc!12?__????__????____????__????__!12?__????__???__kk!6?CC{{!6?CC{{!15?_?__?__!5?!5_????{{???__????!5_!15?!5_????CC{{!6?CC{{-#7!80~!120?!85~??!6~^^!19~??!15~`?]~~~]]~~NEuzzZ??~~??}~~~??!12~`?]~~]?`~~??}~~~??!5~??!5~}w`NF`w}!12~NEuzzZ??~~~[WxrbEM~~~[WxrbEM!5~??!6~[WxrbEM~~~~??~~~^!15~??!8~??!15~}w`NF`w}~~`?]~~]?`~~??~~~^??!12~o?N``N?o!5~??!8~??!8~??!15~??~??~??~~NEuzzZ??~~~??r`K]~~~`?YzzzWW!12~NEuzzZ??!5~??!8~??!114~$#5!120?!40~$#1!80?!40~!40?!40~$#0!255?!30?~~!6?__!19?~~!15?]~`???``??oxHCCc~~??~~@???~~!12?]~`??`~]??~~@???~~!5?~~!5?@F]ow]F@!12?oxHCCc~~???bfEK[xp???bfEK[xp!5?~~!6?bfEK[xp????~~???_!15?~~!8?~~!15?@F]ow]F@??]~`??`~]??~~???_~~!12?N~o]]o~N!5?~~!8?~~!8?~~!15?~~?~~?~~??oxHCCc~~???~~K]r`???]~dCCCff!12?oxHCCc~~!5?~~!8?~~-#7!80~!120?!83~!6}~~~~}}!17~!6}!15~!5}~~~~}}}}~}}~~}}~~~~}}!14~}}}}~~~~}}~~~~}}~~!8}~~~vpw}!16~}}}}~}}~~~~!5}!5~!5}~~~!8}~~~~!5}!6~}}}}!13~!8}~~~~}}}}!15~vpw}!7~}}}}!5~}}}}~}}!13~}}~~}}~~~!8}~~!8}~~!8}!12~}}~}}~}}~~~}}}}~}}~~~}}~~~}}~~~~!5}!14~}}}}~}}~~!8}~~!8}!111~$#5!120?!40~$#1!80?!40~!40?!40~$#0!255?!28?!6@????@@!17?!6@!15?!5@????@@@@?@@??@@????@@!14?@@@@????@@????@@??!8@???GMF@!16?@@@@?@@????!5@!5?!5@???!8@????!5@!6?@@@@!13?!8@????@@@@!15?GMF@!7?@@@@!5?@@@@?@@!13?@@??@@???!8@??!8@??!8@!12?@@?@@?@@???@@@@?@@???@@???@@????!5@!14?@@@@?@@??!8@??!8@-#7!80~!120?!124~^Nnnn!5~^Nnnn!24~NN!28~NN!29~^Nnnn!13~nnNN!6~nnNN!255~!89~$#1!80?!120~$#0!255?!69?_oOOO!5?_oOOO!24?oo!28?oo!29?_oOOO!13?OOoo!6?OOoo-#7!80~!120?!111~FBhlll`b~~~||??|||~~~||??|||~~FBx||xBF~~~|@@z||x~~||??||||~~~r`dLLXz!12~||??||||~~FBx||xBF!13~||??|||~~FBx||xBF!5~??!8~??!5~FBx||xBF~~@@~FF~@@!255~!66~$#1!80?!120~$#0!255?!56?w{UQQQ][???AA~~AAA???AA~~AAA??w{EAAE{w???A}}CAAE??AA~~AAAA???K]YqqeC!12?AA~~AAAA??w{EAAE{w!13?AA~~AAA??w{EAAE{w!5?~~!8?~~!5?w{EAAE{w??}}?ww?}}-#7!80~!120?!111~}{xzzzx|~~~~zwwz!6~zwwz~~~~}{xzzx{}~~~zwwz!7~{wzzz|~~~|xzzyw{!14~{wzzz|~~}{xzzx{}!14~zwwz~~~~}{xzzx{}~~zzzwwzzz~~zzzwwzzz~~}{xzzx{}~~~ww}}ww!5~xx!255~!60~$#1!80?!120~$#0!255?!56?@BECCCEA????CFFC!6?CFFC????@BECCEB@???CFFC!7?BFCCCA???AECCDFB!14?BFCCCA??@BECCEB@!14?CFFC????@BECCEB@??CCCFFCCC??CCCFFCCC??@BECCEB@???FF@@FF!5?EE-#7!80~!120?!255~!255~!90~$#1!80?!120~-#7!80~!120?!255~!255~!90~$#1!80?!120~-#7!80~!120?!255~!255~!90~$#1!80?!120~-#7!80~!120o!255~!255~!90~$#1!80?!120N-#7!255~!27~fbzzzBF!23~zzBBzz!15~!5^~~~^~^^~^^!13~^^~^^^!5~^^^~^^^~~~~^^^^!6~!5^!5~!5^!5~!5^!5~^^^^BB~~~^^RR!5~^^~^^^^!5~!6^!12~^^BB^^^^~~~~^^^^!14~^^~~~~^^~~~~^^^^~~~~^^~~~~^^~~~^^^~^^^!14~!5^!5~!5^!5~!5^~~~~^^RR!7~!5^~~~^^BB^^^^~~~~!5^~~~^^~^^^^!5~!5^!5~!5^!152~$#0!255?!27?W[CCC{w!23?CC{{CC!15?!5_???_?__?__!13?__?___!5?___?___????____!6?!5_!5?!5_!5?!5_!5?____{{???__kk!5?__?____!5?!6_!12?__{{____????____!14?__????__????____????__????__???___?___!14?!5_!5?!5_!5?!5_????__kk!7?!5_???__{{____????!5_???__?____!5?!5_!5?!5_-#7!255~!27~FBrxw[]~~~~^^!19~??!15~NEuzzZ??~~??~??~??!12~??}~~]?`~~~~??}~~}~~`?]~~]?`~~`?]~~~]]~~`?YzzzWW~~`?YzzzWW~~`?]~~^??!5~??!5~??}~~~??~~`?]~~^??!14~??~~~^~~`?]~~]?`!12~}w`NF`w}~~`?]~~]?`~~??~~~^??~~~~??}~~}!12~NEuzzZ??~~~[WxrbEM~~~[WxrbEM!5~??!6~[WxrbEM~~~~??~~~^~~NEuzzZ??~~??}~~~??~~`?]~~~]]~~`?YzzzWW~~~~^^!145~$#0!255?!27?w{KEFb`????__!19?~~!15?oxHCCc~~??~~?~~?~~!12?~~@??`~]????~~@??@??]~`??`~]??]~`???``??]~dCCCff??]~dCCCff??]~`??_~~!5?~~!5?~~@???~~??]~`??_~~!14?~~???_??]~`??`~]!12?@F]ow]F@??]~`??`~]??~~???_~~????~~@??@!12?oxHCCc~~???bfEK[xp???bfEK[xp!5?~~!6?bfEK[xp????~~???_??oxHCCc~~??~~@???~~??]~`???``??]~dCCCff????__-#7!255~!27~!7}~~~~}}!17~!6}!14~}}}}~}}~~}}~}}~}}!12~oo}}}}!5~}}}}!7~}}}}!6~!5}!5~!5}!5~!5}!5~}}}~}}~~!8}~~}}~~~~}}~~vfmmmfow!15~}}}}!5~}}}}!15~vpw}!7~}}}}!5~}}}}~}}~~~}}}}!16~}}}}~}}~~~~!5}!5~!5}~~~!8}~~~~!5}!6~}}}}~~~~}}}}~}}~~}}~~~~}}~~~~!5}!5~!5}!5~}}!145~$#0!255?!27?!7@????@@!17?!6@!14?@@@@?@@??@@?@@?@@!12?NN@@@@!5?@@@@!7?@@@@!6?!5@!5?!5@!5?!5@!5?@@@?@@??!8@??@@????@@??GWPPPWNF!15?@@@@!5?@@@@!15?GMF@!7?@@@@!5?@@@@?@@???@@@@!16?@@@@?@@????!5@!5?!5@???!8@????!5@!6?@@@@????@@@@?@@??@@????@@????!5@!5?!5@!5?@@-#7!80~!120?!255~!255~!90~$#6!128?!24~$#2!80?!48~!24?!48~-#7!80~!120?!255~!255~!90~$#6!128?!24~$#2!80?!48~!24?!48~-#7!80~!120?!255~!255~!90~$#6!128?!24~$#2!80?!48~!24?!48~-#7!80~!120?!255~!255~!90~$#6!128?!24~$#2!80?!48~!24?!48~-#7!80~!120?!82~xw]]M_p!22~{oB^^Bo{~~^NfvvfN^~~FF~~~~FF!13~NFVvvfn~~??nvvvFN~~^NfvvfN^~~FF~~~~FF~~~}}??!5~^Nfvvv??!13~??~^Nfv~~^NfvvvFN~~^NfvvvFN~~FFnvvfN^!12~^Nfvvvfn~~~}}??!5~^NfvvfN^~~~NFVvvfn~~^NfvvvFN~~~vFFnvvf!12~vv??vvvv~~^NfvvfN^!12~FNvFNvFN~~^NfvvvFN!211~$#6!128?!24~$#2!80?!48~!24?!48~$#0!255?!27?EF``p^M!22?BN{__{NB??_oWGGWo_??ww????ww!13?owgGGWO??~~OGGGwo??_oWGGWo_??ww????ww???@@~~!5?_oWGGG~~!13?~~?_oWG??_oWGGGwo??_oWGGGwo??wwOGGWo_!12?_oWGGGWO???@@~~!5?_oWGGWo_???owgGGWO??_oWGGGwo???GwwOGGW!12?GG~~GGGG??_oWGGWo_!12?woGwoGwo??_oWGGGwo-#7!80~!120?!82~rbnnm_p~~~~ff!19~__!5~wofnnfow~~o_nnnv__!13~vemkg`r~~__~~~~__~~wofnnfow~~o_nnnv__~~nnn__nnn~~wofnnv__!13~__{wrfn~~woemmmeu~~woemmmeu~~??nnnfow!12~wofnnnfv~~nnn__nnn~~wofnnfow~~~vemkg`r~~woemmmeu~~~n__n!17~o_nnnv~~wofnnfow!12~__~__~__~~woemmmeu~~~~ff!205~$#6!128?!24~$#2!80?!48~!24?!48~$#0!255?!27?K[OOP^M????WW!19?^^!5?FNWOOWNF??N^OOOG^^!13?GXPRV]K??^^????^^??FNWOOWNF??N^OOOG^^??OOO^^OOO??FNWOOG^^!13?^^BFKWO??FNXPPPXH??FNXPPPXH??~~OOOWNF!12?FNWOOOWG??OOO^^OOO??FNWOOWNF???GXPRV]K??FNXPPPXH???O^^O!17?N^OOOG??FNWOOWNF!12?^^?^^?^^??FNXPPPXH????WW-#7!80~!120?!251~{{!255~!92~$#6!128?!24~$#2!80?!48~!24?!48~$#0!255?!196?BB-#7!80~!120?!255~!255~!90~$#6!128?!24~$#2!80?!48~!24?!48~-#7!80~!120?!255~!255~!90~$#6!80?!120~-#7!80~!120?!255~!255~!90~$#6!80?!120~-#7!80~!120?!84~^NNN!26~^N^!140~NN~~~^NnnnN^!255~!76~$#6!80?!120~$#0!255?!29?_ooo!26?_o_!140?oo???_oOOOo_-#7!80~!120?!81~NBO[^??^^!22~F@W]W@F~~~|@@z||x~~FBhlll`b!12~x`F~^F`x~~FBx||xBF~~@@~~~~@@!13~ZXlll@B~~FBx|||@@~~~|@@z||x~~FBx||xBF~~@@~~~~@@~~@@z|||@B~~FBx|||??~~~}}^Nfow!255~!76~$#6!80?!120~$#0!255?!26?o{nb_~~__!22?w}f`f}w???A}}CAAE??w{UQQQ][!12?E]w?_w]E??w{EAAE{w??}}????}}!13?ceQQQ}{??w{EAAA}}???A}}CAAE??w{EAAE{w??}}????}}??}}CAAA}{??w{EAAA~~???@@_oWNF-#7!80~!120?!86~ww!5~xx!16~ww!5~ww~~zwwz!5~}{xzzzx|!13~^E_w}~~~~}{xzzx{}~~{wzzz|ww!12~{wzzz|ww~~][xzz\?_~~~zwwz!5~}{xzzx{}~~{wzzz|ww~~ww~~~~ww~~}{xzz|ww!5~xx!255~!79~$#6!128?!24~$#2!80?!48~!24?!48~$#0!255?!31?FF!5?EE!16?FF!5?FF??CFFC!5?@BECCCEA!13?_x^F@????@BECCEB@??BFCCCAFF!12?BFCCCAFF??`bECCa~^???CFFC!5?@BECCEB@??BFCCCAFF??FF????FF??@BECCAFF!5?EE-#7!80~!120?!202~!5}!255~!138~$#6!128?!24~$#2!80?!48~!24?!48~$#0!255?!147?!5@-#7!80~!120?!255~!255~!90~$#6!128?!24~$#2!80?!48~!24?!48~-#7!80~!120?!255~!255~!90~$#6!128?!24~$#2!80?!48~!24?!48~-#7!80~!120?!255~!255~!90~$#6!128?!24~$#2!80?!48~!24?!48~-#7!80~!120?!255~!255~!90~$#6!128?!24~$#2!80?!48~!24?!48~-#7!80~!120?!255~!255~!90~$#6!128?!24~$#2!80?!48~!24?!48~-#7!80~!120?!255~!255~!90~$#6!128?!24~$#2!80?!48~!24?!48~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-#7!255~!255~!255~!35~-\ \ No newline at end of file diff --git a/src/debug.cpp b/src/debug.cpp index 3e8522c..25abf5a 100644 --- a/src/debug.cpp +++ b/src/debug.cpp @@ -126,6 +126,10 @@ int debug::getch(std::function&& key_supplier) for (;;) { auto ch = key_supplier(); + if (ch == 16) { // Ctrl+P to print to a file + vtout.mediacopy_to_host(); + continue; + } if (ch != 18) return ch; const auto capture_time = std::time(nullptr) - 1740182400; diff --git a/src/vt.cpp b/src/vt.cpp index a3f3672..0a9d6b9 100644 --- a/src/vt.cpp +++ b/src/vt.cpp @@ -4,6 +4,7 @@ #include "vt.h" +#include "capabilities.h" #include "debug.h" #include @@ -161,10 +162,10 @@ void vt_stream::decrqm(const char prefix, const vt_parm mode) _final("$p"); } -void vt_stream::decrqss(const std::string_view setting) +void vt_stream::decrqss(const std::string_view final) { _string("\033P$q"); - _string(setting); + _string(final); _string("\033\\"); } @@ -196,6 +197,25 @@ void vt_stream::decswt(const std::string_view s) _string("\033\\"); } +void vt_stream::decsasd(const vt_parm Ps) +{ + // Select Active Status Display + // 0: Send data to main display; 1: to status line only. + _csi(); + _parm(Ps); + _final("$}"); +} + +void vt_stream::decssdt(const vt_parm Ps) +{ + // Select Status Line Type + // 0: None; 1: Indicator; 2: Host-writable + _csi(); + _parm(Ps); + _final("$~"); +} + + void vt_stream::sixel(const std::string_view s) { _string("\033P9;1q"); @@ -232,6 +252,133 @@ void vt_stream::write_double_height(const std::string_view s) _string(s); } +void vt_stream::mediacopy_to_host() +{ + setup_media_copy(); + save_screen_to_file("screenshot.six"); +} + +void vt_stream::setup_media_copy() +{ + _csi(); + _char('?'); + _parm(2); // MC: Media Copy, "2" means send graphics to host, not printer + _final("i"); + + // DECGEPM: Graphics Expanded Print Mode (not used by Level 2 Graphics) + sm('?', 43); // Set: 1600x480, Reset: 800x240 + // DECGPCM: Print Graphics Color Mode + sm('?', 44); // Set: Color, Reset: B&W + // DECGPCS: Print Graphics Color Syntax + sm('?', 45); // Set: RGB, Reset: HLS + // DECGPBM: Print Graphics Background Mode + sm('?', 46); // Set: Include background, Reset: Omit bg + // DECGRPM: Print Graphics Rotated Print Mode (also sets ANSI grid size) + rm('?', 47); // Set: Landscape, Reset: Portrait (shrunk) +} + + +char *vt_stream::receive_media_copy() +{ + // Read stdin and return DCS data received on stdin as a malloc'd string. + + // Nota Bene: + // * DCS (Esc P) at the start and ST's \ at the end will be missing. + // * The result must be freed by the calling routine. + /* * The terminal must be in cbreak or raw mode */ + + // Since media copy is not delimited, we look for the DCS string + // (Esc P) that starts the sixel data. The VT340 in Level 2 sixel + // mode, actually always sends a string terminator, a carriage + // return, and sets the DPI before the sixel data, so we have to + // skip over those. (Esc \ CR Esc [ 2 SP I). + + // Side note: Expecting Esc P not a bug + // + // * This code does not handle 8-bit DCS (0x90) and ST (0x9C). The + // VT340 documentation states that Media Copy will never generate + // sixels using those characters, even in 8-bit mode. This has + // been confirmed on hackerb9's vt340). + + FILE *stream; + char *line = NULL; + size_t len = 0; + ssize_t nread; + + int delim='\e'; /* Chop up input on Esc */ + + /* Read data from terminal until next Esc character. */ + char c = '\0'; + while (c != 'P') { + /* Skip everything until we get to a Device Control String (Esc P) */ + nread = getdelim(&line, &len, delim, stdin); + if (nread == -1) {perror("receive_media_copy, getdelim"); _exit(1);} + c = getchar(); // Character after the Esc ("P" for DCS string) + } + + /* We got Esc P, now read the rest of the string up to the first Esc */ + nread = getdelim(&line, &len, delim, stdin); + if (nread == -1) {perror("receive_media_copy, getdelim"); _exit(1);} + c = getchar(); // Character after the Esc ("\" for String Terminator) + + return line; +} + +void vt_stream::set_status(std::string s) +{ + decsasd(1); + _string(s); + decsasd(0); +} + +void vt_stream::save_screen_to_file(const char *filename) +{ + save_region_to_file(filename, 0, 0, 0, 0); +} + +void vt_stream::save_region_to_file(const char *filename, int x1, int y1, int x2, int y2) { + + FILE *fp = fopen(filename, "w"); + if (!fp) { perror(filename); _exit(1); } /* Flush stdout of REGIS MC */ + + char *regis_h; /* regis select rectangle to print */ + + if ( x2 <= x1 || y2 <= y1 ) { + asprintf(®is_h, "p S(H)"); + } else { + /* x1,y1 - x2,y2: Area to copy, 0,0 is upper left corner */ + asprintf(®is_h, "p S(H(P[0,0])[%d,%d][%d,%d])", x1, y1, x2, y2); + } + + // Save setting for status line + capabilities cap; + std::string_view old_ssdt = cap.query_setting("$~"); + if (!old_ssdt.empty()) { + decssdt(2); // Show our own status line + std::string statusline = + std::string("Saving screenshot to file '") + + std::string(filename) + "'"; + set_status(statusline); + } + + // Send sixel "hard copy" to host using REGIS + dcs(regis_h); + vtout.flush(); + char *buf = receive_media_copy(); + fprintf(fp, "\eP%s\\", buf); + + if (!old_ssdt.empty()) { + set_status({}); + _csi(); + _string(old_ssdt); + } + + if (buf) { free(buf); buf=NULL; } + if (regis_h) { free(regis_h); regis_h=NULL; } + fclose(fp); +} + + void vt_stream::flush() { if (_buffer_index) { diff --git a/src/vt.h b/src/vt.h index 5f87eca..de0f8a6 100644 --- a/src/vt.h +++ b/src/vt.h @@ -44,12 +44,20 @@ class vt_stream { void decctr(const std::string_view colors); void decctr(const vt_parm type); void decswt(const std::string_view s = {}); + void decssdt(const vt_parm Ps); + void decsasd(const vt_parm Ps); void sixel(const std::string_view s); void dcs(const std::string_view s); void write(const std::string_view s); void write_double_width(const std::string_view s); void write_double_height(const std::string_view s); void flush(); + void set_status(std::string s); + char *receive_media_copy(); + void setup_media_copy(); + void mediacopy_to_host(); + void save_region_to_file(const char *filename, int x1, int y1, int x2, int y2); + void save_screen_to_file(const char *filename); private: void _csi();