diff options
Diffstat (limited to 'docs/site')
128 files changed, 749 insertions, 42 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..9cf8afb6 100644 --- a/docs/site/casts/casts.toml +++ b/docs/site/casts/casts.toml @@ -1,20 +1,33 @@ # The landing page's terminal recordings (asciicast v2), in the order -# shown: casts/<name>.cast for each. The first plays by itself; all loop +# shown: casts/<name>.cast for each. Each plays by itself while on screen; 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. +# `poster_at` is the second whose frame stands for the cast before it plays. +# 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 = "Rename a variable with helix keys, middle-click make, right-click the error." cols = 100 rows = 30 -ready = false +ready = true +poster_at = 14 [[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 +poster_at = 11 + +[[cast]] +name = "petscii" +title = "Images and PDFs in a plain terminal" +caption = "No kitty graphics: a Mandelbrot in PETSCII, then the Intel manual searched." +cols = 100 +rows = 30 +ready = true +poster_at = 3 diff --git a/docs/site/casts/live-text.cast b/docs/site/casts/live-text.cast new file mode 100644 index 00000000..66240f6b --- /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;38;2;185;244;128;48;2;13;20;16m/* 1 + 4 + 9 + 16 */\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;38;2;185;244;128;48;2;13;20;16m/*\u001b[13;25H1 + 4 + 9 + 16\u001b[13;40H*/\u001b[13;43H\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[0;38;2;185;244;128;48;2;13;20;16m/* 1 + 4 + 9 + 16 */\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[0;38;2;185;244;128;48;2;13;20;16m/* 1 + 4 + 9 + 16 */\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[0;38;2;185;244;128;48;2;13;20;16m/* 1 + 4 + 9 + 16 */\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[0;38;2;185;244;128;48;2;13;20;16m/* 1 + 4 + 9 + 16 */\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[0;38;2;185;244;128;48;2;13;20;16m/* 1 + 4 + 9 + 16 */\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[8;27H\u001b[0;38;2;185;244;128;48;2;13;20;16m/*\u001b[8;30H1\u001b[8;32H+\u001b[8;34H4\u001b[8;36H+\u001b[8;38H9\u001b[8;40H+\u001b[8;42H16\u001b[8;45H*/\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[13;27H \u001b[13;30H \u001b[13;32H \u001b[13;34H \u001b[13;36H \u001b[13;38H \u001b[13;40H \u001b[13;42H \u001b[13;45H \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..466dd3c7 --- /dev/null +++ b/docs/site/casts/petscii.cast @@ -0,0 +1,39 @@ +{"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;56m/tmp/cast/art/\u001b[0;38;2;223;188;229;48;2;49;71;56mREADME\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;16mpictures, right-click a name:\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;16m mandelbrot.png the whole set\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 seahorse.png a seahorse valley, zoomed in\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 sdm.pdf Intel SDM vol. 2, 2,515 pages\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.6, "o", "\u001b[6;10H\u001b[0;38;2;245;247;238;48;2;107;120;88mmandelbrot.png \u001b[0m\u001b[4;8H\u001b[?25h"] +[2.1, "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/art/\u001b[0;38;2;211;176;217;48;2;29;40;36mREADME\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[6;10H\u001b[0;38;2;229;238;229;48;2;13;20;16mmandelbrot.png \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;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[10;1H\u001b[0;39;48;2;21;32;25m \u001b[10;20H\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;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;1H\u001b[0;39;48;2;21;32;25m \u001b[11;20H\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;255;255;255;48;2;112;164;178m🬜\u001b[0;38;2;255;255;255;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[12;1H\u001b[0;39;48;2;21;32;25m \u001b[12;20H\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;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[13;1H\u001b[0;39;48;2;21;32;25m \u001b[13;20H\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;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;184;199;111m🬕\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;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[14;1H\u001b[0;39;48;2;21;32;25m \u001b[14;20H\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;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;111;79;37m🬹\u001b[0;38;2;0;0;0;48;2;104;55;43m🬹\u001b[0;38;2;111;79;37;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;111;79;37m█\u001b[0;38;2;0;0;0;48;2;104;55;43m🬹\u001b[0;38;2;0;0;0;48;2;108;108;108m🬹\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;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;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[15;1H\u001b[0;39;48;2;21;32;25m \u001b[15;20H\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;255;255;255;48;2;112;164;178mj\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;104;55;43;48;2;0;0;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;67;57;0m🬝\u001b[0;38;2;0;0;0;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[0;38;2;112;164;178;48;2;108;94;181m🬲\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[16;1H\u001b[0;39;48;2;21;32;25m \u001b[16;20H\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;112;164;178;48;2;255;255;255m▌\u001b[0;38;2;184;199;111;48;2;154;103;89m▌\u001b[0;38;2;184;199;111;48;2;0;0;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;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;108;94;181;48;2;112;164;178m🬬\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[17;1H\u001b[0;39;48;2;21;32;25m \u001b[17;20H\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;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;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;255;255;255m🬝\u001b[0;38;2;0;0;0;48;2;154;103;89m🬞\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[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;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[18;1H\u001b[0;39;48;2;21;32;25m \u001b[18;20H\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;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;154;103;89m🬺\u001b[0;38;2;104;55;43;48;2;0;0;0m~\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;0;0;0;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;111;79;37m🬻\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;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[19;1H\u001b[0;39;48;2;21;32;25m \u001b[19;20H\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;111;79;37;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;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;184;199;111;48;2;0;0;0mT\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;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;108;94;181;48;2;108;94;181m \u001b[20;1H\u001b[0;39;48;2;21;32;25m \u001b[20;20H\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;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;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;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;104;55;43m🬴\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[21;1H\u001b[0;39;48;2;21;32;25m \u001b[21;20H\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;112;164;178m~\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[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;0;0;0m \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;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;108;94;181;48;2;108;94;181m \u001b[22;1H\u001b[0;39;48;2;21;32;25m \u001b[22;20H\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;67;57;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;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;154;103;89m🬆\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;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;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[23;1H\u001b[0;39;48;2;21;32;25m \u001b[23;20H\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;0;0;0m🬺\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;112;164;178;48;2;184;199;111m▄\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;154;103;89m🬲\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;108;94;181m \u001b[24;1H\u001b[0;39;48;2;21;32;25m \u001b[24;20H\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;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;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;184;199;111;48;2;112;164;178mf\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;108;94;181;48;2;112;164;178m🬻\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[25;1H\u001b[0;39;48;2;21;32;25m \u001b[25;20H\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;255;255;255;48;2;112;164;178m4\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;104;55;43m█\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;67;57;0m█\u001b[0;38;2;184;199;111;48;2;104;55;43m🬂\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[26;1H\u001b[0;39;48;2;21;32;25m \u001b[26;20H\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;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;0;0;0;48;2;184;199;111m🬂🬎🬎\u001b[0;38;2;149;149;149;48;2;0;0;0m_\u001b[0;38;2;154;103;89;48;2;0;0;0m_\u001b[0;38;2;0;0;0;48;2;67;57;0m█\u001b[0;38;2;67;57;0;48;2;0;0;0m_\u001b[0;38;2;108;108;108;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;255;255;255m🬺\u001b[0;38;2;112;164;178;48;2;111;79;37m🬹\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[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[27;1H\u001b[0;39;48;2;21;32;25m \u001b[27;20H\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;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;0;0;0m \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;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;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;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[28;1H\u001b[0;39;48;2;21;32;25m \u001b[28;20H\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;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[29;1H\u001b[0;39;48;2;21;32;25m \u001b[29;20H\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;0;0;0m🬺\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[30;1H\u001b[0;39;48;2;21;32;25m \u001b[30;20H\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;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;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[0m\u001b[4;8H\u001b[?25h"] +[4.1, "o", "\u001b[9;89H\u001b[0;38;2;245;247;238;48;2;91;126;90mDel \u001b[0m\u001b[4;8H\u001b[?25h"] +[4.5, "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/art/\u001b[0;38;2;223;188;229;48;2;49;71;56mREADME\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[6;3H\u001b[0;38;2;97;111;100;48;2;13;20;16;1m 3 \u001b[8;1H\u001b[0;39;48;2;96;130;105m \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[10;1H\u001b[0;39;48;2;96;130;105m \u001b[10;20H\u001b[0;39;48;2;13;20;16m \u001b[11;1H\u001b[0;39;48;2;96;130;105m \u001b[11;20H\u001b[0;39;48;2;13;20;16m \u001b[12;1H\u001b[0;39;48;2;96;130;105m \u001b[12;20H\u001b[0;39;48;2;13;20;16m \u001b[13;1H\u001b[0;39;48;2;96;130;105m \u001b[13;20H\u001b[0;39;48;2;13;20;16m \u001b[14;1H\u001b[0;39;48;2;96;130;105m \u001b[14;20H\u001b[0;39;48;2;13;20;16m \u001b[15;1H\u001b[0;39;48;2;96;130;105m \u001b[15;20H\u001b[0;39;48;2;13;20;16m \u001b[16;1H\u001b[0;39;48;2;96;130;105m \u001b[16;20H\u001b[0;39;48;2;13;20;16m \u001b[17;1H\u001b[0;39;48;2;96;130;105m \u001b[17;20H\u001b[0;39;48;2;13;20;16m \u001b[18;1H\u001b[0;39;48;2;96;130;105m \u001b[18;20H\u001b[0;39;48;2;13;20;16m \u001b[19;1H\u001b[0;39;48;2;96;130;105m \u001b[19;20H\u001b[0;39;48;2;13;20;16m \u001b[20;1H\u001b[0;39;48;2;96;130;105m \u001b[20;20H\u001b[0;39;48;2;13;20;16m \u001b[21;1H\u001b[0;39;48;2;96;130;105m \u001b[21;20H\u001b[0;39;48;2;13;20;16m \u001b[22;1H\u001b[0;39;48;2;96;130;105m \u001b[22;20H\u001b[0;39;48;2;13;20;16m \u001b[23;1H\u001b[0;39;48;2;96;130;105m \u001b[23;20H\u001b[0;39;48;2;13;20;16m \u001b[24;1H\u001b[0;39;48;2;96;130;105m \u001b[24;20H\u001b[0;39;48;2;13;20;16m \u001b[25;1H\u001b[0;39;48;2;96;130;105m \u001b[25;20H\u001b[0;39;48;2;13;20;16m \u001b[26;1H\u001b[0;39;48;2;96;130;105m \u001b[26;20H\u001b[0;39;48;2;13;20;16m \u001b[27;1H\u001b[0;39;48;2;96;130;105m \u001b[27;20H\u001b[0;39;48;2;13;20;16m \u001b[28;1H\u001b[0;39;48;2;96;130;105m \u001b[28;20H\u001b[0;39;48;2;13;20;16m \u001b[29;1H\u001b[0;39;48;2;96;130;105m \u001b[29;20H\u001b[0;39;48;2;13;20;16m \u001b[30;1H\u001b[0;39;48;2;96;130;105m \u001b[30;20H\u001b[0;39;48;2;13;20;16m \u001b[0m\u001b[6;10H\u001b[?25h"] +[5.0, "o", "\u001b[7;10H\u001b[0;38;2;245;247;238;48;2;107;120;88mseahorse.png \u001b[0m\u001b[6;10H\u001b[?25h"] +[5.5, "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/art/\u001b[0;38;2;211;176;217;48;2;29;40;36mREADME\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[6;3H\u001b[0;38;2;89;103;92;48;2;13;20;16m 3 \u001b[7;10H\u001b[0;38;2;229;238;229;48;2;13;20;16mseahorse.png \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;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[10;1H\u001b[0;39;48;2;21;32;25m \u001b[10;20H\u001b[0;38;2;112;164;178;48;2;108;94;181m🬝\u001b[0;38;2;184;199;111;48;2;112;164;178mq_\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;154;103;89;48;2;53;40;121m🬴\u001b[0;38;2;149;149;149;48;2;108;94;181mY\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;108;94;181;48;2;112;164;178m🬺🬹\u001b[0;38;2;108;94;181;48;2;184;199;111m🬻\u001b[0;38;2;53;40;121;48;2;112;164;178m🬵\u001b[0;38;2;108;94;181;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;184;199;111;48;2;112;164;178m─\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;108;94;181;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[11;1H\u001b[0;39;48;2;21;32;25m \u001b[11;20H\u001b[0;38;2;108;94;181;48;2;149;149;149m▐\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;184;199;111m🬹\u001b[0;38;2;112;164;178;48;2;149;149;149m🬜\u001b[0;38;2;184;199;111;48;2;149;149;149m─\"\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🬺\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;1H\u001b[0;39;48;2;21;32;25m \u001b[12;20H\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;112;164;178;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;108;94;181;48;2;53;40;121m🬨\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[13;1H\u001b[0;39;48;2;21;32;25m \u001b[13;20H\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[14;1H\u001b[0;39;48;2;21;32;25m \u001b[14;20H\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[15;1H\u001b[0;39;48;2;21;32;25m \u001b[15;20H\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[16;1H\u001b[0;39;48;2;21;32;25m \u001b[16;20H\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[17;1H\u001b[0;39;48;2;21;32;25m \u001b[17;20H\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;184;199;111m🬎\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;112;164;178m█\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[18;1H\u001b[0;39;48;2;21;32;25m \u001b[18;20H\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;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;154;103;89m🬝\u001b[0;38;2;149;149;149;48;2;108;94;181m_\u001b[0;38;2;112;164;178;48;2;108;94;181m🬳\u001b[0;38;2;154;103;89;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;255;255;255m🬝\u001b[0;38;2;108;94;181;48;2;112;164;178m🬆\u001b[0;38;2;184;199;111;48;2;108;94;181mc\u001b[0;38;2;53;40;121;48;2;149;149;149m_\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;38;2;108;94;181;48;2;112;164;178m🬝🬬\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[19;1H\u001b[0;39;48;2;21;32;25m \u001b[19;20H\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;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;112;164;178m🬝\u001b[0;38;2;108;94;181;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;108;94;181m│\u001b[0;38;2;184;199;111;48;2;154;103;89m~\u001b[0;38;2;154;103;89;48;2;184;199;111ma\u001b[0;38;2;255;255;255;48;2;112;164;178mq\u001b[0;38;2;112;164;178;48;2;154;103;89m🬄\u001b[0;38;2;154;103;89;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;255;255;255;48;2;149;149;149m<\u001b[0;38;2;112;164;178;48;2;184;199;111mT\u001b[0;38;2;108;94;181;48;2;154;103;89m}\u001b[0;38;2;149;149;149;48;2;108;94;181mt\u001b[0;38;2;154;103;89;48;2;149;149;149md\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;108;94;181;48;2;154;103;89m🬕\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;112;164;178m█\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[20;1H\u001b[0;39;48;2;21;32;25m \u001b[20;20H\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;154;103;89m▝\u001b[0;38;2;108;94;181;48;2;149;149;149m🬑\u001b[0;38;2;184;199;111;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;255;255;255;48;2;112;164;178m.\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;149;149;149;48;2;154;103;89m~\u001b[0;38;2;184;199;111;48;2;149;149;149m🬊\u001b[0;38;2;255;255;255;48;2;184;199;111m🬞\u001b[0;38;2;154;103;89;48;2;184;199;111mz\u001b[0;38;2;184;199;111;48;2;149;149;149m▀\u001b[0;38;2;108;94;181;48;2;154;103;89m🬹\u001b[0;38;2;184;199;111;48;2;108;94;181m🬊\u001b[0;38;2;255;255;255;48;2;149;149;149m🬢\u001b[0;38;2;184;199;111;48;2;149;149;149m▀\u001b[0;38;2;112;164;178;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;149;149;149m🬴🬪\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;53;40;121;48;2;108;94;181mL\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;108;94;181;48;2;112;164;178m🬬\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[21;1H\u001b[0;39;48;2;21;32;25m \u001b[21;20H\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;149;149;149m🬎▀\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;108;94;181;48;2;154;103;89m─\u001b[0;38;2;154;103;89;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;255;255;255;48;2;149;149;149m🬭\u001b[0;38;2;184;199;111;48;2;255;255;255m🬎\u001b[0;38;2;111;79;37;48;2;112;164;178m▀\u001b[0;38;2;149;149;149;48;2;53;40;121m🬺\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;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;68;68;68m█\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;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;154;103;89m🬏\u001b[0;38;2;112;164;178;48;2;154;103;89mx\u001b[0;38;2;184;199;111;48;2;154;103;89m▗🬛\u001b[0;38;2;53;40;121;48;2;184;199;111m🬄\u001b[0;38;2;255;255;255;48;2;184;199;111mm\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;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[22;1H\u001b[0;39;48;2;21;32;25m \u001b[22;20H\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;112;164;178;48;2;149;149;149m🬍\u001b[0;38;2;108;94;181;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;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;103;89m🬎\u001b[0;38;2;255;255;255;48;2;112;164;178m.\u001b[0;38;2;149;149;149;48;2;184;199;111m/\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;53;40;121;48;2;154;103;89m)\u001b[0;38;2;184;199;111;48;2;149;149;149m🬞\u001b[0;38;2;149;149;149;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;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;112;164;178m▙▄\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;149;149;149;48;2;104;55;43m🬍\u001b[0;38;2;53;40;121;48;2;184;199;111m🬯\u001b[0;38;2;154;103;89;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;108;94;181m🬕\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[23;1H\u001b[0;39;48;2;21;32;25m \u001b[23;20H\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;112;164;178;48;2;53;40;121m🬴\u001b[0;38;2;108;94;181;48;2;149;149;149m🬷\u001b[0;38;2;154;103;89;48;2;108;94;181m🬨\u001b[0;38;2;108;94;181;48;2;154;103;89m.\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;255;255;255;48;2;184;199;111m▄\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;112;164;178;48;2;255;255;255m🬻\u001b[0;38;2;154;103;89;48;2;112;164;178m~\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;255;255;255m \u001b[0;38;2;255;255;255;48;2;149;149;149m▛\u001b[0;38;2;112;164;178;48;2;154;103;89m╲\u001b[0;38;2;154;103;89;48;2;149;149;149m🬉\u001b[0;38;2;184;199;111;48;2;154;103;89ma\u001b[0;38;2;154;103;89;48;2;255;255;255m🬝\u001b[0;38;2;255;255;255;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;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[24;1H\u001b[0;39;48;2;21;32;25m \u001b[24;20H\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;108;94;181m▄🬺\u001b[0;38;2;104;55;43;48;2;112;164;178m^\u001b[0;38;2;154;103;89;48;2;104;55;43m🬺\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;108;94;181;48;2;149;149;149m🬓\u001b[0;38;2;104;55;43;48;2;108;108;108m🬃\u001b[0;38;2;154;103;89;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;178mm\u001b[0;38;2;112;164;178;48;2;108;108;108m🬎\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;255;255;255;48;2;154;103;89m🬂▜\u001b[0;38;2;255;255;255;48;2;255;255;255m \u001b[0;38;2;184;199;111;48;2;255;255;255m~\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;53;40;121;48;2;149;149;149m🬞\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;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;1H\u001b[0;39;48;2;21;32;25m \u001b[25;20H\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;111;61;134;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;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;184;199;111;48;2;149;149;149m_\u001b[0;38;2;108;108;108;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;184;199;111;48;2;154;103;89m▟\u001b[0;38;2;184;199;111;48;2;255;255;255m🬻\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;112;164;178;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;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;149;149;149m🬆\u001b[0;38;2;108;94;181;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;112;164;178m█▛\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;184;199;111m█\u001b[0;38;2;255;255;255;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;112;164;178;48;2;104;55;43m┼\u001b[0;38;2;154;103;89;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;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[26;1H\u001b[0;39;48;2;21;32;25m \u001b[26;20H\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;108;94;181m▐\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;108;94;181;48;2;149;149;149m🬑\u001b[0;38;2;108;108;108;48;2;112;164;178m*\u001b[0;38;2;184;199;111;48;2;108;94;181m🬂\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;112;164;178;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;149;149;149m▌\u001b[0;38;2;154;103;89;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;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;149;149;149m▀\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;154;103;89;48;2;108;108;108m▟\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;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;108;94;181;48;2;108;94;181m \u001b[27;1H\u001b[0;39;48;2;21;32;25m \u001b[27;20H\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;112;164;178m▖\u001b[0;38;2;184;199;111;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;53;40;121;48;2;184;199;111m🬄\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;154;103;89;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;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;67;57;0m█\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;111;61;134m🬎\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;184;199;111m🬎🬆\u001b[0;38;2;255;255;255;48;2;108;94;181m▀\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;53;40;121;48;2;108;94;181mq\u001b[0;38;2;112;164;178;48;2;108;108;108m▖\u001b[0;38;2;0;0;0;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;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[28;1H\u001b[0;39;48;2;21;32;25m \u001b[28;20H\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;184;199;111m▙\u001b[0;38;2;108;94;181;48;2;149;149;149m🬯\u001b[0;38;2;184;199;111;48;2;108;94;181m▄\u001b[0;38;2;108;94;181;48;2;154;103;89mY\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;53;40;121m🬝🬥\u001b[0;38;2;108;94;181;48;2;149;149;149m🬲\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;154;103;89;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;108;108;108;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;154;103;89m🬚\u001b[0;38;2;154;103;89;48;2;108;108;108m🬙\u001b[0;38;2;104;55;43;48;2;108;94;181m▘\u001b[0;38;2;154;103;89;48;2;149;149;149m🬝\u001b[0;38;2;154;103;89;48;2;184;199;111m🬬\u001b[0;38;2;108;94;181;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;184;199;111mP\u001b[0;38;2;255;255;255;48;2;184;199;111m🬃\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;112;164;178;48;2;184;199;111m🬴\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[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;1H\u001b[0;39;48;2;21;32;25m \u001b[29;20H\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;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;112;164;178;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;154;210;132m█\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;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;149;149;149m🬺\u001b[0;38;2;154;103;89;48;2;111;79;37m🬝\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;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;53;40;121m█\u001b[0;38;2;112;164;178;48;2;184;199;111m🬔\u001b[0;38;2;53;40;121;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;108;108;108m▙\u001b[0;38;2;149;149;149;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;0;0;0m█\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;112;164;178m█\u001b[0;38;2;108;94;181;48;2;108;94;181m \u001b[30;1H\u001b[0;39;48;2;21;32;25m \u001b[30;20H\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;108;94;181m🬨\u001b[0;38;2;112;164;178;48;2;149;149;149m🬭\u001b[0;38;2;184;199;111;48;2;149;149;149mt\u001b[0;38;2;112;164;178;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;184;199;111m█\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;154;103;89;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;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;104;55;43m█\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;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[6;10H\u001b[?25h"] +[7.5, "o", "\u001b[9;87H\u001b[0;38;2;245;247;238;48;2;91;126;90mDel \u001b[0m\u001b[6;10H\u001b[?25h"] +[7.9, "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/art/\u001b[0;38;2;223;188;229;48;2;49;71;56mREADME\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[7;3H\u001b[0;38;2;97;111;100;48;2;13;20;16;1m 4 \u001b[8;1H\u001b[0;39;48;2;96;130;105m \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[10;1H\u001b[0;39;48;2;96;130;105m \u001b[10;20H\u001b[0;39;48;2;13;20;16m \u001b[11;1H\u001b[0;39;48;2;96;130;105m \u001b[11;20H\u001b[0;39;48;2;13;20;16m \u001b[12;1H\u001b[0;39;48;2;96;130;105m \u001b[12;20H\u001b[0;39;48;2;13;20;16m \u001b[13;1H\u001b[0;39;48;2;96;130;105m \u001b[13;20H\u001b[0;39;48;2;13;20;16m \u001b[14;1H\u001b[0;39;48;2;96;130;105m \u001b[14;20H\u001b[0;39;48;2;13;20;16m \u001b[15;1H\u001b[0;39;48;2;96;130;105m \u001b[15;20H\u001b[0;39;48;2;13;20;16m \u001b[16;1H\u001b[0;39;48;2;96;130;105m \u001b[16;20H\u001b[0;39;48;2;13;20;16m \u001b[17;1H\u001b[0;39;48;2;96;130;105m \u001b[17;20H\u001b[0;39;48;2;13;20;16m \u001b[18;1H\u001b[0;39;48;2;96;130;105m \u001b[18;20H\u001b[0;39;48;2;13;20;16m \u001b[19;1H\u001b[0;39;48;2;96;130;105m \u001b[19;20H\u001b[0;39;48;2;13;20;16m \u001b[20;1H\u001b[0;39;48;2;96;130;105m \u001b[20;20H\u001b[0;39;48;2;13;20;16m \u001b[21;1H\u001b[0;39;48;2;96;130;105m \u001b[21;20H\u001b[0;39;48;2;13;20;16m \u001b[22;1H\u001b[0;39;48;2;96;130;105m \u001b[22;20H\u001b[0;39;48;2;13;20;16m \u001b[23;1H\u001b[0;39;48;2;96;130;105m \u001b[23;20H\u001b[0;39;48;2;13;20;16m \u001b[24;1H\u001b[0;39;48;2;96;130;105m \u001b[24;20H\u001b[0;39;48;2;13;20;16m \u001b[25;1H\u001b[0;39;48;2;96;130;105m \u001b[25;20H\u001b[0;39;48;2;13;20;16m \u001b[26;1H\u001b[0;39;48;2;96;130;105m \u001b[26;20H\u001b[0;39;48;2;13;20;16m \u001b[27;1H\u001b[0;39;48;2;96;130;105m \u001b[27;20H\u001b[0;39;48;2;13;20;16m \u001b[28;1H\u001b[0;39;48;2;96;130;105m \u001b[28;20H\u001b[0;39;48;2;13;20;16m \u001b[29;1H\u001b[0;39;48;2;96;130;105m \u001b[29;20H\u001b[0;39;48;2;13;20;16m \u001b[30;1H\u001b[0;39;48;2;96;130;105m \u001b[30;20H\u001b[0;39;48;2;13;20;16m \u001b[0m\u001b[7;10H\u001b[?25h"] +[8.4, "o", "\u001b[8;10H\u001b[0;38;2;245;247;238;48;2;107;120;88msdm.pdf \u001b[0m\u001b[7;10H\u001b[?25h"] +[8.9, "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/art/\u001b[0;38;2;211;176;217;48;2;29;40;36mREADME\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[7;3H\u001b[0;38;2;89;103;92;48;2;13;20;16m 4 \u001b[8;1H\u001b[0;39;48;2;21;32;25m \u001b[8;10H\u001b[0;38;2;229;238;229;48;2;13;20;16msdm.pdf \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/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[10;3H\u001b[0;38;2;229;238;229;48;2;13;20;16mIntel®\u001b[10;10H64\u001b[10;13Hand\u001b[10;17HIA-32\u001b[10;23HArchitectures\u001b[11;1H\u001b[0;39;48;2;21;32;25m \u001b[11;3H\u001b[0;38;2;229;238;229;48;2;13;20;16mSoftware\u001b[11;12HDeveloper’s\u001b[11;24HManual\u001b[12;1H\u001b[0;39;48;2;21;32;25m \u001b[12;3H\u001b[0;38;2;229;238;229;48;2;13;20;16mVolume\u001b[12;10H2\u001b[12;12H(2A,\u001b[12;17H2B,\u001b[12;21H2C,\u001b[12;25H&\u001b[12;27H2D):\u001b[13;1H\u001b[0;39;48;2;21;32;25m \u001b[13;3H\u001b[0;38;2;229;238;229;48;2;13;20;16mInstruction\u001b[13;15HSet\u001b[13;19HReference,\u001b[13;30HA-Z\u001b[14;1H\u001b[0;39;48;2;21;32;25m \u001b[14;3H\u001b[0;38;2;229;238;229;48;2;13;20;16mNOTE:\u001b[14;9HThe\u001b[14;13HIntel\u001b[14;19H64\u001b[14;22Hand\u001b[14;26HIA-32\u001b[14;32HArchitectures\u001b[14;46HSoftware\u001b[14;55HDeveloper's\u001b[14;67HManual\u001b[14;74Hconsists\u001b[14;83Hof\u001b[14;86Hfour\u001b[14;91Hvolumes:\u001b[15;1H\u001b[0;39;48;2;21;32;25m \u001b[15;3H\u001b[0;38;2;229;238;229;48;2;13;20;16mBasic\u001b[15;9HArchitecture,\u001b[15;23HOrder\u001b[15;29HNumber\u001b[15;36H253665;\u001b[15;44HInstruction\u001b[15;56HSet\u001b[15;60HReference,\u001b[15;71HA-Z,\u001b[15;76HOrder\u001b[15;82HNumber\u001b[15;89H325383;\u001b[16;1H\u001b[0;39;48;2;21;32;25m \u001b[16;3H\u001b[0;38;2;229;238;229;48;2;13;20;16mSystem\u001b[16;10HProgramming\u001b[16;22HGuide,\u001b[16;29HOrder\u001b[16;35HNumber\u001b[16;42H325384;\u001b[16;50HModel-Specific\u001b[16;65HRegisters,\u001b[16;76HOrder\u001b[16;82HNumber\u001b[17;1H\u001b[0;39;48;2;21;32;25m \u001b[17;3H\u001b[0;38;2;229;238;229;48;2;13;20;16m335592.\u001b[17;11HRefer\u001b[17;17Hto\u001b[17;20Hall\u001b[17;24Hfour\u001b[17;29Hvolumes\u001b[17;37Hwhen\u001b[17;42Hevaluating\u001b[17;53Hyour\u001b[17;58Hdesign\u001b[17;65Hneeds.\u001b[18;1H\u001b[0;39;48;2;21;32;25m \u001b[18;3H\u001b[0;38;2;229;238;229;48;2;13;20;16mOrder\u001b[18;9HNumber:\u001b[18;18H325383-084US\u001b[19;1H\u001b[0;39;48;2;21;32;25m \u001b[19;3H\u001b[0;38;2;229;238;229;48;2;13;20;16mJune\u001b[19;8H2024\u001b[20;1H\u001b[0;39;48;2;21;32;25m \u001b[21;1H \u001b[22;1H \u001b[23;1H \u001b[24;1H \u001b[25;1H \u001b[26;1H \u001b[27;1H \u001b[28;1H \u001b[29;1H \u001b[30;1H \u001b[0m\u001b[10;3H\u001b[?25h"] +[10.4, "o", "\u001b[9;63H\u001b[0;38;2;245;247;238;48;2;91;126;90mPdfSections \u001b[0m\u001b[10;3H\u001b[?25h"] +[10.9, "o", "\u001b[9;63H\u001b[0;38;2;190;207;196;48;2;49;71;56mPdfSections \u001b[10;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[19;3H\u001b[0;39;48;2;13;20;16m \u001b[19;8H \u001b[20;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[21;1H\u001b[0;39;48;2;96;130;105m \u001b[21;6H\u001b[0;38;2;89;103;92;48;2;13;20;16m1\u001b[21;8Hintel-devref-ii.pdf:29:1\u001b[21;33H\u001b[0;38;2;229;238;229;48;2;13;20;16mChapter\u001b[21;41H1\u001b[21;43HAbout\u001b[21;49HThis\u001b[21;54HManual\u001b[22;6H\u001b[0;38;2;89;103;92;48;2;13;20;16m2\u001b[22;8Hintel-devref-ii.pdf:29:2\u001b[22;35H\u001b[0;38;2;229;238;229;48;2;13;20;16m1.1\u001b[22;39HOverview\u001b[22;48Hof\u001b[22;51HVolume\u001b[22;58H2A,\u001b[22;62H2B,\u001b[22;66H2C,\u001b[22;70Hand\u001b[22;74H2D:\u001b[22;78HInstruction\u001b[22;90HSet\u001b[22;94HRefere\u001b[0;38;2;89;103;92;48;2;13;20;16m↩\u001b[23;8H\u001b[0;38;2;229;238;229;48;2;13;20;16mnce\u001b[24;6H\u001b[0;38;2;89;103;92;48;2;13;20;16m3\u001b[24;8Hintel-devref-ii.pdf:31:3\u001b[24;33H\u001b[0;38;2;229;238;229;48;2;13;20;16mChapter\u001b[24;41H2\u001b[24;43HInstruction\u001b[24;55HFormat\u001b[25;6H\u001b[0;38;2;89;103;92;48;2;13;20;16m4\u001b[25;8Hintel-devref-ii.pdf:31:4\u001b[25;35H\u001b[0;38;2;229;238;229;48;2;13;20;16m2.1\u001b[25;39HInstruction\u001b[25;51HFormat\u001b[25;58Hfor\u001b[25;62HProtected\u001b[25;72HMode,\u001b[25;78Hreal-address\u001b[25;91HMode,\u001b[25;97Hand\u001b[0;38;2;89;103;92;48;2;13;20;16m↩\u001b[26;9H\u001b[0;38;2;229;238;229;48;2;13;20;16mvirtual-8086\u001b[26;22Hmode\u001b[27;6H\u001b[0;38;2;89;103;92;48;2;13;20;16m5\u001b[27;8Hintel-devref-ii.pdf:31:5\u001b[27;37H\u001b[0;38;2;229;238;229;48;2;13;20;16m2.1.1\u001b[27;43HInstruction\u001b[27;55HPrefixes\u001b[28;6H\u001b[0;38;2;89;103;92;48;2;13;20;16m6\u001b[28;8Hintel-devref-ii.pdf:33:6\u001b[28;37H\u001b[0;38;2;229;238;229;48;2;13;20;16m2.1.2\u001b[28;43HOpcodes\u001b[29;6H\u001b[0;38;2;89;103;92;48;2;13;20;16m7\u001b[29;8Hintel-devref-ii.pdf:33:7\u001b[29;37H\u001b[0;38;2;229;238;229;48;2;13;20;16m2.1.3\u001b[29;43HModR/M\u001b[29;50Hand\u001b[29;54HSIB\u001b[29;58HBytes\u001b[30;6H\u001b[0;38;2;89;103;92;48;2;13;20;16m8\u001b[30;8Hintel-devref-ii.pdf:33:8\u001b[30;37H\u001b[0;38;2;229;238;229;48;2;13;20;16m2.1.4\u001b[30;43HDisplacement\u001b[30;56Hand\u001b[30;60HImmediate\u001b[30;70HBytes\u001b[0m\u001b[10;3H\u001b[?25h"] +[12.2, "o", "\u001b[9;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[10;88H\u001b[0;39;48;2;13;20;16m \u001b[20;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[20;80H\u001b[?25h"] +[12.5, "o", "\u001b[0m\u001b[20;81H\u001b[?25h"] +[12.59, "o", "\u001b[20;81H\u001b[0;38;2;190;207;196;48;2;49;71;56mC\u001b[0m\u001b[20;82H\u001b[?25h"] +[12.68, "o", "\u001b[20;82H\u001b[0;38;2;190;207;196;48;2;49;71;56mP\u001b[0m\u001b[20;83H\u001b[?25h"] +[12.77, "o", "\u001b[20;83H\u001b[0;38;2;190;207;196;48;2;49;71;56mU\u001b[0m\u001b[20;84H\u001b[?25h"] +[12.86, "o", "\u001b[20;84H\u001b[0;38;2;190;207;196;48;2;49;71;56mI\u001b[0m\u001b[20;85H\u001b[?25h"] +[12.95, "o", "\u001b[20;85H\u001b[0;38;2;190;207;196;48;2;49;71;56mD\u001b[0m\u001b[20;86H\u001b[?25h"] +[13.65, "o", "\u001b[20;81H\u001b[0;38;2;245;247;238;48;2;107;120;88mCPUID \u001b[0m\u001b[20;86H\u001b[?25h"] +[14.05, "o", "\u001b[20;81H\u001b[0;38;2;190;207;196;48;2;49;71;56mCPUID\u001b[0;39;48;2;49;71;56m \u001b[21;5H\u001b[0;38;2;89;103;92;48;2;13;20;16m95\u001b[21;28H103:95\u001b[0;38;2;229;238;229;48;2;13;20;16m \u001b[21;41H3.1.1.2\u001b[21;49HOpcode Column\u001b[21;63Hin\u001b[21;66Hthe\u001b[21;70HInstruction\u001b[21;82HSummary\u001b[21;90HTable\u001b[21;96H(Ins\u001b[0;38;2;89;103;92;48;2;13;20;16m↩\u001b[22;6H \u001b[22;8H\u001b[0;38;2;229;238;229;48;2;13;20;16mtructions with VEX prefix)\u001b[22;35H\u001b[0;39;48;2;13;20;16m \u001b[22;39H \u001b[22;48H \u001b[22;51H \u001b[22;58H \u001b[22;62H \u001b[22;66H \u001b[22;70H \u001b[22;74H \u001b[22;78H \u001b[22;90H \u001b[22;94H \u001b[23;5H\u001b[0;38;2;89;103;92;48;2;13;20;16m96\u001b[23;8Hintel-devref-ii.pdf:105:96\u001b[23;41H\u001b[0;38;2;229;238;229;48;2;13;20;16m3.1.1.3\u001b[23;49HInstruction\u001b[23;61HColumn\u001b[23;68Hin\u001b[23;71Hthe\u001b[23;75HOpcode\u001b[23;82HSummary\u001b[23;90HTable\u001b[24;5H\u001b[0;38;2;89;103;92;48;2;13;20;16m97\u001b[24;28H108:97\u001b[0;38;2;229;238;229;48;2;13;20;16m \u001b[24;41H3.1.1.4 Operand Encoding\u001b[24;66HColumn\u001b[24;73Hin\u001b[24;76Hthe\u001b[24;80HInstruction\u001b[24;92HSummary\u001b[24;100H\u001b[0;38;2;89;103;92;48;2;13;20;16m↩\u001b[25;6H \u001b[25;8H\u001b[0;38;2;229;238;229;48;2;13;20;16mTable\u001b[0;39;48;2;13;20;16m \u001b[25;35H \u001b[25;39H \u001b[25;51H \u001b[25;58H \u001b[25;62H \u001b[25;72H \u001b[25;78H \u001b[25;91H \u001b[25;97H \u001b[26;5H\u001b[0;38;2;89;103;92;48;2;13;20;16m98\u001b[26;8Hintel-devref-ii.pdf:108:98\u001b[26;41H\u001b[0;38;2;229;238;229;48;2;13;20;16m3.1.1.5\u001b[26;49H64/32-bit\u001b[26;59HMode\u001b[26;64HColumn\u001b[26;71Hin\u001b[26;74Hthe\u001b[26;78HInstruction\u001b[26;90HSummary\u001b[26;98HTa\u001b[0;38;2;89;103;92;48;2;13;20;16m↩\u001b[27;6H \u001b[27;8H\u001b[0;38;2;229;238;229;48;2;13;20;16mble\u001b[0;39;48;2;13;20;16m \u001b[27;37H \u001b[27;43H \u001b[27;55H \u001b[28;5H\u001b[0;38;2;89;103;92;48;2;13;20;16m99\u001b[28;28H109:99\u001b[28;37H\u001b[0;38;2;229;238;229;48;2;13;20;16m 3.1.1.6 \u001b[0;38;2;245;247;238;48;2;60;97;74mCPUID\u001b[28;55H\u001b[0;38;2;229;238;229;48;2;13;20;16mSupport\u001b[28;63HColumn\u001b[28;70Hin\u001b[28;73Hthe\u001b[28;77HInstruction\u001b[28;89HSummary\u001b[28;97HTab\u001b[0;38;2;89;103;92;48;2;13;20;16m↩\u001b[29;6H \u001b[29;8H\u001b[0;38;2;229;238;229;48;2;13;20;16mle\u001b[0;39;48;2;13;20;16m \u001b[29;37H \u001b[29;43H \u001b[29;50H \u001b[29;54H \u001b[29;58H \u001b[30;4H\u001b[0;38;2;89;103;92;48;2;13;20;16m100\u001b[30;28H109:100\u001b[30;37H\u001b[0;38;2;229;238;229;48;2;13;20;16m 3.1.1.7 Description Column in \u001b[30;73Hhe\u001b[30;76HInstruction\u001b[30;88HSummary\u001b[30;96HTabl\u001b[0m\u001b[20;86H\u001b[?25h"] +[14.95, "o", "\u001b[20;81H\u001b[0;38;2;245;247;238;48;2;107;120;88mCPUID \u001b[0m\u001b[20;86H\u001b[?25h"] +[15.35, "o", "\u001b[20;81H\u001b[0;38;2;190;207;196;48;2;49;71;56mCPUID\u001b[0;39;48;2;49;71;56m \u001b[21;1H\u001b[0;39;48;2;21;32;25m \u001b[21;4H\u001b[0;38;2;89;103;92;48;2;13;20;16m1\u001b[21;6H7\u001b[21;28H310\u001b[21;32H197\u001b[21;40H\u001b[0;38;2;229;238;229;48;2;13;20;16mCMPXCHG8B/CMPXCHG16B—Compare and Exchange\u001b[21;82HBytes\u001b[0;39;48;2;13;20;16m \u001b[21;90H \u001b[21;96H \u001b[22;1H\u001b[0;39;48;2;96;130;105m \u001b[22;4H\u001b[0;38;2;89;103;92;48;2;13;20;16m198\u001b[22;8Hintel-devref-ii.pdf:313:198\u001b[22;40H\u001b[0;38;2;229;238;229;48;2;13;20;16mCOMISD—Compare\u001b[22;55HScalar\u001b[22;62HOrdered\u001b[22;70HDouble\u001b[22;77HPrecision\u001b[22;87HFloating-Poin\u001b[0;38;2;89;103;92;48;2;13;20;16m↩\u001b[23;5H \u001b[23;8H\u001b[0;38;2;229;238;229;48;2;13;20;16mt Values and Set EFLAGS\u001b[0;39;48;2;13;20;16m \u001b[23;41H \u001b[23;49H \u001b[23;61H \u001b[23;68H \u001b[23;71H \u001b[23;75H \u001b[23;82H \u001b[23;90H \u001b[24;4H\u001b[0;38;2;89;103;92;48;2;13;20;16m1\u001b[24;6H9\u001b[24;28H315\u001b[24;32H199\u001b[24;40H\u001b[0;38;2;229;238;229;48;2;13;20;16mCOMISS—Com\u001b[24;51Ha\u001b[24;53He Scalar Ordered Single Preci\u001b[24;83Hion Fl\u001b[24;90Hating-Poin\u001b[25;8Ht Values\u001b[25;17Hand\u001b[25;21HSet\u001b[25;25HEFLAGS\u001b[26;4H\u001b[0;38;2;89;103;92;48;2;13;20;16m200\u001b[26;28H317\u001b[26;32H200\u001b[26;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 Identification\u001b[0;39;48;2;13;20;16m \u001b[26;71H \u001b[26;74H \u001b[26;78H \u001b[26;90H \u001b[26;98H \u001b[27;4H\u001b[0;38;2;89;103;92;48;2;13;20;16m201\u001b[27;8Hintel-devref-ii.pdf:318:201\u001b[27;42H\u001b[0;38;2;229;238;229;48;2;13;20;16mBasic\u001b[27;48HCPUID\u001b[27;54HInformation\u001b[28;4H\u001b[0;38;2;89;103;92;48;2;13;20;16m202\u001b[28;28H318\u001b[28;32H202\u001b[28;41H\u001b[0;38;2;229;238;229;48;2;13;20;16m 0H\u001b[0;39;48;2;13;20;16m \u001b[28;49H \u001b[28;55H \u001b[28;63H \u001b[28;70H \u001b[28;73H \u001b[28;77H \u001b[28;89H \u001b[28;97H \u001b[29;4H\u001b[0;38;2;89;103;92;48;2;13;20;16m203\u001b[29;8Hintel-devref-ii.pdf:318:203\u001b[29;44H\u001b[0;38;2;229;238;229;48;2;13;20;16m01H\u001b[30;4H\u001b[0;38;2;89;103;92;48;2;13;20;16m2\u001b[30;6H4\u001b[30;28H318\u001b[30;32H2\u001b[30;34H4\u001b[30;42H\u001b[0;38;2;229;238;229;48;2;13;20;16m 02H\u001b[0;39;48;2;13;20;16m \u001b[30;50H \u001b[30;62H \u001b[30;69H \u001b[30;72H \u001b[30;76H \u001b[30;88H \u001b[30;96H \u001b[0m\u001b[20;86H\u001b[?25h"] +[16.25, "o", "\u001b[26;8H\u001b[0;38;2;245;247;238;48;2;107;120;88mintel-devref-ii.pdf:317:\u001b[0m\u001b[20;86H\u001b[?25h"] +[16.75, "o", "\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/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[10;1H\u001b[0;39;48;2;21;32;25m \u001b[10;3H\u001b[0;38;2;229;238;229;48;2;13;20;16mCPUID—CPU\u001b[10;13HIdentification\u001b[0;39;48;2;13;20;16m \u001b[11;1H\u001b[0;39;48;2;96;130;105m \u001b[11;3H\u001b[0;38;2;229;238;229;48;2;13;20;16mV\u001b[11;5Hl. 2A 3-217\u001b[0;39;48;2;13;20;16m \u001b[11;24H \u001b[12;3H\u001b[0;38;2;229;238;229;48;2;13;20;16mCPUID—CPU Identification\u001b[0;39;48;2;13;20;16m \u001b[13;15H\u001b[0;38;2;229;238;229;48;2;13;20;16mOperand Encoding\u001b[0;39;48;2;13;20;16m \u001b[14;3H\u001b[0;38;2;229;238;229;48;2;13;20;16mDescription\u001b[0;39;48;2;13;20;16m \u001b[14;19H \u001b[14;22H \u001b[14;26H \u001b[14;32H \u001b[14;46H \u001b[14;55H \u001b[14;67H \u001b[14;74H \u001b[14;83H \u001b[14;86H \u001b[14;91H \u001b[15;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[15;97Hsoft\u001b[16;3Hset and clear this\u001b[16;22Hflag, the p\u001b[16;34Hocesso\u001b[16;42Hexecuting the pro\u001b[16;60Hedure support\u001b[16;74H the CPUID instruction.\u001b[16;98HThi\u001b[17;3Hoperates th\u001b[17;15H same in\u001b[17;24Hn\u001b[17;26Hn-64-bit modes and 64-b\u001b[17;50Ht mode.\u001b[17;58H\u001b[0;39;48;2;13;20;16m \u001b[17;65H \u001b[18;3H\u001b[0;38;2;229;238;229;48;2;13;20;16mCPUID\u001b[18;9Hreturns\u001b[18;17Hprocessor identification\u001b[18;42Hand\u001b[18;46Hfeature\u001b[18;54Hinformation\u001b[18;66Hin\u001b[18;69Hthe\u001b[18;73HEAX,\u001b[18;78HEBX,\u001b[18;83HECX,\u001b[18;88Hand\u001b[18;92HEDX\u001b[18;96Hregis\u001b[20;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[26;8H\u001b[0;38;2;245;247;238;48;2;60;97;74mintel-devref-ii.pdf:317:200 \u001b[26;41H\u001b[0;38;2;229;238;229;48;2;13;20;16mPUID\u001b[0m\u001b[10;3H\u001b[?25h"] +[18.55, "o", "\u001b[20;61H\u001b[0;38;2;245;247;238;48;2;91;126;90mDel \u001b[0m\u001b[10;3H\u001b[?25h"] +[18.95, "o", "\u001b[11;1H\u001b[0;39;48;2;21;32;25m \u001b[12;1H\u001b[0;39;48;2;96;130;105m \u001b[19;3H\u001b[0;38;2;229;238;229;48;2;13;20;16minstruction’s\u001b[19;17Houtput\u001b[19;24His\u001b[19;27Hdependent\u001b[19;37Hon\u001b[19;40Hthe\u001b[19;44Hcontents\u001b[19;53Hof\u001b[19;56Hthe\u001b[19;60HEAX\u001b[19;64Hregister\u001b[19;73Hupon\u001b[19;78Hexecution\u001b[19;88H(in\u001b[19;92Hsome\u001b[19;97Hcase\u001b[20;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;16mFor example, the following pseudocode loads EAX with 00H and causes CPUID to return a Maximum Retu\u001b[21;3Hand the Vendor Identification String\u001b[21;40Hin the appropriate registe\u001b[21;67Hs:\u001b[0;39;48;2;13;20;16m \u001b[21;73H \u001b[21;82H \u001b[22;1H\u001b[0;39;48;2;21;32;25m \u001b[22;3H\u001b[0;38;2;229;238;229;48;2;13;20;16mMOV EAX, 00H\u001b[0;39;48;2;13;20;16m \u001b[22;40H \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\u001b[0;39;48;2;13;20;16m \u001b[23;10H \u001b[23;17H \u001b[23;21H \u001b[23;25H \u001b[24;3H\u001b[0;38;2;229;238;229;48;2;13;20;16mTable 3-17 shows information returned, depending on\u001b[24;55Hthe initial value loaded into the EAX register\u001b[25;3HTwo\u001b[25;7Htypes of informa\u001b[25;24Hion are\u001b[25;32Hreturned:\u001b[25;42Hbasic\u001b[25;48Hand\u001b[25;52Hextended\u001b[25;61Hfunction\u001b[25;70Hinformation.\u001b[25;83HIf\u001b[25;86Ha\u001b[25;88Hvalue\u001b[25;94Hentered\u001b[26;3His higher than the maximum input value for basic or extended function\u001b[26;73Hfor\u001b[26;77Hthat\u001b[26;82Hprocessor\u001b[26;92Hthen\u001b[26;97Hthe\u001b[27;3Hhighest basic information leaf is\u001b[27;37Hreturned. For example, us\u001b[27;63Hng\u001b[27;66Hsome\u001b[27;71HIntel\u001b[27;77Hprocessors,\u001b[27;89Hthe\u001b[27;93Hfollowin\u001b[28;3HCPUID.EAX = 05H (* Returns MONITOR/MWAIT\u001b[28;44Hleaf.\u001b[28;50H*)\u001b[29;3HCPUID.EAX = 0AH (* Returns Architectural\u001b[29;44HPerformance\u001b[29;56HMonitoring\u001b[29;67Hleaf.\u001b[29;73H*)\u001b[30;4H\u001b[0;39;48;2;13;20;16m \u001b[30;8H \u001b[30;44H \u001b[0m\u001b[10;3H\u001b[?25h"] +[19.75, "o", "\u001b[0m\u001b[13;3H\u001b[?25h"] +[20.05, "o", "\u001b[10;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[10;100H\u001b[?25h"] +[20.35, "o", "\u001b[10;96H\u001b[0;39;48;2;29;40;36m \u001b[10;98H\u001b[0;38;2;178;195;184;48;2;29;40;36m/b\u001b[0m\u001b[10;100H\u001b[?25h"] +[20.44, "o", "\u001b[10;95H\u001b[0;39;48;2;29;40;36m \u001b[10;97H\u001b[0;38;2;178;195;184;48;2;29;40;36m/bi\u001b[0m\u001b[10;100H\u001b[?25h"] +[20.53, "o", "\u001b[10;94H\u001b[0;39;48;2;29;40;36m \u001b[10;96H\u001b[0;38;2;178;195;184;48;2;29;40;36m/bit\u001b[0m\u001b[10;100H\u001b[?25h"] +[20.62, "o", "\u001b[10;93H\u001b[0;39;48;2;29;40;36m \u001b[10;95H\u001b[0;38;2;178;195;184;48;2;29;40;36m/bit \u001b[0m\u001b[10;100H\u001b[?25h"] +[20.71, "o", "\u001b[10;92H\u001b[0;39;48;2;29;40;36m \u001b[10;94H\u001b[0;38;2;178;195;184;48;2;29;40;36m/bit 2\u001b[0m\u001b[10;100H\u001b[?25h"] +[20.8, "o", "\u001b[10;91H\u001b[0;39;48;2;29;40;36m \u001b[10;93H\u001b[0;38;2;178;195;184;48;2;29;40;36m/bit 21\u001b[0m\u001b[10;100H\u001b[?25h"] +[21.1, "o", "\u001b[10;91H\u001b[0;39;48;2;13;20;16m \u001b[11;1H\u001b[0;39;48;2;96;130;105m \u001b[12;1H\u001b[0;39;48;2;21;32;25m \u001b[19;3H\u001b[0;39;48;2;13;20;16m \u001b[19;17H \u001b[19;24H \u001b[19;27H \u001b[19;37H \u001b[19;40H \u001b[19;44H \u001b[19;53H \u001b[19;56H \u001b[19;60H \u001b[19;64H \u001b[19;73H \u001b[19;78H \u001b[19;88H \u001b[19;92H \u001b[19;97H \u001b[20;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[21;1H\u001b[0;39;48;2;96;130;105m \u001b[21;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[21;40H \u001b[21;43H \u001b[21;47H \u001b[21;59H \u001b[22;1H\u001b[0;39;48;2;96;130;105m \u001b[22;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;16mbit\u001b[22;12H21\u001b[0;39;48;2;13;20;16m \u001b[23;1H\u001b[0;39;48;2;96;130;105m \u001b[23;3H\u001b[0;38;2;89;103;92;48;2;13;20;16m 3 intel-devref-ii.pdf:320:1\u001b[24;1H\u001b[0;39;48;2;96;130;105m \u001b[24;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;16mbit 21\u001b[0;39;48;2;13;20;16m \u001b[24;20H \u001b[24;32H \u001b[24;42H \u001b[24;52H \u001b[24;55H \u001b[24;59H \u001b[24;67H \u001b[24;73H \u001b[24;80H \u001b[24;85H \u001b[24;89H \u001b[24;93H \u001b[25;1H\u001b[0;39;48;2;96;130;105m \u001b[25;3H\u001b[0;38;2;89;103;92;48;2;13;20;16m 5 intel-devref-ii.pdf:321:1\u001b[0;39;48;2;13;20;16m \u001b[25;42H \u001b[25;48H \u001b[25;52H \u001b[25;61H \u001b[25;70H \u001b[25;83H \u001b[25;86H \u001b[25;88H \u001b[25;94H \u001b[26;1H\u001b[0;39;48;2;96;130;105m \u001b[26;3H\u001b[0;38;2;89;103;92;48;2;13;20;16m \u001b[26;6H6 \u001b[0;38;2;229;238;229;48;2;13;20;16mbit 21\u001b[0;39;48;2;13;20;16m \u001b[26;18H \u001b[26;22H \u001b[26;30H \u001b[26;36H \u001b[26;42H \u001b[26;46H \u001b[26;52H \u001b[26;55H \u001b[26;64H \u001b[26;73H \u001b[26;77H \u001b[26;82H \u001b[26;92H \u001b[26;97H \u001b[27;1H\u001b[0;39;48;2;96;130;105m \u001b[27;3H\u001b[0;38;2;89;103;92;48;2;13;20;16m 7 intel-devref-ii.pdf:323:1\u001b[27;34H\u001b[0;39;48;2;13;20;16m \u001b[27;37H \u001b[27;47H \u001b[27;51H \u001b[27;60H \u001b[27;66H \u001b[27;71H \u001b[27;77H \u001b[27;89H \u001b[27;93H \u001b[28;1H\u001b[0;39;48;2;96;130;105m \u001b[28;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;16mbit 21\u001b[28;15H\u001b[0;39;48;2;13;20;16m \u001b[28;19H \u001b[28;22H \u001b[28;30H \u001b[28;44H \u001b[28;50H \u001b[29;1H\u001b[0;39;48;2;96;130;105m \u001b[29;3H\u001b[0;38;2;89;103;92;48;2;13;20;16m 9 intel-devref-ii.pdf:684:1\u001b[0;39;48;2;13;20;16m \u001b[29;44H \u001b[29;56H \u001b[29;67H \u001b[29;73H \u001b[30;5H\u001b[0;38;2;89;103;92;48;2;13;20;16m10\u001b[30;8H\u001b[0;38;2;229;238;229;48;2;13;20;16mbit\u001b[30;12H21\u001b[0m\u001b[13;3H\u001b[?25h"] +[23.1, "o", ""] diff --git a/docs/site/casts/terminals.cast b/docs/site/casts/terminals.cast new file mode 100644 index 00000000..bac022a2 --- /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;65H691de50\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;65H09d5c1f\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/docs/site/media/captions.txt b/docs/site/media/captions.txt index 55f64d5b..4879cb12 100644 --- a/docs/site/media/captions.txt +++ b/docs/site/media/captions.txt @@ -1,4 +1,13 @@ -text-is-the-interface: Middle-click runs a word; right-click an error opens the file. -terminals-are-panes: A shell is a pane: Ctrl-b, then move over its output. -scripting-over-9p: The session is files: a shell script reads and writes its panes. -diff-review: git diff pages into a pane; right-click a change to open it. +pdf-navigation: A 2,515-page PDF: page, jump to CPUID, search, step hits. +image-pane: Right-click an image's name, even in a shell, to open it. +pdf-tint-fit: PdfTint tints the page, PdfFit fits it, a page address jumps. +text-is-the-interface: Middle-click make in the README; right-click the error. +terminals-are-panes: A terminal is a pane: Ctrl-b, then move over its output. +scripting-over-9p: A script drives the session through its virtual filesystem (9P). +diff-review: Right-click a diff line to open that line of the file. +chords: Hold left, click middle to cut; click right to paste. +columns: Newcol adds a column; a look opens there; Alt-c moves a pane. +search: Grep lists the hits; n and N walk them; right-click opens one. +where-commands-run: A file's tag runs in its directory; the column tag, in the session's. +edit-via-ctl: An Edit written to ctl changes every sum; one Undo restores. +wait-editor: git commit's message opens in a pane; Del returns it to git. diff --git a/docs/site/media/chords.mp4 b/docs/site/media/chords.mp4 Binary files differnew file mode 100644 index 00000000..43bc556b --- /dev/null +++ b/docs/site/media/chords.mp4 diff --git a/docs/site/media/chords.png b/docs/site/media/chords.png Binary files differnew file mode 100644 index 00000000..a140347c --- /dev/null +++ b/docs/site/media/chords.png diff --git a/docs/site/media/chords.webm b/docs/site/media/chords.webm Binary files differnew file mode 100644 index 00000000..42a6f4e6 --- /dev/null +++ b/docs/site/media/chords.webm diff --git a/docs/site/media/clips.toml b/docs/site/media/clips.toml index 9a83d681..f2406396 100644 --- a/docs/site/media/clips.toml +++ b/docs/site/media/clips.toml @@ -1,25 +1,77 @@ # The landing page's recordings, in the order shown. For each clip the # site ships media/<name>.webm and media/<name>.mp4, with media/<name>.png -# as the poster; the first ready clip's poster is also the landing's -# hero image. While `ready` is false the clip shows placeholder.svg and +# as the poster; a caption may hold markup (#link). `landing = false` keeps a clip off the landing (the +# terminal casts show the same) while its files stay for the chapters. While `ready` is false the clip shows placeholder.svg and # no video, so the site builds before a recording exists. [[clip]] +name = "pdf-navigation" +caption = "A 2,515-page PDF: page, jump to CPUID, search, step hits." +ready = true + +[[clip]] +name = "image-pane" +caption = "Right-click an image's name, even in a shell, to open it." +ready = true + +[[clip]] +name = "pdf-tint-fit" +caption = "PdfTint tints the page, PdfFit fits it, a page address jumps." +ready = true + +[[clip]] name = "text-is-the-interface" -caption = "Middle-click runs a word; right-click an error opens its line." +caption = "Middle-click make in the README; right-click the error." ready = true [[clip]] name = "terminals-are-panes" caption = "A terminal is a pane: Ctrl-b, then move over its output." ready = true +landing = false [[clip]] name = "scripting-over-9p" -caption = "A script drives the session through its virtual filesystem (9P)." +caption = "A shell under #link(\"setup.html#ninens\")[9ns], where the session is a directory: ls, cat, echo." ready = true [[clip]] name = "diff-review" caption = "Right-click a diff line to open that line of the file." ready = true + +[[clip]] +name = "chords" +caption = "Hold left, click middle to cut; click right to paste." +ready = true +landing = false + +[[clip]] +name = "columns" +caption = "Newcol adds a column; a look opens there; Alt-c moves a pane." +ready = true +landing = false + +[[clip]] +name = "search" +caption = "Grep lists the hits; n and N walk them; right-click opens one." +ready = true +landing = false + +[[clip]] +name = "where-commands-run" +caption = "File tags run in their directory; column tags, in the session's." +ready = true +landing = false + +[[clip]] +name = "edit-via-ctl" +caption = "An Edit written to ctl changes every sum; one Undo restores." +ready = true +landing = false + +[[clip]] +name = "wait-editor" +caption = "git commit's message opens in a pane; Del returns it to git." +ready = true +landing = false diff --git a/docs/site/media/columns.mp4 b/docs/site/media/columns.mp4 Binary files differnew file mode 100644 index 00000000..48bc462b --- /dev/null +++ b/docs/site/media/columns.mp4 diff --git a/docs/site/media/columns.png b/docs/site/media/columns.png Binary files differnew file mode 100644 index 00000000..f8cc1801 --- /dev/null +++ b/docs/site/media/columns.png diff --git a/docs/site/media/columns.webm b/docs/site/media/columns.webm Binary files differnew file mode 100644 index 00000000..ddb6bdfc --- /dev/null +++ b/docs/site/media/columns.webm diff --git a/docs/site/media/diff-review.mp4 b/docs/site/media/diff-review.mp4 Binary files differindex e3bb2f5b..73fa1a76 100644 --- a/docs/site/media/diff-review.mp4 +++ b/docs/site/media/diff-review.mp4 diff --git a/docs/site/media/diff-review.png b/docs/site/media/diff-review.png Binary files differindex fda184e3..76a7dc43 100644 --- a/docs/site/media/diff-review.png +++ b/docs/site/media/diff-review.png diff --git a/docs/site/media/diff-review.webm b/docs/site/media/diff-review.webm Binary files differindex ed201b13..da7756f9 100644 --- a/docs/site/media/diff-review.webm +++ b/docs/site/media/diff-review.webm diff --git a/docs/site/media/edit-via-ctl.mp4 b/docs/site/media/edit-via-ctl.mp4 Binary files differnew file mode 100644 index 00000000..d63f6e7f --- /dev/null +++ b/docs/site/media/edit-via-ctl.mp4 diff --git a/docs/site/media/edit-via-ctl.png b/docs/site/media/edit-via-ctl.png Binary files differnew file mode 100644 index 00000000..7a21d734 --- /dev/null +++ b/docs/site/media/edit-via-ctl.png diff --git a/docs/site/media/edit-via-ctl.webm b/docs/site/media/edit-via-ctl.webm Binary files differnew file mode 100644 index 00000000..77639d34 --- /dev/null +++ b/docs/site/media/edit-via-ctl.webm diff --git a/docs/site/media/image-pane.mp4 b/docs/site/media/image-pane.mp4 Binary files differnew file mode 100644 index 00000000..9fb1a0e9 --- /dev/null +++ b/docs/site/media/image-pane.mp4 diff --git a/docs/site/media/image-pane.png b/docs/site/media/image-pane.png Binary files differnew file mode 100644 index 00000000..94eb7b50 --- /dev/null +++ b/docs/site/media/image-pane.png diff --git a/docs/site/media/image-pane.webm b/docs/site/media/image-pane.webm Binary files differnew file mode 100644 index 00000000..764be10c --- /dev/null +++ b/docs/site/media/image-pane.webm diff --git a/docs/site/media/pdf-navigation.mp4 b/docs/site/media/pdf-navigation.mp4 Binary files differnew file mode 100644 index 00000000..f0369f7b --- /dev/null +++ b/docs/site/media/pdf-navigation.mp4 diff --git a/docs/site/media/pdf-navigation.png b/docs/site/media/pdf-navigation.png Binary files differnew file mode 100644 index 00000000..79dd6453 --- /dev/null +++ b/docs/site/media/pdf-navigation.png diff --git a/docs/site/media/pdf-navigation.webm b/docs/site/media/pdf-navigation.webm Binary files differnew file mode 100644 index 00000000..17c8b1b3 --- /dev/null +++ b/docs/site/media/pdf-navigation.webm diff --git a/docs/site/media/pdf-tint-fit.mp4 b/docs/site/media/pdf-tint-fit.mp4 Binary files differnew file mode 100644 index 00000000..a1b4a5a6 --- /dev/null +++ b/docs/site/media/pdf-tint-fit.mp4 diff --git a/docs/site/media/pdf-tint-fit.png b/docs/site/media/pdf-tint-fit.png Binary files differnew file mode 100644 index 00000000..923ab143 --- /dev/null +++ b/docs/site/media/pdf-tint-fit.png diff --git a/docs/site/media/pdf-tint-fit.webm b/docs/site/media/pdf-tint-fit.webm Binary files differnew file mode 100644 index 00000000..e641101f --- /dev/null +++ b/docs/site/media/pdf-tint-fit.webm diff --git a/docs/site/media/scripting-over-9p.webm b/docs/site/media/scripting-over-9p.webm Binary files differindex b6f192b3..bf39a7e8 100644 --- a/docs/site/media/scripting-over-9p.webm +++ b/docs/site/media/scripting-over-9p.webm diff --git a/docs/site/media/search.mp4 b/docs/site/media/search.mp4 Binary files differnew file mode 100644 index 00000000..6c9c9445 --- /dev/null +++ b/docs/site/media/search.mp4 diff --git a/docs/site/media/search.png b/docs/site/media/search.png Binary files differnew file mode 100644 index 00000000..40e5bed5 --- /dev/null +++ b/docs/site/media/search.png diff --git a/docs/site/media/search.webm b/docs/site/media/search.webm Binary files differnew file mode 100644 index 00000000..e1581570 --- /dev/null +++ b/docs/site/media/search.webm diff --git a/docs/site/media/terminals-are-panes.webm b/docs/site/media/terminals-are-panes.webm Binary files differindex 3f1ab09e..15ee73fe 100644 --- a/docs/site/media/terminals-are-panes.webm +++ b/docs/site/media/terminals-are-panes.webm diff --git a/docs/site/media/text-is-the-interface.mp4 b/docs/site/media/text-is-the-interface.mp4 Binary files differindex 19545731..b4a12c87 100644 --- a/docs/site/media/text-is-the-interface.mp4 +++ b/docs/site/media/text-is-the-interface.mp4 diff --git a/docs/site/media/text-is-the-interface.png b/docs/site/media/text-is-the-interface.png Binary files differindex 81a73aee..a31dcb78 100644 --- a/docs/site/media/text-is-the-interface.png +++ b/docs/site/media/text-is-the-interface.png diff --git a/docs/site/media/text-is-the-interface.webm b/docs/site/media/text-is-the-interface.webm Binary files differindex 88c02d11..76c2c06b 100644 --- a/docs/site/media/text-is-the-interface.webm +++ b/docs/site/media/text-is-the-interface.webm diff --git a/docs/site/media/themes/acme.png b/docs/site/media/themes/acme.png Binary files differnew file mode 100644 index 00000000..da647db1 --- /dev/null +++ b/docs/site/media/themes/acme.png diff --git a/docs/site/media/themes/alucard.png b/docs/site/media/themes/alucard.png Binary files differnew file mode 100644 index 00000000..dab6ce80 --- /dev/null +++ b/docs/site/media/themes/alucard.png diff --git a/docs/site/media/themes/atelier.png b/docs/site/media/themes/atelier.png Binary files differnew file mode 100644 index 00000000..a8c36f2a --- /dev/null +++ b/docs/site/media/themes/atelier.png diff --git a/docs/site/media/themes/ayu_dark.png b/docs/site/media/themes/ayu_dark.png Binary files differnew file mode 100644 index 00000000..711ed8aa --- /dev/null +++ b/docs/site/media/themes/ayu_dark.png diff --git a/docs/site/media/themes/ayu_light.png b/docs/site/media/themes/ayu_light.png Binary files differnew file mode 100644 index 00000000..0ddcb9af --- /dev/null +++ b/docs/site/media/themes/ayu_light.png diff --git a/docs/site/media/themes/ayu_mirage.png b/docs/site/media/themes/ayu_mirage.png Binary files differnew file mode 100644 index 00000000..56676d1f --- /dev/null +++ b/docs/site/media/themes/ayu_mirage.png diff --git a/docs/site/media/themes/catppuccin_frappe.png b/docs/site/media/themes/catppuccin_frappe.png Binary files differnew file mode 100644 index 00000000..58c13dbe --- /dev/null +++ b/docs/site/media/themes/catppuccin_frappe.png diff --git a/docs/site/media/themes/catppuccin_latte.png b/docs/site/media/themes/catppuccin_latte.png Binary files differnew file mode 100644 index 00000000..27e58ce0 --- /dev/null +++ b/docs/site/media/themes/catppuccin_latte.png diff --git a/docs/site/media/themes/catppuccin_macchiato.png b/docs/site/media/themes/catppuccin_macchiato.png Binary files differnew file mode 100644 index 00000000..fb32c742 --- /dev/null +++ b/docs/site/media/themes/catppuccin_macchiato.png diff --git a/docs/site/media/themes/catppuccin_mocha.png b/docs/site/media/themes/catppuccin_mocha.png Binary files differnew file mode 100644 index 00000000..e16e4224 --- /dev/null +++ b/docs/site/media/themes/catppuccin_mocha.png diff --git a/docs/site/media/themes/clay.png b/docs/site/media/themes/clay.png Binary files differnew file mode 100644 index 00000000..117b731d --- /dev/null +++ b/docs/site/media/themes/clay.png diff --git a/docs/site/media/themes/dark.png b/docs/site/media/themes/dark.png Binary files differnew file mode 100644 index 00000000..6346759e --- /dev/null +++ b/docs/site/media/themes/dark.png diff --git a/docs/site/media/themes/dark_plus.png b/docs/site/media/themes/dark_plus.png Binary files differnew file mode 100644 index 00000000..6a750655 --- /dev/null +++ b/docs/site/media/themes/dark_plus.png diff --git a/docs/site/media/themes/daybreak.png b/docs/site/media/themes/daybreak.png Binary files differnew file mode 100644 index 00000000..ca3dcc5c --- /dev/null +++ b/docs/site/media/themes/daybreak.png diff --git a/docs/site/media/themes/doom_one.png b/docs/site/media/themes/doom_one.png Binary files differnew file mode 100644 index 00000000..95f13135 --- /dev/null +++ b/docs/site/media/themes/doom_one.png diff --git a/docs/site/media/themes/doom_one_light.png b/docs/site/media/themes/doom_one_light.png Binary files differnew file mode 100644 index 00000000..c8c4c69a --- /dev/null +++ b/docs/site/media/themes/doom_one_light.png diff --git a/docs/site/media/themes/dracula.png b/docs/site/media/themes/dracula.png Binary files differnew file mode 100644 index 00000000..64eea04a --- /dev/null +++ b/docs/site/media/themes/dracula.png diff --git a/docs/site/media/themes/dracula_soft.png b/docs/site/media/themes/dracula_soft.png Binary files differnew file mode 100644 index 00000000..9ef81583 --- /dev/null +++ b/docs/site/media/themes/dracula_soft.png diff --git a/docs/site/media/themes/duckbones.png b/docs/site/media/themes/duckbones.png Binary files differnew file mode 100644 index 00000000..9809ab36 --- /dev/null +++ b/docs/site/media/themes/duckbones.png diff --git a/docs/site/media/themes/dusk.png b/docs/site/media/themes/dusk.png Binary files differnew file mode 100644 index 00000000..0d95b59c --- /dev/null +++ b/docs/site/media/themes/dusk.png diff --git a/docs/site/media/themes/forestbones_dark.png b/docs/site/media/themes/forestbones_dark.png Binary files differnew file mode 100644 index 00000000..ea399605 --- /dev/null +++ b/docs/site/media/themes/forestbones_dark.png diff --git a/docs/site/media/themes/forestbones_light.png b/docs/site/media/themes/forestbones_light.png Binary files differnew file mode 100644 index 00000000..862858de --- /dev/null +++ b/docs/site/media/themes/forestbones_light.png diff --git a/docs/site/media/themes/forge.png b/docs/site/media/themes/forge.png Binary files differnew file mode 100644 index 00000000..bab91d48 --- /dev/null +++ b/docs/site/media/themes/forge.png diff --git a/docs/site/media/themes/forge_black.png b/docs/site/media/themes/forge_black.png Binary files differnew file mode 100644 index 00000000..e09320ed --- /dev/null +++ b/docs/site/media/themes/forge_black.png diff --git a/docs/site/media/themes/forge_soft.png b/docs/site/media/themes/forge_soft.png Binary files differnew file mode 100644 index 00000000..1b9fb2fb --- /dev/null +++ b/docs/site/media/themes/forge_soft.png diff --git a/docs/site/media/themes/harvest.png b/docs/site/media/themes/harvest.png Binary files differnew file mode 100644 index 00000000..b95e8c76 --- /dev/null +++ b/docs/site/media/themes/harvest.png diff --git a/docs/site/media/themes/helix.png b/docs/site/media/themes/helix.png Binary files differnew file mode 100644 index 00000000..6c353815 --- /dev/null +++ b/docs/site/media/themes/helix.png diff --git a/docs/site/media/themes/ink.png b/docs/site/media/themes/ink.png Binary files differnew file mode 100644 index 00000000..314610db --- /dev/null +++ b/docs/site/media/themes/ink.png diff --git a/docs/site/media/themes/kanagawabones.png b/docs/site/media/themes/kanagawabones.png Binary files differnew file mode 100644 index 00000000..c2c58ec9 --- /dev/null +++ b/docs/site/media/themes/kanagawabones.png diff --git a/docs/site/media/themes/lagoon.png b/docs/site/media/themes/lagoon.png Binary files differnew file mode 100644 index 00000000..bdd3dd49 --- /dev/null +++ b/docs/site/media/themes/lagoon.png diff --git a/docs/site/media/themes/lapis.png b/docs/site/media/themes/lapis.png Binary files differnew file mode 100644 index 00000000..2bc4024a --- /dev/null +++ b/docs/site/media/themes/lapis.png diff --git a/docs/site/media/themes/lapis_plain.png b/docs/site/media/themes/lapis_plain.png Binary files differnew file mode 100644 index 00000000..7315c2a0 --- /dev/null +++ b/docs/site/media/themes/lapis_plain.png diff --git a/docs/site/media/themes/monokai.png b/docs/site/media/themes/monokai.png Binary files differnew file mode 100644 index 00000000..4b4854b8 --- /dev/null +++ b/docs/site/media/themes/monokai.png diff --git a/docs/site/media/themes/monokai_pro.png b/docs/site/media/themes/monokai_pro.png Binary files differnew file mode 100644 index 00000000..e8036053 --- /dev/null +++ b/docs/site/media/themes/monokai_pro.png diff --git a/docs/site/media/themes/monokai_pro_classic.png b/docs/site/media/themes/monokai_pro_classic.png Binary files differnew file mode 100644 index 00000000..4e25319c --- /dev/null +++ b/docs/site/media/themes/monokai_pro_classic.png diff --git a/docs/site/media/themes/monokai_pro_light.png b/docs/site/media/themes/monokai_pro_light.png Binary files differnew file mode 100644 index 00000000..ee2f1e4c --- /dev/null +++ b/docs/site/media/themes/monokai_pro_light.png diff --git a/docs/site/media/themes/monokai_pro_light_sun.png b/docs/site/media/themes/monokai_pro_light_sun.png Binary files differnew file mode 100644 index 00000000..67e6e807 --- /dev/null +++ b/docs/site/media/themes/monokai_pro_light_sun.png diff --git a/docs/site/media/themes/monokai_pro_machine.png b/docs/site/media/themes/monokai_pro_machine.png Binary files differnew file mode 100644 index 00000000..3f683a68 --- /dev/null +++ b/docs/site/media/themes/monokai_pro_machine.png diff --git a/docs/site/media/themes/monokai_pro_octagon.png b/docs/site/media/themes/monokai_pro_octagon.png Binary files differnew file mode 100644 index 00000000..bc7a831e --- /dev/null +++ b/docs/site/media/themes/monokai_pro_octagon.png diff --git a/docs/site/media/themes/monokai_pro_ristretto.png b/docs/site/media/themes/monokai_pro_ristretto.png Binary files differnew file mode 100644 index 00000000..06429245 --- /dev/null +++ b/docs/site/media/themes/monokai_pro_ristretto.png diff --git a/docs/site/media/themes/monokai_pro_spectrum.png b/docs/site/media/themes/monokai_pro_spectrum.png Binary files differnew file mode 100644 index 00000000..c6e49f4c --- /dev/null +++ b/docs/site/media/themes/monokai_pro_spectrum.png diff --git a/docs/site/media/themes/neobones_dark.png b/docs/site/media/themes/neobones_dark.png Binary files differnew file mode 100644 index 00000000..026400de --- /dev/null +++ b/docs/site/media/themes/neobones_dark.png diff --git a/docs/site/media/themes/neobones_light.png b/docs/site/media/themes/neobones_light.png Binary files differnew file mode 100644 index 00000000..62d26b3a --- /dev/null +++ b/docs/site/media/themes/neobones_light.png diff --git a/docs/site/media/themes/nord.png b/docs/site/media/themes/nord.png Binary files differnew file mode 100644 index 00000000..d5c903b2 --- /dev/null +++ b/docs/site/media/themes/nord.png diff --git a/docs/site/media/themes/nordbones.png b/docs/site/media/themes/nordbones.png Binary files differnew file mode 100644 index 00000000..272ad19d --- /dev/null +++ b/docs/site/media/themes/nordbones.png diff --git a/docs/site/media/themes/orchard.png b/docs/site/media/themes/orchard.png Binary files differnew file mode 100644 index 00000000..623fde75 --- /dev/null +++ b/docs/site/media/themes/orchard.png diff --git a/docs/site/media/themes/orchard_black.png b/docs/site/media/themes/orchard_black.png Binary files differnew file mode 100644 index 00000000..02d78992 --- /dev/null +++ b/docs/site/media/themes/orchard_black.png diff --git a/docs/site/media/themes/paper.png b/docs/site/media/themes/paper.png Binary files differnew file mode 100644 index 00000000..59919d80 --- /dev/null +++ b/docs/site/media/themes/paper.png diff --git a/docs/site/media/themes/rose_pine.png b/docs/site/media/themes/rose_pine.png Binary files differnew file mode 100644 index 00000000..9dbf1d76 --- /dev/null +++ b/docs/site/media/themes/rose_pine.png diff --git a/docs/site/media/themes/rose_pine_dawn.png b/docs/site/media/themes/rose_pine_dawn.png Binary files differnew file mode 100644 index 00000000..8a062630 --- /dev/null +++ b/docs/site/media/themes/rose_pine_dawn.png diff --git a/docs/site/media/themes/rose_pine_moon.png b/docs/site/media/themes/rose_pine_moon.png Binary files differnew file mode 100644 index 00000000..ee93f871 --- /dev/null +++ b/docs/site/media/themes/rose_pine_moon.png diff --git a/docs/site/media/themes/rosebones_dark.png b/docs/site/media/themes/rosebones_dark.png Binary files differnew file mode 100644 index 00000000..19992fea --- /dev/null +++ b/docs/site/media/themes/rosebones_dark.png diff --git a/docs/site/media/themes/rosebones_light.png b/docs/site/media/themes/rosebones_light.png Binary files differnew file mode 100644 index 00000000..a879dc55 --- /dev/null +++ b/docs/site/media/themes/rosebones_light.png diff --git a/docs/site/media/themes/seoul256_dark_233.png b/docs/site/media/themes/seoul256_dark_233.png Binary files differnew file mode 100644 index 00000000..a757640b --- /dev/null +++ b/docs/site/media/themes/seoul256_dark_233.png diff --git a/docs/site/media/themes/seoul256_dark_234.png b/docs/site/media/themes/seoul256_dark_234.png Binary files differnew file mode 100644 index 00000000..a34b3f2a --- /dev/null +++ b/docs/site/media/themes/seoul256_dark_234.png diff --git a/docs/site/media/themes/seoul256_dark_235.png b/docs/site/media/themes/seoul256_dark_235.png Binary files differnew file mode 100644 index 00000000..d4c69938 --- /dev/null +++ b/docs/site/media/themes/seoul256_dark_235.png diff --git a/docs/site/media/themes/seoul256_dark_236.png b/docs/site/media/themes/seoul256_dark_236.png Binary files differnew file mode 100644 index 00000000..8f1c48ce --- /dev/null +++ b/docs/site/media/themes/seoul256_dark_236.png diff --git a/docs/site/media/themes/seoul256_dark_237.png b/docs/site/media/themes/seoul256_dark_237.png Binary files differnew file mode 100644 index 00000000..3816b258 --- /dev/null +++ b/docs/site/media/themes/seoul256_dark_237.png diff --git a/docs/site/media/themes/seoul256_dark_238.png b/docs/site/media/themes/seoul256_dark_238.png Binary files differnew file mode 100644 index 00000000..9553da5f --- /dev/null +++ b/docs/site/media/themes/seoul256_dark_238.png diff --git a/docs/site/media/themes/seoul256_dark_239.png b/docs/site/media/themes/seoul256_dark_239.png Binary files differnew file mode 100644 index 00000000..8109f756 --- /dev/null +++ b/docs/site/media/themes/seoul256_dark_239.png diff --git a/docs/site/media/themes/seoul256_light_252.png b/docs/site/media/themes/seoul256_light_252.png Binary files differnew file mode 100644 index 00000000..7f01a1ab --- /dev/null +++ b/docs/site/media/themes/seoul256_light_252.png diff --git a/docs/site/media/themes/seoul256_light_253.png b/docs/site/media/themes/seoul256_light_253.png Binary files differnew file mode 100644 index 00000000..5b9d2a43 --- /dev/null +++ b/docs/site/media/themes/seoul256_light_253.png diff --git a/docs/site/media/themes/seoul256_light_254.png b/docs/site/media/themes/seoul256_light_254.png Binary files differnew file mode 100644 index 00000000..125546f7 --- /dev/null +++ b/docs/site/media/themes/seoul256_light_254.png diff --git a/docs/site/media/themes/seoul256_light_255.png b/docs/site/media/themes/seoul256_light_255.png Binary files differnew file mode 100644 index 00000000..06b1e3fc --- /dev/null +++ b/docs/site/media/themes/seoul256_light_255.png diff --git a/docs/site/media/themes/seoul256_light_256.png b/docs/site/media/themes/seoul256_light_256.png Binary files differnew file mode 100644 index 00000000..ce4ee4da --- /dev/null +++ b/docs/site/media/themes/seoul256_light_256.png diff --git a/docs/site/media/themes/seoulbones_dark.png b/docs/site/media/themes/seoulbones_dark.png Binary files differnew file mode 100644 index 00000000..74ea8ebc --- /dev/null +++ b/docs/site/media/themes/seoulbones_dark.png diff --git a/docs/site/media/themes/seoulbones_light.png b/docs/site/media/themes/seoulbones_light.png Binary files differnew file mode 100644 index 00000000..7591721a --- /dev/null +++ b/docs/site/media/themes/seoulbones_light.png diff --git a/docs/site/media/themes/solarium.png b/docs/site/media/themes/solarium.png Binary files differnew file mode 100644 index 00000000..f24a111e --- /dev/null +++ b/docs/site/media/themes/solarium.png diff --git a/docs/site/media/themes/solarized_dark.png b/docs/site/media/themes/solarized_dark.png Binary files differnew file mode 100644 index 00000000..7df0ef41 --- /dev/null +++ b/docs/site/media/themes/solarized_dark.png diff --git a/docs/site/media/themes/solarized_light.png b/docs/site/media/themes/solarized_light.png Binary files differnew file mode 100644 index 00000000..40b88ef3 --- /dev/null +++ b/docs/site/media/themes/solarized_light.png diff --git a/docs/site/media/themes/spectrum.png b/docs/site/media/themes/spectrum.png Binary files differnew file mode 100644 index 00000000..111f0913 --- /dev/null +++ b/docs/site/media/themes/spectrum.png diff --git a/docs/site/media/themes/themes.toml b/docs/site/media/themes/themes.toml index 23df1e97..ed45b075 100644 --- a/docs/site/media/themes/themes.toml +++ b/docs/site/media/themes/themes.toml @@ -1,7 +1,6 @@ -# The Themes page gallery, in NextColor's order: media/themes/<file> for -# each. `ready = false` shows placeholder.svg under each name, so the site -# builds before the screenshots exist; set it true (or drop it) once they do. -ready = false +# The Themes page gallery, in the order the Themes builtin walks them: +# media/themes/<file> for each, made by test/record_demos.py themes. +ready = true [[theme]] name = "orchard" @@ -77,3 +76,343 @@ kind = "dark" name = "orchard_black" file = "orchard_black.png" kind = "dark" + +[[theme]] +name = "acme" +file = "acme.png" +kind = "light" + +[[theme]] +name = "lapis" +file = "lapis.png" +kind = "dark" + +[[theme]] +name = "lapis_plain" +file = "lapis_plain.png" +kind = "dark" + +[[theme]] +name = "dark_plus" +file = "dark_plus.png" +kind = "dark" + +[[theme]] +name = "solarized_dark" +file = "solarized_dark.png" +kind = "dark" + +[[theme]] +name = "solarized_light" +file = "solarized_light.png" +kind = "light" + +[[theme]] +name = "dracula" +file = "dracula.png" +kind = "dark" + +[[theme]] +name = "dracula_soft" +file = "dracula_soft.png" +kind = "dark" + +[[theme]] +name = "alucard" +file = "alucard.png" +kind = "light" + +[[theme]] +name = "monokai" +file = "monokai.png" +kind = "dark" + +[[theme]] +name = "monokai_pro" +file = "monokai_pro.png" +kind = "dark" + +[[theme]] +name = "monokai_pro_classic" +file = "monokai_pro_classic.png" +kind = "dark" + +[[theme]] +name = "monokai_pro_machine" +file = "monokai_pro_machine.png" +kind = "dark" + +[[theme]] +name = "monokai_pro_octagon" +file = "monokai_pro_octagon.png" +kind = "dark" + +[[theme]] +name = "monokai_pro_ristretto" +file = "monokai_pro_ristretto.png" +kind = "dark" + +[[theme]] +name = "monokai_pro_spectrum" +file = "monokai_pro_spectrum.png" +kind = "dark" + +[[theme]] +name = "monokai_pro_light" +file = "monokai_pro_light.png" +kind = "light" + +[[theme]] +name = "monokai_pro_light_sun" +file = "monokai_pro_light_sun.png" +kind = "light" + +[[theme]] +name = "tokyonight_night" +file = "tokyonight_night.png" +kind = "dark" + +[[theme]] +name = "tokyonight_storm" +file = "tokyonight_storm.png" +kind = "dark" + +[[theme]] +name = "tokyonight_moon" +file = "tokyonight_moon.png" +kind = "dark" + +[[theme]] +name = "tokyonight_day" +file = "tokyonight_day.png" +kind = "light" + +[[theme]] +name = "rose_pine" +file = "rose_pine.png" +kind = "dark" + +[[theme]] +name = "rose_pine_moon" +file = "rose_pine_moon.png" +kind = "dark" + +[[theme]] +name = "rose_pine_dawn" +file = "rose_pine_dawn.png" +kind = "light" + +[[theme]] +name = "catppuccin_latte" +file = "catppuccin_latte.png" +kind = "light" + +[[theme]] +name = "catppuccin_frappe" +file = "catppuccin_frappe.png" +kind = "dark" + +[[theme]] +name = "catppuccin_macchiato" +file = "catppuccin_macchiato.png" +kind = "dark" + +[[theme]] +name = "catppuccin_mocha" +file = "catppuccin_mocha.png" +kind = "dark" + +[[theme]] +name = "seoul256_dark_233" +file = "seoul256_dark_233.png" +kind = "dark" + +[[theme]] +name = "seoul256_dark_234" +file = "seoul256_dark_234.png" +kind = "dark" + +[[theme]] +name = "seoul256_dark_235" +file = "seoul256_dark_235.png" +kind = "dark" + +[[theme]] +name = "seoul256_dark_236" +file = "seoul256_dark_236.png" +kind = "dark" + +[[theme]] +name = "seoul256_dark_237" +file = "seoul256_dark_237.png" +kind = "dark" + +[[theme]] +name = "seoul256_dark_238" +file = "seoul256_dark_238.png" +kind = "dark" + +[[theme]] +name = "seoul256_dark_239" +file = "seoul256_dark_239.png" +kind = "dark" + +[[theme]] +name = "seoul256_light_252" +file = "seoul256_light_252.png" +kind = "light" + +[[theme]] +name = "seoul256_light_253" +file = "seoul256_light_253.png" +kind = "light" + +[[theme]] +name = "seoul256_light_254" +file = "seoul256_light_254.png" +kind = "light" + +[[theme]] +name = "seoul256_light_255" +file = "seoul256_light_255.png" +kind = "light" + +[[theme]] +name = "seoul256_light_256" +file = "seoul256_light_256.png" +kind = "light" + +[[theme]] +name = "zenbones_light" +file = "zenbones_light.png" +kind = "light" + +[[theme]] +name = "zenbones_dark" +file = "zenbones_dark.png" +kind = "dark" + +[[theme]] +name = "neobones_light" +file = "neobones_light.png" +kind = "light" + +[[theme]] +name = "neobones_dark" +file = "neobones_dark.png" +kind = "dark" + +[[theme]] +name = "vimbones" +file = "vimbones.png" +kind = "light" + +[[theme]] +name = "forestbones_light" +file = "forestbones_light.png" +kind = "light" + +[[theme]] +name = "forestbones_dark" +file = "forestbones_dark.png" +kind = "dark" + +[[theme]] +name = "nordbones" +file = "nordbones.png" +kind = "dark" + +[[theme]] +name = "rosebones_light" +file = "rosebones_light.png" +kind = "light" + +[[theme]] +name = "rosebones_dark" +file = "rosebones_dark.png" +kind = "dark" + +[[theme]] +name = "tokyobones_light" +file = "tokyobones_light.png" +kind = "light" + +[[theme]] +name = "tokyobones_dark" +file = "tokyobones_dark.png" +kind = "dark" + +[[theme]] +name = "seoulbones_light" +file = "seoulbones_light.png" +kind = "light" + +[[theme]] +name = "seoulbones_dark" +file = "seoulbones_dark.png" +kind = "dark" + +[[theme]] +name = "duckbones" +file = "duckbones.png" +kind = "dark" + +[[theme]] +name = "zenburned" +file = "zenburned.png" +kind = "dark" + +[[theme]] +name = "zenwritten_light" +file = "zenwritten_light.png" +kind = "light" + +[[theme]] +name = "zenwritten_dark" +file = "zenwritten_dark.png" +kind = "dark" + +[[theme]] +name = "kanagawabones" +file = "kanagawabones.png" +kind = "dark" + +[[theme]] +name = "nord" +file = "nord.png" +kind = "dark" + +[[theme]] +name = "ayu_dark" +file = "ayu_dark.png" +kind = "dark" + +[[theme]] +name = "ayu_mirage" +file = "ayu_mirage.png" +kind = "dark" + +[[theme]] +name = "ayu_light" +file = "ayu_light.png" +kind = "light" + +[[theme]] +name = "doom_one" +file = "doom_one.png" +kind = "dark" + +[[theme]] +name = "doom_one_light" +file = "doom_one_light.png" +kind = "light" + +[[theme]] +name = "helix" +file = "helix.png" +kind = "dark" + +[[theme]] +name = "dark" +file = "dark.png" +kind = "dark" diff --git a/docs/site/media/themes/tokyobones_dark.png b/docs/site/media/themes/tokyobones_dark.png Binary files differnew file mode 100644 index 00000000..f873726d --- /dev/null +++ b/docs/site/media/themes/tokyobones_dark.png diff --git a/docs/site/media/themes/tokyobones_light.png b/docs/site/media/themes/tokyobones_light.png Binary files differnew file mode 100644 index 00000000..211a30ff --- /dev/null +++ b/docs/site/media/themes/tokyobones_light.png diff --git a/docs/site/media/themes/tokyonight_day.png b/docs/site/media/themes/tokyonight_day.png Binary files differnew file mode 100644 index 00000000..cdbef103 --- /dev/null +++ b/docs/site/media/themes/tokyonight_day.png diff --git a/docs/site/media/themes/tokyonight_moon.png b/docs/site/media/themes/tokyonight_moon.png Binary files differnew file mode 100644 index 00000000..d35bf419 --- /dev/null +++ b/docs/site/media/themes/tokyonight_moon.png diff --git a/docs/site/media/themes/tokyonight_night.png b/docs/site/media/themes/tokyonight_night.png Binary files differnew file mode 100644 index 00000000..5497275b --- /dev/null +++ b/docs/site/media/themes/tokyonight_night.png diff --git a/docs/site/media/themes/tokyonight_storm.png b/docs/site/media/themes/tokyonight_storm.png Binary files differnew file mode 100644 index 00000000..5e62b9e2 --- /dev/null +++ b/docs/site/media/themes/tokyonight_storm.png diff --git a/docs/site/media/themes/vimbones.png b/docs/site/media/themes/vimbones.png Binary files differnew file mode 100644 index 00000000..134fd582 --- /dev/null +++ b/docs/site/media/themes/vimbones.png diff --git a/docs/site/media/themes/zenbones_dark.png b/docs/site/media/themes/zenbones_dark.png Binary files differnew file mode 100644 index 00000000..d7e8315c --- /dev/null +++ b/docs/site/media/themes/zenbones_dark.png diff --git a/docs/site/media/themes/zenbones_light.png b/docs/site/media/themes/zenbones_light.png Binary files differnew file mode 100644 index 00000000..22c2da48 --- /dev/null +++ b/docs/site/media/themes/zenbones_light.png diff --git a/docs/site/media/themes/zenburned.png b/docs/site/media/themes/zenburned.png Binary files differnew file mode 100644 index 00000000..3b97815b --- /dev/null +++ b/docs/site/media/themes/zenburned.png diff --git a/docs/site/media/themes/zenwritten_dark.png b/docs/site/media/themes/zenwritten_dark.png Binary files differnew file mode 100644 index 00000000..6421245f --- /dev/null +++ b/docs/site/media/themes/zenwritten_dark.png diff --git a/docs/site/media/themes/zenwritten_light.png b/docs/site/media/themes/zenwritten_light.png Binary files differnew file mode 100644 index 00000000..28f3a144 --- /dev/null +++ b/docs/site/media/themes/zenwritten_light.png diff --git a/docs/site/media/wait-editor.mp4 b/docs/site/media/wait-editor.mp4 Binary files differnew file mode 100644 index 00000000..49adadd6 --- /dev/null +++ b/docs/site/media/wait-editor.mp4 diff --git a/docs/site/media/wait-editor.png b/docs/site/media/wait-editor.png Binary files differnew file mode 100644 index 00000000..1d029f4c --- /dev/null +++ b/docs/site/media/wait-editor.png diff --git a/docs/site/media/wait-editor.webm b/docs/site/media/wait-editor.webm Binary files differnew file mode 100644 index 00000000..5afda502 --- /dev/null +++ b/docs/site/media/wait-editor.webm diff --git a/docs/site/media/where-commands-run.mp4 b/docs/site/media/where-commands-run.mp4 Binary files differnew file mode 100644 index 00000000..c4bd83fe --- /dev/null +++ b/docs/site/media/where-commands-run.mp4 diff --git a/docs/site/media/where-commands-run.png b/docs/site/media/where-commands-run.png Binary files differnew file mode 100644 index 00000000..5af438cc --- /dev/null +++ b/docs/site/media/where-commands-run.png diff --git a/docs/site/media/where-commands-run.webm b/docs/site/media/where-commands-run.webm Binary files differnew file mode 100644 index 00000000..c9d35176 --- /dev/null +++ b/docs/site/media/where-commands-run.webm diff --git a/docs/site/site.css b/docs/site/site.css index bab762d0..a0959d5e 100644 --- a/docs/site/site.css +++ b/docs/site/site.css @@ -63,12 +63,13 @@ body { margin:0; min-height:100vh; background:var(--field) radial-gradient(color /* code: a window on the machine, titled in stripes */ .content code, .content pre, .content kbd, .tag { font-family:var(--mono); } .content code { font-size:.82em; overflow-wrap:break-word; hyphens:none; } -.content pre { +.content pre:not(.ap-term-text) { font-size:15px; line-height:1.45; padding:12px 14px; margin:1em 0; overflow-x:auto; background:var(--deep); border:2px solid var(--leaf); border-top-width:8px; box-shadow:5px 5px 0 var(--shadow); } .content pre code { font-size:inherit; overflow-wrap:normal; } -@media (prefers-color-scheme: dark) { .content pre span { color:inherit !important; } } +/* Typst's code highlighting only: the cast player's terminal is a <pre> of coloured spans too */ +@media (prefers-color-scheme: dark) { .content pre:not(.ap-term-text) span { color:inherit !important; } } .content pre.tutor { font-size:14px; } /* tables: rows on alternating tints, a pardes #pairs */ @@ -81,8 +82,13 @@ body { margin:0; min-height:100vh; background:var(--field) radial-gradient(color /* --- the semantic elements (docs/typ/style.typ) ------------------------------ */ .key { display:inline-block; padding:0 .3em; border-radius:4px; background:color-mix(in srgb, var(--leaf) 20%, transparent); color:var(--ink); font-size:.82em; white-space:nowrap; line-height:1.4; } .key .plus, .key .then { color:var(--leaf); opacity:.8; padding:0 .12em; } -.word { background:var(--tag); padding:0 .25em; color:var(--dim); } -.word code { font-size:.82em; color:var(--ink); } +/* a builtin or tag word: a chip to click, on the tag's ground over a rule + (Look and Exec in acme's look green and exec red) */ +:root { --look:#7fd07f; --exec:#ff8a7a; } +@media (prefers-color-scheme: light) { :root { --look:#006600; --exec:#aa0000; } } +.content code.word { font-size:.82em; color:var(--ink); background:var(--tag); padding:.05em .3em; border-radius:2px; border-bottom:2px solid var(--leaf); white-space:nowrap; } +.content code.word.look { border-bottom-color:var(--look); } +.content code.word.exec { border-bottom-color:var(--exec); } .addr code { color:var(--plum); } .file code { color:var(--leaf); } .btn, .chord { display:inline-flex; align-items:center; gap:2px; vertical-align:-.38em; margin-block:-.3em; } @@ -126,7 +132,6 @@ body { margin:0; min-height:100vh; background:var(--field) radial-gradient(color .glossary { margin:1.4em 0; } .glossary summary { cursor:pointer; list-style-position:inside; } .glossary summary h3, .glossary summary p { display:inline; margin:0; } -.glossary summary .count { font:20px var(--pixel); color:var(--dim); margin-left:.4em; } .vh { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; } .colophon { font:15px var(--pixel); color:var(--dim); text-align:center; } .colophon a { color:var(--leaf); } @@ -144,8 +149,8 @@ body { margin:0; min-height:100vh; background:var(--field) radial-gradient(color @media (max-width:600px) { .cmd pre { white-space:pre-wrap; overflow-wrap:anywhere; } } /* terminal recordings: the first across the page, the rest two by two */ -.casts { display:grid; grid-template-columns:repeat(auto-fit, minmax(min(100%, 340px), 1fr)); gap:18px; margin:1em 0 1.4em; } -.casts .first { grid-column:1 / -1; } +/* one per row at the page's full width: a terminal at half width is unreadable */ +.casts { display:grid; grid-template-columns:minmax(0, 1fr); gap:22px; margin:1em 0 1.4em; } .cast .player { background:#121314; } .cast figcaption strong { color:var(--leaf); } .content h2.shelf { font-size:26px; margin:1.2em 0 .4em; } @@ -157,3 +162,63 @@ body { margin:0; min-height:100vh; background:var(--field) radial-gradient(color .shot figcaption { padding:3px 8px; font:16px var(--pixel); color:var(--dim); border-top:2px solid var(--leaf); } .shot.light figcaption::after { content:" · light"; color:var(--amber); } .shot .pending { aspect-ratio:960/700; display:flex; align-items:center; justify-content:center; font:15px var(--pixel); color:var(--dim); } + +/* a builtin's chip that links to its glossary entry */ +.content a:has(> code.word) { text-decoration:none; } +.content a:hover > code.word { text-decoration:underline; text-underline-offset:3px; } +.credit { font-size:18px; color:var(--dim); margin:0 0 .3em; } +/* the glossary: each entry's name is a small heading over its line */ +main[data-page="builtins"] .content h4 { font:600 18px var(--mono); color:var(--leaf); margin:1.1em 0 .1em; } +main[data-page="builtins"] .content h4 + p { margin-top:0; } +.content pre.tutor .btn, .content pre.tutor .chord { vertical-align:-.3em; } +.all-words { line-height:2.1; } + +/* the virtual filesystem as a tree: names and connectors, descriptions + in a quiet column; on a phone a description wraps under its name */ +.content pre.fstree { font-size:15px; line-height:1.35; overflow-x:visible; } +.fstree .row { display:grid; grid-template-columns:var(--name) 1fr; align-items:baseline; } +.fstree .nl { display:none; } +.fstree .branch { color:var(--rule); } +.fstree .dir, .fstree .dir a { color:var(--leaf); font-weight:700; } +.fstree a { color:var(--amber); text-decoration:none; } +.fstree a:hover { text-decoration:underline; } +.fstree .desc { color:var(--dim); font-family:var(--hand); font-size:17px; white-space:normal; line-height:1.3; } +@media (max-width:600px) { + .content pre.fstree { font-size:13px; } + .fstree .row { display:block; } + .fstree .name { display:block; } + /* under the name: its prefix is --cols cells of the 13px mono font */ + .fstree .desc { display:block; padding-left:calc(var(--cols) * 7.8px); font-size:15px; margin-bottom:.15em; } +} + +/* what's in it: a row of linked chips under the lead */ +.inside { display:flex; flex-wrap:wrap; gap:8px 10px; margin:.2em 0 1.1em; padding:0; list-style:none; } +.inside a { display:inline-block; padding:2px 10px; font:17px var(--pixel); color:var(--leaf); background:var(--tag); border:2px solid var(--leaf); text-decoration:none; } +.inside a:hover { color:var(--amber); border-color:var(--amber); } + +/* a screenshot with numbered pins, their labels listed beside it */ +.annotated { margin:1.2em 0 1.6em; display:grid; grid-template-columns:minmax(0, 3fr) minmax(12em, 2fr); gap:14px 22px; align-items:center; } +.annotated .frame { position:relative; border:2px solid var(--leaf); box-shadow:5px 5px 0 var(--shadow); } +.annotated img { display:block; width:100%; height:auto; } +.annotated .pin { position:absolute; transform:translate(-50%, -50%); width:1.5em; height:1.5em; border-radius:50%; + display:flex; align-items:center; justify-content:center; font:700 14px var(--mono); background:var(--amber); color:#1b120a; box-shadow:0 0 0 2px var(--panel); } +.annotated .pins { margin:0; padding-left:1.8em; font-size:18px; } +.annotated .pins li { margin:.25em 0; } +.annotated .pins li::marker { font:700 15px var(--mono); color:var(--amber); } +@media (max-width:600px) { .annotated { grid-template-columns:minmax(0, 1fr); } } +.clip figcaption .more { font:15px var(--pixel); color:var(--leaf); margin-left:.3em; white-space:nowrap; } +.clip { scroll-margin-top:16px; } + +/* a pane's box: blank normal, ^ insert, $ raw; filled while unsaved */ +.mode-box { display:inline-flex; align-items:center; justify-content:center; width:1.15em; height:1.15em; vertical-align:-.15em; + font:700 .8em var(--mono); background:var(--tag); color:var(--ink); border:2px solid var(--leaf); border-radius:2px; } +.mode-box.unsaved { background:var(--amber); border-color:var(--amber); color:#1b120a; } +/* a recording inside a chapter */ +.content .clip.inline { margin:1.2em 0; max-width:640px; } +.clip.inline video { display:block; width:100%; height:auto; background:var(--deep); } +.content .clip.inline.wide { max-width:none; } +.glossary dl { margin:.6em 0 0; display:grid; grid-template-columns:minmax(8em, max-content) 1fr; } +.glossary dt, .glossary dd { margin:0; padding:5px 9px; } +.glossary dt { font-weight:600; color:var(--leaf); } +.glossary dt:nth-of-type(odd), .glossary dt:nth-of-type(odd) + dd { background:color-mix(in srgb, var(--tag) 70%, transparent); } +@media (max-width:600px) { .glossary dl { grid-template-columns:1fr; } .glossary dd { padding-top:0; } } diff --git a/docs/site/site.typ b/docs/site/site.typ index afcd1041..47903d6e 100644 --- a/docs/site/site.typ +++ b/docs/site/site.typ @@ -4,7 +4,7 @@ // typst compile --root . --format bundle --features bundle,html docs/site/site.typ OUT // Every link is relative and every page sits at the top of OUT, so the site // works from file:// and from any static server. -#import "../typ/style.typ": chapters, tutor-path, doc-links, project +#import "../typ/style.typ": chapters, tutor-path, doc-links, project, btn, chord #let clips = toml("media/clips.toml").clip #let casts = toml("casts/casts.toml").cast @@ -19,11 +19,25 @@ // Change the landing here; the rest of the site is the chapters. #let landing = ( lead: [pardes is a text environment, after acme and helix, where any text - is live: right-click looks at it (opens the file at that line, the URL, - or finds the word) and middle-click runs it (a builtin or a shell - command). Read PDFs and source, edit code and use terminals with it, in - a terminal or in its own window.], + is live: right-click `main.c:12` to open that line, middle-click `make` + to run it, in source, PDFs and terminals alike, in a terminal or in its + own window.], + credit: [It is built on ideas from #link("https://9p.io/plan9/")[Plan 9] from + Bell Labs: #link("https://9p.io/sys/doc/acme/acme.html")[acme]'s text as + the interface, and the 9P protocol.], status: [Linux; macOS in progress. Version #version.], + // what's in it: a word each, linked to where it is told; no prose + // what's in it: each word jumps to its recording on this page when it + // has one, and that recording's caption links on to the docs + inside: ( + (name: "Terminals", rec: "terminals", docs: "guide.html#terminals"), + (name: "PDFs", rec: "pdf-navigation", docs: "builtins.html#builtin-PdfSections"), + (name: "Images", rec: "image-pane", docs: "reference.html#panes"), + (name: "Language servers", rec: none, docs: "setup.html#language-servers"), + (name: "Diff review", rec: "diff-review", docs: "guide.html#reviewing-diffs"), + (name: "Scripting", rec: "scripting-over-9p", docs: "scripting.html"), + (name: "Themes", rec: none, docs: "themes.html"), + ), terminal: [In a terminal], window: [In its own window], start: ( @@ -84,6 +98,20 @@ ] ] +#let in-view-script = el("script")[#( + "(() => { if (!('IntersectionObserver' in window)) return; +" + + " const p = el => el.player || (el.tagName === 'VIDEO' ? el : null); +" + + " const io = new IntersectionObserver(es => { for (const e of es) { const r = p(e.target); if (!r) continue; +" + + " if (e.isIntersecting) Promise.resolve(r.play()).catch(() => {}); else r.pause(); } }, {threshold: 0.25}); +" + + " for (const el of document.querySelectorAll('.clip video, .cast .player')) io.observe(el); +" + + "})();" +)] + #let shell(id, title, body) = html.html(lang: "en", { html.head({ html.meta(charset: "utf-8") @@ -101,12 +129,16 @@ #el("footer", (class: "colophon"))[ pardes #version · source: #project.mirrors.map(m => el("a", (href: m.web))[#m.name]).join(", ") · + #el("a", (href: project.changes))[changes] · #if project.license != none [#project.license license · ] built from `docs/typ` with Typst · #el("a", (href: "fonts/LICENSE-DepartureMono.txt"))[fonts] (OFL) · #el("a", (href: "player/LICENSE-asciinema-player.txt"))[asciinema-player] (Apache-2.0) ] ] + // after the page's own scripts (the landing's players), on every page + // that has a recording + in-view-script }) }) @@ -126,34 +158,55 @@ #doc-links.update(true) -#let video(c) = el("video", (poster: "media/" + c.name + ".png", muted: "", loop: "", playsinline: "", - controls: "", preload: "none"))[ +// Every recording plays by itself; the script below plays each only while +// it is on screen. Without the script, `autoplay` still plays them. +#let video(c) = el("video", (poster: "media/" + c.name + ".png", autoplay: "", muted: "", loop: "", playsinline: "", + controls: ""))[ #el("source", (src: "media/" + c.name + ".webm", type: "video/webm"))[] #el("source", (src: "media/" + c.name + ".mp4", type: "video/mp4"))[] ] #let placeholder = el("img", (src: "media/placeholder.svg", alt: "", width: "640", height: "400"))[] +/// A recording's caption: its text (which may hold #link markup), then the +/// docs of the "What's in it" word that jumps here, if any. +#let caption(c) = { + if c.caption.contains("#") { eval(c.caption, mode: "markup") } else { c.caption } + let to = landing.inside.find(i => i.rec == c.name) + if to != none [ #el("a", (class: "more", href: to.docs))[#to.name in the docs →]] +} + /// A terminal recording: a box the player fills, its data inline (so it -/// plays from file://), its caption under it. The first ready one plays. +/// plays from file://), its caption under it. #let ready-casts = casts.filter(c => c.ready) -#let cast(c, i) = el("figure", (class: if i == 0 { "clip cast first" } else { "clip cast" }))[ +#let cast(c, i) = el("figure", (class: if i == 0 { "clip cast first" } else { "clip cast" }, id: "rec-" + c.name))[ #if c.ready { el("div", (class: "player", id: "cast-" + c.name, "aria-label": c.title))[] } else { placeholder } - #el("figcaption")[#el("strong")[#c.title.] #c.caption] + #el("figcaption")[#el("strong")[#c.title.] #caption(c)] ] #let player-script = { let list = ready-casts.enumerate().map(((i, c)) => ( id: "cast-" + c.name, data: read("casts/" + c.name + ".cast"), - cols: c.cols, rows: c.rows, autoPlay: i == 0, + cols: c.cols, rows: c.rows, poster: "npt:0:" + str(c.at("poster_at", default: 2)), )) // "</" may not appear inside a script element let data = json.encode(list, pretty: false).replace("</", "<\\/") el("script", (src: "player/asciinema-player.min.js"))[] - el("script")[#("for (const c of " + data + ") AsciinemaPlayer.create({data: c.data}, document.getElementById(c.id), {cols: c.cols, rows: c.rows, autoPlay: c.autoPlay, loop: true, fit: 'width'});")] + el("script")[#("for (const c of " + data + ") { const el = document.getElementById(c.id); el.player = AsciinemaPlayer.create({data: c.data}, el, {cols: c.cols, rows: c.rows, autoPlay: false, loop: true, fit: 'width', poster: c.poster}); }")] } +/// Plays a recording while it is on screen and pauses it once it leaves. +/// The casts wait for it (autoPlay off) so each shows its poster frame +/// until then; the videos autoplay by themselves too. + #document(href("index"), title: "pardes", shell("index", "pardes")[ #el("h1", (class: "masthead"))[pardes] #el("p", (class: "lead"))[#landing.lead] + #el("ul", (class: "inside", "aria-label": "What's in it"))[ + #for i in landing.inside { + let to = if i.rec != none { "#rec-" + i.rec } else { i.docs } + el("li")[#el("a", (href: to, title: if i.rec != none { "watch it here; the docs: " + i.docs } else { "the docs" }))[#i.name]] + } + ] + #el("p", (class: "credit"))[#landing.credit] #el("p", (class: "runs"))[#landing.status] #el("div", (class: "start"))[ #for s in landing.start { @@ -169,10 +222,10 @@ #el("div", (class: "casts"))[#for (i, c) in casts.enumerate() { cast(c, i) }] #el("h2", (class: "shelf"))[#landing.window] #el("div", (class: "clips"))[ - #for c in clips { - el("figure", (class: "clip"))[ + #for c in clips.filter(c => c.at("landing", default: true)) { + el("figure", (class: "clip", id: "rec-" + c.name))[ #if c.ready { video(c) } else { placeholder } - #el("figcaption")[#c.caption] + #el("figcaption")[#caption(c)] ] } ] @@ -197,8 +250,38 @@ ]) } +/// The tutor's text with its mouse buttons drawn: B1, B2, B3 and the +/// chords it writes 1-2 (hold 1, click 2) become the docs' mouse glyphs, +/// each with its hidden words, inside the preformatted block. +#let tutor-text(t) = { + // the guide's sections by title, for "-> Guide: Modes, Config" + let guide-sections = (:) + for m in read("../typ/guide.typ").matches(regex("(?m)^= (.+?) <([a-z0-9-]+)>$")) { + guide-sections.insert(m.captures.at(0), m.captures.at(1)) + } + let tokens = regex("\\bB([123])\\b|\\b([123])-([123])\\b|docs/typ/([a-z]+)\\.typ|(?m)(?:^ -> Guide: )(.+)$|https://[^\\s)]+") + let at = 0 + for m in t.matches(tokens) { + t.slice(at, m.start) + let (b, c1, c2, page, sections) = m.captures + if b != none { btn("B" + b) } + else if c1 != none { chord("B" + c1, "B" + c2) } + else if page != none { link(page + ".html", m.text) } + else if sections != none { + " -> Guide: " + sections.split(", ").map(name => { + let l = guide-sections.at(name, default: none) + if l != none { link("guide.html#" + l, name) } else { name } + }).join(", ") + } + else { link(m.text, m.text) } + at = m.end + } + t.slice(at) +} + #document(href("tutor"), title: "The tutor", shell("tutor", "The tutor")[ #heading(level: 1)[The tutor] <tutor> The tutor as the editor shows it (#raw("Tutor"), or #raw("SPC h t")). - #el("pre", (class: "tutor"))[#read(tutor-path)] + #el("pre", (class: "tutor"))[#tutor-text(read(tutor-path))] ]) |
