summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulie Lala <jules@okfoc.us>2014-11-21 03:54:10 -0500
committerJulie Lala <jules@okfoc.us>2014-11-21 03:54:10 -0500
commit90442f7b68dcdcf4866719669149f8937c10fffc (patch)
tree557f64da074c381a390dafcabce4969e2858ea9c
parent4c83966dc73ed338a073bb53d899f3741c2dd12b (diff)
more of a real ansi editor
-rw-r--r--css/ak.css1
-rw-r--r--css/sally.css79
-rw-r--r--fonts/fsex300-webfont.eotbin0 -> 45866 bytes
-rw-r--r--fonts/fsex300-webfont.svg278
-rw-r--r--fonts/fsex300-webfont.ttfbin0 -> 45612 bytes
-rw-r--r--fonts/fsex300-webfont.woffbin0 -> 16948 bytes
-rw-r--r--index.html233
7 files changed, 526 insertions, 65 deletions
diff --git a/css/ak.css b/css/ak.css
new file mode 100644
index 0000000..89288bf
--- /dev/null
+++ b/css/ak.css
@@ -0,0 +1 @@
+.fa{color:#fff}.fb{color:#000}.fc{color:#00007F}.fd{color:#009300}.fe{color:red}.ff{color:#7f0000}.fg{color:#9C009C}.fh{color:#FC7F00}.fi{color:#FF0}.fj{color:#00FC00}.fk{color:#009393}.fl{color:#0FF}.fm{color:#0000FC}.fn{color:#F0F}.fo{color:#7F7F7F}.fp{color:#D2D2D2}.faba{color:#fff;background-color:#fff}.fabb{color:#fff;background-color:000000}.fabc{color:#fff;background-color:#00007F}.fabd{color:#fff;background-color:#009300}.fabe{color:#fff;background-color:red}.fabf{color:#fff;background-color:#7f0000}.fabg{color:#fff;background-color:#9C009C}.fabh{color:#fff;background-color:#FC7F00}.fabi{color:#fff;background-color:#FF0}.fabj{color:#fff;background-color:#00FC00}.fabk{color:#fff;background-color:#009393}.fabl{color:#fff;background-color:#0FF}.fabm{color:#fff;background-color:#0000FC}.fabn{color:#fff;background-color:#F0F}.fabo{color:#fff;background-color:#7F7F7F}.fabp{color:#fff;background-color:#D2D2D2}.fbba{color:#000;background-color:#fff}.fbbb{color:#000;background-color:000000}.fbbc{color:#000;background-color:#00007F}.fbbd{color:#000;background-color:#009300}.fbbe{color:#000;background-color:red}.fbbf{color:#000;background-color:#7f0000}.fbbg{color:#000;background-color:#9C009C}.fbbh{color:#000;background-color:#FC7F00}.fbbi{color:#000;background-color:#FF0}.fbbj{color:#000;background-color:#00FC00}.fbbk{color:#000;background-color:#009393}.fbbl{color:#000;background-color:#0FF}.fbbm{color:#000;background-color:#0000FC}.fbbn{color:#000;background-color:#F0F}.fbbo{color:#000;background-color:#7F7F7F}.fbbp{color:#000;background-color:#D2D2D2}.fcba{color:#00007F;background-color:#fff}.fcbb{color:#00007F;background-color:000000}.fcbc{color:#00007F;background-color:#00007F}.fcbd{color:#00007F;background-color:#009300}.fcbe{color:#00007F;background-color:red}.fcbf{color:#00007F;background-color:#7f0000}.fcbg{color:#00007F;background-color:#9C009C}.fcbh{color:#00007F;background-color:#FC7F00}.fcbi{color:#00007F;background-color:#FF0}.fcbj{color:#00007F;background-color:#00FC00}.fcbk{color:#00007F;background-color:#009393}.fcbl{color:#00007F;background-color:#0FF}.fcbm{color:#00007F;background-color:#0000FC}.fcbn{color:#00007F;background-color:#F0F}.fcbo{color:#00007F;background-color:#7F7F7F}.fcbp{color:#00007F;background-color:#D2D2D2}.fdba{color:#009300;background-color:#fff}.fdbb{color:#009300;background-color:000000}.fdbc{color:#009300;background-color:#00007F}.fdbd{color:#009300;background-color:#009300}.fdbe{color:#009300;background-color:red}.fdbf{color:#009300;background-color:#7f0000}.fdbg{color:#009300;background-color:#9C009C}.fdbh{color:#009300;background-color:#FC7F00}.fdbi{color:#009300;background-color:#FF0}.fdbj{color:#009300;background-color:#00FC00}.fdbk{color:#009300;background-color:#009393}.fdbl{color:#009300;background-color:#0FF}.fdbm{color:#009300;background-color:#0000FC}.fdbn{color:#009300;background-color:#F0F}.fdbo{color:#009300;background-color:#7F7F7F}.fdbp{color:#009300;background-color:#D2D2D2}.feba{color:red;background-color:#fff}.febb{color:red;background-color:000000}.febc{color:red;background-color:#00007F}.febd{color:red;background-color:#009300}.febe{color:red;background-color:red}.febf{color:red;background-color:#7f0000}.febg{color:red;background-color:#9C009C}.febh{color:red;background-color:#FC7F00}.febi{color:red;background-color:#FF0}.febj{color:red;background-color:#00FC00}.febk{color:red;background-color:#009393}.febl{color:red;background-color:#0FF}.febm{color:red;background-color:#0000FC}.febn{color:red;background-color:#F0F}.febo{color:red;background-color:#7F7F7F}.febp{color:red;background-color:#D2D2D2}.ffba{color:#7f0000;background-color:#fff}.ffbb{color:#7f0000;background-color:000000}.ffbc{color:#7f0000;background-color:#00007F}.ffbd{color:#7f0000;background-color:#009300}.ffbe{color:#7f0000;background-color:red}.ffbf{color:#7f0000;background-color:#7f0000}.ffbg{color:#7f0000;background-color:#9C009C}.ffbh{color:#7f0000;background-color:#FC7F00}.ffbi{color:#7f0000;background-color:#FF0}.ffbj{color:#7f0000;background-color:#00FC00}.ffbk{color:#7f0000;background-color:#009393}.ffbl{color:#7f0000;background-color:#0FF}.ffbm{color:#7f0000;background-color:#0000FC}.ffbn{color:#7f0000;background-color:#F0F}.ffbo{color:#7f0000;background-color:#7F7F7F}.ffbp{color:#7f0000;background-color:#D2D2D2}.fgba{color:#9C009C;background-color:#fff}.fgbb{color:#9C009C;background-color:000000}.fgbc{color:#9C009C;background-color:#00007F}.fgbd{color:#9C009C;background-color:#009300}.fgbe{color:#9C009C;background-color:red}.fgbf{color:#9C009C;background-color:#7f0000}.fgbg{color:#9C009C;background-color:#9C009C}.fgbh{color:#9C009C;background-color:#FC7F00}.fgbi{color:#9C009C;background-color:#FF0}.fgbj{color:#9C009C;background-color:#00FC00}.fgbk{color:#9C009C;background-color:#009393}.fgbl{color:#9C009C;background-color:#0FF}.fgbm{color:#9C009C;background-color:#0000FC}.fgbn{color:#9C009C;background-color:#F0F}.fgbo{color:#9C009C;background-color:#7F7F7F}.fgbp{color:#9C009C;background-color:#D2D2D2}.fhba{color:#FC7F00;background-color:#fff}.fhbb{color:#FC7F00;background-color:000000}.fhbc{color:#FC7F00;background-color:#00007F}.fhbd{color:#FC7F00;background-color:#009300}.fhbe{color:#FC7F00;background-color:red}.fhbf{color:#FC7F00;background-color:#7f0000}.fhbg{color:#FC7F00;background-color:#9C009C}.fhbh{color:#FC7F00;background-color:#FC7F00}.fhbi{color:#FC7F00;background-color:#FF0}.fhbj{color:#FC7F00;background-color:#00FC00}.fhbk{color:#FC7F00;background-color:#009393}.fhbl{color:#FC7F00;background-color:#0FF}.fhbm{color:#FC7F00;background-color:#0000FC}.fhbn{color:#FC7F00;background-color:#F0F}.fhbo{color:#FC7F00;background-color:#7F7F7F}.fhbp{color:#FC7F00;background-color:#D2D2D2}.fiba{color:#FF0;background-color:#fff}.fibb{color:#FF0;background-color:000000}.fibc{color:#FF0;background-color:#00007F}.fibd{color:#FF0;background-color:#009300}.fibe{color:#FF0;background-color:red}.fibf{color:#FF0;background-color:#7f0000}.fibg{color:#FF0;background-color:#9C009C}.fibh{color:#FF0;background-color:#FC7F00}.fibi{color:#FF0;background-color:#FF0}.fibj{color:#FF0;background-color:#00FC00}.fibk{color:#FF0;background-color:#009393}.fibl{color:#FF0;background-color:#0FF}.fibm{color:#FF0;background-color:#0000FC}.fibn{color:#FF0;background-color:#F0F}.fibo{color:#FF0;background-color:#7F7F7F}.fibp{color:#FF0;background-color:#D2D2D2}.fjba{color:#00FC00;background-color:#fff}.fjbb{color:#00FC00;background-color:000000}.fjbc{color:#00FC00;background-color:#00007F}.fjbd{color:#00FC00;background-color:#009300}.fjbe{color:#00FC00;background-color:red}.fjbf{color:#00FC00;background-color:#7f0000}.fjbg{color:#00FC00;background-color:#9C009C}.fjbh{color:#00FC00;background-color:#FC7F00}.fjbi{color:#00FC00;background-color:#FF0}.fjbj{color:#00FC00;background-color:#00FC00}.fjbk{color:#00FC00;background-color:#009393}.fjbl{color:#00FC00;background-color:#0FF}.fjbm{color:#00FC00;background-color:#0000FC}.fjbn{color:#00FC00;background-color:#F0F}.fjbo{color:#00FC00;background-color:#7F7F7F}.fjbp{color:#00FC00;background-color:#D2D2D2}.fkba{color:#009393;background-color:#fff}.fkbb{color:#009393;background-color:000000}.fkbc{color:#009393;background-color:#00007F}.fkbd{color:#009393;background-color:#009300}.fkbe{color:#009393;background-color:red}.fkbf{color:#009393;background-color:#7f0000}.fkbg{color:#009393;background-color:#9C009C}.fkbh{color:#009393;background-color:#FC7F00}.fkbi{color:#009393;background-color:#FF0}.fkbj{color:#009393;background-color:#00FC00}.fkbk{color:#009393;background-color:#009393}.fkbl{color:#009393;background-color:#0FF}.fkbm{color:#009393;background-color:#0000FC}.fkbn{color:#009393;background-color:#F0F}.fkbo{color:#009393;background-color:#7F7F7F}.fkbp{color:#009393;background-color:#D2D2D2}.flba{color:#0FF;background-color:#fff}.flbb{color:#0FF;background-color:000000}.flbc{color:#0FF;background-color:#00007F}.flbd{color:#0FF;background-color:#009300}.flbe{color:#0FF;background-color:red}.flbf{color:#0FF;background-color:#7f0000}.flbg{color:#0FF;background-color:#9C009C}.flbh{color:#0FF;background-color:#FC7F00}.flbi{color:#0FF;background-color:#FF0}.flbj{color:#0FF;background-color:#00FC00}.flbk{color:#0FF;background-color:#009393}.flbl{color:#0FF;background-color:#0FF}.flbm{color:#0FF;background-color:#0000FC}.flbn{color:#0FF;background-color:#F0F}.flbo{color:#0FF;background-color:#7F7F7F}.flbp{color:#0FF;background-color:#D2D2D2}.fmba{color:#0000FC;background-color:#fff}.fmbb{color:#0000FC;background-color:000000}.fmbc{color:#0000FC;background-color:#00007F}.fmbd{color:#0000FC;background-color:#009300}.fmbe{color:#0000FC;background-color:red}.fmbf{color:#0000FC;background-color:#7f0000}.fmbg{color:#0000FC;background-color:#9C009C}.fmbh{color:#0000FC;background-color:#FC7F00}.fmbi{color:#0000FC;background-color:#FF0}.fmbj{color:#0000FC;background-color:#00FC00}.fmbk{color:#0000FC;background-color:#009393}.fmbl{color:#0000FC;background-color:#0FF}.fmbm{color:#0000FC;background-color:#0000FC}.fmbn{color:#0000FC;background-color:#F0F}.fmbo{color:#0000FC;background-color:#7F7F7F}.fmbp{color:#0000FC;background-color:#D2D2D2}.fnba{color:#F0F;background-color:#fff}.fnbb{color:#F0F;background-color:000000}.fnbc{color:#F0F;background-color:#00007F}.fnbd{color:#F0F;background-color:#009300}.fnbe{color:#F0F;background-color:red}.fnbf{color:#F0F;background-color:#7f0000}.fnbg{color:#F0F;background-color:#9C009C}.fnbh{color:#F0F;background-color:#FC7F00}.fnbi{color:#F0F;background-color:#FF0}.fnbj{color:#F0F;background-color:#00FC00}.fnbk{color:#F0F;background-color:#009393}.fnbl{color:#F0F;background-color:#0FF}.fnbm{color:#F0F;background-color:#0000FC}.fnbn{color:#F0F;background-color:#F0F}.fnbo{color:#F0F;background-color:#7F7F7F}.fnbp{color:#F0F;background-color:#D2D2D2}.foba{color:#7F7F7F;background-color:#fff}.fobb{color:#7F7F7F;background-color:000000}.fobc{color:#7F7F7F;background-color:#00007F}.fobd{color:#7F7F7F;background-color:#009300}.fobe{color:#7F7F7F;background-color:red}.fobf{color:#7F7F7F;background-color:#7f0000}.fobg{color:#7F7F7F;background-color:#9C009C}.fobh{color:#7F7F7F;background-color:#FC7F00}.fobi{color:#7F7F7F;background-color:#FF0}.fobj{color:#7F7F7F;background-color:#00FC00}.fobk{color:#7F7F7F;background-color:#009393}.fobl{color:#7F7F7F;background-color:#0FF}.fobm{color:#7F7F7F;background-color:#0000FC}.fobn{color:#7F7F7F;background-color:#F0F}.fobo{color:#7F7F7F;background-color:#7F7F7F}.fobp{color:#7F7F7F;background-color:#D2D2D2}.fpba{color:#D2D2D2;background-color:#fff}.fpbb{color:#D2D2D2;background-color:000000}.fpbc{color:#D2D2D2;background-color:#00007F}.fpbd{color:#D2D2D2;background-color:#009300}.fpbe{color:#D2D2D2;background-color:red}.fpbf{color:#D2D2D2;background-color:#7f0000}.fpbg{color:#D2D2D2;background-color:#9C009C}.fpbh{color:#D2D2D2;background-color:#FC7F00}.fpbi{color:#D2D2D2;background-color:#FF0}.fpbj{color:#D2D2D2;background-color:#00FC00}.fpbk{color:#D2D2D2;background-color:#009393}.fpbl{color:#D2D2D2;background-color:#0FF}.fpbm{color:#D2D2D2;background-color:#0000FC}.fpbn{color:#D2D2D2;background-color:#F0F}.fpbo{color:#D2D2D2;background-color:#7F7F7F}.fpbp{color:#D2D2D2;background-color:#D2D2D2}. \ No newline at end of file
diff --git a/css/sally.css b/css/sally.css
new file mode 100644
index 0000000..81b4ba6
--- /dev/null
+++ b/css/sally.css
@@ -0,0 +1,79 @@
+body {
+ margin:0;
+ background-color: #000000 !important;
+ font-family: 'FixedsysExcelsior301Regular';
+ font-size: 12pt;
+ font-weight: 100;
+ line-height: 1;
+ color:#6d6b6d;
+ -webkit-font-smoothing: antialiased !important;
+}
+
+@font-face {
+ font-family: 'FixedsysExcelsior301Regular';
+ src: url('../fonts/fsex300-webfont.eot');
+ src: url('../fonts/fsex300-webfont.eot?#iefix') format('embedded-opentype'),
+ url('../fonts/fsex300-webfont.woff') format('woff'),
+ url('../fonts/fsex300-webfont.ttf') format('truetype'),
+ url('../fonts/fsex300-webfont.svg#FixedsysExcelsior301Regular') format('svg');
+ font-weight: normal;
+ font-style: normal;
+}
+
+a {display: block}
+a:link, a:visited {text-decoration: none; color: #3b3740}
+
+{overflow: auto;}
+
+.rapper {
+ float: left;
+ height:auto;
+ width:auto;
+ padding:4px;
+ background-color: #000000;
+ z-index:3;
+ white-space:pre-wrap;
+ word-wrap: break-word;
+}
+
+@media screen and (-webkit-min-device-pixel-ratio:0) {
+ #nvgovy{white-space:pre;}
+}
+
+#users {
+ position:fixed !important;
+ width:85px;
+ right:9px;
+ height:100%;
+ z-index: 355;
+ top:0px;
+ margin-bottom:32px;
+}
+
+#seperator{
+ box-shadow: inset 0px 1px 1px 0px rgba(11, 11, 11, 0.05);
+ position:absolute;
+ margin-top:0px;
+ margin-left:0px;
+ width:5px;
+ height:100%;
+ background: -webkit-linear-gradient(left, #000000, #222222, #474747, #535353, #474747, #131313);
+ background: -moz-linear-gradient(0deg, #000000, #222222, #474747, #535353, #474747, #131313) repeat scroll 0 0 transparent;
+}
+
+#shroud {
+ background-color: #000000;
+ height: 100%;
+ position: absolute;
+ right: 75px;
+ width: 5px;
+ z-index: 377;
+}
+
+#list {
+ background-color: #000000;
+ height: 100%;
+ margin-left: 10px;
+ margin-top: 6px;
+ position: fixed;
+}
diff --git a/fonts/fsex300-webfont.eot b/fonts/fsex300-webfont.eot
new file mode 100644
index 0000000..bcb97eb
--- /dev/null
+++ b/fonts/fsex300-webfont.eot
Binary files differ
diff --git a/fonts/fsex300-webfont.svg b/fonts/fsex300-webfont.svg
new file mode 100644
index 0000000..7ce26ce
--- /dev/null
+++ b/fonts/fsex300-webfont.svg
@@ -0,0 +1,278 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata>
+This is a custom SVG webfont generated by Font Squirrel.
+Designer : Darien Valentine
+Foundry : Darien Valentine
+Foundry URL : httpwwwfixedsysexcelsiorcom
+</metadata>
+<defs>
+<font id="FixedsysExcelsior301Regular" horiz-adv-x="1024" >
+<font-face units-per-em="2048" ascent="1664" descent="-384" />
+<missing-glyph horiz-adv-x="500" />
+<glyph unicode=" " />
+<glyph unicode="!" d="M256 640v384h128v128h256v-128h128v-384h-128v-256h-256v256h-128zM384 0v256h256v-256h-256z" />
+<glyph unicode="&#x22;" d="M128 768v384h256v-384h-256zM640 768v384h256v-384h-256z" />
+<glyph unicode="#" d="M128 256v128h128v384h-128v128h128v256h256v-256h128v256h256v-256h128v-128h-128v-384h128v-128h-128v-256h-256v256h-128v-256h-256v256h-128zM512 384h128v384h-128v-384z" />
+<glyph unicode="$" d="M128 128v128h256v-128h256v256h-128v128h-128v128h-128v128h-128v256h128v128h128v256h256v-256h128v-128h128v-128h-256v128h-256v-256h128v-128h128v-128h128v-128h128v-256h-128v-128h-128v-256h-256v256h-128v128h-128z" />
+<glyph unicode="%" d="M0 896v256h128v128h384v-128h128v-256h128v128h128v-256h-128v-128h-128v-128h-128v-128h384v-128h128v-256h-128v-128h-384v128h-128v256h-128v-128h-128v256h128v128h128v128h128v128h-384v128h-128zM256 896h128v256h-128v-256zM384 256h128v128h-128v-128zM512 768 h128v128h-128v-128zM640 0h128v256h-128v-256z" />
+<glyph unicode="&#x26;" d="M128 128v512h128v128h-128v256h128v128h384v-128h128v-256h-128v-128h-256v-512h256v256h-128v128h512v-128h-128v-256h128v-128h-256v128h-128v-128h-384v128h-128zM384 768h128v256h-128v-256z" />
+<glyph unicode="'" d="M384 768v384h256v-384h-256z" />
+<glyph unicode="(" d="M256 128v640h128v256h128v128h256v-128h-128v-256h-128v-640h128v-256h128v-128h-256v128h-128v256h-128z" />
+<glyph unicode=")" d="M256 -128h128v256h128v640h-128v256h-128v128h256v-128h128v-256h128v-640h-128v-256h-128v-128h-256v128z" />
+<glyph unicode="*" d="M128 512v128h256v128h-128v128h256v-128h128v128h256v-128h-128v-128h256v-128h-256v-128h128v-128h-256v128h-128v-128h-256v128h128v128h-256z" />
+<glyph unicode="+" d="M128 512v128h256v256h256v-256h256v-128h-256v-256h-256v256h-256z" />
+<glyph unicode="," d="M384 0v256h384v-384h-128v-128h-256v128h128v128h-128z" />
+<glyph unicode="-" d="M128 512v128h768v-128h-768z" />
+<glyph unicode="." d="M384 0v256h384v-256h-384z" />
+<glyph unicode="/" d="M128 -128v256h128v256h128v256h128v256h128v256h256v-256h-128v-256h-128v-256h-128v-256h-128v-256h-256z" />
+<glyph unicode="0" d="M256 128v896h128v128h512v-128h128v-896h-128v-128h-512v128h-128zM512 128h256v512h-128v256h128v128h-256v-512h128v-256h-128v-128z" />
+<glyph unicode="1" d="M128 768v128h256v128h128v128h256v-1152h-256v768h-384z" />
+<glyph unicode="2" d="M128 0v256h128v128h128v128h128v128h128v384h-256v-256h-256v256h128v128h512v-128h128v-384h-128v-128h-128v-128h-128v-128h-128v-128h512v-128h-768z" />
+<glyph unicode="3" d="M128 128v256h256v-256h256v384h-256v128h256v384h-256v-256h-256v256h128v128h512v-128h128v-384h-128v-128h128v-384h-128v-128h-512v128h-128z" />
+<glyph unicode="4" d="M128 256v256h128v640h256v-640h-128v-128h256v512h256v-512h128v-128h-128v-256h-256v256h-512z" />
+<glyph unicode="5" d="M128 0v128h384v128h128v256h-512v640h768v-128h-512v-384h384v-128h128v-256h-128v-128h-128v-128h-512z" />
+<glyph unicode="6" d="M128 128v640h128v128h128v256h384v-128h-128v-128h-128v-128h256v-128h128v-512h-128v-128h-512v128h-128zM384 128h256v512h-256v-512z" />
+<glyph unicode="7" d="M128 1024v128h768v-256h-128v-256h-128v-256h-128v-384h-256v384h128v256h128v256h128v128h-512z" />
+<glyph unicode="8" d="M128 128v384h128v128h-128v384h128v128h512v-128h128v-384h-128v-128h128v-384h-128v-128h-512v128h-128zM384 128h256v256h-128v128h-128v-384zM384 768h128v-128h128v384h-256v-256z" />
+<glyph unicode="9" d="M128 512v512h128v128h512v-128h128v-640h-128v-128h-128v-256h-384v128h128v128h128v128h-256v128h-128zM384 512h256v512h-256v-512z" />
+<glyph unicode=":" d="M384 0v256h384v-256h-384zM384 640v256h384v-256h-384z" />
+<glyph unicode=";" d="M384 0v256h384v-384h-128v-128h-256v128h128v128h-128zM384 640v256h384v-256h-384z" />
+<glyph unicode="&#x3c;" d="M128 512v128h128v128h128v128h128v128h128v128h256v-128h-128v-128h-128v-128h-128v-128h-128v-128h128v-128h128v-128h128v-128h128v-128h-256v128h-128v128h-128v128h-128v128h-128z" />
+<glyph unicode="=" d="M128 384v128h768v-128h-768zM128 640v128h768v-128h-768z" />
+<glyph unicode="&#x3e;" d="M128 0v128h128v128h128v128h128v128h128v128h-128v128h-128v128h-128v128h-128v128h256v-128h128v-128h128v-128h128v-128h128v-128h-128v-128h-128v-128h-128v-128h-128v-128h-256z" />
+<glyph unicode="?" d="M128 768v256h128v128h512v-128h128v-256h-128v-128h-128v-256h-256v256h128v128h128v256h-256v-256h-256zM384 0v256h256v-256h-256z" />
+<glyph unicode="@" d="M0 128v896h128v128h768v-128h128v-768h-512v128h-128v256h128v128h256v256h-512v-896h768v-128h-896v128h-128zM640 384h128v256h-128v-256z" />
+<glyph unicode="A" d="M128 0v896h128v128h128v128h256v-128h128v-128h128v-896h-256v384h-256v-384h-256zM384 512h256v384h-256v-384z" />
+<glyph unicode="B" d="M128 0v1152h640v-128h128v-384h-128v-128h128v-384h-128v-128h-640zM384 128h256v384h-256v-384zM384 640h256v384h-256v-384z" />
+<glyph unicode="C" d="M128 128v896h128v128h512v-128h128v-256h-256v256h-256v-896h256v256h256v-256h-128v-128h-512v128h-128z" />
+<glyph unicode="D" d="M128 0v1152h512v-128h128v-128h128v-640h-128v-128h-128v-128h-512zM384 128h128v128h128v640h-128v128h-128v-896z" />
+<glyph unicode="E" d="M128 0v1152h768v-128h-512v-384h384v-128h-384v-384h512v-128h-768z" />
+<glyph unicode="F" d="M128 0v1152h768v-128h-512v-384h384v-128h-384v-512h-256z" />
+<glyph unicode="G" d="M128 128v896h128v128h512v-128h128v-256h-256v256h-256v-896h256v256h-128v128h384v-512h-640v128h-128z" />
+<glyph unicode="H" d="M128 0v1152h256v-512h256v512h256v-1152h-256v512h-256v-512h-256z" />
+<glyph unicode="I" d="M256 0v128h128v896h-128v128h512v-128h-128v-896h128v-128h-512z" />
+<glyph unicode="J" d="M128 128v256h256v-256h256v1024h256v-1024h-128v-128h-512v128h-128z" />
+<glyph unicode="K" d="M128 0v1152h256v-512h128v256h128v256h256v-256h-128v-256h-128v-128h128v-256h128v-256h-256v256h-128v256h-128v-512h-256z" />
+<glyph unicode="L" d="M128 0v1152h256v-1024h512v-128h-768z" />
+<glyph unicode="M" d="M128 0v1152h256v-256h128v-128h128v128h128v256h256v-1152h-256v768h-128v-384h-128v384h-128v-768h-256z" />
+<glyph unicode="N" d="M128 0v1152h256v-256h128v-128h128v-128h128v512h256v-1152h-256v384h-128v128h-128v128h-128v-640h-256z" />
+<glyph unicode="O" d="M128 128v896h128v128h512v-128h128v-896h-128v-128h-512v128h-128zM384 128h256v896h-256v-896z" />
+<glyph unicode="P" d="M128 0v1152h640v-128h128v-384h-128v-128h-384v-512h-256zM384 640h256v384h-256v-384z" />
+<glyph unicode="Q" d="M128 128v896h128v128h512v-128h128v-896h-128v-256h128v-128h-256v128h-128v128h-256v128h-128zM384 128h256v896h-256v-896z" />
+<glyph unicode="R" d="M128 0v1152h640v-128h128v-384h-128v-256h128v-384h-256v384h-128v128h-128v-512h-256zM384 640h256v384h-256v-384z" />
+<glyph unicode="S" d="M128 128v128h256v-128h256v256h-128v128h-128v128h-128v128h-128v256h128v128h512v-128h128v-128h-256v128h-256v-256h128v-128h128v-128h128v-128h128v-256h-128v-128h-512v128h-128z" />
+<glyph unicode="T" d="M128 1024v128h768v-128h-256v-1024h-256v1024h-256z" />
+<glyph unicode="U" d="M128 128v1024h256v-1024h256v1024h256v-1024h-128v-128h-512v128h-128z" />
+<glyph unicode="V" d="M128 256v896h256v-896h256v896h256v-896h-128v-128h-128v-128h-256v128h-128v128h-128z" />
+<glyph unicode="W" d="M128 384v768h256v-768h128v384h128v-384h128v768h256v-768h-128v-384h-256v384h-128v-384h-256v384h-128z" />
+<glyph unicode="X" d="M128 0v384h128v128h128v256h-128v128h-128v256h256v-256h128v-128h128v384h256v-256h-128v-128h-128v-256h128v-128h128v-384h-256v384h-128v128h-128v-512h-256z" />
+<glyph unicode="Y" d="M128 640v512h256v-512h256v512h256v-512h-128v-128h-128v-512h-256v512h-128v128h-128z" />
+<glyph unicode="Z" d="M128 0v384h128v128h128v128h128v128h128v256h-512v128h768v-384h-128v-128h-128v-128h-128v-128h-128v-256h512v-128h-768z" />
+<glyph unicode="[" d="M256 -384v1536h512v-128h-256v-1280h256v-128h-512z" />
+<glyph unicode="\" d="M128 896v256h256v-256h128v-256h128v-256h128v-256h128v-256h-256v256h-128v256h-128v256h-128v256h-128z" />
+<glyph unicode="]" d="M256 -256h256v1280h-256v128h512v-1536h-512v128z" />
+<glyph unicode="^" d="M128 1024v128h128v128h128v128h256v-128h128v-128h128v-128h-256v128h-256v-128h-256z" />
+<glyph unicode="_" d="M0 -256h1024v-128h-1024v128z" />
+<glyph unicode="`" d="M256 1280v128h384v-256h128v-128h-256v128h-128v128h-128z" />
+<glyph unicode="a" d="M128 128v256h128v128h384v256h-384v128h512v-128h128v-768h-640v128h-128zM384 128h256v256h-256v-256z" />
+<glyph unicode="b" d="M128 0v1152h256v-256h384v-128h128v-640h-128v-128h-640zM384 128h256v640h-256v-640z" />
+<glyph unicode="c" d="M128 128v640h128v128h512v-128h128v-128h-256v128h-256v-640h256v128h256v-128h-128v-128h-512v128h-128z" />
+<glyph unicode="d" d="M128 128v640h128v128h384v256h256v-1152h-640v128h-128zM384 128h256v640h-256v-640z" />
+<glyph unicode="e" d="M128 128v640h128v128h512v-128h128v-384h-512v-256h384v-128h-512v128h-128zM384 512h256v256h-256v-256z" />
+<glyph unicode="f" d="M128 512v128h128v384h128v128h512v-128h-384v-384h384v-128h-384v-512h-256v512h-128z" />
+<glyph unicode="g" d="M128 128v640h128v128h640v-1152h-128v-128h-640v128h512v256h-384v128h-128zM384 128h256v640h-256v-640z" />
+<glyph unicode="h" d="M128 0v1152h256v-256h384v-128h128v-768h-256v768h-256v-768h-256z" />
+<glyph unicode="i" d="M128 0v128h256v640h-256v128h512v-768h256v-128h-768zM384 1024v256h256v-256h-256z" />
+<glyph unicode="j" d="M128 -256h384v1024h-256v128h512v-1152h-128v-128h-512v128zM512 1024v256h256v-256h-256z" />
+<glyph unicode="k" d="M128 0v1152h256v-640h128v128h128v256h256v-256h-128v-128h-128v-128h128v-128h128v-256h-256v256h-128v128h-128v-384h-256z" />
+<glyph unicode="l" d="M128 0v128h256v896h-256v128h512v-1024h256v-128h-768z" />
+<glyph unicode="m" d="M128 0v896h768v-128h128v-768h-256v768h-128v-640h-128v640h-128v-768h-256z" />
+<glyph unicode="n" d="M128 0v896h640v-128h128v-768h-256v768h-256v-768h-256z" />
+<glyph unicode="o" d="M128 128v640h128v128h512v-128h128v-640h-128v-128h-512v128h-128zM384 128h256v640h-256v-640z" />
+<glyph unicode="p" d="M128 -384v1280h640v-128h128v-640h-128v-128h-384v-384h-256zM384 128h256v640h-256v-640z" />
+<glyph unicode="q" d="M128 128v640h128v128h640v-1280h-256v384h-384v128h-128zM384 128h256v640h-256v-640z" />
+<glyph unicode="r" d="M128 0v896h256v-256h128v128h128v128h256v-256h-384v-128h-128v-512h-256z" />
+<glyph unicode="s" d="M128 0v128h512v256h-384v128h-128v256h128v128h640v-128h-512v-256h384v-128h128v-256h-128v-128h-640z" />
+<glyph unicode="t" d="M128 768v128h128v256h256v-256h384v-128h-384v-640h384v-128h-512v128h-128v640h-128z" />
+<glyph unicode="u" d="M128 128v768h256v-768h256v768h256v-896h-640v128h-128z" />
+<glyph unicode="v" d="M128 256v640h256v-640h256v640h256v-640h-128v-128h-128v-128h-256v128h-128v128h-128z" />
+<glyph unicode="w" d="M128 256v640h256v-640h128v512h128v-512h128v640h256v-640h-128v-256h-256v256h-128v-256h-256v256h-128z" />
+<glyph unicode="x" d="M128 0v256h128v128h128v128h-128v128h-128v256h256v-256h256v256h256v-256h-128v-128h-128v-128h128v-128h128v-256h-256v256h-256v-256h-256z" />
+<glyph unicode="y" d="M0 -256h384v128h128v128h-256v128h-128v768h256v-768h256v768h256v-768h-128v-256h-128v-128h-128v-128h-512v128z" />
+<glyph unicode="z" d="M128 0v256h128v128h128v128h128v128h128v128h-512v128h768v-256h-128v-128h-128v-128h-128v-128h-128v-128h512v-128h-768z" />
+<glyph unicode="{" d="M128 384v128h128v128h128v384h128v128h256v-128h-128v-384h-128v-128h-128v-128h128v-128h128v-384h128v-128h-256v128h-128v384h-128v128h-128z" />
+<glyph unicode="|" d="M384 -384v1536h256v-1536h-256z" />
+<glyph unicode="}" d="M256 -128h128v384h128v128h128v128h-128v128h-128v384h-128v128h256v-128h128v-384h128v-128h128v-128h-128v-128h-128v-384h-128v-128h-256v128z" />
+<glyph unicode="~" d="M0 768v256h128v128h384v-128h128v-128h128v128h128v128h128v-256h-128v-128h-384v128h-128v128h-128v-128h-128v-128h-128z" />
+<glyph d="M128 0v1152h768v-1152h-768z" />
+<glyph d="M128 0v1152h768v-1152h-768z" />
+<glyph d="M128 0v1152h768v-1152h-768z" />
+<glyph d="M128 0v1152h768v-1152h-768z" />
+<glyph d="M128 0v1152h768v-1152h-768z" />
+<glyph unicode="&#x85;" d="M128 0v1152h768v-1152h-768z" />
+<glyph d="M128 0v1152h768v-1152h-768z" />
+<glyph d="M128 0v1152h768v-1152h-768z" />
+<glyph d="M128 0v1152h768v-1152h-768z" />
+<glyph d="M128 0v1152h768v-1152h-768z" />
+<glyph d="M128 0v1152h768v-1152h-768z" />
+<glyph d="M128 0v1152h768v-1152h-768z" />
+<glyph d="M128 0v1152h768v-1152h-768z" />
+<glyph d="M128 0v1152h768v-1152h-768z" />
+<glyph d="M128 0v1152h768v-1152h-768z" />
+<glyph d="M128 0v1152h768v-1152h-768z" />
+<glyph d="M128 0v1152h768v-1152h-768z" />
+<glyph d="M384 640v384h128v128h256v-128h-128v-128h128v-256h-384z" />
+<glyph d="M384 640v128h128v128h-128v256h384v-384h-128v-128h-256z" />
+<glyph d="M128 0v1152h768v-1152h-768z" />
+<glyph d="M128 0v1152h768v-1152h-768z" />
+<glyph d="M128 0v1152h768v-1152h-768z" />
+<glyph d="M128 0v1152h768v-1152h-768z" />
+<glyph d="M128 0v1152h768v-1152h-768z" />
+<glyph d="M128 0v1152h768v-1152h-768z" />
+<glyph d="M128 0v1152h768v-1152h-768z" />
+<glyph d="M128 0v1152h768v-1152h-768z" />
+<glyph d="M128 0v1152h768v-1152h-768z" />
+<glyph d="M128 0v1152h768v-1152h-768z" />
+<glyph d="M128 0v1152h768v-1152h-768z" />
+<glyph d="M128 0v1152h768v-1152h-768z" />
+<glyph d="M128 0v1152h768v-1152h-768z" />
+<glyph unicode="&#xa0;" />
+<glyph unicode="&#xa1;" d="M256 128h128v256h256v-256h128v-384h-128v-128h-256v128h-128v384zM384 512v256h256v-256h-256z" />
+<glyph unicode="&#xa2;" d="M128 256v512h128v128h128v256h256v-256h128v-128h128v-128h-256v128h-256v-512h256v128h256v-128h-128v-128h-128v-256h-256v256h-128v128h-128z" />
+<glyph unicode="&#xa3;" d="M0 0v256h128v256h-128v128h128v384h128v128h512v-128h128v-128h-256v128h-256v-384h384v-128h-384v-256h-128v-128h640v-128h-896z" />
+<glyph unicode="&#xa4;" d="M128 256v128h128v128h-128v256h128v128h-128v128h256v-128h256v128h256v-128h-128v-128h128v-256h-128v-128h128v-128h-256v128h-256v-128h-256zM384 512h256v256h-256v-256z" />
+<glyph unicode="&#xa5;" d="M128 256v128h256v128h-256v128h128v128h-128v384h256v-384h256v384h256v-384h-128v-128h128v-128h-256v-128h256v-128h-256v-256h-256v256h-256z" />
+<glyph unicode="&#xa6;" d="M384 256h256v-640h-256v640zM384 512v640h256v-640h-256z" />
+<glyph unicode="&#xa7;" d="M128 -128h256v-128h256v256h-256v128h-128v128h-128v256h128v256h-128v256h128v128h512v-128h128v-128h-256v128h-256v-256h256v-128h128v-128h128v-256h-128v-256h128v-256h-128v-128h-512v128h-128v128zM384 256h256v256h-256v-256z" />
+<glyph unicode="&#xa8;" d="M128 1024v256h256v-256h-256zM640 1024v256h256v-256h-256z" />
+<glyph unicode="&#xa9;" d="M0 128v896h128v128h768v-128h128v-896h-128v-128h-768v128h-128zM128 256h128v-128h512v128h128v640h-128v128h-512v-128h-128v-640zM256 384v384h128v-384h256v-128h-256v128h-128zM384 768v128h256v-128h128v-128h-128v128h-256zM640 384v128h128v-128h-128z" />
+<glyph unicode="&#xaa;" d="M128 256v128h768v-128h-768zM128 640v128h128v128h384v128h-384v128h512v-128h128v-512h-640v128h-128zM384 640h256v128h-256v-128z" />
+<glyph unicode="&#xab;" d="M0 256v128h128v128h128v128h256v-128h-128v-128h-128v-128h128v-128h128v-128h-256v128h-128v128h-128zM512 256v128h128v128h128v128h256v-128h-128v-128h-128v-128h128v-128h128v-128h-256v128h-128v128h-128z" />
+<glyph unicode="&#xac;" d="M128 512v128h768v-384h-256v256h-512z" />
+<glyph unicode="&#xad;" d="M128 512v128h768v-128h-768z" />
+<glyph unicode="&#xae;" d="M0 128v896h128v128h768v-128h128v-896h-128v-128h-768v128h-128zM128 256h128v-128h512v128h-128v128h-256v-128h-128v640h-128v-640zM256 896h384v-128h128v-256h-128v256h-256v-256h256v-128h128v-128h128v640h-128v128h-512v-128z" />
+<glyph unicode="&#xaf;" d="M0 1408v128h1024v-128h-1024z" />
+<glyph unicode="&#xb0;" d="M128 896v256h128v128h512v-128h128v-256h-128v-128h-512v128h-128zM384 896h256v256h-256v-256z" />
+<glyph unicode="&#xb1;" d="M128 0v128h768v-128h-768zM128 512v128h256v256h256v-256h256v-128h-256v-256h-256v256h-256z" />
+<glyph unicode="&#xb2;" d="M256 512v256h128v128h128v128h-256v128h384v-128h128v-128h-128v-128h-128v-128h256v-128h-512z" />
+<glyph unicode="&#xb3;" d="M256 512v128h256v128h-128v128h128v128h-256v128h384v-128h128v-128h-128v-128h128v-128h-128v-128h-384z" />
+<glyph unicode="&#xb4;" d="M256 1024v128h128v256h384v-128h-128v-128h-128v-128h-256z" />
+<glyph unicode="&#xb5;" d="M0 -256h128v1152h256v-768h256v-128h-256v-256h-128v-128h-256v128zM640 128v768h256v-768h128v-128h-256v128h-128z" />
+<glyph unicode="&#xb6;" d="M128 512v384h128v128h128v128h640v-128h-128v-1408h-256v640h-256v128h-128v128h-128z" />
+<glyph unicode="&#xb7;" d="M384 512v256h384v-256h-384z" />
+<glyph unicode="&#xb8;" d="M256 -256h256v128h-128v128h256v-128h128v-128h-128v-128h-384v128z" />
+<glyph unicode="&#xb9;" d="M256 896v128h128v128h256v-640h-256v384h-128z" />
+<glyph unicode="&#xba;" d="M128 256v128h768v-128h-768zM128 640v384h128v128h512v-128h128v-384h-128v-128h-512v128h-128zM384 640h256v384h-256v-384z" />
+<glyph unicode="&#xbb;" d="M0 0v128h128v128h128v128h-128v128h-128v128h256v-128h128v-128h128v-128h-128v-128h-128v-128h-256zM512 0v128h128v128h128v128h-128v128h-128v128h256v-128h128v-128h128v-128h-128v-128h-128v-128h-256z" />
+<glyph unicode="&#xbc;" d="M0 128v128h128v128h128v128h128v128h-256v384h-128v128h128v128h256v-640h128v128h128v128h128v128h256v-128h-128v-128h-128v-128h-128v-128h384v-640h-256v128h-384v256h-128v-128h-256zM384 256h128v128h-128v-128zM512 384h128v128h-128v-128zM640 128h128v128h-128 v-128z" />
+<glyph unicode="&#xbd;" d="M0 128v128h128v128h128v128h128v128h-256v384h-128v128h128v128h256v-640h128v128h128v128h128v128h256v-128h-128v-128h-128v-128h-128v-128h256v-128h128v-128h-128v-128h-128v-128h256v-128h-512v256h128v128h128v128h-384v-128h-128v-128h-256z" />
+<glyph unicode="&#xbe;" d="M0 128v128h128v128h128v128h128v128h-384v128h256v128h-128v128h128v128h-256v128h384v-128h128v-128h-128v-128h128v-128h128v128h128v128h256v-128h-128v-128h-128v-128h-128v-128h384v-640h-256v128h-384v256h-128v-128h-256zM384 256h128v128h-128v-128zM384 640h128 v128h-128v-128zM512 384h128v128h-128v-128zM640 128h128v128h-128v-128z" />
+<glyph unicode="&#xbf;" d="M128 0h128v128h128v256h256v-256h-128v-128h-128v-256h256v256h256v-256h-128v-128h-512v128h-128v256zM384 512v256h256v-256h-256z" />
+<glyph unicode="&#xc0;" d="M128 0v896h128v128h128v128h256v-128h128v-128h128v-896h-256v384h-256v-384h-256zM256 1408v128h256v-128h128v-128h-256v128h-128zM384 512h256v384h-256v-384z" />
+<glyph unicode="&#xc1;" d="M128 0v896h128v128h128v128h256v-128h128v-128h128v-896h-256v384h-256v-384h-256zM384 512h256v384h-256v-384zM384 1280v128h128v128h256v-128h-128v-128h-256z" />
+<glyph unicode="&#xc2;" d="M128 0v896h128v128h128v128h256v-128h128v-128h128v-896h-256v384h-256v-384h-256zM128 1280v128h128v128h128v128h256v-128h128v-128h128v-128h-256v128h-256v-128h-256zM384 512h256v384h-256v-384z" />
+<glyph unicode="&#xc3;" d="M128 0v896h128v128h128v128h256v-128h128v-128h128v-896h-256v384h-256v-384h-256zM128 1280v128h128v128h384v-128h128v128h256v-128h-128v-128h-384v128h-128v-128h-256zM384 512h256v384h-256v-384z" />
+<glyph unicode="&#xc4;" d="M128 0v896h128v128h128v128h256v-128h128v-128h128v-896h-256v384h-256v-384h-256zM128 1280v256h256v-256h-256zM384 512h256v384h-256v-384zM640 1280v256h256v-256h-256z" />
+<glyph unicode="&#xc5;" d="M128 0v896h128v128h128v128h256v-128h128v-128h128v-896h-256v384h-256v-384h-256zM128 1408v128h128v128h512v-128h128v-128h-128v-128h-512v128h-128zM384 512h256v384h-256v-384zM384 1408h256v128h-256v-128z" />
+<glyph unicode="&#xc6;" d="M128 0v896h128v128h128v128h640v-128h-256v-384h256v-128h-256v-384h256v-128h-512v384h-128v-384h-256zM384 512h128v384h-128v-384z" />
+<glyph unicode="&#xc7;" d="M128 128v896h128v128h512v-128h128v-256h-256v256h-256v-896h256v256h256v-256h-128v-128h-128v-128h128v-128h-128v-128h-384v128h256v128h-128v128h-128v128h-128z" />
+<glyph unicode="&#xc8;" d="M128 0v1152h768v-128h-512v-384h384v-128h-384v-384h512v-128h-768zM256 1408v128h256v-128h128v-128h-256v128h-128z" />
+<glyph unicode="&#xc9;" d="M128 0v1152h768v-128h-512v-384h384v-128h-384v-384h512v-128h-768zM384 1280v128h128v128h256v-128h-128v-128h-256z" />
+<glyph unicode="&#xca;" d="M128 0v1152h768v-128h-512v-384h384v-128h-384v-384h512v-128h-768zM128 1280v128h128v128h128v128h256v-128h128v-128h128v-128h-256v128h-256v-128h-256z" />
+<glyph unicode="&#xcb;" d="M128 0v1152h768v-128h-512v-384h384v-128h-384v-384h512v-128h-768zM128 1280v256h256v-256h-256zM640 1280v256h256v-256h-256z" />
+<glyph unicode="&#xcc;" d="M256 0v128h128v896h-128v128h512v-128h-128v-896h128v-128h-512zM256 1408v128h256v-128h128v-128h-256v128h-128z" />
+<glyph unicode="&#xcd;" d="M256 0v128h128v896h-128v128h512v-128h-128v-896h128v-128h-512zM384 1280v128h128v128h256v-128h-128v-128h-256z" />
+<glyph unicode="&#xce;" d="M128 1280v128h128v128h128v128h256v-128h128v-128h128v-128h-256v128h-256v-128h-256zM256 0v128h128v896h-128v128h512v-128h-128v-896h128v-128h-512z" />
+<glyph unicode="&#xcf;" d="M128 1280v256h256v-256h-256zM256 0v128h128v896h-128v128h512v-128h-128v-896h128v-128h-512zM640 1280v256h256v-256h-256z" />
+<glyph unicode="&#xd0;" d="M0 512v128h128v512h512v-128h128v-128h128v-640h-128v-128h-128v-128h-512v512h-128zM384 128h128v128h128v640h-128v128h-128v-384h128v-128h-128v-384z" />
+<glyph unicode="&#xd1;" d="M128 0v1152h256v-256h128v-128h128v-128h128v512h256v-1152h-256v384h-128v128h-128v128h-128v-640h-256zM128 1280v128h128v128h384v-128h128v128h256v-128h-128v-128h-384v128h-128v-128h-256z" />
+<glyph unicode="&#xd2;" d="M128 128v896h128v128h512v-128h128v-896h-128v-128h-512v128h-128zM256 1408v128h256v-128h128v-128h-256v128h-128zM384 128h256v896h-256v-896z" />
+<glyph unicode="&#xd3;" d="M128 128v896h128v128h512v-128h128v-896h-128v-128h-512v128h-128zM384 128h256v896h-256v-896zM384 1280v128h128v128h256v-128h-128v-128h-256z" />
+<glyph unicode="&#xd4;" d="M128 128v896h128v128h512v-128h128v-896h-128v-128h-512v128h-128zM128 1280v128h128v128h128v128h256v-128h128v-128h128v-128h-256v128h-256v-128h-256zM384 128h256v896h-256v-896z" />
+<glyph unicode="&#xd5;" d="M128 128v896h128v128h512v-128h128v-896h-128v-128h-512v128h-128zM128 1280v128h128v128h384v-128h128v128h256v-128h-128v-128h-384v128h-128v-128h-256zM384 128h256v896h-256v-896z" />
+<glyph unicode="&#xd6;" d="M128 128v896h128v128h512v-128h128v-896h-128v-128h-512v128h-128zM128 1280v256h256v-256h-256zM384 128h256v896h-256v-896zM640 1280v256h256v-256h-256z" />
+<glyph unicode="&#xd7;" d="M128 128v256h128v128h128v128h-128v128h-128v256h128v-128h128v-128h256v128h128v128h128v-256h-128v-128h-128v-128h128v-128h128v-256h-128v128h-128v128h-256v-128h-128v-128h-128z" />
+<glyph unicode="&#xd8;" d="M128 0v1024h128v128h640v-1024h-128v-128h-640zM384 128h256v384h-128v-256h-128v-128zM384 640h128v256h128v128h-256v-384z" />
+<glyph unicode="&#xd9;" d="M128 128v1024h256v-1024h256v1024h256v-1024h-128v-128h-512v128h-128zM256 1408v128h256v-128h128v-128h-256v128h-128z" />
+<glyph unicode="&#xda;" d="M128 128v1024h256v-1024h256v1024h256v-1024h-128v-128h-512v128h-128zM384 1280v128h128v128h256v-128h-128v-128h-256z" />
+<glyph unicode="&#xdb;" d="M128 128v1024h256v-1024h256v1024h256v-1024h-128v-128h-512v128h-128zM128 1280v128h128v128h128v128h256v-128h128v-128h128v-128h-256v128h-256v-128h-256z" />
+<glyph unicode="&#xdc;" d="M128 128v1024h256v-1024h256v1024h256v-1024h-128v-128h-512v128h-128zM128 1280v256h256v-256h-256zM640 1280v256h256v-256h-256z" />
+<glyph unicode="&#xdd;" d="M128 640v512h256v-512h256v512h256v-512h-128v-128h-128v-512h-256v512h-128v128h-128zM384 1280v128h128v128h256v-128h-128v-128h-256z" />
+<glyph unicode="&#xde;" d="M128 0v1152h256v-256h384v-128h128v-384h-128v-128h-384v-256h-256zM384 384h256v384h-256v-384z" />
+<glyph unicode="&#xdf;" d="M128 0v1024h128v128h384v-128h128v-384h128v-512h-128v-128h-256v128h128v512h-128v384h-128v-1024h-256z" />
+<glyph unicode="&#xe0;" d="M128 128v256h128v128h384v256h-384v128h512v-128h128v-768h-640v128h-128zM128 1280v128h384v-256h128v-128h-256v128h-128v128h-128zM384 128h256v256h-256v-256z" />
+<glyph unicode="&#xe1;" d="M128 128v256h128v128h384v256h-384v128h512v-128h128v-768h-640v128h-128zM384 128h256v256h-256v-256zM384 1024v128h128v256h384v-128h-128v-128h-128v-128h-256z" />
+<glyph unicode="&#xe2;" d="M128 128v256h128v128h384v256h-384v128h512v-128h128v-768h-640v128h-128zM128 1024v128h128v128h128v128h256v-128h128v-128h128v-128h-256v128h-256v-128h-256zM384 128h256v256h-256v-256z" />
+<glyph unicode="&#xe3;" d="M128 128v256h128v128h384v256h-384v128h512v-128h128v-768h-640v128h-128zM128 1024v128h128v128h384v-128h128v128h256v-128h-128v-128h-384v128h-128v-128h-256zM384 128h256v256h-256v-256z" />
+<glyph unicode="&#xe4;" d="M128 128v256h128v128h384v256h-384v128h512v-128h128v-768h-640v128h-128zM128 1024v256h256v-256h-256zM384 128h256v256h-256v-256zM640 1024v256h256v-256h-256z" />
+<glyph unicode="&#xe5;" d="M128 128v256h128v128h384v256h-384v128h512v-128h128v-768h-640v128h-128zM128 1152v128h128v128h512v-128h128v-128h-128v-128h-512v128h-128zM384 128h256v256h-256v-256zM384 1152h256v128h-256v-128z" />
+<glyph unicode="&#xe6;" d="M0 128v256h128v128h256v256h-256v128h256v-128h128v128h384v-128h128v-384h-384v-256h384v-128h-384v128h-128v-128h-384v128h-128zM256 128h128v256h-128v-256zM640 512h128v256h-128v-256z" />
+<glyph unicode="&#xe7;" d="M128 128v640h128v128h512v-128h128v-128h-256v128h-256v-640h256v128h256v-128h-128v-128h-128v-128h128v-128h-128v-128h-384v128h256v128h-128v128h-128v128h-128z" />
+<glyph unicode="&#xe8;" d="M128 128v640h128v128h512v-128h128v-384h-512v-256h384v-128h-512v128h-128zM128 1280v128h384v-256h128v-128h-256v128h-128v128h-128zM384 512h256v256h-256v-256z" />
+<glyph unicode="&#xe9;" d="M128 128v640h128v128h512v-128h128v-384h-512v-256h384v-128h-512v128h-128zM384 512h256v256h-256v-256zM384 1024v128h128v256h384v-128h-128v-128h-128v-128h-256z" />
+<glyph unicode="&#xea;" d="M128 128v640h128v128h512v-128h128v-384h-512v-256h384v-128h-512v128h-128zM128 1024v128h128v128h128v128h256v-128h128v-128h128v-128h-256v128h-256v-128h-256zM384 512h256v256h-256v-256z" />
+<glyph unicode="&#xeb;" d="M128 128v640h128v128h512v-128h128v-384h-512v-256h384v-128h-512v128h-128zM128 1024v256h256v-256h-256zM384 512h256v256h-256v-256zM640 1024v256h256v-256h-256z" />
+<glyph unicode="&#xec;" d="M128 0v128h256v640h-256v128h512v-768h256v-128h-768zM128 1280v128h384v-256h128v-128h-256v128h-128v128h-128z" />
+<glyph unicode="&#xed;" d="M128 0v128h256v640h-256v128h512v-768h256v-128h-768zM384 1024v128h128v256h384v-128h-128v-128h-128v-128h-256z" />
+<glyph unicode="&#xee;" d="M128 0v128h256v640h-256v128h512v-768h256v-128h-768zM128 1024v128h128v128h128v128h256v-128h128v-128h128v-128h-256v128h-256v-128h-256z" />
+<glyph unicode="&#xef;" d="M128 0v128h256v640h-256v128h512v-768h256v-128h-768zM128 1024v256h256v-256h-256zM640 1024v256h256v-256h-256z" />
+<glyph unicode="&#xf0;" d="M128 128v512h256v-512h256v512h-256v128h-256v128h256v-128h128v128h-128v128h-128v128h256v-128h128v-128h128v-128h128v-640h-128v-128h-512v128h-128zM640 1024v128h256v-128h-256z" />
+<glyph unicode="&#xf1;" d="M128 0v896h640v-128h128v-768h-256v768h-256v-768h-256zM128 1024v128h128v128h384v-128h128v128h256v-128h-128v-128h-384v128h-128v-128h-256z" />
+<glyph unicode="&#xf2;" d="M128 128v640h128v128h512v-128h128v-640h-128v-128h-512v128h-128zM128 1280v128h384v-256h128v-128h-256v128h-128v128h-128zM384 128h256v640h-256v-640z" />
+<glyph unicode="&#xf3;" d="M128 128v640h128v128h512v-128h128v-640h-128v-128h-512v128h-128zM384 128h256v640h-256v-640zM384 1024v128h128v256h384v-128h-128v-128h-128v-128h-256z" />
+<glyph unicode="&#xf4;" d="M128 128v640h128v128h512v-128h128v-640h-128v-128h-512v128h-128zM128 1024v128h128v128h128v128h256v-128h128v-128h128v-128h-256v128h-256v-128h-256zM384 128h256v640h-256v-640z" />
+<glyph unicode="&#xf5;" d="M128 128v640h128v128h512v-128h128v-640h-128v-128h-512v128h-128zM128 1024v128h128v128h384v-128h128v128h256v-128h-128v-128h-384v128h-128v-128h-256zM384 128h256v640h-256v-640z" />
+<glyph unicode="&#xf6;" d="M128 128v640h128v128h512v-128h128v-640h-128v-128h-512v128h-128zM128 1024v256h256v-256h-256zM384 128h256v640h-256v-640zM640 1024v256h256v-256h-256z" />
+<glyph unicode="&#xf7;" d="M128 512v128h768v-128h-768zM384 128v256h256v-256h-256zM384 768v256h256v-256h-256z" />
+<glyph unicode="&#xf8;" d="M128 0v768h128v128h640v-768h-128v-128h-640zM384 128h256v256h-128v-128h-128v-128zM384 512h128v128h128v128h-256v-256z" />
+<glyph unicode="&#xf9;" d="M128 128v768h256v-768h256v768h256v-896h-640v128h-128zM128 1280v128h384v-256h128v-128h-256v128h-128v128h-128z" />
+<glyph unicode="&#xfa;" d="M128 128v768h256v-768h256v768h256v-896h-640v128h-128zM384 1024v128h128v256h384v-128h-128v-128h-128v-128h-256z" />
+<glyph unicode="&#xfb;" d="M128 128v768h256v-768h256v768h256v-896h-640v128h-128zM128 1024v128h128v128h128v128h256v-128h128v-128h128v-128h-256v128h-256v-128h-256z" />
+<glyph unicode="&#xfc;" d="M128 128v768h256v-768h256v768h256v-896h-640v128h-128zM128 1024v256h256v-256h-256zM640 1024v256h256v-256h-256z" />
+<glyph unicode="&#xfd;" d="M0 -256h384v128h128v128h-256v128h-128v768h256v-768h256v768h256v-768h-128v-256h-128v-128h-128v-128h-512v128zM384 1024v128h128v256h384v-128h-128v-128h-128v-128h-256z" />
+<glyph unicode="&#xfe;" d="M128 -384v1536h256v-256h384v-128h128v-640h-128v-128h-384v-384h-256zM384 128h256v640h-256v-640z" />
+<glyph unicode="&#xff;" d="M0 -256h384v128h128v128h-256v128h-128v768h256v-768h256v768h256v-768h-128v-256h-128v-128h-128v-128h-512v128zM128 1024v256h256v-256h-256zM640 1024v256h256v-256h-256z" />
+<glyph unicode="&#x152;" d="M128 128v896h128v128h768v-128h-256v-384h256v-128h-256v-384h256v-128h-768v128h-128zM384 128h128v896h-128v-896z" />
+<glyph unicode="&#x153;" d="M0 128v640h128v128h256v-128h-128v-640h128v640h128v128h384v-128h128v-384h-384v-256h384v-128h-384v128h-115v-128h-397v128h-128zM640 512h128v256h-128v-256z" />
+<glyph unicode="&#x178;" d="M128 640v512h256v-512h256v512h256v-512h-128v-128h-128v-512h-256v512h-128v128h-128zM128 1280v256h256v-256h-256zM640 1280v256h256v-256h-256z" />
+<glyph unicode="&#x2c6;" d="M128 1280v128h128v128h512v-128h128v-128h-256v128h-256v-128h-256z" />
+<glyph unicode="&#x2dc;" d="M128 1280v128h128v128h384v-128h128v128h256v-128h-128v-128h-384v128h-128v-128h-256z" />
+<glyph unicode="&#x2000;" horiz-adv-x="832" />
+<glyph unicode="&#x2001;" horiz-adv-x="1664" />
+<glyph unicode="&#x2002;" horiz-adv-x="832" />
+<glyph unicode="&#x2003;" horiz-adv-x="1664" />
+<glyph unicode="&#x2004;" horiz-adv-x="550" />
+<glyph unicode="&#x2005;" horiz-adv-x="409" />
+<glyph unicode="&#x2006;" horiz-adv-x="268" />
+<glyph unicode="&#x2007;" horiz-adv-x="268" />
+<glyph unicode="&#x2008;" horiz-adv-x="204" />
+<glyph unicode="&#x2009;" horiz-adv-x="332" />
+<glyph unicode="&#x200a;" horiz-adv-x="89" />
+<glyph unicode="&#x2010;" d="M128 512v128h768v-128h-768z" />
+<glyph unicode="&#x2011;" d="M128 512v128h768v-128h-768z" />
+<glyph unicode="&#x2012;" d="M128 512v128h768v-128h-768z" />
+<glyph unicode="&#x2013;" d="M256 512v128h512v-128h-512z" />
+<glyph unicode="&#x2014;" d="M0 512v128h1024v-128h-1024z" />
+<glyph unicode="&#x2018;" d="M384 640v384h128v128h256v-128h-128v-128h128v-256h-384z" />
+<glyph unicode="&#x2019;" d="M384 640v128h128v128h-128v256h384v-384h-128v-128h-256z" />
+<glyph unicode="&#x201a;" d="M384 0v256h384v-384h-128v-128h-256v128h128v128h-128z" />
+<glyph unicode="&#x201c;" d="M0 640v384h128v128h256v-128h-128v-128h128v-256h-384zM512 640v384h128v128h256v-128h-128v-128h128v-256h-384z" />
+<glyph unicode="&#x201d;" d="M128 640v128h128v128h-128v256h384v-384h-128v-128h-256zM640 640v128h128v128h-128v256h384v-384h-128v-128h-256z" />
+<glyph unicode="&#x201e;" d="M128 0v256h384v-384h-128v-128h-256v128h128v128h-128zM640 0v256h384v-384h-128v-128h-256v128h128v128h-128z" />
+<glyph unicode="&#x2022;" d="M256 384v256h128v128h256v-128h128v-256h-128v-128h-256v128h-128z" />
+<glyph unicode="&#x2026;" d="M0 0v256h256v-256h-256zM384 0v256h256v-256h-256zM768 0v256h256v-256h-256z" />
+<glyph unicode="&#x202f;" horiz-adv-x="332" />
+<glyph unicode="&#x2039;" d="M256 256v128h128v128h128v128h256v-128h-128v-128h-128v-128h128v-128h128v-128h-256v128h-128v128h-128z" />
+<glyph unicode="&#x203a;" d="M256 0v128h128v128h128v128h-128v128h-128v128h256v-128h128v-128h128v-128h-128v-128h-128v-128h-256z" />
+<glyph unicode="&#x205f;" horiz-adv-x="409" />
+<glyph unicode="&#x20ac;" d="M0 384v128h128v128h-128v128h128v256h128v128h512v-128h128v-128h-256v128h-256v-256h384v-128h-384v-128h384v-128h-384v-256h256v128h256v-128h-128v-128h-512v128h-128v256h-128z" />
+<glyph unicode="&#x2122;" d="M0 1024v128h640v-128h128v128h256v-384h-256v128h-128v-128h-128v256h-128v-256h-256v256h-128z" />
+<glyph unicode="&#xe000;" horiz-adv-x="895" d="M0 895h895v-895h-895v895z" />
+<glyph unicode="&#xfb01;" d="M0 640v128h128v256h128v128h512v-128h128v-128h-256v128h-256v-256h512v-640h128v-128h-512v128h128v512h-256v-640h-256v640h-128z" />
+<glyph unicode="&#xfb02;" d="M0 512v128h128v384h128v128h640v-1024h128v-128h-512v128h128v384h-256v-512h-256v512h-128zM384 640h256v384h-256v-384z" />
+<glyph unicode="&#xfb03;" d="M0 0v1024h128v128h768v-128h128v-128h-256v128h-128v-256h384v-768h-256v640h-128v-640h-256v640h-128v-640h-256zM256 768h128v256h-128v-256z" />
+<glyph unicode="&#xfb04;" d="M0 0v1024h128v128h896v-1152h-256v640h-128v-640h-256v640h-128v-640h-256zM256 768h128v256h-128v-256zM640 768h128v256h-128v-256z" />
+</font>
+</defs></svg> \ No newline at end of file
diff --git a/fonts/fsex300-webfont.ttf b/fonts/fsex300-webfont.ttf
new file mode 100644
index 0000000..1acda72
--- /dev/null
+++ b/fonts/fsex300-webfont.ttf
Binary files differ
diff --git a/fonts/fsex300-webfont.woff b/fonts/fsex300-webfont.woff
new file mode 100644
index 0000000..4fb4f6c
--- /dev/null
+++ b/fonts/fsex300-webfont.woff
Binary files differ
diff --git a/index.html b/index.html
index 0626b4b..1e44854 100644
--- a/index.html
+++ b/index.html
@@ -1,99 +1,202 @@
-
+<link rel="stylesheet" href="css/sally.css" type="text/css" charset="utf-8" />
+<link rel="stylesheet" href="css/ak.css" type="text/css" charset="utf-8" />
<style type="text/css">
-#canvas { white-space: pre; font-family: Menlo, monospace; cursor: crosshair; }
-.b { background: black; color: transparent }
+#rapper { white-space: pre; font-family: Menlo, monospace; cursor: crosshair; }
+/*
+body.grid span { border-right: 1px solid #444; border-top: 1px solid #444; border-bottom: 1px solid #444; }
+ */
+span.selected { border-bottom: #fff; }
</style>
+<body class="grid">
-<div id="canvas"></div>
-
-<select id="color">
-<option value="15" selected>light gray</option>
-<option value="1">black</option>
-<option value="2">blue</option>
-<option value="3">green</option>
-<option value="5">red</option>
-<option value="6">magenta</option>
-<option value="7">orange</option>
-<option value="10">cyan</option>
-</select>
+<div id="canvas_rapper" class="rapper"></div>
+<div id="brush_rapper" class="rapper"></div>
+<div id="palette_rapper" class="rapper"></div>
<script>
var contentType = 'text/plain;charset=utf-8'
-var fg = "15", bg = "0"
var cols = 80
var rows = 24
var dragging = false
var erasing = false
+var canvas, tools, palette, brush, colors, mode
+
+var color_names = ("white black dark-blue green red dark-red purple orange" +
+ "yellow lime dark-cyan cyan blue magenta dark-gray light-gray").split(" ");
+var letters = "abcdefghijklmnop";
+var colors = {}
+color_names.forEach(function(name, i){ colors[name] = i })
+
function init () {
build()
bind()
}
function build () {
- var body = ""
- for (var i = 0; i < rows; i++) {
- for (var j = 0; j < cols; j++) {
- body += "<span y='" + i + "' x='" + j + "'> </span>"
- }
- body += "<br>"
- }
- canvas.innerHTML = body
+ canvas = new Matrix (rows, cols, function(x,y){
+ var lex = new Lex (x,y)
+ if (x > y || y > x + 20 || x > y / 4 + 10) {
+ lex.clear()
+ }
+ else {
+ lex.bg = x+y*y
+ lex.fg = (x+y)%2
+ lex.char = ":"
+ }
+ lex.build()
+ return lex
+ })
+ brush = new Matrix (5, 5, function(x,y){
+ var lex = new Lex (x,y)
+ lex.build()
+ return lex
+ })
+ palette = new Matrix (2, 32, function(x,y){
+ var lex = new Lex (x,y)
+ lex.bg = y>>1
+ lex.build()
+ return lex
+ })
+ canvas.build(canvas_rapper)
+ brush.build(brush_rapper)
+ palette.build(palette_rapper)
}
function bind () {
- aa(document.querySelectorAll("span")).forEach(function(span){
- span.addEventListener('mousedown', function(e){
+ canvas.forEach(function(lex, x, y){
+ lex.span.addEventListener('mousedown', function(e){
e.preventDefault()
dragging = true
- erasing = !! (span.className == "b")
- span.className = erasing ? "" : "b"
- span.innerHTML = erasing ? " " : "b"
+ erasing = e.which == "3"
+ draw(lex, x, y, erasing)
})
- span.addEventListener("mousemove", function(){
- if (dragging) {
- span.className = erasing ? "" : "b"
- span.innerHTML = erasing ? " " : "b"
- }
+ lex.span.addEventListener("mousemove", function(){
+ dragging && draw(lex, x, y, erasing)
})
})
+ palette.forEach(function(lex, x, y){
+ lex.span.addEventListener('mousedown', function(e){
+ e.preventDefault()
+ dragging = true
+ erasing = e.which == "3"
+ brush.fill(lex.fg, lex.bg)
+ })
+ })
window.addEventListener('mouseup', function(){
dragging = erasing = false
})
- color.addEventListener('change', function(){
- fg = bg = color.value
- var c = document.querySelector("option:checked").innerHTML
- cssRule(".b", "background: " + c)
- })
}
-function aa (alike) {
- return Array.prototype.slice.call(alike)
+
+function Lex (x,y) {
+ this.x = x
+ this.y = y
+ this.span = document.createElement("span")
+ this.fg = colors.white
+ this.bg = colors.black
+ this.char = " "
+}
+Lex.prototype.build = function(){
+ this.span.className = this.css()
+ this.span.innerHTML = this.html()
+}
+Lex.prototype.css = function(){
+ return "f" + letters[this.fg&15] + "b" + letters[this.bg&15]
+}
+Lex.prototype.html = function(){
+ return this.char == " " ? "&nbsp;" : this.char
+}
+Lex.prototype.irc = function(){
+ if (this.bg == 1 && this.fg == 0) {
+// return "\\x03" + "," + (this.bg&15) + this.char
+ return this.char
+ }
+ else {
+ return "\\x03" + (this.fg&15) + "," + (this.bg&15) + this.char
+ }
+}
+Lex.prototype.clone = function (lex){
+ this.fg = lex.fg
+ this.bg = lex.bg
+ this.char = lex.char
+ this.build()
+}
+Lex.prototype.eq = function(lex){
+ return lex && this.fg == lex.fg && this.bg == lex.fg && this.char == lex.char
+}
+Lex.prototype.clear = function(){
+ this.bg=1
+ this.fg=0
+ this.char = " "
+}
+
+function Matrix (w,h,f){
+ this.w = w, this.h = h
+ var aa = new Array (w)
+ for (var i = 0; i < w; i++) {
+ aa[i] = new Array (h)
+ for (var j = 0; j < h; j++) {
+ aa[i][j] = f(i,j)
+ }
+ }
+ this.aa = h == 1 ? aa[0] : aa
+}
+Matrix.prototype.forEach = function(f){
+ this.aa.forEach(function(row, y){
+ row.forEach(function(lex, x){
+ f(lex, x, y)
+ })
+ })
+}
+Matrix.prototype.clear = function(){
+ this.forEach(function(lex,x,y){ lex.clear() })
+}
+Matrix.prototype.fill = function(fg,bg){
+ this.forEach(function(lex,x,y){
+ lex.fg = fg
+ lex.bg = bg
+ lex.build()
+ })
+}
+Matrix.prototype.build = function(rapper){
+ this.aa.forEach(function(row, y){
+ var div = document.createElement("div")
+ row.forEach(function(lex, x) {
+ div.appendChild(lex.span)
+ })
+ rapper.appendChild( div )
+ })
+// rapper.appendChild(frag)
+}
+
+function draw (lex, x, y, erasing) {
+ stamp (canvas, brush, x, y, erasing)
+}
+function stamp (canvas, brush, x, y, erasing) {
+ hh = brush.w/2|0
+ brush.forEach(function(lex, s, t){
+ s += x-hh
+ t += y-hh
+ if (s >= 0 || s < canvas.w || t >= 0 && t < canvas.h) {
+ canvas.aa[t][s].clone(lex)
+ }
+ })
}
function ascii () {
- var lines = []
- canvas.innerText.split("\n").forEach(function(row){
- if (row.indexOf("b") == -1) return
- var last_c = " "
- var line = ""
- row.replace(/\s+$/,"").split("").forEach(function(c){
- if (c == last_c) {
- line += c
- }
- else {
- if (c == "b") {
- line += "\\x03" + fg + "," + bg + c
- }
- else {
- line += "\\x03" + c
- }
- last_c = c
- }
- })
- if (last_c == "b") {
- line += "\\x03"
- }
- lines.push(line)
- })
+ var lines = canvas.aa.map(function(row, y){
+ var last, line = ""
+ row.forEach(function(lex, x) {
+ if (lex.eq(last)) {
+ line += lex.char
+ }
+ else {
+ if (x > 0 && last && (last.bg != 1 || last.fg != 0)) line += "\\x03"
+ line += lex.irc()
+ last = lex
+ }
+ })
+ return line.replace(/\s+$/,"")
+ }).filter(function(line){ return line.length > 0 })
var txt = '/exec -out printf "' + lines.join("\\n") + '"\n'
return txt
}