commit 87b41e1aba93c29f0ea378fbd923a3ebf42ce974
parent a284a382ea5026c456e3cf52834c525adf619fbc
Author: Martin Mitas <mity@morous.org>
Date: Fri, 7 Oct 2016 20:39:42 +0200
Implement entities.
Diffstat:
7 files changed, 2436 insertions(+), 27 deletions(-)
diff --git a/README.md b/README.md
@@ -98,7 +98,7 @@ more or less forms our to do list.
- **Inlines:**
- [x] 6.1 Backslash escapes
- - [ ] 6.2 Entity and numeric character references
+ - [x] 6.2 Entity and numeric character references
- [x] 6.3 Code spans
- [ ] 6.4 Emphasis and strong emphasis
- [ ] 6.5 Links
diff --git a/md2html/CMakeLists.txt b/md2html/CMakeLists.txt
@@ -1,5 +1,5 @@
include_directories("${PROJECT_SOURCE_DIR}/md4c")
-add_executable(md2html cmdline.c cmdline.h md2html.c)
+add_executable(md2html cmdline.c cmdline.h entity.c entity.h md2html.c)
target_link_libraries(md2html md4c)
diff --git a/md2html/entity.c b/md2html/entity.c
@@ -0,0 +1,2170 @@
+
+#include "entity.h"
+#include <string.h>
+
+
+struct entity {
+ const char* verbatim;
+ unsigned char utf8_bytes[8];
+};
+
+
+/* The table is generated from https://html.spec.whatwg.org/entities.json */
+static const struct entity entity_table[] = {
+ { "Æ", { 195, 134, 0 } },
+ { "&", { 38, 0 } },
+ { "Á", { 195, 129, 0 } },
+ { "Ă", { 196, 130, 0 } },
+ { "Â", { 195, 130, 0 } },
+ { "А", { 208, 144, 0 } },
+ { "𝔄", { 240, 157, 148, 132, 0 } },
+ { "À", { 195, 128, 0 } },
+ { "Α", { 206, 145, 0 } },
+ { "Ā", { 196, 128, 0 } },
+ { "⩓", { 226, 169, 147, 0 } },
+ { "Ą", { 196, 132, 0 } },
+ { "𝔸", { 240, 157, 148, 184, 0 } },
+ { "⁡", { 226, 129, 161, 0 } },
+ { "Å", { 195, 133, 0 } },
+ { "𝒜", { 240, 157, 146, 156, 0 } },
+ { "≔", { 226, 137, 148, 0 } },
+ { "Ã", { 195, 131, 0 } },
+ { "Ä", { 195, 132, 0 } },
+ { "∖", { 226, 136, 150, 0 } },
+ { "⫧", { 226, 171, 167, 0 } },
+ { "⌆", { 226, 140, 134, 0 } },
+ { "Б", { 208, 145, 0 } },
+ { "∵", { 226, 136, 181, 0 } },
+ { "ℬ", { 226, 132, 172, 0 } },
+ { "Β", { 206, 146, 0 } },
+ { "𝔅", { 240, 157, 148, 133, 0 } },
+ { "𝔹", { 240, 157, 148, 185, 0 } },
+ { "˘", { 203, 152, 0 } },
+ { "ℬ", { 226, 132, 172, 0 } },
+ { "≎", { 226, 137, 142, 0 } },
+ { "Ч", { 208, 167, 0 } },
+ { "©", { 194, 169, 0 } },
+ { "Ć", { 196, 134, 0 } },
+ { "⋒", { 226, 139, 146, 0 } },
+ { "ⅅ", { 226, 133, 133, 0 } },
+ { "ℭ", { 226, 132, 173, 0 } },
+ { "Č", { 196, 140, 0 } },
+ { "Ç", { 195, 135, 0 } },
+ { "Ĉ", { 196, 136, 0 } },
+ { "∰", { 226, 136, 176, 0 } },
+ { "Ċ", { 196, 138, 0 } },
+ { "¸", { 194, 184, 0 } },
+ { "·", { 194, 183, 0 } },
+ { "ℭ", { 226, 132, 173, 0 } },
+ { "Χ", { 206, 167, 0 } },
+ { "⊙", { 226, 138, 153, 0 } },
+ { "⊖", { 226, 138, 150, 0 } },
+ { "⊕", { 226, 138, 149, 0 } },
+ { "⊗", { 226, 138, 151, 0 } },
+ { "∲", { 226, 136, 178, 0 } },
+ { "”", { 226, 128, 157, 0 } },
+ { "’", { 226, 128, 153, 0 } },
+ { "∷", { 226, 136, 183, 0 } },
+ { "⩴", { 226, 169, 180, 0 } },
+ { "≡", { 226, 137, 161, 0 } },
+ { "∯", { 226, 136, 175, 0 } },
+ { "∮", { 226, 136, 174, 0 } },
+ { "ℂ", { 226, 132, 130, 0 } },
+ { "∐", { 226, 136, 144, 0 } },
+ { "∳", { 226, 136, 179, 0 } },
+ { "⨯", { 226, 168, 175, 0 } },
+ { "𝒞", { 240, 157, 146, 158, 0 } },
+ { "⋓", { 226, 139, 147, 0 } },
+ { "≍", { 226, 137, 141, 0 } },
+ { "ⅅ", { 226, 133, 133, 0 } },
+ { "⤑", { 226, 164, 145, 0 } },
+ { "Ђ", { 208, 130, 0 } },
+ { "Ѕ", { 208, 133, 0 } },
+ { "Џ", { 208, 143, 0 } },
+ { "‡", { 226, 128, 161, 0 } },
+ { "↡", { 226, 134, 161, 0 } },
+ { "⫤", { 226, 171, 164, 0 } },
+ { "Ď", { 196, 142, 0 } },
+ { "Д", { 208, 148, 0 } },
+ { "∇", { 226, 136, 135, 0 } },
+ { "Δ", { 206, 148, 0 } },
+ { "𝔇", { 240, 157, 148, 135, 0 } },
+ { "´", { 194, 180, 0 } },
+ { "˙", { 203, 153, 0 } },
+ { "˝", { 203, 157, 0 } },
+ { "`", { 96, 0 } },
+ { "˜", { 203, 156, 0 } },
+ { "⋄", { 226, 139, 132, 0 } },
+ { "ⅆ", { 226, 133, 134, 0 } },
+ { "𝔻", { 240, 157, 148, 187, 0 } },
+ { "¨", { 194, 168, 0 } },
+ { "⃜", { 226, 131, 156, 0 } },
+ { "≐", { 226, 137, 144, 0 } },
+ { "∯", { 226, 136, 175, 0 } },
+ { "¨", { 194, 168, 0 } },
+ { "⇓", { 226, 135, 147, 0 } },
+ { "⇐", { 226, 135, 144, 0 } },
+ { "⇔", { 226, 135, 148, 0 } },
+ { "⫤", { 226, 171, 164, 0 } },
+ { "⟸", { 226, 159, 184, 0 } },
+ { "⟺", { 226, 159, 186, 0 } },
+ { "⟹", { 226, 159, 185, 0 } },
+ { "⇒", { 226, 135, 146, 0 } },
+ { "⊨", { 226, 138, 168, 0 } },
+ { "⇑", { 226, 135, 145, 0 } },
+ { "⇕", { 226, 135, 149, 0 } },
+ { "∥", { 226, 136, 165, 0 } },
+ { "↓", { 226, 134, 147, 0 } },
+ { "⤓", { 226, 164, 147, 0 } },
+ { "⇵", { 226, 135, 181, 0 } },
+ { "̑", { 204, 145, 0 } },
+ { "⥐", { 226, 165, 144, 0 } },
+ { "⥞", { 226, 165, 158, 0 } },
+ { "↽", { 226, 134, 189, 0 } },
+ { "⥖", { 226, 165, 150, 0 } },
+ { "⥟", { 226, 165, 159, 0 } },
+ { "⇁", { 226, 135, 129, 0 } },
+ { "⥗", { 226, 165, 151, 0 } },
+ { "⊤", { 226, 138, 164, 0 } },
+ { "↧", { 226, 134, 167, 0 } },
+ { "⇓", { 226, 135, 147, 0 } },
+ { "𝒟", { 240, 157, 146, 159, 0 } },
+ { "Đ", { 196, 144, 0 } },
+ { "Ŋ", { 197, 138, 0 } },
+ { "Ð", { 195, 144, 0 } },
+ { "É", { 195, 137, 0 } },
+ { "Ě", { 196, 154, 0 } },
+ { "Ê", { 195, 138, 0 } },
+ { "Э", { 208, 173, 0 } },
+ { "Ė", { 196, 150, 0 } },
+ { "𝔈", { 240, 157, 148, 136, 0 } },
+ { "È", { 195, 136, 0 } },
+ { "∈", { 226, 136, 136, 0 } },
+ { "Ē", { 196, 146, 0 } },
+ { "◻", { 226, 151, 187, 0 } },
+ { "▫", { 226, 150, 171, 0 } },
+ { "Ę", { 196, 152, 0 } },
+ { "𝔼", { 240, 157, 148, 188, 0 } },
+ { "Ε", { 206, 149, 0 } },
+ { "⩵", { 226, 169, 181, 0 } },
+ { "≂", { 226, 137, 130, 0 } },
+ { "⇌", { 226, 135, 140, 0 } },
+ { "ℰ", { 226, 132, 176, 0 } },
+ { "⩳", { 226, 169, 179, 0 } },
+ { "Η", { 206, 151, 0 } },
+ { "Ë", { 195, 139, 0 } },
+ { "∃", { 226, 136, 131, 0 } },
+ { "ⅇ", { 226, 133, 135, 0 } },
+ { "Ф", { 208, 164, 0 } },
+ { "𝔉", { 240, 157, 148, 137, 0 } },
+ { "◼", { 226, 151, 188, 0 } },
+ { "▪", { 226, 150, 170, 0 } },
+ { "𝔽", { 240, 157, 148, 189, 0 } },
+ { "∀", { 226, 136, 128, 0 } },
+ { "ℱ", { 226, 132, 177, 0 } },
+ { "ℱ", { 226, 132, 177, 0 } },
+ { "Ѓ", { 208, 131, 0 } },
+ { ">", { 62, 0 } },
+ { "Γ", { 206, 147, 0 } },
+ { "Ϝ", { 207, 156, 0 } },
+ { "Ğ", { 196, 158, 0 } },
+ { "Ģ", { 196, 162, 0 } },
+ { "Ĝ", { 196, 156, 0 } },
+ { "Г", { 208, 147, 0 } },
+ { "Ġ", { 196, 160, 0 } },
+ { "𝔊", { 240, 157, 148, 138, 0 } },
+ { "⋙", { 226, 139, 153, 0 } },
+ { "𝔾", { 240, 157, 148, 190, 0 } },
+ { "≥", { 226, 137, 165, 0 } },
+ { "⋛", { 226, 139, 155, 0 } },
+ { "≧", { 226, 137, 167, 0 } },
+ { "⪢", { 226, 170, 162, 0 } },
+ { "≷", { 226, 137, 183, 0 } },
+ { "⩾", { 226, 169, 190, 0 } },
+ { "≳", { 226, 137, 179, 0 } },
+ { "𝒢", { 240, 157, 146, 162, 0 } },
+ { "≫", { 226, 137, 171, 0 } },
+ { "Ъ", { 208, 170, 0 } },
+ { "ˇ", { 203, 135, 0 } },
+ { "^", { 94, 0 } },
+ { "Ĥ", { 196, 164, 0 } },
+ { "ℌ", { 226, 132, 140, 0 } },
+ { "ℋ", { 226, 132, 139, 0 } },
+ { "ℍ", { 226, 132, 141, 0 } },
+ { "─", { 226, 148, 128, 0 } },
+ { "ℋ", { 226, 132, 139, 0 } },
+ { "Ħ", { 196, 166, 0 } },
+ { "≎", { 226, 137, 142, 0 } },
+ { "≏", { 226, 137, 143, 0 } },
+ { "Е", { 208, 149, 0 } },
+ { "IJ", { 196, 178, 0 } },
+ { "Ё", { 208, 129, 0 } },
+ { "Í", { 195, 141, 0 } },
+ { "Î", { 195, 142, 0 } },
+ { "И", { 208, 152, 0 } },
+ { "İ", { 196, 176, 0 } },
+ { "ℑ", { 226, 132, 145, 0 } },
+ { "Ì", { 195, 140, 0 } },
+ { "ℑ", { 226, 132, 145, 0 } },
+ { "Ī", { 196, 170, 0 } },
+ { "ⅈ", { 226, 133, 136, 0 } },
+ { "⇒", { 226, 135, 146, 0 } },
+ { "∬", { 226, 136, 172, 0 } },
+ { "∫", { 226, 136, 171, 0 } },
+ { "⋂", { 226, 139, 130, 0 } },
+ { "⁣", { 226, 129, 163, 0 } },
+ { "⁢", { 226, 129, 162, 0 } },
+ { "Į", { 196, 174, 0 } },
+ { "𝕀", { 240, 157, 149, 128, 0 } },
+ { "Ι", { 206, 153, 0 } },
+ { "ℐ", { 226, 132, 144, 0 } },
+ { "Ĩ", { 196, 168, 0 } },
+ { "І", { 208, 134, 0 } },
+ { "Ï", { 195, 143, 0 } },
+ { "Ĵ", { 196, 180, 0 } },
+ { "Й", { 208, 153, 0 } },
+ { "𝔍", { 240, 157, 148, 141, 0 } },
+ { "𝕁", { 240, 157, 149, 129, 0 } },
+ { "𝒥", { 240, 157, 146, 165, 0 } },
+ { "Ј", { 208, 136, 0 } },
+ { "Є", { 208, 132, 0 } },
+ { "Х", { 208, 165, 0 } },
+ { "Ќ", { 208, 140, 0 } },
+ { "Κ", { 206, 154, 0 } },
+ { "Ķ", { 196, 182, 0 } },
+ { "К", { 208, 154, 0 } },
+ { "𝔎", { 240, 157, 148, 142, 0 } },
+ { "𝕂", { 240, 157, 149, 130, 0 } },
+ { "𝒦", { 240, 157, 146, 166, 0 } },
+ { "Љ", { 208, 137, 0 } },
+ { "<", { 60, 0 } },
+ { "Ĺ", { 196, 185, 0 } },
+ { "Λ", { 206, 155, 0 } },
+ { "⟪", { 226, 159, 170, 0 } },
+ { "ℒ", { 226, 132, 146, 0 } },
+ { "↞", { 226, 134, 158, 0 } },
+ { "Ľ", { 196, 189, 0 } },
+ { "Ļ", { 196, 187, 0 } },
+ { "Л", { 208, 155, 0 } },
+ { "⟨", { 226, 159, 168, 0 } },
+ { "←", { 226, 134, 144, 0 } },
+ { "⇤", { 226, 135, 164, 0 } },
+ { "⇆", { 226, 135, 134, 0 } },
+ { "⌈", { 226, 140, 136, 0 } },
+ { "⟦", { 226, 159, 166, 0 } },
+ { "⥡", { 226, 165, 161, 0 } },
+ { "⇃", { 226, 135, 131, 0 } },
+ { "⥙", { 226, 165, 153, 0 } },
+ { "⌊", { 226, 140, 138, 0 } },
+ { "↔", { 226, 134, 148, 0 } },
+ { "⥎", { 226, 165, 142, 0 } },
+ { "⊣", { 226, 138, 163, 0 } },
+ { "↤", { 226, 134, 164, 0 } },
+ { "⥚", { 226, 165, 154, 0 } },
+ { "⊲", { 226, 138, 178, 0 } },
+ { "⧏", { 226, 167, 143, 0 } },
+ { "⊴", { 226, 138, 180, 0 } },
+ { "⥑", { 226, 165, 145, 0 } },
+ { "⥠", { 226, 165, 160, 0 } },
+ { "↿", { 226, 134, 191, 0 } },
+ { "⥘", { 226, 165, 152, 0 } },
+ { "↼", { 226, 134, 188, 0 } },
+ { "⥒", { 226, 165, 146, 0 } },
+ { "⇐", { 226, 135, 144, 0 } },
+ { "⇔", { 226, 135, 148, 0 } },
+ { "⋚", { 226, 139, 154, 0 } },
+ { "≦", { 226, 137, 166, 0 } },
+ { "≶", { 226, 137, 182, 0 } },
+ { "⪡", { 226, 170, 161, 0 } },
+ { "⩽", { 226, 169, 189, 0 } },
+ { "≲", { 226, 137, 178, 0 } },
+ { "𝔏", { 240, 157, 148, 143, 0 } },
+ { "⋘", { 226, 139, 152, 0 } },
+ { "⇚", { 226, 135, 154, 0 } },
+ { "Ŀ", { 196, 191, 0 } },
+ { "⟵", { 226, 159, 181, 0 } },
+ { "⟷", { 226, 159, 183, 0 } },
+ { "⟶", { 226, 159, 182, 0 } },
+ { "⟸", { 226, 159, 184, 0 } },
+ { "⟺", { 226, 159, 186, 0 } },
+ { "⟹", { 226, 159, 185, 0 } },
+ { "𝕃", { 240, 157, 149, 131, 0 } },
+ { "↙", { 226, 134, 153, 0 } },
+ { "↘", { 226, 134, 152, 0 } },
+ { "ℒ", { 226, 132, 146, 0 } },
+ { "↰", { 226, 134, 176, 0 } },
+ { "Ł", { 197, 129, 0 } },
+ { "≪", { 226, 137, 170, 0 } },
+ { "⤅", { 226, 164, 133, 0 } },
+ { "М", { 208, 156, 0 } },
+ { " ", { 226, 129, 159, 0 } },
+ { "ℳ", { 226, 132, 179, 0 } },
+ { "𝔐", { 240, 157, 148, 144, 0 } },
+ { "∓", { 226, 136, 147, 0 } },
+ { "𝕄", { 240, 157, 149, 132, 0 } },
+ { "ℳ", { 226, 132, 179, 0 } },
+ { "Μ", { 206, 156, 0 } },
+ { "Њ", { 208, 138, 0 } },
+ { "Ń", { 197, 131, 0 } },
+ { "Ň", { 197, 135, 0 } },
+ { "Ņ", { 197, 133, 0 } },
+ { "Н", { 208, 157, 0 } },
+ { "​", { 226, 128, 139, 0 } },
+ { "​", { 226, 128, 139, 0 } },
+ { "​", { 226, 128, 139, 0 } },
+ { "​", { 226, 128, 139, 0 } },
+ { "≫", { 226, 137, 171, 0 } },
+ { "≪", { 226, 137, 170, 0 } },
+ { "
", { 10, 0 } },
+ { "𝔑", { 240, 157, 148, 145, 0 } },
+ { "⁠", { 226, 129, 160, 0 } },
+ { " ", { 194, 160, 0 } },
+ { "ℕ", { 226, 132, 149, 0 } },
+ { "⫬", { 226, 171, 172, 0 } },
+ { "≢", { 226, 137, 162, 0 } },
+ { "≭", { 226, 137, 173, 0 } },
+ { "∦", { 226, 136, 166, 0 } },
+ { "∉", { 226, 136, 137, 0 } },
+ { "≠", { 226, 137, 160, 0 } },
+ { "≂̸", { 226, 137, 130, 204, 184, 0 } },
+ { "∄", { 226, 136, 132, 0 } },
+ { "≯", { 226, 137, 175, 0 } },
+ { "≱", { 226, 137, 177, 0 } },
+ { "≧̸", { 226, 137, 167, 204, 184, 0 } },
+ { "≫̸", { 226, 137, 171, 204, 184, 0 } },
+ { "≹", { 226, 137, 185, 0 } },
+ { "⩾̸", { 226, 169, 190, 204, 184, 0 } },
+ { "≵", { 226, 137, 181, 0 } },
+ { "≎̸", { 226, 137, 142, 204, 184, 0 } },
+ { "≏̸", { 226, 137, 143, 204, 184, 0 } },
+ { "⋪", { 226, 139, 170, 0 } },
+ { "⧏̸", { 226, 167, 143, 204, 184, 0 } },
+ { "⋬", { 226, 139, 172, 0 } },
+ { "≮", { 226, 137, 174, 0 } },
+ { "≰", { 226, 137, 176, 0 } },
+ { "≸", { 226, 137, 184, 0 } },
+ { "≪̸", { 226, 137, 170, 204, 184, 0 } },
+ { "⩽̸", { 226, 169, 189, 204, 184, 0 } },
+ { "≴", { 226, 137, 180, 0 } },
+ { "⪢̸", { 226, 170, 162, 204, 184, 0 } },
+ { "⪡̸", { 226, 170, 161, 204, 184, 0 } },
+ { "⊀", { 226, 138, 128, 0 } },
+ { "⪯̸", { 226, 170, 175, 204, 184, 0 } },
+ { "⋠", { 226, 139, 160, 0 } },
+ { "∌", { 226, 136, 140, 0 } },
+ { "⋫", { 226, 139, 171, 0 } },
+ { "⧐̸", { 226, 167, 144, 204, 184, 0 } },
+ { "⋭", { 226, 139, 173, 0 } },
+ { "⊏̸", { 226, 138, 143, 204, 184, 0 } },
+ { "⋢", { 226, 139, 162, 0 } },
+ { "⊐̸", { 226, 138, 144, 204, 184, 0 } },
+ { "⋣", { 226, 139, 163, 0 } },
+ { "⊂⃒", { 226, 138, 130, 226, 131, 146, 0 } },
+ { "⊈", { 226, 138, 136, 0 } },
+ { "⊁", { 226, 138, 129, 0 } },
+ { "⪰̸", { 226, 170, 176, 204, 184, 0 } },
+ { "⋡", { 226, 139, 161, 0 } },
+ { "≿̸", { 226, 137, 191, 204, 184, 0 } },
+ { "⊃⃒", { 226, 138, 131, 226, 131, 146, 0 } },
+ { "⊉", { 226, 138, 137, 0 } },
+ { "≁", { 226, 137, 129, 0 } },
+ { "≄", { 226, 137, 132, 0 } },
+ { "≇", { 226, 137, 135, 0 } },
+ { "≉", { 226, 137, 137, 0 } },
+ { "∤", { 226, 136, 164, 0 } },
+ { "𝒩", { 240, 157, 146, 169, 0 } },
+ { "Ñ", { 195, 145, 0 } },
+ { "Ν", { 206, 157, 0 } },
+ { "Œ", { 197, 146, 0 } },
+ { "Ó", { 195, 147, 0 } },
+ { "Ô", { 195, 148, 0 } },
+ { "О", { 208, 158, 0 } },
+ { "Ő", { 197, 144, 0 } },
+ { "𝔒", { 240, 157, 148, 146, 0 } },
+ { "Ò", { 195, 146, 0 } },
+ { "Ō", { 197, 140, 0 } },
+ { "Ω", { 206, 169, 0 } },
+ { "Ο", { 206, 159, 0 } },
+ { "𝕆", { 240, 157, 149, 134, 0 } },
+ { "“", { 226, 128, 156, 0 } },
+ { "‘", { 226, 128, 152, 0 } },
+ { "⩔", { 226, 169, 148, 0 } },
+ { "𝒪", { 240, 157, 146, 170, 0 } },
+ { "Ø", { 195, 152, 0 } },
+ { "Õ", { 195, 149, 0 } },
+ { "⨷", { 226, 168, 183, 0 } },
+ { "Ö", { 195, 150, 0 } },
+ { "‾", { 226, 128, 190, 0 } },
+ { "⏞", { 226, 143, 158, 0 } },
+ { "⎴", { 226, 142, 180, 0 } },
+ { "⏜", { 226, 143, 156, 0 } },
+ { "∂", { 226, 136, 130, 0 } },
+ { "П", { 208, 159, 0 } },
+ { "𝔓", { 240, 157, 148, 147, 0 } },
+ { "Φ", { 206, 166, 0 } },
+ { "Π", { 206, 160, 0 } },
+ { "±", { 194, 177, 0 } },
+ { "ℌ", { 226, 132, 140, 0 } },
+ { "ℙ", { 226, 132, 153, 0 } },
+ { "⪻", { 226, 170, 187, 0 } },
+ { "≺", { 226, 137, 186, 0 } },
+ { "⪯", { 226, 170, 175, 0 } },
+ { "≼", { 226, 137, 188, 0 } },
+ { "≾", { 226, 137, 190, 0 } },
+ { "″", { 226, 128, 179, 0 } },
+ { "∏", { 226, 136, 143, 0 } },
+ { "∷", { 226, 136, 183, 0 } },
+ { "∝", { 226, 136, 157, 0 } },
+ { "𝒫", { 240, 157, 146, 171, 0 } },
+ { "Ψ", { 206, 168, 0 } },
+ { """, { 34, 0 } },
+ { "𝔔", { 240, 157, 148, 148, 0 } },
+ { "ℚ", { 226, 132, 154, 0 } },
+ { "𝒬", { 240, 157, 146, 172, 0 } },
+ { "⤐", { 226, 164, 144, 0 } },
+ { "®", { 194, 174, 0 } },
+ { "Ŕ", { 197, 148, 0 } },
+ { "⟫", { 226, 159, 171, 0 } },
+ { "↠", { 226, 134, 160, 0 } },
+ { "⤖", { 226, 164, 150, 0 } },
+ { "Ř", { 197, 152, 0 } },
+ { "Ŗ", { 197, 150, 0 } },
+ { "Р", { 208, 160, 0 } },
+ { "ℜ", { 226, 132, 156, 0 } },
+ { "∋", { 226, 136, 139, 0 } },
+ { "⇋", { 226, 135, 139, 0 } },
+ { "⥯", { 226, 165, 175, 0 } },
+ { "ℜ", { 226, 132, 156, 0 } },
+ { "Ρ", { 206, 161, 0 } },
+ { "⟩", { 226, 159, 169, 0 } },
+ { "→", { 226, 134, 146, 0 } },
+ { "⇥", { 226, 135, 165, 0 } },
+ { "⇄", { 226, 135, 132, 0 } },
+ { "⌉", { 226, 140, 137, 0 } },
+ { "⟧", { 226, 159, 167, 0 } },
+ { "⥝", { 226, 165, 157, 0 } },
+ { "⇂", { 226, 135, 130, 0 } },
+ { "⥕", { 226, 165, 149, 0 } },
+ { "⌋", { 226, 140, 139, 0 } },
+ { "⊢", { 226, 138, 162, 0 } },
+ { "↦", { 226, 134, 166, 0 } },
+ { "⥛", { 226, 165, 155, 0 } },
+ { "⊳", { 226, 138, 179, 0 } },
+ { "⧐", { 226, 167, 144, 0 } },
+ { "⊵", { 226, 138, 181, 0 } },
+ { "⥏", { 226, 165, 143, 0 } },
+ { "⥜", { 226, 165, 156, 0 } },
+ { "↾", { 226, 134, 190, 0 } },
+ { "⥔", { 226, 165, 148, 0 } },
+ { "⇀", { 226, 135, 128, 0 } },
+ { "⥓", { 226, 165, 147, 0 } },
+ { "⇒", { 226, 135, 146, 0 } },
+ { "ℝ", { 226, 132, 157, 0 } },
+ { "⥰", { 226, 165, 176, 0 } },
+ { "⇛", { 226, 135, 155, 0 } },
+ { "ℛ", { 226, 132, 155, 0 } },
+ { "↱", { 226, 134, 177, 0 } },
+ { "⧴", { 226, 167, 180, 0 } },
+ { "Щ", { 208, 169, 0 } },
+ { "Ш", { 208, 168, 0 } },
+ { "Ь", { 208, 172, 0 } },
+ { "Ś", { 197, 154, 0 } },
+ { "⪼", { 226, 170, 188, 0 } },
+ { "Š", { 197, 160, 0 } },
+ { "Ş", { 197, 158, 0 } },
+ { "Ŝ", { 197, 156, 0 } },
+ { "С", { 208, 161, 0 } },
+ { "𝔖", { 240, 157, 148, 150, 0 } },
+ { "↓", { 226, 134, 147, 0 } },
+ { "←", { 226, 134, 144, 0 } },
+ { "→", { 226, 134, 146, 0 } },
+ { "↑", { 226, 134, 145, 0 } },
+ { "Σ", { 206, 163, 0 } },
+ { "∘", { 226, 136, 152, 0 } },
+ { "𝕊", { 240, 157, 149, 138, 0 } },
+ { "√", { 226, 136, 154, 0 } },
+ { "□", { 226, 150, 161, 0 } },
+ { "⊓", { 226, 138, 147, 0 } },
+ { "⊏", { 226, 138, 143, 0 } },
+ { "⊑", { 226, 138, 145, 0 } },
+ { "⊐", { 226, 138, 144, 0 } },
+ { "⊒", { 226, 138, 146, 0 } },
+ { "⊔", { 226, 138, 148, 0 } },
+ { "𝒮", { 240, 157, 146, 174, 0 } },
+ { "⋆", { 226, 139, 134, 0 } },
+ { "⋐", { 226, 139, 144, 0 } },
+ { "⋐", { 226, 139, 144, 0 } },
+ { "⊆", { 226, 138, 134, 0 } },
+ { "≻", { 226, 137, 187, 0 } },
+ { "⪰", { 226, 170, 176, 0 } },
+ { "≽", { 226, 137, 189, 0 } },
+ { "≿", { 226, 137, 191, 0 } },
+ { "∋", { 226, 136, 139, 0 } },
+ { "∑", { 226, 136, 145, 0 } },
+ { "⋑", { 226, 139, 145, 0 } },
+ { "⊃", { 226, 138, 131, 0 } },
+ { "⊇", { 226, 138, 135, 0 } },
+ { "⋑", { 226, 139, 145, 0 } },
+ { "Þ", { 195, 158, 0 } },
+ { "™", { 226, 132, 162, 0 } },
+ { "Ћ", { 208, 139, 0 } },
+ { "Ц", { 208, 166, 0 } },
+ { "	", { 9, 0 } },
+ { "Τ", { 206, 164, 0 } },
+ { "Ť", { 197, 164, 0 } },
+ { "Ţ", { 197, 162, 0 } },
+ { "Т", { 208, 162, 0 } },
+ { "𝔗", { 240, 157, 148, 151, 0 } },
+ { "∴", { 226, 136, 180, 0 } },
+ { "Θ", { 206, 152, 0 } },
+ { "  ", { 226, 129, 159, 226, 128, 138, 0 } },
+ { " ", { 226, 128, 137, 0 } },
+ { "∼", { 226, 136, 188, 0 } },
+ { "≃", { 226, 137, 131, 0 } },
+ { "≅", { 226, 137, 133, 0 } },
+ { "≈", { 226, 137, 136, 0 } },
+ { "𝕋", { 240, 157, 149, 139, 0 } },
+ { "⃛", { 226, 131, 155, 0 } },
+ { "𝒯", { 240, 157, 146, 175, 0 } },
+ { "Ŧ", { 197, 166, 0 } },
+ { "Ú", { 195, 154, 0 } },
+ { "↟", { 226, 134, 159, 0 } },
+ { "⥉", { 226, 165, 137, 0 } },
+ { "Ў", { 208, 142, 0 } },
+ { "Ŭ", { 197, 172, 0 } },
+ { "Û", { 195, 155, 0 } },
+ { "У", { 208, 163, 0 } },
+ { "Ű", { 197, 176, 0 } },
+ { "𝔘", { 240, 157, 148, 152, 0 } },
+ { "Ù", { 195, 153, 0 } },
+ { "Ū", { 197, 170, 0 } },
+ { "_", { 95, 0 } },
+ { "⏟", { 226, 143, 159, 0 } },
+ { "⎵", { 226, 142, 181, 0 } },
+ { "⏝", { 226, 143, 157, 0 } },
+ { "⋃", { 226, 139, 131, 0 } },
+ { "⊎", { 226, 138, 142, 0 } },
+ { "Ų", { 197, 178, 0 } },
+ { "𝕌", { 240, 157, 149, 140, 0 } },
+ { "↑", { 226, 134, 145, 0 } },
+ { "⤒", { 226, 164, 146, 0 } },
+ { "⇅", { 226, 135, 133, 0 } },
+ { "↕", { 226, 134, 149, 0 } },
+ { "⥮", { 226, 165, 174, 0 } },
+ { "⊥", { 226, 138, 165, 0 } },
+ { "↥", { 226, 134, 165, 0 } },
+ { "⇑", { 226, 135, 145, 0 } },
+ { "⇕", { 226, 135, 149, 0 } },
+ { "↖", { 226, 134, 150, 0 } },
+ { "↗", { 226, 134, 151, 0 } },
+ { "ϒ", { 207, 146, 0 } },
+ { "Υ", { 206, 165, 0 } },
+ { "Ů", { 197, 174, 0 } },
+ { "𝒰", { 240, 157, 146, 176, 0 } },
+ { "Ũ", { 197, 168, 0 } },
+ { "Ü", { 195, 156, 0 } },
+ { "⊫", { 226, 138, 171, 0 } },
+ { "⫫", { 226, 171, 171, 0 } },
+ { "В", { 208, 146, 0 } },
+ { "⊩", { 226, 138, 169, 0 } },
+ { "⫦", { 226, 171, 166, 0 } },
+ { "⋁", { 226, 139, 129, 0 } },
+ { "‖", { 226, 128, 150, 0 } },
+ { "‖", { 226, 128, 150, 0 } },
+ { "∣", { 226, 136, 163, 0 } },
+ { "|", { 124, 0 } },
+ { "❘", { 226, 157, 152, 0 } },
+ { "≀", { 226, 137, 128, 0 } },
+ { " ", { 226, 128, 138, 0 } },
+ { "𝔙", { 240, 157, 148, 153, 0 } },
+ { "𝕍", { 240, 157, 149, 141, 0 } },
+ { "𝒱", { 240, 157, 146, 177, 0 } },
+ { "⊪", { 226, 138, 170, 0 } },
+ { "Ŵ", { 197, 180, 0 } },
+ { "⋀", { 226, 139, 128, 0 } },
+ { "𝔚", { 240, 157, 148, 154, 0 } },
+ { "𝕎", { 240, 157, 149, 142, 0 } },
+ { "𝒲", { 240, 157, 146, 178, 0 } },
+ { "𝔛", { 240, 157, 148, 155, 0 } },
+ { "Ξ", { 206, 158, 0 } },
+ { "𝕏", { 240, 157, 149, 143, 0 } },
+ { "𝒳", { 240, 157, 146, 179, 0 } },
+ { "Я", { 208, 175, 0 } },
+ { "Ї", { 208, 135, 0 } },
+ { "Ю", { 208, 174, 0 } },
+ { "Ý", { 195, 157, 0 } },
+ { "Ŷ", { 197, 182, 0 } },
+ { "Ы", { 208, 171, 0 } },
+ { "𝔜", { 240, 157, 148, 156, 0 } },
+ { "𝕐", { 240, 157, 149, 144, 0 } },
+ { "𝒴", { 240, 157, 146, 180, 0 } },
+ { "Ÿ", { 197, 184, 0 } },
+ { "Ж", { 208, 150, 0 } },
+ { "Ź", { 197, 185, 0 } },
+ { "Ž", { 197, 189, 0 } },
+ { "З", { 208, 151, 0 } },
+ { "Ż", { 197, 187, 0 } },
+ { "​", { 226, 128, 139, 0 } },
+ { "Ζ", { 206, 150, 0 } },
+ { "ℨ", { 226, 132, 168, 0 } },
+ { "ℤ", { 226, 132, 164, 0 } },
+ { "𝒵", { 240, 157, 146, 181, 0 } },
+ { "á", { 195, 161, 0 } },
+ { "ă", { 196, 131, 0 } },
+ { "∾", { 226, 136, 190, 0 } },
+ { "∾̳", { 226, 136, 190, 204, 179, 0 } },
+ { "∿", { 226, 136, 191, 0 } },
+ { "â", { 195, 162, 0 } },
+ { "´", { 194, 180, 0 } },
+ { "а", { 208, 176, 0 } },
+ { "æ", { 195, 166, 0 } },
+ { "⁡", { 226, 129, 161, 0 } },
+ { "𝔞", { 240, 157, 148, 158, 0 } },
+ { "à", { 195, 160, 0 } },
+ { "ℵ", { 226, 132, 181, 0 } },
+ { "ℵ", { 226, 132, 181, 0 } },
+ { "α", { 206, 177, 0 } },
+ { "ā", { 196, 129, 0 } },
+ { "⨿", { 226, 168, 191, 0 } },
+ { "&", { 38, 0 } },
+ { "∧", { 226, 136, 167, 0 } },
+ { "⩕", { 226, 169, 149, 0 } },
+ { "⩜", { 226, 169, 156, 0 } },
+ { "⩘", { 226, 169, 152, 0 } },
+ { "⩚", { 226, 169, 154, 0 } },
+ { "∠", { 226, 136, 160, 0 } },
+ { "⦤", { 226, 166, 164, 0 } },
+ { "∠", { 226, 136, 160, 0 } },
+ { "∡", { 226, 136, 161, 0 } },
+ { "⦨", { 226, 166, 168, 0 } },
+ { "⦩", { 226, 166, 169, 0 } },
+ { "⦪", { 226, 166, 170, 0 } },
+ { "⦫", { 226, 166, 171, 0 } },
+ { "⦬", { 226, 166, 172, 0 } },
+ { "⦭", { 226, 166, 173, 0 } },
+ { "⦮", { 226, 166, 174, 0 } },
+ { "⦯", { 226, 166, 175, 0 } },
+ { "∟", { 226, 136, 159, 0 } },
+ { "⊾", { 226, 138, 190, 0 } },
+ { "⦝", { 226, 166, 157, 0 } },
+ { "∢", { 226, 136, 162, 0 } },
+ { "Å", { 195, 133, 0 } },
+ { "⍼", { 226, 141, 188, 0 } },
+ { "ą", { 196, 133, 0 } },
+ { "𝕒", { 240, 157, 149, 146, 0 } },
+ { "≈", { 226, 137, 136, 0 } },
+ { "⩰", { 226, 169, 176, 0 } },
+ { "⩯", { 226, 169, 175, 0 } },
+ { "≊", { 226, 137, 138, 0 } },
+ { "≋", { 226, 137, 139, 0 } },
+ { "'", { 39, 0 } },
+ { "≈", { 226, 137, 136, 0 } },
+ { "≊", { 226, 137, 138, 0 } },
+ { "å", { 195, 165, 0 } },
+ { "𝒶", { 240, 157, 146, 182, 0 } },
+ { "*", { 42, 0 } },
+ { "≈", { 226, 137, 136, 0 } },
+ { "≍", { 226, 137, 141, 0 } },
+ { "ã", { 195, 163, 0 } },
+ { "ä", { 195, 164, 0 } },
+ { "∳", { 226, 136, 179, 0 } },
+ { "⨑", { 226, 168, 145, 0 } },
+ { "⫭", { 226, 171, 173, 0 } },
+ { "≌", { 226, 137, 140, 0 } },
+ { "϶", { 207, 182, 0 } },
+ { "‵", { 226, 128, 181, 0 } },
+ { "∽", { 226, 136, 189, 0 } },
+ { "⋍", { 226, 139, 141, 0 } },
+ { "⊽", { 226, 138, 189, 0 } },
+ { "⌅", { 226, 140, 133, 0 } },
+ { "⌅", { 226, 140, 133, 0 } },
+ { "⎵", { 226, 142, 181, 0 } },
+ { "⎶", { 226, 142, 182, 0 } },
+ { "≌", { 226, 137, 140, 0 } },
+ { "б", { 208, 177, 0 } },
+ { "„", { 226, 128, 158, 0 } },
+ { "∵", { 226, 136, 181, 0 } },
+ { "∵", { 226, 136, 181, 0 } },
+ { "⦰", { 226, 166, 176, 0 } },
+ { "϶", { 207, 182, 0 } },
+ { "ℬ", { 226, 132, 172, 0 } },
+ { "β", { 206, 178, 0 } },
+ { "ℶ", { 226, 132, 182, 0 } },
+ { "≬", { 226, 137, 172, 0 } },
+ { "𝔟", { 240, 157, 148, 159, 0 } },
+ { "⋂", { 226, 139, 130, 0 } },
+ { "◯", { 226, 151, 175, 0 } },
+ { "⋃", { 226, 139, 131, 0 } },
+ { "⨀", { 226, 168, 128, 0 } },
+ { "⨁", { 226, 168, 129, 0 } },
+ { "⨂", { 226, 168, 130, 0 } },
+ { "⨆", { 226, 168, 134, 0 } },
+ { "★", { 226, 152, 133, 0 } },
+ { "▽", { 226, 150, 189, 0 } },
+ { "△", { 226, 150, 179, 0 } },
+ { "⨄", { 226, 168, 132, 0 } },
+ { "⋁", { 226, 139, 129, 0 } },
+ { "⋀", { 226, 139, 128, 0 } },
+ { "⤍", { 226, 164, 141, 0 } },
+ { "⧫", { 226, 167, 171, 0 } },
+ { "▪", { 226, 150, 170, 0 } },
+ { "▴", { 226, 150, 180, 0 } },
+ { "▾", { 226, 150, 190, 0 } },
+ { "◂", { 226, 151, 130, 0 } },
+ { "▸", { 226, 150, 184, 0 } },
+ { "␣", { 226, 144, 163, 0 } },
+ { "▒", { 226, 150, 146, 0 } },
+ { "░", { 226, 150, 145, 0 } },
+ { "▓", { 226, 150, 147, 0 } },
+ { "█", { 226, 150, 136, 0 } },
+ { "=⃥", { 61, 226, 131, 165, 0 } },
+ { "≡⃥", { 226, 137, 161, 226, 131, 165, 0 } },
+ { "⌐", { 226, 140, 144, 0 } },
+ { "𝕓", { 240, 157, 149, 147, 0 } },
+ { "⊥", { 226, 138, 165, 0 } },
+ { "⊥", { 226, 138, 165, 0 } },
+ { "⋈", { 226, 139, 136, 0 } },
+ { "╗", { 226, 149, 151, 0 } },
+ { "╔", { 226, 149, 148, 0 } },
+ { "╖", { 226, 149, 150, 0 } },
+ { "╓", { 226, 149, 147, 0 } },
+ { "═", { 226, 149, 144, 0 } },
+ { "╦", { 226, 149, 166, 0 } },
+ { "╩", { 226, 149, 169, 0 } },
+ { "╤", { 226, 149, 164, 0 } },
+ { "╧", { 226, 149, 167, 0 } },
+ { "╝", { 226, 149, 157, 0 } },
+ { "╚", { 226, 149, 154, 0 } },
+ { "╜", { 226, 149, 156, 0 } },
+ { "╙", { 226, 149, 153, 0 } },
+ { "║", { 226, 149, 145, 0 } },
+ { "╬", { 226, 149, 172, 0 } },
+ { "╣", { 226, 149, 163, 0 } },
+ { "╠", { 226, 149, 160, 0 } },
+ { "╫", { 226, 149, 171, 0 } },
+ { "╢", { 226, 149, 162, 0 } },
+ { "╟", { 226, 149, 159, 0 } },
+ { "⧉", { 226, 167, 137, 0 } },
+ { "╕", { 226, 149, 149, 0 } },
+ { "╒", { 226, 149, 146, 0 } },
+ { "┐", { 226, 148, 144, 0 } },
+ { "┌", { 226, 148, 140, 0 } },
+ { "─", { 226, 148, 128, 0 } },
+ { "╥", { 226, 149, 165, 0 } },
+ { "╨", { 226, 149, 168, 0 } },
+ { "┬", { 226, 148, 172, 0 } },
+ { "┴", { 226, 148, 180, 0 } },
+ { "⊟", { 226, 138, 159, 0 } },
+ { "⊞", { 226, 138, 158, 0 } },
+ { "⊠", { 226, 138, 160, 0 } },
+ { "╛", { 226, 149, 155, 0 } },
+ { "╘", { 226, 149, 152, 0 } },
+ { "┘", { 226, 148, 152, 0 } },
+ { "└", { 226, 148, 148, 0 } },
+ { "│", { 226, 148, 130, 0 } },
+ { "╪", { 226, 149, 170, 0 } },
+ { "╡", { 226, 149, 161, 0 } },
+ { "╞", { 226, 149, 158, 0 } },
+ { "┼", { 226, 148, 188, 0 } },
+ { "┤", { 226, 148, 164, 0 } },
+ { "├", { 226, 148, 156, 0 } },
+ { "‵", { 226, 128, 181, 0 } },
+ { "˘", { 203, 152, 0 } },
+ { "¦", { 194, 166, 0 } },
+ { "𝒷", { 240, 157, 146, 183, 0 } },
+ { "⁏", { 226, 129, 143, 0 } },
+ { "∽", { 226, 136, 189, 0 } },
+ { "⋍", { 226, 139, 141, 0 } },
+ { "\", { 92, 0 } },
+ { "⧅", { 226, 167, 133, 0 } },
+ { "⟈", { 226, 159, 136, 0 } },
+ { "•", { 226, 128, 162, 0 } },
+ { "•", { 226, 128, 162, 0 } },
+ { "≎", { 226, 137, 142, 0 } },
+ { "⪮", { 226, 170, 174, 0 } },
+ { "≏", { 226, 137, 143, 0 } },
+ { "≏", { 226, 137, 143, 0 } },
+ { "ć", { 196, 135, 0 } },
+ { "∩", { 226, 136, 169, 0 } },
+ { "⩄", { 226, 169, 132, 0 } },
+ { "⩉", { 226, 169, 137, 0 } },
+ { "⩋", { 226, 169, 139, 0 } },
+ { "⩇", { 226, 169, 135, 0 } },
+ { "⩀", { 226, 169, 128, 0 } },
+ { "∩︀", { 226, 136, 169, 239, 184, 128, 0 } },
+ { "⁁", { 226, 129, 129, 0 } },
+ { "ˇ", { 203, 135, 0 } },
+ { "⩍", { 226, 169, 141, 0 } },
+ { "č", { 196, 141, 0 } },
+ { "ç", { 195, 167, 0 } },
+ { "ĉ", { 196, 137, 0 } },
+ { "⩌", { 226, 169, 140, 0 } },
+ { "⩐", { 226, 169, 144, 0 } },
+ { "ċ", { 196, 139, 0 } },
+ { "¸", { 194, 184, 0 } },
+ { "⦲", { 226, 166, 178, 0 } },
+ { "¢", { 194, 162, 0 } },
+ { "·", { 194, 183, 0 } },
+ { "𝔠", { 240, 157, 148, 160, 0 } },
+ { "ч", { 209, 135, 0 } },
+ { "✓", { 226, 156, 147, 0 } },
+ { "✓", { 226, 156, 147, 0 } },
+ { "χ", { 207, 135, 0 } },
+ { "○", { 226, 151, 139, 0 } },
+ { "⧃", { 226, 167, 131, 0 } },
+ { "ˆ", { 203, 134, 0 } },
+ { "≗", { 226, 137, 151, 0 } },
+ { "↺", { 226, 134, 186, 0 } },
+ { "↻", { 226, 134, 187, 0 } },
+ { "®", { 194, 174, 0 } },
+ { "Ⓢ", { 226, 147, 136, 0 } },
+ { "⊛", { 226, 138, 155, 0 } },
+ { "⊚", { 226, 138, 154, 0 } },
+ { "⊝", { 226, 138, 157, 0 } },
+ { "≗", { 226, 137, 151, 0 } },
+ { "⨐", { 226, 168, 144, 0 } },
+ { "⫯", { 226, 171, 175, 0 } },
+ { "⧂", { 226, 167, 130, 0 } },
+ { "♣", { 226, 153, 163, 0 } },
+ { "♣", { 226, 153, 163, 0 } },
+ { ":", { 58, 0 } },
+ { "≔", { 226, 137, 148, 0 } },
+ { "≔", { 226, 137, 148, 0 } },
+ { ",", { 44, 0 } },
+ { "@", { 64, 0 } },
+ { "∁", { 226, 136, 129, 0 } },
+ { "∘", { 226, 136, 152, 0 } },
+ { "∁", { 226, 136, 129, 0 } },
+ { "ℂ", { 226, 132, 130, 0 } },
+ { "≅", { 226, 137, 133, 0 } },
+ { "⩭", { 226, 169, 173, 0 } },
+ { "∮", { 226, 136, 174, 0 } },
+ { "𝕔", { 240, 157, 149, 148, 0 } },
+ { "∐", { 226, 136, 144, 0 } },
+ { "©", { 194, 169, 0 } },
+ { "℗", { 226, 132, 151, 0 } },
+ { "↵", { 226, 134, 181, 0 } },
+ { "✗", { 226, 156, 151, 0 } },
+ { "𝒸", { 240, 157, 146, 184, 0 } },
+ { "⫏", { 226, 171, 143, 0 } },
+ { "⫑", { 226, 171, 145, 0 } },
+ { "⫐", { 226, 171, 144, 0 } },
+ { "⫒", { 226, 171, 146, 0 } },
+ { "⋯", { 226, 139, 175, 0 } },
+ { "⤸", { 226, 164, 184, 0 } },
+ { "⤵", { 226, 164, 181, 0 } },
+ { "⋞", { 226, 139, 158, 0 } },
+ { "⋟", { 226, 139, 159, 0 } },
+ { "↶", { 226, 134, 182, 0 } },
+ { "⤽", { 226, 164, 189, 0 } },
+ { "∪", { 226, 136, 170, 0 } },
+ { "⩈", { 226, 169, 136, 0 } },
+ { "⩆", { 226, 169, 134, 0 } },
+ { "⩊", { 226, 169, 138, 0 } },
+ { "⊍", { 226, 138, 141, 0 } },
+ { "⩅", { 226, 169, 133, 0 } },
+ { "∪︀", { 226, 136, 170, 239, 184, 128, 0 } },
+ { "↷", { 226, 134, 183, 0 } },
+ { "⤼", { 226, 164, 188, 0 } },
+ { "⋞", { 226, 139, 158, 0 } },
+ { "⋟", { 226, 139, 159, 0 } },
+ { "⋎", { 226, 139, 142, 0 } },
+ { "⋏", { 226, 139, 143, 0 } },
+ { "¤", { 194, 164, 0 } },
+ { "↶", { 226, 134, 182, 0 } },
+ { "↷", { 226, 134, 183, 0 } },
+ { "⋎", { 226, 139, 142, 0 } },
+ { "⋏", { 226, 139, 143, 0 } },
+ { "∲", { 226, 136, 178, 0 } },
+ { "∱", { 226, 136, 177, 0 } },
+ { "⌭", { 226, 140, 173, 0 } },
+ { "⇓", { 226, 135, 147, 0 } },
+ { "⥥", { 226, 165, 165, 0 } },
+ { "†", { 226, 128, 160, 0 } },
+ { "ℸ", { 226, 132, 184, 0 } },
+ { "↓", { 226, 134, 147, 0 } },
+ { "‐", { 226, 128, 144, 0 } },
+ { "⊣", { 226, 138, 163, 0 } },
+ { "⤏", { 226, 164, 143, 0 } },
+ { "˝", { 203, 157, 0 } },
+ { "ď", { 196, 143, 0 } },
+ { "д", { 208, 180, 0 } },
+ { "ⅆ", { 226, 133, 134, 0 } },
+ { "‡", { 226, 128, 161, 0 } },
+ { "⇊", { 226, 135, 138, 0 } },
+ { "⩷", { 226, 169, 183, 0 } },
+ { "°", { 194, 176, 0 } },
+ { "δ", { 206, 180, 0 } },
+ { "⦱", { 226, 166, 177, 0 } },
+ { "⥿", { 226, 165, 191, 0 } },
+ { "𝔡", { 240, 157, 148, 161, 0 } },
+ { "⇃", { 226, 135, 131, 0 } },
+ { "⇂", { 226, 135, 130, 0 } },
+ { "⋄", { 226, 139, 132, 0 } },
+ { "⋄", { 226, 139, 132, 0 } },
+ { "♦", { 226, 153, 166, 0 } },
+ { "♦", { 226, 153, 166, 0 } },
+ { "¨", { 194, 168, 0 } },
+ { "ϝ", { 207, 157, 0 } },
+ { "⋲", { 226, 139, 178, 0 } },
+ { "÷", { 195, 183, 0 } },
+ { "÷", { 195, 183, 0 } },
+ { "⋇", { 226, 139, 135, 0 } },
+ { "⋇", { 226, 139, 135, 0 } },
+ { "ђ", { 209, 146, 0 } },
+ { "⌞", { 226, 140, 158, 0 } },
+ { "⌍", { 226, 140, 141, 0 } },
+ { "$", { 36, 0 } },
+ { "𝕕", { 240, 157, 149, 149, 0 } },
+ { "˙", { 203, 153, 0 } },
+ { "≐", { 226, 137, 144, 0 } },
+ { "≑", { 226, 137, 145, 0 } },
+ { "∸", { 226, 136, 184, 0 } },
+ { "∔", { 226, 136, 148, 0 } },
+ { "⊡", { 226, 138, 161, 0 } },
+ { "⌆", { 226, 140, 134, 0 } },
+ { "↓", { 226, 134, 147, 0 } },
+ { "⇊", { 226, 135, 138, 0 } },
+ { "⇃", { 226, 135, 131, 0 } },
+ { "⇂", { 226, 135, 130, 0 } },
+ { "⤐", { 226, 164, 144, 0 } },
+ { "⌟", { 226, 140, 159, 0 } },
+ { "⌌", { 226, 140, 140, 0 } },
+ { "𝒹", { 240, 157, 146, 185, 0 } },
+ { "ѕ", { 209, 149, 0 } },
+ { "⧶", { 226, 167, 182, 0 } },
+ { "đ", { 196, 145, 0 } },
+ { "⋱", { 226, 139, 177, 0 } },
+ { "▿", { 226, 150, 191, 0 } },
+ { "▾", { 226, 150, 190, 0 } },
+ { "⇵", { 226, 135, 181, 0 } },
+ { "⥯", { 226, 165, 175, 0 } },
+ { "⦦", { 226, 166, 166, 0 } },
+ { "џ", { 209, 159, 0 } },
+ { "⟿", { 226, 159, 191, 0 } },
+ { "⩷", { 226, 169, 183, 0 } },
+ { "≑", { 226, 137, 145, 0 } },
+ { "é", { 195, 169, 0 } },
+ { "⩮", { 226, 169, 174, 0 } },
+ { "ě", { 196, 155, 0 } },
+ { "≖", { 226, 137, 150, 0 } },
+ { "ê", { 195, 170, 0 } },
+ { "≕", { 226, 137, 149, 0 } },
+ { "э", { 209, 141, 0 } },
+ { "ė", { 196, 151, 0 } },
+ { "ⅇ", { 226, 133, 135, 0 } },
+ { "≒", { 226, 137, 146, 0 } },
+ { "𝔢", { 240, 157, 148, 162, 0 } },
+ { "⪚", { 226, 170, 154, 0 } },
+ { "è", { 195, 168, 0 } },
+ { "⪖", { 226, 170, 150, 0 } },
+ { "⪘", { 226, 170, 152, 0 } },
+ { "⪙", { 226, 170, 153, 0 } },
+ { "⏧", { 226, 143, 167, 0 } },
+ { "ℓ", { 226, 132, 147, 0 } },
+ { "⪕", { 226, 170, 149, 0 } },
+ { "⪗", { 226, 170, 151, 0 } },
+ { "ē", { 196, 147, 0 } },
+ { "∅", { 226, 136, 133, 0 } },
+ { "∅", { 226, 136, 133, 0 } },
+ { "∅", { 226, 136, 133, 0 } },
+ { " ", { 226, 128, 131, 0 } },
+ { " ", { 226, 128, 132, 0 } },
+ { " ", { 226, 128, 133, 0 } },
+ { "ŋ", { 197, 139, 0 } },
+ { " ", { 226, 128, 130, 0 } },
+ { "ę", { 196, 153, 0 } },
+ { "𝕖", { 240, 157, 149, 150, 0 } },
+ { "⋕", { 226, 139, 149, 0 } },
+ { "⧣", { 226, 167, 163, 0 } },
+ { "⩱", { 226, 169, 177, 0 } },
+ { "ε", { 206, 181, 0 } },
+ { "ε", { 206, 181, 0 } },
+ { "ϵ", { 207, 181, 0 } },
+ { "≖", { 226, 137, 150, 0 } },
+ { "≕", { 226, 137, 149, 0 } },
+ { "≂", { 226, 137, 130, 0 } },
+ { "⪖", { 226, 170, 150, 0 } },
+ { "⪕", { 226, 170, 149, 0 } },
+ { "=", { 61, 0 } },
+ { "≟", { 226, 137, 159, 0 } },
+ { "≡", { 226, 137, 161, 0 } },
+ { "⩸", { 226, 169, 184, 0 } },
+ { "⧥", { 226, 167, 165, 0 } },
+ { "≓", { 226, 137, 147, 0 } },
+ { "⥱", { 226, 165, 177, 0 } },
+ { "ℯ", { 226, 132, 175, 0 } },
+ { "≐", { 226, 137, 144, 0 } },
+ { "≂", { 226, 137, 130, 0 } },
+ { "η", { 206, 183, 0 } },
+ { "ð", { 195, 176, 0 } },
+ { "ë", { 195, 171, 0 } },
+ { "€", { 226, 130, 172, 0 } },
+ { "!", { 33, 0 } },
+ { "∃", { 226, 136, 131, 0 } },
+ { "ℰ", { 226, 132, 176, 0 } },
+ { "ⅇ", { 226, 133, 135, 0 } },
+ { "≒", { 226, 137, 146, 0 } },
+ { "ф", { 209, 132, 0 } },
+ { "♀", { 226, 153, 128, 0 } },
+ { "ffi", { 239, 172, 131, 0 } },
+ { "ff", { 239, 172, 128, 0 } },
+ { "ffl", { 239, 172, 132, 0 } },
+ { "𝔣", { 240, 157, 148, 163, 0 } },
+ { "fi", { 239, 172, 129, 0 } },
+ { "fj", { 102, 106, 0 } },
+ { "♭", { 226, 153, 173, 0 } },
+ { "fl", { 239, 172, 130, 0 } },
+ { "▱", { 226, 150, 177, 0 } },
+ { "ƒ", { 198, 146, 0 } },
+ { "𝕗", { 240, 157, 149, 151, 0 } },
+ { "∀", { 226, 136, 128, 0 } },
+ { "⋔", { 226, 139, 148, 0 } },
+ { "⫙", { 226, 171, 153, 0 } },
+ { "⨍", { 226, 168, 141, 0 } },
+ { "½", { 194, 189, 0 } },
+ { "⅓", { 226, 133, 147, 0 } },
+ { "¼", { 194, 188, 0 } },
+ { "⅕", { 226, 133, 149, 0 } },
+ { "⅙", { 226, 133, 153, 0 } },
+ { "⅛", { 226, 133, 155, 0 } },
+ { "⅔", { 226, 133, 148, 0 } },
+ { "⅖", { 226, 133, 150, 0 } },
+ { "¾", { 194, 190, 0 } },
+ { "⅗", { 226, 133, 151, 0 } },
+ { "⅜", { 226, 133, 156, 0 } },
+ { "⅘", { 226, 133, 152, 0 } },
+ { "⅚", { 226, 133, 154, 0 } },
+ { "⅝", { 226, 133, 157, 0 } },
+ { "⅞", { 226, 133, 158, 0 } },
+ { "⁄", { 226, 129, 132, 0 } },
+ { "⌢", { 226, 140, 162, 0 } },
+ { "𝒻", { 240, 157, 146, 187, 0 } },
+ { "≧", { 226, 137, 167, 0 } },
+ { "⪌", { 226, 170, 140, 0 } },
+ { "ǵ", { 199, 181, 0 } },
+ { "γ", { 206, 179, 0 } },
+ { "ϝ", { 207, 157, 0 } },
+ { "⪆", { 226, 170, 134, 0 } },
+ { "ğ", { 196, 159, 0 } },
+ { "ĝ", { 196, 157, 0 } },
+ { "г", { 208, 179, 0 } },
+ { "ġ", { 196, 161, 0 } },
+ { "≥", { 226, 137, 165, 0 } },
+ { "⋛", { 226, 139, 155, 0 } },
+ { "≥", { 226, 137, 165, 0 } },
+ { "≧", { 226, 137, 167, 0 } },
+ { "⩾", { 226, 169, 190, 0 } },
+ { "⩾", { 226, 169, 190, 0 } },
+ { "⪩", { 226, 170, 169, 0 } },
+ { "⪀", { 226, 170, 128, 0 } },
+ { "⪂", { 226, 170, 130, 0 } },
+ { "⪄", { 226, 170, 132, 0 } },
+ { "⋛︀", { 226, 139, 155, 239, 184, 128, 0 } },
+ { "⪔", { 226, 170, 148, 0 } },
+ { "𝔤", { 240, 157, 148, 164, 0 } },
+ { "≫", { 226, 137, 171, 0 } },
+ { "⋙", { 226, 139, 153, 0 } },
+ { "ℷ", { 226, 132, 183, 0 } },
+ { "ѓ", { 209, 147, 0 } },
+ { "≷", { 226, 137, 183, 0 } },
+ { "⪒", { 226, 170, 146, 0 } },
+ { "⪥", { 226, 170, 165, 0 } },
+ { "⪤", { 226, 170, 164, 0 } },
+ { "≩", { 226, 137, 169, 0 } },
+ { "⪊", { 226, 170, 138, 0 } },
+ { "⪊", { 226, 170, 138, 0 } },
+ { "⪈", { 226, 170, 136, 0 } },
+ { "⪈", { 226, 170, 136, 0 } },
+ { "≩", { 226, 137, 169, 0 } },
+ { "⋧", { 226, 139, 167, 0 } },
+ { "𝕘", { 240, 157, 149, 152, 0 } },
+ { "`", { 96, 0 } },
+ { "ℊ", { 226, 132, 138, 0 } },
+ { "≳", { 226, 137, 179, 0 } },
+ { "⪎", { 226, 170, 142, 0 } },
+ { "⪐", { 226, 170, 144, 0 } },
+ { ">", { 62, 0 } },
+ { "⪧", { 226, 170, 167, 0 } },
+ { "⩺", { 226, 169, 186, 0 } },
+ { "⋗", { 226, 139, 151, 0 } },
+ { "⦕", { 226, 166, 149, 0 } },
+ { "⩼", { 226, 169, 188, 0 } },
+ { "⪆", { 226, 170, 134, 0 } },
+ { "⥸", { 226, 165, 184, 0 } },
+ { "⋗", { 226, 139, 151, 0 } },
+ { "⋛", { 226, 139, 155, 0 } },
+ { "⪌", { 226, 170, 140, 0 } },
+ { "≷", { 226, 137, 183, 0 } },
+ { "≳", { 226, 137, 179, 0 } },
+ { "≩︀", { 226, 137, 169, 239, 184, 128, 0 } },
+ { "≩︀", { 226, 137, 169, 239, 184, 128, 0 } },
+ { "⇔", { 226, 135, 148, 0 } },
+ { " ", { 226, 128, 138, 0 } },
+ { "½", { 194, 189, 0 } },
+ { "ℋ", { 226, 132, 139, 0 } },
+ { "ъ", { 209, 138, 0 } },
+ { "↔", { 226, 134, 148, 0 } },
+ { "⥈", { 226, 165, 136, 0 } },
+ { "↭", { 226, 134, 173, 0 } },
+ { "ℏ", { 226, 132, 143, 0 } },
+ { "ĥ", { 196, 165, 0 } },
+ { "♥", { 226, 153, 165, 0 } },
+ { "♥", { 226, 153, 165, 0 } },
+ { "…", { 226, 128, 166, 0 } },
+ { "⊹", { 226, 138, 185, 0 } },
+ { "𝔥", { 240, 157, 148, 165, 0 } },
+ { "⤥", { 226, 164, 165, 0 } },
+ { "⤦", { 226, 164, 166, 0 } },
+ { "⇿", { 226, 135, 191, 0 } },
+ { "∻", { 226, 136, 187, 0 } },
+ { "↩", { 226, 134, 169, 0 } },
+ { "↪", { 226, 134, 170, 0 } },
+ { "𝕙", { 240, 157, 149, 153, 0 } },
+ { "―", { 226, 128, 149, 0 } },
+ { "𝒽", { 240, 157, 146, 189, 0 } },
+ { "ℏ", { 226, 132, 143, 0 } },
+ { "ħ", { 196, 167, 0 } },
+ { "⁃", { 226, 129, 131, 0 } },
+ { "‐", { 226, 128, 144, 0 } },
+ { "í", { 195, 173, 0 } },
+ { "⁣", { 226, 129, 163, 0 } },
+ { "î", { 195, 174, 0 } },
+ { "и", { 208, 184, 0 } },
+ { "е", { 208, 181, 0 } },
+ { "¡", { 194, 161, 0 } },
+ { "⇔", { 226, 135, 148, 0 } },
+ { "𝔦", { 240, 157, 148, 166, 0 } },
+ { "ì", { 195, 172, 0 } },
+ { "ⅈ", { 226, 133, 136, 0 } },
+ { "⨌", { 226, 168, 140, 0 } },
+ { "∭", { 226, 136, 173, 0 } },
+ { "⧜", { 226, 167, 156, 0 } },
+ { "℩", { 226, 132, 169, 0 } },
+ { "ij", { 196, 179, 0 } },
+ { "ī", { 196, 171, 0 } },
+ { "ℑ", { 226, 132, 145, 0 } },
+ { "ℐ", { 226, 132, 144, 0 } },
+ { "ℑ", { 226, 132, 145, 0 } },
+ { "ı", { 196, 177, 0 } },
+ { "⊷", { 226, 138, 183, 0 } },
+ { "Ƶ", { 198, 181, 0 } },
+ { "∈", { 226, 136, 136, 0 } },
+ { "℅", { 226, 132, 133, 0 } },
+ { "∞", { 226, 136, 158, 0 } },
+ { "⧝", { 226, 167, 157, 0 } },
+ { "ı", { 196, 177, 0 } },
+ { "∫", { 226, 136, 171, 0 } },
+ { "⊺", { 226, 138, 186, 0 } },
+ { "ℤ", { 226, 132, 164, 0 } },
+ { "⊺", { 226, 138, 186, 0 } },
+ { "⨗", { 226, 168, 151, 0 } },
+ { "⨼", { 226, 168, 188, 0 } },
+ { "ё", { 209, 145, 0 } },
+ { "į", { 196, 175, 0 } },
+ { "𝕚", { 240, 157, 149, 154, 0 } },
+ { "ι", { 206, 185, 0 } },
+ { "⨼", { 226, 168, 188, 0 } },
+ { "¿", { 194, 191, 0 } },
+ { "𝒾", { 240, 157, 146, 190, 0 } },
+ { "∈", { 226, 136, 136, 0 } },
+ { "⋹", { 226, 139, 185, 0 } },
+ { "⋵", { 226, 139, 181, 0 } },
+ { "⋴", { 226, 139, 180, 0 } },
+ { "⋳", { 226, 139, 179, 0 } },
+ { "∈", { 226, 136, 136, 0 } },
+ { "⁢", { 226, 129, 162, 0 } },
+ { "ĩ", { 196, 169, 0 } },
+ { "і", { 209, 150, 0 } },
+ { "ï", { 195, 175, 0 } },
+ { "ĵ", { 196, 181, 0 } },
+ { "й", { 208, 185, 0 } },
+ { "𝔧", { 240, 157, 148, 167, 0 } },
+ { "ȷ", { 200, 183, 0 } },
+ { "𝕛", { 240, 157, 149, 155, 0 } },
+ { "𝒿", { 240, 157, 146, 191, 0 } },
+ { "ј", { 209, 152, 0 } },
+ { "є", { 209, 148, 0 } },
+ { "κ", { 206, 186, 0 } },
+ { "ϰ", { 207, 176, 0 } },
+ { "ķ", { 196, 183, 0 } },
+ { "к", { 208, 186, 0 } },
+ { "𝔨", { 240, 157, 148, 168, 0 } },
+ { "ĸ", { 196, 184, 0 } },
+ { "х", { 209, 133, 0 } },
+ { "ќ", { 209, 156, 0 } },
+ { "𝕜", { 240, 157, 149, 156, 0 } },
+ { "𝓀", { 240, 157, 147, 128, 0 } },
+ { "⇚", { 226, 135, 154, 0 } },
+ { "⇐", { 226, 135, 144, 0 } },
+ { "⤛", { 226, 164, 155, 0 } },
+ { "⤎", { 226, 164, 142, 0 } },
+ { "≦", { 226, 137, 166, 0 } },
+ { "⪋", { 226, 170, 139, 0 } },
+ { "⥢", { 226, 165, 162, 0 } },
+ { "ĺ", { 196, 186, 0 } },
+ { "⦴", { 226, 166, 180, 0 } },
+ { "ℒ", { 226, 132, 146, 0 } },
+ { "λ", { 206, 187, 0 } },
+ { "⟨", { 226, 159, 168, 0 } },
+ { "⦑", { 226, 166, 145, 0 } },
+ { "⟨", { 226, 159, 168, 0 } },
+ { "⪅", { 226, 170, 133, 0 } },
+ { "«", { 194, 171, 0 } },
+ { "←", { 226, 134, 144, 0 } },
+ { "⇤", { 226, 135, 164, 0 } },
+ { "⤟", { 226, 164, 159, 0 } },
+ { "⤝", { 226, 164, 157, 0 } },
+ { "↩", { 226, 134, 169, 0 } },
+ { "↫", { 226, 134, 171, 0 } },
+ { "⤹", { 226, 164, 185, 0 } },
+ { "⥳", { 226, 165, 179, 0 } },
+ { "↢", { 226, 134, 162, 0 } },
+ { "⪫", { 226, 170, 171, 0 } },
+ { "⤙", { 226, 164, 153, 0 } },
+ { "⪭", { 226, 170, 173, 0 } },
+ { "⪭︀", { 226, 170, 173, 239, 184, 128, 0 } },
+ { "⤌", { 226, 164, 140, 0 } },
+ { "❲", { 226, 157, 178, 0 } },
+ { "{", { 123, 0 } },
+ { "[", { 91, 0 } },
+ { "⦋", { 226, 166, 139, 0 } },
+ { "⦏", { 226, 166, 143, 0 } },
+ { "⦍", { 226, 166, 141, 0 } },
+ { "ľ", { 196, 190, 0 } },
+ { "ļ", { 196, 188, 0 } },
+ { "⌈", { 226, 140, 136, 0 } },
+ { "{", { 123, 0 } },
+ { "л", { 208, 187, 0 } },
+ { "⤶", { 226, 164, 182, 0 } },
+ { "“", { 226, 128, 156, 0 } },
+ { "„", { 226, 128, 158, 0 } },
+ { "⥧", { 226, 165, 167, 0 } },
+ { "⥋", { 226, 165, 139, 0 } },
+ { "↲", { 226, 134, 178, 0 } },
+ { "≤", { 226, 137, 164, 0 } },
+ { "←", { 226, 134, 144, 0 } },
+ { "↢", { 226, 134, 162, 0 } },
+ { "↽", { 226, 134, 189, 0 } },
+ { "↼", { 226, 134, 188, 0 } },
+ { "⇇", { 226, 135, 135, 0 } },
+ { "↔", { 226, 134, 148, 0 } },
+ { "⇆", { 226, 135, 134, 0 } },
+ { "⇋", { 226, 135, 139, 0 } },
+ { "↭", { 226, 134, 173, 0 } },
+ { "⋋", { 226, 139, 139, 0 } },
+ { "⋚", { 226, 139, 154, 0 } },
+ { "≤", { 226, 137, 164, 0 } },
+ { "≦", { 226, 137, 166, 0 } },
+ { "⩽", { 226, 169, 189, 0 } },
+ { "⩽", { 226, 169, 189, 0 } },
+ { "⪨", { 226, 170, 168, 0 } },
+ { "⩿", { 226, 169, 191, 0 } },
+ { "⪁", { 226, 170, 129, 0 } },
+ { "⪃", { 226, 170, 131, 0 } },
+ { "⋚︀", { 226, 139, 154, 239, 184, 128, 0 } },
+ { "⪓", { 226, 170, 147, 0 } },
+ { "⪅", { 226, 170, 133, 0 } },
+ { "⋖", { 226, 139, 150, 0 } },
+ { "⋚", { 226, 139, 154, 0 } },
+ { "⪋", { 226, 170, 139, 0 } },
+ { "≶", { 226, 137, 182, 0 } },
+ { "≲", { 226, 137, 178, 0 } },
+ { "⥼", { 226, 165, 188, 0 } },
+ { "⌊", { 226, 140, 138, 0 } },
+ { "𝔩", { 240, 157, 148, 169, 0 } },
+ { "≶", { 226, 137, 182, 0 } },
+ { "⪑", { 226, 170, 145, 0 } },
+ { "↽", { 226, 134, 189, 0 } },
+ { "↼", { 226, 134, 188, 0 } },
+ { "⥪", { 226, 165, 170, 0 } },
+ { "▄", { 226, 150, 132, 0 } },
+ { "љ", { 209, 153, 0 } },
+ { "≪", { 226, 137, 170, 0 } },
+ { "⇇", { 226, 135, 135, 0 } },
+ { "⌞", { 226, 140, 158, 0 } },
+ { "⥫", { 226, 165, 171, 0 } },
+ { "◺", { 226, 151, 186, 0 } },
+ { "ŀ", { 197, 128, 0 } },
+ { "⎰", { 226, 142, 176, 0 } },
+ { "⎰", { 226, 142, 176, 0 } },
+ { "≨", { 226, 137, 168, 0 } },
+ { "⪉", { 226, 170, 137, 0 } },
+ { "⪉", { 226, 170, 137, 0 } },
+ { "⪇", { 226, 170, 135, 0 } },
+ { "⪇", { 226, 170, 135, 0 } },
+ { "≨", { 226, 137, 168, 0 } },
+ { "⋦", { 226, 139, 166, 0 } },
+ { "⟬", { 226, 159, 172, 0 } },
+ { "⇽", { 226, 135, 189, 0 } },
+ { "⟦", { 226, 159, 166, 0 } },
+ { "⟵", { 226, 159, 181, 0 } },
+ { "⟷", { 226, 159, 183, 0 } },
+ { "⟼", { 226, 159, 188, 0 } },
+ { "⟶", { 226, 159, 182, 0 } },
+ { "↫", { 226, 134, 171, 0 } },
+ { "↬", { 226, 134, 172, 0 } },
+ { "⦅", { 226, 166, 133, 0 } },
+ { "𝕝", { 240, 157, 149, 157, 0 } },
+ { "⨭", { 226, 168, 173, 0 } },
+ { "⨴", { 226, 168, 180, 0 } },
+ { "∗", { 226, 136, 151, 0 } },
+ { "_", { 95, 0 } },
+ { "◊", { 226, 151, 138, 0 } },
+ { "◊", { 226, 151, 138, 0 } },
+ { "⧫", { 226, 167, 171, 0 } },
+ { "(", { 40, 0 } },
+ { "⦓", { 226, 166, 147, 0 } },
+ { "⇆", { 226, 135, 134, 0 } },
+ { "⌟", { 226, 140, 159, 0 } },
+ { "⇋", { 226, 135, 139, 0 } },
+ { "⥭", { 226, 165, 173, 0 } },
+ { "‎", { 226, 128, 142, 0 } },
+ { "⊿", { 226, 138, 191, 0 } },
+ { "‹", { 226, 128, 185, 0 } },
+ { "𝓁", { 240, 157, 147, 129, 0 } },
+ { "↰", { 226, 134, 176, 0 } },
+ { "≲", { 226, 137, 178, 0 } },
+ { "⪍", { 226, 170, 141, 0 } },
+ { "⪏", { 226, 170, 143, 0 } },
+ { "[", { 91, 0 } },
+ { "‘", { 226, 128, 152, 0 } },
+ { "‚", { 226, 128, 154, 0 } },
+ { "ł", { 197, 130, 0 } },
+ { "<", { 60, 0 } },
+ { "⪦", { 226, 170, 166, 0 } },
+ { "⩹", { 226, 169, 185, 0 } },
+ { "⋖", { 226, 139, 150, 0 } },
+ { "⋋", { 226, 139, 139, 0 } },
+ { "⋉", { 226, 139, 137, 0 } },
+ { "⥶", { 226, 165, 182, 0 } },
+ { "⩻", { 226, 169, 187, 0 } },
+ { "⦖", { 226, 166, 150, 0 } },
+ { "◃", { 226, 151, 131, 0 } },
+ { "⊴", { 226, 138, 180, 0 } },
+ { "◂", { 226, 151, 130, 0 } },
+ { "⥊", { 226, 165, 138, 0 } },
+ { "⥦", { 226, 165, 166, 0 } },
+ { "≨︀", { 226, 137, 168, 239, 184, 128, 0 } },
+ { "≨︀", { 226, 137, 168, 239, 184, 128, 0 } },
+ { "∺", { 226, 136, 186, 0 } },
+ { "¯", { 194, 175, 0 } },
+ { "♂", { 226, 153, 130, 0 } },
+ { "✠", { 226, 156, 160, 0 } },
+ { "✠", { 226, 156, 160, 0 } },
+ { "↦", { 226, 134, 166, 0 } },
+ { "↦", { 226, 134, 166, 0 } },
+ { "↧", { 226, 134, 167, 0 } },
+ { "↤", { 226, 134, 164, 0 } },
+ { "↥", { 226, 134, 165, 0 } },
+ { "▮", { 226, 150, 174, 0 } },
+ { "⨩", { 226, 168, 169, 0 } },
+ { "м", { 208, 188, 0 } },
+ { "—", { 226, 128, 148, 0 } },
+ { "∡", { 226, 136, 161, 0 } },
+ { "𝔪", { 240, 157, 148, 170, 0 } },
+ { "℧", { 226, 132, 167, 0 } },
+ { "µ", { 194, 181, 0 } },
+ { "∣", { 226, 136, 163, 0 } },
+ { "*", { 42, 0 } },
+ { "⫰", { 226, 171, 176, 0 } },
+ { "·", { 194, 183, 0 } },
+ { "−", { 226, 136, 146, 0 } },
+ { "⊟", { 226, 138, 159, 0 } },
+ { "∸", { 226, 136, 184, 0 } },
+ { "⨪", { 226, 168, 170, 0 } },
+ { "⫛", { 226, 171, 155, 0 } },
+ { "…", { 226, 128, 166, 0 } },
+ { "∓", { 226, 136, 147, 0 } },
+ { "⊧", { 226, 138, 167, 0 } },
+ { "𝕞", { 240, 157, 149, 158, 0 } },
+ { "∓", { 226, 136, 147, 0 } },
+ { "𝓂", { 240, 157, 147, 130, 0 } },
+ { "∾", { 226, 136, 190, 0 } },
+ { "μ", { 206, 188, 0 } },
+ { "⊸", { 226, 138, 184, 0 } },
+ { "⊸", { 226, 138, 184, 0 } },
+ { "⋙̸", { 226, 139, 153, 204, 184, 0 } },
+ { "≫⃒", { 226, 137, 171, 226, 131, 146, 0 } },
+ { "≫̸", { 226, 137, 171, 204, 184, 0 } },
+ { "⇍", { 226, 135, 141, 0 } },
+ { "⇎", { 226, 135, 142, 0 } },
+ { "⋘̸", { 226, 139, 152, 204, 184, 0 } },
+ { "≪⃒", { 226, 137, 170, 226, 131, 146, 0 } },
+ { "≪̸", { 226, 137, 170, 204, 184, 0 } },
+ { "⇏", { 226, 135, 143, 0 } },
+ { "⊯", { 226, 138, 175, 0 } },
+ { "⊮", { 226, 138, 174, 0 } },
+ { "∇", { 226, 136, 135, 0 } },
+ { "ń", { 197, 132, 0 } },
+ { "∠⃒", { 226, 136, 160, 226, 131, 146, 0 } },
+ { "≉", { 226, 137, 137, 0 } },
+ { "⩰̸", { 226, 169, 176, 204, 184, 0 } },
+ { "≋̸", { 226, 137, 139, 204, 184, 0 } },
+ { "ʼn", { 197, 137, 0 } },
+ { "≉", { 226, 137, 137, 0 } },
+ { "♮", { 226, 153, 174, 0 } },
+ { "♮", { 226, 153, 174, 0 } },
+ { "ℕ", { 226, 132, 149, 0 } },
+ { " ", { 194, 160, 0 } },
+ { "≎̸", { 226, 137, 142, 204, 184, 0 } },
+ { "≏̸", { 226, 137, 143, 204, 184, 0 } },
+ { "⩃", { 226, 169, 131, 0 } },
+ { "ň", { 197, 136, 0 } },
+ { "ņ", { 197, 134, 0 } },
+ { "≇", { 226, 137, 135, 0 } },
+ { "⩭̸", { 226, 169, 173, 204, 184, 0 } },
+ { "⩂", { 226, 169, 130, 0 } },
+ { "н", { 208, 189, 0 } },
+ { "–", { 226, 128, 147, 0 } },
+ { "≠", { 226, 137, 160, 0 } },
+ { "⇗", { 226, 135, 151, 0 } },
+ { "⤤", { 226, 164, 164, 0 } },
+ { "↗", { 226, 134, 151, 0 } },
+ { "↗", { 226, 134, 151, 0 } },
+ { "≐̸", { 226, 137, 144, 204, 184, 0 } },
+ { "≢", { 226, 137, 162, 0 } },
+ { "⤨", { 226, 164, 168, 0 } },
+ { "≂̸", { 226, 137, 130, 204, 184, 0 } },
+ { "∄", { 226, 136, 132, 0 } },
+ { "∄", { 226, 136, 132, 0 } },
+ { "𝔫", { 240, 157, 148, 171, 0 } },
+ { "≧̸", { 226, 137, 167, 204, 184, 0 } },
+ { "≱", { 226, 137, 177, 0 } },
+ { "≱", { 226, 137, 177, 0 } },
+ { "≧̸", { 226, 137, 167, 204, 184, 0 } },
+ { "⩾̸", { 226, 169, 190, 204, 184, 0 } },
+ { "⩾̸", { 226, 169, 190, 204, 184, 0 } },
+ { "≵", { 226, 137, 181, 0 } },
+ { "≯", { 226, 137, 175, 0 } },
+ { "≯", { 226, 137, 175, 0 } },
+ { "⇎", { 226, 135, 142, 0 } },
+ { "↮", { 226, 134, 174, 0 } },
+ { "⫲", { 226, 171, 178, 0 } },
+ { "∋", { 226, 136, 139, 0 } },
+ { "⋼", { 226, 139, 188, 0 } },
+ { "⋺", { 226, 139, 186, 0 } },
+ { "∋", { 226, 136, 139, 0 } },
+ { "њ", { 209, 154, 0 } },
+ { "⇍", { 226, 135, 141, 0 } },
+ { "≦̸", { 226, 137, 166, 204, 184, 0 } },
+ { "↚", { 226, 134, 154, 0 } },
+ { "‥", { 226, 128, 165, 0 } },
+ { "≰", { 226, 137, 176, 0 } },
+ { "↚", { 226, 134, 154, 0 } },
+ { "↮", { 226, 134, 174, 0 } },
+ { "≰", { 226, 137, 176, 0 } },
+ { "≦̸", { 226, 137, 166, 204, 184, 0 } },
+ { "⩽̸", { 226, 169, 189, 204, 184, 0 } },
+ { "⩽̸", { 226, 169, 189, 204, 184, 0 } },
+ { "≮", { 226, 137, 174, 0 } },
+ { "≴", { 226, 137, 180, 0 } },
+ { "≮", { 226, 137, 174, 0 } },
+ { "⋪", { 226, 139, 170, 0 } },
+ { "⋬", { 226, 139, 172, 0 } },
+ { "∤", { 226, 136, 164, 0 } },
+ { "𝕟", { 240, 157, 149, 159, 0 } },
+ { "¬", { 194, 172, 0 } },
+ { "∉", { 226, 136, 137, 0 } },
+ { "⋹̸", { 226, 139, 185, 204, 184, 0 } },
+ { "⋵̸", { 226, 139, 181, 204, 184, 0 } },
+ { "∉", { 226, 136, 137, 0 } },
+ { "⋷", { 226, 139, 183, 0 } },
+ { "⋶", { 226, 139, 182, 0 } },
+ { "∌", { 226, 136, 140, 0 } },
+ { "∌", { 226, 136, 140, 0 } },
+ { "⋾", { 226, 139, 190, 0 } },
+ { "⋽", { 226, 139, 189, 0 } },
+ { "∦", { 226, 136, 166, 0 } },
+ { "∦", { 226, 136, 166, 0 } },
+ { "⫽⃥", { 226, 171, 189, 226, 131, 165, 0 } },
+ { "∂̸", { 226, 136, 130, 204, 184, 0 } },
+ { "⨔", { 226, 168, 148, 0 } },
+ { "⊀", { 226, 138, 128, 0 } },
+ { "⋠", { 226, 139, 160, 0 } },
+ { "⪯̸", { 226, 170, 175, 204, 184, 0 } },
+ { "⊀", { 226, 138, 128, 0 } },
+ { "⪯̸", { 226, 170, 175, 204, 184, 0 } },
+ { "⇏", { 226, 135, 143, 0 } },
+ { "↛", { 226, 134, 155, 0 } },
+ { "⤳̸", { 226, 164, 179, 204, 184, 0 } },
+ { "↝̸", { 226, 134, 157, 204, 184, 0 } },
+ { "↛", { 226, 134, 155, 0 } },
+ { "⋫", { 226, 139, 171, 0 } },
+ { "⋭", { 226, 139, 173, 0 } },
+ { "⊁", { 226, 138, 129, 0 } },
+ { "⋡", { 226, 139, 161, 0 } },
+ { "⪰̸", { 226, 170, 176, 204, 184, 0 } },
+ { "𝓃", { 240, 157, 147, 131, 0 } },
+ { "∤", { 226, 136, 164, 0 } },
+ { "∦", { 226, 136, 166, 0 } },
+ { "≁", { 226, 137, 129, 0 } },
+ { "≄", { 226, 137, 132, 0 } },
+ { "≄", { 226, 137, 132, 0 } },
+ { "∤", { 226, 136, 164, 0 } },
+ { "∦", { 226, 136, 166, 0 } },
+ { "⋢", { 226, 139, 162, 0 } },
+ { "⋣", { 226, 139, 163, 0 } },
+ { "⊄", { 226, 138, 132, 0 } },
+ { "⫅̸", { 226, 171, 133, 204, 184, 0 } },
+ { "⊈", { 226, 138, 136, 0 } },
+ { "⊂⃒", { 226, 138, 130, 226, 131, 146, 0 } },
+ { "⊈", { 226, 138, 136, 0 } },
+ { "⫅̸", { 226, 171, 133, 204, 184, 0 } },
+ { "⊁", { 226, 138, 129, 0 } },
+ { "⪰̸", { 226, 170, 176, 204, 184, 0 } },
+ { "⊅", { 226, 138, 133, 0 } },
+ { "⫆̸", { 226, 171, 134, 204, 184, 0 } },
+ { "⊉", { 226, 138, 137, 0 } },
+ { "⊃⃒", { 226, 138, 131, 226, 131, 146, 0 } },
+ { "⊉", { 226, 138, 137, 0 } },
+ { "⫆̸", { 226, 171, 134, 204, 184, 0 } },
+ { "≹", { 226, 137, 185, 0 } },
+ { "ñ", { 195, 177, 0 } },
+ { "≸", { 226, 137, 184, 0 } },
+ { "⋪", { 226, 139, 170, 0 } },
+ { "⋬", { 226, 139, 172, 0 } },
+ { "⋫", { 226, 139, 171, 0 } },
+ { "⋭", { 226, 139, 173, 0 } },
+ { "ν", { 206, 189, 0 } },
+ { "#", { 35, 0 } },
+ { "№", { 226, 132, 150, 0 } },
+ { " ", { 226, 128, 135, 0 } },
+ { "⊭", { 226, 138, 173, 0 } },
+ { "⤄", { 226, 164, 132, 0 } },
+ { "≍⃒", { 226, 137, 141, 226, 131, 146, 0 } },
+ { "⊬", { 226, 138, 172, 0 } },
+ { "≥⃒", { 226, 137, 165, 226, 131, 146, 0 } },
+ { ">⃒", { 62, 226, 131, 146, 0 } },
+ { "⧞", { 226, 167, 158, 0 } },
+ { "⤂", { 226, 164, 130, 0 } },
+ { "≤⃒", { 226, 137, 164, 226, 131, 146, 0 } },
+ { "<⃒", { 60, 226, 131, 146, 0 } },
+ { "⊴⃒", { 226, 138, 180, 226, 131, 146, 0 } },
+ { "⤃", { 226, 164, 131, 0 } },
+ { "⊵⃒", { 226, 138, 181, 226, 131, 146, 0 } },
+ { "∼⃒", { 226, 136, 188, 226, 131, 146, 0 } },
+ { "⇖", { 226, 135, 150, 0 } },
+ { "⤣", { 226, 164, 163, 0 } },
+ { "↖", { 226, 134, 150, 0 } },
+ { "↖", { 226, 134, 150, 0 } },
+ { "⤧", { 226, 164, 167, 0 } },
+ { "Ⓢ", { 226, 147, 136, 0 } },
+ { "ó", { 195, 179, 0 } },
+ { "⊛", { 226, 138, 155, 0 } },
+ { "⊚", { 226, 138, 154, 0 } },
+ { "ô", { 195, 180, 0 } },
+ { "о", { 208, 190, 0 } },
+ { "⊝", { 226, 138, 157, 0 } },
+ { "ő", { 197, 145, 0 } },
+ { "⨸", { 226, 168, 184, 0 } },
+ { "⊙", { 226, 138, 153, 0 } },
+ { "⦼", { 226, 166, 188, 0 } },
+ { "œ", { 197, 147, 0 } },
+ { "⦿", { 226, 166, 191, 0 } },
+ { "𝔬", { 240, 157, 148, 172, 0 } },
+ { "˛", { 203, 155, 0 } },
+ { "ò", { 195, 178, 0 } },
+ { "⧁", { 226, 167, 129, 0 } },
+ { "⦵", { 226, 166, 181, 0 } },
+ { "Ω", { 206, 169, 0 } },
+ { "∮", { 226, 136, 174, 0 } },
+ { "↺", { 226, 134, 186, 0 } },
+ { "⦾", { 226, 166, 190, 0 } },
+ { "⦻", { 226, 166, 187, 0 } },
+ { "‾", { 226, 128, 190, 0 } },
+ { "⧀", { 226, 167, 128, 0 } },
+ { "ō", { 197, 141, 0 } },
+ { "ω", { 207, 137, 0 } },
+ { "ο", { 206, 191, 0 } },
+ { "⦶", { 226, 166, 182, 0 } },
+ { "⊖", { 226, 138, 150, 0 } },
+ { "𝕠", { 240, 157, 149, 160, 0 } },
+ { "⦷", { 226, 166, 183, 0 } },
+ { "⦹", { 226, 166, 185, 0 } },
+ { "⊕", { 226, 138, 149, 0 } },
+ { "∨", { 226, 136, 168, 0 } },
+ { "↻", { 226, 134, 187, 0 } },
+ { "⩝", { 226, 169, 157, 0 } },
+ { "ℴ", { 226, 132, 180, 0 } },
+ { "ℴ", { 226, 132, 180, 0 } },
+ { "ª", { 194, 170, 0 } },
+ { "º", { 194, 186, 0 } },
+ { "⊶", { 226, 138, 182, 0 } },
+ { "⩖", { 226, 169, 150, 0 } },
+ { "⩗", { 226, 169, 151, 0 } },
+ { "⩛", { 226, 169, 155, 0 } },
+ { "ℴ", { 226, 132, 180, 0 } },
+ { "ø", { 195, 184, 0 } },
+ { "⊘", { 226, 138, 152, 0 } },
+ { "õ", { 195, 181, 0 } },
+ { "⊗", { 226, 138, 151, 0 } },
+ { "⨶", { 226, 168, 182, 0 } },
+ { "ö", { 195, 182, 0 } },
+ { "⌽", { 226, 140, 189, 0 } },
+ { "∥", { 226, 136, 165, 0 } },
+ { "¶", { 194, 182, 0 } },
+ { "∥", { 226, 136, 165, 0 } },
+ { "⫳", { 226, 171, 179, 0 } },
+ { "⫽", { 226, 171, 189, 0 } },
+ { "∂", { 226, 136, 130, 0 } },
+ { "п", { 208, 191, 0 } },
+ { "%", { 37, 0 } },
+ { ".", { 46, 0 } },
+ { "‰", { 226, 128, 176, 0 } },
+ { "⊥", { 226, 138, 165, 0 } },
+ { "‱", { 226, 128, 177, 0 } },
+ { "𝔭", { 240, 157, 148, 173, 0 } },
+ { "φ", { 207, 134, 0 } },
+ { "ϕ", { 207, 149, 0 } },
+ { "ℳ", { 226, 132, 179, 0 } },
+ { "☎", { 226, 152, 142, 0 } },
+ { "π", { 207, 128, 0 } },
+ { "⋔", { 226, 139, 148, 0 } },
+ { "ϖ", { 207, 150, 0 } },
+ { "ℏ", { 226, 132, 143, 0 } },
+ { "ℎ", { 226, 132, 142, 0 } },
+ { "ℏ", { 226, 132, 143, 0 } },
+ { "+", { 43, 0 } },
+ { "⨣", { 226, 168, 163, 0 } },
+ { "⊞", { 226, 138, 158, 0 } },
+ { "⨢", { 226, 168, 162, 0 } },
+ { "∔", { 226, 136, 148, 0 } },
+ { "⨥", { 226, 168, 165, 0 } },
+ { "⩲", { 226, 169, 178, 0 } },
+ { "±", { 194, 177, 0 } },
+ { "⨦", { 226, 168, 166, 0 } },
+ { "⨧", { 226, 168, 167, 0 } },
+ { "±", { 194, 177, 0 } },
+ { "⨕", { 226, 168, 149, 0 } },
+ { "𝕡", { 240, 157, 149, 161, 0 } },
+ { "£", { 194, 163, 0 } },
+ { "≺", { 226, 137, 186, 0 } },
+ { "⪳", { 226, 170, 179, 0 } },
+ { "⪷", { 226, 170, 183, 0 } },
+ { "≼", { 226, 137, 188, 0 } },
+ { "⪯", { 226, 170, 175, 0 } },
+ { "≺", { 226, 137, 186, 0 } },
+ { "⪷", { 226, 170, 183, 0 } },
+ { "≼", { 226, 137, 188, 0 } },
+ { "⪯", { 226, 170, 175, 0 } },
+ { "⪹", { 226, 170, 185, 0 } },
+ { "⪵", { 226, 170, 181, 0 } },
+ { "⋨", { 226, 139, 168, 0 } },
+ { "≾", { 226, 137, 190, 0 } },
+ { "′", { 226, 128, 178, 0 } },
+ { "ℙ", { 226, 132, 153, 0 } },
+ { "⪵", { 226, 170, 181, 0 } },
+ { "⪹", { 226, 170, 185, 0 } },
+ { "⋨", { 226, 139, 168, 0 } },
+ { "∏", { 226, 136, 143, 0 } },
+ { "⌮", { 226, 140, 174, 0 } },
+ { "⌒", { 226, 140, 146, 0 } },
+ { "⌓", { 226, 140, 147, 0 } },
+ { "∝", { 226, 136, 157, 0 } },
+ { "∝", { 226, 136, 157, 0 } },
+ { "≾", { 226, 137, 190, 0 } },
+ { "⊰", { 226, 138, 176, 0 } },
+ { "𝓅", { 240, 157, 147, 133, 0 } },
+ { "ψ", { 207, 136, 0 } },
+ { " ", { 226, 128, 136, 0 } },
+ { "𝔮", { 240, 157, 148, 174, 0 } },
+ { "⨌", { 226, 168, 140, 0 } },
+ { "𝕢", { 240, 157, 149, 162, 0 } },
+ { "⁗", { 226, 129, 151, 0 } },
+ { "𝓆", { 240, 157, 147, 134, 0 } },
+ { "ℍ", { 226, 132, 141, 0 } },
+ { "⨖", { 226, 168, 150, 0 } },
+ { "?", { 63, 0 } },
+ { "≟", { 226, 137, 159, 0 } },
+ { """, { 34, 0 } },
+ { "⇛", { 226, 135, 155, 0 } },
+ { "⇒", { 226, 135, 146, 0 } },
+ { "⤜", { 226, 164, 156, 0 } },
+ { "⤏", { 226, 164, 143, 0 } },
+ { "⥤", { 226, 165, 164, 0 } },
+ { "∽̱", { 226, 136, 189, 204, 177, 0 } },
+ { "ŕ", { 197, 149, 0 } },
+ { "√", { 226, 136, 154, 0 } },
+ { "⦳", { 226, 166, 179, 0 } },
+ { "⟩", { 226, 159, 169, 0 } },
+ { "⦒", { 226, 166, 146, 0 } },
+ { "⦥", { 226, 166, 165, 0 } },
+ { "⟩", { 226, 159, 169, 0 } },
+ { "»", { 194, 187, 0 } },
+ { "→", { 226, 134, 146, 0 } },
+ { "⥵", { 226, 165, 181, 0 } },
+ { "⇥", { 226, 135, 165, 0 } },
+ { "⤠", { 226, 164, 160, 0 } },
+ { "⤳", { 226, 164, 179, 0 } },
+ { "⤞", { 226, 164, 158, 0 } },
+ { "↪", { 226, 134, 170, 0 } },
+ { "↬", { 226, 134, 172, 0 } },
+ { "⥅", { 226, 165, 133, 0 } },
+ { "⥴", { 226, 165, 180, 0 } },
+ { "↣", { 226, 134, 163, 0 } },
+ { "↝", { 226, 134, 157, 0 } },
+ { "⤚", { 226, 164, 154, 0 } },
+ { "∶", { 226, 136, 182, 0 } },
+ { "ℚ", { 226, 132, 154, 0 } },
+ { "⤍", { 226, 164, 141, 0 } },
+ { "❳", { 226, 157, 179, 0 } },
+ { "}", { 125, 0 } },
+ { "]", { 93, 0 } },
+ { "⦌", { 226, 166, 140, 0 } },
+ { "⦎", { 226, 166, 142, 0 } },
+ { "⦐", { 226, 166, 144, 0 } },
+ { "ř", { 197, 153, 0 } },
+ { "ŗ", { 197, 151, 0 } },
+ { "⌉", { 226, 140, 137, 0 } },
+ { "}", { 125, 0 } },
+ { "р", { 209, 128, 0 } },
+ { "⤷", { 226, 164, 183, 0 } },
+ { "⥩", { 226, 165, 169, 0 } },
+ { "”", { 226, 128, 157, 0 } },
+ { "”", { 226, 128, 157, 0 } },
+ { "↳", { 226, 134, 179, 0 } },
+ { "ℜ", { 226, 132, 156, 0 } },
+ { "ℛ", { 226, 132, 155, 0 } },
+ { "ℜ", { 226, 132, 156, 0 } },
+ { "ℝ", { 226, 132, 157, 0 } },
+ { "▭", { 226, 150, 173, 0 } },
+ { "®", { 194, 174, 0 } },
+ { "⥽", { 226, 165, 189, 0 } },
+ { "⌋", { 226, 140, 139, 0 } },
+ { "𝔯", { 240, 157, 148, 175, 0 } },
+ { "⇁", { 226, 135, 129, 0 } },
+ { "⇀", { 226, 135, 128, 0 } },
+ { "⥬", { 226, 165, 172, 0 } },
+ { "ρ", { 207, 129, 0 } },
+ { "ϱ", { 207, 177, 0 } },
+ { "→", { 226, 134, 146, 0 } },
+ { "↣", { 226, 134, 163, 0 } },
+ { "⇁", { 226, 135, 129, 0 } },
+ { "⇀", { 226, 135, 128, 0 } },
+ { "⇄", { 226, 135, 132, 0 } },
+ { "⇌", { 226, 135, 140, 0 } },
+ { "⇉", { 226, 135, 137, 0 } },
+ { "↝", { 226, 134, 157, 0 } },
+ { "⋌", { 226, 139, 140, 0 } },
+ { "˚", { 203, 154, 0 } },
+ { "≓", { 226, 137, 147, 0 } },
+ { "⇄", { 226, 135, 132, 0 } },
+ { "⇌", { 226, 135, 140, 0 } },
+ { "‏", { 226, 128, 143, 0 } },
+ { "⎱", { 226, 142, 177, 0 } },
+ { "⎱", { 226, 142, 177, 0 } },
+ { "⫮", { 226, 171, 174, 0 } },
+ { "⟭", { 226, 159, 173, 0 } },
+ { "⇾", { 226, 135, 190, 0 } },
+ { "⟧", { 226, 159, 167, 0 } },
+ { "⦆", { 226, 166, 134, 0 } },
+ { "𝕣", { 240, 157, 149, 163, 0 } },
+ { "⨮", { 226, 168, 174, 0 } },
+ { "⨵", { 226, 168, 181, 0 } },
+ { ")", { 41, 0 } },
+ { "⦔", { 226, 166, 148, 0 } },
+ { "⨒", { 226, 168, 146, 0 } },
+ { "⇉", { 226, 135, 137, 0 } },
+ { "›", { 226, 128, 186, 0 } },
+ { "𝓇", { 240, 157, 147, 135, 0 } },
+ { "↱", { 226, 134, 177, 0 } },
+ { "]", { 93, 0 } },
+ { "’", { 226, 128, 153, 0 } },
+ { "’", { 226, 128, 153, 0 } },
+ { "⋌", { 226, 139, 140, 0 } },
+ { "⋊", { 226, 139, 138, 0 } },
+ { "▹", { 226, 150, 185, 0 } },
+ { "⊵", { 226, 138, 181, 0 } },
+ { "▸", { 226, 150, 184, 0 } },
+ { "⧎", { 226, 167, 142, 0 } },
+ { "⥨", { 226, 165, 168, 0 } },
+ { "℞", { 226, 132, 158, 0 } },
+ { "ś", { 197, 155, 0 } },
+ { "‚", { 226, 128, 154, 0 } },
+ { "≻", { 226, 137, 187, 0 } },
+ { "⪴", { 226, 170, 180, 0 } },
+ { "⪸", { 226, 170, 184, 0 } },
+ { "š", { 197, 161, 0 } },
+ { "≽", { 226, 137, 189, 0 } },
+ { "⪰", { 226, 170, 176, 0 } },
+ { "ş", { 197, 159, 0 } },
+ { "ŝ", { 197, 157, 0 } },
+ { "⪶", { 226, 170, 182, 0 } },
+ { "⪺", { 226, 170, 186, 0 } },
+ { "⋩", { 226, 139, 169, 0 } },
+ { "⨓", { 226, 168, 147, 0 } },
+ { "≿", { 226, 137, 191, 0 } },
+ { "с", { 209, 129, 0 } },
+ { "⋅", { 226, 139, 133, 0 } },
+ { "⊡", { 226, 138, 161, 0 } },
+ { "⩦", { 226, 169, 166, 0 } },
+ { "⇘", { 226, 135, 152, 0 } },
+ { "⤥", { 226, 164, 165, 0 } },
+ { "↘", { 226, 134, 152, 0 } },
+ { "↘", { 226, 134, 152, 0 } },
+ { "§", { 194, 167, 0 } },
+ { ";", { 59, 0 } },
+ { "⤩", { 226, 164, 169, 0 } },
+ { "∖", { 226, 136, 150, 0 } },
+ { "∖", { 226, 136, 150, 0 } },
+ { "✶", { 226, 156, 182, 0 } },
+ { "𝔰", { 240, 157, 148, 176, 0 } },
+ { "⌢", { 226, 140, 162, 0 } },
+ { "♯", { 226, 153, 175, 0 } },
+ { "щ", { 209, 137, 0 } },
+ { "ш", { 209, 136, 0 } },
+ { "∣", { 226, 136, 163, 0 } },
+ { "∥", { 226, 136, 165, 0 } },
+ { "­", { 194, 173, 0 } },
+ { "σ", { 207, 131, 0 } },
+ { "ς", { 207, 130, 0 } },
+ { "ς", { 207, 130, 0 } },
+ { "∼", { 226, 136, 188, 0 } },
+ { "⩪", { 226, 169, 170, 0 } },
+ { "≃", { 226, 137, 131, 0 } },
+ { "≃", { 226, 137, 131, 0 } },
+ { "⪞", { 226, 170, 158, 0 } },
+ { "⪠", { 226, 170, 160, 0 } },
+ { "⪝", { 226, 170, 157, 0 } },
+ { "⪟", { 226, 170, 159, 0 } },
+ { "≆", { 226, 137, 134, 0 } },
+ { "⨤", { 226, 168, 164, 0 } },
+ { "⥲", { 226, 165, 178, 0 } },
+ { "←", { 226, 134, 144, 0 } },
+ { "∖", { 226, 136, 150, 0 } },
+ { "⨳", { 226, 168, 179, 0 } },
+ { "⧤", { 226, 167, 164, 0 } },
+ { "∣", { 226, 136, 163, 0 } },
+ { "⌣", { 226, 140, 163, 0 } },
+ { "⪪", { 226, 170, 170, 0 } },
+ { "⪬", { 226, 170, 172, 0 } },
+ { "⪬︀", { 226, 170, 172, 239, 184, 128, 0 } },
+ { "ь", { 209, 140, 0 } },
+ { "/", { 47, 0 } },
+ { "⧄", { 226, 167, 132, 0 } },
+ { "⌿", { 226, 140, 191, 0 } },
+ { "𝕤", { 240, 157, 149, 164, 0 } },
+ { "♠", { 226, 153, 160, 0 } },
+ { "♠", { 226, 153, 160, 0 } },
+ { "∥", { 226, 136, 165, 0 } },
+ { "⊓", { 226, 138, 147, 0 } },
+ { "⊓︀", { 226, 138, 147, 239, 184, 128, 0 } },
+ { "⊔", { 226, 138, 148, 0 } },
+ { "⊔︀", { 226, 138, 148, 239, 184, 128, 0 } },
+ { "⊏", { 226, 138, 143, 0 } },
+ { "⊑", { 226, 138, 145, 0 } },
+ { "⊏", { 226, 138, 143, 0 } },
+ { "⊑", { 226, 138, 145, 0 } },
+ { "⊐", { 226, 138, 144, 0 } },
+ { "⊒", { 226, 138, 146, 0 } },
+ { "⊐", { 226, 138, 144, 0 } },
+ { "⊒", { 226, 138, 146, 0 } },
+ { "□", { 226, 150, 161, 0 } },
+ { "□", { 226, 150, 161, 0 } },
+ { "▪", { 226, 150, 170, 0 } },
+ { "▪", { 226, 150, 170, 0 } },
+ { "→", { 226, 134, 146, 0 } },
+ { "𝓈", { 240, 157, 147, 136, 0 } },
+ { "∖", { 226, 136, 150, 0 } },
+ { "⌣", { 226, 140, 163, 0 } },
+ { "⋆", { 226, 139, 134, 0 } },
+ { "☆", { 226, 152, 134, 0 } },
+ { "★", { 226, 152, 133, 0 } },
+ { "ϵ", { 207, 181, 0 } },
+ { "ϕ", { 207, 149, 0 } },
+ { "¯", { 194, 175, 0 } },
+ { "⊂", { 226, 138, 130, 0 } },
+ { "⫅", { 226, 171, 133, 0 } },
+ { "⪽", { 226, 170, 189, 0 } },
+ { "⊆", { 226, 138, 134, 0 } },
+ { "⫃", { 226, 171, 131, 0 } },
+ { "⫁", { 226, 171, 129, 0 } },
+ { "⫋", { 226, 171, 139, 0 } },
+ { "⊊", { 226, 138, 138, 0 } },
+ { "⪿", { 226, 170, 191, 0 } },
+ { "⥹", { 226, 165, 185, 0 } },
+ { "⊂", { 226, 138, 130, 0 } },
+ { "⊆", { 226, 138, 134, 0 } },
+ { "⫅", { 226, 171, 133, 0 } },
+ { "⊊", { 226, 138, 138, 0 } },
+ { "⫋", { 226, 171, 139, 0 } },
+ { "⫇", { 226, 171, 135, 0 } },
+ { "⫕", { 226, 171, 149, 0 } },
+ { "⫓", { 226, 171, 147, 0 } },
+ { "≻", { 226, 137, 187, 0 } },
+ { "⪸", { 226, 170, 184, 0 } },
+ { "≽", { 226, 137, 189, 0 } },
+ { "⪰", { 226, 170, 176, 0 } },
+ { "⪺", { 226, 170, 186, 0 } },
+ { "⪶", { 226, 170, 182, 0 } },
+ { "⋩", { 226, 139, 169, 0 } },
+ { "≿", { 226, 137, 191, 0 } },
+ { "∑", { 226, 136, 145, 0 } },
+ { "♪", { 226, 153, 170, 0 } },
+ { "⊃", { 226, 138, 131, 0 } },
+ { "¹", { 194, 185, 0 } },
+ { "²", { 194, 178, 0 } },
+ { "³", { 194, 179, 0 } },
+ { "⫆", { 226, 171, 134, 0 } },
+ { "⪾", { 226, 170, 190, 0 } },
+ { "⫘", { 226, 171, 152, 0 } },
+ { "⊇", { 226, 138, 135, 0 } },
+ { "⫄", { 226, 171, 132, 0 } },
+ { "⟉", { 226, 159, 137, 0 } },
+ { "⫗", { 226, 171, 151, 0 } },
+ { "⥻", { 226, 165, 187, 0 } },
+ { "⫂", { 226, 171, 130, 0 } },
+ { "⫌", { 226, 171, 140, 0 } },
+ { "⊋", { 226, 138, 139, 0 } },
+ { "⫀", { 226, 171, 128, 0 } },
+ { "⊃", { 226, 138, 131, 0 } },
+ { "⊇", { 226, 138, 135, 0 } },
+ { "⫆", { 226, 171, 134, 0 } },
+ { "⊋", { 226, 138, 139, 0 } },
+ { "⫌", { 226, 171, 140, 0 } },
+ { "⫈", { 226, 171, 136, 0 } },
+ { "⫔", { 226, 171, 148, 0 } },
+ { "⫖", { 226, 171, 150, 0 } },
+ { "⇙", { 226, 135, 153, 0 } },
+ { "⤦", { 226, 164, 166, 0 } },
+ { "↙", { 226, 134, 153, 0 } },
+ { "↙", { 226, 134, 153, 0 } },
+ { "⤪", { 226, 164, 170, 0 } },
+ { "ß", { 195, 159, 0 } },
+ { "⌖", { 226, 140, 150, 0 } },
+ { "τ", { 207, 132, 0 } },
+ { "⎴", { 226, 142, 180, 0 } },
+ { "ť", { 197, 165, 0 } },
+ { "ţ", { 197, 163, 0 } },
+ { "т", { 209, 130, 0 } },
+ { "⃛", { 226, 131, 155, 0 } },
+ { "⌕", { 226, 140, 149, 0 } },
+ { "𝔱", { 240, 157, 148, 177, 0 } },
+ { "∴", { 226, 136, 180, 0 } },
+ { "∴", { 226, 136, 180, 0 } },
+ { "θ", { 206, 184, 0 } },
+ { "ϑ", { 207, 145, 0 } },
+ { "ϑ", { 207, 145, 0 } },
+ { "≈", { 226, 137, 136, 0 } },
+ { "∼", { 226, 136, 188, 0 } },
+ { " ", { 226, 128, 137, 0 } },
+ { "≈", { 226, 137, 136, 0 } },
+ { "∼", { 226, 136, 188, 0 } },
+ { "þ", { 195, 190, 0 } },
+ { "˜", { 203, 156, 0 } },
+ { "×", { 195, 151, 0 } },
+ { "⊠", { 226, 138, 160, 0 } },
+ { "⨱", { 226, 168, 177, 0 } },
+ { "⨰", { 226, 168, 176, 0 } },
+ { "∭", { 226, 136, 173, 0 } },
+ { "⤨", { 226, 164, 168, 0 } },
+ { "⊤", { 226, 138, 164, 0 } },
+ { "⌶", { 226, 140, 182, 0 } },
+ { "⫱", { 226, 171, 177, 0 } },
+ { "𝕥", { 240, 157, 149, 165, 0 } },
+ { "⫚", { 226, 171, 154, 0 } },
+ { "⤩", { 226, 164, 169, 0 } },
+ { "‴", { 226, 128, 180, 0 } },
+ { "™", { 226, 132, 162, 0 } },
+ { "▵", { 226, 150, 181, 0 } },
+ { "▿", { 226, 150, 191, 0 } },
+ { "◃", { 226, 151, 131, 0 } },
+ { "⊴", { 226, 138, 180, 0 } },
+ { "≜", { 226, 137, 156, 0 } },
+ { "▹", { 226, 150, 185, 0 } },
+ { "⊵", { 226, 138, 181, 0 } },
+ { "◬", { 226, 151, 172, 0 } },
+ { "≜", { 226, 137, 156, 0 } },
+ { "⨺", { 226, 168, 186, 0 } },
+ { "⨹", { 226, 168, 185, 0 } },
+ { "⧍", { 226, 167, 141, 0 } },
+ { "⨻", { 226, 168, 187, 0 } },
+ { "⏢", { 226, 143, 162, 0 } },
+ { "𝓉", { 240, 157, 147, 137, 0 } },
+ { "ц", { 209, 134, 0 } },
+ { "ћ", { 209, 155, 0 } },
+ { "ŧ", { 197, 167, 0 } },
+ { "≬", { 226, 137, 172, 0 } },
+ { "↞", { 226, 134, 158, 0 } },
+ { "↠", { 226, 134, 160, 0 } },
+ { "⇑", { 226, 135, 145, 0 } },
+ { "⥣", { 226, 165, 163, 0 } },
+ { "ú", { 195, 186, 0 } },
+ { "↑", { 226, 134, 145, 0 } },
+ { "ў", { 209, 158, 0 } },
+ { "ŭ", { 197, 173, 0 } },
+ { "û", { 195, 187, 0 } },
+ { "у", { 209, 131, 0 } },
+ { "⇅", { 226, 135, 133, 0 } },
+ { "ű", { 197, 177, 0 } },
+ { "⥮", { 226, 165, 174, 0 } },
+ { "⥾", { 226, 165, 190, 0 } },
+ { "𝔲", { 240, 157, 148, 178, 0 } },
+ { "ù", { 195, 185, 0 } },
+ { "↿", { 226, 134, 191, 0 } },
+ { "↾", { 226, 134, 190, 0 } },
+ { "▀", { 226, 150, 128, 0 } },
+ { "⌜", { 226, 140, 156, 0 } },
+ { "⌜", { 226, 140, 156, 0 } },
+ { "⌏", { 226, 140, 143, 0 } },
+ { "◸", { 226, 151, 184, 0 } },
+ { "ū", { 197, 171, 0 } },
+ { "¨", { 194, 168, 0 } },
+ { "ų", { 197, 179, 0 } },
+ { "𝕦", { 240, 157, 149, 166, 0 } },
+ { "↑", { 226, 134, 145, 0 } },
+ { "↕", { 226, 134, 149, 0 } },
+ { "↿", { 226, 134, 191, 0 } },
+ { "↾", { 226, 134, 190, 0 } },
+ { "⊎", { 226, 138, 142, 0 } },
+ { "υ", { 207, 133, 0 } },
+ { "ϒ", { 207, 146, 0 } },
+ { "υ", { 207, 133, 0 } },
+ { "⇈", { 226, 135, 136, 0 } },
+ { "⌝", { 226, 140, 157, 0 } },
+ { "⌝", { 226, 140, 157, 0 } },
+ { "⌎", { 226, 140, 142, 0 } },
+ { "ů", { 197, 175, 0 } },
+ { "◹", { 226, 151, 185, 0 } },
+ { "𝓊", { 240, 157, 147, 138, 0 } },
+ { "⋰", { 226, 139, 176, 0 } },
+ { "ũ", { 197, 169, 0 } },
+ { "▵", { 226, 150, 181, 0 } },
+ { "▴", { 226, 150, 180, 0 } },
+ { "⇈", { 226, 135, 136, 0 } },
+ { "ü", { 195, 188, 0 } },
+ { "⦧", { 226, 166, 167, 0 } },
+ { "⇕", { 226, 135, 149, 0 } },
+ { "⫨", { 226, 171, 168, 0 } },
+ { "⫩", { 226, 171, 169, 0 } },
+ { "⊨", { 226, 138, 168, 0 } },
+ { "⦜", { 226, 166, 156, 0 } },
+ { "ϵ", { 207, 181, 0 } },
+ { "ϰ", { 207, 176, 0 } },
+ { "∅", { 226, 136, 133, 0 } },
+ { "ϕ", { 207, 149, 0 } },
+ { "ϖ", { 207, 150, 0 } },
+ { "∝", { 226, 136, 157, 0 } },
+ { "↕", { 226, 134, 149, 0 } },
+ { "ϱ", { 207, 177, 0 } },
+ { "ς", { 207, 130, 0 } },
+ { "⊊︀", { 226, 138, 138, 239, 184, 128, 0 } },
+ { "⫋︀", { 226, 171, 139, 239, 184, 128, 0 } },
+ { "⊋︀", { 226, 138, 139, 239, 184, 128, 0 } },
+ { "⫌︀", { 226, 171, 140, 239, 184, 128, 0 } },
+ { "ϑ", { 207, 145, 0 } },
+ { "⊲", { 226, 138, 178, 0 } },
+ { "⊳", { 226, 138, 179, 0 } },
+ { "в", { 208, 178, 0 } },
+ { "⊢", { 226, 138, 162, 0 } },
+ { "∨", { 226, 136, 168, 0 } },
+ { "⊻", { 226, 138, 187, 0 } },
+ { "≚", { 226, 137, 154, 0 } },
+ { "⋮", { 226, 139, 174, 0 } },
+ { "|", { 124, 0 } },
+ { "|", { 124, 0 } },
+ { "𝔳", { 240, 157, 148, 179, 0 } },
+ { "⊲", { 226, 138, 178, 0 } },
+ { "⊂⃒", { 226, 138, 130, 226, 131, 146, 0 } },
+ { "⊃⃒", { 226, 138, 131, 226, 131, 146, 0 } },
+ { "𝕧", { 240, 157, 149, 167, 0 } },
+ { "∝", { 226, 136, 157, 0 } },
+ { "⊳", { 226, 138, 179, 0 } },
+ { "𝓋", { 240, 157, 147, 139, 0 } },
+ { "⫋︀", { 226, 171, 139, 239, 184, 128, 0 } },
+ { "⊊︀", { 226, 138, 138, 239, 184, 128, 0 } },
+ { "⫌︀", { 226, 171, 140, 239, 184, 128, 0 } },
+ { "⊋︀", { 226, 138, 139, 239, 184, 128, 0 } },
+ { "⦚", { 226, 166, 154, 0 } },
+ { "ŵ", { 197, 181, 0 } },
+ { "⩟", { 226, 169, 159, 0 } },
+ { "∧", { 226, 136, 167, 0 } },
+ { "≙", { 226, 137, 153, 0 } },
+ { "℘", { 226, 132, 152, 0 } },
+ { "𝔴", { 240, 157, 148, 180, 0 } },
+ { "𝕨", { 240, 157, 149, 168, 0 } },
+ { "℘", { 226, 132, 152, 0 } },
+ { "≀", { 226, 137, 128, 0 } },
+ { "≀", { 226, 137, 128, 0 } },
+ { "𝓌", { 240, 157, 147, 140, 0 } },
+ { "⋂", { 226, 139, 130, 0 } },
+ { "◯", { 226, 151, 175, 0 } },
+ { "⋃", { 226, 139, 131, 0 } },
+ { "▽", { 226, 150, 189, 0 } },
+ { "𝔵", { 240, 157, 148, 181, 0 } },
+ { "⟺", { 226, 159, 186, 0 } },
+ { "⟷", { 226, 159, 183, 0 } },
+ { "ξ", { 206, 190, 0 } },
+ { "⟸", { 226, 159, 184, 0 } },
+ { "⟵", { 226, 159, 181, 0 } },
+ { "⟼", { 226, 159, 188, 0 } },
+ { "⋻", { 226, 139, 187, 0 } },
+ { "⨀", { 226, 168, 128, 0 } },
+ { "𝕩", { 240, 157, 149, 169, 0 } },
+ { "⨁", { 226, 168, 129, 0 } },
+ { "⨂", { 226, 168, 130, 0 } },
+ { "⟹", { 226, 159, 185, 0 } },
+ { "⟶", { 226, 159, 182, 0 } },
+ { "𝓍", { 240, 157, 147, 141, 0 } },
+ { "⨆", { 226, 168, 134, 0 } },
+ { "⨄", { 226, 168, 132, 0 } },
+ { "△", { 226, 150, 179, 0 } },
+ { "⋁", { 226, 139, 129, 0 } },
+ { "⋀", { 226, 139, 128, 0 } },
+ { "ý", { 195, 189, 0 } },
+ { "я", { 209, 143, 0 } },
+ { "ŷ", { 197, 183, 0 } },
+ { "ы", { 209, 139, 0 } },
+ { "¥", { 194, 165, 0 } },
+ { "𝔶", { 240, 157, 148, 182, 0 } },
+ { "ї", { 209, 151, 0 } },
+ { "𝕪", { 240, 157, 149, 170, 0 } },
+ { "𝓎", { 240, 157, 147, 142, 0 } },
+ { "ю", { 209, 142, 0 } },
+ { "ÿ", { 195, 191, 0 } },
+ { "ź", { 197, 186, 0 } },
+ { "ž", { 197, 190, 0 } },
+ { "з", { 208, 183, 0 } },
+ { "ż", { 197, 188, 0 } },
+ { "ℨ", { 226, 132, 168, 0 } },
+ { "ζ", { 206, 182, 0 } },
+ { "𝔷", { 240, 157, 148, 183, 0 } },
+ { "ж", { 208, 182, 0 } },
+ { "⇝", { 226, 135, 157, 0 } },
+ { "𝕫", { 240, 157, 149, 171, 0 } },
+ { "𝓏", { 240, 157, 147, 143, 0 } },
+ { "‍", { 226, 128, 141, 0 } },
+ { "‌", { 226, 128, 140, 0 } }
+};
+
+
+struct entity_key {
+ const char* verbatim;
+ size_t verbatim_size;
+};
+
+
+static int
+entity_cmp(const void* p_key, const void* p_entity)
+{
+ struct entity_key* key = (struct entity_key*) p_key;
+ struct entity* ent = (struct entity*) p_entity;
+
+ return strncmp(key->verbatim, ent->verbatim, key->verbatim_size);
+}
+
+const char*
+entity_lookup(const char* verbatim, size_t verbatim_size)
+{
+ struct entity_key key = { verbatim, verbatim_size };
+ struct entity* ent;
+
+ ent = bsearch(&key, entity_table, sizeof(entity_table) / sizeof(entity_table[0]),
+ sizeof(struct entity), entity_cmp);
+
+ if(ent == NULL)
+ return NULL;
+
+ return (const char*) ent->utf8_bytes;
+}
diff --git a/md2html/entity.h b/md2html/entity.h
@@ -0,0 +1,35 @@
+/*
+ * MD4C: Markdown parser for C
+ * (http://github.com/mity/md4c)
+ *
+ * Copyright (c) 2016 Martin Mitas
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ */
+
+#ifndef MD2HTML_ENTITY_H
+#define MD2HTML_ENTITY_H
+
+#include <stdlib.h>
+
+
+const char* entity_lookup(const char* verbatim, size_t verbatim_size);
+
+
+#endif /* MD2HTML_ENTITY_H */
diff --git a/md2html/md2html.c b/md2html/md2html.c
@@ -31,6 +31,14 @@
#include "md4c.h"
#include "cmdline.h"
+#include "entity.h"
+
+
+/* Global options. */
+static unsigned renderer_flags = 0;
+static int want_fullhtml = 0;
+static int want_stat = 0;
+static int want_verbatim_entities = 0;
/*********************************
@@ -121,9 +129,10 @@ membuf_append_escaped(struct membuffer* buf, const char* data, MD_SIZE size)
}
}
-/**************************************
- *** HTML renderer implementation ***
- **************************************/
+
+/*****************************************
+ *** HTML rendering helper functions ***
+ *****************************************/
static void
open_code_block(struct membuffer* out, const MD_BLOCK_CODE_DETAIL* det)
@@ -140,6 +149,95 @@ open_code_block(struct membuffer* out, const MD_BLOCK_CODE_DETAIL* det)
MEMBUF_APPEND_LITERAL(out, ">");
}
+static unsigned
+hex_val(char ch)
+{
+ if('0' <= ch && ch <= '9')
+ return ch - '0';
+ if('A' <= ch && ch <= 'Z')
+ return ch - 'A' + 10;
+ else
+ return ch - 'a' + 10;
+}
+
+static void
+render_utf8_codepoint(struct membuffer* out, unsigned codepoint)
+{
+ unsigned char utf8[4];
+ size_t n;
+
+ if(codepoint <= 0x7f) {
+ n = 1;
+ utf8[0] = codepoint;
+ } else if(codepoint <= 0x7ff) {
+ n = 2;
+ utf8[0] = 0xc0 | ((codepoint >> 6) & 0x1f);
+ utf8[1] = 0x80 + ((codepoint >> 0) & 0x3f);
+ } else if(codepoint <= 0xffff) {
+ n = 3;
+ utf8[0] = 0xe0 | ((codepoint >> 12) & 0xf);
+ utf8[1] = 0x80 + ((codepoint >> 6) & 0x3f);
+ utf8[2] = 0x80 + ((codepoint >> 0) & 0x3f);
+ } else {
+ n = 4;
+ utf8[0] = 0xf0 | ((codepoint >> 18) & 0x7);
+ utf8[1] = 0x80 + ((codepoint >> 12) & 0x3f);
+ utf8[2] = 0x80 + ((codepoint >> 6) & 0x3f);
+ utf8[3] = 0x80 + ((codepoint >> 0) & 0x3f);
+ }
+
+ membuf_append_escaped(out, (char*)utf8, n);
+}
+
+/* Translate entity to its UTF-8 equivalent, or output the verbatim one
+ * if such entity is unknown (or if the translation is disabled). */
+static void
+render_entity(struct membuffer* out, const MD_CHAR* text, MD_SIZE size)
+{
+ if(want_verbatim_entities) {
+ membuf_append(out, text, size);
+ return;
+ }
+
+ /* We assume UTF-8 output is what is desired. */
+ if(size > 3 && text[1] == '#') {
+ unsigned codepoint = 0;
+
+ if(text[2] == 'x' || text[2] == 'X') {
+ /* Hexadecimal entity (e.g. "�")). */
+ int i;
+ for(i = 3; i < size-1; i++)
+ codepoint = 16 * codepoint + hex_val(text[i]);
+ } else {
+ /* Decimal entity (e.g. "&1234;") */
+ int i;
+ for(i = 2; i < size-1; i++)
+ codepoint = 10 * codepoint + (text[i] - '0');
+ }
+
+ if(codepoint <= 0x10ffff) { /* Max. Unicode codepoint. */
+ render_utf8_codepoint(out, codepoint);
+ return;
+ }
+ } else {
+ /* Named entity (e.g. " ". */
+ const char* ent;
+
+ ent = entity_lookup(text, size);
+ if(ent != NULL) {
+ membuf_append_escaped(out, ent, strlen(ent));
+ return;
+ }
+ }
+
+ membuf_append_escaped(out, text, size);
+}
+
+
+/**************************************
+ *** HTML renderer implementation ***
+ **************************************/
+
static int
enter_block_callback(MD_BLOCKTYPE type, void* detail, void* userdata)
{
@@ -208,10 +306,11 @@ text_callback(MD_TEXTTYPE type, const MD_CHAR* text, MD_SIZE size, void* userdat
struct membuffer* out = (struct membuffer*) userdata;
switch(type) {
- case MD_TEXT_BR: MEMBUF_APPEND_LITERAL(out, "<br>\n"); break;
- case MD_TEXT_SOFTBR: MEMBUF_APPEND_LITERAL(out, "\n"); break;
- case MD_TEXT_HTML: membuf_append(out, text, size); break;
- default: membuf_append_escaped(out, text, size); break;
+ case MD_TEXT_BR: MEMBUF_APPEND_LITERAL(out, "<br>\n"); break;
+ case MD_TEXT_SOFTBR: MEMBUF_APPEND_LITERAL(out, "\n"); break;
+ case MD_TEXT_HTML: membuf_append(out, text, size); break;
+ case MD_TEXT_ENTITY: render_entity(out, text, size); break;
+ default: membuf_append_escaped(out, text, size); break;
}
return 0;
@@ -229,7 +328,7 @@ debug_log_callback(const char* msg, void* userdata)
**********************/
static int
-process_file(FILE* in, FILE* out, unsigned flags, int fullhtml, int print_stat)
+process_file(FILE* in, FILE* out)
{
MD_RENDERER renderer = {
enter_block_callback,
@@ -238,7 +337,7 @@ process_file(FILE* in, FILE* out, unsigned flags, int fullhtml, int print_stat)
leave_span_callback,
text_callback,
debug_log_callback,
- flags
+ renderer_flags
};
MD_SIZE n;
@@ -275,7 +374,7 @@ process_file(FILE* in, FILE* out, unsigned flags, int fullhtml, int print_stat)
}
/* Write down the document in the HTML format. */
- if(fullhtml) {
+ if(want_fullhtml) {
fprintf(out, "<html>\n");
fprintf(out, "<head>\n");
fprintf(out, "<title></title>\n");
@@ -286,12 +385,12 @@ process_file(FILE* in, FILE* out, unsigned flags, int fullhtml, int print_stat)
fwrite(buf_out.data, 1, buf_out.size, out);
- if(fullhtml) {
+ if(want_fullhtml) {
fprintf(out, "</body>\n");
fprintf(out, "</html>\n");
}
- if(print_stat) {
+ if(want_stat) {
if(t0 != (clock_t)-1 && t1 != (clock_t)-1) {
double elapsed = (double)(t1 - t0) / CLOCKS_PER_SEC;
if (elapsed < 1)
@@ -321,6 +420,7 @@ static const option cmdline_options[] = {
{ "full-html", 'f', 'f', OPTION_ARG_NONE },
{ "stat", 's', 's', OPTION_ARG_NONE },
{ "help", 'h', 'h', OPTION_ARG_NONE },
+ { "fverbatim-entities", 0, 'E', OPTION_ARG_NONE },
{ "fpermissive-atx-headers", 0, 'A', OPTION_ARG_NONE },
{ "fno-indented-code", 0, 'I', OPTION_ARG_NONE },
{ "fno-html-blocks", 0, 'H', OPTION_ARG_NONE },
@@ -341,6 +441,7 @@ usage(void)
" -h, --help display this help and exit\n"
"\n"
"Markdown dialect options:\n"
+ " --fverbatim-entities do not translate entities\n"
" --fpermissive-atx-headers allow ATX headers without delimiting space\n"
" --fno-indented-code disable indented code blocks\n"
" --fno-html-blocks disable raw HTML blocks\n"
@@ -349,9 +450,6 @@ usage(void)
static const char* input_path = NULL;
static const char* output_path = NULL;
-static unsigned renderer_flags = 0;
-static int want_fullhtml = 0;
-static int want_stat = 0;
static int
cmdline_callback(int opt, char const* value, void* data)
@@ -371,6 +469,7 @@ cmdline_callback(int opt, char const* value, void* data)
case 's': want_stat = 1; break;
case 'h': usage(); exit(0); break;
+ case 'E': want_verbatim_entities = 1; break;
case 'A': renderer_flags |= MD_FLAG_PERMISSIVEATXHEADERS; break;
case 'I': renderer_flags |= MD_FLAG_NOINDENTEDCODEBLOCKS; break;
case 'H': renderer_flags |= MD_FLAG_NOHTMLBLOCKS; break;
@@ -412,7 +511,7 @@ main(int argc, char** argv)
}
}
- ret = process_file(in, out, renderer_flags, want_fullhtml, want_stat);
+ ret = process_file(in, out);
if(in != stdin)
fclose(in);
if(out != stdout)
diff --git a/md4c/md4c.c b/md4c/md4c.c
@@ -193,7 +193,7 @@ md_log(MD_CTX* ctx, const char* fmt, ...)
#define ISLOWER_(ch) (_T('a') <= (ch) && (ch) <= _T('z'))
#define ISALPHA_(ch) (ISUPPER_(ch) || ISLOWER_(ch))
#define ISDIGIT_(ch) (_T('0') <= (ch) && (ch) <= _T('9'))
-#define ISXDIGIT_(ch) (ISDIGIT_(ch) || (_T('a') < (ch) && (ch) <= _T('f')) || (_T('A') < (ch) && (ch) <= _T('F')))
+#define ISXDIGIT_(ch) (ISDIGIT_(ch) || (_T('a') <= (ch) && (ch) <= _T('f')) || (_T('A') <= (ch) && (ch) <= _T('F')))
#define ISALNUM_(ch) (ISALPHA_(ch) || ISDIGIT_(ch))
#define ISANYOF_(ch, palette) (md_strchr((palette), (ch)) != NULL)
@@ -307,6 +307,8 @@ md_str_case_eq(const CHAR* s1, const CHAR* s2, SZ n)
*
* '\\': Maybe escape sequence.
* '`': Maybe code span start/end.
+ * '&': Maybe start of entity.
+ * ';': Maybe end of entity.
*
* Note that not all instances of these chars in the text imply creation of the
* structure. Only those which have (or may have, after we see more context)
@@ -437,6 +439,23 @@ md_collect_marks(MD_CTX* ctx, const MD_LINE* lines, int n_lines)
continue;
}
+ /* A potential entity start. */
+ if(ch == _T('&')) {
+ PUSH(ch, off, off+1, MD_MARK_OPENER);
+ off++;
+ continue;
+ }
+
+ /* A potential entity end. */
+ if(ch == _T(';')) {
+ /* We surely cannot be entity unless previous mark is '&'. */
+ if(ctx->n_marks > 0 && ctx->marks[ctx->n_marks-1].ch == _T('&')) {
+ PUSH(ch, off, off+1, MD_MARK_CLOSER);
+ off++;
+ continue;
+ }
+ }
+
off++;
}
}
@@ -452,13 +471,8 @@ abort:
}
-/* Table of precedence of various span types. */
-static const CHAR* md_precedence_table[] = {
- _T("`"), /* Code spans. */
- _T("\\") /* Backslash escapes. */
-};
-
-
+/* Analyze whether the backtick is really start/end mark of a code span.
+ * If yes, reset all marks inside of it and setup flags of both marks. */
static void
md_analyze_backtick(MD_CTX* ctx, int mark_index, int* p_unresolved_openers)
{
@@ -499,13 +513,84 @@ md_analyze_backtick(MD_CTX* ctx, int mark_index, int* p_unresolved_openers)
opener = ctx->marks[opener].next;
}
- /* We didn't find any matching opener, remember it as a potential opener. */
+ /* We didn't find any matching opener, remember it as a potential opener
+ * for subsequent '`' marks. */
if(mark->flags & MD_MARK_OPENER) {
mark->next = *p_unresolved_openers;
*p_unresolved_openers = mark_index;
}
}
+/* Analyze whether the mark '&' starts a HTML entity.
+ * If so, update its flags as well as flags of corresponding closer ';'. */
+static void
+md_analyze_entity(MD_CTX* ctx, int mark_index)
+{
+ MD_MARK* opener = &ctx->marks[mark_index];
+ MD_MARK* closer;
+ OFF beg, end, off;
+
+ /* Cannot be entity if there is no closer as the next mark.
+ * (Any other mark between would mean strange character which cannot be
+ * part of the entity. */
+ if(mark_index + 1 >= ctx->n_marks)
+ return;
+
+ closer = &ctx->marks[mark_index+1];
+ if(closer->ch != _T(';'))
+ return;
+
+ if(CH(opener->end) == _T('#')) {
+ if(CH(opener->end+1) == _T('x') || CH(opener->end+1) == _T('X')) {
+ /* It can be only a hexadecimal entity.
+ * Check it has 1 - 8 hexadecimal digits. */
+ beg = opener->end+2;
+ end = closer->beg;
+ if(!(1 <= end - beg && end - beg <= 8))
+ return;
+ for(off = beg; off < end; off++) {
+ if(!ISXDIGIT(off))
+ return;
+ }
+ } else {
+ /* It can be only a decimal entity.
+ * Check it has 1 - 8 decimal digits. */
+ beg = opener->end+1;
+ end = closer->beg;
+ if(!(1 <= end - beg && end - beg <= 8))
+ return;
+ for(off = beg; off < end; off++) {
+ if(!ISDIGIT(off))
+ return;
+ }
+ }
+ } else {
+ /* It can be only a named entity.
+ * Check it starts with letter and 1-47 alnum chars follow. */
+ beg = opener->end;
+ end = closer->beg;
+ if(!(2 <= end - beg && end - beg <= 48))
+ return;
+ if(!ISALPHA(beg))
+ return;
+ for(off = beg + 1; off < end; off++) {
+ if(!ISALNUM(off))
+ return;
+ }
+ }
+
+ /* Mark it as an entity. We actually make a single mark from it,
+ * i.e. we expand the opener and leave the closer unresolved. */
+ opener->end = closer->end;
+ opener->flags |= MD_MARK_RESOLVED;
+}
+
+/* Table of precedence of various span types. */
+static const CHAR* md_precedence_table[] = {
+ _T("`"), /* Code spans. */
+ _T("&") /* Entities. */
+};
+
static void
md_analyze_marks(MD_CTX* ctx, int precedence_level)
{
@@ -537,6 +622,10 @@ md_analyze_marks(MD_CTX* ctx, int precedence_level)
case _T('`'):
md_analyze_backtick(ctx, i, &code_span_unresolved_openers);
break;
+
+ case _T('&'):
+ md_analyze_entity(ctx, i);
+ break;
}
i++;
@@ -607,6 +696,10 @@ md_process_inlines(MD_CTX* ctx, const MD_LINE* lines, int n_lines)
text_type = MD_TEXT_NORMAL;
}
break;
+
+ case _T('&'): /* Entity. */
+ MD_TEXT(MD_TEXT_ENTITY, STR(mark->beg), mark->end - mark->beg);
+ break;
}
off = mark->end;
diff --git a/md4c/md4c.h b/md4c/md4c.h
@@ -98,6 +98,18 @@ enum MD_TEXTTYPE_tag {
/* Normal text. */
MD_TEXT_NORMAL = 0,
+ /* Entity.
+ * (a) Named entity, e.g.
+ * (Note MD4C does not have a lsit of known entities.
+ * Anything matching the regexp /&[A-Za-z][A-Za-z0-9]{1,47};/ is
+ * treated as a named entity.)
+ * (b) Numerical entity, e.g. Ӓ
+ * (c) Hexadecimal entity, e.g. ካ
+ *
+ * As MD4C is encoding agnostic, application gets the verbatim entity
+ * text into the MD_RENDERER::text_callback(). */
+ MD_TEXT_ENTITY,
+
/* Line breaks.
* Note these are only sent within MD_BLOCK_CODE or MD_BLOCK_HTML. */
MD_TEXT_BR, /* <br> (hard break) */