Skip to main content

rusty_xml_parser/
html_entities.rs

1//! HTML5 named character references.
2//!
3//! The HTML parser did not decode entities at all: `café` reached the
4//! tree as the literal text `café`, and the serializer then escaped the
5//! ampersand into `café`. For anything consuming extracted text --
6//! an indexer, a document converter -- that is silent corruption of the most
7//! common characters on the web.
8//!
9//! The full HTML5 list, generated from the WHATWG table. Sorted, so lookup is a
10//! binary search. Escaped so this file stays ASCII: an application source file
11//! that survives a Windows-1252 round trip cannot mojibake its own tables.
12
13/// (name without `&` and `;`, replacement text)
14pub static HTML5_ENTITIES: &[(&str, &str)] = &[
15    ("AElig", "\u{c6}"),
16    ("AMP", "&"),
17    ("Aacute", "\u{c1}"),
18    ("Abreve", "\u{102}"),
19    ("Acirc", "\u{c2}"),
20    ("Acy", "\u{410}"),
21    ("Afr", "\u{1d504}"),
22    ("Agrave", "\u{c0}"),
23    ("Alpha", "\u{391}"),
24    ("Amacr", "\u{100}"),
25    ("And", "\u{2a53}"),
26    ("Aogon", "\u{104}"),
27    ("Aopf", "\u{1d538}"),
28    ("ApplyFunction", "\u{2061}"),
29    ("Aring", "\u{c5}"),
30    ("Ascr", "\u{1d49c}"),
31    ("Assign", "\u{2254}"),
32    ("Atilde", "\u{c3}"),
33    ("Auml", "\u{c4}"),
34    ("Backslash", "\u{2216}"),
35    ("Barv", "\u{2ae7}"),
36    ("Barwed", "\u{2306}"),
37    ("Bcy", "\u{411}"),
38    ("Because", "\u{2235}"),
39    ("Bernoullis", "\u{212c}"),
40    ("Beta", "\u{392}"),
41    ("Bfr", "\u{1d505}"),
42    ("Bopf", "\u{1d539}"),
43    ("Breve", "\u{2d8}"),
44    ("Bscr", "\u{212c}"),
45    ("Bumpeq", "\u{224e}"),
46    ("CHcy", "\u{427}"),
47    ("COPY", "\u{a9}"),
48    ("Cacute", "\u{106}"),
49    ("Cap", "\u{22d2}"),
50    ("CapitalDifferentialD", "\u{2145}"),
51    ("Cayleys", "\u{212d}"),
52    ("Ccaron", "\u{10c}"),
53    ("Ccedil", "\u{c7}"),
54    ("Ccirc", "\u{108}"),
55    ("Cconint", "\u{2230}"),
56    ("Cdot", "\u{10a}"),
57    ("Cedilla", "\u{b8}"),
58    ("CenterDot", "\u{b7}"),
59    ("Cfr", "\u{212d}"),
60    ("Chi", "\u{3a7}"),
61    ("CircleDot", "\u{2299}"),
62    ("CircleMinus", "\u{2296}"),
63    ("CirclePlus", "\u{2295}"),
64    ("CircleTimes", "\u{2297}"),
65    ("ClockwiseContourIntegral", "\u{2232}"),
66    ("CloseCurlyDoubleQuote", "\u{201d}"),
67    ("CloseCurlyQuote", "\u{2019}"),
68    ("Colon", "\u{2237}"),
69    ("Colone", "\u{2a74}"),
70    ("Congruent", "\u{2261}"),
71    ("Conint", "\u{222f}"),
72    ("ContourIntegral", "\u{222e}"),
73    ("Copf", "\u{2102}"),
74    ("Coproduct", "\u{2210}"),
75    ("CounterClockwiseContourIntegral", "\u{2233}"),
76    ("Cross", "\u{2a2f}"),
77    ("Cscr", "\u{1d49e}"),
78    ("Cup", "\u{22d3}"),
79    ("CupCap", "\u{224d}"),
80    ("DD", "\u{2145}"),
81    ("DDotrahd", "\u{2911}"),
82    ("DJcy", "\u{402}"),
83    ("DScy", "\u{405}"),
84    ("DZcy", "\u{40f}"),
85    ("Dagger", "\u{2021}"),
86    ("Darr", "\u{21a1}"),
87    ("Dashv", "\u{2ae4}"),
88    ("Dcaron", "\u{10e}"),
89    ("Dcy", "\u{414}"),
90    ("Del", "\u{2207}"),
91    ("Delta", "\u{394}"),
92    ("Dfr", "\u{1d507}"),
93    ("DiacriticalAcute", "\u{b4}"),
94    ("DiacriticalDot", "\u{2d9}"),
95    ("DiacriticalDoubleAcute", "\u{2dd}"),
96    ("DiacriticalGrave", "`"),
97    ("DiacriticalTilde", "\u{2dc}"),
98    ("Diamond", "\u{22c4}"),
99    ("DifferentialD", "\u{2146}"),
100    ("Dopf", "\u{1d53b}"),
101    ("Dot", "\u{a8}"),
102    ("DotDot", "\u{20dc}"),
103    ("DotEqual", "\u{2250}"),
104    ("DoubleContourIntegral", "\u{222f}"),
105    ("DoubleDot", "\u{a8}"),
106    ("DoubleDownArrow", "\u{21d3}"),
107    ("DoubleLeftArrow", "\u{21d0}"),
108    ("DoubleLeftRightArrow", "\u{21d4}"),
109    ("DoubleLeftTee", "\u{2ae4}"),
110    ("DoubleLongLeftArrow", "\u{27f8}"),
111    ("DoubleLongLeftRightArrow", "\u{27fa}"),
112    ("DoubleLongRightArrow", "\u{27f9}"),
113    ("DoubleRightArrow", "\u{21d2}"),
114    ("DoubleRightTee", "\u{22a8}"),
115    ("DoubleUpArrow", "\u{21d1}"),
116    ("DoubleUpDownArrow", "\u{21d5}"),
117    ("DoubleVerticalBar", "\u{2225}"),
118    ("DownArrow", "\u{2193}"),
119    ("DownArrowBar", "\u{2913}"),
120    ("DownArrowUpArrow", "\u{21f5}"),
121    ("DownBreve", "\u{311}"),
122    ("DownLeftRightVector", "\u{2950}"),
123    ("DownLeftTeeVector", "\u{295e}"),
124    ("DownLeftVector", "\u{21bd}"),
125    ("DownLeftVectorBar", "\u{2956}"),
126    ("DownRightTeeVector", "\u{295f}"),
127    ("DownRightVector", "\u{21c1}"),
128    ("DownRightVectorBar", "\u{2957}"),
129    ("DownTee", "\u{22a4}"),
130    ("DownTeeArrow", "\u{21a7}"),
131    ("Downarrow", "\u{21d3}"),
132    ("Dscr", "\u{1d49f}"),
133    ("Dstrok", "\u{110}"),
134    ("ENG", "\u{14a}"),
135    ("ETH", "\u{d0}"),
136    ("Eacute", "\u{c9}"),
137    ("Ecaron", "\u{11a}"),
138    ("Ecirc", "\u{ca}"),
139    ("Ecy", "\u{42d}"),
140    ("Edot", "\u{116}"),
141    ("Efr", "\u{1d508}"),
142    ("Egrave", "\u{c8}"),
143    ("Element", "\u{2208}"),
144    ("Emacr", "\u{112}"),
145    ("EmptySmallSquare", "\u{25fb}"),
146    ("EmptyVerySmallSquare", "\u{25ab}"),
147    ("Eogon", "\u{118}"),
148    ("Eopf", "\u{1d53c}"),
149    ("Epsilon", "\u{395}"),
150    ("Equal", "\u{2a75}"),
151    ("EqualTilde", "\u{2242}"),
152    ("Equilibrium", "\u{21cc}"),
153    ("Escr", "\u{2130}"),
154    ("Esim", "\u{2a73}"),
155    ("Eta", "\u{397}"),
156    ("Euml", "\u{cb}"),
157    ("Exists", "\u{2203}"),
158    ("ExponentialE", "\u{2147}"),
159    ("Fcy", "\u{424}"),
160    ("Ffr", "\u{1d509}"),
161    ("FilledSmallSquare", "\u{25fc}"),
162    ("FilledVerySmallSquare", "\u{25aa}"),
163    ("Fopf", "\u{1d53d}"),
164    ("ForAll", "\u{2200}"),
165    ("Fouriertrf", "\u{2131}"),
166    ("Fscr", "\u{2131}"),
167    ("GJcy", "\u{403}"),
168    ("GT", ">"),
169    ("Gamma", "\u{393}"),
170    ("Gammad", "\u{3dc}"),
171    ("Gbreve", "\u{11e}"),
172    ("Gcedil", "\u{122}"),
173    ("Gcirc", "\u{11c}"),
174    ("Gcy", "\u{413}"),
175    ("Gdot", "\u{120}"),
176    ("Gfr", "\u{1d50a}"),
177    ("Gg", "\u{22d9}"),
178    ("Gopf", "\u{1d53e}"),
179    ("GreaterEqual", "\u{2265}"),
180    ("GreaterEqualLess", "\u{22db}"),
181    ("GreaterFullEqual", "\u{2267}"),
182    ("GreaterGreater", "\u{2aa2}"),
183    ("GreaterLess", "\u{2277}"),
184    ("GreaterSlantEqual", "\u{2a7e}"),
185    ("GreaterTilde", "\u{2273}"),
186    ("Gscr", "\u{1d4a2}"),
187    ("Gt", "\u{226b}"),
188    ("HARDcy", "\u{42a}"),
189    ("Hacek", "\u{2c7}"),
190    ("Hat", "^"),
191    ("Hcirc", "\u{124}"),
192    ("Hfr", "\u{210c}"),
193    ("HilbertSpace", "\u{210b}"),
194    ("Hopf", "\u{210d}"),
195    ("HorizontalLine", "\u{2500}"),
196    ("Hscr", "\u{210b}"),
197    ("Hstrok", "\u{126}"),
198    ("HumpDownHump", "\u{224e}"),
199    ("HumpEqual", "\u{224f}"),
200    ("IEcy", "\u{415}"),
201    ("IJlig", "\u{132}"),
202    ("IOcy", "\u{401}"),
203    ("Iacute", "\u{cd}"),
204    ("Icirc", "\u{ce}"),
205    ("Icy", "\u{418}"),
206    ("Idot", "\u{130}"),
207    ("Ifr", "\u{2111}"),
208    ("Igrave", "\u{cc}"),
209    ("Im", "\u{2111}"),
210    ("Imacr", "\u{12a}"),
211    ("ImaginaryI", "\u{2148}"),
212    ("Implies", "\u{21d2}"),
213    ("Int", "\u{222c}"),
214    ("Integral", "\u{222b}"),
215    ("Intersection", "\u{22c2}"),
216    ("InvisibleComma", "\u{2063}"),
217    ("InvisibleTimes", "\u{2062}"),
218    ("Iogon", "\u{12e}"),
219    ("Iopf", "\u{1d540}"),
220    ("Iota", "\u{399}"),
221    ("Iscr", "\u{2110}"),
222    ("Itilde", "\u{128}"),
223    ("Iukcy", "\u{406}"),
224    ("Iuml", "\u{cf}"),
225    ("Jcirc", "\u{134}"),
226    ("Jcy", "\u{419}"),
227    ("Jfr", "\u{1d50d}"),
228    ("Jopf", "\u{1d541}"),
229    ("Jscr", "\u{1d4a5}"),
230    ("Jsercy", "\u{408}"),
231    ("Jukcy", "\u{404}"),
232    ("KHcy", "\u{425}"),
233    ("KJcy", "\u{40c}"),
234    ("Kappa", "\u{39a}"),
235    ("Kcedil", "\u{136}"),
236    ("Kcy", "\u{41a}"),
237    ("Kfr", "\u{1d50e}"),
238    ("Kopf", "\u{1d542}"),
239    ("Kscr", "\u{1d4a6}"),
240    ("LJcy", "\u{409}"),
241    ("LT", "<"),
242    ("Lacute", "\u{139}"),
243    ("Lambda", "\u{39b}"),
244    ("Lang", "\u{27ea}"),
245    ("Laplacetrf", "\u{2112}"),
246    ("Larr", "\u{219e}"),
247    ("Lcaron", "\u{13d}"),
248    ("Lcedil", "\u{13b}"),
249    ("Lcy", "\u{41b}"),
250    ("LeftAngleBracket", "\u{27e8}"),
251    ("LeftArrow", "\u{2190}"),
252    ("LeftArrowBar", "\u{21e4}"),
253    ("LeftArrowRightArrow", "\u{21c6}"),
254    ("LeftCeiling", "\u{2308}"),
255    ("LeftDoubleBracket", "\u{27e6}"),
256    ("LeftDownTeeVector", "\u{2961}"),
257    ("LeftDownVector", "\u{21c3}"),
258    ("LeftDownVectorBar", "\u{2959}"),
259    ("LeftFloor", "\u{230a}"),
260    ("LeftRightArrow", "\u{2194}"),
261    ("LeftRightVector", "\u{294e}"),
262    ("LeftTee", "\u{22a3}"),
263    ("LeftTeeArrow", "\u{21a4}"),
264    ("LeftTeeVector", "\u{295a}"),
265    ("LeftTriangle", "\u{22b2}"),
266    ("LeftTriangleBar", "\u{29cf}"),
267    ("LeftTriangleEqual", "\u{22b4}"),
268    ("LeftUpDownVector", "\u{2951}"),
269    ("LeftUpTeeVector", "\u{2960}"),
270    ("LeftUpVector", "\u{21bf}"),
271    ("LeftUpVectorBar", "\u{2958}"),
272    ("LeftVector", "\u{21bc}"),
273    ("LeftVectorBar", "\u{2952}"),
274    ("Leftarrow", "\u{21d0}"),
275    ("Leftrightarrow", "\u{21d4}"),
276    ("LessEqualGreater", "\u{22da}"),
277    ("LessFullEqual", "\u{2266}"),
278    ("LessGreater", "\u{2276}"),
279    ("LessLess", "\u{2aa1}"),
280    ("LessSlantEqual", "\u{2a7d}"),
281    ("LessTilde", "\u{2272}"),
282    ("Lfr", "\u{1d50f}"),
283    ("Ll", "\u{22d8}"),
284    ("Lleftarrow", "\u{21da}"),
285    ("Lmidot", "\u{13f}"),
286    ("LongLeftArrow", "\u{27f5}"),
287    ("LongLeftRightArrow", "\u{27f7}"),
288    ("LongRightArrow", "\u{27f6}"),
289    ("Longleftarrow", "\u{27f8}"),
290    ("Longleftrightarrow", "\u{27fa}"),
291    ("Longrightarrow", "\u{27f9}"),
292    ("Lopf", "\u{1d543}"),
293    ("LowerLeftArrow", "\u{2199}"),
294    ("LowerRightArrow", "\u{2198}"),
295    ("Lscr", "\u{2112}"),
296    ("Lsh", "\u{21b0}"),
297    ("Lstrok", "\u{141}"),
298    ("Lt", "\u{226a}"),
299    ("Map", "\u{2905}"),
300    ("Mcy", "\u{41c}"),
301    ("MediumSpace", "\u{205f}"),
302    ("Mellintrf", "\u{2133}"),
303    ("Mfr", "\u{1d510}"),
304    ("MinusPlus", "\u{2213}"),
305    ("Mopf", "\u{1d544}"),
306    ("Mscr", "\u{2133}"),
307    ("Mu", "\u{39c}"),
308    ("NJcy", "\u{40a}"),
309    ("Nacute", "\u{143}"),
310    ("Ncaron", "\u{147}"),
311    ("Ncedil", "\u{145}"),
312    ("Ncy", "\u{41d}"),
313    ("NegativeMediumSpace", "\u{200b}"),
314    ("NegativeThickSpace", "\u{200b}"),
315    ("NegativeThinSpace", "\u{200b}"),
316    ("NegativeVeryThinSpace", "\u{200b}"),
317    ("NestedGreaterGreater", "\u{226b}"),
318    ("NestedLessLess", "\u{226a}"),
319    ("NewLine", "\u{a}"),
320    ("Nfr", "\u{1d511}"),
321    ("NoBreak", "\u{2060}"),
322    ("NonBreakingSpace", "\u{a0}"),
323    ("Nopf", "\u{2115}"),
324    ("Not", "\u{2aec}"),
325    ("NotCongruent", "\u{2262}"),
326    ("NotCupCap", "\u{226d}"),
327    ("NotDoubleVerticalBar", "\u{2226}"),
328    ("NotElement", "\u{2209}"),
329    ("NotEqual", "\u{2260}"),
330    ("NotEqualTilde", "\u{2242}\u{338}"),
331    ("NotExists", "\u{2204}"),
332    ("NotGreater", "\u{226f}"),
333    ("NotGreaterEqual", "\u{2271}"),
334    ("NotGreaterFullEqual", "\u{2267}\u{338}"),
335    ("NotGreaterGreater", "\u{226b}\u{338}"),
336    ("NotGreaterLess", "\u{2279}"),
337    ("NotGreaterSlantEqual", "\u{2a7e}\u{338}"),
338    ("NotGreaterTilde", "\u{2275}"),
339    ("NotHumpDownHump", "\u{224e}\u{338}"),
340    ("NotHumpEqual", "\u{224f}\u{338}"),
341    ("NotLeftTriangle", "\u{22ea}"),
342    ("NotLeftTriangleBar", "\u{29cf}\u{338}"),
343    ("NotLeftTriangleEqual", "\u{22ec}"),
344    ("NotLess", "\u{226e}"),
345    ("NotLessEqual", "\u{2270}"),
346    ("NotLessGreater", "\u{2278}"),
347    ("NotLessLess", "\u{226a}\u{338}"),
348    ("NotLessSlantEqual", "\u{2a7d}\u{338}"),
349    ("NotLessTilde", "\u{2274}"),
350    ("NotNestedGreaterGreater", "\u{2aa2}\u{338}"),
351    ("NotNestedLessLess", "\u{2aa1}\u{338}"),
352    ("NotPrecedes", "\u{2280}"),
353    ("NotPrecedesEqual", "\u{2aaf}\u{338}"),
354    ("NotPrecedesSlantEqual", "\u{22e0}"),
355    ("NotReverseElement", "\u{220c}"),
356    ("NotRightTriangle", "\u{22eb}"),
357    ("NotRightTriangleBar", "\u{29d0}\u{338}"),
358    ("NotRightTriangleEqual", "\u{22ed}"),
359    ("NotSquareSubset", "\u{228f}\u{338}"),
360    ("NotSquareSubsetEqual", "\u{22e2}"),
361    ("NotSquareSuperset", "\u{2290}\u{338}"),
362    ("NotSquareSupersetEqual", "\u{22e3}"),
363    ("NotSubset", "\u{2282}\u{20d2}"),
364    ("NotSubsetEqual", "\u{2288}"),
365    ("NotSucceeds", "\u{2281}"),
366    ("NotSucceedsEqual", "\u{2ab0}\u{338}"),
367    ("NotSucceedsSlantEqual", "\u{22e1}"),
368    ("NotSucceedsTilde", "\u{227f}\u{338}"),
369    ("NotSuperset", "\u{2283}\u{20d2}"),
370    ("NotSupersetEqual", "\u{2289}"),
371    ("NotTilde", "\u{2241}"),
372    ("NotTildeEqual", "\u{2244}"),
373    ("NotTildeFullEqual", "\u{2247}"),
374    ("NotTildeTilde", "\u{2249}"),
375    ("NotVerticalBar", "\u{2224}"),
376    ("Nscr", "\u{1d4a9}"),
377    ("Ntilde", "\u{d1}"),
378    ("Nu", "\u{39d}"),
379    ("OElig", "\u{152}"),
380    ("Oacute", "\u{d3}"),
381    ("Ocirc", "\u{d4}"),
382    ("Ocy", "\u{41e}"),
383    ("Odblac", "\u{150}"),
384    ("Ofr", "\u{1d512}"),
385    ("Ograve", "\u{d2}"),
386    ("Omacr", "\u{14c}"),
387    ("Omega", "\u{3a9}"),
388    ("Omicron", "\u{39f}"),
389    ("Oopf", "\u{1d546}"),
390    ("OpenCurlyDoubleQuote", "\u{201c}"),
391    ("OpenCurlyQuote", "\u{2018}"),
392    ("Or", "\u{2a54}"),
393    ("Oscr", "\u{1d4aa}"),
394    ("Oslash", "\u{d8}"),
395    ("Otilde", "\u{d5}"),
396    ("Otimes", "\u{2a37}"),
397    ("Ouml", "\u{d6}"),
398    ("OverBar", "\u{203e}"),
399    ("OverBrace", "\u{23de}"),
400    ("OverBracket", "\u{23b4}"),
401    ("OverParenthesis", "\u{23dc}"),
402    ("PartialD", "\u{2202}"),
403    ("Pcy", "\u{41f}"),
404    ("Pfr", "\u{1d513}"),
405    ("Phi", "\u{3a6}"),
406    ("Pi", "\u{3a0}"),
407    ("PlusMinus", "\u{b1}"),
408    ("Poincareplane", "\u{210c}"),
409    ("Popf", "\u{2119}"),
410    ("Pr", "\u{2abb}"),
411    ("Precedes", "\u{227a}"),
412    ("PrecedesEqual", "\u{2aaf}"),
413    ("PrecedesSlantEqual", "\u{227c}"),
414    ("PrecedesTilde", "\u{227e}"),
415    ("Prime", "\u{2033}"),
416    ("Product", "\u{220f}"),
417    ("Proportion", "\u{2237}"),
418    ("Proportional", "\u{221d}"),
419    ("Pscr", "\u{1d4ab}"),
420    ("Psi", "\u{3a8}"),
421    ("QUOT", "\""),
422    ("Qfr", "\u{1d514}"),
423    ("Qopf", "\u{211a}"),
424    ("Qscr", "\u{1d4ac}"),
425    ("RBarr", "\u{2910}"),
426    ("REG", "\u{ae}"),
427    ("Racute", "\u{154}"),
428    ("Rang", "\u{27eb}"),
429    ("Rarr", "\u{21a0}"),
430    ("Rarrtl", "\u{2916}"),
431    ("Rcaron", "\u{158}"),
432    ("Rcedil", "\u{156}"),
433    ("Rcy", "\u{420}"),
434    ("Re", "\u{211c}"),
435    ("ReverseElement", "\u{220b}"),
436    ("ReverseEquilibrium", "\u{21cb}"),
437    ("ReverseUpEquilibrium", "\u{296f}"),
438    ("Rfr", "\u{211c}"),
439    ("Rho", "\u{3a1}"),
440    ("RightAngleBracket", "\u{27e9}"),
441    ("RightArrow", "\u{2192}"),
442    ("RightArrowBar", "\u{21e5}"),
443    ("RightArrowLeftArrow", "\u{21c4}"),
444    ("RightCeiling", "\u{2309}"),
445    ("RightDoubleBracket", "\u{27e7}"),
446    ("RightDownTeeVector", "\u{295d}"),
447    ("RightDownVector", "\u{21c2}"),
448    ("RightDownVectorBar", "\u{2955}"),
449    ("RightFloor", "\u{230b}"),
450    ("RightTee", "\u{22a2}"),
451    ("RightTeeArrow", "\u{21a6}"),
452    ("RightTeeVector", "\u{295b}"),
453    ("RightTriangle", "\u{22b3}"),
454    ("RightTriangleBar", "\u{29d0}"),
455    ("RightTriangleEqual", "\u{22b5}"),
456    ("RightUpDownVector", "\u{294f}"),
457    ("RightUpTeeVector", "\u{295c}"),
458    ("RightUpVector", "\u{21be}"),
459    ("RightUpVectorBar", "\u{2954}"),
460    ("RightVector", "\u{21c0}"),
461    ("RightVectorBar", "\u{2953}"),
462    ("Rightarrow", "\u{21d2}"),
463    ("Ropf", "\u{211d}"),
464    ("RoundImplies", "\u{2970}"),
465    ("Rrightarrow", "\u{21db}"),
466    ("Rscr", "\u{211b}"),
467    ("Rsh", "\u{21b1}"),
468    ("RuleDelayed", "\u{29f4}"),
469    ("SHCHcy", "\u{429}"),
470    ("SHcy", "\u{428}"),
471    ("SOFTcy", "\u{42c}"),
472    ("Sacute", "\u{15a}"),
473    ("Sc", "\u{2abc}"),
474    ("Scaron", "\u{160}"),
475    ("Scedil", "\u{15e}"),
476    ("Scirc", "\u{15c}"),
477    ("Scy", "\u{421}"),
478    ("Sfr", "\u{1d516}"),
479    ("ShortDownArrow", "\u{2193}"),
480    ("ShortLeftArrow", "\u{2190}"),
481    ("ShortRightArrow", "\u{2192}"),
482    ("ShortUpArrow", "\u{2191}"),
483    ("Sigma", "\u{3a3}"),
484    ("SmallCircle", "\u{2218}"),
485    ("Sopf", "\u{1d54a}"),
486    ("Sqrt", "\u{221a}"),
487    ("Square", "\u{25a1}"),
488    ("SquareIntersection", "\u{2293}"),
489    ("SquareSubset", "\u{228f}"),
490    ("SquareSubsetEqual", "\u{2291}"),
491    ("SquareSuperset", "\u{2290}"),
492    ("SquareSupersetEqual", "\u{2292}"),
493    ("SquareUnion", "\u{2294}"),
494    ("Sscr", "\u{1d4ae}"),
495    ("Star", "\u{22c6}"),
496    ("Sub", "\u{22d0}"),
497    ("Subset", "\u{22d0}"),
498    ("SubsetEqual", "\u{2286}"),
499    ("Succeeds", "\u{227b}"),
500    ("SucceedsEqual", "\u{2ab0}"),
501    ("SucceedsSlantEqual", "\u{227d}"),
502    ("SucceedsTilde", "\u{227f}"),
503    ("SuchThat", "\u{220b}"),
504    ("Sum", "\u{2211}"),
505    ("Sup", "\u{22d1}"),
506    ("Superset", "\u{2283}"),
507    ("SupersetEqual", "\u{2287}"),
508    ("Supset", "\u{22d1}"),
509    ("THORN", "\u{de}"),
510    ("TRADE", "\u{2122}"),
511    ("TSHcy", "\u{40b}"),
512    ("TScy", "\u{426}"),
513    ("Tab", "\u{9}"),
514    ("Tau", "\u{3a4}"),
515    ("Tcaron", "\u{164}"),
516    ("Tcedil", "\u{162}"),
517    ("Tcy", "\u{422}"),
518    ("Tfr", "\u{1d517}"),
519    ("Therefore", "\u{2234}"),
520    ("Theta", "\u{398}"),
521    ("ThickSpace", "\u{205f}\u{200a}"),
522    ("ThinSpace", "\u{2009}"),
523    ("Tilde", "\u{223c}"),
524    ("TildeEqual", "\u{2243}"),
525    ("TildeFullEqual", "\u{2245}"),
526    ("TildeTilde", "\u{2248}"),
527    ("Topf", "\u{1d54b}"),
528    ("TripleDot", "\u{20db}"),
529    ("Tscr", "\u{1d4af}"),
530    ("Tstrok", "\u{166}"),
531    ("Uacute", "\u{da}"),
532    ("Uarr", "\u{219f}"),
533    ("Uarrocir", "\u{2949}"),
534    ("Ubrcy", "\u{40e}"),
535    ("Ubreve", "\u{16c}"),
536    ("Ucirc", "\u{db}"),
537    ("Ucy", "\u{423}"),
538    ("Udblac", "\u{170}"),
539    ("Ufr", "\u{1d518}"),
540    ("Ugrave", "\u{d9}"),
541    ("Umacr", "\u{16a}"),
542    ("UnderBar", "_"),
543    ("UnderBrace", "\u{23df}"),
544    ("UnderBracket", "\u{23b5}"),
545    ("UnderParenthesis", "\u{23dd}"),
546    ("Union", "\u{22c3}"),
547    ("UnionPlus", "\u{228e}"),
548    ("Uogon", "\u{172}"),
549    ("Uopf", "\u{1d54c}"),
550    ("UpArrow", "\u{2191}"),
551    ("UpArrowBar", "\u{2912}"),
552    ("UpArrowDownArrow", "\u{21c5}"),
553    ("UpDownArrow", "\u{2195}"),
554    ("UpEquilibrium", "\u{296e}"),
555    ("UpTee", "\u{22a5}"),
556    ("UpTeeArrow", "\u{21a5}"),
557    ("Uparrow", "\u{21d1}"),
558    ("Updownarrow", "\u{21d5}"),
559    ("UpperLeftArrow", "\u{2196}"),
560    ("UpperRightArrow", "\u{2197}"),
561    ("Upsi", "\u{3d2}"),
562    ("Upsilon", "\u{3a5}"),
563    ("Uring", "\u{16e}"),
564    ("Uscr", "\u{1d4b0}"),
565    ("Utilde", "\u{168}"),
566    ("Uuml", "\u{dc}"),
567    ("VDash", "\u{22ab}"),
568    ("Vbar", "\u{2aeb}"),
569    ("Vcy", "\u{412}"),
570    ("Vdash", "\u{22a9}"),
571    ("Vdashl", "\u{2ae6}"),
572    ("Vee", "\u{22c1}"),
573    ("Verbar", "\u{2016}"),
574    ("Vert", "\u{2016}"),
575    ("VerticalBar", "\u{2223}"),
576    ("VerticalLine", "|"),
577    ("VerticalSeparator", "\u{2758}"),
578    ("VerticalTilde", "\u{2240}"),
579    ("VeryThinSpace", "\u{200a}"),
580    ("Vfr", "\u{1d519}"),
581    ("Vopf", "\u{1d54d}"),
582    ("Vscr", "\u{1d4b1}"),
583    ("Vvdash", "\u{22aa}"),
584    ("Wcirc", "\u{174}"),
585    ("Wedge", "\u{22c0}"),
586    ("Wfr", "\u{1d51a}"),
587    ("Wopf", "\u{1d54e}"),
588    ("Wscr", "\u{1d4b2}"),
589    ("Xfr", "\u{1d51b}"),
590    ("Xi", "\u{39e}"),
591    ("Xopf", "\u{1d54f}"),
592    ("Xscr", "\u{1d4b3}"),
593    ("YAcy", "\u{42f}"),
594    ("YIcy", "\u{407}"),
595    ("YUcy", "\u{42e}"),
596    ("Yacute", "\u{dd}"),
597    ("Ycirc", "\u{176}"),
598    ("Ycy", "\u{42b}"),
599    ("Yfr", "\u{1d51c}"),
600    ("Yopf", "\u{1d550}"),
601    ("Yscr", "\u{1d4b4}"),
602    ("Yuml", "\u{178}"),
603    ("ZHcy", "\u{416}"),
604    ("Zacute", "\u{179}"),
605    ("Zcaron", "\u{17d}"),
606    ("Zcy", "\u{417}"),
607    ("Zdot", "\u{17b}"),
608    ("ZeroWidthSpace", "\u{200b}"),
609    ("Zeta", "\u{396}"),
610    ("Zfr", "\u{2128}"),
611    ("Zopf", "\u{2124}"),
612    ("Zscr", "\u{1d4b5}"),
613    ("aacute", "\u{e1}"),
614    ("abreve", "\u{103}"),
615    ("ac", "\u{223e}"),
616    ("acE", "\u{223e}\u{333}"),
617    ("acd", "\u{223f}"),
618    ("acirc", "\u{e2}"),
619    ("acute", "\u{b4}"),
620    ("acy", "\u{430}"),
621    ("aelig", "\u{e6}"),
622    ("af", "\u{2061}"),
623    ("afr", "\u{1d51e}"),
624    ("agrave", "\u{e0}"),
625    ("alefsym", "\u{2135}"),
626    ("aleph", "\u{2135}"),
627    ("alpha", "\u{3b1}"),
628    ("amacr", "\u{101}"),
629    ("amalg", "\u{2a3f}"),
630    ("amp", "&"),
631    ("and", "\u{2227}"),
632    ("andand", "\u{2a55}"),
633    ("andd", "\u{2a5c}"),
634    ("andslope", "\u{2a58}"),
635    ("andv", "\u{2a5a}"),
636    ("ang", "\u{2220}"),
637    ("ange", "\u{29a4}"),
638    ("angle", "\u{2220}"),
639    ("angmsd", "\u{2221}"),
640    ("angmsdaa", "\u{29a8}"),
641    ("angmsdab", "\u{29a9}"),
642    ("angmsdac", "\u{29aa}"),
643    ("angmsdad", "\u{29ab}"),
644    ("angmsdae", "\u{29ac}"),
645    ("angmsdaf", "\u{29ad}"),
646    ("angmsdag", "\u{29ae}"),
647    ("angmsdah", "\u{29af}"),
648    ("angrt", "\u{221f}"),
649    ("angrtvb", "\u{22be}"),
650    ("angrtvbd", "\u{299d}"),
651    ("angsph", "\u{2222}"),
652    ("angst", "\u{c5}"),
653    ("angzarr", "\u{237c}"),
654    ("aogon", "\u{105}"),
655    ("aopf", "\u{1d552}"),
656    ("ap", "\u{2248}"),
657    ("apE", "\u{2a70}"),
658    ("apacir", "\u{2a6f}"),
659    ("ape", "\u{224a}"),
660    ("apid", "\u{224b}"),
661    ("apos", "'"),
662    ("approx", "\u{2248}"),
663    ("approxeq", "\u{224a}"),
664    ("aring", "\u{e5}"),
665    ("ascr", "\u{1d4b6}"),
666    ("ast", "*"),
667    ("asymp", "\u{2248}"),
668    ("asympeq", "\u{224d}"),
669    ("atilde", "\u{e3}"),
670    ("auml", "\u{e4}"),
671    ("awconint", "\u{2233}"),
672    ("awint", "\u{2a11}"),
673    ("bNot", "\u{2aed}"),
674    ("backcong", "\u{224c}"),
675    ("backepsilon", "\u{3f6}"),
676    ("backprime", "\u{2035}"),
677    ("backsim", "\u{223d}"),
678    ("backsimeq", "\u{22cd}"),
679    ("barvee", "\u{22bd}"),
680    ("barwed", "\u{2305}"),
681    ("barwedge", "\u{2305}"),
682    ("bbrk", "\u{23b5}"),
683    ("bbrktbrk", "\u{23b6}"),
684    ("bcong", "\u{224c}"),
685    ("bcy", "\u{431}"),
686    ("bdquo", "\u{201e}"),
687    ("becaus", "\u{2235}"),
688    ("because", "\u{2235}"),
689    ("bemptyv", "\u{29b0}"),
690    ("bepsi", "\u{3f6}"),
691    ("bernou", "\u{212c}"),
692    ("beta", "\u{3b2}"),
693    ("beth", "\u{2136}"),
694    ("between", "\u{226c}"),
695    ("bfr", "\u{1d51f}"),
696    ("bigcap", "\u{22c2}"),
697    ("bigcirc", "\u{25ef}"),
698    ("bigcup", "\u{22c3}"),
699    ("bigodot", "\u{2a00}"),
700    ("bigoplus", "\u{2a01}"),
701    ("bigotimes", "\u{2a02}"),
702    ("bigsqcup", "\u{2a06}"),
703    ("bigstar", "\u{2605}"),
704    ("bigtriangledown", "\u{25bd}"),
705    ("bigtriangleup", "\u{25b3}"),
706    ("biguplus", "\u{2a04}"),
707    ("bigvee", "\u{22c1}"),
708    ("bigwedge", "\u{22c0}"),
709    ("bkarow", "\u{290d}"),
710    ("blacklozenge", "\u{29eb}"),
711    ("blacksquare", "\u{25aa}"),
712    ("blacktriangle", "\u{25b4}"),
713    ("blacktriangledown", "\u{25be}"),
714    ("blacktriangleleft", "\u{25c2}"),
715    ("blacktriangleright", "\u{25b8}"),
716    ("blank", "\u{2423}"),
717    ("blk12", "\u{2592}"),
718    ("blk14", "\u{2591}"),
719    ("blk34", "\u{2593}"),
720    ("block", "\u{2588}"),
721    ("bne", "=\u{20e5}"),
722    ("bnequiv", "\u{2261}\u{20e5}"),
723    ("bnot", "\u{2310}"),
724    ("bopf", "\u{1d553}"),
725    ("bot", "\u{22a5}"),
726    ("bottom", "\u{22a5}"),
727    ("bowtie", "\u{22c8}"),
728    ("boxDL", "\u{2557}"),
729    ("boxDR", "\u{2554}"),
730    ("boxDl", "\u{2556}"),
731    ("boxDr", "\u{2553}"),
732    ("boxH", "\u{2550}"),
733    ("boxHD", "\u{2566}"),
734    ("boxHU", "\u{2569}"),
735    ("boxHd", "\u{2564}"),
736    ("boxHu", "\u{2567}"),
737    ("boxUL", "\u{255d}"),
738    ("boxUR", "\u{255a}"),
739    ("boxUl", "\u{255c}"),
740    ("boxUr", "\u{2559}"),
741    ("boxV", "\u{2551}"),
742    ("boxVH", "\u{256c}"),
743    ("boxVL", "\u{2563}"),
744    ("boxVR", "\u{2560}"),
745    ("boxVh", "\u{256b}"),
746    ("boxVl", "\u{2562}"),
747    ("boxVr", "\u{255f}"),
748    ("boxbox", "\u{29c9}"),
749    ("boxdL", "\u{2555}"),
750    ("boxdR", "\u{2552}"),
751    ("boxdl", "\u{2510}"),
752    ("boxdr", "\u{250c}"),
753    ("boxh", "\u{2500}"),
754    ("boxhD", "\u{2565}"),
755    ("boxhU", "\u{2568}"),
756    ("boxhd", "\u{252c}"),
757    ("boxhu", "\u{2534}"),
758    ("boxminus", "\u{229f}"),
759    ("boxplus", "\u{229e}"),
760    ("boxtimes", "\u{22a0}"),
761    ("boxuL", "\u{255b}"),
762    ("boxuR", "\u{2558}"),
763    ("boxul", "\u{2518}"),
764    ("boxur", "\u{2514}"),
765    ("boxv", "\u{2502}"),
766    ("boxvH", "\u{256a}"),
767    ("boxvL", "\u{2561}"),
768    ("boxvR", "\u{255e}"),
769    ("boxvh", "\u{253c}"),
770    ("boxvl", "\u{2524}"),
771    ("boxvr", "\u{251c}"),
772    ("bprime", "\u{2035}"),
773    ("breve", "\u{2d8}"),
774    ("brvbar", "\u{a6}"),
775    ("bscr", "\u{1d4b7}"),
776    ("bsemi", "\u{204f}"),
777    ("bsim", "\u{223d}"),
778    ("bsime", "\u{22cd}"),
779    ("bsol", "\\"),
780    ("bsolb", "\u{29c5}"),
781    ("bsolhsub", "\u{27c8}"),
782    ("bull", "\u{2022}"),
783    ("bullet", "\u{2022}"),
784    ("bump", "\u{224e}"),
785    ("bumpE", "\u{2aae}"),
786    ("bumpe", "\u{224f}"),
787    ("bumpeq", "\u{224f}"),
788    ("cacute", "\u{107}"),
789    ("cap", "\u{2229}"),
790    ("capand", "\u{2a44}"),
791    ("capbrcup", "\u{2a49}"),
792    ("capcap", "\u{2a4b}"),
793    ("capcup", "\u{2a47}"),
794    ("capdot", "\u{2a40}"),
795    ("caps", "\u{2229}\u{fe00}"),
796    ("caret", "\u{2041}"),
797    ("caron", "\u{2c7}"),
798    ("ccaps", "\u{2a4d}"),
799    ("ccaron", "\u{10d}"),
800    ("ccedil", "\u{e7}"),
801    ("ccirc", "\u{109}"),
802    ("ccups", "\u{2a4c}"),
803    ("ccupssm", "\u{2a50}"),
804    ("cdot", "\u{10b}"),
805    ("cedil", "\u{b8}"),
806    ("cemptyv", "\u{29b2}"),
807    ("cent", "\u{a2}"),
808    ("centerdot", "\u{b7}"),
809    ("cfr", "\u{1d520}"),
810    ("chcy", "\u{447}"),
811    ("check", "\u{2713}"),
812    ("checkmark", "\u{2713}"),
813    ("chi", "\u{3c7}"),
814    ("cir", "\u{25cb}"),
815    ("cirE", "\u{29c3}"),
816    ("circ", "\u{2c6}"),
817    ("circeq", "\u{2257}"),
818    ("circlearrowleft", "\u{21ba}"),
819    ("circlearrowright", "\u{21bb}"),
820    ("circledR", "\u{ae}"),
821    ("circledS", "\u{24c8}"),
822    ("circledast", "\u{229b}"),
823    ("circledcirc", "\u{229a}"),
824    ("circleddash", "\u{229d}"),
825    ("cire", "\u{2257}"),
826    ("cirfnint", "\u{2a10}"),
827    ("cirmid", "\u{2aef}"),
828    ("cirscir", "\u{29c2}"),
829    ("clubs", "\u{2663}"),
830    ("clubsuit", "\u{2663}"),
831    ("colon", ":"),
832    ("colone", "\u{2254}"),
833    ("coloneq", "\u{2254}"),
834    ("comma", ","),
835    ("commat", "@"),
836    ("comp", "\u{2201}"),
837    ("compfn", "\u{2218}"),
838    ("complement", "\u{2201}"),
839    ("complexes", "\u{2102}"),
840    ("cong", "\u{2245}"),
841    ("congdot", "\u{2a6d}"),
842    ("conint", "\u{222e}"),
843    ("copf", "\u{1d554}"),
844    ("coprod", "\u{2210}"),
845    ("copy", "\u{a9}"),
846    ("copysr", "\u{2117}"),
847    ("crarr", "\u{21b5}"),
848    ("cross", "\u{2717}"),
849    ("cscr", "\u{1d4b8}"),
850    ("csub", "\u{2acf}"),
851    ("csube", "\u{2ad1}"),
852    ("csup", "\u{2ad0}"),
853    ("csupe", "\u{2ad2}"),
854    ("ctdot", "\u{22ef}"),
855    ("cudarrl", "\u{2938}"),
856    ("cudarrr", "\u{2935}"),
857    ("cuepr", "\u{22de}"),
858    ("cuesc", "\u{22df}"),
859    ("cularr", "\u{21b6}"),
860    ("cularrp", "\u{293d}"),
861    ("cup", "\u{222a}"),
862    ("cupbrcap", "\u{2a48}"),
863    ("cupcap", "\u{2a46}"),
864    ("cupcup", "\u{2a4a}"),
865    ("cupdot", "\u{228d}"),
866    ("cupor", "\u{2a45}"),
867    ("cups", "\u{222a}\u{fe00}"),
868    ("curarr", "\u{21b7}"),
869    ("curarrm", "\u{293c}"),
870    ("curlyeqprec", "\u{22de}"),
871    ("curlyeqsucc", "\u{22df}"),
872    ("curlyvee", "\u{22ce}"),
873    ("curlywedge", "\u{22cf}"),
874    ("curren", "\u{a4}"),
875    ("curvearrowleft", "\u{21b6}"),
876    ("curvearrowright", "\u{21b7}"),
877    ("cuvee", "\u{22ce}"),
878    ("cuwed", "\u{22cf}"),
879    ("cwconint", "\u{2232}"),
880    ("cwint", "\u{2231}"),
881    ("cylcty", "\u{232d}"),
882    ("dArr", "\u{21d3}"),
883    ("dHar", "\u{2965}"),
884    ("dagger", "\u{2020}"),
885    ("daleth", "\u{2138}"),
886    ("darr", "\u{2193}"),
887    ("dash", "\u{2010}"),
888    ("dashv", "\u{22a3}"),
889    ("dbkarow", "\u{290f}"),
890    ("dblac", "\u{2dd}"),
891    ("dcaron", "\u{10f}"),
892    ("dcy", "\u{434}"),
893    ("dd", "\u{2146}"),
894    ("ddagger", "\u{2021}"),
895    ("ddarr", "\u{21ca}"),
896    ("ddotseq", "\u{2a77}"),
897    ("deg", "\u{b0}"),
898    ("delta", "\u{3b4}"),
899    ("demptyv", "\u{29b1}"),
900    ("dfisht", "\u{297f}"),
901    ("dfr", "\u{1d521}"),
902    ("dharl", "\u{21c3}"),
903    ("dharr", "\u{21c2}"),
904    ("diam", "\u{22c4}"),
905    ("diamond", "\u{22c4}"),
906    ("diamondsuit", "\u{2666}"),
907    ("diams", "\u{2666}"),
908    ("die", "\u{a8}"),
909    ("digamma", "\u{3dd}"),
910    ("disin", "\u{22f2}"),
911    ("div", "\u{f7}"),
912    ("divide", "\u{f7}"),
913    ("divideontimes", "\u{22c7}"),
914    ("divonx", "\u{22c7}"),
915    ("djcy", "\u{452}"),
916    ("dlcorn", "\u{231e}"),
917    ("dlcrop", "\u{230d}"),
918    ("dollar", "$"),
919    ("dopf", "\u{1d555}"),
920    ("dot", "\u{2d9}"),
921    ("doteq", "\u{2250}"),
922    ("doteqdot", "\u{2251}"),
923    ("dotminus", "\u{2238}"),
924    ("dotplus", "\u{2214}"),
925    ("dotsquare", "\u{22a1}"),
926    ("doublebarwedge", "\u{2306}"),
927    ("downarrow", "\u{2193}"),
928    ("downdownarrows", "\u{21ca}"),
929    ("downharpoonleft", "\u{21c3}"),
930    ("downharpoonright", "\u{21c2}"),
931    ("drbkarow", "\u{2910}"),
932    ("drcorn", "\u{231f}"),
933    ("drcrop", "\u{230c}"),
934    ("dscr", "\u{1d4b9}"),
935    ("dscy", "\u{455}"),
936    ("dsol", "\u{29f6}"),
937    ("dstrok", "\u{111}"),
938    ("dtdot", "\u{22f1}"),
939    ("dtri", "\u{25bf}"),
940    ("dtrif", "\u{25be}"),
941    ("duarr", "\u{21f5}"),
942    ("duhar", "\u{296f}"),
943    ("dwangle", "\u{29a6}"),
944    ("dzcy", "\u{45f}"),
945    ("dzigrarr", "\u{27ff}"),
946    ("eDDot", "\u{2a77}"),
947    ("eDot", "\u{2251}"),
948    ("eacute", "\u{e9}"),
949    ("easter", "\u{2a6e}"),
950    ("ecaron", "\u{11b}"),
951    ("ecir", "\u{2256}"),
952    ("ecirc", "\u{ea}"),
953    ("ecolon", "\u{2255}"),
954    ("ecy", "\u{44d}"),
955    ("edot", "\u{117}"),
956    ("ee", "\u{2147}"),
957    ("efDot", "\u{2252}"),
958    ("efr", "\u{1d522}"),
959    ("eg", "\u{2a9a}"),
960    ("egrave", "\u{e8}"),
961    ("egs", "\u{2a96}"),
962    ("egsdot", "\u{2a98}"),
963    ("el", "\u{2a99}"),
964    ("elinters", "\u{23e7}"),
965    ("ell", "\u{2113}"),
966    ("els", "\u{2a95}"),
967    ("elsdot", "\u{2a97}"),
968    ("emacr", "\u{113}"),
969    ("empty", "\u{2205}"),
970    ("emptyset", "\u{2205}"),
971    ("emptyv", "\u{2205}"),
972    ("emsp", "\u{2003}"),
973    ("emsp13", "\u{2004}"),
974    ("emsp14", "\u{2005}"),
975    ("eng", "\u{14b}"),
976    ("ensp", "\u{2002}"),
977    ("eogon", "\u{119}"),
978    ("eopf", "\u{1d556}"),
979    ("epar", "\u{22d5}"),
980    ("eparsl", "\u{29e3}"),
981    ("eplus", "\u{2a71}"),
982    ("epsi", "\u{3b5}"),
983    ("epsilon", "\u{3b5}"),
984    ("epsiv", "\u{3f5}"),
985    ("eqcirc", "\u{2256}"),
986    ("eqcolon", "\u{2255}"),
987    ("eqsim", "\u{2242}"),
988    ("eqslantgtr", "\u{2a96}"),
989    ("eqslantless", "\u{2a95}"),
990    ("equals", "="),
991    ("equest", "\u{225f}"),
992    ("equiv", "\u{2261}"),
993    ("equivDD", "\u{2a78}"),
994    ("eqvparsl", "\u{29e5}"),
995    ("erDot", "\u{2253}"),
996    ("erarr", "\u{2971}"),
997    ("escr", "\u{212f}"),
998    ("esdot", "\u{2250}"),
999    ("esim", "\u{2242}"),
1000    ("eta", "\u{3b7}"),
1001    ("eth", "\u{f0}"),
1002    ("euml", "\u{eb}"),
1003    ("euro", "\u{20ac}"),
1004    ("excl", "!"),
1005    ("exist", "\u{2203}"),
1006    ("expectation", "\u{2130}"),
1007    ("exponentiale", "\u{2147}"),
1008    ("fallingdotseq", "\u{2252}"),
1009    ("fcy", "\u{444}"),
1010    ("female", "\u{2640}"),
1011    ("ffilig", "\u{fb03}"),
1012    ("fflig", "\u{fb00}"),
1013    ("ffllig", "\u{fb04}"),
1014    ("ffr", "\u{1d523}"),
1015    ("filig", "\u{fb01}"),
1016    ("fjlig", "fj"),
1017    ("flat", "\u{266d}"),
1018    ("fllig", "\u{fb02}"),
1019    ("fltns", "\u{25b1}"),
1020    ("fnof", "\u{192}"),
1021    ("fopf", "\u{1d557}"),
1022    ("forall", "\u{2200}"),
1023    ("fork", "\u{22d4}"),
1024    ("forkv", "\u{2ad9}"),
1025    ("fpartint", "\u{2a0d}"),
1026    ("frac12", "\u{bd}"),
1027    ("frac13", "\u{2153}"),
1028    ("frac14", "\u{bc}"),
1029    ("frac15", "\u{2155}"),
1030    ("frac16", "\u{2159}"),
1031    ("frac18", "\u{215b}"),
1032    ("frac23", "\u{2154}"),
1033    ("frac25", "\u{2156}"),
1034    ("frac34", "\u{be}"),
1035    ("frac35", "\u{2157}"),
1036    ("frac38", "\u{215c}"),
1037    ("frac45", "\u{2158}"),
1038    ("frac56", "\u{215a}"),
1039    ("frac58", "\u{215d}"),
1040    ("frac78", "\u{215e}"),
1041    ("frasl", "\u{2044}"),
1042    ("frown", "\u{2322}"),
1043    ("fscr", "\u{1d4bb}"),
1044    ("gE", "\u{2267}"),
1045    ("gEl", "\u{2a8c}"),
1046    ("gacute", "\u{1f5}"),
1047    ("gamma", "\u{3b3}"),
1048    ("gammad", "\u{3dd}"),
1049    ("gap", "\u{2a86}"),
1050    ("gbreve", "\u{11f}"),
1051    ("gcirc", "\u{11d}"),
1052    ("gcy", "\u{433}"),
1053    ("gdot", "\u{121}"),
1054    ("ge", "\u{2265}"),
1055    ("gel", "\u{22db}"),
1056    ("geq", "\u{2265}"),
1057    ("geqq", "\u{2267}"),
1058    ("geqslant", "\u{2a7e}"),
1059    ("ges", "\u{2a7e}"),
1060    ("gescc", "\u{2aa9}"),
1061    ("gesdot", "\u{2a80}"),
1062    ("gesdoto", "\u{2a82}"),
1063    ("gesdotol", "\u{2a84}"),
1064    ("gesl", "\u{22db}\u{fe00}"),
1065    ("gesles", "\u{2a94}"),
1066    ("gfr", "\u{1d524}"),
1067    ("gg", "\u{226b}"),
1068    ("ggg", "\u{22d9}"),
1069    ("gimel", "\u{2137}"),
1070    ("gjcy", "\u{453}"),
1071    ("gl", "\u{2277}"),
1072    ("glE", "\u{2a92}"),
1073    ("gla", "\u{2aa5}"),
1074    ("glj", "\u{2aa4}"),
1075    ("gnE", "\u{2269}"),
1076    ("gnap", "\u{2a8a}"),
1077    ("gnapprox", "\u{2a8a}"),
1078    ("gne", "\u{2a88}"),
1079    ("gneq", "\u{2a88}"),
1080    ("gneqq", "\u{2269}"),
1081    ("gnsim", "\u{22e7}"),
1082    ("gopf", "\u{1d558}"),
1083    ("grave", "`"),
1084    ("gscr", "\u{210a}"),
1085    ("gsim", "\u{2273}"),
1086    ("gsime", "\u{2a8e}"),
1087    ("gsiml", "\u{2a90}"),
1088    ("gt", ">"),
1089    ("gtcc", "\u{2aa7}"),
1090    ("gtcir", "\u{2a7a}"),
1091    ("gtdot", "\u{22d7}"),
1092    ("gtlPar", "\u{2995}"),
1093    ("gtquest", "\u{2a7c}"),
1094    ("gtrapprox", "\u{2a86}"),
1095    ("gtrarr", "\u{2978}"),
1096    ("gtrdot", "\u{22d7}"),
1097    ("gtreqless", "\u{22db}"),
1098    ("gtreqqless", "\u{2a8c}"),
1099    ("gtrless", "\u{2277}"),
1100    ("gtrsim", "\u{2273}"),
1101    ("gvertneqq", "\u{2269}\u{fe00}"),
1102    ("gvnE", "\u{2269}\u{fe00}"),
1103    ("hArr", "\u{21d4}"),
1104    ("hairsp", "\u{200a}"),
1105    ("half", "\u{bd}"),
1106    ("hamilt", "\u{210b}"),
1107    ("hardcy", "\u{44a}"),
1108    ("harr", "\u{2194}"),
1109    ("harrcir", "\u{2948}"),
1110    ("harrw", "\u{21ad}"),
1111    ("hbar", "\u{210f}"),
1112    ("hcirc", "\u{125}"),
1113    ("hearts", "\u{2665}"),
1114    ("heartsuit", "\u{2665}"),
1115    ("hellip", "\u{2026}"),
1116    ("hercon", "\u{22b9}"),
1117    ("hfr", "\u{1d525}"),
1118    ("hksearow", "\u{2925}"),
1119    ("hkswarow", "\u{2926}"),
1120    ("hoarr", "\u{21ff}"),
1121    ("homtht", "\u{223b}"),
1122    ("hookleftarrow", "\u{21a9}"),
1123    ("hookrightarrow", "\u{21aa}"),
1124    ("hopf", "\u{1d559}"),
1125    ("horbar", "\u{2015}"),
1126    ("hscr", "\u{1d4bd}"),
1127    ("hslash", "\u{210f}"),
1128    ("hstrok", "\u{127}"),
1129    ("hybull", "\u{2043}"),
1130    ("hyphen", "\u{2010}"),
1131    ("iacute", "\u{ed}"),
1132    ("ic", "\u{2063}"),
1133    ("icirc", "\u{ee}"),
1134    ("icy", "\u{438}"),
1135    ("iecy", "\u{435}"),
1136    ("iexcl", "\u{a1}"),
1137    ("iff", "\u{21d4}"),
1138    ("ifr", "\u{1d526}"),
1139    ("igrave", "\u{ec}"),
1140    ("ii", "\u{2148}"),
1141    ("iiiint", "\u{2a0c}"),
1142    ("iiint", "\u{222d}"),
1143    ("iinfin", "\u{29dc}"),
1144    ("iiota", "\u{2129}"),
1145    ("ijlig", "\u{133}"),
1146    ("imacr", "\u{12b}"),
1147    ("image", "\u{2111}"),
1148    ("imagline", "\u{2110}"),
1149    ("imagpart", "\u{2111}"),
1150    ("imath", "\u{131}"),
1151    ("imof", "\u{22b7}"),
1152    ("imped", "\u{1b5}"),
1153    ("in", "\u{2208}"),
1154    ("incare", "\u{2105}"),
1155    ("infin", "\u{221e}"),
1156    ("infintie", "\u{29dd}"),
1157    ("inodot", "\u{131}"),
1158    ("int", "\u{222b}"),
1159    ("intcal", "\u{22ba}"),
1160    ("integers", "\u{2124}"),
1161    ("intercal", "\u{22ba}"),
1162    ("intlarhk", "\u{2a17}"),
1163    ("intprod", "\u{2a3c}"),
1164    ("iocy", "\u{451}"),
1165    ("iogon", "\u{12f}"),
1166    ("iopf", "\u{1d55a}"),
1167    ("iota", "\u{3b9}"),
1168    ("iprod", "\u{2a3c}"),
1169    ("iquest", "\u{bf}"),
1170    ("iscr", "\u{1d4be}"),
1171    ("isin", "\u{2208}"),
1172    ("isinE", "\u{22f9}"),
1173    ("isindot", "\u{22f5}"),
1174    ("isins", "\u{22f4}"),
1175    ("isinsv", "\u{22f3}"),
1176    ("isinv", "\u{2208}"),
1177    ("it", "\u{2062}"),
1178    ("itilde", "\u{129}"),
1179    ("iukcy", "\u{456}"),
1180    ("iuml", "\u{ef}"),
1181    ("jcirc", "\u{135}"),
1182    ("jcy", "\u{439}"),
1183    ("jfr", "\u{1d527}"),
1184    ("jmath", "\u{237}"),
1185    ("jopf", "\u{1d55b}"),
1186    ("jscr", "\u{1d4bf}"),
1187    ("jsercy", "\u{458}"),
1188    ("jukcy", "\u{454}"),
1189    ("kappa", "\u{3ba}"),
1190    ("kappav", "\u{3f0}"),
1191    ("kcedil", "\u{137}"),
1192    ("kcy", "\u{43a}"),
1193    ("kfr", "\u{1d528}"),
1194    ("kgreen", "\u{138}"),
1195    ("khcy", "\u{445}"),
1196    ("kjcy", "\u{45c}"),
1197    ("kopf", "\u{1d55c}"),
1198    ("kscr", "\u{1d4c0}"),
1199    ("lAarr", "\u{21da}"),
1200    ("lArr", "\u{21d0}"),
1201    ("lAtail", "\u{291b}"),
1202    ("lBarr", "\u{290e}"),
1203    ("lE", "\u{2266}"),
1204    ("lEg", "\u{2a8b}"),
1205    ("lHar", "\u{2962}"),
1206    ("lacute", "\u{13a}"),
1207    ("laemptyv", "\u{29b4}"),
1208    ("lagran", "\u{2112}"),
1209    ("lambda", "\u{3bb}"),
1210    ("lang", "\u{27e8}"),
1211    ("langd", "\u{2991}"),
1212    ("langle", "\u{27e8}"),
1213    ("lap", "\u{2a85}"),
1214    ("laquo", "\u{ab}"),
1215    ("larr", "\u{2190}"),
1216    ("larrb", "\u{21e4}"),
1217    ("larrbfs", "\u{291f}"),
1218    ("larrfs", "\u{291d}"),
1219    ("larrhk", "\u{21a9}"),
1220    ("larrlp", "\u{21ab}"),
1221    ("larrpl", "\u{2939}"),
1222    ("larrsim", "\u{2973}"),
1223    ("larrtl", "\u{21a2}"),
1224    ("lat", "\u{2aab}"),
1225    ("latail", "\u{2919}"),
1226    ("late", "\u{2aad}"),
1227    ("lates", "\u{2aad}\u{fe00}"),
1228    ("lbarr", "\u{290c}"),
1229    ("lbbrk", "\u{2772}"),
1230    ("lbrace", "{"),
1231    ("lbrack", "["),
1232    ("lbrke", "\u{298b}"),
1233    ("lbrksld", "\u{298f}"),
1234    ("lbrkslu", "\u{298d}"),
1235    ("lcaron", "\u{13e}"),
1236    ("lcedil", "\u{13c}"),
1237    ("lceil", "\u{2308}"),
1238    ("lcub", "{"),
1239    ("lcy", "\u{43b}"),
1240    ("ldca", "\u{2936}"),
1241    ("ldquo", "\u{201c}"),
1242    ("ldquor", "\u{201e}"),
1243    ("ldrdhar", "\u{2967}"),
1244    ("ldrushar", "\u{294b}"),
1245    ("ldsh", "\u{21b2}"),
1246    ("le", "\u{2264}"),
1247    ("leftarrow", "\u{2190}"),
1248    ("leftarrowtail", "\u{21a2}"),
1249    ("leftharpoondown", "\u{21bd}"),
1250    ("leftharpoonup", "\u{21bc}"),
1251    ("leftleftarrows", "\u{21c7}"),
1252    ("leftrightarrow", "\u{2194}"),
1253    ("leftrightarrows", "\u{21c6}"),
1254    ("leftrightharpoons", "\u{21cb}"),
1255    ("leftrightsquigarrow", "\u{21ad}"),
1256    ("leftthreetimes", "\u{22cb}"),
1257    ("leg", "\u{22da}"),
1258    ("leq", "\u{2264}"),
1259    ("leqq", "\u{2266}"),
1260    ("leqslant", "\u{2a7d}"),
1261    ("les", "\u{2a7d}"),
1262    ("lescc", "\u{2aa8}"),
1263    ("lesdot", "\u{2a7f}"),
1264    ("lesdoto", "\u{2a81}"),
1265    ("lesdotor", "\u{2a83}"),
1266    ("lesg", "\u{22da}\u{fe00}"),
1267    ("lesges", "\u{2a93}"),
1268    ("lessapprox", "\u{2a85}"),
1269    ("lessdot", "\u{22d6}"),
1270    ("lesseqgtr", "\u{22da}"),
1271    ("lesseqqgtr", "\u{2a8b}"),
1272    ("lessgtr", "\u{2276}"),
1273    ("lesssim", "\u{2272}"),
1274    ("lfisht", "\u{297c}"),
1275    ("lfloor", "\u{230a}"),
1276    ("lfr", "\u{1d529}"),
1277    ("lg", "\u{2276}"),
1278    ("lgE", "\u{2a91}"),
1279    ("lhard", "\u{21bd}"),
1280    ("lharu", "\u{21bc}"),
1281    ("lharul", "\u{296a}"),
1282    ("lhblk", "\u{2584}"),
1283    ("ljcy", "\u{459}"),
1284    ("ll", "\u{226a}"),
1285    ("llarr", "\u{21c7}"),
1286    ("llcorner", "\u{231e}"),
1287    ("llhard", "\u{296b}"),
1288    ("lltri", "\u{25fa}"),
1289    ("lmidot", "\u{140}"),
1290    ("lmoust", "\u{23b0}"),
1291    ("lmoustache", "\u{23b0}"),
1292    ("lnE", "\u{2268}"),
1293    ("lnap", "\u{2a89}"),
1294    ("lnapprox", "\u{2a89}"),
1295    ("lne", "\u{2a87}"),
1296    ("lneq", "\u{2a87}"),
1297    ("lneqq", "\u{2268}"),
1298    ("lnsim", "\u{22e6}"),
1299    ("loang", "\u{27ec}"),
1300    ("loarr", "\u{21fd}"),
1301    ("lobrk", "\u{27e6}"),
1302    ("longleftarrow", "\u{27f5}"),
1303    ("longleftrightarrow", "\u{27f7}"),
1304    ("longmapsto", "\u{27fc}"),
1305    ("longrightarrow", "\u{27f6}"),
1306    ("looparrowleft", "\u{21ab}"),
1307    ("looparrowright", "\u{21ac}"),
1308    ("lopar", "\u{2985}"),
1309    ("lopf", "\u{1d55d}"),
1310    ("loplus", "\u{2a2d}"),
1311    ("lotimes", "\u{2a34}"),
1312    ("lowast", "\u{2217}"),
1313    ("lowbar", "_"),
1314    ("loz", "\u{25ca}"),
1315    ("lozenge", "\u{25ca}"),
1316    ("lozf", "\u{29eb}"),
1317    ("lpar", "("),
1318    ("lparlt", "\u{2993}"),
1319    ("lrarr", "\u{21c6}"),
1320    ("lrcorner", "\u{231f}"),
1321    ("lrhar", "\u{21cb}"),
1322    ("lrhard", "\u{296d}"),
1323    ("lrm", "\u{200e}"),
1324    ("lrtri", "\u{22bf}"),
1325    ("lsaquo", "\u{2039}"),
1326    ("lscr", "\u{1d4c1}"),
1327    ("lsh", "\u{21b0}"),
1328    ("lsim", "\u{2272}"),
1329    ("lsime", "\u{2a8d}"),
1330    ("lsimg", "\u{2a8f}"),
1331    ("lsqb", "["),
1332    ("lsquo", "\u{2018}"),
1333    ("lsquor", "\u{201a}"),
1334    ("lstrok", "\u{142}"),
1335    ("lt", "<"),
1336    ("ltcc", "\u{2aa6}"),
1337    ("ltcir", "\u{2a79}"),
1338    ("ltdot", "\u{22d6}"),
1339    ("lthree", "\u{22cb}"),
1340    ("ltimes", "\u{22c9}"),
1341    ("ltlarr", "\u{2976}"),
1342    ("ltquest", "\u{2a7b}"),
1343    ("ltrPar", "\u{2996}"),
1344    ("ltri", "\u{25c3}"),
1345    ("ltrie", "\u{22b4}"),
1346    ("ltrif", "\u{25c2}"),
1347    ("lurdshar", "\u{294a}"),
1348    ("luruhar", "\u{2966}"),
1349    ("lvertneqq", "\u{2268}\u{fe00}"),
1350    ("lvnE", "\u{2268}\u{fe00}"),
1351    ("mDDot", "\u{223a}"),
1352    ("macr", "\u{af}"),
1353    ("male", "\u{2642}"),
1354    ("malt", "\u{2720}"),
1355    ("maltese", "\u{2720}"),
1356    ("map", "\u{21a6}"),
1357    ("mapsto", "\u{21a6}"),
1358    ("mapstodown", "\u{21a7}"),
1359    ("mapstoleft", "\u{21a4}"),
1360    ("mapstoup", "\u{21a5}"),
1361    ("marker", "\u{25ae}"),
1362    ("mcomma", "\u{2a29}"),
1363    ("mcy", "\u{43c}"),
1364    ("mdash", "\u{2014}"),
1365    ("measuredangle", "\u{2221}"),
1366    ("mfr", "\u{1d52a}"),
1367    ("mho", "\u{2127}"),
1368    ("micro", "\u{b5}"),
1369    ("mid", "\u{2223}"),
1370    ("midast", "*"),
1371    ("midcir", "\u{2af0}"),
1372    ("middot", "\u{b7}"),
1373    ("minus", "\u{2212}"),
1374    ("minusb", "\u{229f}"),
1375    ("minusd", "\u{2238}"),
1376    ("minusdu", "\u{2a2a}"),
1377    ("mlcp", "\u{2adb}"),
1378    ("mldr", "\u{2026}"),
1379    ("mnplus", "\u{2213}"),
1380    ("models", "\u{22a7}"),
1381    ("mopf", "\u{1d55e}"),
1382    ("mp", "\u{2213}"),
1383    ("mscr", "\u{1d4c2}"),
1384    ("mstpos", "\u{223e}"),
1385    ("mu", "\u{3bc}"),
1386    ("multimap", "\u{22b8}"),
1387    ("mumap", "\u{22b8}"),
1388    ("nGg", "\u{22d9}\u{338}"),
1389    ("nGt", "\u{226b}\u{20d2}"),
1390    ("nGtv", "\u{226b}\u{338}"),
1391    ("nLeftarrow", "\u{21cd}"),
1392    ("nLeftrightarrow", "\u{21ce}"),
1393    ("nLl", "\u{22d8}\u{338}"),
1394    ("nLt", "\u{226a}\u{20d2}"),
1395    ("nLtv", "\u{226a}\u{338}"),
1396    ("nRightarrow", "\u{21cf}"),
1397    ("nVDash", "\u{22af}"),
1398    ("nVdash", "\u{22ae}"),
1399    ("nabla", "\u{2207}"),
1400    ("nacute", "\u{144}"),
1401    ("nang", "\u{2220}\u{20d2}"),
1402    ("nap", "\u{2249}"),
1403    ("napE", "\u{2a70}\u{338}"),
1404    ("napid", "\u{224b}\u{338}"),
1405    ("napos", "\u{149}"),
1406    ("napprox", "\u{2249}"),
1407    ("natur", "\u{266e}"),
1408    ("natural", "\u{266e}"),
1409    ("naturals", "\u{2115}"),
1410    ("nbsp", "\u{a0}"),
1411    ("nbump", "\u{224e}\u{338}"),
1412    ("nbumpe", "\u{224f}\u{338}"),
1413    ("ncap", "\u{2a43}"),
1414    ("ncaron", "\u{148}"),
1415    ("ncedil", "\u{146}"),
1416    ("ncong", "\u{2247}"),
1417    ("ncongdot", "\u{2a6d}\u{338}"),
1418    ("ncup", "\u{2a42}"),
1419    ("ncy", "\u{43d}"),
1420    ("ndash", "\u{2013}"),
1421    ("ne", "\u{2260}"),
1422    ("neArr", "\u{21d7}"),
1423    ("nearhk", "\u{2924}"),
1424    ("nearr", "\u{2197}"),
1425    ("nearrow", "\u{2197}"),
1426    ("nedot", "\u{2250}\u{338}"),
1427    ("nequiv", "\u{2262}"),
1428    ("nesear", "\u{2928}"),
1429    ("nesim", "\u{2242}\u{338}"),
1430    ("nexist", "\u{2204}"),
1431    ("nexists", "\u{2204}"),
1432    ("nfr", "\u{1d52b}"),
1433    ("ngE", "\u{2267}\u{338}"),
1434    ("nge", "\u{2271}"),
1435    ("ngeq", "\u{2271}"),
1436    ("ngeqq", "\u{2267}\u{338}"),
1437    ("ngeqslant", "\u{2a7e}\u{338}"),
1438    ("nges", "\u{2a7e}\u{338}"),
1439    ("ngsim", "\u{2275}"),
1440    ("ngt", "\u{226f}"),
1441    ("ngtr", "\u{226f}"),
1442    ("nhArr", "\u{21ce}"),
1443    ("nharr", "\u{21ae}"),
1444    ("nhpar", "\u{2af2}"),
1445    ("ni", "\u{220b}"),
1446    ("nis", "\u{22fc}"),
1447    ("nisd", "\u{22fa}"),
1448    ("niv", "\u{220b}"),
1449    ("njcy", "\u{45a}"),
1450    ("nlArr", "\u{21cd}"),
1451    ("nlE", "\u{2266}\u{338}"),
1452    ("nlarr", "\u{219a}"),
1453    ("nldr", "\u{2025}"),
1454    ("nle", "\u{2270}"),
1455    ("nleftarrow", "\u{219a}"),
1456    ("nleftrightarrow", "\u{21ae}"),
1457    ("nleq", "\u{2270}"),
1458    ("nleqq", "\u{2266}\u{338}"),
1459    ("nleqslant", "\u{2a7d}\u{338}"),
1460    ("nles", "\u{2a7d}\u{338}"),
1461    ("nless", "\u{226e}"),
1462    ("nlsim", "\u{2274}"),
1463    ("nlt", "\u{226e}"),
1464    ("nltri", "\u{22ea}"),
1465    ("nltrie", "\u{22ec}"),
1466    ("nmid", "\u{2224}"),
1467    ("nopf", "\u{1d55f}"),
1468    ("not", "\u{ac}"),
1469    ("notin", "\u{2209}"),
1470    ("notinE", "\u{22f9}\u{338}"),
1471    ("notindot", "\u{22f5}\u{338}"),
1472    ("notinva", "\u{2209}"),
1473    ("notinvb", "\u{22f7}"),
1474    ("notinvc", "\u{22f6}"),
1475    ("notni", "\u{220c}"),
1476    ("notniva", "\u{220c}"),
1477    ("notnivb", "\u{22fe}"),
1478    ("notnivc", "\u{22fd}"),
1479    ("npar", "\u{2226}"),
1480    ("nparallel", "\u{2226}"),
1481    ("nparsl", "\u{2afd}\u{20e5}"),
1482    ("npart", "\u{2202}\u{338}"),
1483    ("npolint", "\u{2a14}"),
1484    ("npr", "\u{2280}"),
1485    ("nprcue", "\u{22e0}"),
1486    ("npre", "\u{2aaf}\u{338}"),
1487    ("nprec", "\u{2280}"),
1488    ("npreceq", "\u{2aaf}\u{338}"),
1489    ("nrArr", "\u{21cf}"),
1490    ("nrarr", "\u{219b}"),
1491    ("nrarrc", "\u{2933}\u{338}"),
1492    ("nrarrw", "\u{219d}\u{338}"),
1493    ("nrightarrow", "\u{219b}"),
1494    ("nrtri", "\u{22eb}"),
1495    ("nrtrie", "\u{22ed}"),
1496    ("nsc", "\u{2281}"),
1497    ("nsccue", "\u{22e1}"),
1498    ("nsce", "\u{2ab0}\u{338}"),
1499    ("nscr", "\u{1d4c3}"),
1500    ("nshortmid", "\u{2224}"),
1501    ("nshortparallel", "\u{2226}"),
1502    ("nsim", "\u{2241}"),
1503    ("nsime", "\u{2244}"),
1504    ("nsimeq", "\u{2244}"),
1505    ("nsmid", "\u{2224}"),
1506    ("nspar", "\u{2226}"),
1507    ("nsqsube", "\u{22e2}"),
1508    ("nsqsupe", "\u{22e3}"),
1509    ("nsub", "\u{2284}"),
1510    ("nsubE", "\u{2ac5}\u{338}"),
1511    ("nsube", "\u{2288}"),
1512    ("nsubset", "\u{2282}\u{20d2}"),
1513    ("nsubseteq", "\u{2288}"),
1514    ("nsubseteqq", "\u{2ac5}\u{338}"),
1515    ("nsucc", "\u{2281}"),
1516    ("nsucceq", "\u{2ab0}\u{338}"),
1517    ("nsup", "\u{2285}"),
1518    ("nsupE", "\u{2ac6}\u{338}"),
1519    ("nsupe", "\u{2289}"),
1520    ("nsupset", "\u{2283}\u{20d2}"),
1521    ("nsupseteq", "\u{2289}"),
1522    ("nsupseteqq", "\u{2ac6}\u{338}"),
1523    ("ntgl", "\u{2279}"),
1524    ("ntilde", "\u{f1}"),
1525    ("ntlg", "\u{2278}"),
1526    ("ntriangleleft", "\u{22ea}"),
1527    ("ntrianglelefteq", "\u{22ec}"),
1528    ("ntriangleright", "\u{22eb}"),
1529    ("ntrianglerighteq", "\u{22ed}"),
1530    ("nu", "\u{3bd}"),
1531    ("num", "#"),
1532    ("numero", "\u{2116}"),
1533    ("numsp", "\u{2007}"),
1534    ("nvDash", "\u{22ad}"),
1535    ("nvHarr", "\u{2904}"),
1536    ("nvap", "\u{224d}\u{20d2}"),
1537    ("nvdash", "\u{22ac}"),
1538    ("nvge", "\u{2265}\u{20d2}"),
1539    ("nvgt", ">\u{20d2}"),
1540    ("nvinfin", "\u{29de}"),
1541    ("nvlArr", "\u{2902}"),
1542    ("nvle", "\u{2264}\u{20d2}"),
1543    ("nvlt", "<\u{20d2}"),
1544    ("nvltrie", "\u{22b4}\u{20d2}"),
1545    ("nvrArr", "\u{2903}"),
1546    ("nvrtrie", "\u{22b5}\u{20d2}"),
1547    ("nvsim", "\u{223c}\u{20d2}"),
1548    ("nwArr", "\u{21d6}"),
1549    ("nwarhk", "\u{2923}"),
1550    ("nwarr", "\u{2196}"),
1551    ("nwarrow", "\u{2196}"),
1552    ("nwnear", "\u{2927}"),
1553    ("oS", "\u{24c8}"),
1554    ("oacute", "\u{f3}"),
1555    ("oast", "\u{229b}"),
1556    ("ocir", "\u{229a}"),
1557    ("ocirc", "\u{f4}"),
1558    ("ocy", "\u{43e}"),
1559    ("odash", "\u{229d}"),
1560    ("odblac", "\u{151}"),
1561    ("odiv", "\u{2a38}"),
1562    ("odot", "\u{2299}"),
1563    ("odsold", "\u{29bc}"),
1564    ("oelig", "\u{153}"),
1565    ("ofcir", "\u{29bf}"),
1566    ("ofr", "\u{1d52c}"),
1567    ("ogon", "\u{2db}"),
1568    ("ograve", "\u{f2}"),
1569    ("ogt", "\u{29c1}"),
1570    ("ohbar", "\u{29b5}"),
1571    ("ohm", "\u{3a9}"),
1572    ("oint", "\u{222e}"),
1573    ("olarr", "\u{21ba}"),
1574    ("olcir", "\u{29be}"),
1575    ("olcross", "\u{29bb}"),
1576    ("oline", "\u{203e}"),
1577    ("olt", "\u{29c0}"),
1578    ("omacr", "\u{14d}"),
1579    ("omega", "\u{3c9}"),
1580    ("omicron", "\u{3bf}"),
1581    ("omid", "\u{29b6}"),
1582    ("ominus", "\u{2296}"),
1583    ("oopf", "\u{1d560}"),
1584    ("opar", "\u{29b7}"),
1585    ("operp", "\u{29b9}"),
1586    ("oplus", "\u{2295}"),
1587    ("or", "\u{2228}"),
1588    ("orarr", "\u{21bb}"),
1589    ("ord", "\u{2a5d}"),
1590    ("order", "\u{2134}"),
1591    ("orderof", "\u{2134}"),
1592    ("ordf", "\u{aa}"),
1593    ("ordm", "\u{ba}"),
1594    ("origof", "\u{22b6}"),
1595    ("oror", "\u{2a56}"),
1596    ("orslope", "\u{2a57}"),
1597    ("orv", "\u{2a5b}"),
1598    ("oscr", "\u{2134}"),
1599    ("oslash", "\u{f8}"),
1600    ("osol", "\u{2298}"),
1601    ("otilde", "\u{f5}"),
1602    ("otimes", "\u{2297}"),
1603    ("otimesas", "\u{2a36}"),
1604    ("ouml", "\u{f6}"),
1605    ("ovbar", "\u{233d}"),
1606    ("par", "\u{2225}"),
1607    ("para", "\u{b6}"),
1608    ("parallel", "\u{2225}"),
1609    ("parsim", "\u{2af3}"),
1610    ("parsl", "\u{2afd}"),
1611    ("part", "\u{2202}"),
1612    ("pcy", "\u{43f}"),
1613    ("percnt", "%"),
1614    ("period", "."),
1615    ("permil", "\u{2030}"),
1616    ("perp", "\u{22a5}"),
1617    ("pertenk", "\u{2031}"),
1618    ("pfr", "\u{1d52d}"),
1619    ("phi", "\u{3c6}"),
1620    ("phiv", "\u{3d5}"),
1621    ("phmmat", "\u{2133}"),
1622    ("phone", "\u{260e}"),
1623    ("pi", "\u{3c0}"),
1624    ("pitchfork", "\u{22d4}"),
1625    ("piv", "\u{3d6}"),
1626    ("planck", "\u{210f}"),
1627    ("planckh", "\u{210e}"),
1628    ("plankv", "\u{210f}"),
1629    ("plus", "+"),
1630    ("plusacir", "\u{2a23}"),
1631    ("plusb", "\u{229e}"),
1632    ("pluscir", "\u{2a22}"),
1633    ("plusdo", "\u{2214}"),
1634    ("plusdu", "\u{2a25}"),
1635    ("pluse", "\u{2a72}"),
1636    ("plusmn", "\u{b1}"),
1637    ("plussim", "\u{2a26}"),
1638    ("plustwo", "\u{2a27}"),
1639    ("pm", "\u{b1}"),
1640    ("pointint", "\u{2a15}"),
1641    ("popf", "\u{1d561}"),
1642    ("pound", "\u{a3}"),
1643    ("pr", "\u{227a}"),
1644    ("prE", "\u{2ab3}"),
1645    ("prap", "\u{2ab7}"),
1646    ("prcue", "\u{227c}"),
1647    ("pre", "\u{2aaf}"),
1648    ("prec", "\u{227a}"),
1649    ("precapprox", "\u{2ab7}"),
1650    ("preccurlyeq", "\u{227c}"),
1651    ("preceq", "\u{2aaf}"),
1652    ("precnapprox", "\u{2ab9}"),
1653    ("precneqq", "\u{2ab5}"),
1654    ("precnsim", "\u{22e8}"),
1655    ("precsim", "\u{227e}"),
1656    ("prime", "\u{2032}"),
1657    ("primes", "\u{2119}"),
1658    ("prnE", "\u{2ab5}"),
1659    ("prnap", "\u{2ab9}"),
1660    ("prnsim", "\u{22e8}"),
1661    ("prod", "\u{220f}"),
1662    ("profalar", "\u{232e}"),
1663    ("profline", "\u{2312}"),
1664    ("profsurf", "\u{2313}"),
1665    ("prop", "\u{221d}"),
1666    ("propto", "\u{221d}"),
1667    ("prsim", "\u{227e}"),
1668    ("prurel", "\u{22b0}"),
1669    ("pscr", "\u{1d4c5}"),
1670    ("psi", "\u{3c8}"),
1671    ("puncsp", "\u{2008}"),
1672    ("qfr", "\u{1d52e}"),
1673    ("qint", "\u{2a0c}"),
1674    ("qopf", "\u{1d562}"),
1675    ("qprime", "\u{2057}"),
1676    ("qscr", "\u{1d4c6}"),
1677    ("quaternions", "\u{210d}"),
1678    ("quatint", "\u{2a16}"),
1679    ("quest", "?"),
1680    ("questeq", "\u{225f}"),
1681    ("quot", "\""),
1682    ("rAarr", "\u{21db}"),
1683    ("rArr", "\u{21d2}"),
1684    ("rAtail", "\u{291c}"),
1685    ("rBarr", "\u{290f}"),
1686    ("rHar", "\u{2964}"),
1687    ("race", "\u{223d}\u{331}"),
1688    ("racute", "\u{155}"),
1689    ("radic", "\u{221a}"),
1690    ("raemptyv", "\u{29b3}"),
1691    ("rang", "\u{27e9}"),
1692    ("rangd", "\u{2992}"),
1693    ("range", "\u{29a5}"),
1694    ("rangle", "\u{27e9}"),
1695    ("raquo", "\u{bb}"),
1696    ("rarr", "\u{2192}"),
1697    ("rarrap", "\u{2975}"),
1698    ("rarrb", "\u{21e5}"),
1699    ("rarrbfs", "\u{2920}"),
1700    ("rarrc", "\u{2933}"),
1701    ("rarrfs", "\u{291e}"),
1702    ("rarrhk", "\u{21aa}"),
1703    ("rarrlp", "\u{21ac}"),
1704    ("rarrpl", "\u{2945}"),
1705    ("rarrsim", "\u{2974}"),
1706    ("rarrtl", "\u{21a3}"),
1707    ("rarrw", "\u{219d}"),
1708    ("ratail", "\u{291a}"),
1709    ("ratio", "\u{2236}"),
1710    ("rationals", "\u{211a}"),
1711    ("rbarr", "\u{290d}"),
1712    ("rbbrk", "\u{2773}"),
1713    ("rbrace", "}"),
1714    ("rbrack", "]"),
1715    ("rbrke", "\u{298c}"),
1716    ("rbrksld", "\u{298e}"),
1717    ("rbrkslu", "\u{2990}"),
1718    ("rcaron", "\u{159}"),
1719    ("rcedil", "\u{157}"),
1720    ("rceil", "\u{2309}"),
1721    ("rcub", "}"),
1722    ("rcy", "\u{440}"),
1723    ("rdca", "\u{2937}"),
1724    ("rdldhar", "\u{2969}"),
1725    ("rdquo", "\u{201d}"),
1726    ("rdquor", "\u{201d}"),
1727    ("rdsh", "\u{21b3}"),
1728    ("real", "\u{211c}"),
1729    ("realine", "\u{211b}"),
1730    ("realpart", "\u{211c}"),
1731    ("reals", "\u{211d}"),
1732    ("rect", "\u{25ad}"),
1733    ("reg", "\u{ae}"),
1734    ("rfisht", "\u{297d}"),
1735    ("rfloor", "\u{230b}"),
1736    ("rfr", "\u{1d52f}"),
1737    ("rhard", "\u{21c1}"),
1738    ("rharu", "\u{21c0}"),
1739    ("rharul", "\u{296c}"),
1740    ("rho", "\u{3c1}"),
1741    ("rhov", "\u{3f1}"),
1742    ("rightarrow", "\u{2192}"),
1743    ("rightarrowtail", "\u{21a3}"),
1744    ("rightharpoondown", "\u{21c1}"),
1745    ("rightharpoonup", "\u{21c0}"),
1746    ("rightleftarrows", "\u{21c4}"),
1747    ("rightleftharpoons", "\u{21cc}"),
1748    ("rightrightarrows", "\u{21c9}"),
1749    ("rightsquigarrow", "\u{219d}"),
1750    ("rightthreetimes", "\u{22cc}"),
1751    ("ring", "\u{2da}"),
1752    ("risingdotseq", "\u{2253}"),
1753    ("rlarr", "\u{21c4}"),
1754    ("rlhar", "\u{21cc}"),
1755    ("rlm", "\u{200f}"),
1756    ("rmoust", "\u{23b1}"),
1757    ("rmoustache", "\u{23b1}"),
1758    ("rnmid", "\u{2aee}"),
1759    ("roang", "\u{27ed}"),
1760    ("roarr", "\u{21fe}"),
1761    ("robrk", "\u{27e7}"),
1762    ("ropar", "\u{2986}"),
1763    ("ropf", "\u{1d563}"),
1764    ("roplus", "\u{2a2e}"),
1765    ("rotimes", "\u{2a35}"),
1766    ("rpar", ")"),
1767    ("rpargt", "\u{2994}"),
1768    ("rppolint", "\u{2a12}"),
1769    ("rrarr", "\u{21c9}"),
1770    ("rsaquo", "\u{203a}"),
1771    ("rscr", "\u{1d4c7}"),
1772    ("rsh", "\u{21b1}"),
1773    ("rsqb", "]"),
1774    ("rsquo", "\u{2019}"),
1775    ("rsquor", "\u{2019}"),
1776    ("rthree", "\u{22cc}"),
1777    ("rtimes", "\u{22ca}"),
1778    ("rtri", "\u{25b9}"),
1779    ("rtrie", "\u{22b5}"),
1780    ("rtrif", "\u{25b8}"),
1781    ("rtriltri", "\u{29ce}"),
1782    ("ruluhar", "\u{2968}"),
1783    ("rx", "\u{211e}"),
1784    ("sacute", "\u{15b}"),
1785    ("sbquo", "\u{201a}"),
1786    ("sc", "\u{227b}"),
1787    ("scE", "\u{2ab4}"),
1788    ("scap", "\u{2ab8}"),
1789    ("scaron", "\u{161}"),
1790    ("sccue", "\u{227d}"),
1791    ("sce", "\u{2ab0}"),
1792    ("scedil", "\u{15f}"),
1793    ("scirc", "\u{15d}"),
1794    ("scnE", "\u{2ab6}"),
1795    ("scnap", "\u{2aba}"),
1796    ("scnsim", "\u{22e9}"),
1797    ("scpolint", "\u{2a13}"),
1798    ("scsim", "\u{227f}"),
1799    ("scy", "\u{441}"),
1800    ("sdot", "\u{22c5}"),
1801    ("sdotb", "\u{22a1}"),
1802    ("sdote", "\u{2a66}"),
1803    ("seArr", "\u{21d8}"),
1804    ("searhk", "\u{2925}"),
1805    ("searr", "\u{2198}"),
1806    ("searrow", "\u{2198}"),
1807    ("sect", "\u{a7}"),
1808    ("semi", ";"),
1809    ("seswar", "\u{2929}"),
1810    ("setminus", "\u{2216}"),
1811    ("setmn", "\u{2216}"),
1812    ("sext", "\u{2736}"),
1813    ("sfr", "\u{1d530}"),
1814    ("sfrown", "\u{2322}"),
1815    ("sharp", "\u{266f}"),
1816    ("shchcy", "\u{449}"),
1817    ("shcy", "\u{448}"),
1818    ("shortmid", "\u{2223}"),
1819    ("shortparallel", "\u{2225}"),
1820    ("shy", "\u{ad}"),
1821    ("sigma", "\u{3c3}"),
1822    ("sigmaf", "\u{3c2}"),
1823    ("sigmav", "\u{3c2}"),
1824    ("sim", "\u{223c}"),
1825    ("simdot", "\u{2a6a}"),
1826    ("sime", "\u{2243}"),
1827    ("simeq", "\u{2243}"),
1828    ("simg", "\u{2a9e}"),
1829    ("simgE", "\u{2aa0}"),
1830    ("siml", "\u{2a9d}"),
1831    ("simlE", "\u{2a9f}"),
1832    ("simne", "\u{2246}"),
1833    ("simplus", "\u{2a24}"),
1834    ("simrarr", "\u{2972}"),
1835    ("slarr", "\u{2190}"),
1836    ("smallsetminus", "\u{2216}"),
1837    ("smashp", "\u{2a33}"),
1838    ("smeparsl", "\u{29e4}"),
1839    ("smid", "\u{2223}"),
1840    ("smile", "\u{2323}"),
1841    ("smt", "\u{2aaa}"),
1842    ("smte", "\u{2aac}"),
1843    ("smtes", "\u{2aac}\u{fe00}"),
1844    ("softcy", "\u{44c}"),
1845    ("sol", "/"),
1846    ("solb", "\u{29c4}"),
1847    ("solbar", "\u{233f}"),
1848    ("sopf", "\u{1d564}"),
1849    ("spades", "\u{2660}"),
1850    ("spadesuit", "\u{2660}"),
1851    ("spar", "\u{2225}"),
1852    ("sqcap", "\u{2293}"),
1853    ("sqcaps", "\u{2293}\u{fe00}"),
1854    ("sqcup", "\u{2294}"),
1855    ("sqcups", "\u{2294}\u{fe00}"),
1856    ("sqsub", "\u{228f}"),
1857    ("sqsube", "\u{2291}"),
1858    ("sqsubset", "\u{228f}"),
1859    ("sqsubseteq", "\u{2291}"),
1860    ("sqsup", "\u{2290}"),
1861    ("sqsupe", "\u{2292}"),
1862    ("sqsupset", "\u{2290}"),
1863    ("sqsupseteq", "\u{2292}"),
1864    ("squ", "\u{25a1}"),
1865    ("square", "\u{25a1}"),
1866    ("squarf", "\u{25aa}"),
1867    ("squf", "\u{25aa}"),
1868    ("srarr", "\u{2192}"),
1869    ("sscr", "\u{1d4c8}"),
1870    ("ssetmn", "\u{2216}"),
1871    ("ssmile", "\u{2323}"),
1872    ("sstarf", "\u{22c6}"),
1873    ("star", "\u{2606}"),
1874    ("starf", "\u{2605}"),
1875    ("straightepsilon", "\u{3f5}"),
1876    ("straightphi", "\u{3d5}"),
1877    ("strns", "\u{af}"),
1878    ("sub", "\u{2282}"),
1879    ("subE", "\u{2ac5}"),
1880    ("subdot", "\u{2abd}"),
1881    ("sube", "\u{2286}"),
1882    ("subedot", "\u{2ac3}"),
1883    ("submult", "\u{2ac1}"),
1884    ("subnE", "\u{2acb}"),
1885    ("subne", "\u{228a}"),
1886    ("subplus", "\u{2abf}"),
1887    ("subrarr", "\u{2979}"),
1888    ("subset", "\u{2282}"),
1889    ("subseteq", "\u{2286}"),
1890    ("subseteqq", "\u{2ac5}"),
1891    ("subsetneq", "\u{228a}"),
1892    ("subsetneqq", "\u{2acb}"),
1893    ("subsim", "\u{2ac7}"),
1894    ("subsub", "\u{2ad5}"),
1895    ("subsup", "\u{2ad3}"),
1896    ("succ", "\u{227b}"),
1897    ("succapprox", "\u{2ab8}"),
1898    ("succcurlyeq", "\u{227d}"),
1899    ("succeq", "\u{2ab0}"),
1900    ("succnapprox", "\u{2aba}"),
1901    ("succneqq", "\u{2ab6}"),
1902    ("succnsim", "\u{22e9}"),
1903    ("succsim", "\u{227f}"),
1904    ("sum", "\u{2211}"),
1905    ("sung", "\u{266a}"),
1906    ("sup", "\u{2283}"),
1907    ("sup1", "\u{b9}"),
1908    ("sup2", "\u{b2}"),
1909    ("sup3", "\u{b3}"),
1910    ("supE", "\u{2ac6}"),
1911    ("supdot", "\u{2abe}"),
1912    ("supdsub", "\u{2ad8}"),
1913    ("supe", "\u{2287}"),
1914    ("supedot", "\u{2ac4}"),
1915    ("suphsol", "\u{27c9}"),
1916    ("suphsub", "\u{2ad7}"),
1917    ("suplarr", "\u{297b}"),
1918    ("supmult", "\u{2ac2}"),
1919    ("supnE", "\u{2acc}"),
1920    ("supne", "\u{228b}"),
1921    ("supplus", "\u{2ac0}"),
1922    ("supset", "\u{2283}"),
1923    ("supseteq", "\u{2287}"),
1924    ("supseteqq", "\u{2ac6}"),
1925    ("supsetneq", "\u{228b}"),
1926    ("supsetneqq", "\u{2acc}"),
1927    ("supsim", "\u{2ac8}"),
1928    ("supsub", "\u{2ad4}"),
1929    ("supsup", "\u{2ad6}"),
1930    ("swArr", "\u{21d9}"),
1931    ("swarhk", "\u{2926}"),
1932    ("swarr", "\u{2199}"),
1933    ("swarrow", "\u{2199}"),
1934    ("swnwar", "\u{292a}"),
1935    ("szlig", "\u{df}"),
1936    ("target", "\u{2316}"),
1937    ("tau", "\u{3c4}"),
1938    ("tbrk", "\u{23b4}"),
1939    ("tcaron", "\u{165}"),
1940    ("tcedil", "\u{163}"),
1941    ("tcy", "\u{442}"),
1942    ("tdot", "\u{20db}"),
1943    ("telrec", "\u{2315}"),
1944    ("tfr", "\u{1d531}"),
1945    ("there4", "\u{2234}"),
1946    ("therefore", "\u{2234}"),
1947    ("theta", "\u{3b8}"),
1948    ("thetasym", "\u{3d1}"),
1949    ("thetav", "\u{3d1}"),
1950    ("thickapprox", "\u{2248}"),
1951    ("thicksim", "\u{223c}"),
1952    ("thinsp", "\u{2009}"),
1953    ("thkap", "\u{2248}"),
1954    ("thksim", "\u{223c}"),
1955    ("thorn", "\u{fe}"),
1956    ("tilde", "\u{2dc}"),
1957    ("times", "\u{d7}"),
1958    ("timesb", "\u{22a0}"),
1959    ("timesbar", "\u{2a31}"),
1960    ("timesd", "\u{2a30}"),
1961    ("tint", "\u{222d}"),
1962    ("toea", "\u{2928}"),
1963    ("top", "\u{22a4}"),
1964    ("topbot", "\u{2336}"),
1965    ("topcir", "\u{2af1}"),
1966    ("topf", "\u{1d565}"),
1967    ("topfork", "\u{2ada}"),
1968    ("tosa", "\u{2929}"),
1969    ("tprime", "\u{2034}"),
1970    ("trade", "\u{2122}"),
1971    ("triangle", "\u{25b5}"),
1972    ("triangledown", "\u{25bf}"),
1973    ("triangleleft", "\u{25c3}"),
1974    ("trianglelefteq", "\u{22b4}"),
1975    ("triangleq", "\u{225c}"),
1976    ("triangleright", "\u{25b9}"),
1977    ("trianglerighteq", "\u{22b5}"),
1978    ("tridot", "\u{25ec}"),
1979    ("trie", "\u{225c}"),
1980    ("triminus", "\u{2a3a}"),
1981    ("triplus", "\u{2a39}"),
1982    ("trisb", "\u{29cd}"),
1983    ("tritime", "\u{2a3b}"),
1984    ("trpezium", "\u{23e2}"),
1985    ("tscr", "\u{1d4c9}"),
1986    ("tscy", "\u{446}"),
1987    ("tshcy", "\u{45b}"),
1988    ("tstrok", "\u{167}"),
1989    ("twixt", "\u{226c}"),
1990    ("twoheadleftarrow", "\u{219e}"),
1991    ("twoheadrightarrow", "\u{21a0}"),
1992    ("uArr", "\u{21d1}"),
1993    ("uHar", "\u{2963}"),
1994    ("uacute", "\u{fa}"),
1995    ("uarr", "\u{2191}"),
1996    ("ubrcy", "\u{45e}"),
1997    ("ubreve", "\u{16d}"),
1998    ("ucirc", "\u{fb}"),
1999    ("ucy", "\u{443}"),
2000    ("udarr", "\u{21c5}"),
2001    ("udblac", "\u{171}"),
2002    ("udhar", "\u{296e}"),
2003    ("ufisht", "\u{297e}"),
2004    ("ufr", "\u{1d532}"),
2005    ("ugrave", "\u{f9}"),
2006    ("uharl", "\u{21bf}"),
2007    ("uharr", "\u{21be}"),
2008    ("uhblk", "\u{2580}"),
2009    ("ulcorn", "\u{231c}"),
2010    ("ulcorner", "\u{231c}"),
2011    ("ulcrop", "\u{230f}"),
2012    ("ultri", "\u{25f8}"),
2013    ("umacr", "\u{16b}"),
2014    ("uml", "\u{a8}"),
2015    ("uogon", "\u{173}"),
2016    ("uopf", "\u{1d566}"),
2017    ("uparrow", "\u{2191}"),
2018    ("updownarrow", "\u{2195}"),
2019    ("upharpoonleft", "\u{21bf}"),
2020    ("upharpoonright", "\u{21be}"),
2021    ("uplus", "\u{228e}"),
2022    ("upsi", "\u{3c5}"),
2023    ("upsih", "\u{3d2}"),
2024    ("upsilon", "\u{3c5}"),
2025    ("upuparrows", "\u{21c8}"),
2026    ("urcorn", "\u{231d}"),
2027    ("urcorner", "\u{231d}"),
2028    ("urcrop", "\u{230e}"),
2029    ("uring", "\u{16f}"),
2030    ("urtri", "\u{25f9}"),
2031    ("uscr", "\u{1d4ca}"),
2032    ("utdot", "\u{22f0}"),
2033    ("utilde", "\u{169}"),
2034    ("utri", "\u{25b5}"),
2035    ("utrif", "\u{25b4}"),
2036    ("uuarr", "\u{21c8}"),
2037    ("uuml", "\u{fc}"),
2038    ("uwangle", "\u{29a7}"),
2039    ("vArr", "\u{21d5}"),
2040    ("vBar", "\u{2ae8}"),
2041    ("vBarv", "\u{2ae9}"),
2042    ("vDash", "\u{22a8}"),
2043    ("vangrt", "\u{299c}"),
2044    ("varepsilon", "\u{3f5}"),
2045    ("varkappa", "\u{3f0}"),
2046    ("varnothing", "\u{2205}"),
2047    ("varphi", "\u{3d5}"),
2048    ("varpi", "\u{3d6}"),
2049    ("varpropto", "\u{221d}"),
2050    ("varr", "\u{2195}"),
2051    ("varrho", "\u{3f1}"),
2052    ("varsigma", "\u{3c2}"),
2053    ("varsubsetneq", "\u{228a}\u{fe00}"),
2054    ("varsubsetneqq", "\u{2acb}\u{fe00}"),
2055    ("varsupsetneq", "\u{228b}\u{fe00}"),
2056    ("varsupsetneqq", "\u{2acc}\u{fe00}"),
2057    ("vartheta", "\u{3d1}"),
2058    ("vartriangleleft", "\u{22b2}"),
2059    ("vartriangleright", "\u{22b3}"),
2060    ("vcy", "\u{432}"),
2061    ("vdash", "\u{22a2}"),
2062    ("vee", "\u{2228}"),
2063    ("veebar", "\u{22bb}"),
2064    ("veeeq", "\u{225a}"),
2065    ("vellip", "\u{22ee}"),
2066    ("verbar", "|"),
2067    ("vert", "|"),
2068    ("vfr", "\u{1d533}"),
2069    ("vltri", "\u{22b2}"),
2070    ("vnsub", "\u{2282}\u{20d2}"),
2071    ("vnsup", "\u{2283}\u{20d2}"),
2072    ("vopf", "\u{1d567}"),
2073    ("vprop", "\u{221d}"),
2074    ("vrtri", "\u{22b3}"),
2075    ("vscr", "\u{1d4cb}"),
2076    ("vsubnE", "\u{2acb}\u{fe00}"),
2077    ("vsubne", "\u{228a}\u{fe00}"),
2078    ("vsupnE", "\u{2acc}\u{fe00}"),
2079    ("vsupne", "\u{228b}\u{fe00}"),
2080    ("vzigzag", "\u{299a}"),
2081    ("wcirc", "\u{175}"),
2082    ("wedbar", "\u{2a5f}"),
2083    ("wedge", "\u{2227}"),
2084    ("wedgeq", "\u{2259}"),
2085    ("weierp", "\u{2118}"),
2086    ("wfr", "\u{1d534}"),
2087    ("wopf", "\u{1d568}"),
2088    ("wp", "\u{2118}"),
2089    ("wr", "\u{2240}"),
2090    ("wreath", "\u{2240}"),
2091    ("wscr", "\u{1d4cc}"),
2092    ("xcap", "\u{22c2}"),
2093    ("xcirc", "\u{25ef}"),
2094    ("xcup", "\u{22c3}"),
2095    ("xdtri", "\u{25bd}"),
2096    ("xfr", "\u{1d535}"),
2097    ("xhArr", "\u{27fa}"),
2098    ("xharr", "\u{27f7}"),
2099    ("xi", "\u{3be}"),
2100    ("xlArr", "\u{27f8}"),
2101    ("xlarr", "\u{27f5}"),
2102    ("xmap", "\u{27fc}"),
2103    ("xnis", "\u{22fb}"),
2104    ("xodot", "\u{2a00}"),
2105    ("xopf", "\u{1d569}"),
2106    ("xoplus", "\u{2a01}"),
2107    ("xotime", "\u{2a02}"),
2108    ("xrArr", "\u{27f9}"),
2109    ("xrarr", "\u{27f6}"),
2110    ("xscr", "\u{1d4cd}"),
2111    ("xsqcup", "\u{2a06}"),
2112    ("xuplus", "\u{2a04}"),
2113    ("xutri", "\u{25b3}"),
2114    ("xvee", "\u{22c1}"),
2115    ("xwedge", "\u{22c0}"),
2116    ("yacute", "\u{fd}"),
2117    ("yacy", "\u{44f}"),
2118    ("ycirc", "\u{177}"),
2119    ("ycy", "\u{44b}"),
2120    ("yen", "\u{a5}"),
2121    ("yfr", "\u{1d536}"),
2122    ("yicy", "\u{457}"),
2123    ("yopf", "\u{1d56a}"),
2124    ("yscr", "\u{1d4ce}"),
2125    ("yucy", "\u{44e}"),
2126    ("yuml", "\u{ff}"),
2127    ("zacute", "\u{17a}"),
2128    ("zcaron", "\u{17e}"),
2129    ("zcy", "\u{437}"),
2130    ("zdot", "\u{17c}"),
2131    ("zeetrf", "\u{2128}"),
2132    ("zeta", "\u{3b6}"),
2133    ("zfr", "\u{1d537}"),
2134    ("zhcy", "\u{436}"),
2135    ("zigrarr", "\u{21dd}"),
2136    ("zopf", "\u{1d56b}"),
2137    ("zscr", "\u{1d4cf}"),
2138    ("zwj", "\u{200d}"),
2139    ("zwnj", "\u{200c}"),
2140];
2141
2142/// Look up a named character reference. `None` if it is not an HTML5 name.
2143pub fn html_entity(name: &str) -> Option<&'static str> {
2144    HTML5_ENTITIES
2145        .binary_search_by(|(n, _)| (*n).cmp(name))
2146        .ok()
2147        .map(|i| HTML5_ENTITIES[i].1)
2148}
2149
2150/// Expand character references in HTML text.
2151///
2152/// Handles `&name;`, `&#123;` and `&#x7B;`. Anything that is not a reference is
2153/// left exactly as written, which is what a browser does and what a converter
2154/// needs: a bare `&` in `AT&T` must survive.
2155///
2156/// HTML permits a named reference without its semicolon (`&amp` and `&ampX`
2157/// both yield `&`), so the longest matching name is taken when the semicolon is
2158/// missing. Borrows when there is nothing to expand.
2159pub fn decode_html_text(s: &str) -> std::borrow::Cow<'_, str> {
2160    if !s.contains('&') {
2161        return std::borrow::Cow::Borrowed(s);
2162    }
2163    let b = s.as_bytes();
2164    let mut out = String::with_capacity(s.len());
2165    let mut i = 0usize;
2166    while i < b.len() {
2167        if b[i] != b'&' {
2168            let start = i;
2169            while i < b.len() && b[i] != b'&' {
2170                i += 1;
2171            }
2172            out.push_str(&s[start..i]);
2173            continue;
2174        }
2175        match expand_at(s, i) {
2176            Some((text, next)) => {
2177                out.push_str(&text);
2178                i = next;
2179            }
2180            None => {
2181                out.push('&');
2182                i += 1;
2183            }
2184        }
2185    }
2186    std::borrow::Cow::Owned(out)
2187}
2188
2189/// Expand the reference starting at `at`, which must be `&`.
2190/// Returns the replacement and the index just past it.
2191fn expand_at(s: &str, at: usize) -> Option<(String, usize)> {
2192    let b = s.as_bytes();
2193    let rest = &b[at + 1..];
2194    if rest.first() == Some(&b'#') {
2195        let (radix, off) = match rest.get(1) {
2196            Some(b'x') | Some(b'X') => (16u32, 2usize),
2197            _ => (10u32, 1usize),
2198        };
2199        let mut j = off;
2200        while j < rest.len() && (rest[j] as char).is_digit(radix) {
2201            j += 1;
2202        }
2203        if j == off {
2204            return None;
2205        }
2206        let digits = std::str::from_utf8(&rest[off..j]).ok()?;
2207        let cp = u32::from_str_radix(digits, radix).ok()?;
2208        // The trailing semicolon is conventional but optional in HTML.
2209        let next = at + 1 + j + usize::from(rest.get(j) == Some(&b';'));
2210        // Lone surrogates and out-of-range values are not characters; a browser
2211        // substitutes U+FFFD rather than dropping the text, and so do we.
2212        let ch = char::from_u32(cp).unwrap_or('\u{fffd}');
2213        return Some((ch.to_string(), next));
2214    }
2215    // Named. Take the longest run of name characters, then shrink until a known
2216    // name matches, so `&ampX` yields `&` followed by `X`.
2217    let mut j = 0usize;
2218    while j < rest.len() && rest[j].is_ascii_alphanumeric() {
2219        j += 1;
2220    }
2221    if j == 0 {
2222        return None;
2223    }
2224    let semi = rest.get(j) == Some(&b';');
2225    let name_max = std::str::from_utf8(&rest[..j]).ok()?;
2226    if semi {
2227        if let Some(v) = html_entity(name_max) {
2228            return Some((v.to_string(), at + 1 + j + 1));
2229        }
2230    }
2231    let mut len = name_max.len();
2232    while len > 0 {
2233        if let Some(v) = html_entity(&name_max[..len]) {
2234            return Some((v.to_string(), at + 1 + len));
2235        }
2236        len -= 1;
2237    }
2238    None
2239}