diff options
| author | Gabriel Schneider <[email protected]> | 2026-10-01 12:42:29 -0300 |
|---|---|---|
| committer | Gabriel Schneider <[email protected]> | 2026-10-01 13:17:15 -0300 |
| commit | 4252afe6f4558b55fa34846b182312d6a384b96e (patch) | |
| tree | 3b7bf6ab8eae30cf7750c25c6aa453b98a7bc53a | |
| parent | f700b2af8e874c586e6996b8311c3983203c6637 (diff) | |
| download | pardes-4252afe6f4558b55fa34846b182312d6a384b96e.tar.gz pardes-4252afe6f4558b55fa34846b182312d6a384b96e.zip | |
The landing's terminal casts are recorded: live text, terminals as panes, and images and PDFs in a plain terminal, each a tty pardes that test/record_casts.py drives in a pty of its own as a plain xterm
The script answers only what an xterm answers, so images fall back to
PETSCII glyph art and a PDF to its text layer. It stamps each scripted
step on a virtual clock and writes the cells the step changed, as pyte
saw them, so the same input makes the same file. The petscii cast
generates its Mandelbrot views and reads the Intel SDM (--pdf) through a
symlink.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
| -rw-r--r-- | docs/site/README | 4 | ||||
| -rw-r--r-- | docs/site/casts/casts.toml | 21 | ||||
| -rw-r--r-- | docs/site/casts/live-text.cast | 44 | ||||
| -rw-r--r-- | docs/site/casts/petscii.cast | 62 | ||||
| -rw-r--r-- | docs/site/casts/terminals.cast | 59 | ||||
| -rw-r--r-- | test/record_casts.py | 937 |
6 files changed, 1121 insertions, 6 deletions
diff --git a/docs/site/README b/docs/site/README index 76c2973f..41804163 100644 --- a/docs/site/README +++ b/docs/site/README @@ -13,6 +13,10 @@ docs/site: the pardes website, built from docs/typ ready. For a clip named N the site ships media/N.webm, media/N.mp4 and media/N.png (the poster); until `ready` is true it shows placeholder.svg instead. + casts/casts.toml the terminal recordings (asciicast v2), in order: name, + title, caption, cols, rows, ready; casts/N.cast each. + test/record_casts.py records them from a tty pardes + and writes this file. Build (from the repo root): diff --git a/docs/site/casts/casts.toml b/docs/site/casts/casts.toml index e639e7b4..d902feba 100644 --- a/docs/site/casts/casts.toml +++ b/docs/site/casts/casts.toml @@ -2,19 +2,28 @@ # shown: casts/<name>.cast for each. The first plays by itself; all loop # and fit the page's width. While `ready` is false the cast shows # placeholder.svg, so the site builds before a recording exists. +# test/record_casts.py writes the casts and this file. [[cast]] -name = "editing" -title = "Editing in a terminal" -caption = "Recording to come." +name = "live-text" +title = "Live text" +caption = "Helix keys edit; middle-click runs make; right-click the error opens its line." cols = 100 rows = 30 -ready = false +ready = true [[cast]] name = "terminals" title = "Terminals as panes" -caption = "Recording to come." +caption = "A shell beside a file: Ctrl-b, copy a line, page git log." cols = 100 rows = 30 -ready = false +ready = true + +[[cast]] +name = "petscii" +title = "Images and PDFs in a plain terminal" +caption = "No kitty graphics: Mandelbrots as PETSCII, then the Intel manual searched." +cols = 100 +rows = 30 +ready = true diff --git a/docs/site/casts/live-text.cast b/docs/site/casts/live-text.cast new file mode 100644 index 00000000..ef948352 --- /dev/null +++ b/docs/site/casts/live-text.cast @@ -0,0 +1,44 @@ +{"version": 2, "width": 100, "height": 30, "title": "Live text", "env": {"TERM": "xterm-256color", "SHELL": "/bin/sh"}} +[0.0, "o", "\u001b[?25l\u001b[0m\u001b[2J\u001b[1;1H\u001b[0;38;2;178;195;184;48;2;29;40;36mNewcol Joincol Find Grep Help Changelog Tutor Dump Themes Config Debug Exit\u001b[0;39;48;2;29;40;36m \u001b[2;1H\u001b[0;38;2;255;255;255;48;2;136;116;85m \u001b[0;39;48;2;49;71;56m \u001b[0;38;2;190;207;196;48;2;49;71;56mNew Tty Find Grep Joincol Delcol\u001b[0;39;48;2;49;71;56m \u001b[3;1H\u001b[0;38;2;0;0;0;48;2;173;211;138m \u001b[0;39;48;2;49;71;56m \u001b[0;38;2;190;207;196;48;2;49;71;56m/tmp/cast/hello/\u001b[0;38;2;223;188;229;48;2;49;71;56mmain.c\u001b[0;38;2;190;207;196;48;2;49;71;56m Save Tty Collapse Del TreeContext\u001b[0;39;48;2;49;71;56m \u001b[4;1H\u001b[0;39;48;2;96;130;105m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;97;111;100;48;2;13;20;16;1m 1 \u001b[0;38;2;201;167;237;48;2;13;20;16m#include\u001b[0;38;2;229;238;229;48;2;13;20;16m \u001b[0;38;2;184;216;138;48;2;13;20;16m<stdio.h>\u001b[0;39;48;2;13;20;16m \u001b[5;1H\u001b[0;39;48;2;96;130;105m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;89;103;92;48;2;13;20;16m 2 \u001b[0;39;48;2;13;20;16m \u001b[6;1H\u001b[0;39;48;2;96;130;105m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;89;103;92;48;2;13;20;16m 3 \u001b[0;38;2;201;167;237;48;2;13;20;16mstatic\u001b[0;38;2;229;238;229;48;2;13;20;16m int square(int n)\u001b[0;39;48;2;13;20;16m \u001b[7;1H\u001b[0;39;48;2;96;130;105m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;89;103;92;48;2;13;20;16m 4 \u001b[0;38;2;229;238;229;48;2;13;20;16m{\u001b[0;39;48;2;13;20;16m \u001b[8;1H\u001b[0;39;48;2;96;130;105m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;89;103;92;48;2;13;20;16m 5 \u001b[0;38;2;229;238;229;48;2;13;20;16m \u001b[0;38;2;201;167;237;48;2;13;20;16mreturn\u001b[0;38;2;229;238;229;48;2;13;20;16m n * n;\u001b[0;39;48;2;13;20;16m \u001b[9;1H\u001b[0;39;48;2;96;130;105m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;89;103;92;48;2;13;20;16m 6 \u001b[0;38;2;229;238;229;48;2;13;20;16m}\u001b[0;39;48;2;13;20;16m \u001b[10;1H\u001b[0;39;48;2;96;130;105m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;89;103;92;48;2;13;20;16m 7 \u001b[0;39;48;2;13;20;16m \u001b[11;1H\u001b[0;39;48;2;96;130;105m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;89;103;92;48;2;13;20;16m 8 \u001b[0;38;2;229;238;229;48;2;13;20;16mint main(void)\u001b[0;39;48;2;13;20;16m \u001b[12;1H\u001b[0;39;48;2;96;130;105m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;89;103;92;48;2;13;20;16m 9 \u001b[0;38;2;229;238;229;48;2;13;20;16m{\u001b[0;39;48;2;13;20;16m \u001b[13;1H\u001b[0;39;48;2;96;130;105m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;89;103;92;48;2;13;20;16m 10 \u001b[0;38;2;229;238;229;48;2;13;20;16m int sum = \u001b[0;38;2;248;192;130;48;2;13;20;16m0\u001b[0;38;2;229;238;229;48;2;13;20;16m;\u001b[0;39;48;2;13;20;16m \u001b[14;1H\u001b[0;39;48;2;96;130;105m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;89;103;92;48;2;13;20;16m 11 \u001b[0;38;2;229;238;229;48;2;13;20;16m \u001b[0;38;2;201;167;237;48;2;13;20;16mfor\u001b[0;38;2;229;238;229;48;2;13;20;16m (int i = \u001b[0;38;2;248;192;130;48;2;13;20;16m1\u001b[0;38;2;229;238;229;48;2;13;20;16m; i <= \u001b[0;38;2;248;192;130;48;2;13;20;16m4\u001b[0;38;2;229;238;229;48;2;13;20;16m; i++)\u001b[0;39;48;2;13;20;16m \u001b[15;1H\u001b[0;39;48;2;96;130;105m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;89;103;92;48;2;13;20;16m 12 \u001b[0;38;2;229;238;229;48;2;13;20;16m sum += square(i);\u001b[0;39;48;2;13;20;16m \u001b[16;1H\u001b[0;39;48;2;96;130;105m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;89;103;92;48;2;13;20;16m 13 \u001b[0;38;2;229;238;229;48;2;13;20;16m printf(\u001b[0;38;2;184;216;138;48;2;13;20;16m\"squares: %d\\n\"\u001b[0;38;2;229;238;229;48;2;13;20;16m, sum);\u001b[0;39;48;2;13;20;16m \u001b[17;1H\u001b[0;39;48;2;96;130;105m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;89;103;92;48;2;13;20;16m 14 \u001b[0;38;2;229;238;229;48;2;13;20;16m \u001b[0;38;2;201;167;237;48;2;13;20;16mreturn\u001b[0;38;2;229;238;229;48;2;13;20;16m \u001b[0;38;2;248;192;130;48;2;13;20;16m0\u001b[0;38;2;229;238;229;48;2;13;20;16m;\u001b[0;39;48;2;13;20;16m \u001b[18;1H\u001b[0;39;48;2;96;130;105m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;89;103;92;48;2;13;20;16m 15 \u001b[0;38;2;229;238;229;48;2;13;20;16m}\u001b[0;39;48;2;13;20;16m \u001b[19;1H\u001b[0;39;48;2;96;130;105m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;89;103;92;48;2;13;20;16m 16 \u001b[0;39;48;2;13;20;16m \u001b[20;1H\u001b[0;39;48;2;96;130;105m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;89;103;92;48;2;13;20;16m \u001b[0;39;48;2;13;20;16m \u001b[21;1H\u001b[0;39;48;2;96;130;105m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;89;103;92;48;2;13;20;16m \u001b[0;39;48;2;13;20;16m \u001b[22;1H\u001b[0;39;48;2;96;130;105m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;89;103;92;48;2;13;20;16m \u001b[0;39;48;2;13;20;16m \u001b[23;1H\u001b[0;39;48;2;96;130;105m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;89;103;92;48;2;13;20;16m \u001b[0;39;48;2;13;20;16m \u001b[24;1H\u001b[0;39;48;2;96;130;105m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;89;103;92;48;2;13;20;16m \u001b[0;39;48;2;13;20;16m \u001b[25;1H\u001b[0;39;48;2;96;130;105m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;89;103;92;48;2;13;20;16m \u001b[0;39;48;2;13;20;16m \u001b[26;1H\u001b[0;39;48;2;96;130;105m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;89;103;92;48;2;13;20;16m \u001b[0;39;48;2;13;20;16m \u001b[27;1H\u001b[0;39;48;2;96;130;105m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;89;103;92;48;2;13;20;16m \u001b[0;39;48;2;13;20;16m \u001b[28;1H\u001b[0;39;48;2;96;130;105m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;89;103;92;48;2;13;20;16m \u001b[0;39;48;2;13;20;16m \u001b[29;1H\u001b[0;39;48;2;96;130;105m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;89;103;92;48;2;13;20;16m \u001b[0;39;48;2;13;20;16m \u001b[30;1H\u001b[0;39;48;2;96;130;105m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;89;103;92;48;2;13;20;16m \u001b[0;39;48;2;13;20;16m \u001b[0m\u001b[4;8H\u001b[?25h"] +[1.6, "o", "\u001b[4;3H\u001b[0;38;2;89;103;92;48;2;13;20;16m 1 \u001b[5;3H\u001b[0;38;2;97;111;100;48;2;13;20;16;1m 2 \u001b[0m\u001b[5;8H\u001b[?25h"] +[1.73, "o", "\u001b[5;3H\u001b[0;38;2;89;103;92;48;2;13;20;16m 2 \u001b[6;3H\u001b[0;38;2;97;111;100;48;2;13;20;16;1m 3 \u001b[0m\u001b[6;8H\u001b[?25h"] +[1.86, "o", "\u001b[6;3H\u001b[0;38;2;89;103;92;48;2;13;20;16m 3 \u001b[7;3H\u001b[0;38;2;97;111;100;48;2;13;20;16;1m 4 \u001b[0m\u001b[7;8H\u001b[?25h"] +[1.99, "o", "\u001b[7;3H\u001b[0;38;2;89;103;92;48;2;13;20;16m 4 \u001b[8;3H\u001b[0;38;2;97;111;100;48;2;13;20;16;1m 5 \u001b[0m\u001b[8;8H\u001b[?25h"] +[2.12, "o", "\u001b[8;3H\u001b[0;38;2;89;103;92;48;2;13;20;16m 5 \u001b[9;3H\u001b[0;38;2;97;111;100;48;2;13;20;16;1m 6 \u001b[0m\u001b[9;8H\u001b[?25h"] +[2.25, "o", "\u001b[9;3H\u001b[0;38;2;89;103;92;48;2;13;20;16m 6 \u001b[10;3H\u001b[0;38;2;97;111;100;48;2;13;20;16;1m 7 \u001b[0m\u001b[10;8H\u001b[?25h"] +[2.38, "o", "\u001b[10;3H\u001b[0;38;2;89;103;92;48;2;13;20;16m 7 \u001b[11;3H\u001b[0;38;2;97;111;100;48;2;13;20;16;1m 8 \u001b[0m\u001b[11;8H\u001b[?25h"] +[2.51, "o", "\u001b[11;3H\u001b[0;38;2;89;103;92;48;2;13;20;16m 8 \u001b[12;3H\u001b[0;38;2;97;111;100;48;2;13;20;16;1m 9 \u001b[0m\u001b[12;8H\u001b[?25h"] +[2.64, "o", "\u001b[12;3H\u001b[0;38;2;89;103;92;48;2;13;20;16m 9 \u001b[13;3H\u001b[0;38;2;97;111;100;48;2;13;20;16;1m 10 \u001b[0m\u001b[13;8H\u001b[?25h"] +[3.07, "o", "\u001b[13;8H\u001b[0;38;2;245;247;238;48;2;60;97;74m \u001b[0m\u001b[13;11H\u001b[?25h"] +[3.29, "o", "\u001b[13;8H\u001b[0;38;2;229;238;229;48;2;13;20;16m \u001b[0;38;2;245;247;238;48;2;60;97;74mint \u001b[0m\u001b[13;15H\u001b[?25h"] +[3.51, "o", "\u001b[13;12H\u001b[0;38;2;229;238;229;48;2;13;20;16mint\u001b[13;16H\u001b[0;38;2;245;247;238;48;2;60;97;74msum\u001b[0m\u001b[13;18H\u001b[?25h"] +[4.3, "o", "\u001b[13;15H\u001b[0;38;2;229;238;229;48;2;13;20;16m \u001b[0m\u001b[13;18H\u001b[?25h"] +[5.0, "o", "\u001b[3;1H\u001b[0;38;2;0;0;0;48;2;173;211;138m^\u001b[0;38;2;0;0;0;48;2;249;203;112;1m*\u001b[13;16H\u001b[0;38;2;229;238;229;48;2;13;20;16m = \u001b[0;38;2;248;192;130;48;2;13;20;16m0\u001b[0;38;2;229;238;229;48;2;13;20;16m;\u001b[13;22H\u001b[0;39;48;2;13;20;16m \u001b[0m\u001b[13;16H\u001b[?25h"] +[5.3, "o", "\u001b[13;16H\u001b[0;38;2;229;238;229;48;2;13;20;16mt = \u001b[0;38;2;248;192;130;48;2;13;20;16m0\u001b[0;38;2;229;238;229;48;2;13;20;16m;\u001b[0m\u001b[13;17H\u001b[?25h"] +[5.39, "o", "\u001b[13;17H\u001b[0;38;2;229;238;229;48;2;13;20;16mo = \u001b[0;38;2;248;192;130;48;2;13;20;16m0\u001b[0;38;2;229;238;229;48;2;13;20;16m;\u001b[0m\u001b[13;18H\u001b[?25h"] +[5.48, "o", "\u001b[13;18H\u001b[0;38;2;229;238;229;48;2;13;20;16mt = \u001b[0;38;2;248;192;130;48;2;13;20;16m0\u001b[0;38;2;229;238;229;48;2;13;20;16m;\u001b[0m\u001b[13;19H\u001b[?25h"] +[5.57, "o", "\u001b[13;19H\u001b[0;38;2;229;238;229;48;2;13;20;16ma = \u001b[0;38;2;248;192;130;48;2;13;20;16m0\u001b[0;38;2;229;238;229;48;2;13;20;16m;\u001b[0m\u001b[13;20H\u001b[?25h"] +[5.66, "o", "\u001b[13;20H\u001b[0;38;2;229;238;229;48;2;13;20;16ml = \u001b[0;38;2;248;192;130;48;2;13;20;16m0\u001b[0;38;2;229;238;229;48;2;13;20;16m;\u001b[0m\u001b[13;21H\u001b[?25h"] +[5.96, "o", "\u001b[3;1H\u001b[0;38;2;0;0;0;48;2;173;211;138m \u001b[0m\u001b[13;21H\u001b[?25h"] +[6.56, "o", "\u001b[4;96H\u001b[0;39;48;2;29;40;36m \u001b[0;38;2;178;195;184;48;2;29;40;36mSPC\u001b[0;39;48;2;29;40;36m \u001b[0m\u001b[13;21H\u001b[?25h"] +[6.78, "o", "\u001b[4;94H\u001b[0;39;48;2;29;40;36m \u001b[0;38;2;178;195;184;48;2;29;40;36mSPC f\u001b[0m\u001b[13;21H\u001b[?25h"] +[7.0, "o", "\u001b[3;2H\u001b[0;38;2;0;0;0;48;2;173;211;138m \u001b[4;61H\u001b[0;39;48;2;29;40;36m \u001b[0;38;2;178;195;184;48;2;29;40;36m--:--:-- saved /tmp/cast/hello/main.c\u001b[0m\u001b[13;21H\u001b[?25h"] +[8.1, "o", "\u001b[4;61H\u001b[0;39;48;2;13;20;16m \u001b[13;3H\u001b[0;38;2;89;103;92;48;2;13;20;16m 10 \u001b[0m\u001b[3;60H\u001b[?25h"] +[8.4, "o", "\u001b[0m\u001b[3;61H\u001b[?25h"] +[8.49, "o", "\u001b[3;61H\u001b[0;38;2;190;207;196;48;2;49;71;56mm\u001b[0m\u001b[3;62H\u001b[?25h"] +[8.58, "o", "\u001b[3;62H\u001b[0;38;2;190;207;196;48;2;49;71;56ma\u001b[0m\u001b[3;63H\u001b[?25h"] +[8.67, "o", "\u001b[3;63H\u001b[0;38;2;190;207;196;48;2;49;71;56mk\u001b[0m\u001b[3;64H\u001b[?25h"] +[8.76, "o", "\u001b[3;64H\u001b[0;38;2;190;207;196;48;2;49;71;56me\u001b[0m\u001b[3;65H\u001b[?25h"] +[9.46, "o", "\u001b[3;61H\u001b[0;38;2;245;247;238;48;2;91;126;90mmake \u001b[0m\u001b[3;65H\u001b[?25h"] +[10.26, "o", "\u001b[3;61H\u001b[0;38;2;190;207;196;48;2;49;71;56mmake\u001b[0;39;48;2;49;71;56m \u001b[4;95H\u001b[0;39;48;2;29;40;36m \u001b[0;38;2;178;195;184;48;2;29;40;36mExec\u001b[0;39;48;2;29;40;36m \u001b[14;1H\u001b[0;39;48;2;21;32;25m \u001b[15;1H \u001b[16;1H \u001b[17;1H\u001b[0;38;2;255;255;255;48;2;73;102;86m \u001b[0;39;48;2;29;40;36m \u001b[0;38;2;178;195;184;48;2;29;40;36m/tmp/cast/hello (make) exit 2 Kill Save Collapse Del\u001b[0;39;48;2;29;40;36m \u001b[18;3H\u001b[0;38;2;229;238;229;48;2;13;20;16m%\u001b[18;5Hmake\u001b[19;3Hmain.c:\u001b[19;11HIn\u001b[19;14Hfunction\u001b[19;23H‘main’:\u001b[20;3Hmain.c:12:9:\u001b[20;16Herror:\u001b[20;23H‘sum’\u001b[20;29Hundeclared\u001b[20;40H(first\u001b[20;47Huse\u001b[20;51Hin\u001b[20;54Hthis\u001b[20;59Hfunction)\u001b[21;3Hmain.c:12:9:\u001b[21;16Hnote:\u001b[21;22Heach\u001b[21;27Hundeclared\u001b[21;38Hidentifier\u001b[21;49His\u001b[21;52Hreported\u001b[21;61Honly\u001b[21;66Honce\u001b[21;71Hfor\u001b[21;75Heach\u001b[21;80Hfunction\u001b[21;89Hit\u001b[21;92Happears\u001b[21;100Hi\u001b[22;3Hn\u001b[23;3Hmain.c:10:9:\u001b[23;16Hwarning:\u001b[23;25Hunused\u001b[23;32Hvariable\u001b[23;41H‘total’\u001b[24;3Hmake:\u001b[24;9H***\u001b[24;13H[Makefile:4:\u001b[24;26Hhello]\u001b[24;33HError\u001b[24;39H1\u001b[25;3Hexit\u001b[25;8H2\u001b[0m\u001b[3;65H\u001b[?25h"] +[12.26, "o", "\u001b[3;1H\u001b[0;38;2;255;255;255;48;2;73;102;86m \u001b[0;39;48;2;29;40;36m \u001b[0;38;2;178;195;184;48;2;29;40;36m/tmp/cast/hello/\u001b[0;38;2;211;176;217;48;2;29;40;36mmain.c\u001b[0;38;2;178;195;184;48;2;29;40;36m Save Tty Collapse Del TreeContext make\u001b[0;39;48;2;29;40;36m \u001b[4;95H\u001b[0;39;48;2;13;20;16m \u001b[17;1H\u001b[0;38;2;0;0;0;48;2;173;211;138m \u001b[0;39;48;2;49;71;56m \u001b[0;38;2;190;207;196;48;2;49;71;56m/tmp/cast/hello (make) exit 2 Kill Save Collapse Del\u001b[0;39;48;2;49;71;56m \u001b[20;3H\u001b[0;38;2;245;247;238;48;2;107;120;88mmain.c:12:9:\u001b[0m\u001b[26;3H\u001b[?25h"] +[13.06, "o", "\u001b[3;1H\u001b[0;38;2;0;0;0;48;2;173;211;138m \u001b[0;39;48;2;49;71;56m \u001b[0;38;2;190;207;196;48;2;49;71;56m/tmp/cast/hello/\u001b[0;38;2;223;188;229;48;2;49;71;56mmain.c\u001b[0;38;2;190;207;196;48;2;49;71;56m Save Tty Collapse Del TreeContext make\u001b[0;39;48;2;49;71;56m \u001b[4;1H\u001b[0;39;48;2;21;32;25m \u001b[4;6H\u001b[0;38;2;89;103;92;48;2;13;20;16m6\u001b[4;8H\u001b[0;38;2;229;238;229;48;2;13;20;16m}\u001b[0;39;48;2;13;20;16m \u001b[4;17H \u001b[5;1H\u001b[0;39;48;2;21;32;25m \u001b[5;6H\u001b[0;38;2;89;103;92;48;2;13;20;16m7\u001b[6;1H\u001b[0;39;48;2;21;32;25m \u001b[6;6H\u001b[0;38;2;89;103;92;48;2;13;20;16m8\u001b[6;8H\u001b[0;38;2;229;238;229;48;2;13;20;16mint main(void)\u001b[0;39;48;2;13;20;16m \u001b[6;30H \u001b[7;1H\u001b[0;39;48;2;21;32;25m \u001b[7;6H\u001b[0;38;2;89;103;92;48;2;13;20;16m9\u001b[8;5H10\u001b[8;12H\u001b[0;38;2;229;238;229;48;2;13;20;16mint total = \u001b[0;38;2;248;192;130;48;2;13;20;16m0\u001b[0;38;2;229;238;229;48;2;13;20;16m;\u001b[9;5H\u001b[0;38;2;89;103;92;48;2;13;20;16m11\u001b[9;8H\u001b[0;38;2;229;238;229;48;2;13;20;16m \u001b[9;12H\u001b[0;38;2;201;167;237;48;2;13;20;16mfor\u001b[9;16H\u001b[0;38;2;229;238;229;48;2;13;20;16m(int\u001b[9;21Hi\u001b[9;23H=\u001b[9;25H\u001b[0;38;2;248;192;130;48;2;13;20;16m1\u001b[0;38;2;229;238;229;48;2;13;20;16m;\u001b[9;28Hi\u001b[9;30H<=\u001b[9;33H\u001b[0;38;2;248;192;130;48;2;13;20;16m4\u001b[0;38;2;229;238;229;48;2;13;20;16m;\u001b[9;36Hi++)\u001b[10;3H\u001b[0;38;2;97;111;100;48;2;13;20;16;1m 12 \u001b[10;16H\u001b[0;38;2;229;238;229;48;2;13;20;16msum\u001b[10;20H+=\u001b[10;23Hsquare(i);\u001b[11;5H\u001b[0;38;2;89;103;92;48;2;13;20;16m13\u001b[11;8H\u001b[0;38;2;229;238;229;48;2;13;20;16m \u001b[11;12Hpr\u001b[11;16Htf(\u001b[0;38;2;184;216;138;48;2;13;20;16m\"squares:\u001b[11;29H%d\\n\"\u001b[0;38;2;229;238;229;48;2;13;20;16m,\u001b[11;36Hsum);\u001b[12;5H\u001b[0;38;2;89;103;92;48;2;13;20;16m14\u001b[12;8H\u001b[0;38;2;229;238;229;48;2;13;20;16m \u001b[12;12H\u001b[0;38;2;201;167;237;48;2;13;20;16mreturn\u001b[12;19H\u001b[0;38;2;248;192;130;48;2;13;20;16m0\u001b[0;38;2;229;238;229;48;2;13;20;16m;\u001b[13;6H\u001b[0;38;2;89;103;92;48;2;13;20;16m5\u001b[13;8H\u001b[0;38;2;229;238;229;48;2;13;20;16m}\u001b[13;12H\u001b[0;39;48;2;13;20;16m \u001b[13;16H \u001b[13;22H \u001b[13;24H \u001b[14;1H\u001b[0;39;48;2;96;130;105m \u001b[14;6H\u001b[0;38;2;89;103;92;48;2;13;20;16m6\u001b[14;12H\u001b[0;39;48;2;13;20;16m \u001b[14;16H \u001b[14;21H \u001b[14;23H \u001b[14;25H \u001b[14;28H \u001b[14;30H \u001b[14;33H \u001b[14;36H \u001b[15;1H\u001b[0;39;48;2;96;130;105m \u001b[15;5H\u001b[0;38;2;89;103;92;48;2;13;20;16m \u001b[15;16H\u001b[0;39;48;2;13;20;16m \u001b[15;20H \u001b[15;23H \u001b[16;1H\u001b[0;39;48;2;96;130;105m \u001b[16;5H\u001b[0;38;2;89;103;92;48;2;13;20;16m \u001b[16;12H\u001b[0;39;48;2;13;20;16m \u001b[16;29H \u001b[16;36H \u001b[17;1H\u001b[0;38;2;255;255;255;48;2;73;102;86m \u001b[0;39;48;2;29;40;36m \u001b[0;38;2;178;195;184;48;2;29;40;36m/tmp/cast/hello (make) exit 2 Kill Save Collapse Del\u001b[0;39;48;2;29;40;36m \u001b[20;3H\u001b[0;38;2;229;238;229;48;2;13;20;16mmain.c:12:9:\u001b[0m\u001b[10;16H\u001b[?25h"] +[15.06, "o", "\u001b[10;16H\u001b[0;38;2;245;247;238;48;2;60;97;74msum\u001b[0m\u001b[10;18H\u001b[?25h"] +[15.66, "o", "\u001b[3;1H\u001b[0;38;2;0;0;0;48;2;173;211;138m^\u001b[0;38;2;0;0;0;48;2;249;203;112;1m*\u001b[10;16H\u001b[0;38;2;229;238;229;48;2;13;20;16m +=\u001b[10;20Hsquare(i);\u001b[0;39;48;2;13;20;16m \u001b[0m\u001b[10;16H\u001b[?25h"] +[15.96, "o", "\u001b[10;16H\u001b[0;38;2;229;238;229;48;2;13;20;16mt += square(i);\u001b[0m\u001b[10;17H\u001b[?25h"] +[16.05, "o", "\u001b[10;17H\u001b[0;38;2;229;238;229;48;2;13;20;16mo += square(i);\u001b[0m\u001b[10;18H\u001b[?25h"] +[16.14, "o", "\u001b[10;18H\u001b[0;38;2;229;238;229;48;2;13;20;16mt += square(i);\u001b[0m\u001b[10;19H\u001b[?25h"] +[16.23, "o", "\u001b[10;19H\u001b[0;38;2;229;238;229;48;2;13;20;16ma += square(i);\u001b[0m\u001b[10;20H\u001b[?25h"] +[16.32, "o", "\u001b[10;20H\u001b[0;38;2;229;238;229;48;2;13;20;16ml += square(i);\u001b[0m\u001b[10;21H\u001b[?25h"] +[16.62, "o", "\u001b[3;1H\u001b[0;38;2;0;0;0;48;2;173;211;138m \u001b[0m\u001b[10;21H\u001b[?25h"] +[18.62, "o", ""] diff --git a/docs/site/casts/petscii.cast b/docs/site/casts/petscii.cast new file mode 100644 index 00000000..5e5894e8 --- /dev/null +++ b/docs/site/casts/petscii.cast @@ -0,0 +1,62 @@ +{"version": 2, "width": 100, "height": 30, "title": "Images and PDFs in a plain terminal", "env": {"TERM": "xterm-256color", "SHELL": "/bin/sh"}} +[0.0, "o", "\u001b[?25l\u001b[0m\u001b[2J\u001b[1;1H\u001b[0;38;2;178;195;184;48;2;29;40;36mNewcol Joincol Find Grep Help Changelog Tutor Dump Themes Config Debug Exit\u001b[0;39;48;2;29;40;36m \u001b[2;1H\u001b[0;38;2;255;255;255;48;2;136;116;85m \u001b[0;39;48;2;49;71;56m \u001b[0;38;2;190;207;196;48;2;49;71;56mNew Tty Find Grep Joincol Delcol\u001b[0;39;48;2;49;71;56m \u001b[3;1H\u001b[0;38;2;0;0;0;48;2;173;211;138m \u001b[0;39;48;2;49;71;56m \u001b[0;38;2;190;207;196;48;2;49;71;56mimg petscii:off palette:commodore ascii:on /tmp/cast/art/\u001b[0;38;2;223;188;229;48;2;49;71;56mmandelbrot.png\u001b[0;38;2;190;207;196;48;2;49;71;56m Tty Collapse Del\u001b[0;39;48;2;49;71;56m \u001b[4;1H\u001b[0;39;48;2;21;32;25m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;112;164;178m🬝🬎\u001b[0;38;2;112;164;178;48;2;108;94;181m🬹█\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;255;255;255;48;2;112;164;178m]\u001b[0;38;2;112;164;178;48;2;255;255;255m▀\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;255;255;255m█▛\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;108;94;181m🬺\u001b[0;38;2;108;94;181;48;2;112;164;178m🬎\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;39;48;2;13;20;16m \u001b[5;1H\u001b[0;39;48;2;21;32;25m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;112;164;178m█🬎\u001b[0;38;2;112;164;178;48;2;108;94;181m▄🬻\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;255;255;255;48;2;112;164;178m🬷\u001b[0;38;2;184;199;111;48;2;255;255;255m,\u001b[0;38;2;255;255;255;48;2;112;164;178m🬔\u001b[0;38;2;112;164;178;48;2;255;255;255m🬻\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;108;94;181m🬺\u001b[0;38;2;108;94;181;48;2;112;164;178m🬬\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;39;48;2;13;20;16m \u001b[6;1H\u001b[0;39;48;2;21;32;25m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;112;164;178m█🬎\u001b[0;38;2;112;164;178;48;2;108;94;181m🬹█\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;255;255;255m🬝🬆▀\u001b[0;38;2;184;199;111;48;2;255;255;255m_\u001b[0;38;2;0;0;0;48;2;184;199;111m🬦🬹\u001b[0;38;2;255;255;255;48;2;184;199;111m🬸\u001b[0;38;2;112;164;178;48;2;255;255;255m🬎▀\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;108;94;181m█🬱\u001b[0;38;2;108;94;181;48;2;112;164;178m█\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;39;48;2;13;20;16m \u001b[7;1H\u001b[0;39;48;2;21;32;25m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;112;164;178m█🬎\u001b[0;38;2;112;164;178;48;2;108;94;181m🬹█\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[0;38;2;255;255;255;48;2;184;199;111m🬝\u001b[0;38;2;0;0;0;48;2;184;199;111m🬦\u001b[0;38;2;0;0;0;48;2;154;103;89m🬻\u001b[0;38;2;0;0;0;48;2;0;0;0m \u001b[0;38;2;0;0;0;48;2;154;103;89m🬺\u001b[0;38;2;255;255;255;48;2;111;79;37m🬡\u001b[0;38;2;255;255;255;48;2;112;164;178m🬴\u001b[0;38;2;112;164;178;48;2;154;210;132m█\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;108;94;181m🬺\u001b[0;38;2;108;94;181;48;2;112;164;178m🬬\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;39;48;2;13;20;16m \u001b[8;1H\u001b[0;39;48;2;21;32;25m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;112;164;178m🬝\u001b[0;38;2;112;164;178;48;2;108;94;181m▄█\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;255;255;255m🬝█🬝🬬\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[0;38;2;255;255;255;48;2;112;164;178m___█\u001b[0;38;2;0;0;0;48;2;184;199;111m🬉\u001b[0;38;2;0;0;0;48;2;0;0;0m \u001b[0;38;2;0;0;0;48;2;111;79;37m█\u001b[0;38;2;0;0;0;48;2;184;199;111m🬄\u001b[0;38;2;255;255;255;48;2;112;164;178m🬲\u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;255;255;255m🬝\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;255;255;255m█🬬\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;108;94;181m🬺\u001b[0;38;2;108;94;181;48;2;112;164;178m🬬\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;39;48;2;13;20;16m \u001b[9;1H\u001b[0;39;48;2;21;32;25m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;112;164;178m█🬆~\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;255;255;255m▌\u001b[0;38;2;184;199;111;48;2;255;255;255m╱\u001b[0;38;2;184;199;111;48;2;0;0;0m🬝🬝\u001b[0;38;2;112;164;178;48;2;255;255;255m🬂\u001b[0;38;2;255;255;255;48;2;112;164;178m🬋\u001b[0;38;2;0;0;0;48;2;184;199;111m🬦\u001b[0;38;2;255;255;255;48;2;0;0;0m▀\u001b[0;38;2;0;0;0;48;2;184;199;111m🬵\u001b[0;38;2;0;0;0;48;2;154;103;89m🬹\u001b[0;38;2;0;0;0;48;2;184;199;111m🬹\u001b[0;38;2;111;79;37;48;2;0;0;0m~\u001b[0;38;2;0;0;0;48;2;111;79;37m██\u001b[0;38;2;0;0;0;48;2;184;199;111m🬺🬹▄🬹\u001b[0;38;2;0;0;0;48;2;112;164;178m🬭\u001b[0;38;2;184;199;111;48;2;0;0;0m▜\u001b[0;38;2;255;255;255;48;2;112;164;178m🬲\u001b[0;38;2;112;164;178;48;2;255;255;255m█▛🬎\u001b[0;38;2;255;255;255;48;2;112;164;178m🬷🬲\u001b[0;38;2;112;164;178;48;2;255;255;255m🬬\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;108;94;181m🬺\u001b[0;38;2;108;94;181;48;2;112;164;178m█\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;39;48;2;13;20;16m \u001b[10;1H\u001b[0;39;48;2;21;32;25m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;112;164;178m█🬆\u001b[0;38;2;112;164;178;48;2;108;94;181m█\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;255;255;255;48;2;184;199;111m🬴\u001b[0;38;2;0;0;0;48;2;184;199;111m🬫\u001b[0;38;2;0;0;0;48;2;67;57;0m█\u001b[0;38;2;0;0;0;48;2;184;199;111m▙🬻\u001b[0;38;2;0;0;0;48;2;68;68;68m█\u001b[0;38;2;0;0;0;48;2;0;0;0m \u001b[0;38;2;0;0;0;48;2;104;55;43m🬺\u001b[0;38;2;0;0;0;48;2;154;103;89m▄\u001b[0;38;2;255;255;255;48;2;104;55;43m🬊\u001b[0;38;2;0;0;0;48;2;154;103;89m▄\u001b[0;38;2;0;0;0;48;2;184;199;111m🬹\u001b[0;38;2;184;199;111;48;2;0;0;0m🬨\u001b[0;38;2;255;255;255;48;2;112;164;178m▛\u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;108;94;181m🬲\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;39;48;2;13;20;16m \u001b[11;1H\u001b[0;39;48;2;21;32;25m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;112;164;178m█🬆\u001b[0;38;2;112;164;178;48;2;108;94;181m█\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;255;255;255m▀\u001b[0;38;2;112;164;178;48;2;184;199;111m🬂\u001b[0;38;2;0;0;0;48;2;255;255;255m_\u001b[0;38;2;0;0;0;48;2;184;199;111m🬦🬹█\u001b[0;38;2;0;0;0;48;2;0;0;0m \u001b[0;38;2;0;0;0;48;2;111;79;37m█\u001b[0;38;2;0;0;0;48;2;184;199;111m🬒\u001b[0;38;2;255;255;255;48;2;184;199;111m🬩\u001b[0;38;2;112;164;178;48;2;255;255;255m🬻\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;108;94;181;48;2;112;164;178m🬬\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;39;48;2;13;20;16m \u001b[12;1H\u001b[0;39;48;2;21;32;25m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;112;164;178m█🬆\u001b[0;38;2;112;164;178;48;2;108;94;181m█\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;255;255;255;48;2;112;164;178m`\u001b[0;38;2;112;164;178;48;2;255;255;255m🬨\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;255;255;255m█🬬\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;255;255;255m🬝\u001b[0;38;2;255;255;255;48;2;184;199;111m🬬\u001b[0;38;2;0;0;0;48;2;184;199;111m🬠\u001b[0;38;2;0;0;0;48;2;67;57;0m🬸\u001b[0;38;2;0;0;0;48;2;0;0;0m \u001b[0;38;2;0;0;0;48;2;154;103;89m🬓\u001b[0;38;2;184;199;111;48;2;255;255;255m_\u001b[0;38;2;112;164;178;48;2;184;199;111m🬬\u001b[0;38;2;112;164;178;48;2;255;255;255m▀\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;108;94;181m🬲\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;39;48;2;13;20;16m \u001b[13;1H\u001b[0;39;48;2;21;32;25m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;112;164;178m▛\u001b[0;38;2;112;164;178;48;2;108;94;181m🬻\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;255;255;255m🬺\u001b[0;38;2;255;255;255;48;2;112;164;178m🬎🬹🬋\u001b[0;38;2;112;164;178;48;2;255;255;255m▀🬎\u001b[0;38;2;255;255;255;48;2;112;164;178m▟\u001b[0;38;2;255;255;255;48;2;184;199;111m@\u001b[0;38;2;112;164;178;48;2;184;199;111m▜\u001b[0;38;2;112;164;178;48;2;255;255;255m▀🬬\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;184;199;111m🬛\u001b[0;38;2;255;255;255;48;2;111;79;37m🬃\u001b[0;38;2;0;0;0;48;2;67;57;0m🬻\u001b[0;38;2;0;0;0;48;2;0;0;0m \u001b[0;38;2;0;0;0;48;2;184;199;111m█\u001b[0;38;2;0;0;0;48;2;255;255;255m🬝\u001b[0;38;2;184;199;111;48;2;0;0;0m▟\u001b[0;38;2;112;164;178;48;2;255;255;255m▄\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;108;94;181m█\u001b[0;38;2;108;94;181;48;2;112;164;178m█\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;39;48;2;13;20;16m \u001b[14;1H\u001b[0;39;48;2;21;32;25m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;112;164;178m█\u001b[0;38;2;112;164;178;48;2;108;94;181m🬵\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[0;38;2;255;255;255;48;2;184;199;111m█\u001b[0;38;2;184;199;111;48;2;0;0;0m🬲\u001b[0;38;2;0;0;0;48;2;104;55;43m🬹\u001b[0;38;2;0;0;0;48;2;184;199;111m▄🬹🬻🬹🬹🬭\u001b[0;38;2;255;255;255;48;2;154;103;89m🬊\u001b[0;38;2;255;255;255;48;2;112;164;178m🬹🬻\u001b[0;38;2;0;0;0;48;2;184;199;111m🬞\u001b[0;38;2;0;0;0;48;2;111;79;37m█\u001b[0;38;2;0;0;0;48;2;0;0;0m \u001b[0;38;2;0;0;0;48;2;184;199;111m▙\u001b[0;38;2;112;164;178;48;2;0;0;0m🬬\u001b[0;38;2;112;164;178;48;2;255;255;255m🬨\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;108;94;181;48;2;112;164;178m▜\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;39;48;2;13;20;16m \u001b[15;1H\u001b[0;39;48;2;21;32;25m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;112;164;178;48;2;108;94;181m🬷\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;255;255;255m🬎\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;255;255;255;48;2;112;164;178m▐\u001b[0;38;2;255;255;255;48;2;184;199;111m🬕\u001b[0;38;2;0;0;0;48;2;184;199;111m🬩\u001b[0;38;2;0;0;0;48;2;111;79;37m🬻\u001b[0;38;2;0;0;0;48;2;0;0;0m \u001b[0;38;2;0;0;0;48;2;104;55;43m█\u001b[0;38;2;0;0;0;48;2;184;199;111m🬹\u001b[0;38;2;255;255;255;48;2;111;79;37m🬬\u001b[0;38;2;0;0;0;48;2;184;199;111m🬷\u001b[0;38;2;0;0;0;48;2;0;0;0m \u001b[0;38;2;0;0;0;48;2;184;199;111m▌\u001b[0;38;2;255;255;255;48;2;112;164;178mf\u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;108;94;181;48;2;112;164;178m▐\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;39;48;2;13;20;16m \u001b[16;1H\u001b[0;39;48;2;21;32;25m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;112;164;178m▛\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;255;255;255m██\u001b[0;38;2;255;255;255;48;2;112;164;178m🬷\u001b[0;38;2;255;255;255;48;2;184;199;111m▛\u001b[0;38;2;0;0;0;48;2;184;199;111m🬭\u001b[0;38;2;255;255;255;48;2;0;0;0m🬎\u001b[0;38;2;0;0;0;48;2;184;199;111m▐\u001b[0;38;2;0;0;0;48;2;0;0;0m \u001b[0;38;2;0;0;0;48;2;184;199;111m▙\u001b[0;38;2;0;0;0;48;2;104;55;43m█\u001b[0;38;2;0;0;0;48;2;0;0;0m \u001b[0;38;2;0;0;0;48;2;112;164;178m▛\u001b[0;38;2;255;255;255;48;2;112;164;178m`\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;108;94;181m▌\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;39;48;2;13;20;16m \u001b[17;1H\u001b[0;39;48;2;21;32;25m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;112;164;178;48;2;108;94;181m▐\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;255;255;255m██🬴\u001b[0;38;2;255;255;255;48;2;112;164;178m🬮\u001b[0;38;2;112;164;178;48;2;255;255;255m🬰🬴🬒🬰🬰🬰\u001b[0;38;2;255;255;255;48;2;184;199;111m🬴\u001b[0;38;2;255;255;255;48;2;112;164;178m█\u001b[0;38;2;255;255;255;48;2;184;199;111m🬐\u001b[0;38;2;0;0;0;48;2;184;199;111m🬫\u001b[0;38;2;0;0;0;48;2;0;0;0m \u001b[0;38;2;0;0;0;48;2;104;55;43m🬻\u001b[0;38;2;0;0;0;48;2;0;0;0m \u001b[0;38;2;0;0;0;48;2;67;57;0m🬴\u001b[0;38;2;0;0;0;48;2;112;164;178m🬐\u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;108;94;181m▌\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;39;48;2;13;20;16m \u001b[18;1H\u001b[0;39;48;2;21;32;25m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;112;164;178m🬲\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;255;255;255;48;2;112;164;178m'\u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[0;38;2;255;255;255;48;2;112;164;178m🬨\u001b[0;38;2;255;255;255;48;2;111;79;37m▙\u001b[0;38;2;0;0;0;48;2;184;199;111m🬂\u001b[0;38;2;255;255;255;48;2;0;0;0m🬹\u001b[0;38;2;0;0;0;48;2;184;199;111m▐\u001b[0;38;2;0;0;0;48;2;0;0;0m \u001b[0;38;2;0;0;0;48;2;154;103;89m▛\u001b[0;38;2;0;0;0;48;2;104;55;43m█\u001b[0;38;2;0;0;0;48;2;0;0;0m \u001b[0;38;2;0;0;0;48;2;112;164;178m🬹\u001b[0;38;2;112;164;178;48;2;0;0;0m🬬\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;108;94;181m▌\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;39;48;2;13;20;16m \u001b[19;1H\u001b[0;39;48;2;21;32;25m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;112;164;178m█\u001b[0;38;2;112;164;178;48;2;108;94;181m🬨\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;255;255;255m▄█\u001b[0;38;2;255;255;255;48;2;112;164;178m~🬨\u001b[0;38;2;255;255;255;48;2;184;199;111m▌\u001b[0;38;2;0;0;0;48;2;184;199;111m🬎\u001b[0;38;2;0;0;0;48;2;111;79;37m🬬\u001b[0;38;2;0;0;0;48;2;0;0;0m \u001b[0;38;2;0;0;0;48;2;104;55;43m█\u001b[0;38;2;0;0;0;48;2;184;199;111m🬝\u001b[0;38;2;255;255;255;48;2;111;79;37m🬻\u001b[0;38;2;0;0;0;48;2;184;199;111m🬨\u001b[0;38;2;0;0;0;48;2;0;0;0m \u001b[0;38;2;0;0;0;48;2;111;79;37mr\u001b[0;38;2;112;164;178;48;2;255;255;255m▐\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;108;94;181;48;2;112;164;178m▐\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;39;48;2;13;20;16m \u001b[20;1H\u001b[0;39;48;2;21;32;25m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;112;164;178m█\u001b[0;38;2;112;164;178;48;2;108;94;181m🬊\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;255;255;255m🬺🬺\u001b[0;38;2;184;199;111;48;2;255;255;255m╱\u001b[0;38;2;0;0;0;48;2;184;199;111m🬦\u001b[0;38;2;0;0;0;48;2;111;79;37m█\u001b[0;38;2;0;0;0;48;2;184;199;111m▀🬎🬬🬎🬬▀\u001b[0;38;2;255;255;255;48;2;104;55;43m🬵\u001b[0;38;2;255;255;255;48;2;184;199;111m🬻\u001b[0;38;2;255;255;255;48;2;112;164;178m🬬\u001b[0;38;2;0;0;0;48;2;184;199;111m🬁\u001b[0;38;2;0;0;0;48;2;111;79;37m█\u001b[0;38;2;0;0;0;48;2;0;0;0m \u001b[0;38;2;0;0;0;48;2;184;199;111m▛\u001b[0;38;2;255;255;255;48;2;184;199;111m🬵\u001b[0;38;2;112;164;178;48;2;255;255;255m🬷\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;108;94;181;48;2;112;164;178m🬷\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;39;48;2;13;20;16m \u001b[21;1H\u001b[0;39;48;2;21;32;25m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;112;164;178m▙\u001b[0;38;2;112;164;178;48;2;108;94;181m🬬\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[0;38;2;255;255;255;48;2;112;164;178m🬹🬎\u001b[0;38;2;255;255;255;48;2;154;103;89m🬺\u001b[0;38;2;255;255;255;48;2;112;164;178mA\u001b[0;38;2;112;164;178;48;2;255;255;255m▄\u001b[0;38;2;255;255;255;48;2;112;164;178m▜\u001b[0;38;2;255;255;255;48;2;184;199;111m▄▟\u001b[0;38;2;255;255;255;48;2;112;164;178m🬎\u001b[0;38;2;112;164;178;48;2;255;255;255m🬻█\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[0;38;2;255;255;255;48;2;184;199;111m▙\u001b[0;38;2;255;255;255;48;2;111;79;37m🬃\u001b[0;38;2;0;0;0;48;2;67;57;0m█\u001b[0;38;2;0;0;0;48;2;0;0;0m \u001b[0;38;2;0;0;0;48;2;154;103;89m█\u001b[0;38;2;0;0;0;48;2;184;199;111m▙\u001b[0;38;2;112;164;178;48;2;0;0;0m▜\u001b[0;38;2;112;164;178;48;2;255;255;255m🬎\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;108;94;181m█\u001b[0;38;2;108;94;181;48;2;112;164;178m█\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;39;48;2;13;20;16m \u001b[22;1H\u001b[0;39;48;2;21;32;25m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;112;164;178m█\u001b[0;38;2;112;164;178;48;2;108;94;181m🬊█\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;255;255;255m🬛🬷\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;255;255;255m🬺🬻\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;255;255;255;48;2;112;164;178m`\u001b[0;38;2;255;255;255;48;2;184;199;111m🬹\u001b[0;38;2;0;0;0;48;2;184;199;111m🬠\u001b[0;38;2;0;0;0;48;2;67;57;0m🬸\u001b[0;38;2;0;0;0;48;2;0;0;0m \u001b[0;38;2;0;0;0;48;2;154;103;89m🬄\u001b[0;38;2;255;255;255;48;2;112;164;178mp\u001b[0;38;2;112;164;178;48;2;255;255;255m🬺\u001b[0;38;2;255;255;255;48;2;112;164;178m*\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;108;94;181m🬕\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;39;48;2;13;20;16m \u001b[23;1H\u001b[0;39;48;2;21;32;25m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;112;164;178m🬺\u001b[0;38;2;112;164;178;48;2;108;94;181m🬊█\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;255;255;255m🬭\u001b[0;38;2;184;199;111;48;2;154;103;89m🬺\u001b[0;38;2;0;0;0;48;2;184;199;111m~\u001b[0;38;2;184;199;111;48;2;104;55;43m🬱\u001b[0;38;2;0;0;0;48;2;154;103;89m🬊\u001b[0;38;2;0;0;0;48;2;0;0;0m \u001b[0;38;2;0;0;0;48;2;111;79;37m█\u001b[0;38;2;0;0;0;48;2;184;199;111m🬰\u001b[0;38;2;255;255;255;48;2;184;199;111m4\u001b[0;38;2;112;164;178;48;2;255;255;255m🬬\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;108;94;181;48;2;112;164;178m🬻\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;39;48;2;13;20;16m \u001b[24;1H\u001b[0;39;48;2;21;32;25m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;112;164;178m🬺\u001b[0;38;2;112;164;178;48;2;108;94;181m▀█\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;255;255;255;48;2;184;199;111m🬴\u001b[0;38;2;0;0;0;48;2;154;103;89m🬦\u001b[0;38;2;0;0;0;48;2;104;55;43m🬻\u001b[0;38;2;0;0;0;48;2;184;199;111m🬝\u001b[0;38;2;0;0;0;48;2;67;57;0m🬬\u001b[0;38;2;0;0;0;48;2;0;0;0m \u001b[0;38;2;0;0;0;48;2;111;79;37m▛\u001b[0;38;2;255;255;255;48;2;67;57;0m🬵\u001b[0;38;2;0;0;0;48;2;111;79;37m▜\u001b[0;38;2;184;199;111;48;2;0;0;0m_\u001b[0;38;2;255;255;255;48;2;154;103;89m🬉\u001b[0;38;2;255;255;255;48;2;112;164;178m🬲\u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;108;94;181m🬕\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;39;48;2;13;20;16m \u001b[25;1H\u001b[0;39;48;2;21;32;25m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;112;164;178m🬺🬱\u001b[0;38;2;112;164;178;48;2;108;94;181m🬬\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;255;255;255m▌\u001b[0;38;2;255;255;255;48;2;184;199;111m▛\u001b[0;38;2;184;199;111;48;2;0;0;0m🬺\u001b[0;38;2;0;0;0;48;2;184;199;111m🬂\u001b[0;38;2;255;255;255;48;2;184;199;111m▟\u001b[0;38;2;255;255;255;48;2;154;103;89m🬺\u001b[0;38;2;0;0;0;48;2;154;103;89m▝\u001b[0;38;2;0;0;0;48;2;184;199;111m▀\u001b[0;38;2;0;0;0;48;2;154;103;89m🬊🬎\u001b[0;38;2;0;0;0;48;2;184;199;111m🬎\u001b[0;38;2;111;79;37;48;2;0;0;0m_\u001b[0;38;2;0;0;0;48;2;111;79;37m█\u001b[0;38;2;0;0;0;48;2;104;55;43m🬝\u001b[0;38;2;184;199;111;48;2;0;0;0m_\u001b[0;38;2;255;255;255;48;2;0;0;0m_\u001b[0;38;2;0;0;0;48;2;184;199;111m🬎🬎▀\u001b[0;38;2;184;199;111;48;2;0;0;0m▟\u001b[0;38;2;255;255;255;48;2;112;164;178m▌~?\u001b[0;38;2;112;164;178;48;2;255;255;255m🬹\u001b[0;38;2;255;255;255;48;2;112;164;178m🬨🬕\u001b[0;38;2;112;164;178;48;2;255;255;255m🬻\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;108;94;181m🬝\u001b[0;38;2;108;94;181;48;2;112;164;178m🬻\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;39;48;2;13;20;16m \u001b[26;1H\u001b[0;39;48;2;21;32;25m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;112;164;178m█🬹\u001b[0;38;2;112;164;178;48;2;108;94;181m🬎\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;255;255;255m🬺\u001b[0;38;2;255;255;255;48;2;112;164;178m~\u001b[0;38;2;112;164;178;48;2;255;255;255m🬹🬻\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;255;255;255m█🬹\u001b[0;38;2;255;255;255;48;2;112;164;178m~\u001b[0;38;2;112;164;178;48;2;255;255;255m🬹\u001b[0;38;2;255;255;255;48;2;112;164;178m█\u001b[0;38;2;0;0;0;48;2;184;199;111m🬦\u001b[0;38;2;0;0;0;48;2;0;0;0m \u001b[0;38;2;0;0;0;48;2;154;103;89m🬺\u001b[0;38;2;0;0;0;48;2;184;199;111m🬓\u001b[0;38;2;255;255;255;48;2;112;164;178m🬕\"\u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[0;38;2;255;255;255;48;2;112;164;178m\"\u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[0;38;2;255;255;255;48;2;112;164;178m~\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;108;94;181m█\u001b[0;38;2;108;94;181;48;2;112;164;178m🬻\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;39;48;2;13;20;16m \u001b[27;1H\u001b[0;39;48;2;21;32;25m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;112;164;178m█🬹\u001b[0;38;2;112;164;178;48;2;108;94;181m🬬\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[0;38;2;255;255;255;48;2;184;199;111m🬛\u001b[0;38;2;0;0;0;48;2;154;103;89m🬉\u001b[0;38;2;0;0;0;48;2;67;57;0m🬬\u001b[0;38;2;0;0;0;48;2;0;0;0m \u001b[0;38;2;0;0;0;48;2;104;55;43m🬝\u001b[0;38;2;184;199;111;48;2;0;0;0m🬷\u001b[0;38;2;255;255;255;48;2;184;199;111m🬫\u001b[0;38;2;112;164;178;48;2;154;210;132m█\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;108;94;181m🬝\u001b[0;38;2;108;94;181;48;2;112;164;178m🬻\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;39;48;2;13;20;16m \u001b[28;1H\u001b[0;39;48;2;21;32;25m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;112;164;178m🬺▄\u001b[0;38;2;112;164;178;48;2;108;94;181m🬎\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;255;255;255m🬺🬱\u001b[0;38;2;255;255;255;48;2;112;164;178m🬎\u001b[0;38;2;255;255;255;48;2;184;199;111m🬹\u001b[0;38;2;0;0;0;48;2;184;199;111m🬉\u001b[0;38;2;0;0;0;48;2;154;103;89m🬆\u001b[0;38;2;184;199;111;48;2;255;255;255m5\u001b[0;38;2;112;164;178;48;2;255;255;255m🬹▄\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;108;94;181m🬆\u001b[0;38;2;108;94;181;48;2;112;164;178m█\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;39;48;2;13;20;16m \u001b[29;1H\u001b[0;39;48;2;21;32;25m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;112;164;178m█🬹\u001b[0;38;2;112;164;178;48;2;108;94;181m🬎🬬\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[0;38;2;255;255;255;48;2;112;164;178m🬨\u001b[0;38;2;184;199;111;48;2;255;255;255m[\u001b[0;38;2;255;255;255;48;2;112;164;178m🬣\u001b[0;38;2;112;164;178;48;2;255;255;255m🬬\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;108;94;181m🬝\u001b[0;38;2;108;94;181;48;2;112;164;178m🬻\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;39;48;2;13;20;16m \u001b[30;1H\u001b[0;39;48;2;21;32;25m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;112;164;178m█🬺▄\u001b[0;38;2;112;164;178;48;2;108;94;181m🬎█\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;255;255;255;48;2;112;164;178mj▀\u001b[0;38;2;112;164;178;48;2;255;255;255m█🬺🬹\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;108;94;181m🬝\u001b[0;38;2;108;94;181;48;2;112;164;178m🬹█\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;39;48;2;13;20;16m \u001b[0m\u001b[30;101H\u001b[?25l"] +[2.0, "o", "\u001b[4;11H\u001b[0;39;48;2;13;20;16m \u001b[4;96H\u001b[0;39;48;2;29;40;36m \u001b[0;38;2;178;195;184;48;2;29;40;36mSPC\u001b[0;39;48;2;29;40;36m \u001b[5;11H\u001b[0;39;48;2;13;20;16m \u001b[5;34H\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;112;164;178m🬎▀\u001b[0;38;2;112;164;178;48;2;108;94;181m🬹\u001b[5;63H\u001b[0;38;2;112;164;178;48;2;255;255;255m🬲▀█\u001b[0;38;2;255;255;255;48;2;112;164;178m_,\u001b[5;79H\u001b[0;38;2;112;164;178;48;2;108;94;181m█🬱\u001b[0;38;2;108;94;181;48;2;112;164;178m🬬\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[5;91H\u001b[0;39;48;2;13;20;16m \u001b[6;11H \u001b[6;31H\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;112;164;178m█🬎\u001b[0;38;2;112;164;178;48;2;108;94;181m▄🬻\u001b[6;60H\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;255;255;255m🬄\u001b[0;38;2;184;199;111;48;2;255;255;255m[\u001b[0;38;2;112;164;178;48;2;255;255;255m🬩█\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[6;81H\u001b[0;38;2;112;164;178;48;2;108;94;181m█\u001b[0;38;2;108;94;181;48;2;112;164;178m🬊█\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[6;91H\u001b[0;39;48;2;13;20;16m \u001b[7;11H \u001b[7;28H\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;112;164;178m█🬆\u001b[0;38;2;112;164;178;48;2;108;94;181m🬹█\u001b[7;60H\u001b[0;38;2;112;164;178;48;2;255;255;255m🬝▀\u001b[0;38;2;255;255;255;48;2;112;164;178m🬹\u001b[0;38;2;255;255;255;48;2;154;103;89m🬝\u001b[0;38;2;255;255;255;48;2;104;55;43m🬆\u001b[0;38;2;184;199;111;48;2;111;79;37m🬁\u001b[0;38;2;184;199;111;48;2;255;255;255m_\u001b[0;38;2;112;164;178;48;2;255;255;255m🬎▜\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[7;83H\u001b[0;38;2;112;164;178;48;2;108;94;181m🬺\u001b[0;38;2;108;94;181;48;2;112;164;178m🬬\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[7;91H\u001b[0;39;48;2;13;20;16m \u001b[8;11H \u001b[8;26H\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;112;164;178m█🬎\u001b[0;38;2;112;164;178;48;2;108;94;181m🬹█\u001b[8;52H\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[8;57H \u001b[0;38;2;255;255;255;48;2;112;164;178m🬷\u001b[0;38;2;184;199;111;48;2;154;103;89m🬄\u001b[0;38;2;0;0;0;48;2;111;79;37m🬻\u001b[8;66H\u001b[0;38;2;0;0;0;48;2;154;103;89m🬺\u001b[0;38;2;184;199;111;48;2;0;0;0m🬨\u001b[0;38;2;255;255;255;48;2;112;164;178m🬕\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[8;71H \u001b[8;76H \u001b[8;84H\u001b[0;38;2;112;164;178;48;2;108;94;181m█\u001b[0;38;2;108;94;181;48;2;112;164;178m▜\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[8;91H\u001b[0;39;48;2;13;20;16m \u001b[9;11H \u001b[9;23H\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;112;164;178m🬝\u001b[0;38;2;112;164;178;48;2;108;94;181m🬹█\u001b[9;52H\u001b[0;38;2;112;164;178;48;2;255;255;255m🬝🬎🬎▜\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;255;255;255;48;2;112;164;178m,\u001b[0;38;2;112;164;178;48;2;184;199;111m🬬\u001b[0;38;2;112;164;178;48;2;255;255;255m🬬\u001b[0;38;2;255;255;255;48;2;112;164;178m▟\u001b[0;38;2;255;255;255;48;2;104;55;43m🬲\u001b[0;38;2;0;0;0;48;2;154;103;89m🬬\u001b[0;38;2;0;0;0;48;2;0;0;0m \u001b[0;38;2;0;0;0;48;2;184;199;111m🬝\u001b[0;38;2;255;255;255;48;2;154;103;89m▟\u001b[0;38;2;255;255;255;48;2;112;164;178m🬲\u001b[0;38;2;184;199;111;48;2;112;164;178m_\u001b[0;38;2;255;255;255;48;2;112;164;178m__\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;255;255;255m▛🬬\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[9;85H\u001b[0;38;2;112;164;178;48;2;108;94;181m█\u001b[0;38;2;108;94;181;48;2;112;164;178m▜\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[9;91H\u001b[0;39;48;2;13;20;16m \u001b[10;11H \u001b[10;21H\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;112;164;178m▛\u001b[0;38;2;112;164;178;48;2;108;94;181m🬻\u001b[10;52H\u001b[0;38;2;112;164;178;48;2;255;255;255m🬴\u001b[0;38;2;184;199;111;48;2;255;255;255m(\u001b[0;38;2;255;255;255;48;2;154;103;89m🬕\u001b[0;38;2;0;0;0;48;2;184;199;111m🬭🬏\u001b[0;38;2;255;255;255;48;2;184;199;111m▛\u001b[0;38;2;255;255;255;48;2;154;103;89m🬄\u001b[0;38;2;0;0;0;48;2;154;103;89m🬱\u001b[0;38;2;0;0;0;48;2;184;199;111m🬻🬻\u001b[0;38;2;0;0;0;48;2;104;55;43m🬹\u001b[0;38;2;104;55;43;48;2;0;0;0m7\u001b[0;38;2;0;0;0;48;2;67;57;0m█\u001b[0;38;2;0;0;0;48;2;104;55;43m█\u001b[0;38;2;0;0;0;48;2;111;79;37m🬹\u001b[0;38;2;154;103;89;48;2;0;0;0m~\u001b[0;38;2;0;0;0;48;2;184;199;111m🬺🬹🬵\u001b[0;38;2;184;199;111;48;2;0;0;0m🬨\u001b[0;38;2;255;255;255;48;2;112;164;178mL\u001b[0;38;2;112;164;178;48;2;255;255;255m🬬\u001b[0;38;2;112;164;178;48;2;184;199;111m▀\u001b[0;38;2;112;164;178;48;2;255;255;255m▀\u001b[0;38;2;184;199;111;48;2;255;255;255m_\u001b[0;38;2;112;164;178;48;2;255;255;255m▀\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[10;86H\u001b[0;38;2;112;164;178;48;2;108;94;181m█\u001b[0;38;2;108;94;181;48;2;112;164;178m▜\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[10;91H\u001b[0;39;48;2;13;20;16m \u001b[11;11H \u001b[11;19H\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;112;164;178m█🬆\u001b[0;38;2;112;164;178;48;2;108;94;181m🬻\u001b[11;50H\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[0;38;2;255;255;255;48;2;112;164;178m_🬷\u001b[0;38;2;0;0;0;48;2;184;199;111m🬁\u001b[0;38;2;0;0;0;48;2;104;55;43m▜🬺\u001b[0;38;2;0;0;0;48;2;111;79;37m🬻\u001b[11;72H\u001b[0;38;2;0;0;0;48;2;184;199;111m🬺▄\u001b[0;38;2;0;0;0;48;2;111;79;37m🬻\u001b[0;38;2;154;103;89;48;2;0;0;0m~\u001b[0;38;2;255;255;255;48;2;154;103;89m🬫\u001b[11;87H\u001b[0;38;2;112;164;178;48;2;108;94;181m█\u001b[0;38;2;108;94;181;48;2;112;164;178m█\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[11;91H\u001b[0;39;48;2;13;20;16m \u001b[12;11H \u001b[12;17H\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;112;164;178m█🬆\u001b[0;38;2;112;164;178;48;2;108;94;181m█\u001b[12;35H\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;255;255;255m██\u001b[12;41H\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[12;49H \u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[0;38;2;255;255;255;48;2;184;199;111m🬕\u001b[0;38;2;0;0;0;48;2;255;255;255m▄\u001b[0;38;2;0;0;0;48;2;184;199;111m▄\u001b[0;38;2;67;57;0;48;2;0;0;0m`\u001b[12;74H\u001b[0;38;2;0;0;0;48;2;111;79;37m🬺\u001b[0;38;2;0;0;0;48;2;154;103;89m▖\u001b[0;38;2;112;164;178;48;2;184;199;111m🬎\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[12;88H\u001b[0;38;2;112;164;178;48;2;108;94;181m▌\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[12;91H\u001b[0;39;48;2;13;20;16m \u001b[13;11H \u001b[13;16H\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;112;164;178m🬆\u001b[0;38;2;112;164;178;48;2;108;94;181m█\u001b[13;35H\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[0;38;2;255;255;255;48;2;112;164;178m🬺\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;255;255;255m🬆▜\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[13;49H \u001b[0;38;2;112;164;178;48;2;184;199;111m▛\u001b[0;38;2;0;0;0;48;2;184;199;111m🬭\u001b[0;38;2;0;0;0;48;2;154;103;89m🬻\u001b[13;76H\u001b[0;38;2;184;199;111;48;2;111;79;37m🬉\u001b[0;38;2;112;164;178;48;2;0;0;0m🬎\u001b[0;38;2;184;199;111;48;2;255;255;255m_\u001b[0;38;2;112;164;178;48;2;255;255;255m🬬\u001b[13;88H\u001b[0;38;2;112;164;178;48;2;108;94;181m█\u001b[0;38;2;108;94;181;48;2;112;164;178m█\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;39;48;2;13;20;16m \u001b[14;11H \u001b[14;14H\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;112;164;178m🬝\u001b[0;38;2;112;164;178;48;2;108;94;181m▟\u001b[14;36H\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;255;255;255m🬺\u001b[0;38;2;255;255;255;48;2;112;164;178m▜\u001b[0;38;2;255;255;255;48;2;154;103;89m🬆\u001b[0;38;2;255;255;255;48;2;0;0;0m🬎\u001b[0;38;2;255;255;255;48;2;112;164;178m🬚\u001b[0;38;2;0;0;0;48;2;255;255;255m_\u001b[0;38;2;0;0;0;48;2;184;199;111m🬭\u001b[0;38;2;111;79;37;48;2;255;255;255m_\u001b[0;38;2;255;255;255;48;2;184;199;111m🬆\u001b[0;38;2;112;164;178;48;2;255;255;255m▀🬬█🬎\u001b[0;38;2;255;255;255;48;2;154;103;89m🬒\u001b[0;38;2;0;0;0;48;2;154;103;89m▟\u001b[14;76H\u001b[0;38;2;0;0;0;48;2;184;199;111m█🬐\u001b[0;38;2;112;164;178;48;2;255;255;255m🬹█\u001b[14;89H\u001b[0;38;2;108;94;181;48;2;112;164;178m▜\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;39;48;2;13;20;16m \u001b[15;11H \u001b[15;14H\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;112;164;178m▛\u001b[0;38;2;112;164;178;48;2;108;94;181m█\u001b[15;32H\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[15;35H \u001b[0;38;2;112;164;178;48;2;255;255;255m▛▀\u001b[0;38;2;255;255;255;48;2;184;199;111m🬎\u001b[0;38;2;0;0;0;48;2;184;199;111m🬷\u001b[0;38;2;0;0;0;48;2;104;55;43m█🬻\u001b[15;45H\u001b[0;38;2;0;0;0;48;2;67;57;0m🬺\u001b[0;38;2;0;0;0;48;2;111;79;37m🬹\u001b[0;38;2;255;255;255;48;2;104;55;43m🬂\u001b[0;38;2;255;255;255;48;2;154;103;89m▜\u001b[0;38;2;255;255;255;48;2;184;199;111m🬝\u001b[0;38;2;0;0;0;48;2;111;79;37m🬷\u001b[15;77H\u001b[0;38;2;0;0;0;48;2;184;199;111mM\u001b[0;38;2;112;164;178;48;2;255;255;255m🬹\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[15;89H\u001b[0;38;2;112;164;178;48;2;108;94;181m▌\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;39;48;2;13;20;16m \u001b[16;11H \u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;112;164;178m🬝\u001b[0;38;2;112;164;178;48;2;108;94;181m█\u001b[16;23H\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[16;30H \u001b[0;38;2;255;255;255;48;2;112;164;178m*\u001b[0;38;2;112;164;178;48;2;255;255;255m🬊▀\u001b[0;38;2;255;255;255;48;2;112;164;178m▟\u001b[0;38;2;255;255;255;48;2;154;103;89m▛\u001b[0;38;2;0;0;0;48;2;104;55;43m🬷\u001b[16;48H\u001b[0;38;2;0;0;0;48;2;184;199;111m🬺\u001b[0;38;2;255;255;255;48;2;111;79;37mT\u001b[16;76H\u001b[0;38;2;0;0;0;48;2;104;55;43m▛\u001b[0;38;2;255;255;255;48;2;112;164;178m▞\u001b[16;89H\u001b[0;38;2;112;164;178;48;2;108;94;181m▌\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;39;48;2;13;20;16m \u001b[17;11H \u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;112;164;178;48;2;108;94;181m▐\u001b[17;20H\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;255;255;255m███\u001b[0;38;2;255;255;255;48;2;112;164;178m_\u001b[0;38;2;112;164;178;48;2;255;255;255m🬬\u001b[0;38;2;255;255;255;48;2;112;164;178m__\u001b[0;38;2;112;164;178;48;2;255;255;255m🬆🬎\u001b[0;38;2;255;255;255;48;2;184;199;111m🬝\u001b[0;38;2;255;255;255;48;2;104;55;43m🬆\u001b[0;38;2;0;0;0;48;2;184;199;111m🬹🬹\u001b[0;38;2;0;0;0;48;2;255;255;255m▟\u001b[17;49H\u001b[0;38;2;104;55;43;48;2;0;0;0m]\u001b[17;74H\u001b[0;38;2;108;108;108;48;2;0;0;0m_\u001b[0;38;2;0;0;0;48;2;112;164;178m🬆\u001b[0;38;2;112;164;178;48;2;0;0;0m🬻\u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[17;89H\u001b[0;38;2;112;164;178;48;2;108;94;181m▌\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;39;48;2;13;20;16m \u001b[18;11H \u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;112;164;178;48;2;108;94;181m▐\u001b[18;22H\u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[18;24H\u001b[0;38;2;255;255;255;48;2;112;164;178m''\u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[0;38;2;255;255;255;48;2;112;164;178m~\u001b[0;38;2;112;164;178;48;2;255;255;255m🬻\u001b[0;38;2;255;255;255;48;2;112;164;178m~~\u001b[0;38;2;112;164;178;48;2;255;255;255m🬱▄\u001b[0;38;2;255;255;255;48;2;184;199;111m🬺\u001b[0;38;2;255;255;255;48;2;111;79;37m🬱\u001b[0;38;2;184;199;111;48;2;0;0;0m_\u001b[0;38;2;0;0;0;48;2;184;199;111m🬎▜\u001b[18;48H\u001b[0;38;2;0;0;0;48;2;0;0;0m \u001b[0;38;2;0;0;0;48;2;104;55;43m🬝\u001b[18;74H\u001b[0;38;2;0;0;0;48;2;111;79;37m🬺\u001b[0;38;2;0;0;0;48;2;112;164;178m▄\u001b[0;38;2;112;164;178;48;2;0;0;0m🬬\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[18;89H\u001b[0;38;2;112;164;178;48;2;108;94;181m▌\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;39;48;2;13;20;16m \u001b[19;11H \u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;112;164;178m🬺\u001b[19;32H\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;255;255;255m🬄▄▄\u001b[0;38;2;255;255;255;48;2;112;164;178m▜\u001b[0;38;2;255;255;255;48;2;111;79;37m▙\u001b[0;38;2;0;0;0;48;2;104;55;43m▜\u001b[19;46H\u001b[0;38;2;0;0;0;48;2;0;0;0m \u001b[0;38;2;0;0;0;48;2;111;79;37m🬝\u001b[0;38;2;184;199;111;48;2;104;55;43m▄\u001b[19;76H\u001b[0;38;2;0;0;0;48;2;108;108;108m▙\u001b[0;38;2;112;164;178;48;2;0;0;0m🬬\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[19;89H\u001b[0;38;2;112;164;178;48;2;108;94;181m▌\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;39;48;2;13;20;16m \u001b[20;11H \u001b[20;14H\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;112;164;178m▙\u001b[0;38;2;112;164;178;48;2;108;94;181m█\u001b[20;35H\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;255;255;255m▙▄\u001b[0;38;2;255;255;255;48;2;111;79;37m🬹\u001b[0;38;2;0;0;0;48;2;184;199;111m🬨\u001b[0;38;2;0;0;0;48;2;104;55;43m██\u001b[0;38;2;0;0;0;48;2;0;0;0m \u001b[0;38;2;0;0;0;48;2;67;57;0m🬝\u001b[0;38;2;111;79;37;48;2;0;0;0m_\u001b[0;38;2;0;0;0;48;2;184;199;111m🬆\u001b[0;38;2;255;255;255;48;2;111;79;37m🬻\u001b[0;38;2;255;255;255;48;2;184;199;111m🬺\u001b[0;38;2;0;0;0;48;2;111;79;37m🬨\u001b[20;77H\u001b[0;38;2;0;0;0;48;2;112;164;178m▖\u001b[0;38;2;112;164;178;48;2;184;199;111m▜\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[20;89H\u001b[0;38;2;112;164;178;48;2;108;94;181m▌\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;39;48;2;13;20;16m \u001b[21;11H \u001b[21;16H\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;112;164;178m🬺\u001b[0;38;2;112;164;178;48;2;108;94;181m🬬\u001b[21;35H\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;255;255;255m🬝\u001b[0;38;2;255;255;255;48;2;112;164;178m🬸\u001b[0;38;2;184;199;111;48;2;0;0;0m▙\u001b[0;38;2;255;255;255;48;2;0;0;0m▄\u001b[0;38;2;255;255;255;48;2;184;199;111m▙\u001b[0;38;2;255;255;255;48;2;111;79;37m🬹\u001b[0;38;2;0;0;0;48;2;184;199;111m▀~\u001b[0;38;2;255;255;255;48;2;184;199;111m🬱\u001b[0;38;2;112;164;178;48;2;255;255;255m▄🬹\u001b[0;38;2;255;255;255;48;2;112;164;178m~\u001b[0;38;2;112;164;178;48;2;255;255;255m▄\u001b[0;38;2;184;199;111;48;2;111;79;37m🬲\u001b[0;38;2;0;0;0;48;2;154;103;89m🬬\u001b[21;77H\u001b[0;38;2;0;0;0;48;2;184;199;111m_\u001b[0;38;2;112;164;178;48;2;255;255;255m🬬\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[21;89H\u001b[0;38;2;108;94;181;48;2;112;164;178m🬷\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;39;48;2;13;20;16m \u001b[22;11H \u001b[22;17H\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;112;164;178m█🬱\u001b[0;38;2;112;164;178;48;2;108;94;181m█\u001b[22;35H\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[0;38;2;255;255;255;48;2;112;164;178m🬝~\u001b[0;38;2;112;164;178;48;2;255;255;255m🬺\u001b[22;41H\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;255;255;255m🬱🬷\u001b[22;49H\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;184;199;111m🬲\u001b[0;38;2;0;0;0;48;2;184;199;111m🬂🬬\u001b[22;76H🬆\u001b[0;38;2;0;0;0;48;2;112;164;178m🬂\u001b[0;38;2;255;255;255;48;2;184;199;111m🬻\u001b[0;38;2;112;164;178;48;2;255;255;255m🬻\u001b[22;88H\u001b[0;38;2;112;164;178;48;2;108;94;181m█\u001b[0;38;2;108;94;181;48;2;112;164;178m█\u001b[22;91H\u001b[0;39;48;2;13;20;16m \u001b[23;11H \u001b[23;19H\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;112;164;178m🬺\u001b[0;38;2;112;164;178;48;2;108;94;181m🬊█\u001b[23;35H\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;255;255;255m██\u001b[23;50H█\u001b[0;38;2;255;255;255;48;2;184;199;111m▌\u001b[0;38;2;0;0;0;48;2;184;199;111m▀🬊\u001b[0;38;2;67;57;0;48;2;0;0;0m,\u001b[23;74H\u001b[0;38;2;0;0;0;48;2;111;79;37m🬝\u001b[0;38;2;0;0;0;48;2;184;199;111m▀\u001b[0;38;2;112;164;178;48;2;184;199;111m▄\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[23;88H\u001b[0;38;2;112;164;178;48;2;108;94;181m🬕\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[23;91H\u001b[0;39;48;2;13;20;16m \u001b[24;11H \u001b[24;21H\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;112;164;178m🬺\u001b[0;38;2;112;164;178;48;2;108;94;181m🬊🬬\u001b[24;51H\u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[0;38;2;255;255;255;48;2;112;164;178m~🬧\u001b[0;38;2;184;199;111;48;2;111;79;37m🬛\u001b[0;38;2;0;0;0;48;2;67;57;0m▟\u001b[0;38;2;0;0;0;48;2;104;55;43m🬝\u001b[24;72H\u001b[0;38;2;184;199;111;48;2;0;0;0m_\u001b[0;38;2;0;0;0;48;2;184;199;111m🬎\u001b[0;38;2;0;0;0;48;2;0;0;0m \u001b[0;38;2;0;0;0;48;2;104;55;43m🬺\u001b[0;38;2;255;255;255;48;2;184;199;111m▐\u001b[0;38;2;255;255;255;48;2;112;164;178m_\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[24;87H\u001b[0;38;2;112;164;178;48;2;108;94;181m█\u001b[0;38;2;108;94;181;48;2;112;164;178m🬻\u001b[24;91H\u001b[0;39;48;2;13;20;16m \u001b[25;11H \u001b[25;23H\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;112;164;178m█🬱\u001b[0;38;2;112;164;178;48;2;108;94;181m🬬\u001b[25;52H\u001b[0;38;2;112;164;178;48;2;255;255;255m🬴\u001b[0;38;2;255;255;255;48;2;112;164;178m🬻\u001b[0;38;2;255;255;255;48;2;154;103;89m🬲\u001b[0;38;2;0;0;0;48;2;184;199;111m▀▘\u001b[0;38;2;255;255;255;48;2;184;199;111m▙\u001b[0;38;2;0;0;0;48;2;184;199;111m🬊▛🬬\u001b[0;38;2;0;0;0;48;2;104;55;43m🬎\u001b[0;38;2;104;55;43;48;2;0;0;0m_\u001b[0;38;2;0;0;0;48;2;104;55;43m█\u001b[0;38;2;0;0;0;48;2;67;57;0m█\u001b[0;38;2;0;0;0;48;2;104;55;43m█\u001b[0;38;2;0;0;0;48;2;111;79;37m█\u001b[0;38;2;104;55;43;48;2;0;0;0m_\u001b[0;38;2;0;0;0;48;2;184;199;111m🬝🬝🬊🬄\u001b[0;38;2;255;255;255;48;2;112;164;178mr\u001b[25;74H\u001b[0;38;2;0;0;0;48;2;112;164;178m`\u001b[0;38;2;112;164;178;48;2;184;199;111m🬹\u001b[0;38;2;184;199;111;48;2;255;255;255m~\u001b[0;38;2;112;164;178;48;2;255;255;255m▟\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[25;86H\u001b[0;38;2;112;164;178;48;2;108;94;181m█\u001b[0;38;2;108;94;181;48;2;112;164;178m▟\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[25;91H\u001b[0;39;48;2;13;20;16m \u001b[26;11H \u001b[26;25H\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;112;164;178m█🬹\u001b[0;38;2;112;164;178;48;2;108;94;181m🬎\u001b[26;52H\u001b[0;38;2;112;164;178;48;2;255;255;255m▙▟\u001b[26;55H🬷\u001b[26;57H\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;184;199;111m🬺🬻\u001b[0;38;2;112;164;178;48;2;255;255;255m🬻{\u001b[0;38;2;255;255;255;48;2;0;0;0m▛\u001b[0;38;2;0;0;0;48;2;184;199;111m🬻\u001b[26;65H█🬹\u001b[0;38;2;255;255;255;48;2;154;103;89m▜\u001b[26;69H\u001b[0;38;2;184;199;111;48;2;112;164;178m~\u001b[0;38;2;255;255;255;48;2;112;164;178m~\u001b[0;38;2;112;164;178;48;2;184;199;111m🬻\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[26;76H\u001b[0;38;2;112;164;178;48;2;255;255;255m▙█\u001b[26;86H\u001b[0;38;2;108;94;181;48;2;112;164;178m🬵\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[26;91H\u001b[0;39;48;2;13;20;16m \u001b[27;11H \u001b[27;28H\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;112;164;178m🬺▄\u001b[0;38;2;112;164;178;48;2;108;94;181m🬎\u001b[27;60H\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;255;255;255;48;2;112;164;178m▜\u001b[0;38;2;0;0;0;48;2;184;199;111m🬠\u001b[0;38;2;0;0;0;48;2;111;79;37m█\u001b[27;66H🬝\u001b[0;38;2;184;199;111;48;2;104;55;43m🬷\u001b[0;38;2;255;255;255;48;2;112;164;178m🬲\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[27;84H\u001b[0;38;2;112;164;178;48;2;108;94;181m█\u001b[0;38;2;108;94;181;48;2;112;164;178m▟\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[27;91H\u001b[0;39;48;2;13;20;16m \u001b[28;11H \u001b[28;31H\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;112;164;178m🬺\u001b[0;38;2;112;164;178;48;2;108;94;181m🬊🬬\u001b[28;61H\u001b[0;38;2;112;164;178;48;2;255;255;255m▄\u001b[0;38;2;255;255;255;48;2;184;199;111m🬻▙\u001b[0;38;2;255;255;255;48;2;104;55;43m🬓\u001b[0;38;2;0;0;0;48;2;111;79;37m🬄\u001b[0;38;2;154;103;89;48;2;255;255;255m~\u001b[0;38;2;112;164;178;48;2;255;255;255m▄▟\u001b[28;83H\u001b[0;38;2;112;164;178;48;2;108;94;181m🬝\u001b[0;38;2;108;94;181;48;2;112;164;178m🬻\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[28;91H\u001b[0;39;48;2;13;20;16m \u001b[29;11H \u001b[29;34H\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;112;164;178m█🬹\u001b[0;38;2;112;164;178;48;2;108;94;181m🬎█\u001b[29;66H\u001b[0;38;2;255;255;255;48;2;112;164;178mF\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[29;81H\u001b[0;38;2;112;164;178;48;2;108;94;181m█🬆\u001b[0;38;2;108;94;181;48;2;112;164;178m█\u001b[29;91H\u001b[0;39;48;2;13;20;16m \u001b[30;11H \u001b[30;37H\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;112;164;178m█🬹\u001b[0;38;2;112;164;178;48;2;108;94;181m▀🬎\u001b[30;63H\u001b[0;38;2;112;164;178;48;2;255;255;255m▛🬪\u001b[30;66H🬹\u001b[0;38;2;255;255;255;48;2;112;164;178m\\\u001b[30;79H\u001b[0;38;2;112;164;178;48;2;108;94;181m█🬆\u001b[0;38;2;108;94;181;48;2;112;164;178m🬻\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[30;91H\u001b[0;39;48;2;13;20;16m \u001b[0m\u001b[30;92H\u001b[?25l"] +[2.22, "o", "\u001b[4;94H\u001b[0;39;48;2;29;40;36m \u001b[0;38;2;178;195;184;48;2;29;40;36mSPC t\u001b[0m\u001b[4;100H\u001b[?25l"] +[2.44, "o", "\u001b[3;17H\u001b[0;38;2;190;207;196;48;2;49;71;56mn palet\u001b[3;25He:com\u001b[3;31Hodore asci\u001b[3;42H:on /tmp/cast/art/\u001b[0;38;2;223;188;229;48;2;49;71;56mmandelbrot.png\u001b[0;38;2;190;207;196;48;2;49;71;56m Tty Col\u001b[3;83Hapse Del\u001b[0;39;48;2;49;71;56m \u001b[4;92H\u001b[0;39;48;2;29;40;36m \u001b[0;38;2;178;195;184;48;2;29;40;36mPetscii\u001b[0m\u001b[4;100H\u001b[?25l"] +[3.94, "o", "\u001b[4;11H\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;112;164;178m🬝🬎\u001b[0;38;2;112;164;178;48;2;108;94;181m🬹█\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;255;255;255;48;2;112;164;178m]\u001b[0;38;2;112;164;178;48;2;255;255;255m▀\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;255;255;255m█▛\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;108;94;181m🬺\u001b[0;38;2;108;94;181;48;2;112;164;178m🬎\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;39;48;2;13;20;16m \u001b[5;11H\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[5;34H\u001b[0;38;2;108;94;181;48;2;112;164;178m█🬎\u001b[0;38;2;112;164;178;48;2;108;94;181m▄🬻\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[5;63H \u001b[0;38;2;255;255;255;48;2;112;164;178m🬷\u001b[0;38;2;184;199;111;48;2;255;255;255m,\u001b[0;38;2;255;255;255;48;2;112;164;178m🬔\u001b[0;38;2;112;164;178;48;2;255;255;255m🬻\u001b[5;79H\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;108;94;181m🬺\u001b[0;38;2;108;94;181;48;2;112;164;178m🬬\u001b[5;91H\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[6;11H \u001b[6;31H\u001b[0;38;2;108;94;181;48;2;112;164;178m█🬎\u001b[0;38;2;112;164;178;48;2;108;94;181m🬹█\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[6;60H\u001b[0;38;2;112;164;178;48;2;255;255;255m🬝🬆▀\u001b[0;38;2;184;199;111;48;2;255;255;255m_\u001b[0;38;2;0;0;0;48;2;184;199;111m🬦🬹\u001b[0;38;2;255;255;255;48;2;184;199;111m🬸\u001b[0;38;2;112;164;178;48;2;255;255;255m🬎▀\u001b[6;81H\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;108;94;181m█🬱\u001b[0;38;2;108;94;181;48;2;112;164;178m█\u001b[6;91H\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[7;11H \u001b[7;28H\u001b[0;38;2;108;94;181;48;2;112;164;178m█🬎\u001b[0;38;2;112;164;178;48;2;108;94;181m🬹█\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[7;60H\u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[0;38;2;255;255;255;48;2;184;199;111m🬝\u001b[0;38;2;0;0;0;48;2;184;199;111m🬦\u001b[0;38;2;0;0;0;48;2;154;103;89m🬻\u001b[0;38;2;0;0;0;48;2;0;0;0m \u001b[0;38;2;0;0;0;48;2;154;103;89m🬺\u001b[0;38;2;255;255;255;48;2;111;79;37m🬡\u001b[0;38;2;255;255;255;48;2;112;164;178m🬴\u001b[0;38;2;112;164;178;48;2;154;210;132m█\u001b[7;83H\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;108;94;181m🬺\u001b[0;38;2;108;94;181;48;2;112;164;178m🬬\u001b[7;91H\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[8;11H \u001b[8;26H\u001b[0;38;2;108;94;181;48;2;112;164;178m🬝\u001b[0;38;2;112;164;178;48;2;108;94;181m▄█\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[8;52H\u001b[0;38;2;112;164;178;48;2;255;255;255m🬝█🬝🬬\u001b[8;57H█\u001b[0;38;2;255;255;255;48;2;112;164;178m___█\u001b[0;38;2;0;0;0;48;2;184;199;111m🬉\u001b[0;38;2;0;0;0;48;2;0;0;0m \u001b[8;66H\u001b[0;38;2;0;0;0;48;2;111;79;37m█\u001b[0;38;2;0;0;0;48;2;184;199;111m🬄\u001b[0;38;2;255;255;255;48;2;112;164;178m🬲\u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[8;71H🬝\u001b[8;76H█🬬\u001b[8;84H\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;108;94;181m🬺\u001b[0;38;2;108;94;181;48;2;112;164;178m🬬\u001b[8;91H\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[9;11H \u001b[9;23H\u001b[0;38;2;108;94;181;48;2;112;164;178m█🬆~\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[9;52H\u001b[0;38;2;112;164;178;48;2;255;255;255m▌\u001b[0;38;2;184;199;111;48;2;255;255;255m╱\u001b[0;38;2;184;199;111;48;2;0;0;0m🬝🬝\u001b[0;38;2;112;164;178;48;2;255;255;255m🬂\u001b[0;38;2;255;255;255;48;2;112;164;178m🬋\u001b[0;38;2;0;0;0;48;2;184;199;111m🬦\u001b[0;38;2;255;255;255;48;2;0;0;0m▀\u001b[0;38;2;0;0;0;48;2;184;199;111m🬵\u001b[0;38;2;0;0;0;48;2;154;103;89m🬹\u001b[0;38;2;0;0;0;48;2;184;199;111m🬹\u001b[0;38;2;111;79;37;48;2;0;0;0m~\u001b[0;38;2;0;0;0;48;2;111;79;37m██\u001b[0;38;2;0;0;0;48;2;184;199;111m🬺🬹▄🬹\u001b[0;38;2;0;0;0;48;2;112;164;178m🬭\u001b[0;38;2;184;199;111;48;2;0;0;0m▜\u001b[0;38;2;255;255;255;48;2;112;164;178m🬲\u001b[0;38;2;112;164;178;48;2;255;255;255m█▛🬎\u001b[0;38;2;255;255;255;48;2;112;164;178m🬷🬲\u001b[0;38;2;112;164;178;48;2;255;255;255m🬬\u001b[9;85H\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;108;94;181m🬺\u001b[0;38;2;108;94;181;48;2;112;164;178m█\u001b[9;91H\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[10;11H \u001b[10;21H\u001b[0;38;2;108;94;181;48;2;112;164;178m█🬆\u001b[0;38;2;112;164;178;48;2;108;94;181m█\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[10;52H \u001b[0;38;2;255;255;255;48;2;184;199;111m🬴\u001b[0;38;2;0;0;0;48;2;184;199;111m🬫\u001b[0;38;2;0;0;0;48;2;67;57;0m█\u001b[0;38;2;0;0;0;48;2;184;199;111m▙🬻\u001b[0;38;2;0;0;0;48;2;68;68;68m█\u001b[0;38;2;0;0;0;48;2;0;0;0m \u001b[0;38;2;0;0;0;48;2;104;55;43m🬺\u001b[0;38;2;0;0;0;48;2;154;103;89m▄\u001b[0;38;2;255;255;255;48;2;104;55;43m🬊\u001b[0;38;2;0;0;0;48;2;154;103;89m▄\u001b[0;38;2;0;0;0;48;2;184;199;111m🬹\u001b[0;38;2;184;199;111;48;2;0;0;0m🬨\u001b[0;38;2;255;255;255;48;2;112;164;178m▛\u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[10;86H\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;108;94;181m🬲\u001b[10;91H\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[11;11H \u001b[11;19H\u001b[0;38;2;108;94;181;48;2;112;164;178m█🬆\u001b[0;38;2;112;164;178;48;2;108;94;181m█\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[11;50H\u001b[0;38;2;112;164;178;48;2;255;255;255m▀\u001b[0;38;2;112;164;178;48;2;184;199;111m🬂\u001b[0;38;2;0;0;0;48;2;255;255;255m_\u001b[0;38;2;0;0;0;48;2;184;199;111m🬦🬹█\u001b[0;38;2;0;0;0;48;2;0;0;0m \u001b[11;72H \u001b[0;38;2;0;0;0;48;2;111;79;37m█\u001b[0;38;2;0;0;0;48;2;184;199;111m🬒\u001b[0;38;2;255;255;255;48;2;184;199;111m🬩\u001b[11;87H\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;108;94;181;48;2;112;164;178m🬬\u001b[11;91H\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[12;11H \u001b[12;17H\u001b[0;38;2;108;94;181;48;2;112;164;178m█🬆\u001b[0;38;2;112;164;178;48;2;108;94;181m█\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[12;35H\u001b[0;38;2;255;255;255;48;2;112;164;178m`\u001b[0;38;2;112;164;178;48;2;255;255;255m🬨\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[12;41H\u001b[0;38;2;112;164;178;48;2;255;255;255m█🬬\u001b[12;49H🬝\u001b[0;38;2;255;255;255;48;2;184;199;111m🬬\u001b[0;38;2;0;0;0;48;2;184;199;111m🬠\u001b[0;38;2;0;0;0;48;2;67;57;0m🬸\u001b[0;38;2;0;0;0;48;2;0;0;0m \u001b[12;74H \u001b[0;38;2;0;0;0;48;2;154;103;89m🬓\u001b[0;38;2;184;199;111;48;2;255;255;255m_\u001b[0;38;2;112;164;178;48;2;184;199;111m🬬\u001b[0;38;2;112;164;178;48;2;255;255;255m▀\u001b[12;88H\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;108;94;181m🬲\u001b[12;91H\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[13;11H \u001b[13;16H\u001b[0;38;2;108;94;181;48;2;112;164;178m▛\u001b[0;38;2;112;164;178;48;2;108;94;181m🬻\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[13;35H\u001b[0;38;2;112;164;178;48;2;255;255;255m🬺\u001b[0;38;2;255;255;255;48;2;112;164;178m🬎🬹🬋\u001b[0;38;2;112;164;178;48;2;255;255;255m▀🬎\u001b[0;38;2;255;255;255;48;2;112;164;178m▟\u001b[0;38;2;255;255;255;48;2;184;199;111m@\u001b[0;38;2;112;164;178;48;2;184;199;111m▜\u001b[0;38;2;112;164;178;48;2;255;255;255m▀🬬\u001b[13;49H\u001b[0;38;2;112;164;178;48;2;184;199;111m🬛\u001b[0;38;2;255;255;255;48;2;111;79;37m🬃\u001b[0;38;2;0;0;0;48;2;67;57;0m🬻\u001b[0;38;2;0;0;0;48;2;0;0;0m \u001b[13;76H\u001b[0;38;2;0;0;0;48;2;184;199;111m█\u001b[0;38;2;0;0;0;48;2;255;255;255m🬝\u001b[0;38;2;184;199;111;48;2;0;0;0m▟\u001b[0;38;2;112;164;178;48;2;255;255;255m▄\u001b[13;88H\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;108;94;181m█\u001b[0;38;2;108;94;181;48;2;112;164;178m█\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[14;11H \u001b[14;14H\u001b[0;38;2;108;94;181;48;2;112;164;178m█\u001b[0;38;2;112;164;178;48;2;108;94;181m🬵\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[14;36H\u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[0;38;2;255;255;255;48;2;184;199;111m█\u001b[0;38;2;184;199;111;48;2;0;0;0m🬲\u001b[0;38;2;0;0;0;48;2;104;55;43m🬹\u001b[0;38;2;0;0;0;48;2;184;199;111m▄🬹🬻🬹🬹🬭\u001b[0;38;2;255;255;255;48;2;154;103;89m🬊\u001b[0;38;2;255;255;255;48;2;112;164;178m🬹🬻\u001b[0;38;2;0;0;0;48;2;184;199;111m🬞\u001b[0;38;2;0;0;0;48;2;111;79;37m█\u001b[0;38;2;0;0;0;48;2;0;0;0m \u001b[14;76H \u001b[0;38;2;0;0;0;48;2;184;199;111m▙\u001b[0;38;2;112;164;178;48;2;0;0;0m🬬\u001b[0;38;2;112;164;178;48;2;255;255;255m🬨\u001b[14;89H\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;108;94;181;48;2;112;164;178m▜\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[15;11H \u001b[15;14H\u001b[0;38;2;112;164;178;48;2;108;94;181m🬷\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[15;32H\u001b[0;38;2;112;164;178;48;2;255;255;255m🬎\u001b[15;35H\u001b[0;38;2;255;255;255;48;2;112;164;178m▐\u001b[0;38;2;255;255;255;48;2;184;199;111m🬕\u001b[0;38;2;0;0;0;48;2;184;199;111m🬩\u001b[0;38;2;0;0;0;48;2;111;79;37m🬻\u001b[0;38;2;0;0;0;48;2;0;0;0m \u001b[15;45H \u001b[0;38;2;0;0;0;48;2;104;55;43m█\u001b[0;38;2;0;0;0;48;2;184;199;111m🬹\u001b[0;38;2;255;255;255;48;2;111;79;37m🬬\u001b[0;38;2;0;0;0;48;2;184;199;111m🬷\u001b[0;38;2;0;0;0;48;2;0;0;0m \u001b[15;77H\u001b[0;38;2;0;0;0;48;2;184;199;111m▌\u001b[0;38;2;255;255;255;48;2;112;164;178mf\u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[15;89H\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;108;94;181;48;2;112;164;178m▐\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[16;11H \u001b[0;38;2;108;94;181;48;2;112;164;178m▛\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[16;23H\u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[16;30H██\u001b[0;38;2;255;255;255;48;2;112;164;178m🬷\u001b[0;38;2;255;255;255;48;2;184;199;111m▛\u001b[0;38;2;0;0;0;48;2;184;199;111m🬭\u001b[0;38;2;255;255;255;48;2;0;0;0m🬎\u001b[0;38;2;0;0;0;48;2;184;199;111m▐\u001b[0;38;2;0;0;0;48;2;0;0;0m \u001b[16;48H\u001b[0;38;2;0;0;0;48;2;184;199;111m▙\u001b[0;38;2;0;0;0;48;2;104;55;43m█\u001b[16;76H\u001b[0;38;2;0;0;0;48;2;112;164;178m▛\u001b[0;38;2;255;255;255;48;2;112;164;178m`\u001b[16;89H\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;108;94;181m▌\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[17;11H \u001b[0;38;2;112;164;178;48;2;108;94;181m▐\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[17;20H\u001b[0;38;2;112;164;178;48;2;255;255;255m██🬴\u001b[0;38;2;255;255;255;48;2;112;164;178m🬮\u001b[0;38;2;112;164;178;48;2;255;255;255m🬰🬴🬒🬰🬰🬰\u001b[0;38;2;255;255;255;48;2;184;199;111m🬴\u001b[0;38;2;255;255;255;48;2;112;164;178m█\u001b[0;38;2;255;255;255;48;2;184;199;111m🬐\u001b[0;38;2;0;0;0;48;2;184;199;111m🬫\u001b[0;38;2;0;0;0;48;2;0;0;0m \u001b[0;38;2;0;0;0;48;2;104;55;43m🬻\u001b[0;38;2;0;0;0;48;2;0;0;0m \u001b[17;49H \u001b[17;74H\u001b[0;38;2;0;0;0;48;2;67;57;0m🬴\u001b[0;38;2;0;0;0;48;2;112;164;178m🬐\u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[17;89H \u001b[0;38;2;112;164;178;48;2;108;94;181m▌\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[18;11H \u001b[0;38;2;108;94;181;48;2;112;164;178m🬲\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[18;22H \u001b[18;24H \u001b[0;38;2;255;255;255;48;2;112;164;178m'\u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[0;38;2;255;255;255;48;2;112;164;178m🬨\u001b[0;38;2;255;255;255;48;2;111;79;37m▙\u001b[0;38;2;0;0;0;48;2;184;199;111m🬂\u001b[0;38;2;255;255;255;48;2;0;0;0m🬹\u001b[0;38;2;0;0;0;48;2;184;199;111m▐\u001b[0;38;2;0;0;0;48;2;0;0;0m \u001b[18;48H\u001b[0;38;2;0;0;0;48;2;154;103;89m▛\u001b[0;38;2;0;0;0;48;2;104;55;43m█\u001b[18;74H\u001b[0;38;2;0;0;0;48;2;0;0;0m \u001b[0;38;2;0;0;0;48;2;112;164;178m🬹\u001b[0;38;2;112;164;178;48;2;0;0;0m🬬\u001b[18;89H\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;108;94;181m▌\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[19;11H \u001b[0;38;2;108;94;181;48;2;112;164;178m█\u001b[0;38;2;112;164;178;48;2;108;94;181m🬨\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[19;32H\u001b[0;38;2;112;164;178;48;2;255;255;255m▄█\u001b[0;38;2;255;255;255;48;2;112;164;178m~🬨\u001b[0;38;2;255;255;255;48;2;184;199;111m▌\u001b[0;38;2;0;0;0;48;2;184;199;111m🬎\u001b[0;38;2;0;0;0;48;2;111;79;37m🬬\u001b[19;46H\u001b[0;38;2;0;0;0;48;2;104;55;43m█\u001b[0;38;2;0;0;0;48;2;184;199;111m🬝\u001b[0;38;2;255;255;255;48;2;111;79;37m🬻\u001b[0;38;2;0;0;0;48;2;184;199;111m🬨\u001b[19;76H\u001b[0;38;2;0;0;0;48;2;0;0;0m \u001b[0;38;2;0;0;0;48;2;111;79;37mr\u001b[0;38;2;112;164;178;48;2;255;255;255m▐\u001b[19;89H\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;108;94;181;48;2;112;164;178m▐\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[20;11H \u001b[20;14H\u001b[0;38;2;108;94;181;48;2;112;164;178m█\u001b[0;38;2;112;164;178;48;2;108;94;181m🬊\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[20;35H\u001b[0;38;2;112;164;178;48;2;255;255;255m🬺🬺\u001b[0;38;2;184;199;111;48;2;255;255;255m╱\u001b[0;38;2;0;0;0;48;2;184;199;111m🬦\u001b[0;38;2;0;0;0;48;2;111;79;37m█\u001b[0;38;2;0;0;0;48;2;184;199;111m▀🬎🬬🬎🬬▀\u001b[0;38;2;255;255;255;48;2;104;55;43m🬵\u001b[0;38;2;255;255;255;48;2;184;199;111m🬻\u001b[0;38;2;255;255;255;48;2;112;164;178m🬬\u001b[0;38;2;0;0;0;48;2;184;199;111m🬁\u001b[0;38;2;0;0;0;48;2;111;79;37m█\u001b[20;77H\u001b[0;38;2;0;0;0;48;2;184;199;111m▛\u001b[0;38;2;255;255;255;48;2;184;199;111m🬵\u001b[0;38;2;112;164;178;48;2;255;255;255m🬷\u001b[20;89H\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;108;94;181;48;2;112;164;178m🬷\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[21;11H \u001b[21;16H\u001b[0;38;2;108;94;181;48;2;112;164;178m▙\u001b[0;38;2;112;164;178;48;2;108;94;181m🬬\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[21;35H\u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[0;38;2;255;255;255;48;2;112;164;178m🬹🬎\u001b[0;38;2;255;255;255;48;2;154;103;89m🬺\u001b[0;38;2;255;255;255;48;2;112;164;178mA\u001b[0;38;2;112;164;178;48;2;255;255;255m▄\u001b[0;38;2;255;255;255;48;2;112;164;178m▜\u001b[0;38;2;255;255;255;48;2;184;199;111m▄▟\u001b[0;38;2;255;255;255;48;2;112;164;178m🬎\u001b[0;38;2;112;164;178;48;2;255;255;255m🬻█\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[0;38;2;255;255;255;48;2;184;199;111m▙\u001b[0;38;2;255;255;255;48;2;111;79;37m🬃\u001b[0;38;2;0;0;0;48;2;67;57;0m█\u001b[21;77H\u001b[0;38;2;0;0;0;48;2;184;199;111m▙\u001b[0;38;2;112;164;178;48;2;0;0;0m▜\u001b[0;38;2;112;164;178;48;2;255;255;255m🬎\u001b[21;89H\u001b[0;38;2;112;164;178;48;2;108;94;181m█\u001b[0;38;2;108;94;181;48;2;112;164;178m█\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[22;11H \u001b[22;17H\u001b[0;38;2;108;94;181;48;2;112;164;178m█\u001b[0;38;2;112;164;178;48;2;108;94;181m🬊█\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[22;35H\u001b[0;38;2;112;164;178;48;2;255;255;255m🬛🬷\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[22;41H\u001b[0;38;2;112;164;178;48;2;255;255;255m🬺🬻\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[22;49H\u001b[0;38;2;255;255;255;48;2;112;164;178m`\u001b[0;38;2;255;255;255;48;2;184;199;111m🬹\u001b[0;38;2;0;0;0;48;2;184;199;111m🬠\u001b[0;38;2;0;0;0;48;2;67;57;0m🬸\u001b[22;76H\u001b[0;38;2;0;0;0;48;2;154;103;89m🬄\u001b[0;38;2;255;255;255;48;2;112;164;178mp\u001b[0;38;2;112;164;178;48;2;255;255;255m🬺\u001b[0;38;2;255;255;255;48;2;112;164;178m*\u001b[22;88H\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;108;94;181m🬕\u001b[22;91H\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[23;11H \u001b[23;19H\u001b[0;38;2;108;94;181;48;2;112;164;178m🬺\u001b[0;38;2;112;164;178;48;2;108;94;181m🬊█\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[23;35H\u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[23;50H\u001b[0;38;2;112;164;178;48;2;255;255;255m🬭\u001b[0;38;2;184;199;111;48;2;154;103;89m🬺\u001b[0;38;2;0;0;0;48;2;184;199;111m~\u001b[0;38;2;184;199;111;48;2;104;55;43m🬱\u001b[0;38;2;0;0;0;48;2;154;103;89m🬊\u001b[23;74H\u001b[0;38;2;0;0;0;48;2;111;79;37m█\u001b[0;38;2;0;0;0;48;2;184;199;111m🬰\u001b[0;38;2;255;255;255;48;2;184;199;111m4\u001b[0;38;2;112;164;178;48;2;255;255;255m🬬\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[23;88H \u001b[0;38;2;108;94;181;48;2;112;164;178m🬻\u001b[23;91H\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[24;11H \u001b[24;21H\u001b[0;38;2;108;94;181;48;2;112;164;178m🬺\u001b[0;38;2;112;164;178;48;2;108;94;181m▀█\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[24;51H \u001b[0;38;2;255;255;255;48;2;184;199;111m🬴\u001b[0;38;2;0;0;0;48;2;154;103;89m🬦\u001b[0;38;2;0;0;0;48;2;104;55;43m🬻\u001b[0;38;2;0;0;0;48;2;184;199;111m🬝\u001b[24;72H\u001b[0;38;2;0;0;0;48;2;111;79;37m▛\u001b[0;38;2;255;255;255;48;2;67;57;0m🬵\u001b[0;38;2;0;0;0;48;2;111;79;37m▜\u001b[0;38;2;184;199;111;48;2;0;0;0m_\u001b[0;38;2;255;255;255;48;2;154;103;89m🬉\u001b[0;38;2;255;255;255;48;2;112;164;178m🬲\u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[24;87H\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;108;94;181m🬕\u001b[24;91H\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[25;11H \u001b[25;23H\u001b[0;38;2;108;94;181;48;2;112;164;178m🬺🬱\u001b[0;38;2;112;164;178;48;2;108;94;181m🬬\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[25;52H\u001b[0;38;2;112;164;178;48;2;255;255;255m▌\u001b[0;38;2;255;255;255;48;2;184;199;111m▛\u001b[0;38;2;184;199;111;48;2;0;0;0m🬺\u001b[0;38;2;0;0;0;48;2;184;199;111m🬂\u001b[0;38;2;255;255;255;48;2;184;199;111m▟\u001b[0;38;2;255;255;255;48;2;154;103;89m🬺\u001b[0;38;2;0;0;0;48;2;154;103;89m▝\u001b[0;38;2;0;0;0;48;2;184;199;111m▀\u001b[0;38;2;0;0;0;48;2;154;103;89m🬊🬎\u001b[0;38;2;0;0;0;48;2;184;199;111m🬎\u001b[0;38;2;111;79;37;48;2;0;0;0m_\u001b[0;38;2;0;0;0;48;2;111;79;37m█\u001b[0;38;2;0;0;0;48;2;104;55;43m🬝\u001b[0;38;2;184;199;111;48;2;0;0;0m_\u001b[0;38;2;255;255;255;48;2;0;0;0m_\u001b[0;38;2;0;0;0;48;2;184;199;111m🬎🬎▀\u001b[0;38;2;184;199;111;48;2;0;0;0m▟\u001b[0;38;2;255;255;255;48;2;112;164;178m▌\u001b[25;74H?\u001b[0;38;2;112;164;178;48;2;255;255;255m🬹\u001b[0;38;2;255;255;255;48;2;112;164;178m🬨🬕\u001b[0;38;2;112;164;178;48;2;255;255;255m🬻\u001b[25;86H\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;108;94;181m🬝\u001b[0;38;2;108;94;181;48;2;112;164;178m🬻\u001b[25;91H\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[26;11H \u001b[26;25H\u001b[0;38;2;108;94;181;48;2;112;164;178m█🬹\u001b[0;38;2;112;164;178;48;2;108;94;181m🬎\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[26;52H\u001b[0;38;2;112;164;178;48;2;255;255;255m🬺\u001b[0;38;2;255;255;255;48;2;112;164;178m~\u001b[26;55H\u001b[0;38;2;112;164;178;48;2;255;255;255m🬻\u001b[26;57H█🬹\u001b[0;38;2;255;255;255;48;2;112;164;178m~\u001b[0;38;2;112;164;178;48;2;255;255;255m🬹\u001b[0;38;2;255;255;255;48;2;112;164;178m█\u001b[0;38;2;0;0;0;48;2;184;199;111m🬦\u001b[0;38;2;0;0;0;48;2;0;0;0m \u001b[26;65H \u001b[0;38;2;0;0;0;48;2;154;103;89m🬺\u001b[0;38;2;0;0;0;48;2;184;199;111m🬓\u001b[26;69H\u001b[0;38;2;255;255;255;48;2;112;164;178m\"\u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[0;38;2;255;255;255;48;2;112;164;178m\"\u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[26;76H█\u001b[0;38;2;255;255;255;48;2;112;164;178m~\u001b[26;86H\u001b[0;38;2;112;164;178;48;2;108;94;181m█\u001b[0;38;2;108;94;181;48;2;112;164;178m🬻\u001b[26;91H\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[27;11H \u001b[27;28H\u001b[0;38;2;108;94;181;48;2;112;164;178m█🬹\u001b[0;38;2;112;164;178;48;2;108;94;181m🬬\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[27;60H\u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[0;38;2;255;255;255;48;2;184;199;111m🬛\u001b[0;38;2;0;0;0;48;2;154;103;89m🬉\u001b[0;38;2;0;0;0;48;2;67;57;0m🬬\u001b[27;66H\u001b[0;38;2;0;0;0;48;2;104;55;43m🬝\u001b[0;38;2;184;199;111;48;2;0;0;0m🬷\u001b[0;38;2;255;255;255;48;2;184;199;111m🬫\u001b[0;38;2;112;164;178;48;2;154;210;132m█\u001b[27;84H\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;108;94;181m🬝\u001b[0;38;2;108;94;181;48;2;112;164;178m🬻\u001b[27;91H\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[28;11H \u001b[28;31H\u001b[0;38;2;108;94;181;48;2;112;164;178m🬺▄\u001b[0;38;2;112;164;178;48;2;108;94;181m🬎\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[28;61H\u001b[0;38;2;112;164;178;48;2;255;255;255m🬱\u001b[0;38;2;255;255;255;48;2;112;164;178m🬎\u001b[0;38;2;255;255;255;48;2;184;199;111m🬹\u001b[0;38;2;0;0;0;48;2;184;199;111m🬉\u001b[0;38;2;0;0;0;48;2;154;103;89m🬆\u001b[0;38;2;184;199;111;48;2;255;255;255m5\u001b[0;38;2;112;164;178;48;2;255;255;255m🬹▄\u001b[28;83H\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;108;94;181m🬆\u001b[0;38;2;108;94;181;48;2;112;164;178m█\u001b[28;91H\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[29;11H \u001b[29;34H\u001b[0;38;2;108;94;181;48;2;112;164;178m█🬹\u001b[0;38;2;112;164;178;48;2;108;94;181m🬎🬬\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[29;66H\u001b[0;38;2;255;255;255;48;2;112;164;178m🬣\u001b[0;38;2;112;164;178;48;2;255;255;255m🬬\u001b[29;81H\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;108;94;181m🬝\u001b[0;38;2;108;94;181;48;2;112;164;178m🬻\u001b[29;91H\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[30;11H \u001b[30;37H\u001b[0;38;2;108;94;181;48;2;112;164;178m█🬺▄\u001b[0;38;2;112;164;178;48;2;108;94;181m🬎█\u001b[30;63H\u001b[0;38;2;255;255;255;48;2;112;164;178mj▀\u001b[30;66H\u001b[0;38;2;112;164;178;48;2;255;255;255m🬺🬹\u001b[30;79H\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;108;94;181m🬝\u001b[0;38;2;108;94;181;48;2;112;164;178m🬹█\u001b[30;91H\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0m\u001b[2;36H\u001b[?25h"] +[4.24, "o", "\u001b[0m\u001b[2;37H\u001b[?25h"] +[4.33, "o", "\u001b[2;37H\u001b[0;38;2;245;247;238;48;2;60;97;74ms\u001b[0m\u001b[2;38H\u001b[?25h"] +[4.42, "o", "\u001b[2;38H\u001b[0;38;2;245;247;238;48;2;60;97;74me\u001b[0m\u001b[2;39H\u001b[?25h"] +[4.51, "o", "\u001b[2;39H\u001b[0;38;2;245;247;238;48;2;60;97;74ma\u001b[0m\u001b[2;40H\u001b[?25h"] +[4.6, "o", "\u001b[2;40H\u001b[0;38;2;245;247;238;48;2;60;97;74mh\u001b[0m\u001b[2;41H\u001b[?25h"] +[4.69, "o", "\u001b[2;41H\u001b[0;38;2;245;247;238;48;2;60;97;74mo\u001b[0m\u001b[2;42H\u001b[?25h"] +[4.78, "o", "\u001b[2;42H\u001b[0;38;2;245;247;238;48;2;60;97;74mr\u001b[0m\u001b[2;43H\u001b[?25h"] +[4.87, "o", "\u001b[2;43H\u001b[0;38;2;245;247;238;48;2;60;97;74ms\u001b[0m\u001b[2;44H\u001b[?25h"] +[4.96, "o", "\u001b[2;44H\u001b[0;38;2;245;247;238;48;2;60;97;74me\u001b[0m\u001b[2;45H\u001b[?25h"] +[5.05, "o", "\u001b[2;45H\u001b[0;38;2;245;247;238;48;2;60;97;74m.\u001b[0m\u001b[2;46H\u001b[?25h"] +[5.14, "o", "\u001b[2;46H\u001b[0;38;2;245;247;238;48;2;60;97;74mp\u001b[0m\u001b[2;47H\u001b[?25h"] +[5.23, "o", "\u001b[2;47H\u001b[0;38;2;245;247;238;48;2;60;97;74mn\u001b[0m\u001b[2;48H\u001b[?25h"] +[5.32, "o", "\u001b[2;48H\u001b[0;38;2;245;247;238;48;2;60;97;74mg\u001b[0m\u001b[2;49H\u001b[?25h"] +[6.02, "o", "\u001b[2;37H\u001b[0;38;2;245;247;238;48;2;107;120;88mseahorse.png\u001b[0m\u001b[2;49H\u001b[?25h"] +[6.52, "o", "\u001b[2;37H\u001b[0;38;2;190;207;196;48;2;49;71;56mseahorse.png\u001b[3;1H\u001b[0;38;2;255;255;255;48;2;73;102;86m \u001b[0;39;48;2;29;40;36m \u001b[0;38;2;178;195;184;48;2;29;40;36mimg petscii:on palette:commodore ascii:on /tmp/cast/art/\u001b[0;38;2;211;176;217;48;2;29;40;36mmandelbrot.png\u001b[0;38;2;178;195;184;48;2;29;40;36m Tty Collapse Del\u001b[0;39;48;2;29;40;36m \u001b[4;11H\u001b[0;39;48;2;13;20;16m \u001b[4;38H\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;112;164;178m█🬎\u001b[0;38;2;112;164;178;48;2;108;94;181m🬹█\u001b[4;57H\u001b[0;38;2;112;164;178;48;2;255;255;255m🬕▜█\u001b[4;63H\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;108;94;181m🬺\u001b[0;38;2;108;94;181;48;2;112;164;178m🬊\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;39;48;2;13;20;16m \u001b[5;11H \u001b[5;34H\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;112;164;178m█🬆\u001b[0;38;2;112;164;178;48;2;108;94;181m🬻█\u001b[5;55H\u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[0;38;2;255;255;255;48;2;111;79;37m▛\u001b[0;38;2;0;0;0;48;2;184;199;111m▄\u001b[0;38;2;0;0;0;48;2;255;255;255m▙\u001b[0;38;2;255;255;255;48;2;112;164;178m┼\u001b[5;64H\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;108;94;181m▙\u001b[0;38;2;108;94;181;48;2;112;164;178m█\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;39;48;2;13;20;16m \u001b[6;11H \u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;112;164;178m🬝\u001b[0;38;2;112;164;178;48;2;108;94;181m🬹█\u001b[6;51H\u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[0;38;2;255;255;255;48;2;112;164;178m🬚\u001b[0;38;2;0;0;0;48;2;112;164;178m_\u001b[0;38;2;112;164;178;48;2;184;199;111m🬥\u001b[0;38;2;112;164;178;48;2;0;0;0m🬎\u001b[0;38;2;0;0;0;48;2;112;164;178m▄\u001b[0;38;2;0;0;0;48;2;67;57;0m🬸\u001b[0;38;2;0;0;0;48;2;68;68;68m🬴\u001b[0;38;2;0;0;0;48;2;112;164;178m▄\u001b[0;38;2;112;164;178;48;2;0;0;0m🬎\u001b[0;38;2;112;164;178;48;2;184;199;111m🬨🬝\u001b[0;38;2;112;164;178;48;2;255;255;255m🬆🬬\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;108;94;181m🬺\u001b[0;38;2;108;94;181;48;2;112;164;178m█\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;39;48;2;13;20;16m \u001b[7;11H \u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;112;164;178m🬎\u001b[0;38;2;112;164;178;48;2;108;94;181m🬻\u001b[7;50H\u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[0;38;2;112;164;178;48;2;0;0;0m🬝\u001b[0;38;2;0;0;0;48;2;112;164;178m▗\u001b[0;38;2;0;0;0;48;2;184;199;111m█\u001b[0;38;2;0;0;0;48;2;67;57;0m█\u001b[0;38;2;0;0;0;48;2;0;0;0m \u001b[0;38;2;0;0;0;48;2;67;57;0m🬺\u001b[0;38;2;0;0;0;48;2;154;103;89m🬻\u001b[0;38;2;0;0;0;48;2;184;199;111m▘\u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;108;94;181m🬲\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;39;48;2;13;20;16m \u001b[8;11H \u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;112;164;178m🬝\u001b[0;38;2;112;164;178;48;2;108;94;181m🬻\u001b[8;44H\u001b[0;38;2;112;164;178;48;2;255;255;255m▞\u001b[0;38;2;0;0;0;48;2;112;164;178m_\u001b[0;38;2;112;164;178;48;2;255;255;255m🬥\u001b[0;38;2;112;164;178;48;2;154;103;89m🬬\u001b[0;38;2;112;164;178;48;2;255;255;255m🬙\u001b[0;38;2;255;255;255;48;2;112;164;178m_\u001b[0;38;2;112;164;178;48;2;184;199;111m🬕\u001b[0;38;2;0;0;0;48;2;184;199;111m🬻\u001b[0;38;2;0;0;0;48;2;0;0;0m \u001b[0;38;2;0;0;0;48;2;111;79;37m🬺\u001b[0;38;2;112;164;178;48;2;0;0;0m🬸\u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;108;94;181m█\u001b[0;38;2;108;94;181;48;2;112;164;178m█\u001b[0;39;48;2;13;20;16m \u001b[9;11H \u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;112;164;178m▛\u001b[0;38;2;112;164;178;48;2;108;94;181m█\u001b[9;42H\u001b[0;38;2;112;164;178;48;2;255;255;255m🬎🬎\u001b[0;38;2;0;0;0;48;2;112;164;178m▗\u001b[0;38;2;0;0;0;48;2;111;79;37m🬻█\u001b[0;38;2;0;0;0;48;2;0;0;0m \u001b[0;38;2;0;0;0;48;2;104;55;43m🬺\u001b[0;38;2;0;0;0;48;2;184;199;111m🬱\u001b[0;38;2;0;0;0;48;2;255;255;255m🬷\u001b[0;38;2;0;0;0;48;2;0;0;0m \u001b[0;38;2;0;0;0;48;2;67;57;0m🬝\u001b[0;38;2;112;164;178;48;2;0;0;0m🬻\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;108;94;181;48;2;112;164;178m▜\u001b[0;39;48;2;13;20;16m \u001b[10;11H \u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;112;164;178;48;2;108;94;181m█\u001b[10;36H\u001b[0;38;2;112;164;178;48;2;255;255;255m███\u001b[0;38;2;255;255;255;48;2;112;164;178m──\u001b[0;38;2;112;164;178;48;2;255;255;255m🬰\u001b[0;38;2;184;199;111;48;2;0;0;0m🬴\u001b[0;38;2;0;0;0;48;2;67;57;0mm\u001b[0;38;2;0;0;0;48;2;111;79;37m🬫\u001b[0;38;2;0;0;0;48;2;0;0;0m \u001b[0;38;2;67;57;0;48;2;0;0;0m\"\u001b[0;38;2;0;0;0;48;2;0;0;0m \u001b[10;62H\u001b[0;38;2;0;0;0;48;2;68;68;68m🬴\u001b[0;38;2;112;164;178;48;2;0;0;0m🬫\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;108;94;181;48;2;112;164;178m▐\u001b[0;39;48;2;13;20;16m \u001b[11;11H \u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;112;164;178m▙\u001b[0;38;2;112;164;178;48;2;108;94;181m█\u001b[11;42H\u001b[0;38;2;112;164;178;48;2;255;255;255m🬹🬹\u001b[0;38;2;0;0;0;48;2;184;199;111m▝🬬\u001b[0;38;2;0;0;0;48;2;67;57;0m█\u001b[0;38;2;0;0;0;48;2;0;0;0m \u001b[0;38;2;0;0;0;48;2;67;57;0m🬝\u001b[0;38;2;0;0;0;48;2;184;199;111m🬆\u001b[0;38;2;0;0;0;48;2;149;149;149m▐\u001b[0;38;2;0;0;0;48;2;0;0;0m \u001b[11;63H\u001b[0;38;2;0;0;0;48;2;67;57;0m🬺\u001b[0;38;2;112;164;178;48;2;0;0;0m🬬\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;108;94;181;48;2;112;164;178m🬷\u001b[0;39;48;2;13;20;16m \u001b[12;11H \u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;112;164;178m🬺\u001b[0;38;2;112;164;178;48;2;108;94;181m🬬\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[12;41H \u001b[0;38;2;112;164;178;48;2;255;255;255m█▚\u001b[0;38;2;255;255;255;48;2;112;164;178m─*\u001b[0;38;2;0;0;0;48;2;112;164;178m~\u001b[0;38;2;112;164;178;48;2;255;255;255m🬺\u001b[0;38;2;255;255;255;48;2;112;164;178m~\u001b[0;38;2;112;164;178;48;2;154;103;89m🬺\u001b[0;38;2;0;0;0;48;2;255;255;255m🬬\u001b[0;38;2;0;0;0;48;2;0;0;0m \u001b[12;63H\u001b[0;38;2;0;0;0;48;2;184;199;111m🬝\u001b[0;38;2;112;164;178;48;2;0;0;0m🬸\u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;108;94;181m█\u001b[0;38;2;108;94;181;48;2;112;164;178m█\u001b[0;39;48;2;13;20;16m \u001b[13;11H \u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;112;164;178m█🬹\u001b[0;38;2;112;164;178;48;2;108;94;181m🬬\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;255;255;255m██\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[13;49H \u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[0;38;2;112;164;178;48;2;0;0;0m🬺\u001b[0;38;2;0;0;0;48;2;112;164;178m🬂\u001b[0;38;2;0;0;0;48;2;184;199;111m█\u001b[0;38;2;0;0;0;48;2;67;57;0m█\u001b[13;61H🬝\u001b[0;38;2;0;0;0;48;2;184;199;111m🬬\u001b[0;38;2;0;0;0;48;2;112;164;178m▖\u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;108;94;181m🬕\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;39;48;2;13;20;16m \u001b[14;11H \u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;112;164;178m🬺\u001b[0;38;2;112;164;178;48;2;108;94;181m🬎\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[0;38;2;255;255;255;48;2;112;164;178m🬌\u001b[0;38;2;0;0;0;48;2;112;164;178m~\u001b[0;38;2;255;255;255;48;2;112;164;178m\\\u001b[0;38;2;0;0;0;48;2;112;164;178m🬂▀\u001b[0;38;2;0;0;0;48;2;67;57;0m🬸\u001b[0;38;2;0;0;0;48;2;111;79;37m🬴\u001b[0;38;2;0;0;0;48;2;112;164;178m▀\u001b[0;38;2;112;164;178;48;2;0;0;0m🬹\u001b[0;38;2;112;164;178;48;2;184;199;111m🬸🬺\u001b[0;38;2;112;164;178;48;2;255;255;255m🬹🬻\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;108;94;181m🬝\u001b[0;38;2;108;94;181;48;2;112;164;178m█\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;39;48;2;13;20;16m \u001b[15;11H \u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;112;164;178m🬺▄\u001b[0;38;2;112;164;178;48;2;108;94;181m🬎\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[0;38;2;255;255;255;48;2;184;199;111m🬲\u001b[0;38;2;0;0;0;48;2;184;199;111m▀▛\u001b[0;38;2;255;255;255;48;2;112;164;178m1\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;108;94;181m▛\u001b[0;38;2;108;94;181;48;2;112;164;178m█\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;39;48;2;13;20;16m \u001b[16;11H \u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;112;164;178m█🬹\u001b[0;38;2;112;164;178;48;2;108;94;181m🬎\u001b[0;38;2;108;94;181;48;2;112;164;178m_\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;255;255;255m🬲▟█\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;108;94;181m🬝\u001b[0;38;2;108;94;181;48;2;112;164;178m🬹█\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;39;48;2;13;20;16m \u001b[17;1H\u001b[0;38;2;0;0;0;48;2;173;211;138m \u001b[0;39;48;2;49;71;56m \u001b[0;38;2;190;207;196;48;2;49;71;56mimg petscii:off palette:commodore ascii:on /tmp/cast/art/\u001b[0;38;2;223;188;229;48;2;49;71;56mseahorse.png\u001b[0;38;2;190;207;196;48;2;49;71;56m Tty Collapse Del\u001b[0;39;48;2;49;71;56m \u001b[18;11H\u001b[0;39;48;2;13;20;16m \u001b[0;38;2;108;94;181;48;2;112;164;178m▗\u001b[0;38;2;112;164;178;48;2;53;40;121m🬎\u001b[0;38;2;112;164;178;48;2;149;149;149m🬐\u001b[0;38;2;154;103;89;48;2;112;164;178m▝🬌\u001b[0;38;2;154;103;89;48;2;149;149;149mv\u001b[0;38;2;108;94;181;48;2;53;40;121m▛\u001b[0;38;2;53;40;121;48;2;149;149;149m🬹\u001b[0;38;2;53;40;121;48;2;112;164;178m🬹\u001b[0;38;2;53;40;121;48;2;108;94;181m🬱\u001b[0;38;2;53;40;121;48;2;149;149;149m🬭\u001b[0;38;2;53;40;121;48;2;112;164;178m▟\u001b[0;38;2;53;40;121;48;2;53;40;121m \u001b[0;38;2;53;40;121;48;2;108;94;181m█🬹█\u001b[0;38;2;53;40;121;48;2;53;40;121m \u001b[0;38;2;53;40;121;48;2;108;94;181m█🬹▄\u001b[0;38;2;108;94;181;48;2;53;40;121m🬬\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;39;48;2;13;20;16m \u001b[19;11H \u001b[0;38;2;53;40;121;48;2;112;164;178m🬷\u001b[0;38;2;53;40;121;48;2;53;40;121m \u001b[0;38;2;53;40;121;48;2;108;94;181m█\u001b[0;38;2;53;40;121;48;2;53;40;121m \u001b[0;38;2;53;40;121;48;2;112;164;178m🬺▄\u001b[0;38;2;53;40;121;48;2;108;108;108m█\u001b[0;38;2;53;40;121;48;2;53;40;121m \u001b[0;38;2;108;94;181;48;2;53;40;121m🬨\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;39;48;2;13;20;16m \u001b[20;11H \u001b[0;38;2;53;40;121;48;2;53;40;121m \u001b[0;38;2;53;40;121;48;2;108;94;181m▌\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;39;48;2;13;20;16m \u001b[21;11H \u001b[0;38;2;53;40;121;48;2;53;40;121m \u001b[0;38;2;53;40;121;48;2;108;94;181m█🬆\u001b[0;38;2;108;94;181;48;2;53;40;121m█\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;39;48;2;13;20;16m \u001b[22;11H \u001b[0;38;2;53;40;121;48;2;53;40;121m \u001b[0;38;2;53;40;121;48;2;108;94;181m█🬆\u001b[0;38;2;108;94;181;48;2;149;149;149m🬬\u001b[0;38;2;108;94;181;48;2;53;40;121m🬹█\u001b[0;38;2;108;94;181;48;2;149;149;149m🬝\u001b[0;38;2;108;94;181;48;2;112;164;178m█\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;39;48;2;13;20;16m \u001b[23;11H \u001b[0;38;2;53;40;121;48;2;53;40;121m \u001b[0;38;2;53;40;121;48;2;108;94;181m█🬄\u001b[0;38;2;108;94;181;48;2;149;149;149m🬡▀\u001b[0;38;2;108;94;181;48;2;112;164;178m🬂\u001b[0;38;2;112;164;178;48;2;149;149;149m▌\u001b[0;38;2;112;164;178;48;2;154;103;89mT\u001b[0;38;2;154;103;89;48;2;112;164;178m🬱\u001b[0;38;2;112;164;178;48;2;149;149;149m🬎\u001b[0;38;2;149;149;149;48;2;108;94;181m🬎\u001b[0;38;2;112;164;178;48;2;154;103;89m🬊\u001b[0;38;2;255;255;255;48;2;108;94;181m_\u001b[0;38;2;184;199;111;48;2;108;94;181m,\u001b[0;38;2;108;94;181;48;2;112;164;178m🬊\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;39;48;2;13;20;16m \u001b[24;11H \u001b[0;38;2;53;40;121;48;2;53;40;121m \u001b[0;38;2;53;40;121;48;2;108;94;181m█\u001b[0;38;2;149;149;149;48;2;154;103;89m▛\u001b[0;38;2;149;149;149;48;2;108;94;181my\u001b[0;38;2;154;103;89;48;2;112;164;178m▄\u001b[0;38;2;112;164;178;48;2;184;199;111m🬎\u001b[0;38;2;184;199;111;48;2;149;149;149m▗\u001b[0;38;2;154;103;89;48;2;184;199;111m🬬\u001b[0;38;2;184;199;111;48;2;108;94;181m🬎\u001b[0;38;2;255;255;255;48;2;184;199;111m🬭\u001b[0;38;2;255;255;255;48;2;154;103;89m_\u001b[0;38;2;184;199;111;48;2;112;164;178m🬊\u001b[0;38;2;184;199;111;48;2;255;255;255m🬬\u001b[0;38;2;108;108;108;48;2;154;103;89m▄\u001b[0;38;2;184;199;111;48;2;154;103;89m▌🬕\u001b[0;38;2;108;94;181;48;2;154;103;89m🬋\u001b[0;38;2;149;149;149;48;2;108;108;108m🬨\u001b[0;38;2;108;94;181;48;2;112;164;178m🬎\u001b[0;38;2;112;164;178;48;2;108;94;181m_\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;39;48;2;13;20;16m \u001b[25;11H \u001b[0;38;2;53;40;121;48;2;53;40;121m \u001b[0;38;2;53;40;121;48;2;149;149;149m█▀\u001b[0;38;2;53;40;121;48;2;112;164;178m🬊\u001b[0;38;2;184;199;111;48;2;108;94;181m🬭\u001b[0;38;2;184;199;111;48;2;112;164;178m🬓\u001b[0;38;2;112;164;178;48;2;149;149;149m🬺\u001b[0;38;2;184;199;111;48;2;108;108;108m▄\u001b[0;38;2;184;199;111;48;2;154;103;89m🬔\u001b[0;38;2;184;199;111;48;2;108;108;108m🬡\u001b[0;38;2;255;255;255;48;2;149;149;149m🬇\u001b[0;38;2;255;255;255;48;2;112;164;178mm\u001b[0;38;2;184;199;111;48;2;112;164;178m`\u001b[0;38;2;112;164;178;48;2;255;255;255m▙\u001b[0;38;2;255;255;255;48;2;112;164;178m▀█\u001b[0;38;2;255;255;255;48;2;255;255;255m \u001b[0;38;2;149;149;149;48;2;255;255;255m~\u001b[0;38;2;255;255;255;48;2;154;103;89m█\u001b[0;38;2;255;255;255;48;2;108;108;108m🬱\u001b[0;38;2;184;199;111;48;2;154;103;89m🬔🬅\u001b[0;38;2;112;164;178;48;2;154;103;89m🬡\u001b[0;38;2;108;108;108;48;2;149;149;149mg\u001b[0;38;2;112;164;178;48;2;149;149;149m▟\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;39;48;2;13;20;16m \u001b[26;11H \u001b[0;38;2;53;40;121;48;2;53;40;121m \u001b[0;38;2;53;40;121;48;2;108;94;181m🬝\u001b[0;38;2;184;199;111;48;2;108;94;181m~\u001b[0;38;2;154;103;89;48;2;149;149;149mc\u001b[0;38;2;108;94;181;48;2;154;103;89mM\u001b[0;38;2;184;199;111;48;2;154;103;89m▗🬎\u001b[0;38;2;255;255;255;48;2;154;103;89m🬋\u001b[0;38;2;154;103;89;48;2;112;164;178m~\u001b[0;38;2;112;164;178;48;2;255;255;255m██\u001b[26;52H█\u001b[0;38;2;149;149;149;48;2;255;255;255m_\u001b[0;38;2;255;255;255;48;2;112;164;178m🬎\u001b[0;38;2;255;255;255;48;2;149;149;149m🬬\u001b[0;38;2;255;255;255;48;2;255;255;255m \u001b[0;38;2;255;255;255;48;2;149;149;149m🬲\u001b[0;38;2;184;199;111;48;2;154;103;89m🬖─\u001b[0;38;2;154;103;89;48;2;149;149;149m🬀\u001b[0;38;2;112;164;178;48;2;108;94;181m█\u001b[0;38;2;108;94;181;48;2;112;164;178m🬬\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;39;48;2;13;20;16m \u001b[27;11H \u001b[0;38;2;53;40;121;48;2;53;40;121m \u001b[0;38;2;53;40;121;48;2;112;164;178m█\u001b[0;38;2;149;149;149;48;2;53;40;121m_\u001b[0;38;2;53;40;121;48;2;112;164;178m🬎\u001b[0;38;2;108;94;181;48;2;53;40;121m_\u001b[0;38;2;53;40;121;48;2;112;164;178m🬄\u001b[0;38;2;112;164;178;48;2;149;149;149m🬀🬎▙\u001b[0;38;2;154;103;89;48;2;184;199;111m_\u001b[0;38;2;184;199;111;48;2;154;103;89m🬛\u001b[0;38;2;154;103;89;48;2;149;149;149m▘\u001b[0;38;2;112;164;178;48;2;154;103;89m▙\u001b[0;38;2;112;164;178;48;2;184;199;111m🬻\u001b[27;51H\u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[0;38;2;112;164;178;48;2;154;103;89m🬆\u001b[0;38;2;184;199;111;48;2;154;103;89m▗\u001b[0;38;2;154;103;89;48;2;184;199;111m~\u001b[0;38;2;154;103;89;48;2;149;149;149m🬛\u001b[0;38;2;255;255;255;48;2;184;199;111m█\u001b[0;38;2;255;255;255;48;2;255;255;255m \u001b[0;38;2;255;255;255;48;2;149;149;149m🬴\u001b[0;38;2;184;199;111;48;2;108;108;108m🬮\u001b[0;38;2;184;199;111;48;2;154;103;89m🬏\u001b[0;38;2;154;103;89;48;2;108;94;181m🬯\u001b[0;38;2;112;164;178;48;2;149;149;149m🬭🬸\u001b[0;38;2;108;94;181;48;2;112;164;178m█\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;39;48;2;13;20;16m \u001b[28;11H \u001b[0;38;2;53;40;121;48;2;53;40;121m \u001b[0;38;2;53;40;121;48;2;112;164;178m█\u001b[0;38;2;112;164;178;48;2;53;40;121m🬬\u001b[0;38;2;154;103;89;48;2;149;149;149m🬖\u001b[0;38;2;108;94;181;48;2;154;103;89m▀\u001b[0;38;2;108;94;181;48;2;149;149;149m🬦\u001b[0;38;2;184;199;111;48;2;154;103;89m~🬩\u001b[0;38;2;255;255;255;48;2;184;199;111m.🬇\u001b[0;38;2;154;103;89;48;2;112;164;178m_\u001b[0;38;2;112;164;178;48;2;104;55;43m█\u001b[28;51H\u001b[0;38;2;112;164;178;48;2;184;199;111m█\u001b[0;38;2;154;103;89;48;2;149;149;149m🬅\u001b[0;38;2;184;199;111;48;2;154;103;89m🬉🬬\u001b[0;38;2;255;255;255;48;2;184;199;111m🬬\u001b[0;38;2;255;255;255;48;2;108;94;181m🬝\u001b[0;38;2;255;255;255;48;2;184;199;111m🬆\u001b[0;38;2;154;103;89;48;2;255;255;255m🬻\u001b[0;38;2;154;103;89;48;2;108;94;181m🬝\u001b[0;38;2;184;199;111;48;2;108;108;108m🬉\u001b[0;38;2;112;164;178;48;2;149;149;149m▄\u001b[0;38;2;112;164;178;48;2;184;199;111m█\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;108;94;181;48;2;112;164;178m█\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;39;48;2;13;20;16m \u001b[29;11H \u001b[0;38;2;53;40;121;48;2;53;40;121m \u001b[0;38;2;53;40;121;48;2;149;149;149m🬝\u001b[0;38;2;108;94;181;48;2;184;199;111m🬌\u001b[0;38;2;112;164;178;48;2;149;149;149m🬱\u001b[0;38;2;154;103;89;48;2;112;164;178m🬩\u001b[0;38;2;154;103;89;48;2;184;199;111m🬎\u001b[0;38;2;184;199;111;48;2;154;103;89m🬱\u001b[0;38;2;154;103;89;48;2;149;149;149m🬬\u001b[0;38;2;112;164;178;48;2;108;108;108mf\u001b[0;38;2;112;164;178;48;2;154;103;89m🬲\u001b[0;38;2;112;164;178;48;2;184;199;111m▟\u001b[29;52H\u001b[0;38;2;112;164;178;48;2;149;149;149m🬲\u001b[0;38;2;112;164;178;48;2;108;108;108m🬹\u001b[0;38;2;154;103;89;48;2;149;149;149m🬊\u001b[0;38;2;154;103;89;48;2;112;164;178m🬜\u001b[0;38;2;154;103;89;48;2;184;199;111m🬩\u001b[0;38;2;154;103;89;48;2;108;94;181m🬤\u001b[0;38;2;154;103;89;48;2;255;255;255m🬕\u001b[0;38;2;112;164;178;48;2;154;103;89m▄\u001b[0;38;2;112;164;178;48;2;149;149;149m▄▄\u001b[0;38;2;112;164;178;48;2;154;103;89m█\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;108;94;181;48;2;112;164;178m█\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;39;48;2;13;20;16m \u001b[30;11H \u001b[0;38;2;53;40;121;48;2;53;40;121m \u001b[0;38;2;53;40;121;48;2;108;94;181m█\u001b[0;38;2;149;149;149;48;2;108;94;181m🬩\u001b[0;38;2;184;199;111;48;2;149;149;149m[\u001b[0;38;2;112;164;178;48;2;184;199;111m█\u001b[0;38;2;112;164;178;48;2;149;149;149m█▙\u001b[0;38;2;255;255;255;48;2;149;149;149m'\u001b[0;38;2;184;199;111;48;2;154;103;89m🬎\u001b[0;38;2;154;103;89;48;2;184;199;111m🬜\u001b[0;38;2;112;164;178;48;2;184;199;111m🬻\u001b[30;54H█\u001b[0;38;2;112;164;178;48;2;154;103;89m🬻\u001b[0;38;2;184;199;111;48;2;112;164;178m~\u001b[0;38;2;154;103;89;48;2;112;164;178m~\u001b[0;38;2;112;164;178;48;2;154;103;89m▟\u001b[30;63H\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;108;94;181;48;2;112;164;178m▐\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;39;48;2;13;20;16m \u001b[0m\u001b[2;49H\u001b[?25h"] +[7.52, "o", "\u001b[3;88H\u001b[0;38;2;245;247;238;48;2;91;126;90mDel \u001b[0m\u001b[2;49H\u001b[?25h"] +[7.92, "o", "\u001b[3;1H\u001b[0;38;2;0;0;0;48;2;173;211;138m \u001b[0;39;48;2;49;71;56m \u001b[0;38;2;190;207;196;48;2;49;71;56mimg petscii:off palette:commodore ascii:on /tmp/cast/art/\u001b[0;38;2;223;188;229;48;2;49;71;56mseahorse.png\u001b[0;38;2;190;207;196;48;2;49;71;56m Tty Collapse Del\u001b[0;39;48;2;49;71;56m \u001b[4;11H\u001b[0;38;2;112;164;178;48;2;108;94;181m🬎\u001b[0;38;2;112;164;178;48;2;255;255;255m🬕\u001b[0;38;2;184;199;111;48;2;112;164;178me\u001b[0;38;2;255;255;255;48;2;112;164;178m_.\u001b[0;38;2;184;199;111;48;2;104;55;43m🬺\u001b[0;38;2;104;55;43;48;2;184;199;111m\"\u001b[0;38;2;112;164;178;48;2;184;199;111m~\u001b[0;38;2;154;103;89;48;2;53;40;121m▛\u001b[0;38;2;112;164;178;48;2;108;94;181m🬖\u001b[0;38;2;104;55;43;48;2;108;94;181m🬭\u001b[0;38;2;53;40;121;48;2;154;103;89m,\u001b[0;38;2;108;94;181;48;2;112;164;178m▐🬺\u001b[0;38;2;108;94;181;48;2;184;199;111m🬹▄\u001b[0;38;2;112;164;178;48;2;154;103;89m▟\u001b[0;38;2;108;94;181;48;2;112;164;178m▗\u001b[0;38;2;104;55;43;48;2;108;94;181m]\u001b[0;38;2;184;199;111;48;2;108;94;181m'\u001b[0;38;2;111;79;37;48;2;112;164;178m~\u001b[0;38;2;112;164;178;48;2;154;103;89m🬯\u001b[0;38;2;184;199;111;48;2;154;103;89m▄\u001b[0;38;2;108;94;181;48;2;112;164;178m▐\u001b[0;38;2;53;40;121;48;2;108;94;181m🬵█\u001b[0;38;2;53;40;121;48;2;53;40;121m \u001b[0;38;2;53;40;121;48;2;108;94;181m🬺▄\u001b[0;38;2;112;164;178;48;2;108;94;181m~\u001b[0;38;2;53;40;121;48;2;108;94;181m🬹\u001b[0;38;2;108;94;181;48;2;53;40;121m~\u001b[0;38;2;53;40;121;48;2;53;40;121m \u001b[0;38;2;53;40;121;48;2;108;94;181m█🬹▄\u001b[0;38;2;108;94;181;48;2;53;40;121m🬎\u001b[0;38;2;53;40;121;48;2;108;94;181m_\u001b[0;38;2;108;94;181;48;2;53;40;121m█\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[4;71H \u001b[5;11H\u001b[0;38;2;108;94;181;48;2;255;255;255m▜\u001b[0;38;2;108;94;181;48;2;112;164;178m🬺\u001b[0;38;2;255;255;255;48;2;108;94;181m'\u001b[0;38;2;53;40;121;48;2;112;164;178m🬭\u001b[0;38;2;53;40;121;48;2;154;103;89m🬭\u001b[0;38;2;154;103;89;48;2;112;164;178m@\u001b[0;38;2;112;164;178;48;2;53;40;121m🬎\u001b[0;38;2;53;40;121;48;2;112;164;178m_\u001b[0;38;2;184;199;111;48;2;108;94;181m🬌\u001b[0;38;2;108;94;181;48;2;154;103;89m🬮\u001b[0;38;2;154;103;89;48;2;112;164;178m]\u001b[0;38;2;154;103;89;48;2;184;199;111m*\u001b[0;38;2;184;199;111;48;2;108;94;181m🬲\u001b[0;38;2;53;40;121;48;2;108;94;181m🬷\u001b[0;38;2;53;40;121;48;2;53;40;121m \u001b[0;38;2;53;40;121;48;2;108;94;181m█\u001b[0;38;2;53;40;121;48;2;53;40;121m \u001b[0;38;2;53;40;121;48;2;108;94;181m█y\u001b[0;38;2;108;94;181;48;2;154;103;89m🬹\u001b[0;38;2;53;40;121;48;2;112;164;178m🬵\u001b[0;38;2;53;40;121;48;2;108;94;181m🬹\u001b[0;38;2;53;40;121;48;2;53;40;121m \u001b[0;38;2;53;40;121;48;2;108;94;181m█🬹\u001b[0;38;2;108;94;181;48;2;53;40;121m🬬\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[5;71H \u001b[6;11H\u001b[0;38;2;149;149;149;48;2;112;164;178my\u001b[0;38;2;53;40;121;48;2;108;94;181m🬫\u001b[0;38;2;53;40;121;48;2;53;40;121m \u001b[0;38;2;53;40;121;48;2;108;94;181m█\u001b[0;38;2;53;40;121;48;2;112;164;178m🬻\u001b[0;38;2;53;40;121;48;2;53;40;121m \u001b[0;38;2;53;40;121;48;2;108;94;181m█\u001b[0;38;2;53;40;121;48;2;112;164;178m🬱\u001b[0;38;2;184;199;111;48;2;108;94;181m▀\u001b[0;38;2;112;164;178;48;2;53;40;121m🬝\u001b[0;38;2;53;40;121;48;2;149;149;149m▄\u001b[0;38;2;53;40;121;48;2;53;40;121m \u001b[0;38;2;53;40;121;48;2;108;94;181m▙\u001b[0;38;2;108;94;181;48;2;53;40;121m█\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[6;71H \u001b[7;11H\u001b[0;38;2;53;40;121;48;2;112;164;178m🬯\u001b[0;38;2;53;40;121;48;2;53;40;121m \u001b[0;38;2;53;40;121;48;2;112;164;178m🬺\u001b[0;38;2;53;40;121;48;2;108;94;181m█\u001b[0;38;2;53;40;121;48;2;53;40;121m \u001b[0;38;2;53;40;121;48;2;108;94;181m▙\u001b[0;38;2;108;94;181;48;2;53;40;121m█\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[7;71H \u001b[8;11H\u001b[0;38;2;53;40;121;48;2;53;40;121m \u001b[0;38;2;108;94;181;48;2;53;40;121m█\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[9;11H\u001b[0;38;2;53;40;121;48;2;53;40;121m \u001b[0;38;2;53;40;121;48;2;108;94;181m🬝\u001b[0;38;2;108;94;181;48;2;53;40;121m█\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[10;11H\u001b[0;38;2;53;40;121;48;2;53;40;121m \u001b[0;38;2;53;40;121;48;2;108;94;181m🬝\u001b[0;38;2;108;94;181;48;2;53;40;121m🬻\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[11;11H\u001b[0;38;2;53;40;121;48;2;53;40;121m \u001b[0;38;2;53;40;121;48;2;108;94;181m█🬆\u001b[0;38;2;108;94;181;48;2;53;40;121m█\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[12;11H\u001b[0;38;2;53;40;121;48;2;53;40;121m \u001b[0;38;2;53;40;121;48;2;108;94;181m🬝🬎\u001b[0;38;2;108;94;181;48;2;53;40;121m🬹█\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[13;11H\u001b[0;38;2;53;40;121;48;2;53;40;121m \u001b[0;38;2;53;40;121;48;2;108;94;181m🬝▀\u001b[0;38;2;112;164;178;48;2;108;94;181m_\u001b[0;38;2;53;40;121;48;2;108;94;181m~\u001b[0;38;2;108;94;181;48;2;53;40;121m█\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;38;2;108;94;181;48;2;53;40;121m█\u001b[0;38;2;108;94;181;48;2;149;149;149m█\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[13;71H \u001b[14;11H\u001b[0;38;2;53;40;121;48;2;53;40;121m \u001b[0;38;2;53;40;121;48;2;108;94;181m🬝🬆\u001b[0;38;2;53;40;121;48;2;112;164;178m🬎\u001b[0;38;2;53;40;121;48;2;108;94;181m▀🬎▀\u001b[0;38;2;108;94;181;48;2;53;40;121m🬹█\u001b[0;38;2;108;94;181;48;2;184;199;111m🬆\u001b[0;38;2;104;55;43;48;2;112;164;178m.\u001b[0;38;2;154;103;89;48;2;112;164;178m_\u001b[0;38;2;108;94;181;48;2;112;164;178m🬎🬬🬝\u001b[0;38;2;108;94;181;48;2;53;40;121m█\u001b[0;38;2;108;94;181;48;2;184;199;111m🬝\u001b[0;38;2;108;94;181;48;2;154;103;89mM\u001b[0;38;2;184;199;111;48;2;108;94;181m🬪\u001b[0;38;2;108;94;181;48;2;112;164;178m▐\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[14;71H \u001b[15;11H\u001b[0;38;2;53;40;121;48;2;53;40;121m \u001b[0;38;2;53;40;121;48;2;108;94;181m█\u001b[0;38;2;108;94;181;48;2;112;164;178m🬕\u001b[0;38;2;154;103;89;48;2;184;199;111m🬯\u001b[0;38;2;112;164;178;48;2;184;199;111m🬵\u001b[0;38;2;108;94;181;48;2;154;103;89m▀\u001b[0;38;2;108;94;181;48;2;184;199;111m▀\u001b[0;38;2;112;164;178;48;2;154;103;89m🬆\u001b[0;38;2;108;94;181;48;2;184;199;111m🬂\u001b[0;38;2;108;94;181;48;2;112;164;178m🬂\u001b[0;38;2;184;199;111;48;2;112;164;178m]\u001b[0;38;2;53;40;121;48;2;112;164;178m🬑\u001b[0;38;2;108;94;181;48;2;112;164;178mC\u001b[0;38;2;184;199;111;48;2;104;55;43m🬑\u001b[0;38;2;184;199;111;48;2;149;149;149m🬍\u001b[0;38;2;255;255;255;48;2;154;103;89m🬦\u001b[0;38;2;255;255;255;48;2;112;164;178mr\u001b[0;38;2;112;164;178;48;2;154;103;89m▌\u001b[0;38;2;0;0;0;48;2;112;164;178m🬇\u001b[0;38;2;184;199;111;48;2;108;94;181mi\u001b[0;38;2;112;164;178;48;2;104;55;43m🬊\u001b[0;38;2;112;164;178;48;2;154;103;89m🬎\u001b[0;38;2;108;94;181;48;2;108;108;108m🬊\u001b[0;38;2;108;94;181;48;2;112;164;178m🬬🬝\u001b[0;38;2;149;149;149;48;2;108;94;181m_\u001b[0;38;2;108;94;181;48;2;112;164;178m🬂\u001b[0;38;2;108;94;181;48;2;108;108;108m🬬\u001b[15;71H\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[16;11H\u001b[0;38;2;53;40;121;48;2;53;40;121m \u001b[0;38;2;53;40;121;48;2;112;164;178m▛\u001b[0;38;2;53;40;121;48;2;108;94;181m▀\u001b[0;38;2;53;40;121;48;2;112;164;178m🬆\u001b[0;38;2;53;40;121;48;2;108;94;181m▀🬎🬆\u001b[0;38;2;108;94;181;48;2;104;55;43m🬬\u001b[0;38;2;108;94;181;48;2;184;199;111m▀\u001b[0;38;2;108;94;181;48;2;112;164;178m▀\u001b[0;38;2;112;164;178;48;2;184;199;111m🬝\u001b[0;38;2;112;164;178;48;2;53;40;121m🬩\u001b[0;38;2;108;94;181;48;2;184;199;111m🬻\u001b[0;38;2;53;40;121;48;2;154;103;89m🬃\u001b[0;38;2;111;79;37;48;2;184;199;111mm\u001b[0;38;2;184;199;111;48;2;149;149;149m🬭\u001b[0;38;2;255;255;255;48;2;154;103;89m🬥\u001b[0;38;2;184;199;111;48;2;112;164;178m🬷\u001b[0;38;2;184;199;111;48;2;154;103;89m🬭\u001b[0;38;2;154;103;89;48;2;53;40;121m🬜\u001b[0;38;2;154;103;89;48;2;108;94;181m🬹\u001b[0;38;2;154;103;89;48;2;184;199;111m~\u001b[0;38;2;255;255;255;48;2;154;103;89m🬁\u001b[0;38;2;184;199;111;48;2;112;164;178m▙\u001b[0;38;2;184;199;111;48;2;154;103;89m🬭\u001b[0;38;2;108;94;181;48;2;154;103;89m🬆🬉\u001b[0;38;2;184;199;111;48;2;154;103;89m_\u001b[0;38;2;53;40;121;48;2;184;199;111ma\u001b[0;38;2;112;164;178;48;2;255;255;255m~\u001b[0;38;2;112;164;178;48;2;154;103;89m🬝\u001b[0;38;2;104;55;43;48;2;112;164;178m<\u001b[0;38;2;112;164;178;48;2;53;40;121m─🬙\u001b[0;38;2;112;164;178;48;2;184;199;111m🬹\u001b[16;71H\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[17;1H\u001b[0;39;48;2;21;32;25m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;53;40;121;48;2;53;40;121m \u001b[0;38;2;53;40;121;48;2;108;94;181m🬕\u001b[0;38;2;112;164;178;48;2;184;199;111m@\u001b[0;38;2;184;199;111;48;2;112;164;178m🬌\u001b[0;38;2;154;103;89;48;2;112;164;178m_\u001b[0;38;2;108;94;181;48;2;112;164;178mE\u001b[0;38;2;184;199;111;48;2;154;103;89m🬆\u001b[0;38;2;184;199;111;48;2;149;149;149m▞\u001b[0;38;2;184;199;111;48;2;112;164;178m)\u001b[0;38;2;112;164;178;48;2;255;255;255m🬝\u001b[0;38;2;112;164;178;48;2;104;55;43m🬬\u001b[0;38;2;184;199;111;48;2;154;103;89m🬭🬭\u001b[0;38;2;111;79;37;48;2;154;103;89m)\u001b[0;38;2;184;199;111;48;2;154;103;89m🬊🬪\u001b[0;38;2;255;255;255;48;2;154;103;89m🬱\u001b[0;38;2;184;199;111;48;2;154;103;89m_\u001b[0;38;2;184;199;111;48;2;53;40;121m🬎\u001b[0;38;2;184;199;111;48;2;154;103;89m🬟\u001b[0;38;2;154;103;89;48;2;112;164;178m🬸\u001b[0;38;2;184;199;111;48;2;112;164;178m🬉\u001b[0;38;2;255;255;255;48;2;184;199;111m🬱\u001b[0;38;2;154;103;89;48;2;184;199;111m7\u001b[0;38;2;184;199;111;48;2;154;103;89m🬆\u001b[0;38;2;111;79;37;48;2;108;94;181m▀\u001b[0;38;2;184;199;111;48;2;112;164;178m🬊\u001b[0;38;2;184;199;111;48;2;149;149;149m█\u001b[0;38;2;149;149;149;48;2;184;199;111mm\u001b[0;38;2;184;199;111;48;2;154;103;89m🬲_\u001b[0;38;2;112;164;178;48;2;108;94;181mA\u001b[0;38;2;53;40;121;48;2;112;164;178mJ🬦\u001b[0;38;2;184;199;111;48;2;112;164;178m🬺\u001b[0;38;2;112;164;178;48;2;154;103;89m🬬\u001b[0;38;2;108;94;181;48;2;112;164;178m🬬\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0;39;48;2;13;20;16m \u001b[18;11H\u001b[0;38;2;53;40;121;48;2;53;40;121m \u001b[0;38;2;53;40;121;48;2;108;94;181m█🬝\u001b[0;38;2;112;164;178;48;2;108;94;181m_\u001b[0;38;2;108;94;181;48;2;112;164;178m🬢\u001b[0;38;2;184;199;111;48;2;154;103;89m]\u001b[0;38;2;53;40;121;48;2;108;94;181m🬡\u001b[0;38;2;53;40;121;48;2;112;164;178m🬭\u001b[0;38;2;53;40;121;48;2;154;103;89m🬃\u001b[0;38;2;184;199;111;48;2;154;103;89m🬞\u001b[0;38;2;154;103;89;48;2;184;199;111m~t\u001b[0;38;2;255;255;255;48;2;184;199;111m~\u001b[0;38;2;154;103;89;48;2;184;199;111mm\u001b[0;38;2;184;199;111;48;2;154;103;89m🬎\u001b[0;38;2;184;199;111;48;2;108;94;181m▗\u001b[0;38;2;108;94;181;48;2;112;164;178m[\u001b[0;38;2;154;103;89;48;2;108;94;181mp\u001b[0;38;2;255;255;255;48;2;154;103;89m▝\u001b[0;38;2;255;255;255;48;2;255;255;255m \u001b[0;38;2;112;164;178;48;2;255;255;255m7\u001b[0;38;2;184;199;111;48;2;255;255;255m~\u001b[0;38;2;255;255;255;48;2;184;199;111m🬱\u001b[0;38;2;255;255;255;48;2;108;94;181m▄\u001b[0;38;2;255;255;255;48;2;184;199;111m🬻\u001b[0;38;2;255;255;255;48;2;104;55;43m█\u001b[0;38;2;255;255;255;48;2;184;199;111m🬹\u001b[0;38;2;112;164;178;48;2;104;55;43m🬜\u001b[0;38;2;184;199;111;48;2;108;94;181m🬭\u001b[0;38;2;255;255;255;48;2;184;199;111m🬹\u001b[0;38;2;154;103;89;48;2;255;255;255m🬬\u001b[0;38;2;104;55;43;48;2;184;199;111m_\u001b[0;38;2;53;40;121;48;2;154;103;89m🬭\u001b[0;38;2;111;79;37;48;2;154;103;89m🬂\u001b[0;38;2;53;40;121;48;2;184;199;111m~\u001b[0;38;2;184;199;111;48;2;154;103;89m▖\u001b[0;38;2;255;255;255;48;2;184;199;111m▗🬚\u001b[0;38;2;112;164;178;48;2;149;149;149m🬸\u001b[0;38;2;112;164;178;48;2;154;210;132m🬬\u001b[0;38;2;108;94;181;48;2;112;164;178m🬊\u001b[0;38;2;108;94;181;48;2;184;199;111m🬎\u001b[0;38;2;108;94;181;48;2;112;164;178m🬎\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[19;11H\u001b[0;38;2;53;40;121;48;2;53;40;121m \u001b[0;38;2;53;40;121;48;2;112;164;178m▀\u001b[0;38;2;53;40;121;48;2;149;149;149m🬬\u001b[0;38;2;53;40;121;48;2;112;164;178m▀\u001b[0;38;2;53;40;121;48;2;108;94;181m🬊\u001b[0;38;2;108;94;181;48;2;53;40;121m_\u001b[0;38;2;53;40;121;48;2;108;94;181m▀\u001b[0;38;2;108;94;181;48;2;112;164;178m─\u001b[0;38;2;184;199;111;48;2;111;79;37m▟\u001b[0;38;2;255;255;255;48;2;112;164;178m🬑\u001b[0;38;2;154;103;89;48;2;112;164;178m'\u001b[0;38;2;112;164;178;48;2;154;210;132m🬝\u001b[0;38;2;184;199;111;48;2;149;149;149m🬄\u001b[0;38;2;184;199;111;48;2;154;103;89m🬭🬹\u001b[0;38;2;154;103;89;48;2;184;199;111m🬺\u001b[0;38;2;184;199;111;48;2;154;103;89m🬂\u001b[0;38;2;255;255;255;48;2;149;149;149m🬂\u001b[0;38;2;255;255;255;48;2;112;164;178m🬂\u001b[0;38;2;255;255;255;48;2;184;199;111m🬬\u001b[0;38;2;255;255;255;48;2;112;164;178m*🬍🬎\u001b[0;38;2;184;199;111;48;2;112;164;178m~\u001b[0;38;2;255;255;255;48;2;112;164;178m🬍▀▀🬎█\u001b[0;38;2;255;255;255;48;2;255;255;255m \u001b[0;38;2;255;255;255;48;2;53;40;121m█\u001b[0;38;2;255;255;255;48;2;255;255;255m \u001b[0;38;2;255;255;255;48;2;104;55;43m█\u001b[0;38;2;255;255;255;48;2;112;164;178m🬃\u001b[0;38;2;112;164;178;48;2;108;108;108mC\u001b[0;38;2;184;199;111;48;2;53;40;121m🬻\u001b[0;38;2;184;199;111;48;2;154;103;89m🬆▗🬕\u001b[0;38;2;184;199;111;48;2;68;68;68m▀\u001b[0;38;2;53;40;121;48;2;184;199;111m─\u001b[0;38;2;104;55;43;48;2;53;40;121mg\u001b[0;38;2;104;55;43;48;2;112;164;178mJ\u001b[0;38;2;255;255;255;48;2;112;164;178mu\u001b[0;38;2;108;94;181;48;2;112;164;178m─\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[20;11H\u001b[0;38;2;53;40;121;48;2;53;40;121m \u001b[0;38;2;108;94;181;48;2;112;164;178m🬴\u001b[0;38;2;112;164;178;48;2;184;199;111m🬎\u001b[0;38;2;112;164;178;48;2;53;40;121m🬎\u001b[0;38;2;112;164;178;48;2;108;94;181m🬐\u001b[0;38;2;184;199;111;48;2;108;94;181m🬔\u001b[0;38;2;184;199;111;48;2;154;103;89m🬂▝\u001b[0;38;2;184;199;111;48;2;108;108;108m🬎\u001b[0;38;2;184;199;111;48;2;154;103;89m🬡\u001b[0;38;2;112;164;178;48;2;184;199;111m▀\u001b[0;38;2;255;255;255;48;2;112;164;178m─\u001b[0;38;2;255;255;255;48;2;154;103;89m─\u001b[0;38;2;154;103;89;48;2;184;199;111m─_\u001b[0;38;2;154;103;89;48;2;104;55;43m🬬\u001b[0;38;2;184;199;111;48;2;104;55;43m🬱\u001b[0;38;2;255;255;255;48;2;112;164;178m▗\u001b[0;38;2;184;199;111;48;2;53;40;121m🬲\u001b[0;38;2;255;255;255;48;2;149;149;149m▐\u001b[0;38;2;112;164;178;48;2;255;255;255m🬻\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[0;38;2;255;255;255;48;2;112;164;178m▜\u001b[0;38;2;255;255;255;48;2;255;255;255m \u001b[0;38;2;112;164;178;48;2;255;255;255m~\u001b[0;38;2;149;149;149;48;2;255;255;255m~\u001b[0;38;2;255;255;255;48;2;255;255;255m \u001b[0;38;2;149;149;149;48;2;154;103;89my\u001b[0;38;2;184;199;111;48;2;108;94;181m▀\u001b[0;38;2;184;199;111;48;2;154;103;89m`\u001b[0;38;2;104;55;43;48;2;184;199;111m🬻\u001b[0;38;2;112;164;178;48;2;53;40;121m▛\u001b[0;38;2;112;164;178;48;2;104;55;43m🬡\u001b[0;38;2;154;103;89;48;2;112;164;178m🬜\u001b[0;38;2;112;164;178;48;2;184;199;111m🬬\u001b[0;38;2;112;164;178;48;2;108;94;181m█\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[21;11H\u001b[0;38;2;53;40;121;48;2;53;40;121m \u001b[0;38;2;53;40;121;48;2;108;94;181m▙\u001b[0;38;2;184;199;111;48;2;108;94;181m🬊\u001b[0;38;2;112;164;178;48;2;154;103;89m🬘▞\u001b[0;38;2;53;40;121;48;2;184;199;111m🬣\u001b[0;38;2;112;164;178;48;2;53;40;121m0\u001b[0;38;2;154;103;89;48;2;112;164;178m🬬\u001b[0;38;2;154;103;89;48;2;108;94;181m🬒\u001b[0;38;2;184;199;111;48;2;108;94;181m█\u001b[0;38;2;184;199;111;48;2;255;255;255m🬝\u001b[0;38;2;255;255;255;48;2;184;199;111m🬭\u001b[0;38;2;255;255;255;48;2;154;103;89m▄🬹\u001b[0;38;2;255;255;255;48;2;184;199;111m🬹\u001b[0;38;2;255;255;255;48;2;112;164;178m*^\u001b[0;38;2;112;164;178;48;2;255;255;255m███\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[0;38;2;255;255;255;48;2;112;164;178m▟\u001b[0;38;2;255;255;255;48;2;255;255;255m \u001b[0;38;2;255;255;255;48;2;149;149;149m█\u001b[0;38;2;255;255;255;48;2;154;103;89m🬀\u001b[0;38;2;53;40;121;48;2;154;103;89m🬃\u001b[0;38;2;184;199;111;48;2;154;103;89m🬵\u001b[0;38;2;154;103;89;48;2;184;199;111m_🬸\u001b[0;38;2;255;255;255;48;2;104;55;43m🬭\u001b[0;38;2;255;255;255;48;2;184;199;111m🬭\u001b[0;38;2;154;103;89;48;2;112;164;178mJ\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;108;94;181;48;2;112;164;178m🬨\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[22;11H\u001b[0;38;2;53;40;121;48;2;53;40;121m \u001b[0;38;2;53;40;121;48;2;111;61;134m█\u001b[0;38;2;53;40;121;48;2;108;94;181m█🬆\u001b[0;38;2;53;40;121;48;2;112;164;178m▀\u001b[0;38;2;108;94;181;48;2;112;164;178m▀\u001b[0;38;2;108;94;181;48;2;184;199;111m🬬\u001b[0;38;2;112;164;178;48;2;154;103;89m▄\u001b[0;38;2;184;199;111;48;2;53;40;121m🬱\u001b[0;38;2;104;55;43;48;2;154;103;89m'\u001b[0;38;2;184;199;111;48;2;154;103;89m_\u001b[0;38;2;154;103;89;48;2;184;199;111mM🬻\u001b[0;38;2;184;199;111;48;2;154;103;89m~\u001b[0;38;2;184;199;111;48;2;112;164;178m🬡\u001b[0;38;2;53;40;121;48;2;108;94;181m🬚\u001b[0;38;2;108;108;108;48;2;184;199;111m🬹\u001b[0;38;2;255;255;255;48;2;112;164;178m🬊\u001b[0;38;2;112;164;178;48;2;255;255;255m🬬\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;255;255;255m🬝╲\u001b[0;38;2;255;255;255;48;2;108;94;181m▀\u001b[0;38;2;255;255;255;48;2;108;108;108m🬂\u001b[0;38;2;112;164;178;48;2;108;94;181m▀\u001b[0;38;2;184;199;111;48;2;53;40;121m▀\u001b[0;38;2;255;255;255;48;2;184;199;111m▝\u001b[0;38;2;255;255;255;48;2;154;103;89m🬬\u001b[0;38;2;255;255;255;48;2;255;255;255m \u001b[0;38;2;255;255;255;48;2;0;0;0m█\u001b[0;38;2;255;255;255;48;2;184;199;111m🬔\u001b[0;38;2;154;103;89;48;2;53;40;121m🬬\u001b[0;38;2;184;199;111;48;2;154;103;89m🬹🬅\u001b[0;38;2;255;255;255;48;2;108;94;181m▝\u001b[0;38;2;255;255;255;48;2;112;164;178m▘\u001b[0;38;2;112;164;178;48;2;108;94;181m🬎\u001b[0;38;2;112;164;178;48;2;154;103;89m🬎\u001b[0;38;2;112;164;178;48;2;53;40;121m█\u001b[0;38;2;112;164;178;48;2;108;94;181m🬹\u001b[0;38;2;108;94;181;48;2;112;164;178m🬬\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[23;11H\u001b[0;38;2;53;40;121;48;2;53;40;121m \u001b[0;38;2;149;149;149;48;2;53;40;121m_\u001b[0;38;2;53;40;121;48;2;53;40;121m \u001b[0;38;2;53;40;121;48;2;108;94;181m█\u001b[0;38;2;53;40;121;48;2;154;103;89m🬛\u001b[0;38;2;184;199;111;48;2;112;164;178m^\u001b[0;38;2;184;199;111;48;2;108;94;181m🬸\u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[0;38;2;112;164;178;48;2;53;40;121m█\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;184;199;111m█\u001b[0;38;2;53;40;121;48;2;149;149;149m🬁\u001b[0;38;2;255;255;255;48;2;184;199;111m🬖\u001b[0;38;2;184;199;111;48;2;154;103;89m🬬█=🬭\u001b[0;38;2;154;103;89;48;2;112;164;178m🬚\u001b[0;38;2;149;149;149;48;2;112;164;178mF\u001b[0;38;2;184;199;111;48;2;112;164;178m#t\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;184;199;111m🬝\u001b[0;38;2;53;40;121;48;2;184;199;111m─\u001b[0;38;2;154;103;89;48;2;104;55;43m🬺\u001b[0;38;2;111;79;37;48;2;184;199;111m\"\u001b[0;38;2;184;199;111;48;2;104;55;43m█\u001b[0;38;2;184;199;111;48;2;53;40;121m🬎\u001b[0;38;2;184;199;111;48;2;154;103;89m🬓▝\u001b[0;38;2;255;255;255;48;2;184;199;111m🬬\u001b[0;38;2;255;255;255;48;2;255;255;255m \u001b[0;38;2;255;255;255;48;2;104;55;43m▛\u001b[0;38;2;255;255;255;48;2;154;103;89m🬀\u001b[0;38;2;108;94;181;48;2;154;103;89m🬩\u001b[0;38;2;104;55;43;48;2;154;103;89ms\u001b[0;38;2;184;199;111;48;2;104;55;43m'\u001b[0;38;2;53;40;121;48;2;108;94;181mZ\u001b[0;38;2;112;164;178;48;2;154;103;89m🬮\u001b[0;38;2;53;40;121;48;2;112;164;178m🬄\u001b[0;38;2;112;164;178;48;2;184;199;111m▌\u001b[0;38;2;184;199;111;48;2;154;103;89mR\u001b[0;38;2;112;164;178;48;2;154;103;89m🬻\u001b[0;38;2;112;164;178;48;2;108;94;181m▌\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[24;11H\u001b[0;38;2;53;40;121;48;2;53;40;121m \u001b[0;38;2;53;40;121;48;2;108;94;181m▛\u001b[0;38;2;53;40;121;48;2;112;164;178m▀\u001b[0;38;2;53;40;121;48;2;149;149;149m▀\u001b[0;38;2;112;164;178;48;2;184;199;111m🬥▟\u001b[0;38;2;108;94;181;48;2;184;199;111m🬨\u001b[0;38;2;53;40;121;48;2;108;94;181m🬎\u001b[0;38;2;53;40;121;48;2;112;164;178m▘\u001b[0;38;2;184;199;111;48;2;112;164;178m🬨\u001b[0;38;2;112;164;178;48;2;184;199;111m🬊\u001b[0;38;2;184;199;111;48;2;149;149;149m▄\u001b[0;38;2;255;255;255;48;2;184;199;111mT\u001b[0;38;2;184;199;111;48;2;112;164;178m▀\u001b[0;38;2;112;164;178;48;2;154;103;89m▀🬎\u001b[0;38;2;255;255;255;48;2;112;164;178m▝\u001b[0;38;2;184;199;111;48;2;108;94;181m🬆\u001b[0;38;2;184;199;111;48;2;154;103;89m🬎\u001b[0;38;2;184;199;111;48;2;111;79;37m🬥\u001b[0;38;2;255;255;255;48;2;154;103;89m🬞\u001b[0;38;2;255;255;255;48;2;149;149;149m🬭\u001b[0;38;2;112;164;178;48;2;255;255;255m🬸\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;255;255;255;48;2;112;164;178m.\u001b[0;38;2;154;103;89;48;2;112;164;178m/\u001b[0;38;2;108;94;181;48;2;154;103;89mF\u001b[0;38;2;108;94;181;48;2;184;199;111m-\u001b[0;38;2;184;199;111;48;2;184;199;111m \u001b[0;38;2;184;199;111;48;2;112;164;178m█\u001b[0;38;2;184;199;111;48;2;154;103;89m🬱\u001b[0;38;2;154;103;89;48;2;184;199;111m🬎\u001b[0;38;2;255;255;255;48;2;184;199;111m🬭\u001b[0;38;2;255;255;255;48;2;255;255;255m \u001b[0;38;2;255;255;255;48;2;112;164;178m🬺\u001b[0;38;2;112;164;178;48;2;184;199;111m~\u001b[0;38;2;184;199;111;48;2;154;103;89m─🬬\u001b[0;38;2;154;103;89;48;2;53;40;121m🬝\u001b[0;38;2;104;55;43;48;2;154;103;89m6\u001b[0;38;2;53;40;121;48;2;154;103;89m🬂\u001b[0;38;2;112;164;178;48;2;154;103;89m🬧\u001b[0;38;2;112;164;178;48;2;184;199;111m█\u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;108;94;181m▌\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[25;11H\u001b[0;38;2;53;40;121;48;2;53;40;121m \u001b[0;38;2;53;40;121;48;2;184;199;111m█\u001b[0;38;2;53;40;121;48;2;108;94;181m🬓\u001b[0;38;2;112;164;178;48;2;108;94;181m▟\u001b[0;38;2;184;199;111;48;2;112;164;178m🬧\u001b[0;38;2;112;164;178;48;2;154;103;89m🬂\u001b[0;38;2;108;94;181;48;2;184;199;111m🬸\u001b[0;38;2;184;199;111;48;2;112;164;178m_\u001b[0;38;2;112;164;178;48;2;154;103;89m▄\u001b[0;38;2;108;94;181;48;2;154;103;89m▄\u001b[0;38;2;53;40;121;48;2;154;103;89m🬞\u001b[0;38;2;184;199;111;48;2;154;103;89m🬂🬡▄\u001b[0;38;2;112;164;178;48;2;184;199;111m'\u001b[0;38;2;184;199;111;48;2;104;55;43m█\u001b[0;38;2;184;199;111;48;2;154;103;89m🬬\u001b[0;38;2;184;199;111;48;2;53;40;121m▙\u001b[0;38;2;255;255;255;48;2;184;199;111m🬵\u001b[0;38;2;255;255;255;48;2;112;164;178m🬚'\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;255;255;255m🬴\u001b[0;38;2;184;199;111;48;2;104;55;43m▀\u001b[0;38;2;53;40;121;48;2;154;103;89m,\u001b[0;38;2;154;103;89;48;2;184;199;111mg\u001b[0;38;2;184;199;111;48;2;53;40;121m█\u001b[0;38;2;184;199;111;48;2;255;255;255m🬴\u001b[0;38;2;255;255;255;48;2;184;199;111m█\u001b[0;38;2;255;255;255;48;2;255;255;255m \u001b[0;38;2;255;255;255;48;2;184;199;111m🬕\u001b[0;38;2;255;255;255;48;2;154;103;89m🬂\u001b[0;38;2;255;255;255;48;2;108;94;181m🬀\u001b[0;38;2;154;103;89;48;2;108;108;108m🬍\u001b[0;38;2;184;199;111;48;2;154;103;89m─\u001b[0;38;2;184;199;111;48;2;108;108;108mr\u001b[0;38;2;255;255;255;48;2;184;199;111m▐m\u001b[0;38;2;154;103;89;48;2;112;164;178m▛\u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;108;94;181;48;2;112;164;178m▐\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[26;11H\u001b[0;38;2;53;40;121;48;2;53;40;121m \u001b[0;38;2;53;40;121;48;2;112;164;178m▙_\u001b[0;38;2;184;199;111;48;2;112;164;178m4\u001b[0;38;2;154;103;89;48;2;108;94;181m🬴\u001b[0;38;2;184;199;111;48;2;112;164;178m🬉\u001b[0;38;2;53;40;121;48;2;184;199;111m🬬e\u001b[0;38;2;108;94;181;48;2;112;164;178m╲\u001b[0;38;2;53;40;121;48;2;108;94;181m🬉\u001b[0;38;2;108;94;181;48;2;154;103;89m─\u001b[0;38;2;53;40;121;48;2;154;103;89m─\u001b[0;38;2;184;199;111;48;2;108;94;181m▐\u001b[0;38;2;184;199;111;48;2;255;255;255m█\u001b[0;38;2;255;255;255;48;2;184;199;111m🬎\u001b[0;38;2;255;255;255;48;2;149;149;149m🬋\u001b[0;38;2;255;255;255;48;2;108;94;181m▀🬂\u001b[0;38;2;255;255;255;48;2;154;103;89m🬂\u001b[0;38;2;112;164;178;48;2;154;103;89m▀\u001b[0;38;2;255;255;255;48;2;112;164;178m,\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[26;52H\u001b[0;38;2;112;164;178;48;2;154;103;89m🬹\u001b[0;38;2;53;40;121;48;2;112;164;178m`\u001b[0;38;2;184;199;111;48;2;154;103;89m#\u001b[0;38;2;53;40;121;48;2;154;103;89m_\u001b[0;38;2;184;199;111;48;2;154;103;89m🬀\u001b[0;38;2;184;199;111;48;2;104;55;43m🬊\u001b[0;38;2;184;199;111;48;2;255;255;255m🬹\u001b[0;38;2;255;255;255;48;2;184;199;111m▀🬎🬆\u001b[0;38;2;255;255;255;48;2;108;94;181m🬂\u001b[0;38;2;255;255;255;48;2;154;103;89m▀\u001b[0;38;2;154;103;89;48;2;184;199;111m▄\u001b[0;38;2;154;103;89;48;2;104;55;43m▛\u001b[0;38;2;184;199;111;48;2;149;149;149m🬹\u001b[0;38;2;104;55;43;48;2;154;103;89m~\u001b[0;38;2;104;55;43;48;2;112;164;178mt\u001b[0;38;2;112;164;178;48;2;154;103;89mg\u001b[0;38;2;0;0;0;48;2;108;94;181m,\u001b[0;38;2;112;164;178;48;2;53;40;121m🬨\u001b[0;38;2;112;164;178;48;2;149;149;149m🬎█\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;108;94;181;48;2;112;164;178m▐\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[27;11H\u001b[0;38;2;53;40;121;48;2;53;40;121m \u001b[0;38;2;108;94;181;48;2;53;40;121m'\u001b[0;38;2;53;40;121;48;2;112;164;178m▄\u001b[0;38;2;108;94;181;48;2;184;199;111m▄\u001b[0;38;2;184;199;111;48;2;108;94;181mm\u001b[0;38;2;112;164;178;48;2;154;103;89m▀▀\u001b[0;38;2;108;94;181;48;2;154;103;89m🬊\u001b[0;38;2;154;103;89;48;2;68;68;68m▙\u001b[0;38;2;108;94;181;48;2;154;103;89mL\u001b[0;38;2;154;103;89;48;2;112;164;178m▜\u001b[0;38;2;184;199;111;48;2;154;103;89m▄🬒\u001b[0;38;2;112;164;178;48;2;154;103;89m~\u001b[0;38;2;108;94;181;48;2;154;103;89m▟\u001b[0;38;2;112;164;178;48;2;149;149;149m🬒\u001b[0;38;2;104;55;43;48;2;184;199;111mm\u001b[0;38;2;112;164;178;48;2;154;103;89m🬙\u001b[0;38;2;111;79;37;48;2;154;103;89mr\u001b[0;38;2;184;199;111;48;2;112;164;178mM\u001b[0;38;2;112;164;178;48;2;184;199;111m█\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[27;51H \u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[0;38;2;184;199;111;48;2;112;164;178m7\u001b[0;38;2;108;94;181;48;2;184;199;111m🬥\u001b[0;38;2;255;255;255;48;2;154;103;89m🬭\u001b[0;38;2;154;103;89;48;2;184;199;111m▜\u001b[0;38;2;184;199;111;48;2;154;103;89m`\u001b[0;38;2;104;55;43;48;2;112;164;178m▄\u001b[0;38;2;53;40;121;48;2;154;103;89m`\u001b[0;38;2;154;103;89;48;2;184;199;111m🬺▟\u001b[0;38;2;104;55;43;48;2;108;94;181m🬩\u001b[0;38;2;112;164;178;48;2;154;103;89m,\u001b[0;38;2;154;103;89;48;2;108;94;181m🬪\u001b[0;38;2;154;103;89;48;2;255;255;255m🬎🬬\u001b[0;38;2;154;103;89;48;2;53;40;121m🬹\u001b[0;38;2;112;164;178;48;2;154;103;89m🬡\u001b[0;38;2;0;0;0;48;2;112;164;178m'\u001b[0;38;2;184;199;111;48;2;154;103;89m▄\u001b[0;38;2;154;103;89;48;2;112;164;178mZ.\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;108;94;181m▌\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[28;11H\u001b[0;38;2;53;40;121;48;2;53;40;121m \u001b[0;38;2;53;40;121;48;2;112;164;178m🬎🬆🬂\u001b[0;38;2;108;94;181;48;2;184;199;111m▀\u001b[0;38;2;108;94;181;48;2;112;164;178mT\u001b[0;38;2;112;164;178;48;2;184;199;111m🬺▄\u001b[0;38;2;184;199;111;48;2;112;164;178m🬩\u001b[0;38;2;184;199;111;48;2;154;103;89ms🬻\u001b[0;38;2;255;255;255;48;2;184;199;111m▄\u001b[0;38;2;184;199;111;48;2;255;255;255m🬬\u001b[0;38;2;184;199;111;48;2;154;103;89m🬓\u001b[0;38;2;108;94;181;48;2;154;103;89m/\u001b[0;38;2;53;40;121;48;2;154;103;89m~\u001b[0;38;2;154;103;89;48;2;108;94;181m▄\u001b[0;38;2;184;199;111;48;2;104;55;43m▙\u001b[0;38;2;255;255;255;48;2;112;164;178m{\u001b[0;38;2;112;164;178;48;2;184;199;111m🬹\u001b[0;38;2;108;94;181;48;2;112;164;178m'\u001b[0;38;2;112;164;178;48;2;154;103;89m🬻\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[28;51H \u001b[0;38;2;112;164;178;48;2;0;0;0m█\u001b[0;38;2;112;164;178;48;2;184;199;111m🬺\u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[0;38;2;112;164;178;48;2;184;199;111m🬺\u001b[0;38;2;154;103;89;48;2;112;164;178m🬊\u001b[0;38;2;184;199;111;48;2;108;94;181mn\u001b[0;38;2;112;164;178;48;2;53;40;121m─\u001b[0;38;2;255;255;255;48;2;154;103;89m🬦\u001b[0;38;2;184;199;111;48;2;154;103;89m🬺\u001b[0;38;2;154;103;89;48;2;104;55;43m█\u001b[0;38;2;112;164;178;48;2;108;108;108m🬇\u001b[0;38;2;112;164;178;48;2;154;103;89m🬂\u001b[0;38;2;53;40;121;48;2;154;103;89m🬐\u001b[0;38;2;255;255;255;48;2;112;164;178m🬀\u001b[0;38;2;112;164;178;48;2;255;255;255m🬻\u001b[0;38;2;112;164;178;48;2;149;149;149m▄\u001b[0;38;2;112;164;178;48;2;184;199;111m█\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;154;103;89m█\u001b[0;38;2;112;164;178;48;2;108;94;181m█\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;108;94;181m🬲\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[29;11H\u001b[0;38;2;53;40;121;48;2;53;40;121m \u001b[0;38;2;53;40;121;48;2;255;255;255m█\u001b[0;38;2;53;40;121;48;2;112;164;178m▀🬥\u001b[0;38;2;184;199;111;48;2;112;164;178m🬱🬕\u001b[0;38;2;112;164;178;48;2;184;199;111m🬬█\u001b[0;38;2;112;164;178;48;2;53;40;121m█\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;104;55;43m█\u001b[0;38;2;112;164;178;48;2;149;149;149m_\u001b[0;38;2;53;40;121;48;2;184;199;111m─\u001b[0;38;2;255;255;255;48;2;184;199;111m🬔\u001b[0;38;2;108;108;108;48;2;184;199;111m*\u001b[0;38;2;184;199;111;48;2;255;255;255m█\u001b[0;38;2;184;199;111;48;2;104;55;43m█\u001b[0;38;2;149;149;149;48;2;154;103;89mC\u001b[0;38;2;184;199;111;48;2;154;103;89m▝\u001b[0;38;2;184;199;111;48;2;112;164;178m🬥\u001b[0;38;2;149;149;149;48;2;112;164;178m~\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[29;52H \u001b[0;38;2;112;164;178;48;2;154;103;89m█\u001b[0;38;2;184;199;111;48;2;112;164;178mt\u001b[0;38;2;112;164;178;48;2;149;149;149m🬭\u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[0;38;2;112;164;178;48;2;154;103;89m🬹\u001b[0;38;2;112;164;178;48;2;184;199;111m🬺\u001b[0;38;2;111;79;37;48;2;112;164;178m~\u001b[0;38;2;112;164;178;48;2;184;199;111mF\u001b[0;38;2;184;199;111;48;2;154;103;89m~\u001b[0;38;2;112;164;178;48;2;154;103;89m▟\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;108;94;181m█\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[30;11H\u001b[0;38;2;53;40;121;48;2;53;40;121m \u001b[0;38;2;53;40;121;48;2;112;164;178m█\u001b[0;38;2;108;94;181;48;2;184;199;111m🬜\u001b[0;38;2;184;199;111;48;2;112;164;178m─\u001b[0;38;2;154;103;89;48;2;112;164;178m🬆\u001b[0;38;2;184;199;111;48;2;149;149;149m🬓\u001b[0;38;2;112;164;178;48;2;154;210;132m🬸\u001b[0;38;2;112;164;178;48;2;111;61;134m█\u001b[0;38;2;112;164;178;48;2;184;199;111m🬎\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;108;94;181m█\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[0;38;2;184;199;111;48;2;112;164;178m▄\u001b[0;38;2;184;199;111;48;2;111;79;37m🬊\u001b[0;38;2;184;199;111;48;2;154;103;89m🬆~🬇\u001b[0;38;2;184;199;111;48;2;112;164;178mx\u001b[0;38;2;112;164;178;48;2;184;199;111m🬺█\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[30;54H \u001b[0;38;2;112;164;178;48;2;53;40;121m█\u001b[30;64H\u001b[0;38;2;112;164;178;48;2;154;103;89m█\u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[0;38;2;112;164;178;48;2;53;40;121m█\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;108;94;181;48;2;112;164;178m🬨\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[0m\u001b[2;49H\u001b[?25h"] +[9.92, "o", "\u001b[0m\u001b[2;50H\u001b[?25h"] +[10.01, "o", "\u001b[2;50H\u001b[0;38;2;245;247;238;48;2;60;97;74ms\u001b[0m\u001b[2;51H\u001b[?25h"] +[10.1, "o", "\u001b[2;51H\u001b[0;38;2;245;247;238;48;2;60;97;74md\u001b[0m\u001b[2;52H\u001b[?25h"] +[10.19, "o", "\u001b[2;52H\u001b[0;38;2;245;247;238;48;2;60;97;74mm\u001b[0m\u001b[2;53H\u001b[?25h"] +[10.28, "o", "\u001b[2;53H\u001b[0;38;2;245;247;238;48;2;60;97;74m.\u001b[0m\u001b[2;54H\u001b[?25h"] +[10.37, "o", "\u001b[2;54H\u001b[0;38;2;245;247;238;48;2;60;97;74mp\u001b[0m\u001b[2;55H\u001b[?25h"] +[10.46, "o", "\u001b[2;55H\u001b[0;38;2;245;247;238;48;2;60;97;74md\u001b[0m\u001b[2;56H\u001b[?25h"] +[10.55, "o", "\u001b[2;56H\u001b[0;38;2;245;247;238;48;2;60;97;74mf\u001b[0m\u001b[2;57H\u001b[?25h"] +[11.25, "o", "\u001b[2;50H\u001b[0;38;2;245;247;238;48;2;107;120;88msdm.pdf\u001b[0m\u001b[2;57H\u001b[?25h"] +[11.75, "o", "\u001b[2;50H\u001b[0;38;2;190;207;196;48;2;49;71;56msdm.pdf\u001b[3;1H\u001b[0;38;2;255;255;255;48;2;73;102;86m \u001b[0;39;48;2;29;40;36m \u001b[0;38;2;178;195;184;48;2;29;40;36mimg petscii:off palette:commodore ascii:on /tmp/cast/art/\u001b[0;38;2;211;176;217;48;2;29;40;36mseahorse.png\u001b[0;38;2;178;195;184;48;2;29;40;36m Tty Collapse Del\u001b[0;39;48;2;29;40;36m \u001b[4;11H\u001b[0;39;48;2;13;20;16m \u001b[0;38;2;108;94;181;48;2;112;164;178m▗\u001b[0;38;2;112;164;178;48;2;53;40;121m🬎\u001b[0;38;2;112;164;178;48;2;149;149;149m🬐\u001b[0;38;2;154;103;89;48;2;112;164;178m▝🬌\u001b[0;38;2;154;103;89;48;2;149;149;149mv\u001b[0;38;2;108;94;181;48;2;53;40;121m▛\u001b[0;38;2;53;40;121;48;2;149;149;149m🬹\u001b[0;38;2;53;40;121;48;2;112;164;178m🬹\u001b[0;38;2;53;40;121;48;2;108;94;181m🬱\u001b[0;38;2;53;40;121;48;2;149;149;149m🬭\u001b[0;38;2;53;40;121;48;2;112;164;178m▟\u001b[0;38;2;53;40;121;48;2;53;40;121m \u001b[0;38;2;53;40;121;48;2;108;94;181m█🬹█\u001b[4;55H\u001b[0;38;2;108;94;181;48;2;53;40;121m🬬\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[4;71H\u001b[0;39;48;2;13;20;16m \u001b[5;11H \u001b[0;38;2;53;40;121;48;2;112;164;178m🬷\u001b[0;38;2;53;40;121;48;2;53;40;121m \u001b[0;38;2;53;40;121;48;2;108;94;181m█\u001b[5;36H\u001b[0;38;2;53;40;121;48;2;112;164;178m🬺▄\u001b[0;38;2;53;40;121;48;2;108;108;108m█\u001b[5;56H\u001b[0;38;2;108;94;181;48;2;53;40;121m🬨\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[5;71H\u001b[0;39;48;2;13;20;16m \u001b[6;11H \u001b[6;56H\u001b[0;38;2;53;40;121;48;2;108;94;181m▌\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[6;71H\u001b[0;39;48;2;13;20;16m \u001b[7;11H \u001b[7;54H\u001b[0;38;2;53;40;121;48;2;108;94;181m█🬆\u001b[0;38;2;108;94;181;48;2;53;40;121m█\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[7;71H\u001b[0;39;48;2;13;20;16m \u001b[8;11H \u001b[8;50H\u001b[0;38;2;53;40;121;48;2;108;94;181m█🬆\u001b[0;38;2;108;94;181;48;2;149;149;149m🬬\u001b[0;38;2;108;94;181;48;2;53;40;121m🬹█\u001b[0;38;2;108;94;181;48;2;149;149;149m🬝\u001b[0;38;2;108;94;181;48;2;112;164;178m█\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[8;71H\u001b[0;39;48;2;13;20;16m \u001b[9;11H \u001b[9;46H\u001b[0;38;2;53;40;121;48;2;108;94;181m█🬄\u001b[0;38;2;108;94;181;48;2;149;149;149m🬡▀\u001b[0;38;2;108;94;181;48;2;112;164;178m🬂\u001b[0;38;2;112;164;178;48;2;149;149;149m▌\u001b[0;38;2;112;164;178;48;2;154;103;89mT\u001b[0;38;2;154;103;89;48;2;112;164;178m🬱\u001b[0;38;2;112;164;178;48;2;149;149;149m🬎\u001b[0;38;2;149;149;149;48;2;108;94;181m🬎\u001b[0;38;2;112;164;178;48;2;154;103;89m🬊\u001b[0;38;2;255;255;255;48;2;108;94;181m_\u001b[0;38;2;184;199;111;48;2;108;94;181m,\u001b[0;38;2;108;94;181;48;2;112;164;178m🬊\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[9;71H\u001b[0;39;48;2;13;20;16m \u001b[10;11H \u001b[10;43H\u001b[0;38;2;53;40;121;48;2;108;94;181m█\u001b[0;38;2;149;149;149;48;2;154;103;89m▛\u001b[0;38;2;149;149;149;48;2;108;94;181my\u001b[0;38;2;154;103;89;48;2;112;164;178m▄\u001b[0;38;2;112;164;178;48;2;184;199;111m🬎\u001b[0;38;2;184;199;111;48;2;149;149;149m▗\u001b[0;38;2;154;103;89;48;2;184;199;111m🬬\u001b[0;38;2;184;199;111;48;2;108;94;181m🬎\u001b[0;38;2;255;255;255;48;2;184;199;111m🬭\u001b[0;38;2;255;255;255;48;2;154;103;89m_\u001b[0;38;2;184;199;111;48;2;112;164;178m🬊\u001b[0;38;2;184;199;111;48;2;255;255;255m🬬\u001b[0;38;2;108;108;108;48;2;154;103;89m▄\u001b[0;38;2;184;199;111;48;2;154;103;89m▌🬕\u001b[0;38;2;108;94;181;48;2;154;103;89m🬋\u001b[0;38;2;149;149;149;48;2;108;108;108m🬨\u001b[0;38;2;108;94;181;48;2;112;164;178m🬎\u001b[0;38;2;112;164;178;48;2;108;94;181m_\u001b[10;71H\u001b[0;39;48;2;13;20;16m \u001b[11;11H \u001b[11;39H\u001b[0;38;2;53;40;121;48;2;149;149;149m█▀\u001b[0;38;2;53;40;121;48;2;112;164;178m🬊\u001b[0;38;2;184;199;111;48;2;108;94;181m🬭\u001b[0;38;2;184;199;111;48;2;112;164;178m🬓\u001b[0;38;2;112;164;178;48;2;149;149;149m🬺\u001b[0;38;2;184;199;111;48;2;108;108;108m▄\u001b[0;38;2;184;199;111;48;2;154;103;89m🬔\u001b[0;38;2;184;199;111;48;2;108;108;108m🬡\u001b[0;38;2;255;255;255;48;2;149;149;149m🬇\u001b[0;38;2;255;255;255;48;2;112;164;178mm\u001b[0;38;2;184;199;111;48;2;112;164;178m`\u001b[0;38;2;112;164;178;48;2;255;255;255m▙\u001b[0;38;2;255;255;255;48;2;112;164;178m▀█\u001b[0;38;2;255;255;255;48;2;255;255;255m \u001b[0;38;2;149;149;149;48;2;255;255;255m~\u001b[0;38;2;255;255;255;48;2;154;103;89m█\u001b[0;38;2;255;255;255;48;2;108;108;108m🬱\u001b[0;38;2;184;199;111;48;2;154;103;89m🬔🬅\u001b[0;38;2;112;164;178;48;2;154;103;89m🬡\u001b[0;38;2;108;108;108;48;2;149;149;149mg\u001b[0;38;2;112;164;178;48;2;149;149;149m▟\u001b[11;71H\u001b[0;39;48;2;13;20;16m \u001b[12;11H \u001b[12;39H\u001b[0;38;2;53;40;121;48;2;108;94;181m🬝\u001b[0;38;2;184;199;111;48;2;108;94;181m~\u001b[0;38;2;154;103;89;48;2;149;149;149mc\u001b[0;38;2;108;94;181;48;2;154;103;89mM\u001b[0;38;2;184;199;111;48;2;154;103;89m▗🬎\u001b[0;38;2;255;255;255;48;2;154;103;89m🬋\u001b[0;38;2;154;103;89;48;2;112;164;178m~\u001b[0;38;2;112;164;178;48;2;255;255;255m██\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[0;38;2;149;149;149;48;2;255;255;255m_\u001b[0;38;2;255;255;255;48;2;112;164;178m🬎\u001b[0;38;2;255;255;255;48;2;149;149;149m🬬\u001b[0;38;2;255;255;255;48;2;255;255;255m \u001b[0;38;2;255;255;255;48;2;149;149;149m🬲\u001b[0;38;2;184;199;111;48;2;154;103;89m🬖─\u001b[0;38;2;154;103;89;48;2;149;149;149m🬀\u001b[0;38;2;112;164;178;48;2;108;94;181m█\u001b[0;38;2;108;94;181;48;2;112;164;178m🬬\u001b[12;71H\u001b[0;39;48;2;13;20;16m \u001b[13;11H \u001b[13;34H\u001b[0;38;2;53;40;121;48;2;112;164;178m█\u001b[0;38;2;149;149;149;48;2;53;40;121m_\u001b[0;38;2;53;40;121;48;2;112;164;178m🬎\u001b[0;38;2;108;94;181;48;2;53;40;121m_\u001b[0;38;2;53;40;121;48;2;112;164;178m🬄\u001b[0;38;2;112;164;178;48;2;149;149;149m🬀🬎▙\u001b[0;38;2;154;103;89;48;2;184;199;111m_\u001b[0;38;2;184;199;111;48;2;154;103;89m🬛\u001b[0;38;2;154;103;89;48;2;149;149;149m▘\u001b[0;38;2;112;164;178;48;2;154;103;89m▙\u001b[0;38;2;112;164;178;48;2;184;199;111m🬻\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;255;255;255m█\u001b[0;38;2;112;164;178;48;2;154;103;89m🬆\u001b[0;38;2;184;199;111;48;2;154;103;89m▗\u001b[0;38;2;154;103;89;48;2;184;199;111m~\u001b[0;38;2;154;103;89;48;2;149;149;149m🬛\u001b[0;38;2;255;255;255;48;2;184;199;111m█\u001b[0;38;2;255;255;255;48;2;255;255;255m \u001b[0;38;2;255;255;255;48;2;149;149;149m🬴\u001b[0;38;2;184;199;111;48;2;108;108;108m🬮\u001b[0;38;2;184;199;111;48;2;154;103;89m🬏\u001b[0;38;2;154;103;89;48;2;108;94;181m🬯\u001b[0;38;2;112;164;178;48;2;149;149;149m🬭🬸\u001b[0;38;2;108;94;181;48;2;112;164;178m█\u001b[13;71H\u001b[0;39;48;2;13;20;16m \u001b[14;11H \u001b[14;34H\u001b[0;38;2;53;40;121;48;2;112;164;178m█\u001b[0;38;2;112;164;178;48;2;53;40;121m🬬\u001b[0;38;2;154;103;89;48;2;149;149;149m🬖\u001b[0;38;2;108;94;181;48;2;154;103;89m▀\u001b[0;38;2;108;94;181;48;2;149;149;149m🬦\u001b[0;38;2;184;199;111;48;2;154;103;89m~🬩\u001b[0;38;2;255;255;255;48;2;184;199;111m.🬇\u001b[0;38;2;154;103;89;48;2;112;164;178m_\u001b[0;38;2;112;164;178;48;2;104;55;43m█\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;184;199;111m█\u001b[0;38;2;154;103;89;48;2;149;149;149m🬅\u001b[0;38;2;184;199;111;48;2;154;103;89m🬉🬬\u001b[0;38;2;255;255;255;48;2;184;199;111m🬬\u001b[0;38;2;255;255;255;48;2;108;94;181m🬝\u001b[0;38;2;255;255;255;48;2;184;199;111m🬆\u001b[0;38;2;154;103;89;48;2;255;255;255m🬻\u001b[0;38;2;154;103;89;48;2;108;94;181m🬝\u001b[0;38;2;184;199;111;48;2;108;108;108m🬉\u001b[0;38;2;112;164;178;48;2;149;149;149m▄\u001b[0;38;2;112;164;178;48;2;184;199;111m█\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;108;94;181;48;2;112;164;178m█\u001b[14;71H\u001b[0;39;48;2;13;20;16m \u001b[15;11H \u001b[15;35H\u001b[0;38;2;53;40;121;48;2;149;149;149m🬝\u001b[0;38;2;108;94;181;48;2;184;199;111m🬌\u001b[0;38;2;112;164;178;48;2;149;149;149m🬱\u001b[0;38;2;154;103;89;48;2;112;164;178m🬩\u001b[0;38;2;154;103;89;48;2;184;199;111m🬎\u001b[0;38;2;184;199;111;48;2;154;103;89m🬱\u001b[0;38;2;154;103;89;48;2;149;149;149m🬬\u001b[0;38;2;112;164;178;48;2;108;108;108mf\u001b[0;38;2;112;164;178;48;2;154;103;89m🬲\u001b[0;38;2;112;164;178;48;2;184;199;111m▟\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;149;149;149m🬲\u001b[0;38;2;112;164;178;48;2;108;108;108m🬹\u001b[0;38;2;154;103;89;48;2;149;149;149m🬊\u001b[0;38;2;154;103;89;48;2;112;164;178m🬜\u001b[0;38;2;154;103;89;48;2;184;199;111m🬩\u001b[0;38;2;154;103;89;48;2;108;94;181m🬤\u001b[0;38;2;154;103;89;48;2;255;255;255m🬕\u001b[0;38;2;112;164;178;48;2;154;103;89m▄\u001b[0;38;2;112;164;178;48;2;149;149;149m▄▄\u001b[0;38;2;112;164;178;48;2;154;103;89m█\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;108;94;181;48;2;112;164;178m█\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[15;71H\u001b[0;39;48;2;13;20;16m \u001b[16;11H \u001b[16;33H\u001b[0;38;2;53;40;121;48;2;108;94;181m█\u001b[0;38;2;149;149;149;48;2;108;94;181m🬩\u001b[0;38;2;184;199;111;48;2;149;149;149m[\u001b[0;38;2;112;164;178;48;2;184;199;111m█\u001b[0;38;2;112;164;178;48;2;149;149;149m█▙\u001b[0;38;2;255;255;255;48;2;149;149;149m'\u001b[0;38;2;184;199;111;48;2;154;103;89m🬎\u001b[0;38;2;154;103;89;48;2;184;199;111m🬜\u001b[0;38;2;112;164;178;48;2;184;199;111m🬻\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;112;164;178;48;2;184;199;111m█\u001b[0;38;2;112;164;178;48;2;154;103;89m🬻\u001b[0;38;2;184;199;111;48;2;112;164;178m~\u001b[0;38;2;154;103;89;48;2;112;164;178m~\u001b[0;38;2;112;164;178;48;2;154;103;89m▟\u001b[0;38;2;112;164;178;48;2;112;164;178m \u001b[0;38;2;108;94;181;48;2;112;164;178m▐\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[16;71H\u001b[0;39;48;2;13;20;16m \u001b[17;1H\u001b[0;38;2;0;0;0;48;2;173;211;138m \u001b[0;39;48;2;49;71;56m \u001b[0;38;2;190;207;196;48;2;49;71;56m/home/goblin/01-resources/\u001b[0;38;2;223;188;229;48;2;49;71;56mintel-devref-ii.pdf\u001b[0;38;2;190;207;196;48;2;49;71;56m [1/2515] Tty PdfSections PdfTint Collapse Del\u001b[0;39;48;2;49;71;56m \u001b[18;1H\u001b[0;39;48;2;96;130;105m \u001b[18;3H\u001b[0;38;2;229;238;229;48;2;13;20;16mIntel®\u001b[18;10H64 and IA-32 Architectures\u001b[0;39;48;2;13;20;16m \u001b[19;3H\u001b[0;38;2;229;238;229;48;2;13;20;16mSoftware Developer’s Manual\u001b[0;39;48;2;13;20;16m \u001b[20;3H\u001b[0;38;2;229;238;229;48;2;13;20;16mVolume\u001b[20;10H2 (2A, 2B, 2C, & 2D):\u001b[0;39;48;2;13;20;16m \u001b[21;3H\u001b[0;38;2;229;238;229;48;2;13;20;16mInstruction Set Reference, A-Z\u001b[0;39;48;2;13;20;16m \u001b[22;3H\u001b[0;38;2;229;238;229;48;2;13;20;16mNOTE:\u001b[22;9HThe Intel 64 and IA-32 Architectures Software Developer's Manual consists of four volumes:\u001b[23;3HBasic\u001b[23;9HArchitecture, Order Number 253665; Instruction Set Reference, A-Z, Order Number 325383;\u001b[24;3HSystem\u001b[24;10HProgramming Guide, Order Number 325384; Model-Specific Registers, Order Number\u001b[0;39;48;2;13;20;16m \u001b[25;3H\u001b[0;38;2;229;238;229;48;2;13;20;16m335592.\u001b[25;11HRefer to all four volumes when evaluating your design needs.\u001b[0;39;48;2;13;20;16m \u001b[26;3H\u001b[0;38;2;229;238;229;48;2;13;20;16mOrder\u001b[26;9HNumber: 325383-084US\u001b[0;39;48;2;13;20;16m \u001b[27;3H\u001b[0;38;2;229;238;229;48;2;13;20;16mJune\u001b[27;8H2024\u001b[0;39;48;2;13;20;16m \u001b[28;11H \u001b[29;11H \u001b[30;11H \u001b[0m\u001b[18;3H\u001b[?25h"] +[12.75, "o", "\u001b[3;87H\u001b[0;38;2;245;247;238;48;2;91;126;90mDel \u001b[0m\u001b[18;3H\u001b[?25h"] +[13.15, "o", "\u001b[3;1H\u001b[0;38;2;0;0;0;48;2;173;211;138m \u001b[0;39;48;2;49;71;56m \u001b[0;38;2;190;207;196;48;2;49;71;56m/home/goblin/01-resources/\u001b[0;38;2;223;188;229;48;2;49;71;56mintel-devref-ii.pdf\u001b[0;38;2;190;207;196;48;2;49;71;56m [1/2515] Tty PdfSections PdfTint Collapse Del\u001b[0;39;48;2;49;71;56m \u001b[4;1H\u001b[0;39;48;2;96;130;105m \u001b[4;3H\u001b[0;38;2;229;238;229;48;2;13;20;16mIntel®\u001b[4;10H64\u001b[4;13Hand\u001b[4;17HIA-32\u001b[4;23HArchitectures\u001b[0;39;48;2;13;20;16m \u001b[5;3H\u001b[0;38;2;229;238;229;48;2;13;20;16mSoftware\u001b[5;12HDeveloper’s\u001b[5;24HManual\u001b[5;32H\u001b[0;39;48;2;13;20;16m \u001b[6;3H\u001b[0;38;2;229;238;229;48;2;13;20;16mVolume\u001b[6;10H2\u001b[6;12H(2A,\u001b[6;17H2B,\u001b[6;21H2C,\u001b[6;25H&\u001b[6;27H2D):\u001b[6;32H\u001b[0;39;48;2;13;20;16m \u001b[7;3H\u001b[0;38;2;229;238;229;48;2;13;20;16mInstruction\u001b[7;15HSet\u001b[7;19HReference,\u001b[7;30HA-Z\u001b[0;39;48;2;13;20;16m \u001b[8;3H\u001b[0;38;2;229;238;229;48;2;13;20;16mNOTE:\u001b[8;9HThe\u001b[8;13HIntel\u001b[8;19H64\u001b[8;22Hand\u001b[8;26HIA-32\u001b[8;32HArchitectures Software Developer's Manual\u001b[8;74Hconsists\u001b[8;83Hof\u001b[8;86Hfour\u001b[8;91Hvolumes:\u001b[9;3HBasic\u001b[9;9HArchitecture,\u001b[9;23HOrder\u001b[9;29HNumber 253665; Instruction Set Reference, A-Z,\u001b[9;76HOrder\u001b[9;82HNumber\u001b[9;89H325383;\u001b[10;3HSystem\u001b[10;10HProgramming\u001b[10;22HGuide,\u001b[10;29HOrder Number 325384; Model-Specific Registers,\u001b[10;76HOrder\u001b[10;82HNumber\u001b[11;3H335592.\u001b[11;11HRefer\u001b[11;17Hto\u001b[11;20Hall\u001b[11;24Hfour\u001b[11;29Hvolumes when evaluating your design needs.\u001b[12;3HOrder\u001b[12;9HNumber:\u001b[12;18H325383-084US\u001b[12;32H\u001b[0;39;48;2;13;20;16m \u001b[13;3H\u001b[0;38;2;229;238;229;48;2;13;20;16mJune\u001b[13;8H2024\u001b[13;32H\u001b[0;39;48;2;13;20;16m \u001b[14;32H \u001b[15;32H \u001b[16;32H \u001b[17;1H\u001b[0;39;48;2;21;32;25m \u001b[0;39;48;2;13;20;16m \u001b[18;1H\u001b[0;39;48;2;21;32;25m \u001b[18;3H\u001b[0;39;48;2;13;20;16m \u001b[18;10H \u001b[18;13H \u001b[18;17H \u001b[18;23H \u001b[19;3H \u001b[19;12H \u001b[19;24H \u001b[20;3H \u001b[20;10H \u001b[20;12H \u001b[20;17H \u001b[20;21H \u001b[20;25H \u001b[20;27H \u001b[21;3H \u001b[21;15H \u001b[21;19H \u001b[21;30H \u001b[22;3H \u001b[22;9H \u001b[22;13H \u001b[22;19H \u001b[22;22H \u001b[22;26H \u001b[22;32H \u001b[22;46H \u001b[22;55H \u001b[22;67H \u001b[22;74H \u001b[22;83H \u001b[22;86H \u001b[22;91H \u001b[23;3H \u001b[23;9H \u001b[23;23H \u001b[23;29H \u001b[23;36H \u001b[23;44H \u001b[23;56H \u001b[23;60H \u001b[23;71H \u001b[23;76H \u001b[23;82H \u001b[23;89H \u001b[24;3H \u001b[24;10H \u001b[24;22H \u001b[24;29H \u001b[24;35H \u001b[24;42H \u001b[24;50H \u001b[24;65H \u001b[24;76H \u001b[24;82H \u001b[25;3H \u001b[25;11H \u001b[25;17H \u001b[25;20H \u001b[25;24H \u001b[25;29H \u001b[25;37H \u001b[25;42H \u001b[25;53H \u001b[25;58H \u001b[25;65H \u001b[26;3H \u001b[26;9H \u001b[26;18H \u001b[27;3H \u001b[27;8H \u001b[0m\u001b[4;3H\u001b[?25h"] +[14.35, "o", "\u001b[3;63H\u001b[0;38;2;245;247;238;48;2;91;126;90mPdfSections \u001b[0m\u001b[4;3H\u001b[?25h"] +[14.85, "o", "\u001b[3;63H\u001b[0;38;2;190;207;196;48;2;49;71;56mPdfSections \u001b[4;88H\u001b[0;39;48;2;29;40;36m \u001b[0;38;2;178;195;184;48;2;29;40;36mPdfSections\u001b[0;39;48;2;29;40;36m \u001b[17;1H\u001b[0;38;2;255;255;255;48;2;73;102;86m \u001b[0;39;48;2;29;40;36m \u001b[0;38;2;178;195;184;48;2;29;40;36m/home/goblin/01-resources/\u001b[0;38;2;211;176;217;48;2;29;40;36m+PdfSections\u001b[0;38;2;178;195;184;48;2;29;40;36m Save Tty Collapse Del LocationsConfig\u001b[0;39;48;2;29;40;36m \u001b[18;1H\u001b[0;39;48;2;96;130;105m \u001b[18;6H\u001b[0;38;2;89;103;92;48;2;13;20;16m1\u001b[18;8Hintel-devref-ii.pdf:29:1\u001b[18;33H\u001b[0;38;2;229;238;229;48;2;13;20;16mChapter\u001b[18;41H1\u001b[18;43HAbout\u001b[18;49HThis\u001b[18;54HManual\u001b[19;6H\u001b[0;38;2;89;103;92;48;2;13;20;16m2\u001b[19;8Hintel-devref-ii.pdf:29:2\u001b[19;35H\u001b[0;38;2;229;238;229;48;2;13;20;16m1.1\u001b[19;39HOverview\u001b[19;48Hof\u001b[19;51HVolume\u001b[19;58H2A,\u001b[19;62H2B,\u001b[19;66H2C,\u001b[19;70Hand\u001b[19;74H2D:\u001b[19;78HInstruction\u001b[19;90HSet\u001b[19;94HRefere\u001b[0;38;2;89;103;92;48;2;13;20;16m↩\u001b[20;8H\u001b[0;38;2;229;238;229;48;2;13;20;16mnce\u001b[21;6H\u001b[0;38;2;89;103;92;48;2;13;20;16m3\u001b[21;8Hintel-devref-ii.pdf:31:3\u001b[21;33H\u001b[0;38;2;229;238;229;48;2;13;20;16mChapter\u001b[21;41H2\u001b[21;43HInstruction\u001b[21;55HFormat\u001b[22;6H\u001b[0;38;2;89;103;92;48;2;13;20;16m4\u001b[22;8Hintel-devref-ii.pdf:31:4\u001b[22;35H\u001b[0;38;2;229;238;229;48;2;13;20;16m2.1\u001b[22;39HInstruction\u001b[22;51HFormat\u001b[22;58Hfor\u001b[22;62HProtected\u001b[22;72HMode,\u001b[22;78Hreal-address\u001b[22;91HMode,\u001b[22;97Hand\u001b[0;38;2;89;103;92;48;2;13;20;16m↩\u001b[23;9H\u001b[0;38;2;229;238;229;48;2;13;20;16mvirtual-8086\u001b[23;22Hmode\u001b[24;6H\u001b[0;38;2;89;103;92;48;2;13;20;16m5\u001b[24;8Hintel-devref-ii.pdf:31:5\u001b[24;37H\u001b[0;38;2;229;238;229;48;2;13;20;16m2.1.1\u001b[24;43HInstruction\u001b[24;55HPrefixes\u001b[25;6H\u001b[0;38;2;89;103;92;48;2;13;20;16m6\u001b[25;8Hintel-devref-ii.pdf:33:6\u001b[25;37H\u001b[0;38;2;229;238;229;48;2;13;20;16m2.1.2\u001b[25;43HOpcodes\u001b[26;6H\u001b[0;38;2;89;103;92;48;2;13;20;16m7\u001b[26;8Hintel-devref-ii.pdf:33:7\u001b[26;37H\u001b[0;38;2;229;238;229;48;2;13;20;16m2.1.3\u001b[26;43HModR/M\u001b[26;50Hand\u001b[26;54HSIB\u001b[26;58HBytes\u001b[27;6H\u001b[0;38;2;89;103;92;48;2;13;20;16m8\u001b[27;8Hintel-devref-ii.pdf:33:8\u001b[27;37H\u001b[0;38;2;229;238;229;48;2;13;20;16m2.1.4\u001b[27;43HDisplacement\u001b[27;56Hand\u001b[27;60HImmediate\u001b[27;70HBytes\u001b[28;6H\u001b[0;38;2;89;103;92;48;2;13;20;16m9\u001b[28;8Hintel-devref-ii.pdf:34:9\u001b[28;37H\u001b[0;38;2;229;238;229;48;2;13;20;16m2.1.5\u001b[28;43HAddressing-Mode\u001b[28;59HEncoding\u001b[28;68Hof\u001b[28;71HModR/M\u001b[28;78Hand\u001b[28;82HSIB\u001b[28;86HBytes\u001b[29;5H\u001b[0;38;2;89;103;92;48;2;13;20;16m10\u001b[29;8Hintel-devref-ii.pdf:37:10\u001b[29;36H\u001b[0;38;2;229;238;229;48;2;13;20;16m2.2\u001b[29;40HIA-32e\u001b[29;47HMode\u001b[30;5H\u001b[0;38;2;89;103;92;48;2;13;20;16m11\u001b[30;8Hintel-devref-ii.pdf:37:11\u001b[30;38H\u001b[0;38;2;229;238;229;48;2;13;20;16m2.2.1\u001b[30;44HREX\u001b[30;48HPrefixes\u001b[0m\u001b[4;3H\u001b[?25h"] +[16.15, "o", "\u001b[3;1H\u001b[0;38;2;255;255;255;48;2;73;102;86m \u001b[0;39;48;2;29;40;36m \u001b[0;38;2;178;195;184;48;2;29;40;36m/home/goblin/01-resources/\u001b[0;38;2;211;176;217;48;2;29;40;36mintel-devref-ii.pdf\u001b[0;38;2;178;195;184;48;2;29;40;36m [1/2515] Tty PdfSections PdfTint Collapse Del\u001b[0;39;48;2;29;40;36m \u001b[4;88H\u001b[0;39;48;2;13;20;16m \u001b[17;1H\u001b[0;38;2;0;0;0;48;2;173;211;138m \u001b[0;39;48;2;49;71;56m \u001b[0;38;2;190;207;196;48;2;49;71;56m/home/goblin/01-resources/\u001b[0;38;2;223;188;229;48;2;49;71;56m+PdfSections\u001b[0;38;2;190;207;196;48;2;49;71;56m Save Tty Collapse Del LocationsConfig\u001b[0;39;48;2;49;71;56m \u001b[0m\u001b[17;80H\u001b[?25h"] +[16.45, "o", "\u001b[0m\u001b[17;81H\u001b[?25h"] +[16.54, "o", "\u001b[17;81H\u001b[0;38;2;190;207;196;48;2;49;71;56mC\u001b[0m\u001b[17;82H\u001b[?25h"] +[16.63, "o", "\u001b[17;82H\u001b[0;38;2;190;207;196;48;2;49;71;56mP\u001b[0m\u001b[17;83H\u001b[?25h"] +[16.72, "o", "\u001b[17;83H\u001b[0;38;2;190;207;196;48;2;49;71;56mU\u001b[0m\u001b[17;84H\u001b[?25h"] +[16.81, "o", "\u001b[17;84H\u001b[0;38;2;190;207;196;48;2;49;71;56mI\u001b[0m\u001b[17;85H\u001b[?25h"] +[16.9, "o", "\u001b[17;85H\u001b[0;38;2;190;207;196;48;2;49;71;56mD\u001b[0m\u001b[17;86H\u001b[?25h"] +[17.6, "o", "\u001b[17;81H\u001b[0;38;2;245;247;238;48;2;107;120;88mCPUID \u001b[0m\u001b[17;86H\u001b[?25h"] +[18.0, "o", "\u001b[17;81H\u001b[0;38;2;190;207;196;48;2;49;71;56mCPUID\u001b[0;39;48;2;49;71;56m \u001b[18;1H\u001b[0;39;48;2;21;32;25m \u001b[18;5H\u001b[0;38;2;89;103;92;48;2;13;20;16m92\u001b[18;28H101:92\u001b[0;38;2;229;238;229;48;2;13;20;16m 3.1\u001b[18;41HInterpreting\u001b[18;54Hthe Instruction\u001b[18;70HReference\u001b[18;80HPages\u001b[19;1H\u001b[0;39;48;2;96;130;105m \u001b[19;5H\u001b[0;38;2;89;103;92;48;2;13;20;16m93\u001b[19;28H101:93\u001b[19;35H\u001b[0;38;2;229;238;229;48;2;13;20;16m \u001b[19;39H3.1.1 Instruction Format\u001b[0;39;48;2;13;20;16m \u001b[19;66H \u001b[19;70H \u001b[19;74H \u001b[19;78H \u001b[19;90H \u001b[19;94H \u001b[20;5H\u001b[0;38;2;89;103;92;48;2;13;20;16m94\u001b[20;8Hintel-devref-ii.pdf:102:94\u001b[20;41H\u001b[0;38;2;229;238;229;48;2;13;20;16m3.1.1.1\u001b[20;49HOpcode\u001b[20;56HColumn\u001b[20;63Hin\u001b[20;66Hthe\u001b[20;70HInstruction\u001b[20;82HSummary\u001b[20;90HTable\u001b[20;96H(Ins\u001b[0;38;2;89;103;92;48;2;13;20;16m↩\u001b[21;6H \u001b[21;8H\u001b[0;38;2;229;238;229;48;2;13;20;16mtructions without VEX Prefix)\u001b[0;39;48;2;13;20;16m \u001b[21;41H \u001b[21;43H \u001b[21;55H \u001b[22;5H\u001b[0;38;2;89;103;92;48;2;13;20;16m95\u001b[22;28H103:95\u001b[22;35H\u001b[0;38;2;229;238;229;48;2;13;20;16m \u001b[22;39H 3.1.1.2 Opc\u001b[22;53Hde Column in the Instruction Summary Tabl\u001b[22;95H (I\u001b[22;99Hs\u001b[23;8Htruc\u001b[23;13Hions with VEX\u001b[23;27Hprefix)\u001b[24;5H\u001b[0;38;2;89;103;92;48;2;13;20;16m96\u001b[24;28H105:96\u001b[24;37H\u001b[0;38;2;229;238;229;48;2;13;20;16m 3.1.1.3 Instruction Column\u001b[24;68Hin\u001b[24;71Hthe\u001b[24;75HOpcode\u001b[24;82HSummary\u001b[24;90HTable\u001b[25;5H\u001b[0;38;2;89;103;92;48;2;13;20;16m97\u001b[25;28H108:97\u001b[25;37H\u001b[0;38;2;229;238;229;48;2;13;20;16m 3.1.1.4 Operand\u001b[25;57HEncoding\u001b[25;66HColumn\u001b[25;73Hin\u001b[25;76Hthe\u001b[25;80HInstruction\u001b[25;92HSummary\u001b[25;100H\u001b[0;38;2;89;103;92;48;2;13;20;16m↩\u001b[26;6H \u001b[26;8H\u001b[0;38;2;229;238;229;48;2;13;20;16mTable\u001b[0;39;48;2;13;20;16m \u001b[26;37H \u001b[26;43H \u001b[26;50H \u001b[26;54H \u001b[26;58H \u001b[27;5H\u001b[0;38;2;89;103;92;48;2;13;20;16m9\u001b[27;28H108:98\u001b[27;37H\u001b[0;38;2;229;238;229;48;2;13;20;16m 3.1.1.5 64/32-bit Mode Column in the\u001b[27;78HInstruction\u001b[27;90HSummary\u001b[27;98HTa\u001b[0;38;2;89;103;92;48;2;13;20;16m↩\u001b[28;6H \u001b[28;8H\u001b[0;38;2;229;238;229;48;2;13;20;16mble\u001b[0;39;48;2;13;20;16m \u001b[28;37H \u001b[28;43H \u001b[28;59H \u001b[28;68H \u001b[28;71H \u001b[28;78H \u001b[28;82H \u001b[28;86H \u001b[29;5H\u001b[0;38;2;89;103;92;48;2;13;20;16m99\u001b[29;28H109:99\u001b[29;36H\u001b[0;38;2;229;238;229;48;2;13;20;16m \u001b[29;40H 3.1.1.6 \u001b[0;38;2;245;247;238;48;2;60;97;74mCPUID\u001b[29;55H\u001b[0;38;2;229;238;229;48;2;13;20;16mSupport\u001b[29;63HColumn\u001b[29;70Hin\u001b[29;73Hthe\u001b[29;77HInstruction\u001b[29;89HSummary\u001b[29;97HTab\u001b[0;38;2;89;103;92;48;2;13;20;16m↩\u001b[30;5H \u001b[30;8H\u001b[0;38;2;229;238;229;48;2;13;20;16mle\u001b[0;39;48;2;13;20;16m \u001b[30;38H \u001b[30;44H \u001b[30;48H \u001b[0m\u001b[17;86H\u001b[?25h"] +[18.9, "o", "\u001b[17;81H\u001b[0;38;2;245;247;238;48;2;107;120;88mCPUID \u001b[0m\u001b[17;86H\u001b[?25h"] +[19.3, "o", "\u001b[17;81H\u001b[0;38;2;190;207;196;48;2;49;71;56mCPUID\u001b[0;39;48;2;49;71;56m \u001b[18;4H\u001b[0;38;2;89;103;92;48;2;13;20;16m1\u001b[18;6H6\u001b[18;28H3\u001b[18;30H8\u001b[18;32H196\u001b[18;37H\u001b[0;38;2;229;238;229;48;2;13;20;16m CMPXCHG—Compare and Exchange\u001b[0;39;48;2;13;20;16m \u001b[18;70H \u001b[18;80H \u001b[19;1H\u001b[0;39;48;2;21;32;25m \u001b[19;4H\u001b[0;38;2;89;103;92;48;2;13;20;16m1\u001b[19;6H7\u001b[19;28H310\u001b[19;32H197\u001b[19;39H\u001b[0;38;2;229;238;229;48;2;13;20;16m CMPXCHG8B/CMPXCHG16B—Compare\u001b[19;69Hand\u001b[19;73HExchange\u001b[19;82HBytes\u001b[20;1H\u001b[0;39;48;2;96;130;105m \u001b[20;4H\u001b[0;38;2;89;103;92;48;2;13;20;16m1\u001b[20;6H8\u001b[20;28H313\u001b[20;32H198\u001b[20;40H\u001b[0;38;2;229;238;229;48;2;13;20;16mCOMISD—Com\u001b[20;51Hare Sca\u001b[20;59Har Ordered\u001b[20;70HDouble Precision Floating-Poin\u001b[21;9H Values and Set EFLAGS\u001b[0;39;48;2;13;20;16m \u001b[22;4H\u001b[0;38;2;89;103;92;48;2;13;20;16m1\u001b[22;6H9\u001b[22;28H315\u001b[22;32H199\u001b[22;40H\u001b[0;38;2;229;238;229;48;2;13;20;16mCOMISS—Com\u001b[22;51Hare Sca\u001b[22;59Har Ordered\u001b[22;70HSingle Precision Floating-Poin\u001b[23;9H Values and Set EFLAGS\u001b[0;39;48;2;13;20;16m \u001b[24;4H\u001b[0;38;2;89;103;92;48;2;13;20;16m200\u001b[24;28H317\u001b[24;32H200\u001b[24;40H\u001b[0;38;2;245;247;238;48;2;60;97;74mCPUID\u001b[0;38;2;229;238;229;48;2;13;20;16m—CPU Identif\u001b[24;58Hcati\u001b[24;63Hn\u001b[0;39;48;2;13;20;16m \u001b[24;68H \u001b[24;71H \u001b[24;75H \u001b[24;82H \u001b[24;90H \u001b[25;4H\u001b[0;38;2;89;103;92;48;2;13;20;16m201\u001b[25;28H31\u001b[25;32H201\u001b[25;41H\u001b[0;38;2;229;238;229;48;2;13;20;16m Basic CPUID Informat\u001b[25;63Hon\u001b[25;66H\u001b[0;39;48;2;13;20;16m \u001b[25;73H \u001b[25;76H \u001b[25;80H \u001b[25;92H \u001b[25;100H \u001b[26;4H\u001b[0;38;2;89;103;92;48;2;13;20;16m202\u001b[26;8Hintel-devref-ii.pdf:318:202\u001b[26;44H\u001b[0;38;2;229;238;229;48;2;13;20;16m0H\u001b[27;4H\u001b[0;38;2;89;103;92;48;2;13;20;16m203\u001b[27;28H31\u001b[27;32H203\u001b[27;41H\u001b[0;38;2;229;238;229;48;2;13;20;16m 0\u001b[27;46HH\u001b[0;39;48;2;13;20;16m \u001b[27;49H \u001b[27;59H \u001b[27;64H \u001b[27;71H \u001b[27;74H \u001b[27;78H \u001b[27;90H \u001b[27;98H \u001b[28;4H\u001b[0;38;2;89;103;92;48;2;13;20;16m204\u001b[28;8Hintel-devref-ii.pdf:318:204\u001b[28;44H\u001b[0;38;2;229;238;229;48;2;13;20;16m02H\u001b[29;4H\u001b[0;38;2;89;103;92;48;2;13;20;16m205\u001b[29;28H318\u001b[29;32H205\u001b[29;41H\u001b[0;38;2;229;238;229;48;2;13;20;16m 03H\u001b[0;39;48;2;13;20;16m \u001b[29;49H \u001b[29;55H \u001b[29;63H \u001b[29;70H \u001b[29;73H \u001b[29;77H \u001b[29;89H \u001b[29;97H \u001b[30;4H\u001b[0;38;2;89;103;92;48;2;13;20;16m206\u001b[30;8Hintel-devref-ii.pdf:318:206\u001b[30;42H\u001b[0;38;2;229;238;229;48;2;13;20;16mDeterministic\u001b[30;56HCache\u001b[30;62HParameters\u001b[30;73HLeaf\u001b[30;78H(Initial\u001b[30;87HEAX\u001b[30;91HValue\u001b[30;97H=\u001b[30;99H0\u001b[0m\u001b[17;86H\u001b[?25h"] +[20.2, "o", "\u001b[24;8H\u001b[0;38;2;245;247;238;48;2;107;120;88mintel-devref-ii.pdf:317:\u001b[0m\u001b[17;86H\u001b[?25h"] +[20.7, "o", "\u001b[3;1H\u001b[0;38;2;0;0;0;48;2;173;211;138m \u001b[0;39;48;2;49;71;56m \u001b[0;38;2;190;207;196;48;2;49;71;56m/home/goblin/01-resources/\u001b[0;38;2;223;188;229;48;2;49;71;56mintel-devref-ii.pdf\u001b[0;38;2;190;207;196;48;2;49;71;56m [317/2515] Tty PdfSections PdfTint Collapse Del\u001b[0;39;48;2;49;71;56m \u001b[4;1H\u001b[0;39;48;2;21;32;25m \u001b[4;3H\u001b[0;38;2;229;238;229;48;2;13;20;16mCPUID—CPU\u001b[4;13HIdentification\u001b[0;39;48;2;13;20;16m \u001b[5;1H\u001b[0;39;48;2;96;130;105m \u001b[5;3H\u001b[0;38;2;229;238;229;48;2;13;20;16mV\u001b[5;5Hl. 2A 3-217\u001b[0;39;48;2;13;20;16m \u001b[5;24H \u001b[6;3H\u001b[0;38;2;229;238;229;48;2;13;20;16mCPUID—CPU Identification\u001b[0;39;48;2;13;20;16m \u001b[7;15H\u001b[0;38;2;229;238;229;48;2;13;20;16mOperand Encoding\u001b[0;39;48;2;13;20;16m \u001b[8;3H\u001b[0;38;2;229;238;229;48;2;13;20;16mDescription\u001b[0;39;48;2;13;20;16m \u001b[8;19H \u001b[8;22H \u001b[8;26H \u001b[8;32H \u001b[8;46H \u001b[8;55H \u001b[8;67H \u001b[8;74H \u001b[8;83H \u001b[8;86H \u001b[8;91H \u001b[9;3H\u001b[0;38;2;229;238;229;48;2;13;20;16mThe ID flag (bit 21) in the EFLAGS register indicates support for the CPUID instruction. If a\u001b[9;97Hsoft\u001b[10;3Hset and clear this\u001b[10;22Hflag, the p\u001b[10;34Hocesso\u001b[10;42Hexecuting the pro\u001b[10;60Hedure support\u001b[10;74H the CPUID instruction.\u001b[10;98HThi\u001b[11;3Hoperates th\u001b[11;15H same in\u001b[11;24Hn\u001b[11;26Hn-64-bit modes and 64-b\u001b[11;50Ht mode.\u001b[11;58H\u001b[0;39;48;2;13;20;16m \u001b[11;65H \u001b[12;3H\u001b[0;38;2;229;238;229;48;2;13;20;16mCPUID\u001b[12;9Hreturns\u001b[12;17Hprocessor identification\u001b[12;42Hand\u001b[12;46Hfeature\u001b[12;54Hinformation\u001b[12;66Hin\u001b[12;69Hthe\u001b[12;73HEAX,\u001b[12;78HEBX,\u001b[12;83HECX,\u001b[12;88Hand\u001b[12;92HEDX\u001b[12;96Hregis\u001b[13;3Hinstruction’s\u001b[13;17Houtput\u001b[13;24His\u001b[13;27Hdependent\u001b[13;37Hon\u001b[13;40Hthe\u001b[13;44Hcontents\u001b[13;53Hof\u001b[13;56Hthe\u001b[13;60HEAX\u001b[13;64Hregister\u001b[13;73Hupon\u001b[13;78Hexecution\u001b[13;88H(in\u001b[13;92Hsome\u001b[13;97Hcase\u001b[14;3HFor\u001b[14;7Hexample,\u001b[14;16Hthe\u001b[14;20Hfollowing\u001b[14;30Hpseudocode\u001b[14;41Hloads\u001b[14;47HEAX\u001b[14;51Hwith\u001b[14;56H00H\u001b[14;60Hand\u001b[14;64Hcauses\u001b[14;71HCPUID\u001b[14;77Hto\u001b[14;80Hreturn\u001b[14;87Ha\u001b[14;89HMaximum\u001b[14;97HRetu\u001b[15;3Hand\u001b[15;7Hthe\u001b[15;11HVendor\u001b[15;18HIdentification\u001b[15;33HString\u001b[15;40Hin\u001b[15;43Hthe\u001b[15;47Happropriate\u001b[15;59Hregisters:\u001b[17;1H\u001b[0;38;2;255;255;255;48;2;73;102;86m \u001b[0;39;48;2;29;40;36m \u001b[0;38;2;178;195;184;48;2;29;40;36m/home/goblin/01-resources/\u001b[0;38;2;211;176;217;48;2;29;40;36m+PdfSections\u001b[0;38;2;178;195;184;48;2;29;40;36m Save Tty Collapse Del LocationsConfig CPUID\u001b[0;39;48;2;29;40;36m \u001b[24;8H\u001b[0;38;2;245;247;238;48;2;60;97;74mintel-devref-ii.pdf:317:200 \u001b[24;41H\u001b[0;38;2;229;238;229;48;2;13;20;16mPUID\u001b[0m\u001b[4;3H\u001b[?25h"] +[22.5, "o", "\u001b[17;61H\u001b[0;38;2;245;247;238;48;2;91;126;90mDel \u001b[0m\u001b[4;3H\u001b[?25h"] +[22.9, "o", "\u001b[5;1H\u001b[0;39;48;2;21;32;25m \u001b[7;1H\u001b[0;39;48;2;96;130;105m \u001b[16;3H\u001b[0;38;2;229;238;229;48;2;13;20;16mMOV\u001b[16;7HEAX,\u001b[16;12H00H\u001b[17;1H\u001b[0;39;48;2;21;32;25m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;229;238;229;48;2;13;20;16mCPUID\u001b[0;39;48;2;13;20;16m \u001b[18;3H\u001b[0;38;2;229;238;229;48;2;13;20;16mTable 3-17 shows information returned, depending on the initi\u001b[18;65Hl value\u001b[18;73Hloaded\u001b[18;80Hinto\u001b[18;85Hthe\u001b[18;89HEAX\u001b[18;93Hregister\u001b[19;3HTwo types of information are returned: basic and extended function information. If a\u001b[19;88Hvalue\u001b[19;94Hentered\u001b[20;1H\u001b[0;39;48;2;21;32;25m \u001b[20;3H\u001b[0;38;2;229;238;229;48;2;13;20;16mis higher than the maximum input\u001b[20;36Hvalue for basic or\u001b[20;55Hextended function for\u001b[20;77Hthat pr\u001b[20;85Hcess\u001b[20;90Hr then the \u001b[21;3Hhighest basic\u001b[21;17Hi\u001b[21;19Hformation leaf\u001b[21;34His\u001b[21;37Hreturned.\u001b[21;47HFor\u001b[21;51Hexample,\u001b[21;60Husing\u001b[21;66Hsome\u001b[21;71HIntel\u001b[21;77Hprocessors,\u001b[21;89Hthe\u001b[21;93Hfollowin\u001b[22;3HCPUID.EAX = 05H (* Returns MONITOR/MWAIT leaf. *) \u001b[0;39;48;2;13;20;16m \u001b[22;55H \u001b[22;62H \u001b[22;70H \u001b[22;77H \u001b[22;87H \u001b[23;3H\u001b[0;38;2;229;238;229;48;2;13;20;16mCPUID.EAX = 0AH (* Returns Architectural\u001b[23;44HPerformance\u001b[23;56HMonitoring\u001b[23;67Hleaf.\u001b[23;73H*)\u001b[24;3HCPUID.EAX = 0BH (* Returns Extended Topology Enum\u001b[24;53Hration leaf.\u001b[24;66H*)2\u001b[25;3HCPUID.EAX =1FH (* Returns V2 Extended\u001b[25;41HTopology Enumeration leaf.\u001b[25;68H*)2\u001b[26;3HCPUID.EAX = 80000008H (* Returns\u001b[26;36Hlinear/physical\u001b[26;52Haddress\u001b[26;60Hsize\u001b[26;65Hdata.\u001b[26;71H*)\u001b[27;3HCPUID.EAX = 8000000AH (* INVALID:\u001b[27;37HReturns same\u001b[27;50Hinformation\u001b[27;62Has\u001b[27;65HCPUID.EAX\u001b[27;75H=\u001b[27;77H0BH.\u001b[27;82H*)\u001b[28;3HIf a\u001b[28;8Hvalue entered for CPUID.EAX\u001b[28;36His\u001b[28;39Hless\u001b[28;44Hthan\u001b[28;49Hor\u001b[28;52Hequal\u001b[28;58Hto\u001b[28;61Hthe\u001b[28;65Hmaximum\u001b[28;73Hinput\u001b[28;79Hvalue\u001b[28;85Hand\u001b[28;89Hthe\u001b[28;93Hleaf\u001b[28;98His\u001b[29;3Hthat\u001b[29;8Hprocessor then 0 is returned\u001b[29;37Hin\u001b[29;40Hall\u001b[29;44Hthe\u001b[29;48Hregisters.\u001b[30;4H\u001b[0;39;48;2;13;20;16m \u001b[30;8H \u001b[30;42H \u001b[30;56H \u001b[30;62H \u001b[30;73H \u001b[30;78H \u001b[30;87H \u001b[30;91H \u001b[30;97H \u001b[30;99H \u001b[0m\u001b[4;3H\u001b[?25h"] +[23.7, "o", "\u001b[0m\u001b[9;41H\u001b[?25h"] +[24.0, "o", "\u001b[4;97H\u001b[0;39;48;2;29;40;36m \u001b[0;38;2;178;195;184;48;2;29;40;36m /\u001b[0;39;48;2;29;40;36m \u001b[0m\u001b[4;100H\u001b[?25h"] +[24.3, "o", "\u001b[4;96H\u001b[0;39;48;2;29;40;36m \u001b[4;98H\u001b[0;38;2;178;195;184;48;2;29;40;36m/V\u001b[0m\u001b[4;100H\u001b[?25h"] +[24.39, "o", "\u001b[4;95H\u001b[0;39;48;2;29;40;36m \u001b[4;97H\u001b[0;38;2;178;195;184;48;2;29;40;36m/Ve\u001b[0m\u001b[4;100H\u001b[?25h"] +[24.48, "o", "\u001b[4;94H\u001b[0;39;48;2;29;40;36m \u001b[4;96H\u001b[0;38;2;178;195;184;48;2;29;40;36m/Ven\u001b[0m\u001b[4;100H\u001b[?25h"] +[24.57, "o", "\u001b[4;93H\u001b[0;39;48;2;29;40;36m \u001b[4;95H\u001b[0;38;2;178;195;184;48;2;29;40;36m/Vend\u001b[0m\u001b[4;100H\u001b[?25h"] +[24.66, "o", "\u001b[4;92H\u001b[0;39;48;2;29;40;36m \u001b[4;94H\u001b[0;38;2;178;195;184;48;2;29;40;36m/Vendo\u001b[0m\u001b[4;100H\u001b[?25h"] +[24.75, "o", "\u001b[4;91H\u001b[0;39;48;2;29;40;36m \u001b[4;93H\u001b[0;38;2;178;195;184;48;2;29;40;36m/Vendor\u001b[0m\u001b[4;100H\u001b[?25h"] +[25.05, "o", "\u001b[4;91H\u001b[0;39;48;2;13;20;16m \u001b[5;1H\u001b[0;39;48;2;96;130;105m \u001b[7;1H\u001b[0;39;48;2;21;32;25m \u001b[16;3H\u001b[0;39;48;2;13;20;16m \u001b[16;7H \u001b[16;12H \u001b[17;1H\u001b[0;38;2;255;255;255;48;2;73;102;86m \u001b[0;39;48;2;29;40;36m \u001b[0;38;2;178;195;184;48;2;29;40;36m/home/goblin/01-resources/\u001b[0;38;2;211;176;217;48;2;29;40;36m+Search\u001b[0;38;2;178;195;184;48;2;29;40;36m Save Tty Collapse Del LocationsConfig\u001b[0;39;48;2;29;40;36m \u001b[18;1H\u001b[0;39;48;2;96;130;105m \u001b[18;3H\u001b[0;38;2;89;103;92;48;2;13;20;16m 1 intel-devref-ii.pdf:317:1\u001b[0;39;48;2;13;20;16m \u001b[18;42H \u001b[18;52H \u001b[18;55H \u001b[18;59H \u001b[18;67H \u001b[18;73H \u001b[18;80H \u001b[18;85H \u001b[18;89H \u001b[18;93H \u001b[19;1H\u001b[0;39;48;2;96;130;105m \u001b[19;3H\u001b[0;38;2;89;103;92;48;2;13;20;16m 2 \u001b[0;38;2;229;238;229;48;2;13;20;16mVendor\u001b[0;39;48;2;13;20;16m \u001b[19;16H \u001b[19;28H \u001b[19;32H \u001b[19;42H \u001b[19;48H \u001b[19;52H \u001b[19;61H \u001b[19;70H \u001b[19;83H \u001b[19;86H \u001b[19;88H \u001b[19;94H \u001b[20;3H\u001b[0;38;2;89;103;92;48;2;13;20;16m \u001b[20;6H3 intel-devref-ii.pdf:332:1\u001b[0;39;48;2;13;20;16m \u001b[20;36H \u001b[20;42H \u001b[20;46H \u001b[20;52H \u001b[20;55H \u001b[20;64H \u001b[20;73H \u001b[20;77H \u001b[20;82H \u001b[20;92H \u001b[20;97H \u001b[21;3H\u001b[0;38;2;89;103;92;48;2;13;20;16m 4 \u001b[0;38;2;229;238;229;48;2;13;20;16mVendor\u001b[0;39;48;2;13;20;16m \u001b[21;17H \u001b[21;29H \u001b[21;34H \u001b[21;37H \u001b[21;47H \u001b[21;51H \u001b[21;60H \u001b[21;66H \u001b[21;71H \u001b[21;77H \u001b[21;89H \u001b[21;93H \u001b[22;3H\u001b[0;38;2;89;103;92;48;2;13;20;16m 5 intel-devref-ii.pdf:332:2\u001b[0;39;48;2;13;20;16m \u001b[22;44H \u001b[22;50H \u001b[23;3H\u001b[0;38;2;89;103;92;48;2;13;20;16m 6 \u001b[0;38;2;229;238;229;48;2;13;20;16mVendor\u001b[23;15H\u001b[0;39;48;2;13;20;16m \u001b[23;19H \u001b[23;22H \u001b[23;30H \u001b[23;44H \u001b[23;56H \u001b[23;67H \u001b[23;73H \u001b[24;3H\u001b[0;38;2;89;103;92;48;2;13;20;16m 7 intel-devref-ii.pdf:333:1\u001b[0;39;48;2;13;20;16m \u001b[24;39H \u001b[24;48H \u001b[24;60H \u001b[24;66H \u001b[25;3H\u001b[0;38;2;89;103;92;48;2;13;20;16m 8 \u001b[0;38;2;229;238;229;48;2;13;20;16mVendor\u001b[0;39;48;2;13;20;16m \u001b[25;18H \u001b[25;21H \u001b[25;29H \u001b[25;32H \u001b[25;41H \u001b[25;50H \u001b[25;62H \u001b[25;68H \u001b[26;3H\u001b[0;38;2;89;103;92;48;2;13;20;16m 9 intel-devref-ii.pdf:333:2\u001b[0;39;48;2;13;20;16m \u001b[26;36H \u001b[26;52H \u001b[26;60H \u001b[26;65H \u001b[26;71H \u001b[27;3H\u001b[0;38;2;89;103;92;48;2;13;20;16m 10 \u001b[0;38;2;229;238;229;48;2;13;20;16mVendor\u001b[27;15H\u001b[0;39;48;2;13;20;16m \u001b[27;25H \u001b[27;28H \u001b[27;37H \u001b[27;45H \u001b[27;50H \u001b[27;62H \u001b[27;65H \u001b[27;75H \u001b[27;77H \u001b[27;82H \u001b[28;3H\u001b[0;38;2;89;103;92;48;2;13;20;16m 11\u001b[28;8Hintel-devref-ii.pdf:333:3\u001b[0;39;48;2;13;20;16m \u001b[28;36H \u001b[28;39H \u001b[28;44H \u001b[28;49H \u001b[28;52H \u001b[28;58H \u001b[28;61H \u001b[28;65H \u001b[28;73H \u001b[28;79H \u001b[28;85H \u001b[28;89H \u001b[28;93H \u001b[28;98H \u001b[29;3H\u001b[0;38;2;89;103;92;48;2;13;20;16m 12\u001b[29;8H\u001b[0;38;2;229;238;229;48;2;13;20;16mVendor\u001b[0;39;48;2;13;20;16m \u001b[29;18H \u001b[29;23H \u001b[29;25H \u001b[29;28H \u001b[29;37H \u001b[29;40H \u001b[29;44H \u001b[29;48H \u001b[30;5H\u001b[0;38;2;89;103;92;48;2;13;20;16m13\u001b[30;8Hintel-devref-ii.pdf:333:4\u001b[0m\u001b[9;41H\u001b[?25h"] +[27.05, "o", ""] diff --git a/docs/site/casts/terminals.cast b/docs/site/casts/terminals.cast new file mode 100644 index 00000000..ee23ccf5 --- /dev/null +++ b/docs/site/casts/terminals.cast @@ -0,0 +1,59 @@ +{"version": 2, "width": 100, "height": 30, "title": "Terminals as panes", "env": {"TERM": "xterm-256color", "SHELL": "/bin/sh"}} +[0.0, "o", "\u001b[?25l\u001b[0m\u001b[2J\u001b[1;1H\u001b[0;38;2;178;195;184;48;2;29;40;36mNewcol Joincol Find Grep Help Changelog Tutor Dump Themes Config Debug Exit\u001b[0;39;48;2;29;40;36m \u001b[2;1H\u001b[0;38;2;255;255;255;48;2;136;116;85m \u001b[0;39;48;2;49;71;56m \u001b[0;38;2;190;207;196;48;2;49;71;56mNew Tty Find Grep Joincol Delcol\u001b[0;39;48;2;49;71;56m \u001b[3;1H\u001b[0;38;2;0;0;0;48;2;173;211;138m \u001b[0;39;48;2;49;71;56m \u001b[0;38;2;190;207;196;48;2;49;71;56m/tmp/cast/hello/\u001b[0;38;2;223;188;229;48;2;49;71;56mNOTES\u001b[0;38;2;190;207;196;48;2;49;71;56m Save Tty Collapse Del\u001b[0;39;48;2;49;71;56m \u001b[4;1H\u001b[0;39;48;2;96;130;105m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;97;111;100;48;2;13;20;16;1m 1 \u001b[0;38;2;229;238;229;48;2;13;20;16mhello: notes\u001b[0;39;48;2;13;20;16m \u001b[5;1H\u001b[0;39;48;2;96;130;105m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;89;103;92;48;2;13;20;16m 2 \u001b[0;39;48;2;13;20;16m \u001b[6;1H\u001b[0;39;48;2;96;130;105m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;89;103;92;48;2;13;20;16m 3 \u001b[0;38;2;229;238;229;48;2;13;20;16mThe sum of the squares of 1 to 4 is 30.\u001b[0;39;48;2;13;20;16m \u001b[7;1H\u001b[0;39;48;2;96;130;105m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;89;103;92;48;2;13;20;16m 4 \u001b[0;38;2;229;238;229;48;2;13;20;16mWhat ./hello prints:\u001b[0;39;48;2;13;20;16m \u001b[8;1H\u001b[0;39;48;2;96;130;105m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;89;103;92;48;2;13;20;16m 5 \u001b[0;39;48;2;13;20;16m \u001b[9;1H\u001b[0;39;48;2;96;130;105m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;89;103;92;48;2;13;20;16m 6 \u001b[0;39;48;2;13;20;16m \u001b[10;1H\u001b[0;39;48;2;96;130;105m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;89;103;92;48;2;13;20;16m \u001b[0;39;48;2;13;20;16m \u001b[11;1H\u001b[0;39;48;2;96;130;105m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;89;103;92;48;2;13;20;16m \u001b[0;39;48;2;13;20;16m \u001b[12;1H\u001b[0;39;48;2;96;130;105m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;89;103;92;48;2;13;20;16m \u001b[0;39;48;2;13;20;16m \u001b[13;1H\u001b[0;39;48;2;96;130;105m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;89;103;92;48;2;13;20;16m \u001b[0;39;48;2;13;20;16m \u001b[14;1H\u001b[0;39;48;2;96;130;105m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;89;103;92;48;2;13;20;16m \u001b[0;39;48;2;13;20;16m \u001b[15;1H\u001b[0;39;48;2;96;130;105m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;89;103;92;48;2;13;20;16m \u001b[0;39;48;2;13;20;16m \u001b[16;1H\u001b[0;39;48;2;96;130;105m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;89;103;92;48;2;13;20;16m \u001b[0;39;48;2;13;20;16m \u001b[17;1H\u001b[0;39;48;2;96;130;105m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;89;103;92;48;2;13;20;16m \u001b[0;39;48;2;13;20;16m \u001b[18;1H\u001b[0;39;48;2;96;130;105m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;89;103;92;48;2;13;20;16m \u001b[0;39;48;2;13;20;16m \u001b[19;1H\u001b[0;39;48;2;96;130;105m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;89;103;92;48;2;13;20;16m \u001b[0;39;48;2;13;20;16m \u001b[20;1H\u001b[0;39;48;2;96;130;105m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;89;103;92;48;2;13;20;16m \u001b[0;39;48;2;13;20;16m \u001b[21;1H\u001b[0;39;48;2;96;130;105m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;89;103;92;48;2;13;20;16m \u001b[0;39;48;2;13;20;16m \u001b[22;1H\u001b[0;39;48;2;96;130;105m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;89;103;92;48;2;13;20;16m \u001b[0;39;48;2;13;20;16m \u001b[23;1H\u001b[0;39;48;2;96;130;105m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;89;103;92;48;2;13;20;16m \u001b[0;39;48;2;13;20;16m \u001b[24;1H\u001b[0;39;48;2;96;130;105m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;89;103;92;48;2;13;20;16m \u001b[0;39;48;2;13;20;16m \u001b[25;1H\u001b[0;39;48;2;96;130;105m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;89;103;92;48;2;13;20;16m \u001b[0;39;48;2;13;20;16m \u001b[26;1H\u001b[0;39;48;2;96;130;105m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;89;103;92;48;2;13;20;16m \u001b[0;39;48;2;13;20;16m \u001b[27;1H\u001b[0;39;48;2;96;130;105m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;89;103;92;48;2;13;20;16m \u001b[0;39;48;2;13;20;16m \u001b[28;1H\u001b[0;39;48;2;96;130;105m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;89;103;92;48;2;13;20;16m \u001b[0;39;48;2;13;20;16m \u001b[29;1H\u001b[0;39;48;2;96;130;105m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;89;103;92;48;2;13;20;16m \u001b[0;39;48;2;13;20;16m \u001b[30;1H\u001b[0;39;48;2;96;130;105m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;89;103;92;48;2;13;20;16m \u001b[0;39;48;2;13;20;16m \u001b[0m\u001b[4;8H\u001b[?25h"] +[1.2, "o", "\u001b[3;31H\u001b[0;38;2;245;247;238;48;2;91;126;90mTty \u001b[0m\u001b[4;8H\u001b[?25h"] +[1.7, "o", "\u001b[3;1H\u001b[0;38;2;255;255;255;48;2;73;102;86m \u001b[0;39;48;2;29;40;36m \u001b[0;38;2;178;195;184;48;2;29;40;36m/tmp/cast/hello/\u001b[0;38;2;211;176;217;48;2;29;40;36mNOTES\u001b[0;38;2;178;195;184;48;2;29;40;36m Save Tty Collapse Del\u001b[0;39;48;2;29;40;36m \u001b[4;3H\u001b[0;38;2;89;103;92;48;2;13;20;16m 1 \u001b[4;96H\u001b[0;39;48;2;29;40;36m \u001b[0;38;2;178;195;184;48;2;29;40;36mTty\u001b[0;39;48;2;29;40;36m \u001b[8;1H\u001b[0;39;48;2;21;32;25m \u001b[9;1H\u001b[0;38;2;0;0;0;48;2;173;211;138m$ \u001b[0;39;48;2;49;71;56m \u001b[0;38;2;190;207;196;48;2;49;71;56m/tmp/cast/hello \u001b[0;38;2;223;188;229;48;2;49;71;56mTty+sh\u001b[0;38;2;190;207;196;48;2;49;71;56m Save Mode Filter Collapse Del\u001b[0;39;48;2;49;71;56m \u001b[10;3H\u001b[0;38;2;229;238;229;48;2;13;20;16m$\u001b[0m\u001b[10;5H\u001b[?25h"] +[2.7, "o", "\u001b[4;96H\u001b[0;39;48;2;13;20;16m \u001b[9;1H\u001b[0;38;2;0;0;0;48;2;173;211;138m \u001b[0m\u001b[10;5H\u001b[?25h"] +[3.0, "o", "\u001b[2;3H\u001b[0;39;48;2;29;40;36m \u001b[0;38;2;178;195;184;48;2;29;40;36mNew Tty Find Grep Joincol Delcol\u001b[0;39;48;2;29;40;36m \u001b[0;38;2;255;255;255;48;2;136;116;85m \u001b[2;54H\u001b[0;38;2;190;207;196;48;2;49;71;56mNew\u001b[2;58HTty\u001b[2;62HFind\u001b[2;67HGrep\u001b[2;72HJoincol\u001b[2;80HDelcol\u001b[3;51H\u001b[0;38;2;0;0;0;48;2;173;211;138m \u001b[0;39;48;2;49;71;56m \u001b[0;38;2;190;207;196;48;2;49;71;56m/tmp/cast/hello \u001b[0;38;2;223;188;229;48;2;49;71;56mTty+sh\u001b[0;38;2;190;207;196;48;2;49;71;56m Save Mode Filter Collaps\u001b[4;51H\u001b[0;39;48;2;49;71;56m \u001b[0;38;2;190;207;196;48;2;49;71;56me Del\u001b[0;39;48;2;49;71;56m \u001b[5;51H\u001b[0;39;48;2;96;130;105m \u001b[5;53H\u001b[0;38;2;229;238;229;48;2;13;20;16m$\u001b[6;51H\u001b[0;39;48;2;96;130;105m \u001b[7;51H \u001b[8;1H \u001b[8;51H \u001b[9;1H \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;89;103;92;48;2;13;20;16m 6 \u001b[0;39;48;2;13;20;16m \u001b[0;39;48;2;96;130;105m \u001b[0;39;48;2;13;20;16m \u001b[0;38;2;229;238;229;48;2;13;20;16m \u001b[10;3H\u001b[0;38;2;89;103;92;48;2;13;20;16m \u001b[10;51H\u001b[0;39;48;2;96;130;105m \u001b[11;51H \u001b[12;51H \u001b[13;51H \u001b[14;51H \u001b[15;51H \u001b[16;51H \u001b[17;51H \u001b[18;51H \u001b[19;51H \u001b[20;51H \u001b[21;51H \u001b[22;51H \u001b[23;51H \u001b[24;51H \u001b[25;51H \u001b[26;51H \u001b[27;51H \u001b[28;51H \u001b[29;51H \u001b[30;51H \u001b[0m\u001b[5;55H\u001b[?25h"] +[3.4, "o", "\u001b[3;51H\u001b[0;38;2;0;0;0;48;2;173;211;138m$\u001b[0m\u001b[5;55H\u001b[?25h"] +[4.0, "o", "\u001b[5;55H\u001b[0;38;2;229;238;229;48;2;13;20;16mm\u001b[0m\u001b[5;56H\u001b[?25h"] +[4.07, "o", "\u001b[5;56H\u001b[0;38;2;229;238;229;48;2;13;20;16ma\u001b[0m\u001b[5;57H\u001b[?25h"] +[4.14, "o", "\u001b[5;57H\u001b[0;38;2;229;238;229;48;2;13;20;16mk\u001b[0m\u001b[5;58H\u001b[?25h"] +[4.21, "o", "\u001b[5;58H\u001b[0;38;2;229;238;229;48;2;13;20;16me\u001b[0m\u001b[5;59H\u001b[?25h"] +[4.28, "o", "\u001b[0m\u001b[5;60H\u001b[?25h"] +[4.35, "o", "\u001b[5;60H\u001b[0;38;2;229;238;229;48;2;13;20;16m&\u001b[0m\u001b[5;61H\u001b[?25h"] +[4.42, "o", "\u001b[5;61H\u001b[0;38;2;229;238;229;48;2;13;20;16m&\u001b[0m\u001b[5;62H\u001b[?25h"] +[4.49, "o", "\u001b[0m\u001b[5;63H\u001b[?25h"] +[4.56, "o", "\u001b[5;63H\u001b[0;38;2;229;238;229;48;2;13;20;16m.\u001b[0m\u001b[5;64H\u001b[?25h"] +[4.63, "o", "\u001b[5;64H\u001b[0;38;2;229;238;229;48;2;13;20;16m/\u001b[0m\u001b[5;65H\u001b[?25h"] +[4.7, "o", "\u001b[5;65H\u001b[0;38;2;229;238;229;48;2;13;20;16mh\u001b[0m\u001b[5;66H\u001b[?25h"] +[4.77, "o", "\u001b[5;66H\u001b[0;38;2;229;238;229;48;2;13;20;16me\u001b[0m\u001b[5;67H\u001b[?25h"] +[4.84, "o", "\u001b[5;67H\u001b[0;38;2;229;238;229;48;2;13;20;16ml\u001b[0m\u001b[5;68H\u001b[?25h"] +[4.91, "o", "\u001b[5;68H\u001b[0;38;2;229;238;229;48;2;13;20;16ml\u001b[0m\u001b[5;69H\u001b[?25h"] +[4.98, "o", "\u001b[5;69H\u001b[0;38;2;229;238;229;48;2;13;20;16mo\u001b[0m\u001b[5;70H\u001b[?25h"] +[5.38, "o", "\u001b[6;53H\u001b[0;38;2;229;238;229;48;2;13;20;16msquares:\u001b[6;62H30\u001b[7;53H$\u001b[0m\u001b[7;55H\u001b[?25h"] +[6.58, "o", "\u001b[3;51H\u001b[0;38;2;0;0;0;48;2;173;211;138m \u001b[0m\u001b[7;55H\u001b[?25h"] +[7.18, "o", "\u001b[0m\u001b[6;55H\u001b[?25h"] +[7.58, "o", "\u001b[6;53H\u001b[0;38;2;245;247;238;48;2;60;97;74msquares: 30 \u001b[0m\u001b[6;64H\u001b[?25h"] +[8.88, "o", "\u001b[2;3H\u001b[0;39;48;2;49;71;56m \u001b[0;38;2;190;207;196;48;2;49;71;56mNew Tty Find Grep Joincol Delcol\u001b[0;39;48;2;49;71;56m \u001b[2;53H\u001b[0;39;48;2;29;40;36m \u001b[0;38;2;178;195;184;48;2;29;40;36mNew Tty Find Grep Joincol Delcol\u001b[0;39;48;2;29;40;36m \u001b[3;1H\u001b[0;38;2;0;0;0;48;2;173;211;138m \u001b[0;39;48;2;49;71;56m \u001b[0;38;2;190;207;196;48;2;49;71;56m/tmp/cast/hello/\u001b[0;38;2;223;188;229;48;2;49;71;56mNOTES\u001b[0;38;2;190;207;196;48;2;49;71;56m Save Tty Collapse Del\u001b[0;39;48;2;49;71;56m \u001b[0;38;2;255;255;255;48;2;73;102;86m \u001b[0;39;48;2;29;40;36m \u001b[0;38;2;178;195;184;48;2;29;40;36m/tmp/cast/hello \u001b[0;38;2;211;176;217;48;2;29;40;36mTty+sh\u001b[0;38;2;178;195;184;48;2;29;40;36m Save Mode Filter Collaps\u001b[4;3H\u001b[0;38;2;97;111;100;48;2;13;20;16;1m 1 \u001b[4;51H\u001b[0;39;48;2;29;40;36m \u001b[0;38;2;178;195;184;48;2;29;40;36me Del\u001b[0;39;48;2;29;40;36m \u001b[5;95H \u001b[0;38;2;178;195;184;48;2;29;40;36mLeft\u001b[0;39;48;2;29;40;36m \u001b[0m\u001b[4;8H\u001b[?25h"] +[9.48, "o", "\u001b[5;95H\u001b[0;38;2;229;238;229;48;2;13;20;16m \u001b[0m\u001b[4;8H\u001b[?25h"] +[9.7, "o", "\u001b[4;3H\u001b[0;38;2;89;103;92;48;2;13;20;16m 1 \u001b[8;3H\u001b[0;38;2;97;111;100;48;2;13;20;16;1m 5 \u001b[0m\u001b[8;8H\u001b[?25h"] +[10.2, "o", "\u001b[3;2H\u001b[0;38;2;0;0;0;48;2;249;203;112;1m*\u001b[8;3H\u001b[0;38;2;89;103;92;48;2;13;20;16m 5 \u001b[9;3H\u001b[0;38;2;97;111;100;48;2;13;20;16;1m 6 \u001b[0;38;2;245;247;238;48;2;60;97;74msquares: 30 \u001b[10;6H\u001b[0;38;2;89;103;92;48;2;13;20;16m7\u001b[0m\u001b[9;19H\u001b[?25h"] +[11.4, "o", "\u001b[2;3H\u001b[0;39;48;2;29;40;36m \u001b[0;38;2;178;195;184;48;2;29;40;36mNew Tty Find Grep Joincol Delcol\u001b[0;39;48;2;29;40;36m \u001b[2;53H\u001b[0;39;48;2;49;71;56m \u001b[0;38;2;190;207;196;48;2;49;71;56mNew Tty Find Grep Joincol Delcol\u001b[0;39;48;2;49;71;56m \u001b[3;1H\u001b[0;38;2;255;255;255;48;2;73;102;86m \u001b[3;3H\u001b[0;39;48;2;29;40;36m \u001b[0;38;2;178;195;184;48;2;29;40;36m/tmp/cast/hello/\u001b[0;38;2;211;176;217;48;2;29;40;36mNOTES\u001b[0;38;2;178;195;184;48;2;29;40;36m Save Tty Collapse Del\u001b[0;39;48;2;29;40;36m \u001b[0;38;2;0;0;0;48;2;173;211;138m \u001b[0;39;48;2;49;71;56m \u001b[0;38;2;190;207;196;48;2;49;71;56m/tmp/cast/hello \u001b[0;38;2;223;188;229;48;2;49;71;56mTty+sh\u001b[0;38;2;190;207;196;48;2;49;71;56m Save Mode Filter Collaps\u001b[4;44H\u001b[0;39;48;2;29;40;36m \u001b[0;38;2;178;195;184;48;2;29;40;36mRight\u001b[0;39;48;2;29;40;36m \u001b[0;39;48;2;49;71;56m \u001b[0;38;2;190;207;196;48;2;49;71;56me Del\u001b[0;39;48;2;49;71;56m \u001b[9;3H\u001b[0;38;2;89;103;92;48;2;13;20;16m 6 \u001b[0m\u001b[6;64H\u001b[?25h"] +[11.8, "o", "\u001b[3;51H\u001b[0;38;2;0;0;0;48;2;173;211;138m$\u001b[4;44H\u001b[0;39;48;2;13;20;16m \u001b[6;53H\u001b[0;38;2;229;238;229;48;2;13;20;16msquares: 30 \u001b[0m\u001b[7;55H\u001b[?25h"] +[12.4, "o", "\u001b[7;55H\u001b[0;38;2;229;238;229;48;2;13;20;16mg\u001b[0m\u001b[7;56H\u001b[?25h"] +[12.47, "o", "\u001b[7;56H\u001b[0;38;2;229;238;229;48;2;13;20;16mi\u001b[0m\u001b[7;57H\u001b[?25h"] +[12.54, "o", "\u001b[7;57H\u001b[0;38;2;229;238;229;48;2;13;20;16mt\u001b[0m\u001b[7;58H\u001b[?25h"] +[12.61, "o", "\u001b[0m\u001b[7;59H\u001b[?25h"] +[12.68, "o", "\u001b[7;59H\u001b[0;38;2;229;238;229;48;2;13;20;16ml\u001b[0m\u001b[7;60H\u001b[?25h"] +[12.75, "o", "\u001b[7;60H\u001b[0;38;2;229;238;229;48;2;13;20;16mo\u001b[0m\u001b[7;61H\u001b[?25h"] +[12.82, "o", "\u001b[7;61H\u001b[0;38;2;229;238;229;48;2;13;20;16mg\u001b[0m\u001b[7;62H\u001b[?25h"] +[12.89, "o", "\u001b[0m\u001b[7;63H\u001b[?25h"] +[12.96, "o", "\u001b[7;63H\u001b[0;38;2;229;238;229;48;2;13;20;16m-\u001b[0m\u001b[7;64H\u001b[?25h"] +[13.03, "o", "\u001b[7;64H\u001b[0;38;2;229;238;229;48;2;13;20;16m-\u001b[0m\u001b[7;65H\u001b[?25h"] +[13.1, "o", "\u001b[7;65H\u001b[0;38;2;229;238;229;48;2;13;20;16ms\u001b[0m\u001b[7;66H\u001b[?25h"] +[13.17, "o", "\u001b[7;66H\u001b[0;38;2;229;238;229;48;2;13;20;16mt\u001b[0m\u001b[7;67H\u001b[?25h"] +[13.24, "o", "\u001b[7;67H\u001b[0;38;2;229;238;229;48;2;13;20;16ma\u001b[0m\u001b[7;68H\u001b[?25h"] +[13.31, "o", "\u001b[7;68H\u001b[0;38;2;229;238;229;48;2;13;20;16mt\u001b[0m\u001b[7;69H\u001b[?25h"] +[13.38, "o", "\u001b[0m\u001b[7;70H\u001b[?25h"] +[13.45, "o", "\u001b[7;70H\u001b[0;38;2;229;238;229;48;2;13;20;16m|\u001b[0m\u001b[7;71H\u001b[?25h"] +[13.52, "o", "\u001b[0m\u001b[7;72H\u001b[?25h"] +[13.59, "o", "\u001b[7;72H\u001b[0;38;2;229;238;229;48;2;13;20;16mp\u001b[0m\u001b[7;73H\u001b[?25h"] +[13.66, "o", "\u001b[7;73H\u001b[0;38;2;229;238;229;48;2;13;20;16ma\u001b[0m\u001b[7;74H\u001b[?25h"] +[13.73, "o", "\u001b[7;74H\u001b[0;38;2;229;238;229;48;2;13;20;16mr\u001b[0m\u001b[7;75H\u001b[?25h"] +[13.8, "o", "\u001b[7;75H\u001b[0;38;2;229;238;229;48;2;13;20;16md\u001b[0m\u001b[7;76H\u001b[?25h"] +[13.87, "o", "\u001b[7;76H\u001b[0;38;2;229;238;229;48;2;13;20;16me\u001b[0m\u001b[7;77H\u001b[?25h"] +[13.94, "o", "\u001b[7;77H\u001b[0;38;2;229;238;229;48;2;13;20;16ms\u001b[0m\u001b[7;78H\u001b[?25h"] +[14.01, "o", "\u001b[0m\u001b[7;79H\u001b[?25h"] +[14.08, "o", "\u001b[7;79H\u001b[0;38;2;229;238;229;48;2;13;20;16m-\u001b[0m\u001b[7;80H\u001b[?25h"] +[14.48, "o", "\u001b[8;53H\u001b[0;38;2;229;238;229;48;2;13;20;16m$\u001b[18;51H\u001b[0;38;2;255;255;255;48;2;73;102;86m \u001b[0;39;48;2;29;40;36m \u001b[0;38;2;178;195;184;48;2;29;40;36m/tmp/cast/hello/\u001b[0;38;2;211;176;217;48;2;29;40;36m+Pager\u001b[0;38;2;178;195;184;48;2;29;40;36m Save Tty Collapse Del\u001b[0;39;48;2;29;40;36m \u001b[19;56H\u001b[0;38;2;89;103;92;48;2;13;20;16m1\u001b[19;58H\u001b[0;38;2;233;198;128;48;2;13;20;16mcommit\u001b[19;65H432f284\u001b[20;56H\u001b[0;38;2;89;103;92;48;2;13;20;16m2\u001b[20;58H\u001b[0;38;2;229;238;229;48;2;13;20;16mAuthor:\u001b[20;66HDemo\u001b[20;71H<[email protected]>\u001b[21;56H\u001b[0;38;2;89;103;92;48;2;13;20;16m3\u001b[21;58H\u001b[0;38;2;229;238;229;48;2;13;20;16mDate:\u001b[21;66HSun\u001b[21;70HSep\u001b[21;74H27\u001b[21;77H16:40:00\u001b[21;86H2026\u001b[21;91H+0000\u001b[22;56H\u001b[0;38;2;89;103;92;48;2;13;20;16m4\u001b[23;51H\u001b[0;39;48;2;21;32;25m \u001b[23;56H\u001b[0;38;2;89;103;92;48;2;13;20;16m5\u001b[23;62H\u001b[0;38;2;229;238;229;48;2;13;20;16mKeep\u001b[23;67Hnotes\u001b[24;51H\u001b[0;39;48;2;21;32;25m \u001b[24;56H\u001b[0;38;2;89;103;92;48;2;13;20;16m6\u001b[25;51H\u001b[0;39;48;2;21;32;25m \u001b[25;56H\u001b[0;38;2;89;103;92;48;2;13;20;16m7\u001b[25;59H\u001b[0;38;2;229;238;229;48;2;13;20;16mNOTES\u001b[25;65H|\u001b[25;67H5\u001b[25;69H\u001b[0;38;2;182;206;148;48;2;13;20;16m+++++\u001b[26;51H\u001b[0;39;48;2;21;32;25m \u001b[26;56H\u001b[0;38;2;89;103;92;48;2;13;20;16m8\u001b[26;59H\u001b[0;38;2;229;238;229;48;2;13;20;16m1\u001b[26;61Hfile\u001b[26;66Hchanged,\u001b[26;75H5\u001b[26;77Hinsertions(+)\u001b[27;51H\u001b[0;39;48;2;21;32;25m \u001b[27;56H\u001b[0;38;2;89;103;92;48;2;13;20;16m9\u001b[28;51H\u001b[0;39;48;2;21;32;25m \u001b[28;55H\u001b[0;38;2;89;103;92;48;2;13;20;16m10\u001b[28;58H\u001b[0;38;2;233;198;128;48;2;13;20;16mcommit\u001b[28;65Hc8da8c6\u001b[29;51H\u001b[0;39;48;2;21;32;25m \u001b[29;55H\u001b[0;38;2;89;103;92;48;2;13;20;16m11\u001b[29;58H\u001b[0;38;2;229;238;229;48;2;13;20;16mAuthor:\u001b[29;66HDemo\u001b[29;71H<[email protected]>\u001b[30;51H\u001b[0;39;48;2;21;32;25m \u001b[30;55H\u001b[0;38;2;89;103;92;48;2;13;20;16m12\u001b[30;58H\u001b[0;38;2;229;238;229;48;2;13;20;16mDate:\u001b[30;66HThu\u001b[30;70HSep\u001b[30;74H24\u001b[30;77H09:15:00\u001b[30;86H2026\u001b[30;91H+0000\u001b[0m\u001b[8;55H\u001b[?25h"] +[16.48, "o", ""] diff --git a/test/record_casts.py b/test/record_casts.py new file mode 100644 index 00000000..d0daff11 --- /dev/null +++ b/test/record_casts.py @@ -0,0 +1,937 @@ +#!/usr/bin/env python3 +"""Record the documentation site's terminal casts (asciicast v2). + +zig build -Dplatform=tty -Doptimize=ReleaseSafe --prefix <scratch dir> +python3 -B test/record_casts.py <scratch dir>/bin/pardes [cast ...] [--show] + +Each cast runs the tty pardes in a pty this script owns, sized 100x30 with +TIOCSWINSZ, and plays the part of a plain xterm: it answers the queries an +xterm answers (device attributes, device status, cursor position, +XTVERSION, DECRQM as "not recognised", window sizes) and nothing else, so +kitty graphics and the kitty keyboard stay unanswered: images are drawn +as PETSCII glyph art, and a PDF as its text layer. Keys and SGR mouse +reports are scripted. + +A cast is cut into steps: after each scripted input the recorder waits +until the screen shows what the step waits for and pardes has drawn and +gone idle, then stamps the step at its time on a virtual clock (starting +at 0, a scripted hold between steps, no gap over 2 s). pyte follows the +screen pardes draws, and an event is the cells the step changed, drawn +afresh: how many frames pardes took to get there (a shell's output racing +them) never reaches the file, so the same input makes the same cast. +Wall-clock time never reaches it either. The bytes pardes wrote, stamped +the same way, go to <work>/<name>.raw.cast beside it. + +--show replays each finished cast through pyte, prints its last frame +(or the one --at seconds in) and draws it to <work>/<name>.png. + +Nothing of the caller's environment reaches the recording: the session +gets a home, config, runtime and cache dirs under --work, a PATH with the +recorded pardes first, and no PARDES_*, 9P mount, display or bus. The demo +project and pictures live under /tmp/cast (short paths for the tags, a +few hundred KB) and are removed after. The PDF (--pdf) is only read, +through a symlink. + +Needs pyte and Pillow (in a venv), cc, make and git. +""" +import argparse +import codecs +import contextlib +import fcntl +import json +import math +import os +from pathlib import Path +import re +import shutil +import signal +import struct +import subprocess +import termios +import threading +import time + +import pyte + +REPO = Path(__file__).resolve().parent.parent +OUT = REPO / 'docs/site/casts' +COLS, ROWS = 100, 30 +CELL_W, CELL_H = 10, 20 # the pixels a cell claims to be, for TIOCSWINSZ and CSI 14/16 t +MAX_GAP = 2.0 +PROJECT = Path('/tmp/cast/hello') + +# --------------------------------------------------------------------------- +# the terminal: queries answered as a plain xterm answers them + +DA1 = b'\x1b[?64;1;2;6;9;15;16;17;18;21;22;28c' +XTVERSION = b'\x1bP>|XTerm(390)\x1b\\' + +# Everything pardes asks its terminal, answered in _answer as an xterm +# would; what xterm ignores (kitty's queries, OSC 66) goes unanswered. +# None of it reaches the cast. +QUERY = re.compile(rb''' + \x1b\[\?(?P<decrqm>\d+)\$p # DECRQM: answered "not recognised" + | \x1b\[(?P<cpr>6)n # cursor position + | \x1b\[(?P<dsr>5)n # device status: each frame ends asking it + | \x1b\[(?P<da1>0?)c # primary device attributes + | \x1b\[>(?P<xtv>0?)q # XTVERSION + | \x1b\[(?P<winop>1[468])t # window/cell size in pixels, size in cells + | \x1b\[>\x20q # kitty multi-cursor query + | \x1b\[\?u # kitty keyboard query + | \x1b_G[^\x1b]*\x1b\\ # kitty graphics + | \x1b\]66;[^\x07\x1b]*(?:\x07|\x1b\\) # explicit width / scaled text + | \x1b\[\?2048h # in-band resize reports +''', re.X) + +SGR = re.compile(rb'\x1b\[([0-9:;]*)m') + + +def sgr_semicolons(m): + """Colon-form SGR (38:2:r:g:b, 4:3) in the semicolon form xterm, pyte + and asciinema's player all read; an underline colour (58) is dropped.""" + params = m.group(1) + if b':' not in params: + return m.group(0) + out = [] + for p in params.split(b';'): + if b':' not in p: + out.append(p) + continue + parts = p.split(b':') + if parts[0] in (b'38', b'48'): + if parts[1] == b'2' and len(parts) == 6: # 38:2:<colorspace>:r:g:b + parts = parts[:2] + parts[3:] + out.append(b';'.join(parts)) + elif parts[0] == b'4': + out.append(b'4' if parts[1] != b'0' else b'24') + # 58:... (underline colour) has no semicolon form a player reads + return b'\x1b[' + b';'.join(out) + b'm' + + +def incomplete_tail(buf): + """Where an escape sequence the buffer ends inside of starts, or None.""" + i = buf.rfind(b'\x1b') + if i < 0: + return None + tail = buf[i:] + if len(tail) == 1: + return i + kind = tail[1:2] + if kind == b'[': + return None if re.match(rb'\x1b\[[\x30-\x3f]*[\x20-\x2f]*[\x40-\x7e]', tail) else i + if kind in (b']', b'_', b'P', b'^'): + # Ended by BEL, else open: its ST (ESC \\) would be a later ESC. + return None if b'\x07' in tail[2:] else i + return None + + +def utf8_tail(buf): + """How many bytes at the end of buf start a UTF-8 sequence not yet whole.""" + for back in range(1, min(4, len(buf)) + 1): + b = buf[-back] + if b & 0xC0 == 0x80: + continue + need = 2 if b & 0xE0 == 0xC0 else 3 if b & 0xF0 == 0xE0 else 4 if b & 0xF8 == 0xF0 else 1 + return back if need > back else 0 + return 0 + + +def clean_env(home, binary): + """The environment from nothing: no session, mount, display or bus of + the caller's, and the recorded pardes first on PATH.""" + runtime = home / 'run' + env = dict( + PATH=f'{binary.parent}:/usr/local/bin:/usr/bin:/bin', + HOME=str(home), USER='demo', LOGNAME='demo', + SHELL='/bin/sh', TERM='xterm-256color', LANG='C.UTF-8', LC_ALL='C.UTF-8', TZ='UTC', + XDG_CONFIG_HOME=str(home / 'config'), XDG_DATA_HOME=str(home / 'data'), + XDG_STATE_HOME=str(home / 'state'), XDG_CACHE_HOME=str(home / 'cache'), XDG_RUNTIME_DIR=str(runtime), + PS1='$ ', GIT_CONFIG_NOSYSTEM='1', + GIT_AUTHOR_NAME='Demo', GIT_AUTHOR_EMAIL='[email protected]', + GIT_COMMITTER_NAME='Demo', GIT_COMMITTER_EMAIL='[email protected]', + # The session's own, set for the recording: no clock in messages, no + # language server racing the keys. + PARDES_NOTIME='1', + ) + for language in ['RS', 'C', 'GO', 'TS', 'PY', 'ZIG']: + env['PARDES_LSP_' + language] = '' + return env + + +def descendants(pid): + """pid's descendants, by /proc's parent links.""" + children = {} + for d in Path('/proc').iterdir(): + if not d.name.isdigit(): + continue + try: + stat = (d / 'stat').read_text() + except OSError: + continue + ppid = int(stat[stat.rfind(')') + 2:].split()[1]) + children.setdefault(ppid, []).append(int(d.name)) + out, todo = [], [pid] + while todo: + for c in children.get(todo.pop(), []): + out.append(c) + todo.append(c) + return out + + +class Recording: + """pardes in a pty of ours, the screen it draws, and the cast so far.""" + + def __init__(self, binary, home, args, cwd, log=None): + self.binary = Path(binary).resolve() + self.log = log + self.screen = pyte.Screen(COLS, ROWS) + self.stream = pyte.ByteStream(self.screen) + self.lock = threading.Lock() + self.carry = b'' # an escape sequence or UTF-8 character not yet whole + self.pending = bytearray() # cleaned output not yet in an event + self.events = [] # (seconds, the screen's changes as text) + self.raw_events = [] # (seconds, bytes pardes wrote) + self.shown = None # the screen as the cast has drawn it + self.clock = 0.0 + self.last_out = time.monotonic() + env = clean_env(home, self.binary) + master, slave = os.openpty() + fcntl.ioctl(slave, termios.TIOCSWINSZ, struct.pack('HHHH', ROWS, COLS, COLS * CELL_W, ROWS * CELL_H)) + self.master = master + self.child = subprocess.Popen( + [str(self.binary), *map(str, args)], cwd=cwd, env=env, + stdin=slave, stdout=slave, stderr=open(home / 'stderr.log', 'ab'), start_new_session=True, + preexec_fn=lambda: fcntl.ioctl(0, termios.TIOCSCTTY, 0)) + os.close(slave) + self.reader = threading.Thread(target=self._read, daemon=True) + self.reader.start() + + # output + + def _read(self): + while True: + try: + data = os.read(self.master, 65536) + except OSError: + return + if not data: + return + with self.lock: + self._take(data) + self.last_out = time.monotonic() + + def _take(self, data): + buf = self.carry + data + cut = incomplete_tail(buf) + if cut is None: + cut = len(buf) - utf8_tail(buf) + buf, self.carry = buf[:cut], buf[cut:] + at = 0 + for m in QUERY.finditer(buf): + self._show(buf[at:m.start()]) + at = m.end() + self._answer(m) + self._show(buf[at:]) + + def _show(self, data): + if not data: + return + data = SGR.sub(sgr_semicolons, data) + self.pending += data + self.stream.feed(data) + + def _answer(self, m): + reply = None + if m.group('decrqm') is not None: + reply = b'\x1b[?%s;0$y' % m.group('decrqm') + elif m.group('cpr') is not None: + reply = b'\x1b[%d;%dR' % (self.screen.cursor.y + 1, self.screen.cursor.x + 1) + elif m.group('dsr') is not None: + reply = b'\x1b[0n' + elif m.group('da1') is not None: + reply = DA1 + elif m.group('xtv') is not None: + reply = XTVERSION + elif m.group('winop') == b'14': + reply = b'\x1b[4;%d;%dt' % (ROWS * CELL_H, COLS * CELL_W) + elif m.group('winop') == b'16': + reply = b'\x1b[6;%d;%dt' % (CELL_H, CELL_W) + elif m.group('winop') == b'18': + reply = b'\x1b[8;%d;%dt' % (ROWS, COLS) + if reply: + os.write(self.master, reply) + + # the screen + + def lines(self): + with self.lock: + return list(self.screen.display) + + def text(self): + return '\n'.join(self.lines()) + + def find(self, text, after=0, nth=0, before=None): + """(col, row) of `text` on screen, searching rows from `after`.""" + for r, line in enumerate(self.lines()): + if r < after or (before is not None and r >= before): + continue + at = line.find(text) + while at >= 0: + if nth == 0: + return at, r + nth -= 1 + at = line.find(text, at + 1) + raise LookupError(f'{text!r} not on screen:\n' + self.text()) + + def cursor(self): + with self.lock: + return self.screen.cursor.x, self.screen.cursor.y + + # input + + def send(self, data): + os.write(self.master, data.encode() if isinstance(data, str) else data) + + def mouse(self, button, col, row, release=False, motion=False): + """An SGR mouse report: button 0 left, 1 middle, 2 right, 3 none; + col and row from 0.""" + code = button + (32 if motion else 0) + self.send(f'\x1b[<{code};{col + 1};{row + 1}{"m" if release else "M"}') + + # steps + + def busy(self): + """Whether a thread of pardes is running (or in disk wait).""" + tasks = Path(f'/proc/{self.child.pid}/task') + with contextlib.suppress(OSError): + for t in tasks.iterdir(): + with contextlib.suppress(OSError): + stat = (t / 'stat').read_text() + if stat[stat.rfind(')') + 2] in 'RD': + return True + return False + + def settle(self, until=None, quiet=.15, timeout=20, what='', sent=None): + """Wait for `until` and for pardes to go quiet and idle, after + drawing at least once since the input sent at `sent` (or for .8 s + to pass without its drawing: an input that changes nothing).""" + deadline = time.monotonic() + timeout + while True: + now = time.monotonic() + with self.lock: + drew = sent is None or self.last_out > sent or now - sent > .8 + idle = drew and now - self.last_out >= quiet + idle = idle and not self.busy() + ok = until is None or until(self) + if ok and idle: + return + if now > deadline: + raise RuntimeError(f'timed out waiting for {what or until}\n' + self.text()) + if self.child.poll() is not None: + raise RuntimeError('pardes exited\n' + self.text()) + time.sleep(.01) + + def step(self, keys=None, hold=.5, until=None, quiet=.15, timeout=20, what=''): + """Send `keys` (bytes, str or a callable), wait for `until` and quiet, + stamp the output at the clock and move the clock on by `hold`.""" + sent = time.monotonic() if keys else None + if callable(keys): + keys(self) + elif keys: + self.send(keys) + self.settle(until, quiet, timeout, what, sent) + self.flush() + self.clock += min(hold, MAX_GAP) + if self.log: + self.log.write(f'--- t={self.clock:.2f} {keys!r} {what}\n' + self.text() + '\n') + + def flush(self): + """Stamp what pardes wrote since the last step at the clock: as the + screen cells it changed (the cast), and as its raw bytes (--raw).""" + with self.lock: + data, self.pending = bytes(self.pending), bytearray() + now = snapshot(self.screen) + t = round(self.clock, 3) + if data: + self.raw_events.append((t, data)) + delta = repaint(self.shown, now) + if delta: + self.events.append((t, delta)) + self.shown = now + + def type(self, text, per_key=.09, last_hold=.4, until=None): + for i, ch in enumerate(text): + last = i == len(text) - 1 + self.step(ch, hold=last_hold if last else per_key, until=until if last else None, quiet=.06) + + def click(self, button, col, row, hold=.4, until=None, what='', quiet=.15): + """Press and release `button` over one cell.""" + def act(s): + s.mouse(3, col, row, motion=True) + time.sleep(.03) + s.mouse(button, col, row) + time.sleep(.03) + s.mouse(button, col, row, release=True) + self.step(act, hold=hold, until=until, what=what, quiet=quiet) + + def sweep(self, button, start, end, show=.6, hold=.6, until=None, what='', quiet=.15): + """Press `button` at `start`, drag to `end`, hold it there for a + frame (the sweep's colour shows), then release.""" + def press(s): + s.mouse(3, *start, motion=True) + time.sleep(.03) + s.mouse(button, *start) + c0, r0 = start + c1, r1 = end + n = max(abs(c1 - c0), abs(r1 - r0)) + for i in range(1, n + 1): + time.sleep(.01) + s.mouse(button, c0 + (c1 - c0) * i // n, r0 + (r1 - r0) * i // n, motion=True) + self.step(press, hold=show) + self.step(lambda s: s.mouse(button, *end, release=True), hold=hold, until=until, what=what, quiet=quiet) + + def hover(self, col, row, hold=.3): + self.step(lambda s: s.mouse(3, col, row, motion=True), hold=hold) + + def close(self): + pids = descendants(self.child.pid) + if self.child.poll() is None: + self.child.terminate() + try: + self.child.wait(timeout=5) + except subprocess.TimeoutExpired: + self.child.kill() + self.child.wait() + for pid in pids + descendants(self.child.pid): + with contextlib.suppress(ProcessLookupError, PermissionError): + os.kill(pid, signal.SIGKILL) + with contextlib.suppress(ProcessLookupError, PermissionError): + os.killpg(self.child.pid, signal.SIGKILL) + with contextlib.suppress(OSError): + os.close(self.master) + self.reader.join(timeout=2) + + def cast(self, title, raw=False): + """The asciicast v2 text: the events, then the last hold as an + empty event so the player keeps the last frame up.""" + head = dict(version=2, width=COLS, height=ROWS, title=title, + env=dict(TERM='xterm-256color', SHELL='/bin/sh')) + out = [json.dumps(head)] + if raw: + decoder = codecs.getincrementaldecoder('utf-8')('replace') + events = [(t, decoder.decode(data)) for t, data in self.raw_events] + else: + events = self.events + # Steps that changed nothing leave their holds end to end: no gap + # longer than MAX_GAP survives. + last = shift = 0.0 + for t, text in events + [(self.clock, '')]: + shift += max(0.0, t - last - MAX_GAP) + last = t + out.append(json.dumps([round(t - shift, 3), 'o', text], ensure_ascii=False)) + return '\n'.join(out) + '\n' + + +# --------------------------------------------------------------------------- +# the cast's own drawing: pyte's screen, cell by cell +# +# pardes draws diffs against its last frame, and how many frames a step +# took (a shell's output racing the frames) varies from run to run while +# the screen it ends on does not. So an event is the cells the step left +# changed, drawn afresh: the same steps make the same file. + +NAMED = {name: i for i, name in enumerate(['black', 'red', 'green', 'brown', 'blue', 'magenta', 'cyan', 'white'])} + + +def snapshot(screen): + """The screen's cells as tuples, and its cursor.""" + cells = [[tuple(c) for c in (screen.buffer[y][x] for x in range(screen.columns))] + for y in range(screen.lines)] + return cells, (screen.cursor.x, screen.cursor.y, screen.cursor.hidden) + + +def colour(name, base): + """SGR parameters for a pyte colour: base 30 for fg, 40 for bg.""" + if name == 'default': + return [str(base + 9)] + if name in NAMED: + return [str(base + NAMED[name])] + if name.startswith('bright') and name[6:] in NAMED: + return [str(base + 60 + NAMED[name[6:]])] + r, g, b = (int(name[i:i + 2], 16) for i in (0, 2, 4)) + return [str(base + 8), '2', str(r), str(g), str(b)] + + +def pen(cell): + _, fg, bg, bold, italics, underscore, strikethrough, reverse, blink = cell + params = ['0'] + colour(fg, 30) + colour(bg, 40) + for on, code in ((bold, '1'), (italics, '3'), (underscore, '4'), (blink, '5'), (reverse, '7'), (strikethrough, '9')): + if on: + params.append(code) + return '\x1b[' + ';'.join(params) + 'm' + + +def repaint(old, new): + """The text that turns screen `old` (None: a fresh terminal) into `new`.""" + cells, (cx, cy, hidden) = new + out = [] + if old is None: + out.append('\x1b[?25l\x1b[0m\x1b[2J') + blank = (' ', 'default', 'default', False, False, False, False, False, False) + old_cells, old_cursor = [[blank] * len(row) for row in cells], None + else: + old_cells, old_cursor = old + at, drawn_pen = None, None + for y, (row, old_row) in enumerate(zip(cells, old_cells)): + for x, cell in enumerate(row): + if cell == old_row[x] or cell[0] == '': # unchanged, or the right half of a wide character + continue + if at != (x, y): + out.append(f'\x1b[{y + 1};{x + 1}H') + p = pen(cell) + if p != drawn_pen: + out.append(p) + drawn_pen = p + out.append(cell[0]) + at = (x + (2 if x + 1 < len(row) and row[x + 1][0] == '' else 1), y) + if not out and old_cursor == (cx, cy, hidden): + return '' + out.append(f'\x1b[0m\x1b[{cy + 1};{cx + 1}H' + ('\x1b[?25l' if hidden else '\x1b[?25h')) + return ''.join(out) + + +# --------------------------------------------------------------------------- +# the fixtures + +MAIN_C = '''#include <stdio.h> + +static int square(int n) +{ + return n * n; +} + +int main(void) +{ + int sum = 0; + for (int i = 1; i <= 4; i++) + sum += square(i); + printf("squares: %d\\n", sum); + return 0; +} +''' + +MAKEFILE = '''CFLAGS = -Wall -fno-diagnostics-show-caret -fno-diagnostics-show-option -fno-diagnostics-color + +hello: main.c +\t@cc $(CFLAGS) -o hello main.c +''' + +README = '''hello: prints the sum of the first four squares. + +Build it with make, run it with ./hello. +''' + +NOTES = '''hello: notes + +The sum of the squares of 1 to 4 is 30. +What ./hello prints: + +''' + + +def git(*args, cwd=PROJECT, env=None, date=None): + e = dict(env or {}) + if date: + e.update(GIT_AUTHOR_DATE=date, GIT_COMMITTER_DATE=date) + subprocess.run(['git', *args], cwd=cwd, env=e, check=True, capture_output=True) + + +def make_project(home): + shutil.rmtree(PROJECT, ignore_errors=True) + PROJECT.mkdir(parents=True) + env = clean_env(home, Path('/nonexistent/pardes')) + env.pop('PS1') + git('init', '-q', '-b', 'main', env=env) + git('config', 'color.ui', 'always', env=env) + history = [ + ('2026-09-21T10:00:00Z', 'Start hello', {'README': README}), + ('2026-09-22T11:30:00Z', 'Add a Makefile', {'Makefile': MAKEFILE}), + ('2026-09-24T09:15:00Z', 'Print the sum of squares', {'main.c': MAIN_C}), + ('2026-09-27T16:40:00Z', 'Keep notes', {'NOTES': NOTES}), + ] + for date, message, files in history: + for name, body in files.items(): + (PROJECT / name).write_text(body) + git('add', '.', env=env) + git('commit', '-q', '-m', message, env=env, date=date) + git('tag', 'v0.1', env=env) + (PROJECT / '.gitignore').write_text('hello\n') + + +ART = PROJECT.parent / 'art' +SDM = Path('/home/goblin/01-resources/intel-devref-ii.pdf') + +# The escape-time bands, outside in: deep blue to white to orange, chosen +# to land on distinct C64 colours when the matcher picks its 16. +CYCLE = [(20, 40, 160), (40, 120, 230), (120, 210, 250), (250, 250, 250), + (250, 220, 60), (230, 90, 20), (120, 30, 40), (20, 40, 160)] + + +def band(t): + t = t % 1.0 * (len(CYCLE) - 1) + i, u = int(t), t % 1.0 + return tuple(round(a + (b - a) * u) for a, b in zip(CYCLE[i], CYCLE[i + 1])) + + +def mandelbrot(path, cx, cy, width, iterations, period, size=(480, 320)): + """The Mandelbrot set around cx+cy·i, `width` across: the set black, + the outside in smooth escape-time bands that repeat every `period` + (in √iterations). Pure Python, a few seconds.""" + from PIL import Image + w, h = size + height = width * h / w + im = Image.new('RGB', size) + px = im.load() + for j in range(h): + y0 = cy + height / 2 - height * (j + .5) / h + for i in range(w): + x0 = cx - width / 2 + width * (i + .5) / w + x = y = 0.0 + n = 0 + while x * x + y * y <= 256 and n < iterations: + x, y = x * x - y * y + x0, 2 * x * y + y0 + n += 1 + if n == iterations: + px[i, j] = (0, 0, 0) + else: + nu = n + 1 - math.log2(math.log2(math.sqrt(x * x + y * y))) + px[i, j] = band(math.sqrt(max(nu, 0)) / period) + im.save(path) + + +def make_art(pdf): + """The classic view, a seahorse valley's spiral, and a short name for + the manual (a symlink: the PDF is only read).""" + shutil.rmtree(ART, ignore_errors=True) + ART.mkdir(parents=True) + mandelbrot(ART / 'mandelbrot.png', -0.65, 0.0, 3.2, 96, 10.5) + mandelbrot(ART / 'seahorse.png', -0.7436, 0.1318, 0.0035, 400, 6.0) + (ART / 'sdm.pdf').symlink_to(pdf) + + +# --------------------------------------------------------------------------- +# checking: replay a cast through pyte, print and draw its last frame + +def replay(path, until=None): + """The pyte screen after the cast's events (up to `until` seconds).""" + screen = pyte.Screen(COLS, ROWS) + stream = pyte.Stream(screen) + with open(path) as f: + head = json.loads(f.readline()) + assert head['width'] == COLS and head['height'] == ROWS + for line in f: + t, kind, data = json.loads(line) + if until is not None and t > until: + break + stream.feed(data) + return screen + + +PYTE_COLOURS = dict(black=(0, 0, 0), red=(205, 0, 0), green=(0, 205, 0), brown=(205, 205, 0), + blue=(0, 0, 238), magenta=(205, 0, 205), cyan=(0, 205, 205), white=(229, 229, 229)) + + +def rgb(colour, default): + if colour == 'default': + return default + if colour in PYTE_COLOURS: + return PYTE_COLOURS[colour] + if colour.startswith('bright') and colour[6:] in PYTE_COLOURS: + return tuple(min(255, v + 50) for v in PYTE_COLOURS[colour[6:]]) + with contextlib.suppress(ValueError): + return tuple(int(colour[i:i + 2], 16) for i in (0, 2, 4)) + return default + + +def block_rects(cp, w, h): + """The filled rectangles of a block element or sextant, else None.""" + if 0x1FB00 <= cp <= 0x1FB3B: # sextants, skipping the four that are blocks + n = cp - 0x1FB00 + 1 + n += n >= 21 + n += n >= 42 + bits = n + elif cp in (0x258C, 0x2590, 0x2588): + bits = {0x258C: 21, 0x2590: 42, 0x2588: 63}[cp] + else: + halves = {0x2580: [(0, 0, 1, .5)], 0x2584: [(0, .5, 1, 1)], 0x2596: [(0, .5, .5, 1)], + 0x2597: [(.5, .5, 1, 1)], 0x2598: [(0, 0, .5, .5)], 0x259D: [(.5, 0, 1, .5)], + 0x2599: [(0, 0, .5, 1), (.5, .5, 1, 1)], 0x259B: [(0, 0, 1, .5), (0, .5, .5, 1)], + 0x259C: [(0, 0, 1, .5), (.5, .5, 1, 1)], 0x259F: [(.5, 0, 1, 1), (0, .5, .5, 1)], + 0x259A: [(0, 0, .5, .5), (.5, .5, 1, 1)], 0x259E: [(.5, 0, 1, .5), (0, .5, .5, 1)]} + if cp not in halves: + return None + return [(x0 * w, y0 * h, x1 * w, y1 * h) for x0, y0, x1, y1 in halves[cp]] + rects = [] + for k in range(6): + if bits >> k & 1: + col, row = k % 2, k // 2 + rects.append((col * w / 2, row * h / 3, (col + 1) * w / 2, (row + 1) * h / 3)) + return rects + + +def render_png(screen, path, cw=10, ch=20): + """A picture of a pyte screen: blocks and sextants drawn, the rest in + the repo's Adwaita Mono.""" + from PIL import Image, ImageDraw, ImageFont + font = ImageFont.truetype(str(REPO / 'assets/AdwaitaMono-Regular.ttf'), 16) + im = Image.new('RGB', (screen.columns * cw, screen.lines * ch), (0, 0, 0)) + d = ImageDraw.Draw(im) + for y in range(screen.lines): + row = screen.buffer[y] + for x in range(screen.columns): + c = row[x] + fg, bg = rgb(c.fg, (229, 229, 229)), rgb(c.bg, (0, 0, 0)) + if c.reverse != (not screen.cursor.hidden and (x, y) == (screen.cursor.x, screen.cursor.y)): + fg, bg = bg, fg + x0, y0 = x * cw, y * ch + d.rectangle((x0, y0, x0 + cw - 1, y0 + ch - 1), fill=bg) + if not c.data or c.data == ' ': + continue + rects = block_rects(ord(c.data[0]), cw, ch) if len(c.data) == 1 else None + if rects is not None: + for a, b, e, f in rects: + d.rectangle((x0 + a, y0 + b, x0 + e - 1, y0 + f - 1), fill=fg) + else: + d.text((x0, y0 + 1), c.data, font=font, fill=fg) + im.save(path) + + +# --------------------------------------------------------------------------- +# the casts + +def tag_end(r, row): + """Two cells past the last word of the tag on `row`: a B1 click there + types at the tag's end.""" + return len(r.lines()[row].rstrip()) + 1, row + + +def type_in_tag(r, row, text): + r.click(0, *tag_end(r, row), hold=.3) + r.type(text, until=lambda s: text.strip() in s.lines()[row], last_hold=.3) + r.step('\x1b', hold=.4) + + +def word_at(r, word, row): + """(start, end) cells of `word` on `row`, end exclusive, as a sweep takes it.""" + c, w = r.find(word, after=row, before=row + 1) + return (c, w), (c + len(word), w) + + +def keys(r, seq, hold, per_key=.22): + for i, k in enumerate(seq): + r.step(k, hold=hold if i == len(seq) - 1 else per_key) + + +def live_text(r): + """Helix keys rename a variable and save; B2 on make runs it, B3 on the + error it prints lands on the line, and the rename goes on there.""" + r.step(None, until=lambda s: '#include' in s.text(), quiet=.4, hold=1.6) + for _ in range(9): + r.step('j', hold=.13, quiet=.05) + r.clock += .3 + keys(r, 'wwe', .35) + keys(r, 'miw', .7) + r.step('c', hold=.3) + r.type('total', until=lambda s: 'int total' in s.text(), last_hold=.3) + r.step('\x1b', hold=.6) + keys(r, ' fs', 1.1) + type_in_tag(r, 2, ' make') + start, end = word_at(r, 'make', 2) + r.sweep(1, start, end, show=.8, hold=2.0, until=lambda s: 'exit 2' in s.text(), what='make') + c, w = r.find('main.c:12:9') + r.sweep(2, (c, w), (c + len('main.c:12:9'), w), show=.8, hold=1.6, + until=lambda s: s.cursor()[1] < 15, what='the look') + keys(r, 'miw', .6) + r.step('c', hold=.3) + r.type('total', until=lambda s: 'total += square' in s.text(), last_hold=.3) + r.step('\x1b', hold=2.0) + + +def terminals(r): + """A shell beside the notes: run, Ctrl-b, copy a line of output into + the file; then git log paged through pardes - into a +Pager.""" + r.step(None, until=lambda s: 'What ./hello prints' in s.text(), quiet=.4, hold=1.2) + start, end = word_at(r, 'Tty', 2) + r.sweep(1, start, end, show=.5, hold=.6, until=lambda s: 'Tty+sh' in s.text(), what='the shell') + r.step(None, until=lambda s: s.text().count('$') >= 2, hold=.4) + # Its own column, beside the file: Ctrl-b to normal, Alt-c, Ctrl-b back. + r.step('\x02', hold=.3) + r.step('\x1bc', hold=.4, until=lambda s: s.lines()[1].count('Delcol') == 2, what='the new column') + r.step('\x02', hold=.6) + r.type('make && ./hello', until=lambda s: 'make && ./hello' in s.text(), per_key=.07) + r.step('\r', hold=1.2, until=lambda s: 'squares: 30' in s.text(), what='./hello') + r.step('\x02', hold=.6) + r.step('k', hold=.4) + r.step('x', hold=.6) + r.step('y', hold=.5) + r.step('\x17', hold=.2) + r.step('h', hold=.6) + keys(r, 'ge', .5) + r.step('p', hold=1.0, until=lambda s: 'squares: 30' in s.lines()[8][:48], what='the paste') + r.step('\x17', hold=.2) + r.step('l', hold=.4) + r.step('\x02', hold=.6) + command = 'git log --stat | pardes -' + r.type(command, until=lambda s: command in s.text(), per_key=.07) + r.step('\r', hold=2.0, until=lambda s: '+Pager' in s.text() and 'Keep notes' in s.text(), quiet=.3, + what='the pager') + + +def petscii(r): + """Mandelbrot views as PETSCII glyph art; the Intel manual's sections, + a jump to CPUID and a search.""" + def close(name, hold): + c, w = r.find('art/' + name, after=2) + start, end = word_at(r, 'Del', w) + r.sweep(1, start, end, show=.4, hold=hold, until=lambda s: 'art/' + name not in s.text(), what='Del ' + name) + + r.step(None, until=lambda s: 'mandelbrot.png' in s.text(), quiet=.6, hold=2.2) + keys(r, ' tp', 1.5) # Petscii: the tag reads petscii:on + type_in_tag(r, 1, ' seahorse.png') # the column's tag; B3 there opens it in the column + start, end = word_at(r, 'seahorse.png', 1) + r.sweep(2, start, end, show=.5, hold=1.0, until=lambda s: 'art/seahorse.png' in s.text(), what='the seahorse') + close('mandelbrot.png', 2.2) + type_in_tag(r, 1, ' sdm.pdf') + start, end = word_at(r, 'sdm.pdf', 1) + r.sweep(2, start, end, show=.5, hold=1.0, until=lambda s: '[1/2515]' in s.text(), what='the PDF') + close('seahorse.png', 1.2) + c, w = r.find('PdfSections') + r.sweep(1, (c, w), (c + len('PdfSections'), w), show=.5, hold=1.3, + until=lambda s: 'Chapter 1' in s.text(), what='the sections') + c, w = r.find('+PdfSections') + type_in_tag(r, w, ' CPUID') + for _ in range(2): # B3 on a word in a tag finds it in the body + start, end = word_at(r, 'CPUID', w) + r.sweep(2, start, end, show=.4, hold=.9) + c, row = r.find('intel-devref-ii.pdf:317:200') + r.sweep(2, (c, row), (c + len('intel-devref-ii.pdf:317'), row), show=.5, hold=1.8, + until=lambda s: '[317/2515]' in s.text(), what='the jump') + start, end = word_at(r, 'Del', w) + r.sweep(1, start, end, show=.4, hold=.8, until=lambda s: '+PdfSections' not in s.text(), what='Del sections') + r.click(0, 40, 8, hold=.3) + r.step('/', hold=.3) + r.type('Vendor', until=lambda s: '/Vendor' in s.text(), last_hold=.3) + r.step('\r', hold=2.0, until=lambda s: '+Search' in s.text(), quiet=.4, timeout=60, what='the search') + + +CASTS = { + 'live-text': dict( + run=live_text, cwd=PROJECT, args=['main.c'], + title='Live text', + caption='Helix keys edit; middle-click runs make; right-click the error opens its line.'), + 'terminals': dict( + run=terminals, cwd=PROJECT, args=['NOTES'], + title='Terminals as panes', + caption='A shell beside a file: Ctrl-b, copy a line, page git log.'), + 'petscii': dict( + run=petscii, cwd=ART, args=['mandelbrot.png'], + title='Images and PDFs in a plain terminal', + caption='No kitty graphics: Mandelbrots as PETSCII, then the Intel manual searched.'), +} + + +def make_home(work): + home = work / 'home' + shutil.rmtree(home, ignore_errors=True) + (home / 'config/pardes').mkdir(parents=True) + (home / 'run').mkdir(mode=0o700) + # No animation or blink: a frame drawn on a timer would land in the cast + # wherever the wall clock put it. + (home / 'config/pardes/init').write_text( + 'Shell /bin/sh\nMessageLinger 0\nMessageAnimation off\nCursorBlink off\n' + 'SelectionGlow off\nHoverGlow off\nJumpTrail off\nThumbFlash off\n') + (home / '.gitconfig').write_text('[log]\n\tabbrevCommit = true\n[color]\n\tui = always\n') + return home + + +def record(binary, work, name, pdf): + cast = CASTS[name] + home = make_home(work) + make_project(home) + make_art(pdf) + log = open(work / f'{name}.steps.log', 'w') + r = Recording(binary, home, cast['args'], cast['cwd'], log=log) + try: + cast['run'](r) + finally: + r.close() + log.close() + OUT.mkdir(parents=True, exist_ok=True) + out = OUT / f'{name}.cast' + out.write_text(r.cast(cast['title'])) + (work / f'{name}.raw.cast').write_text(r.cast(cast['title'], raw=True)) + length = json.loads(out.read_text().splitlines()[-1])[0] + print(f'{name}: {length:.1f} s, {out.stat().st_size / 1024:.0f} KB') + + +def write_toml(): + lines = ['# The landing page\'s terminal recordings (asciicast v2), in the order', + '# shown: casts/<name>.cast for each. The first plays by itself; all loop', + '# and fit the page\'s width. While `ready` is false the cast shows', + '# placeholder.svg, so the site builds before a recording exists.', + '# test/record_casts.py writes the casts and this file.', ''] + for name, cast in CASTS.items(): + lines += ['[[cast]]', f'name = "{name}"', f'title = "{cast["title"]}"', + f'caption = "{cast["caption"]}"', f'cols = {COLS}', f'rows = {ROWS}', + f'ready = {"true" if (OUT / f"{name}.cast").exists() else "false"}', ''] + (OUT / 'casts.toml').write_text('\n'.join(lines)) + + +def show(name, work, at=None): + """Print a cast's frame (the last, or the one at `at` seconds) as text + and draw it to <work>/<name>.png.""" + screen = replay(OUT / f'{name}.cast', at) + print(f'--- {name}' + (f' at {at} s' if at is not None else '')) + for line in screen.display: + print(line.rstrip()) + render_png(screen, work / f'{name}.png') + + +def main(): + parser = argparse.ArgumentParser(description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter) + parser.add_argument('binary', type=Path, nargs='?', help='a pardes built with -Dplatform=tty') + parser.add_argument('casts', nargs='*', help='which casts (default: all): ' + ', '.join(CASTS)) + parser.add_argument('--work', type=Path, default=REPO.parent / '.scratch/casts/work', + help='the session home, step logs and check pictures (default %(default)s)') + parser.add_argument('--pdf', type=Path, default=SDM, help='the manual the petscii cast reads (default %(default)s)') + parser.add_argument('--show', action='store_true', help='print and draw each cast\'s last frame after') + parser.add_argument('--show-only', action='store_true', help='record nothing; print and draw the casts as they are') + parser.add_argument('--at', type=float, help='with --show: the frame at this many seconds instead') + args = parser.parse_args() + if args.binary is not None and args.binary.name in CASTS and not args.binary.exists(): + args.casts.insert(0, args.binary.name) + args.binary = None + names = args.casts or list(CASTS) + for name in names: + if name not in CASTS: + parser.error(f'no cast {name!r}: ' + ', '.join(CASTS)) + work = args.work.resolve() + work.mkdir(parents=True, exist_ok=True) + if not args.show_only: + if args.binary is None: + parser.error('the pardes binary to record is required') + if not args.pdf.is_file(): + parser.error(f'no PDF at {args.pdf}') + try: + for name in names: + record(args.binary, work, name, args.pdf.resolve()) + finally: + shutil.rmtree(PROJECT.parent, ignore_errors=True) + write_toml() + if args.show or args.show_only: + for name in names: + show(name, work, args.at) + + +if __name__ == '__main__': + main() |
