content: /*
   * Copyright (c) 2012, 2020, Oracle and/or its affiliates. All rights reserved.
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   *
   * This code is free software; you can redistribute it and/or modify it
   * under the terms of the GNU General Public License version 2 only, as
   * published by the Free Software Foundation.  Oracle designates this
   * particular file as subject to the "Classpath" exception as provided
   * by Oracle in the LICENSE file that accompanied this code.
   *
   * This code is distributed in the hope that it will be useful, but WITHOUT
   * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   * version 2 for more details (a copy is included in the LICENSE file that
   * accompanied this code).
   *
   * You should have received a copy of the GNU General Public License version
   * 2 along with this work; if not, write to the Free Software Foundation,
   * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   *
   * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
   * or visit www.oracle.com if you need additional information or have any
   * questions.
   */
  
  package openjdk.tools.javac.api;
  
  import java.util.HashMap;
  
  import openjdk.source.doctree.EntityTree;
  import openjdk.tools.javac.util.StringUtils;
  
  /**
   * Table of entities defined in HTML 5.2.
   *
   * <p> Derived from the
   * <a href="https://www.w3.org/TR/html52/syntax.html#named-character-references">Named character references</a>
   * section of the HTML 5.2 specification.
   *
   * <p><b>This is NOT part of any supported API.
   * If you write code that depends on this, you do so at your own
   * risk.  This code and its internal interfaces are subject to change
   * or deletion without notice.</b></p>
   */
  class Entity {
  
      private static final HashMap<String,String> entities = new HashMap<>();
  
      static {
          put("Aacute", '\u00C1');
          put("aacute", '\u00E1');
          put("Abreve", '\u0102');
          put("abreve", '\u0103');
          put("ac", '\u223E');
          put("acd", '\u223F');
          put("acE", '\u223E', '\u0333');
          put("Acirc", '\u00C2');
          put("acirc", '\u00E2');
          put("acute", '\u00B4');
          put("Acy", '\u0410');
          put("acy", '\u0430');
          put("AElig", '\u00C6');
          put("aelig", '\u00E6');
          put("af", '\u2061');
          put("Afr", '\uD835', '\uDD04');
          put("afr", '\uD835', '\uDD1E');
          put("Agrave", '\u00C0');
          put("agrave", '\u00E0');
          put("alefsym", '\u2135');
          put("aleph", '\u2135');
          put("Alpha", '\u0391');
          put("alpha", '\u03B1');
          put("Amacr", '\u0100');
          put("amacr", '\u0101');
          put("amalg", '\u2A3F');
          put("amp", '\u0026');
          put("AMP", '\u0026');
          put("andand", '\u2A55');
          put("And", '\u2A53');
          put("and", '\u2227');
          put("andd", '\u2A5C');
          put("andslope", '\u2A58');
          put("andv", '\u2A5A');
          put("ang", '\u2220');
          put("ange", '\u29A4');
          put("angle", '\u2220');
          put("angmsdaa", '\u29A8');
          put("angmsdab", '\u29A9');
          put("angmsdac", '\u29AA');
          put("angmsdad", '\u29AB');
          put("angmsdae", '\u29AC');
          put("angmsdaf", '\u29AD');
          put("angmsdag", '\u29AE');
          put("angmsdah", '\u29AF');
          put("angmsd", '\u2221');
          put("angrt", '\u221F');
          put("angrtvb", '\u22BE');
          put("angrtvbd", '\u299D');
          put("angsph", '\u2222');
          put("angst", '\u00C5');
          put("angzarr", '\u237C');
          put("Aogon", '\u0104');
          put("aogon", '\u0105');
          put("Aopf", '\uD835', '\uDD38');
          put("aopf", '\uD835', '\uDD52');
          put("apacir", '\u2A6F');
          put("ap", '\u2248');
          put("apE", '\u2A70');
          put("ape", '\u224A');
          put("apid", '\u224B');
          put("apos", '\'');
          put("ApplyFunction", '\u2061');
          put("approx", '\u2248');
          put("approxeq", '\u224A');
          put("Aring", '\u00C5');
          put("aring", '\u00E5');
          put("Ascr", '\uD835', '\uDC9C');
          put("ascr", '\uD835', '\uDCB6');
          put("Assign", '\u2254');
          put("ast", '\u002A');
          put("asymp", '\u2248');
          put("asympeq", '\u224D');
          put("Atilde", '\u00C3');
          put("atilde", '\u00E3');
          put("Auml", '\u00C4');
          put("auml", '\u00E4');
          put("awconint", '\u2233');
          put("awint", '\u2A11');
          put("backcong", '\u224C');
          put("backepsilon", '\u03F6');
          put("backprime", '\u2035');
          put("backsim", '\u223D');
          put("backsimeq", '\u22CD');
          put("Backslash", '\u2216');
          put("Barv", '\u2AE7');
          put("barvee", '\u22BD');
          put("barwed", '\u2305');
          put("Barwed", '\u2306');
          put("barwedge", '\u2305');
          put("bbrk", '\u23B5');
          put("bbrktbrk", '\u23B6');
          put("bcong", '\u224C');
          put("Bcy", '\u0411');
          put("bcy", '\u0431');
          put("bdquo", '\u201E');
          put("becaus", '\u2235');
          put("because", '\u2235');
          put("Because", '\u2235');
          put("bemptyv", '\u29B0');
          put("bepsi", '\u03F6');
          put("bernou", '\u212C');
          put("Bernoullis", '\u212C');
          put("Beta", '\u0392');
          put("beta", '\u03B2');
          put("beth", '\u2136');
          put("between", '\u226C');
          put("Bfr", '\uD835', '\uDD05');
          put("bfr", '\uD835', '\uDD1F');
          put("bigcap", '\u22C2');
          put("bigcirc", '\u25EF');
          put("bigcup", '\u22C3');
          put("bigodot", '\u2A00');
          put("bigoplus", '\u2A01');
          put("bigotimes", '\u2A02');
          put("bigsqcup", '\u2A06');
          put("bigstar", '\u2605');
          put("bigtriangledown", '\u25BD');
          put("bigtriangleup", '\u25B3');
          put("biguplus", '\u2A04');
          put("bigvee", '\u22C1');
          put("bigwedge", '\u22C0');
          put("bkarow", '\u290D');
          put("blacklozenge", '\u29EB');
          put("blacksquare", '\u25AA');
          put("blacktriangle", '\u25B4');
          put("blacktriangledown", '\u25BE');
          put("blacktriangleleft", '\u25C2');
          put("blacktriangleright", '\u25B8');
          put("blank", '\u2423');
          put("blk12", '\u2592');
          put("blk14", '\u2591');
          put("blk34", '\u2593');
          put("block", '\u2588');
          put("bne", '\u003D', '\u20E5');
          put("bnequiv", '\u2261', '\u20E5');
          put("bNot", '\u2AED');
          put("bnot", '\u2310');
          put("Bopf", '\uD835', '\uDD39');
          put("bopf", '\uD835', '\uDD53');
          put("bot", '\u22A5');
          put("bottom", '\u22A5');
          put("bowtie", '\u22C8');
          put("boxbox", '\u29C9');
          put("boxdl", '\u2510');
          put("boxdL", '\u2555');
          put("boxDl", '\u2556');
          put("boxDL", '\u2557');
          put("boxdr", '\u250C');
          put("boxdR", '\u2552');
          put("boxDr", '\u2553');
          put("boxDR", '\u2554');
          put("boxh", '\u2500');
          put("boxH", '\u2550');
          put("boxhd", '\u252C');
          put("boxHd", '\u2564');
          put("boxhD", '\u2565');
          put("boxHD", '\u2566');
          put("boxhu", '\u2534');
          put("boxHu", '\u2567');
          put("boxhU", '\u2568');
          put("boxHU", '\u2569');
          put("boxminus", '\u229F');
          put("boxplus", '\u229E');
          put("boxtimes", '\u22A0');
          put("boxul", '\u2518');
          put("boxuL", '\u255B');
          put("boxUl", '\u255C');
          put("boxUL", '\u255D');
          put("boxur", '\u2514');
          put("boxuR", '\u2558');
          put("boxUr", '\u2559');
          put("boxUR", '\u255A');
          put("boxv", '\u2502');
          put("boxV", '\u2551');
          put("boxvh", '\u253C');
          put("boxvH", '\u256A');
          put("boxVh", '\u256B');
          put("boxVH", '\u256C');
          put("boxvl", '\u2524');
          put("boxvL", '\u2561');
          put("boxVl", '\u2562');
          put("boxVL", '\u2563');
          put("boxvr", '\u251C');
          put("boxvR", '\u255E');
          put("boxVr", '\u255F');
          put("boxVR", '\u2560');
          put("bprime", '\u2035');
          put("breve", '\u02D8');
          put("Breve", '\u02D8');
          put("brvbar", '\u00A6');
          put("bscr", '\uD835', '\uDCB7');
          put("Bscr", '\u212C');
          put("bsemi", '\u204F');
          put("bsim", '\u223D');
          put("bsime", '\u22CD');
          put("bsolb", '\u29C5');
          put("bsol", '\\');
          put("bsolhsub", '\u27C8');
          put("bull", '\u2022');
          put("bullet", '\u2022');
          put("bump", '\u224E');
          put("bumpE", '\u2AAE');
          put("bumpe", '\u224F');
          put("Bumpeq", '\u224E');
          put("bumpeq", '\u224F');
          put("Cacute", '\u0106');
          put("cacute", '\u0107');
          put("capand", '\u2A44');
          put("capbrcup", '\u2A49');
          put("capcap", '\u2A4B');
          put("cap", '\u2229');
          put("Cap", '\u22D2');
          put("capcup", '\u2A47');
          put("capdot", '\u2A40');
          put("CapitalDifferentialD", '\u2145');
          put("caps", '\u2229', '\uFE00');
          put("caret", '\u2041');
          put("caron", '\u02C7');
          put("Cayleys", '\u212D');
          put("ccaps", '\u2A4D');
          put("Ccaron", '\u010C');
          put("ccaron", '\u010D');
          put("Ccedil", '\u00C7');
          put("ccedil", '\u00E7');
          put("Ccirc", '\u0108');
          put("ccirc", '\u0109');
          put("Cconint", '\u2230');
          put("ccups", '\u2A4C');
          put("ccupssm", '\u2A50');
          put("Cdot", '\u010A');
          put("cdot", '\u010B');
          put("cedil", '\u00B8');
          put("Cedilla", '\u00B8');
          put("cemptyv", '\u29B2');
          put("cent", '\u00A2');
          put("centerdot", '\u00B7');
          put("CenterDot", '\u00B7');
          put("cfr", '\uD835', '\uDD20');
          put("Cfr", '\u212D');
          put("CHcy", '\u0427');
          put("chcy", '\u0447');
          put("check", '\u2713');
          put("checkmark", '\u2713');
          put("Chi", '\u03A7');
          put("chi", '\u03C7');
          put("circ", '\u02C6');
          put("circeq", '\u2257');
          put("circlearrowleft", '\u21BA');
          put("circlearrowright", '\u21BB');
          put("circledast", '\u229B');
          put("circledcirc", '\u229A');
          put("circleddash", '\u229D');
          put("CircleDot", '\u2299');
          put("circledR", '\u00AE');
          put("circledS", '\u24C8');
          put("CircleMinus", '\u2296');
          put("CirclePlus", '\u2295');
          put("CircleTimes", '\u2297');
          put("cir", '\u25CB');
          put("cirE", '\u29C3');
          put("cire", '\u2257');
          put("cirfnint", '\u2A10');
          put("cirmid", '\u2AEF');
          put("cirscir", '\u29C2');
          put("ClockwiseContourIntegral", '\u2232');
          put("CloseCurlyDoubleQuote", '\u201D');
          put("CloseCurlyQuote", '\u2019');
          put("clubs", '\u2663');
          put("clubsuit", '\u2663');
          put("colon", '\u003A');
          put("Colon", '\u2237');
          put("Colone", '\u2A74');
          put("colone", '\u2254');
          put("coloneq", '\u2254');
          put("comma", '\u002C');
          put("commat", '\u0040');
          put("comp", '\u2201');
          put("compfn", '\u2218');
          put("complement", '\u2201');
          put("complexes", '\u2102');
          put("cong", '\u2245');
          put("congdot", '\u2A6D');
          put("Congruent", '\u2261');
          put("conint", '\u222E');
          put("Conint", '\u222F');
          put("ContourIntegral", '\u222E');
          put("copf", '\uD835', '\uDD54');
          put("Copf", '\u2102');
          put("coprod", '\u2210');
          put("Coproduct", '\u2210');
          put("copy", '\u00A9');
          put("COPY", '\u00A9');
          put("copysr", '\u2117');
          put("CounterClockwiseContourIntegral", '\u2233');
          put("crarr", '\u21B5');
          put("cross", '\u2717');
          put("Cross", '\u2A2F');
          put("Cscr", '\uD835', '\uDC9E');
          put("cscr", '\uD835', '\uDCB8');
          put("csub", '\u2ACF');
          put("csube", '\u2AD1');
          put("csup", '\u2AD0');
          put("csupe", '\u2AD2');
          put("ctdot", '\u22EF');
          put("cudarrl", '\u2938');
          put("cudarrr", '\u2935');
          put("cuepr", '\u22DE');
          put("cuesc", '\u22DF');
          put("cularr", '\u21B6');
          put("cularrp", '\u293D');
          put("cupbrcap", '\u2A48');
          put("cupcap", '\u2A46');
          put("CupCap", '\u224D');
          put("cup", '\u222A');
          put("Cup", '\u22D3');
          put("cupcup", '\u2A4A');
          put("cupdot", '\u228D');
          put("cupor", '\u2A45');
          put("cups", '\u222A', '\uFE00');
          put("curarr", '\u21B7');
          put("curarrm", '\u293C');
          put("curlyeqprec", '\u22DE');
          put("curlyeqsucc", '\u22DF');
          put("curlyvee", '\u22CE');
          put("curlywedge", '\u22CF');
          put("curren", '\u00A4');
          put("curvearrowleft", '\u21B6');
          put("curvearrowright", '\u21B7');
          put("cuvee", '\u22CE');
          put("cuwed", '\u22CF');
          put("cwconint", '\u2232');
          put("cwint", '\u2231');
          put("cylcty", '\u232D');
          put("dagger", '\u2020');
          put("Dagger", '\u2021');
          put("daleth", '\u2138');
          put("darr", '\u2193');
          put("Darr", '\u21A1');
          put("dArr", '\u21D3');
          put("dash", '\u2010');
          put("Dashv", '\u2AE4');
          put("dashv", '\u22A3');
          put("dbkarow", '\u290F');
          put("dblac", '\u02DD');
          put("Dcaron", '\u010E');
          put("dcaron", '\u010F');
          put("Dcy", '\u0414');
          put("dcy", '\u0434');
          put("ddagger", '\u2021');
          put("ddarr", '\u21CA');
          put("DD", '\u2145');
          put("dd", '\u2146');
          put("DDotrahd", '\u2911');
          put("ddotseq", '\u2A77');
          put("deg", '\u00B0');
          put("Del", '\u2207');
          put("Delta", '\u0394');
          put("delta", '\u03B4');
          put("demptyv", '\u29B1');
          put("dfisht", '\u297F');
          put("Dfr", '\uD835', '\uDD07');
          put("dfr", '\uD835', '\uDD21');
          put("dHar", '\u2965');
          put("dharl", '\u21C3');
          put("dharr", '\u21C2');
          put("DiacriticalAcute", '\u00B4');
          put("DiacriticalDot", '\u02D9');
          put("DiacriticalDoubleAcute", '\u02DD');
          put("DiacriticalGrave", '\u0060');
          put("DiacriticalTilde", '\u02DC');
          put("diam", '\u22C4');
          put("diamond", '\u22C4');
          put("Diamond", '\u22C4');
          put("diamondsuit", '\u2666');
          put("diams", '\u2666');
          put("die", '\u00A8');
          put("DifferentialD", '\u2146');
          put("digamma", '\u03DD');
          put("disin", '\u22F2');
          put("div", '\u00F7');
          put("divide", '\u00F7');
          put("divideontimes", '\u22C7');
          put("divonx", '\u22C7');
          put("DJcy", '\u0402');
          put("djcy", '\u0452');
          put("dlcorn", '\u231E');
          put("dlcrop", '\u230D');
          put("dollar", '\u0024');
          put("Dopf", '\uD835', '\uDD3B');
          put("dopf", '\uD835', '\uDD55');
          put("Dot", '\u00A8');
          put("dot", '\u02D9');
          put("DotDot", '\u20DC');
          put("doteq", '\u2250');
          put("doteqdot", '\u2251');
          put("DotEqual", '\u2250');
          put("dotminus", '\u2238');
          put("dotplus", '\u2214');
          put("dotsquare", '\u22A1');
          put("doublebarwedge", '\u2306');
          put("DoubleContourIntegral", '\u222F');
          put("DoubleDot", '\u00A8');
          put("DoubleDownArrow", '\u21D3');
          put("DoubleLeftArrow", '\u21D0');
          put("DoubleLeftRightArrow", '\u21D4');
          put("DoubleLeftTee", '\u2AE4');
          put("DoubleLongLeftArrow", '\u27F8');
          put("DoubleLongLeftRightArrow", '\u27FA');
          put("DoubleLongRightArrow", '\u27F9');
          put("DoubleRightArrow", '\u21D2');
          put("DoubleRightTee", '\u22A8');
          put("DoubleUpArrow", '\u21D1');
          put("DoubleUpDownArrow", '\u21D5');
          put("DoubleVerticalBar", '\u2225');
          put("DownArrowBar", '\u2913');
          put("downarrow", '\u2193');
          put("DownArrow", '\u2193');
          put("Downarrow", '\u21D3');
          put("DownArrowUpArrow", '\u21F5');
          put("DownBreve", '\u0311');
          put("downdownarrows", '\u21CA');
          put("downharpoonleft", '\u21C3');
          put("downharpoonright", '\u21C2');
          put("DownLeftRightVector", '\u2950');
          put("DownLeftTeeVector", '\u295E');
          put("DownLeftVectorBar", '\u2956');
          put("DownLeftVector", '\u21BD');
          put("DownRightTeeVector", '\u295F');
          put("DownRightVectorBar", '\u2957');
          put("DownRightVector", '\u21C1');
          put("DownTeeArrow", '\u21A7');
          put("DownTee", '\u22A4');
          put("drbkarow", '\u2910');
          put("drcorn", '\u231F');
          put("drcrop", '\u230C');
          put("Dscr", '\uD835', '\uDC9F');
          put("dscr", '\uD835', '\uDCB9');
          put("DScy", '\u0405');
          put("dscy", '\u0455');
          put("dsol", '\u29F6');
          put("Dstrok", '\u0110');
          put("dstrok", '\u0111');
          put("dtdot", '\u22F1');
          put("dtri", '\u25BF');
          put("dtrif", '\u25BE');
          put("duarr", '\u21F5');
          put("duhar", '\u296F');
          put("dwangle", '\u29A6');
          put("DZcy", '\u040F');
          put("dzcy", '\u045F');
          put("dzigrarr", '\u27FF');
          put("Eacute", '\u00C9');
          put("eacute", '\u00E9');
          put("easter", '\u2A6E');
          put("Ecaron", '\u011A');
          put("ecaron", '\u011B');
          put("Ecirc", '\u00CA');
          put("ecirc", '\u00EA');
          put("ecir", '\u2256');
          put("ecolon", '\u2255');
          put("Ecy", '\u042D');
          put("ecy", '\u044D');
          put("eDDot", '\u2A77');
          put("Edot", '\u0116');
          put("edot", '\u0117');
          put("eDot", '\u2251');
          put("ee", '\u2147');
          put("efDot", '\u2252');
          put("Efr", '\uD835', '\uDD08');
          put("efr", '\uD835', '\uDD22');
          put("eg", '\u2A9A');
          put("Egrave", '\u00C8');
          put("egrave", '\u00E8');
          put("egs", '\u2A96');
          put("egsdot", '\u2A98');
          put("el", '\u2A99');
          put("Element", '\u2208');
          put("elinters", '\u23E7');
          put("ell", '\u2113');
          put("els", '\u2A95');
          put("elsdot", '\u2A97');
          put("Emacr", '\u0112');
          put("emacr", '\u0113');
          put("empty", '\u2205');
          put("emptyset", '\u2205');
          put("EmptySmallSquare", '\u25FB');
          put("emptyv", '\u2205');
          put("EmptyVerySmallSquare", '\u25AB');
          put("emsp13", '\u2004');
          put("emsp14", '\u2005');
          put("emsp", '\u2003');
          put("ENG", '\u014A');
          put("eng", '\u014B');
          put("ensp", '\u2002');
          put("Eogon", '\u0118');
          put("eogon", '\u0119');
          put("Eopf", '\uD835', '\uDD3C');
          put("eopf", '\uD835', '\uDD56');
          put("epar", '\u22D5');
          put("eparsl", '\u29E3');
          put("eplus", '\u2A71');
          put("epsi", '\u03B5');
          put("Epsilon", '\u0395');
          put("epsilon", '\u03B5');
          put("epsiv", '\u03F5');
          put("eqcirc", '\u2256');
          put("eqcolon", '\u2255');
          put("eqsim", '\u2242');
          put("eqslantgtr", '\u2A96');
          put("eqslantless", '\u2A95');
          put("Equal", '\u2A75');
          put("equals", '\u003D');
          put("EqualTilde", '\u2242');
          put("equest", '\u225F');
          put("Equilibrium", '\u21CC');
          put("equiv", '\u2261');
          put("equivDD", '\u2A78');
          put("eqvparsl", '\u29E5');
          put("erarr", '\u2971');
          put("erDot", '\u2253');
          put("escr", '\u212F');
          put("Escr", '\u2130');
          put("esdot", '\u2250');
          put("Esim", '\u2A73');
          put("esim", '\u2242');
          put("Eta", '\u0397');
          put("eta", '\u03B7');
          put("ETH", '\u00D0');
          put("eth", '\u00F0');
          put("Euml", '\u00CB');
          put("euml", '\u00EB');
          put("euro", '\u20AC');
          put("excl", '\u0021');
          put("exist", '\u2203');
          put("Exists", '\u2203');
          put("expectation", '\u2130');
          put("exponentiale", '\u2147');
          put("ExponentialE", '\u2147');
          put("fallingdotseq", '\u2252');
          put("Fcy", '\u0424');
          put("fcy", '\u0444');
          put("female", '\u2640');
          put("ffilig", '\uFB03');
          put("fflig", '\uFB00');
          put("ffllig", '\uFB04');
          put("Ffr", '\uD835', '\uDD09');
          put("ffr", '\uD835', '\uDD23');
          put("filig", '\uFB01');
          put("FilledSmallSquare", '\u25FC');
          put("FilledVerySmallSquare", '\u25AA');
          put("fjlig", '\u0066', '\u006A');
          put("flat", '\u266D');
          put("fllig", '\uFB02');
          put("fltns", '\u25B1');
          put("fnof", '\u0192');
          put("Fopf", '\uD835', '\uDD3D');
          put("fopf", '\uD835', '\uDD57');
          put("forall", '\u2200');
          put("ForAll", '\u2200');
          put("fork", '\u22D4');
          put("forkv", '\u2AD9');
          put("Fouriertrf", '\u2131');
          put("fpartint", '\u2A0D');
          put("frac12", '\u00BD');
          put("frac13", '\u2153');
          put("frac14", '\u00BC');
          put("frac15", '\u2155');
          put("frac16", '\u2159');
          put("frac18", '\u215B');
          put("frac23", '\u2154');
          put("frac25", '\u2156');
          put("frac34", '\u00BE');
          put("frac35", '\u2157');
          put("frac38", '\u215C');
          put("frac45", '\u2158');
          put("frac56", '\u215A');
          put("frac58", '\u215D');
          put("frac78", '\u215E');
          put("frasl", '\u2044');
          put("frown", '\u2322');
          put("fscr", '\uD835', '\uDCBB');
          put("Fscr", '\u2131');
          put("gacute", '\u01F5');
          put("Gamma", '\u0393');
          put("gamma", '\u03B3');
          put("Gammad", '\u03DC');
          put("gammad", '\u03DD');
          put("gap", '\u2A86');
          put("Gbreve", '\u011E');
          put("gbreve", '\u011F');
          put("Gcedil", '\u0122');
          put("Gcirc", '\u011C');
          put("gcirc", '\u011D');
          put("Gcy", '\u0413');
          put("gcy", '\u0433');
          put("Gdot", '\u0120');
          put("gdot", '\u0121');
          put("ge", '\u2265');
          put("gE", '\u2267');
          put("gEl", '\u2A8C');
          put("gel", '\u22DB');
          put("geq", '\u2265');
          put("geqq", '\u2267');
          put("geqslant", '\u2A7E');
          put("gescc", '\u2AA9');
          put("ges", '\u2A7E');
          put("gesdot", '\u2A80');
          put("gesdoto", '\u2A82');
          put("gesdotol", '\u2A84');
          put("gesl", '\u22DB', '\uFE00');
          put("gesles", '\u2A94');
          put("Gfr", '\uD835', '\uDD0A');
          put("gfr", '\uD835', '\uDD24');
          put("gg", '\u226B');
          put("Gg", '\u22D9');
          put("ggg", '\u22D9');
          put("gimel", '\u2137');
          put("GJcy", '\u0403');
          put("gjcy", '\u0453');
          put("gla", '\u2AA5');
          put("gl", '\u2277');
          put("glE", '\u2A92');
          put("glj", '\u2AA4');
          put("gnap", '\u2A8A');
          put("gnapprox", '\u2A8A');
          put("gne", '\u2A88');
          put("gnE", '\u2269');
          put("gneq", '\u2A88');
          put("gneqq", '\u2269');
          put("gnsim", '\u22E7');
          put("Gopf", '\uD835', '\uDD3E');
          put("gopf", '\uD835', '\uDD58');
          put("grave", '\u0060');
          put("GreaterEqual", '\u2265');
          put("GreaterEqualLess", '\u22DB');
          put("GreaterFullEqual", '\u2267');
          put("GreaterGreater", '\u2AA2');
          put("GreaterLess", '\u2277');
          put("GreaterSlantEqual", '\u2A7E');
          put("GreaterTilde", '\u2273');
          put("Gscr", '\uD835', '\uDCA2');
          put("gscr", '\u210A');
          put("gsim", '\u2273');
          put("gsime", '\u2A8E');
          put("gsiml", '\u2A90');
          put("gtcc", '\u2AA7');
          put("gtcir", '\u2A7A');
          put("gt", '\u003E');
          put("GT", '\u003E');
          put("Gt", '\u226B');
          put("gtdot", '\u22D7');
          put("gtlPar", '\u2995');
          put("gtquest", '\u2A7C');
          put("gtrapprox", '\u2A86');
          put("gtrarr", '\u2978');
          put("gtrdot", '\u22D7');
          put("gtreqless", '\u22DB');
          put("gtreqqless", '\u2A8C');
          put("gtrless", '\u2277');
          put("gtrsim", '\u2273');
          put("gvertneqq", '\u2269', '\uFE00');
          put("gvnE", '\u2269', '\uFE00');
          put("Hacek", '\u02C7');
          put("hairsp", '\u200A');
          put("half", '\u00BD');
          put("hamilt", '\u210B');
          put("HARDcy", '\u042A');
          put("hardcy", '\u044A');
          put("harrcir", '\u2948');
          put("harr", '\u2194');
          put("hArr", '\u21D4');
          put("harrw", '\u21AD');
          put("Hat", '\u005E');
          put("hbar", '\u210F');
          put("Hcirc", '\u0124');
          put("hcirc", '\u0125');
          put("hearts", '\u2665');
          put("heartsuit", '\u2665');
          put("hellip", '\u2026');
          put("hercon", '\u22B9');
          put("hfr", '\uD835', '\uDD25');
          put("Hfr", '\u210C');
          put("HilbertSpace", '\u210B');
          put("hksearow", '\u2925');
          put("hkswarow", '\u2926');
          put("hoarr", '\u21FF');
          put("homtht", '\u223B');
          put("hookleftarrow", '\u21A9');
          put("hookrightarrow", '\u21AA');
          put("hopf", '\uD835', '\uDD59');
          put("Hopf", '\u210D');
          put("horbar", '\u2015');
          put("HorizontalLine", '\u2500');
          put("hscr", '\uD835', '\uDCBD');
          put("Hscr", '\u210B');
          put("hslash", '\u210F');
          put("Hstrok", '\u0126');
          put("hstrok", '\u0127');
          put("HumpDownHump", '\u224E');
          put("HumpEqual", '\u224F');
          put("hybull", '\u2043');
          put("hyphen", '\u2010');
          put("Iacute", '\u00CD');
          put("iacute", '\u00ED');
          put("ic", '\u2063');
          put("Icirc", '\u00CE');
          put("icirc", '\u00EE');
          put("Icy", '\u0418');
          put("icy", '\u0438');
          put("Idot", '\u0130');
          put("IEcy", '\u0415');
          put("iecy", '\u0435');
          put("iexcl", '\u00A1');
          put("iff", '\u21D4');
          put("ifr", '\uD835', '\uDD26');
          put("Ifr", '\u2111');
          put("Igrave", '\u00CC');
          put("igrave", '\u00EC');
          put("ii", '\u2148');
          put("iiiint", '\u2A0C');
          put("iiint", '\u222D');
          put("iinfin", '\u29DC');
          put("iiota", '\u2129');
          put("IJlig", '\u0132');
          put("ijlig", '\u0133');
          put("Imacr", '\u012A');
          put("imacr", '\u012B');
          put("image", '\u2111');
          put("ImaginaryI", '\u2148');
          put("imagline", '\u2110');
          put("imagpart", '\u2111');
          put("imath", '\u0131');
          put("Im", '\u2111');
          put("imof", '\u22B7');
          put("imped", '\u01B5');
          put("Implies", '\u21D2');
          put("incare", '\u2105');
          put("in", '\u2208');
          put("infin", '\u221E');
          put("infintie", '\u29DD');
          put("inodot", '\u0131');
          put("intcal", '\u22BA');
          put("int", '\u222B');
          put("Int", '\u222C');
          put("integers", '\u2124');
          put("Integral", '\u222B');
          put("intercal", '\u22BA');
          put("Intersection", '\u22C2');
          put("intlarhk", '\u2A17');
          put("intprod", '\u2A3C');
          put("InvisibleComma", '\u2063');
          put("InvisibleTimes", '\u2062');
          put("IOcy", '\u0401');
          put("iocy", '\u0451');
          put("Iogon", '\u012E');
          put("iogon", '\u012F');
          put("Iopf", '\uD835', '\uDD40');
          put("iopf", '\uD835', '\uDD5A');
          put("Iota", '\u0399');
          put("iota", '\u03B9');
          put("iprod", '\u2A3C');
          put("iquest", '\u00BF');
          put("iscr", '\uD835', '\uDCBE');
          put("Iscr", '\u2110');
          put("isin", '\u2208');
          put("isindot", '\u22F5');
          put("isinE", '\u22F9');
          put("isins", '\u22F4');
          put("isinsv", '\u22F3');
          put("isinv", '\u2208');
          put("it", '\u2062');
          put("Itilde", '\u0128');
          put("itilde", '\u0129');
          put("Iukcy", '\u0406');
          put("iukcy", '\u0456');
          put("Iuml", '\u00CF');
          put("iuml", '\u00EF');
          put("Jcirc", '\u0134');
          put("jcirc", '\u0135');
          put("Jcy", '\u0419');
          put("jcy", '\u0439');
          put("Jfr", '\uD835', '\uDD0D');
          put("jfr", '\uD835', '\uDD27');
          put("jmath", '\u0237');
          put("Jopf", '\uD835', '\uDD41');
          put("jopf", '\uD835', '\uDD5B');
          put("Jscr", '\uD835', '\uDCA5');
          put("jscr", '\uD835', '\uDCBF');
          put("Jsercy", '\u0408');
          put("jsercy", '\u0458');
          put("Jukcy", '\u0404');
          put("jukcy", '\u0454');
          put("Kappa", '\u039A');
          put("kappa", '\u03BA');
          put("kappav", '\u03F0');
          put("Kcedil", '\u0136');
          put("kcedil", '\u0137');
          put("Kcy", '\u041A');
          put("kcy", '\u043A');
          put("Kfr", '\uD835', '\uDD0E');
          put("kfr", '\uD835', '\uDD28');
          put("kgreen", '\u0138');
          put("KHcy", '\u0425');
          put("khcy", '\u0445');
          put("KJcy", '\u040C');
          put("kjcy", '\u045C');
          put("Kopf", '\uD835', '\uDD42');
          put("kopf", '\uD835', '\uDD5C');
          put("Kscr", '\uD835', '\uDCA6');
          put("kscr", '\uD835', '\uDCC0');
          put("lAarr", '\u21DA');
          put("Lacute", '\u0139');
          put("lacute", '\u013A');
          put("laemptyv", '\u29B4');
          put("lagran", '\u2112');
          put("Lambda", '\u039B');
          put("lambda", '\u03BB');
          put("lang", '\u27E8');
          put("Lang", '\u27EA');
          put("langd", '\u2991');
          put("langle", '\u27E8');
          put("lap", '\u2A85');
          put("Laplacetrf", '\u2112');
          put("laquo", '\u00AB');
          put("larrb", '\u21E4');
          put("larrbfs", '\u291F');
          put("larr", '\u2190');
          put("Larr", '\u219E');
          put("lArr", '\u21D0');
          put("larrfs", '\u291D');
          put("larrhk", '\u21A9');
          put("larrlp", '\u21AB');
          put("larrpl", '\u2939');
          put("larrsim", '\u2973');
          put("larrtl", '\u21A2');
          put("latail", '\u2919');
          put("lAtail", '\u291B');
          put("lat", '\u2AAB');
          put("late", '\u2AAD');
          put("lates", '\u2AAD', '\uFE00');
          put("lbarr", '\u290C');
          put("lBarr", '\u290E');
          put("lbbrk", '\u2772');
          put("lbrace", '\u007B');
          put("lbrack", '\u005B');
          put("lbrke", '\u298B');
          put("lbrksld", '\u298F');
          put("lbrkslu", '\u298D');
          put("Lcaron", '\u013D');
          put("lcaron", '\u013E');
          put("Lcedil", '\u013B');
          put("lcedil", '\u013C');
          put("lceil", '\u2308');
          put("lcub", '\u007B');
          put("Lcy", '\u041B');
          put("lcy", '\u043B');
          put("ldca", '\u2936');
          put("ldquo", '\u201C');
          put("ldquor", '\u201E');
          put("ldrdhar", '\u2967');
          put("ldrushar", '\u294B');
          put("ldsh", '\u21B2');
          put("le", '\u2264');
          put("lE", '\u2266');
          put("LeftAngleBracket", '\u27E8');
          put("LeftArrowBar", '\u21E4');
          put("leftarrow", '\u2190');
          put("LeftArrow", '\u2190');
          put("Leftarrow", '\u21D0');
          put("LeftArrowRightArrow", '\u21C6');
          put("leftarrowtail", '\u21A2');
          put("LeftCeiling", '\u2308');
          put("LeftDoubleBracket", '\u27E6');
          put("LeftDownTeeVector", '\u2961');
          put("LeftDownVectorBar", '\u2959');
          put("LeftDownVector", '\u21C3');
          put("LeftFloor", '\u230A');
          put("leftharpoondown", '\u21BD');
          put("leftharpoonup", '\u21BC');
          put("leftleftarrows", '\u21C7');
          put("leftrightarrow", '\u2194');
          put("LeftRightArrow", '\u2194');
          put("Leftrightarrow", '\u21D4');
          put("leftrightarrows", '\u21C6');
          put("leftrightharpoons", '\u21CB');
          put("leftrightsquigarrow", '\u21AD');
          put("LeftRightVector", '\u294E');
          put("LeftTeeArrow", '\u21A4');
          put("LeftTee", '\u22A3');
          put("LeftTeeVector", '\u295A');
          put("leftthreetimes", '\u22CB');
          put("LeftTriangleBar", '\u29CF');
          put("LeftTriangle", '\u22B2');
          put("LeftTriangleEqual", '\u22B4');
          put("LeftUpDownVector", '\u2951');
          put("LeftUpTeeVector", '\u2960');
          put("LeftUpVectorBar", '\u2958');
          put("LeftUpVector", '\u21BF');
          put("LeftVectorBar", '\u2952');
          put("LeftVector", '\u21BC');
          put("lEg", '\u2A8B');
          put("leg", '\u22DA');
          put("leq", '\u2264');
          put("leqq", '\u2266');
          put("leqslant", '\u2A7D');
          put("lescc", '\u2AA8');
          put("les", '\u2A7D');
          put("lesdot", '\u2A7F');
          put("lesdoto", '\u2A81');
          put("lesdotor", '\u2A83');
          put("lesg", '\u22DA', '\uFE00');
          put("lesges", '\u2A93');
          put("lessapprox", '\u2A85');
          put("lessdot", '\u22D6');
          put("lesseqgtr", '\u22DA');
          put("lesseqqgtr", '\u2A8B');
          put("LessEqualGreater", '\u22DA');
          put("LessFullEqual", '\u2266');
          put("LessGreater", '\u2276');
          put("lessgtr", '\u2276');
          put("LessLess", '\u2AA1');
          put("lesssim", '\u2272');
          put("LessSlantEqual", '\u2A7D');
          put("LessTilde", '\u2272');
          put("lfisht", '\u297C');
          put("lfloor", '\u230A');
          put("Lfr", '\uD835', '\uDD0F');
          put("lfr", '\uD835', '\uDD29');
          put("lg", '\u2276');
          put("lgE", '\u2A91');
          put("lHar", '\u2962');
          put("lhard", '\u21BD');
          put("lharu", '\u21BC');
          put("lharul", '\u296A');
          put("lhblk", '\u2584');
          put("LJcy", '\u0409');
          put("ljcy", '\u0459');
          put("llarr", '\u21C7');
          put("ll", '\u226A');
          put("Ll", '\u22D8');
          put("llcorner", '\u231E');
          put("Lleftarrow", '\u21DA');
          put("llhard", '\u296B');
          put("lltri", '\u25FA');
          put("Lmidot", '\u013F');
          put("lmidot", '\u0140');
          put("lmoustache", '\u23B0');
          put("lmoust", '\u23B0');
          put("lnap", '\u2A89');
          put("lnapprox", '\u2A89');
          put("lne", '\u2A87');
          put("lnE", '\u2268');
          put("lneq", '\u2A87');
          put("lneqq", '\u2268');
          put("lnsim", '\u22E6');
          put("loang", '\u27EC');
          put("loarr", '\u21FD');
          put("lobrk", '\u27E6');
          put("longleftarrow", '\u27F5');
          put("LongLeftArrow", '\u27F5');
          put("Longleftarrow", '\u27F8');
          put("longleftrightarrow", '\u27F7');
          put("LongLeftRightArrow", '\u27F7');
          put("Longleftrightarrow", '\u27FA');
          put("longmapsto", '\u27FC');
          put("longrightarrow", '\u27F6');
          put("LongRightArrow", '\u27F6');
          put("Longrightarrow", '\u27F9');
          put("looparrowleft", '\u21AB');
          put("looparrowright", '\u21AC');
          put("lopar", '\u2985');
          put("Lopf", '\uD835', '\uDD43');
          put("lopf", '\uD835', '\uDD5D');
          put("loplus", '\u2A2D');
          put("lotimes", '\u2A34');
          put("lowast", '\u2217');
          put("lowbar", '\u005F');
          put("LowerLeftArrow", '\u2199');
          put("LowerRightArrow", '\u2198');
          put("loz", '\u25CA');
          put("lozenge", '\u25CA');
          put("lozf", '\u29EB');
          put("lpar", '\u0028');
          put("lparlt", '\u2993');
          put("lrarr", '\u21C6');
          put("lrcorner", '\u231F');
          put("lrhar", '\u21CB');
          put("lrhard", '\u296D');
          put("lrm", '\u200E');
          put("lrtri", '\u22BF');
          put("lsaquo", '\u2039');
          put("lscr", '\uD835', '\uDCC1');
          put("Lscr", '\u2112');
          put("lsh", '\u21B0');
          put("Lsh", '\u21B0');
          put("lsim", '\u2272');
          put("lsime", '\u2A8D');
          put("lsimg", '\u2A8F');
          put("lsqb", '\u005B');
          put("lsquo", '\u2018');
          put("lsquor", '\u201A');
          put("Lstrok", '\u0141');
          put("lstrok", '\u0142');
          put("ltcc", '\u2AA6');
          put("ltcir", '\u2A79');
          put("lt", '\u003C');
          put("LT", '\u003C');
          put("Lt", '\u226A');
          put("ltdot", '\u22D6');
          put("lthree", '\u22CB');
          put("ltimes", '\u22C9');
          put("ltlarr", '\u2976');
          put("ltquest", '\u2A7B');
          put("ltri", '\u25C3');
          put("ltrie", '\u22B4');
          put("ltrif", '\u25C2');
          put("ltrPar", '\u2996');
          put("lurdshar", '\u294A');
          put("luruhar", '\u2966');
          put("lvertneqq", '\u2268', '\uFE00');
          put("lvnE", '\u2268', '\uFE00');
          put("macr", '\u00AF');
          put("male", '\u2642');
          put("malt", '\u2720');
          put("maltese", '\u2720');
          put("Map", '\u2905');
          put("map", '\u21A6');
          put("mapsto", '\u21A6');
          put("mapstodown", '\u21A7');
          put("mapstoleft", '\u21A4');
          put("mapstoup", '\u21A5');
          put("marker", '\u25AE');
          put("mcomma", '\u2A29');
          put("Mcy", '\u041C');
          put("mcy", '\u043C');
          put("mdash", '\u2014');
          put("mDDot", '\u223A');
          put("measuredangle", '\u2221');
          put("MediumSpace", '\u205F');
          put("Mellintrf", '\u2133');
          put("Mfr", '\uD835', '\uDD10');
          put("mfr", '\uD835', '\uDD2A');
          put("mho", '\u2127');
          put("micro", '\u00B5');
          put("midast", '\u002A');
          put("midcir", '\u2AF0');
          put("mid", '\u2223');
          put("middot", '\u00B7');
          put("minusb", '\u229F');
          put("minus", '\u2212');
          put("minusd", '\u2238');
          put("minusdu", '\u2A2A');
          put("MinusPlus", '\u2213');
          put("mlcp", '\u2ADB');
          put("mldr", '\u2026');
          put("mnplus", '\u2213');
          put("models", '\u22A7');
          put("Mopf", '\uD835', '\uDD44');
          put("mopf", '\uD835', '\uDD5E');
          put("mp", '\u2213');
          put("mscr", '\uD835', '\uDCC2');
          put("Mscr", '\u2133');
          put("mstpos", '\u223E');
          put("Mu", '\u039C');
          put("mu", '\u03BC');
          put("multimap", '\u22B8');
          put("mumap", '\u22B8');
          put("nabla", '\u2207');
          put("Nacute", '\u0143');
          put("nacute", '\u0144');
          put("nang", '\u2220', '\u20D2');
          put("nap", '\u2249');
          put("napE", '\u2A70', '\u0338');
          put("napid", '\u224B', '\u0338');
          put("napos", '\u0149');
          put("napprox", '\u2249');
          put("natural", '\u266E');
          put("naturals", '\u2115');
          put("natur", '\u266E');
          put("nbsp", '\u00A0');
          put("nbump", '\u224E', '\u0338');
          put("nbumpe", '\u224F', '\u0338');
          put("ncap", '\u2A43');
          put("Ncaron", '\u0147');
          put("ncaron", '\u0148');
          put("Ncedil", '\u0145');
          put("ncedil", '\u0146');
          put("ncong", '\u2247');
          put("ncongdot", '\u2A6D', '\u0338');
          put("ncup", '\u2A42');
          put("Ncy", '\u041D');
          put("ncy", '\u043D');
          put("ndash", '\u2013');
          put("nearhk", '\u2924');
          put("nearr", '\u2197');
          put("neArr", '\u21D7');
          put("nearrow", '\u2197');
          put("ne", '\u2260');
          put("nedot", '\u2250', '\u0338');
          put("NegativeMediumSpace", '\u200B');
          put("NegativeThickSpace", '\u200B');
          put("NegativeThinSpace", '\u200B');
          put("NegativeVeryThinSpace", '\u200B');
          put("nequiv", '\u2262');
          put("nesear", '\u2928');
          put("nesim", '\u2242', '\u0338');
          put("NestedGreaterGreater", '\u226B');
          put("NestedLessLess", '\u226A');
          put("NewLine", '\n');
          put("nexist", '\u2204');
          put("nexists", '\u2204');
          put("Nfr", '\uD835', '\uDD11');
          put("nfr", '\uD835', '\uDD2B');
          put("ngE", '\u2267', '\u0338');
          put("nge", '\u2271');
          put("ngeq", '\u2271');
          put("ngeqq", '\u2267', '\u0338');
          put("ngeqslant", '\u2A7E', '\u0338');
          put("nges", '\u2A7E', '\u0338');
          put("nGg", '\u22D9', '\u0338');
          put("ngsim", '\u2275');
          put("nGt", '\u226B', '\u20D2');
          put("ngt", '\u226F');
          put("ngtr", '\u226F');
          put("nGtv", '\u226B', '\u0338');
          put("nharr", '\u21AE');
          put("nhArr", '\u21CE');
          put("nhpar", '\u2AF2');
          put("ni", '\u220B');
          put("nis", '\u22FC');
          put("nisd", '\u22FA');
          put("niv", '\u220B');
          put("NJcy", '\u040A');
          put("njcy", '\u045A');
          put("nlarr", '\u219A');
          put("nlArr", '\u21CD');
          put("nldr", '\u2025');
          put("nlE", '\u2266', '\u0338');
          put("nle", '\u2270');
          put("nleftarrow", '\u219A');
          put("nLeftarrow", '\u21CD');
          put("nleftrightarrow", '\u21AE');
          put("nLeftrightarrow", '\u21CE');
          put("nleq", '\u2270');
          put("nleqq", '\u2266', '\u0338');
          put("nleqslant", '\u2A7D', '\u0338');
          put("nles", '\u2A7D', '\u0338');
          put("nless", '\u226E');
          put("nLl", '\u22D8', '\u0338');
          put("nlsim", '\u2274');
          put("nLt", '\u226A', '\u20D2');
          put("nlt", '\u226E');
          put("nltri", '\u22EA');
          put("nltrie", '\u22EC');
          put("nLtv", '\u226A', '\u0338');
          put("nmid", '\u2224');
          put("NoBreak", '\u2060');
          put("NonBreakingSpace", '\u00A0');
          put("nopf", '\uD835', '\uDD5F');
          put("Nopf", '\u2115');
          put("Not", '\u2AEC');
          put("not", '\u00AC');
          put("NotCongruent", '\u2262');
          put("NotCupCap", '\u226D');
          put("NotDoubleVerticalBar", '\u2226');
          put("NotElement", '\u2209');
          put("NotEqual", '\u2260');
          put("NotEqualTilde", '\u2242', '\u0338');
          put("NotExists", '\u2204');
          put("NotGreater", '\u226F');
          put("NotGreaterEqual", '\u2271');
          put("NotGreaterFullEqual", '\u2267', '\u0338');
          put("NotGreaterGreater", '\u226B', '\u0338');
          put("NotGreaterLess", '\u2279');
          put("NotGreaterSlantEqual", '\u2A7E', '\u0338');
          put("NotGreaterTilde", '\u2275');
          put("NotHumpDownHump", '\u224E', '\u0338');
          put("NotHumpEqual", '\u224F', '\u0338');
          put("notin", '\u2209');
          put("notindot", '\u22F5', '\u0338');
          put("notinE", '\u22F9', '\u0338');
          put("notinva", '\u2209');
          put("notinvb", '\u22F7');
          put("notinvc", '\u22F6');
          put("NotLeftTriangleBar", '\u29CF', '\u0338');
          put("NotLeftTriangle", '\u22EA');
          put("NotLeftTriangleEqual", '\u22EC');
          put("NotLess", '\u226E');
          put("NotLessEqual", '\u2270');
          put("NotLessGreater", '\u2278');
          put("NotLessLess", '\u226A', '\u0338');
          put("NotLessSlantEqual", '\u2A7D', '\u0338');
          put("NotLessTilde", '\u2274');
          put("NotNestedGreaterGreater", '\u2AA2', '\u0338');
          put("NotNestedLessLess", '\u2AA1', '\u0338');
          put("notni", '\u220C');
          put("notniva", '\u220C');
          put("notnivb", '\u22FE');
          put("notnivc", '\u22FD');
          put("NotPrecedes", '\u2280');
          put("NotPrecedesEqual", '\u2AAF', '\u0338');
          put("NotPrecedesSlantEqual", '\u22E0');
          put("NotReverseElement", '\u220C');
          put("NotRightTriangleBar", '\u29D0', '\u0338');
          put("NotRightTriangle", '\u22EB');
          put("NotRightTriangleEqual", '\u22ED');
          put("NotSquareSubset", '\u228F', '\u0338');
          put("NotSquareSubsetEqual", '\u22E2');
          put("NotSquareSuperset", '\u2290', '\u0338');
          put("NotSquareSupersetEqual", '\u22E3');
          put("NotSubset", '\u2282', '\u20D2');
          put("NotSubsetEqual", '\u2288');
          put("NotSucceeds", '\u2281');
          put("NotSucceedsEqual", '\u2AB0', '\u0338');
          put("NotSucceedsSlantEqual", '\u22E1');
          put("NotSucceedsTilde", '\u227F', '\u0338');
          put("NotSuperset", '\u2283', '\u20D2');
          put("NotSupersetEqual", '\u2289');
          put("NotTilde", '\u2241');
          put("NotTildeEqual", '\u2244');
          put("NotTildeFullEqual", '\u2247');
          put("NotTildeTilde", '\u2249');
          put("NotVerticalBar", '\u2224');
          put("nparallel", '\u2226');
          put("npar", '\u2226');
          put("nparsl", '\u2AFD', '\u20E5');
          put("npart", '\u2202', '\u0338');
          put("npolint", '\u2A14');
          put("npr", '\u2280');
          put("nprcue", '\u22E0');
          put("nprec", '\u2280');
          put("npreceq", '\u2AAF', '\u0338');
          put("npre", '\u2AAF', '\u0338');
          put("nrarrc", '\u2933', '\u0338');
          put("nrarr", '\u219B');
          put("nrArr", '\u21CF');
          put("nrarrw", '\u219D', '\u0338');
          put("nrightarrow", '\u219B');
          put("nRightarrow", '\u21CF');
          put("nrtri", '\u22EB');
          put("nrtrie", '\u22ED');
          put("nsc", '\u2281');
          put("nsccue", '\u22E1');
          put("nsce", '\u2AB0', '\u0338');
          put("Nscr", '\uD835', '\uDCA9');
          put("nscr", '\uD835', '\uDCC3');
          put("nshortmid", '\u2224');
          put("nshortparallel", '\u2226');
          put("nsim", '\u2241');
          put("nsime", '\u2244');
          put("nsimeq", '\u2244');
          put("nsmid", '\u2224');
          put("nspar", '\u2226');
          put("nsqsube", '\u22E2');
          put("nsqsupe", '\u22E3');
          put("nsub", '\u2284');
          put("nsubE", '\u2AC5', '\u0338');
          put("nsube", '\u2288');
          put("nsubset", '\u2282', '\u20D2');
          put("nsubseteq", '\u2288');
          put("nsubseteqq", '\u2AC5', '\u0338');
          put("nsucc", '\u2281');
          put("nsucceq", '\u2AB0', '\u0338');
          put("nsup", '\u2285');
          put("nsupE", '\u2AC6', '\u0338');
          put("nsupe", '\u2289');
          put("nsupset", '\u2283', '\u20D2');
          put("nsupseteq", '\u2289');
          put("nsupseteqq", '\u2AC6', '\u0338');
          put("ntgl", '\u2279');
          put("Ntilde", '\u00D1');
          put("ntilde", '\u00F1');
          put("ntlg", '\u2278');
          put("ntriangleleft", '\u22EA');
          put("ntrianglelefteq", '\u22EC');
          put("ntriangleright", '\u22EB');
          put("ntrianglerighteq", '\u22ED');
          put("Nu", '\u039D');
          put("nu", '\u03BD');
          put("num", '\u0023');
          put("numero", '\u2116');
          put("numsp", '\u2007');
          put("nvap", '\u224D', '\u20D2');
          put("nvdash", '\u22AC');
          put("nvDash", '\u22AD');
          put("nVdash", '\u22AE');
          put("nVDash", '\u22AF');
          put("nvge", '\u2265', '\u20D2');
          put("nvgt", '\u003E', '\u20D2');
          put("nvHarr", '\u2904');
          put("nvinfin", '\u29DE');
          put("nvlArr", '\u2902');
          put("nvle", '\u2264', '\u20D2');
          put("nvlt", '\u003C', '\u20D2');
          put("nvltrie", '\u22B4', '\u20D2');
          put("nvrArr", '\u2903');
          put("nvrtrie", '\u22B5', '\u20D2');
          put("nvsim", '\u223C', '\u20D2');
          put("nwarhk", '\u2923');
          put("nwarr", '\u2196');
          put("nwArr", '\u21D6');
          put("nwarrow", '\u2196');
          put("nwnear", '\u2927');
          put("Oacute", '\u00D3');
          put("oacute", '\u00F3');
          put("oast", '\u229B');
          put("Ocirc", '\u00D4');
          put("ocirc", '\u00F4');
          put("ocir", '\u229A');
          put("Ocy", '\u041E');
          put("ocy", '\u043E');
          put("odash", '\u229D');
          put("Odblac", '\u0150');
          put("odblac", '\u0151');
          put("odiv", '\u2A38');
          put("odot", '\u2299');
          put("odsold", '\u29BC');
          put("OElig", '\u0152');
          put("oelig", '\u0153');
          put("ofcir", '\u29BF');
          put("Ofr", '\uD835', '\uDD12');
          put("ofr", '\uD835', '\uDD2C');
          put("ogon", '\u02DB');
          put("Ograve", '\u00D2');
          put("ograve", '\u00F2');
          put("ogt", '\u29C1');
          put("ohbar", '\u29B5');
          put("ohm", '\u03A9');
          put("oint", '\u222E');
          put("olarr", '\u21BA');
          put("olcir", '\u29BE');
          put("olcross", '\u29BB');
          put("oline", '\u203E');
          put("olt", '\u29C0');
          put("Omacr", '\u014C');
          put("omacr", '\u014D');
          put("Omega", '\u03A9');
          put("omega", '\u03C9');
          put("Omicron", '\u039F');
          put("omicron", '\u03BF');
          put("omid", '\u29B6');
          put("ominus", '\u2296');
          put("Oopf", '\uD835', '\uDD46');
          put("oopf", '\uD835', '\uDD60');
          put("opar", '\u29B7');
          put("OpenCurlyDoubleQuote", '\u201C');
          put("OpenCurlyQuote", '\u2018');
          put("operp", '\u29B9');
          put("oplus", '\u2295');
          put("orarr", '\u21BB');
          put("Or", '\u2A54');
          put("or", '\u2228');
          put("ord", '\u2A5D');
          put("order", '\u2134');
          put("orderof", '\u2134');
          put("ordf", '\u00AA');
          put("ordm", '\u00BA');
          put("origof", '\u22B6');
          put("oror", '\u2A56');
          put("orslope", '\u2A57');
          put("orv", '\u2A5B');
          put("oS", '\u24C8');
          put("Oscr", '\uD835', '\uDCAA');
          put("oscr", '\u2134');
          put("Oslash", '\u00D8');
          put("oslash", '\u00F8');
          put("osol", '\u2298');
          put("Otilde", '\u00D5');
          put("otilde", '\u00F5');
          put("otimesas", '\u2A36');
          put("Otimes", '\u2A37');
          put("otimes", '\u2297');
          put("Ouml", '\u00D6');
          put("ouml", '\u00F6');
          put("ovbar", '\u233D');
          put("OverBar", '\u203E');
          put("OverBrace", '\u23DE');
          put("OverBracket", '\u23B4');
          put("OverParenthesis", '\u23DC');
          put("para", '\u00B6');
          put("parallel", '\u2225');
          put("par", '\u2225');
          put("parsim", '\u2AF3');
          put("parsl", '\u2AFD');
          put("part", '\u2202');
          put("PartialD", '\u2202');
          put("Pcy", '\u041F');
          put("pcy", '\u043F');
          put("percnt", '\u0025');
          put("period", '\u002E');
          put("permil", '\u2030');
          put("perp", '\u22A5');
          put("pertenk", '\u2031');
          put("Pfr", '\uD835', '\uDD13');
          put("pfr", '\uD835', '\uDD2D');
          put("Phi", '\u03A6');
          put("phi", '\u03C6');
          put("phiv", '\u03D5');
          put("phmmat", '\u2133');
          put("phone", '\u260E');
          put("Pi", '\u03A0');
          put("pi", '\u03C0');
          put("pitchfork", '\u22D4');
          put("piv", '\u03D6');
          put("planck", '\u210F');
          put("planckh", '\u210E');
          put("plankv", '\u210F');
          put("plusacir", '\u2A23');
          put("plusb", '\u229E');
          put("pluscir", '\u2A22');
          put("plus", '\u002B');
          put("plusdo", '\u2214');
          put("plusdu", '\u2A25');
          put("pluse", '\u2A72');
          put("PlusMinus", '\u00B1');
          put("plusmn", '\u00B1');
          put("plussim", '\u2A26');
          put("plustwo", '\u2A27');
          put("pm", '\u00B1');
          put("Poincareplane", '\u210C');
          put("pointint", '\u2A15');
          put("popf", '\uD835', '\uDD61');
          put("Popf", '\u2119');
          put("pound", '\u00A3');
          put("prap", '\u2AB7');
          put("Pr", '\u2ABB');
          put("pr", '\u227A');
          put("prcue", '\u227C');
          put("precapprox", '\u2AB7');
          put("prec", '\u227A');
          put("preccurlyeq", '\u227C');
          put("Precedes", '\u227A');
          put("PrecedesEqual", '\u2AAF');
          put("PrecedesSlantEqual", '\u227C');
          put("PrecedesTilde", '\u227E');
          put("preceq", '\u2AAF');
          put("precnapprox", '\u2AB9');
          put("precneqq", '\u2AB5');
          put("precnsim", '\u22E8');
          put("pre", '\u2AAF');
          put("prE", '\u2AB3');
          put("precsim", '\u227E');
          put("prime", '\u2032');
          put("Prime", '\u2033');
          put("primes", '\u2119');
          put("prnap", '\u2AB9');
          put("prnE", '\u2AB5');
          put("prnsim", '\u22E8');
          put("prod", '\u220F');
          put("Product", '\u220F');
          put("profalar", '\u232E');
          put("profline", '\u2312');
          put("profsurf", '\u2313');
          put("prop", '\u221D');
          put("Proportional", '\u221D');
          put("Proportion", '\u2237');
          put("propto", '\u221D');
          put("prsim", '\u227E');
          put("prurel", '\u22B0');
          put("Pscr", '\uD835', '\uDCAB');
          put("pscr", '\uD835', '\uDCC5');
          put("Psi", '\u03A8');
          put("psi", '\u03C8');
          put("puncsp", '\u2008');
          put("Qfr", '\uD835', '\uDD14');
          put("qfr", '\uD835', '\uDD2E');
          put("qint", '\u2A0C');
          put("qopf", '\uD835', '\uDD62');
          put("Qopf", '\u211A');
          put("qprime", '\u2057');
          put("Qscr", '\uD835', '\uDCAC');
          put("qscr", '\uD835', '\uDCC6');
          put("quaternions", '\u210D');
          put("quatint", '\u2A16');
          put("quest", '\u003F');
          put("questeq", '\u225F');
          put("quot", '\"');
          put("QUOT", '\"');
          put("rAarr", '\u21DB');
          put("race", '\u223D', '\u0331');
          put("Racute", '\u0154');
          put("racute", '\u0155');
          put("radic", '\u221A');
          put("raemptyv", '\u29B3');
          put("rang", '\u27E9');
          put("Rang", '\u27EB');
          put("rangd", '\u2992');
          put("range", '\u29A5');
          put("rangle", '\u27E9');
          put("raquo", '\u00BB');
          put("rarrap", '\u2975');
          put("rarrb", '\u21E5');
          put("rarrbfs", '\u2920');
          put("rarrc", '\u2933');
          put("rarr", '\u2192');
          put("Rarr", '\u21A0');
          put("rArr", '\u21D2');
          put("rarrfs", '\u291E');
          put("rarrhk", '\u21AA');
          put("rarrlp", '\u21AC');
          put("rarrpl", '\u2945');
          put("rarrsim", '\u2974');
          put("Rarrtl", '\u2916');
          put("rarrtl", '\u21A3');
          put("rarrw", '\u219D');
          put("ratail", '\u291A');
          put("rAtail", '\u291C');
          put("ratio", '\u2236');
          put("rationals", '\u211A');
          put("rbarr", '\u290D');
          put("rBarr", '\u290F');
          put("RBarr", '\u2910');
          put("rbbrk", '\u2773');
          put("rbrace", '\u007D');
          put("rbrack", '\u005D');
          put("rbrke", '\u298C');
          put("rbrksld", '\u298E');
          put("rbrkslu", '\u2990');
          put("Rcaron", '\u0158');
          put("rcaron", '\u0159');
          put("Rcedil", '\u0156');
          put("rcedil", '\u0157');
          put("rceil", '\u2309');
          put("rcub", '\u007D');
          put("Rcy", '\u0420');
          put("rcy", '\u0440');
          put("rdca", '\u2937');
          put("rdldhar", '\u2969');
          put("rdquo", '\u201D');
          put("rdquor", '\u201D');
          put("rdsh", '\u21B3');
          put("real", '\u211C');
          put("realine", '\u211B');
          put("realpart", '\u211C');
          put("reals", '\u211D');
          put("Re", '\u211C');
          put("rect", '\u25AD');
          put("reg", '\u00AE');
          put("REG", '\u00AE');
          put("ReverseElement", '\u220B');
          put("ReverseEquilibrium", '\u21CB');
          put("ReverseUpEquilibrium", '\u296F');
          put("rfisht", '\u297D');
          put("rfloor", '\u230B');
          put("rfr", '\uD835', '\uDD2F');
          put("Rfr", '\u211C');
          put("rHar", '\u2964');
          put("rhard", '\u21C1');
          put("rharu", '\u21C0');
          put("rharul", '\u296C');
          put("Rho", '\u03A1');
          put("rho", '\u03C1');
          put("rhov", '\u03F1');
          put("RightAngleBracket", '\u27E9');
          put("RightArrowBar", '\u21E5');
          put("rightarrow", '\u2192');
          put("RightArrow", '\u2192');
          put("Rightarrow", '\u21D2');
          put("RightArrowLeftArrow", '\u21C4');
          put("rightarrowtail", '\u21A3');
          put("RightCeiling", '\u2309');
          put("RightDoubleBracket", '\u27E7');
          put("RightDownTeeVector", '\u295D');
          put("RightDownVectorBar", '\u2955');
          put("RightDownVector", '\u21C2');
          put("RightFloor", '\u230B');
          put("rightharpoondown", '\u21C1');
          put("rightharpoonup", '\u21C0');
          put("rightleftarrows", '\u21C4');
          put("rightleftharpoons", '\u21CC');
          put("rightrightarrows", '\u21C9');
          put("rightsquigarrow", '\u219D');
          put("RightTeeArrow", '\u21A6');
          put("RightTee", '\u22A2');
          put("RightTeeVector", '\u295B');
          put("rightthreetimes", '\u22CC');
          put("RightTriangleBar", '\u29D0');
          put("RightTriangle", '\u22B3');
          put("RightTriangleEqual", '\u22B5');
          put("RightUpDownVector", '\u294F');
          put("RightUpTeeVector", '\u295C');
          put("RightUpVectorBar", '\u2954');
          put("RightUpVector", '\u21BE');
          put("RightVectorBar", '\u2953');
          put("RightVector", '\u21C0');
          put("ring", '\u02DA');
          put("risingdotseq", '\u2253');
          put("rlarr", '\u21C4');
          put("rlhar", '\u21CC');
          put("rlm", '\u200F');
          put("rmoustache", '\u23B1');
          put("rmoust", '\u23B1');
          put("rnmid", '\u2AEE');
          put("roang", '\u27ED');
          put("roarr", '\u21FE');
          put("robrk", '\u27E7');
          put("ropar", '\u2986');
          put("ropf", '\uD835', '\uDD63');
          put("Ropf", '\u211D');
          put("roplus", '\u2A2E');
          put("rotimes", '\u2A35');
          put("RoundImplies", '\u2970');
          put("rpar", '\u0029');
          put("rpargt", '\u2994');
          put("rppolint", '\u2A12');
          put("rrarr", '\u21C9');
          put("Rrightarrow", '\u21DB');
          put("rsaquo", '\u203A');
          put("rscr", '\uD835', '\uDCC7');
          put("Rscr", '\u211B');
          put("rsh", '\u21B1');
          put("Rsh", '\u21B1');
          put("rsqb", '\u005D');
          put("rsquo", '\u2019');
          put("rsquor", '\u2019');
          put("rthree", '\u22CC');
          put("rtimes", '\u22CA');
          put("rtri", '\u25B9');
          put("rtrie", '\u22B5');
          put("rtrif", '\u25B8');
          put("rtriltri", '\u29CE');
          put("RuleDelayed", '\u29F4');
          put("ruluhar", '\u2968');
          put("rx", '\u211E');
          put("Sacute", '\u015A');
          put("sacute", '\u015B');
          put("sbquo", '\u201A');
          put("scap", '\u2AB8');
          put("Scaron", '\u0160');
          put("scaron", '\u0161');
          put("Sc", '\u2ABC');
          put("sc", '\u227B');
          put("sccue", '\u227D');
          put("sce", '\u2AB0');
          put("scE", '\u2AB4');
          put("Scedil", '\u015E');
          put("scedil", '\u015F');
          put("Scirc", '\u015C');
          put("scirc", '\u015D');
          put("scnap", '\u2ABA');
          put("scnE", '\u2AB6');
          put("scnsim", '\u22E9');
          put("scpolint", '\u2A13');
          put("scsim", '\u227F');
          put("Scy", '\u0421');
          put("scy", '\u0441');
          put("sdotb", '\u22A1');
          put("sdot", '\u22C5');
          put("sdote", '\u2A66');
          put("searhk", '\u2925');
          put("searr", '\u2198');
          put("seArr", '\u21D8');
          put("searrow", '\u2198');
          put("sect", '\u00A7');
          put("semi", '\u003B');
          put("seswar", '\u2929');
          put("setminus", '\u2216');
          put("setmn", '\u2216');
          put("sext", '\u2736');
          put("Sfr", '\uD835', '\uDD16');
          put("sfr", '\uD835', '\uDD30');
          put("sfrown", '\u2322');
          put("sharp", '\u266F');
          put("SHCHcy", '\u0429');
          put("shchcy", '\u0449');
          put("SHcy", '\u0428');
          put("shcy", '\u0448');
          put("ShortDownArrow", '\u2193');
          put("ShortLeftArrow", '\u2190');
          put("shortmid", '\u2223');
          put("shortparallel", '\u2225');
          put("ShortRightArrow", '\u2192');
          put("ShortUpArrow", '\u2191');
          put("shy", '\u00AD');
          put("Sigma", '\u03A3');
          put("sigma", '\u03C3');
          put("sigmaf", '\u03C2');
          put("sigmav", '\u03C2');
          put("sim", '\u223C');
          put("simdot", '\u2A6A');
          put("sime", '\u2243');
          put("simeq", '\u2243');
          put("simg", '\u2A9E');
          put("simgE", '\u2AA0');
          put("siml", '\u2A9D');
          put("simlE", '\u2A9F');
          put("simne", '\u2246');
          put("simplus", '\u2A24');
          put("simrarr", '\u2972');
          put("slarr", '\u2190');
          put("SmallCircle", '\u2218');
          put("smallsetminus", '\u2216');
          put("smashp", '\u2A33');
          put("smeparsl", '\u29E4');
          put("smid", '\u2223');
          put("smile", '\u2323');
          put("smt", '\u2AAA');
          put("smte", '\u2AAC');
          put("smtes", '\u2AAC', '\uFE00');
          put("SOFTcy", '\u042C');
          put("softcy", '\u044C');
          put("solbar", '\u233F');
          put("solb", '\u29C4');
          put("sol", '\u002F');
          put("Sopf", '\uD835', '\uDD4A');
          put("sopf", '\uD835', '\uDD64');
          put("spades", '\u2660');
          put("spadesuit", '\u2660');
          put("spar", '\u2225');
          put("sqcap", '\u2293');
          put("sqcaps", '\u2293', '\uFE00');
          put("sqcup", '\u2294');
          put("sqcups", '\u2294', '\uFE00');
          put("Sqrt", '\u221A');
          put("sqsub", '\u228F');
          put("sqsube", '\u2291');
          put("sqsubset", '\u228F');
          put("sqsubseteq", '\u2291');
          put("sqsup", '\u2290');
          put("sqsupe", '\u2292');
          put("sqsupset", '\u2290');
          put("sqsupseteq", '\u2292');
          put("square", '\u25A1');
          put("Square", '\u25A1');
          put("SquareIntersection", '\u2293');
          put("SquareSubset", '\u228F');
          put("SquareSubsetEqual", '\u2291');
          put("SquareSuperset", '\u2290');
          put("SquareSupersetEqual", '\u2292');
          put("SquareUnion", '\u2294');
          put("squarf", '\u25AA');
          put("squ", '\u25A1');
          put("squf", '\u25AA');
          put("srarr", '\u2192');
          put("Sscr", '\uD835', '\uDCAE');
          put("sscr", '\uD835', '\uDCC8');
          put("ssetmn", '\u2216');
          put("ssmile", '\u2323');
          put("sstarf", '\u22C6');
          put("Star", '\u22C6');
          put("star", '\u2606');
          put("starf", '\u2605');
          put("straightepsilon", '\u03F5');
          put("straightphi", '\u03D5');
          put("strns", '\u00AF');
          put("sub", '\u2282');
          put("Sub", '\u22D0');
          put("subdot", '\u2ABD');
          put("subE", '\u2AC5');
          put("sube", '\u2286');
          put("subedot", '\u2AC3');
          put("submult", '\u2AC1');
          put("subnE", '\u2ACB');
          put("subne", '\u228A');
          put("subplus", '\u2ABF');
          put("subrarr", '\u2979');
          put("subset", '\u2282');
          put("Subset", '\u22D0');
          put("subseteq", '\u2286');
          put("subseteqq", '\u2AC5');
          put("SubsetEqual", '\u2286');
          put("subsetneq", '\u228A');
          put("subsetneqq", '\u2ACB');
          put("subsim", '\u2AC7');
          put("subsub", '\u2AD5');
          put("subsup", '\u2AD3');
          put("succapprox", '\u2AB8');
          put("succ", '\u227B');
          put("succcurlyeq", '\u227D');
          put("Succeeds", '\u227B');
          put("SucceedsEqual", '\u2AB0');
          put("SucceedsSlantEqual", '\u227D');
          put("SucceedsTilde", '\u227F');
          put("succeq", '\u2AB0');
          put("succnapprox", '\u2ABA');
          put("succneqq", '\u2AB6');
          put("succnsim", '\u22E9');
          put("succsim", '\u227F');
          put("SuchThat", '\u220B');
          put("sum", '\u2211');
          put("Sum", '\u2211');
          put("sung", '\u266A');
          put("sup1", '\u00B9');
          put("sup2", '\u00B2');
          put("sup3", '\u00B3');
          put("sup", '\u2283');
          put("Sup", '\u22D1');
          put("supdot", '\u2ABE');
          put("supdsub", '\u2AD8');
          put("supE", '\u2AC6');
          put("supe", '\u2287');
          put("supedot", '\u2AC4');
          put("Superset", '\u2283');
          put("SupersetEqual", '\u2287');
          put("suphsol", '\u27C9');
          put("suphsub", '\u2AD7');
          put("suplarr", '\u297B');
          put("supmult", '\u2AC2');
          put("supnE", '\u2ACC');
          put("supne", '\u228B');
          put("supplus", '\u2AC0');
          put("supset", '\u2283');
          put("Supset", '\u22D1');
          put("supseteq", '\u2287');
          put("supseteqq", '\u2AC6');
          put("supsetneq", '\u228B');
          put("supsetneqq", '\u2ACC');
          put("supsim", '\u2AC8');
          put("supsub", '\u2AD4');
          put("supsup", '\u2AD6');
          put("swarhk", '\u2926');
          put("swarr", '\u2199');
          put("swArr", '\u21D9');
          put("swarrow", '\u2199');
          put("swnwar", '\u292A');
          put("szlig", '\u00DF');
          put("Tab", '\u0009');
          put("target", '\u2316');
          put("Tau", '\u03A4');
          put("tau", '\u03C4');
          put("tbrk", '\u23B4');
          put("Tcaron", '\u0164');
          put("tcaron", '\u0165');
          put("Tcedil", '\u0162');
          put("tcedil", '\u0163');
          put("Tcy", '\u0422');
          put("tcy", '\u0442');
          put("tdot", '\u20DB');
          put("telrec", '\u2315');
          put("Tfr", '\uD835', '\uDD17');
          put("tfr", '\uD835', '\uDD31');
          put("there4", '\u2234');
          put("therefore", '\u2234');
          put("Therefore", '\u2234');
          put("Theta", '\u0398');
          put("theta", '\u03B8');
          put("thetasym", '\u03D1');
          put("thetav", '\u03D1');
          put("thickapprox", '\u2248');
          put("thicksim", '\u223C');
          put("ThickSpace", '\u205F', '\u200A');
          put("ThinSpace", '\u2009');
          put("thinsp", '\u2009');
          put("thkap", '\u2248');
          put("thksim", '\u223C');
          put("THORN", '\u00DE');
          put("thorn", '\u00FE');
          put("tilde", '\u02DC');
          put("Tilde", '\u223C');
          put("TildeEqual", '\u2243');
          put("TildeFullEqual", '\u2245');
          put("TildeTilde", '\u2248');
          put("timesbar", '\u2A31');
          put("timesb", '\u22A0');
          put("times", '\u00D7');
          put("timesd", '\u2A30');
          put("tint", '\u222D');
          put("toea", '\u2928');
          put("topbot", '\u2336');
          put("topcir", '\u2AF1');
          put("top", '\u22A4');
          put("Topf", '\uD835', '\uDD4B');
          put("topf", '\uD835', '\uDD65');
          put("topfork", '\u2ADA');
          put("tosa", '\u2929');
          put("tprime", '\u2034');
          put("trade", '\u2122');
          put("TRADE", '\u2122');
          put("triangle", '\u25B5');
          put("triangledown", '\u25BF');
          put("triangleleft", '\u25C3');
          put("trianglelefteq", '\u22B4');
          put("triangleq", '\u225C');
          put("triangleright", '\u25B9');
          put("trianglerighteq", '\u22B5');
          put("tridot", '\u25EC');
          put("trie", '\u225C');
          put("triminus", '\u2A3A');
          put("TripleDot", '\u20DB');
          put("triplus", '\u2A39');
          put("trisb", '\u29CD');
          put("tritime", '\u2A3B');
          put("trpezium", '\u23E2');
          put("Tscr", '\uD835', '\uDCAF');
          put("tscr", '\uD835', '\uDCC9');
          put("TScy", '\u0426');
          put("tscy", '\u0446');
          put("TSHcy", '\u040B');
          put("tshcy", '\u045B');
          put("Tstrok", '\u0166');
          put("tstrok", '\u0167');
          put("twixt", '\u226C');
          put("twoheadleftarrow", '\u219E');
          put("twoheadrightarrow", '\u21A0');
          put("Uacute", '\u00DA');
          put("uacute", '\u00FA');
          put("uarr", '\u2191');
          put("Uarr", '\u219F');
          put("uArr", '\u21D1');
          put("Uarrocir", '\u2949');
          put("Ubrcy", '\u040E');
          put("ubrcy", '\u045E');
          put("Ubreve", '\u016C');
          put("ubreve", '\u016D');
          put("Ucirc", '\u00DB');
          put("ucirc", '\u00FB');
          put("Ucy", '\u0423');
          put("ucy", '\u0443');
          put("udarr", '\u21C5');
          put("Udblac", '\u0170');
          put("udblac", '\u0171');
          put("udhar", '\u296E');
          put("ufisht", '\u297E');
          put("Ufr", '\uD835', '\uDD18');
          put("ufr", '\uD835', '\uDD32');
          put("Ugrave", '\u00D9');
          put("ugrave", '\u00F9');
          put("uHar", '\u2963');
          put("uharl", '\u21BF');
          put("uharr", '\u21BE');
          put("uhblk", '\u2580');
          put("ulcorn", '\u231C');
          put("ulcorner", '\u231C');
          put("ulcrop", '\u230F');
          put("ultri", '\u25F8');
          put("Umacr", '\u016A');
          put("umacr", '\u016B');
          put("uml", '\u00A8');
          put("UnderBar", '\u005F');
          put("UnderBrace", '\u23DF');
          put("UnderBracket", '\u23B5');
          put("UnderParenthesis", '\u23DD');
          put("Union", '\u22C3');
          put("UnionPlus", '\u228E');
          put("Uogon", '\u0172');
          put("uogon", '\u0173');
          put("Uopf", '\uD835', '\uDD4C');
          put("uopf", '\uD835', '\uDD66');
          put("UpArrowBar", '\u2912');
          put("uparrow", '\u2191');
          put("UpArrow", '\u2191');
          put("Uparrow", '\u21D1');
          put("UpArrowDownArrow", '\u21C5');
          put("updownarrow", '\u2195');
          put("UpDownArrow", '\u2195');
          put("Updownarrow", '\u21D5');
          put("UpEquilibrium", '\u296E');
          put("upharpoonleft", '\u21BF');
          put("upharpoonright", '\u21BE');
          put("uplus", '\u228E');
          put("UpperLeftArrow", '\u2196');
          put("UpperRightArrow", '\u2197');
          put("upsi", '\u03C5');
          put("Upsi", '\u03D2');
          put("upsih", '\u03D2');
          put("Upsilon", '\u03A5');
          put("upsilon", '\u03C5');
          put("UpTeeArrow", '\u21A5');
          put("UpTee", '\u22A5');
          put("upuparrows", '\u21C8');
          put("urcorn", '\u231D');
          put("urcorner", '\u231D');
          put("urcrop", '\u230E');
          put("Uring", '\u016E');
          put("uring", '\u016F');
          put("urtri", '\u25F9');
          put("Uscr", '\uD835', '\uDCB0');
          put("uscr", '\uD835', '\uDCCA');
          put("utdot", '\u22F0');
          put("Utilde", '\u0168');
          put("utilde", '\u0169');
          put("utri", '\u25B5');
          put("utrif", '\u25B4');
          put("uuarr", '\u21C8');
          put("Uuml", '\u00DC');
          put("uuml", '\u00FC');
          put("uwangle", '\u29A7');
          put("vangrt", '\u299C');
          put("varepsilon", '\u03F5');
          put("varkappa", '\u03F0');
          put("varnothing", '\u2205');
          put("varphi", '\u03D5');
          put("varpi", '\u03D6');
          put("varpropto", '\u221D');
          put("varr", '\u2195');
          put("vArr", '\u21D5');
          put("varrho", '\u03F1');
          put("varsigma", '\u03C2');
          put("varsubsetneq", '\u228A', '\uFE00');
          put("varsubsetneqq", '\u2ACB', '\uFE00');
          put("varsupsetneq", '\u228B', '\uFE00');
          put("varsupsetneqq", '\u2ACC', '\uFE00');
          put("vartheta", '\u03D1');
          put("vartriangleleft", '\u22B2');
          put("vartriangleright", '\u22B3');
          put("vBar", '\u2AE8');
          put("Vbar", '\u2AEB');
          put("vBarv", '\u2AE9');
          put("Vcy", '\u0412');
          put("vcy", '\u0432');
          put("vdash", '\u22A2');
          put("vDash", '\u22A8');
          put("Vdash", '\u22A9');
          put("VDash", '\u22AB');
          put("Vdashl", '\u2AE6');
          put("veebar", '\u22BB');
          put("vee", '\u2228');
          put("Vee", '\u22C1');
          put("veeeq", '\u225A');
          put("vellip", '\u22EE');
          put("verbar", '\u007C');
          put("Verbar", '\u2016');
          put("vert", '\u007C');
          put("Vert", '\u2016');
          put("VerticalBar", '\u2223');
          put("VerticalLine", '\u007C');
          put("VerticalSeparator", '\u2758');
          put("VerticalTilde", '\u2240');
          put("VeryThinSpace", '\u200A');
          put("Vfr", '\uD835', '\uDD19');
          put("vfr", '\uD835', '\uDD33');
          put("vltri", '\u22B2');
          put("vnsub", '\u2282', '\u20D2');
          put("vnsup", '\u2283', '\u20D2');
          put("Vopf", '\uD835', '\uDD4D');
          put("vopf", '\uD835', '\uDD67');
          put("vprop", '\u221D');
          put("vrtri", '\u22B3');
          put("Vscr", '\uD835', '\uDCB1');
          put("vscr", '\uD835', '\uDCCB');
          put("vsubnE", '\u2ACB', '\uFE00');
          put("vsubne", '\u228A', '\uFE00');
          put("vsupnE", '\u2ACC', '\uFE00');
          put("vsupne", '\u228B', '\uFE00');
          put("Vvdash", '\u22AA');
          put("vzigzag", '\u299A');
          put("Wcirc", '\u0174');
          put("wcirc", '\u0175');
          put("wedbar", '\u2A5F');
          put("wedge", '\u2227');
          put("Wedge", '\u22C0');
          put("wedgeq", '\u2259');
          put("weierp", '\u2118');
          put("Wfr", '\uD835', '\uDD1A');
          put("wfr", '\uD835', '\uDD34');
          put("Wopf", '\uD835', '\uDD4E');
          put("wopf", '\uD835', '\uDD68');
          put("wp", '\u2118');
          put("wr", '\u2240');
          put("wreath", '\u2240');
          put("Wscr", '\uD835', '\uDCB2');
          put("wscr", '\uD835', '\uDCCC');
          put("xcap", '\u22C2');
          put("xcirc", '\u25EF');
          put("xcup", '\u22C3');
          put("xdtri", '\u25BD');
          put("Xfr", '\uD835', '\uDD1B');
          put("xfr", '\uD835', '\uDD35');
          put("xharr", '\u27F7');
          put("xhArr", '\u27FA');
          put("Xi", '\u039E');
          put("xi", '\u03BE');
          put("xlarr", '\u27F5');
          put("xlArr", '\u27F8');
          put("xmap", '\u27FC');
          put("xnis", '\u22FB');
          put("xodot", '\u2A00');
          put("Xopf", '\uD835', '\uDD4F');
          put("xopf", '\uD835', '\uDD69');
          put("xoplus", '\u2A01');
          put("xotime", '\u2A02');
          put("xrarr", '\u27F6');
          put("xrArr", '\u27F9');
          put("Xscr", '\uD835', '\uDCB3');
          put("xscr", '\uD835', '\uDCCD');
          put("xsqcup", '\u2A06');
          put("xuplus", '\u2A04');
          put("xutri", '\u25B3');
          put("xvee", '\u22C1');
          put("xwedge", '\u22C0');
          put("Yacute", '\u00DD');
          put("yacute", '\u00FD');
          put("YAcy", '\u042F');
          put("yacy", '\u044F');
          put("Ycirc", '\u0176');
          put("ycirc", '\u0177');
          put("Ycy", '\u042B');
          put("ycy", '\u044B');
          put("yen", '\u00A5');
          put("Yfr", '\uD835', '\uDD1C');
          put("yfr", '\uD835', '\uDD36');
          put("YIcy", '\u0407');
          put("yicy", '\u0457');
          put("Yopf", '\uD835', '\uDD50');
          put("yopf", '\uD835', '\uDD6A');
          put("Yscr", '\uD835', '\uDCB4');
          put("yscr", '\uD835', '\uDCCE');
          put("YUcy", '\u042E');
          put("yucy", '\u044E');
          put("yuml", '\u00FF');
          put("Yuml", '\u0178');
          put("Zacute", '\u0179');
          put("zacute", '\u017A');
          put("Zcaron", '\u017D');
          put("zcaron", '\u017E');
          put("Zcy", '\u0417');
          put("zcy", '\u0437');
          put("Zdot", '\u017B');
          put("zdot", '\u017C');
          put("zeetrf", '\u2128');
          put("ZeroWidthSpace", '\u200B');
          put("Zeta", '\u0396');
          put("zeta", '\u03B6');
          put("zfr", '\uD835', '\uDD37');
          put("Zfr", '\u2128');
          put("ZHcy", '\u0416');
          put("zhcy", '\u0436');
          put("zigrarr", '\u21DD');
          put("zopf", '\uD835', '\uDD6B');
          put("Zopf", '\u2124');
          put("Zscr", '\uD835', '\uDCB5');
          put("zscr", '\uD835', '\uDCCF');
          put("zwj", '\u200D');
          put("zwnj", '\u200C');
      }
  
      private static void put(String name, char c) {
          entities.put(name, String.valueOf(c));
      }
  
      private static void put(String name, char c1, char c2) {
          entities.put(name, String.valueOf(new char[] { c1, c2 }));
      }
  
      static String getCharacters(EntityTree tree) {
          String name = tree.getName().toString();
          if (name.startsWith("#")) {
              try {
                  int v = StringUtils.toLowerCase(name).startsWith("#x")
                          ? Integer.parseInt(name.substring(2), 16)
                          : Integer.parseInt(name.substring(1), 10);
                  // See https://www.w3.org/TR/html52/syntax.html#character-references
                  if (Character.isDefined(v)
                          && (!Character.isISOControl(v) || Character.isSpaceChar(v))
                          && (v < 0xd800 || v > 0xdfff)) {
                      return String.valueOf((char) v);
                  }
              } catch (NumberFormatException ex) {
                  //ignore
              }
              return null;
          } else {
              return entities.get(name);
          }
      }
  }
  