table.go 67 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389
  1. package html
  2. type traits uint16
  3. const (
  4. normalTag traits = 1 << iota
  5. rawTag // raw tags need special processing for their content
  6. blockTag // remove spaces around these tags
  7. objectTag // keep spaces after these open/close tags
  8. omitPTag // omit p end tag if it is followed by this start tag
  9. keepPTag // keep p end tag if it is followed by this end tag
  10. )
  11. const (
  12. booleanAttr traits = 1 << iota
  13. urlAttr
  14. trimAttr
  15. )
  16. var tagMap = map[Hash]traits{
  17. A: keepPTag,
  18. Abbr: normalTag,
  19. Address: blockTag | omitPTag,
  20. Area: normalTag,
  21. Article: blockTag | omitPTag,
  22. Aside: blockTag | omitPTag,
  23. Audio: keepPTag,
  24. B: normalTag,
  25. Base: normalTag,
  26. Bb: normalTag,
  27. Bdi: normalTag,
  28. Bdo: normalTag,
  29. Blockquote: blockTag | omitPTag,
  30. Body: normalTag,
  31. Br: blockTag,
  32. Button: objectTag,
  33. Canvas: objectTag | keepPTag,
  34. Caption: blockTag,
  35. Cite: normalTag,
  36. Code: normalTag,
  37. Col: blockTag,
  38. Colgroup: blockTag,
  39. Data: normalTag,
  40. Datalist: normalTag, // no text content
  41. Dd: blockTag,
  42. Del: keepPTag,
  43. Details: blockTag | omitPTag,
  44. Dfn: normalTag,
  45. Dialog: normalTag,
  46. Div: blockTag | omitPTag,
  47. Dl: blockTag | omitPTag,
  48. Dt: blockTag,
  49. Em: normalTag,
  50. Embed: normalTag,
  51. Fieldset: blockTag | omitPTag,
  52. Figcaption: blockTag | omitPTag,
  53. Figure: blockTag | omitPTag,
  54. Footer: blockTag | omitPTag,
  55. Form: blockTag | omitPTag,
  56. H1: blockTag | omitPTag,
  57. H2: blockTag | omitPTag,
  58. H3: blockTag | omitPTag,
  59. H4: blockTag | omitPTag,
  60. H5: blockTag | omitPTag,
  61. H6: blockTag | omitPTag,
  62. Head: blockTag,
  63. Header: blockTag | omitPTag,
  64. Hgroup: blockTag,
  65. Hr: blockTag | omitPTag,
  66. Html: blockTag,
  67. I: normalTag,
  68. Iframe: rawTag | objectTag,
  69. Img: objectTag,
  70. Input: objectTag,
  71. Ins: keepPTag,
  72. Kbd: normalTag,
  73. Label: normalTag,
  74. Legend: blockTag,
  75. Li: blockTag,
  76. Link: normalTag,
  77. Main: blockTag | omitPTag,
  78. Map: keepPTag,
  79. Mark: normalTag,
  80. Math: rawTag,
  81. Menu: blockTag | omitPTag,
  82. Meta: normalTag,
  83. Meter: objectTag,
  84. Nav: blockTag | omitPTag,
  85. Noscript: blockTag | keepPTag,
  86. Object: objectTag,
  87. Ol: blockTag | omitPTag,
  88. Optgroup: normalTag, // no text content
  89. Option: blockTag,
  90. Output: normalTag,
  91. P: blockTag | omitPTag,
  92. Param: normalTag,
  93. Picture: normalTag,
  94. Pre: blockTag | omitPTag,
  95. Progress: objectTag,
  96. Q: objectTag,
  97. Rp: normalTag,
  98. Rt: objectTag,
  99. Ruby: normalTag,
  100. S: normalTag,
  101. Samp: normalTag,
  102. Script: rawTag,
  103. Section: blockTag | omitPTag,
  104. Select: objectTag,
  105. Slot: normalTag,
  106. Small: normalTag,
  107. Source: normalTag,
  108. Span: normalTag,
  109. Strong: normalTag,
  110. Style: rawTag | blockTag,
  111. Sub: normalTag,
  112. Summary: blockTag,
  113. Sup: normalTag,
  114. Svg: rawTag | objectTag,
  115. Table: blockTag | omitPTag,
  116. Tbody: blockTag,
  117. Td: blockTag,
  118. Template: normalTag,
  119. Textarea: rawTag | objectTag,
  120. Tfoot: blockTag,
  121. Th: blockTag,
  122. Thead: blockTag,
  123. Time: normalTag,
  124. Title: normalTag,
  125. Tr: blockTag,
  126. Track: normalTag,
  127. U: normalTag,
  128. Ul: blockTag | omitPTag,
  129. Var: normalTag,
  130. Video: objectTag | keepPTag,
  131. Wbr: objectTag,
  132. // removed tags
  133. Acronym: normalTag,
  134. Applet: normalTag,
  135. Basefont: normalTag,
  136. Big: normalTag,
  137. Center: blockTag,
  138. Dir: blockTag,
  139. Font: normalTag,
  140. Frame: normalTag,
  141. Frameset: normalTag,
  142. Image: objectTag,
  143. Marquee: blockTag,
  144. Menuitem: normalTag,
  145. Nobr: normalTag,
  146. Noembed: blockTag,
  147. Noframes: blockTag,
  148. Plaintext: normalTag,
  149. Rtc: objectTag,
  150. Rb: normalTag,
  151. Strike: normalTag,
  152. Tt: normalTag,
  153. Xmp: blockTag,
  154. // experimental tags
  155. Portal: normalTag,
  156. }
  157. var attrMap = map[Hash]traits{
  158. Accept: trimAttr, // list of mimetypes
  159. Accept_Charset: trimAttr,
  160. Accesskey: trimAttr,
  161. Action: urlAttr,
  162. Allow: trimAttr,
  163. Allowfullscreen: booleanAttr,
  164. As: trimAttr,
  165. Async: booleanAttr,
  166. Autocapitalize: trimAttr,
  167. Autocomplete: trimAttr,
  168. Autofocus: booleanAttr,
  169. Autoplay: booleanAttr,
  170. Blocking: trimAttr,
  171. Capture: trimAttr,
  172. Charset: trimAttr,
  173. Checked: booleanAttr,
  174. Cite: urlAttr,
  175. Class: trimAttr,
  176. Color: trimAttr,
  177. Cols: trimAttr, // uint bigger than 0
  178. Colspan: trimAttr, // uint bigger than 0
  179. Contenteditable: trimAttr,
  180. Controls: booleanAttr,
  181. Coords: trimAttr, // list of floats
  182. Crossorigin: trimAttr,
  183. Data: urlAttr,
  184. Datetime: trimAttr,
  185. Decoding: trimAttr,
  186. Default: booleanAttr,
  187. Defer: booleanAttr,
  188. Dir: trimAttr,
  189. Disabled: booleanAttr,
  190. Draggable: trimAttr,
  191. Enctype: trimAttr, // mimetype
  192. Enterkeyhint: trimAttr,
  193. Fetchpriority: trimAttr,
  194. For: trimAttr,
  195. Form: trimAttr,
  196. Formaction: urlAttr,
  197. Formenctype: trimAttr, // mimetype
  198. Formmethod: trimAttr,
  199. Formnovalidate: booleanAttr,
  200. Formtarget: trimAttr,
  201. Headers: trimAttr,
  202. Height: trimAttr, // uint
  203. Hidden: trimAttr, // TODO: boolean
  204. High: trimAttr, // float
  205. Href: urlAttr,
  206. Hreflang: trimAttr, // BCP 47
  207. Http_Equiv: trimAttr,
  208. Imagesizes: trimAttr,
  209. Imagesrcset: trimAttr,
  210. Inert: booleanAttr,
  211. Inputmode: trimAttr,
  212. Is: trimAttr,
  213. Ismap: booleanAttr,
  214. Itemid: urlAttr,
  215. Itemprop: trimAttr,
  216. Itemref: trimAttr,
  217. Itemscope: booleanAttr,
  218. Itemtype: trimAttr, // list of urls
  219. Kind: trimAttr,
  220. Lang: trimAttr, // BCP 47
  221. List: trimAttr,
  222. Loading: trimAttr,
  223. Loop: booleanAttr,
  224. Low: trimAttr, // float
  225. Max: trimAttr, // float or varies
  226. Maxlength: trimAttr, // uint
  227. Media: trimAttr,
  228. Method: trimAttr,
  229. Min: trimAttr, // float or varies
  230. Minlength: trimAttr, // uint
  231. Multiple: booleanAttr,
  232. Muted: booleanAttr,
  233. Nomodule: booleanAttr,
  234. Novalidate: booleanAttr,
  235. Open: booleanAttr,
  236. Optimum: trimAttr, // float
  237. Pattern: trimAttr, // regex
  238. Ping: trimAttr, // list of urls
  239. Playsinline: booleanAttr,
  240. Popover: trimAttr,
  241. Popovertarget: trimAttr,
  242. Popovertargetaction: trimAttr,
  243. Poster: urlAttr,
  244. Preload: trimAttr,
  245. Profile: urlAttr,
  246. Readonly: booleanAttr,
  247. Referrerpolicy: trimAttr,
  248. Rel: trimAttr,
  249. Required: booleanAttr,
  250. Reversed: booleanAttr,
  251. Rows: trimAttr, // uint bigger than 0
  252. Rowspan: trimAttr, // uint
  253. Sandbox: trimAttr,
  254. Scope: trimAttr,
  255. Selected: booleanAttr,
  256. Shadowrootmode: trimAttr,
  257. Shadowrootdelegatesfocus: booleanAttr,
  258. Shape: trimAttr,
  259. Size: trimAttr, // uint bigger than 0
  260. Sizes: trimAttr,
  261. Span: trimAttr, // uint bigger than 0
  262. Spellcheck: trimAttr,
  263. Src: urlAttr,
  264. Srclang: trimAttr, // BCP 47
  265. Srcset: trimAttr,
  266. Start: trimAttr, // int
  267. Step: trimAttr, // float or "any"
  268. Tabindex: trimAttr, // int
  269. Target: trimAttr,
  270. Translate: trimAttr,
  271. Type: trimAttr,
  272. Usemap: trimAttr,
  273. Width: trimAttr, // uint
  274. Wrap: trimAttr,
  275. Xmlns: urlAttr,
  276. }
  277. var jsMimetypes = map[string]bool{
  278. "text/javascript": true,
  279. "application/javascript": true,
  280. }
  281. // EntitiesMap are all named character entities.
  282. var EntitiesMap = map[string][]byte{
  283. "AElig": []byte("&#198;"),
  284. "AMP": []byte("&"),
  285. "Aacute": []byte("&#193;"),
  286. "Abreve": []byte("&#258;"),
  287. "Acirc": []byte("&#194;"),
  288. "Agrave": []byte("&#192;"),
  289. "Alpha": []byte("&#913;"),
  290. "Amacr": []byte("&#256;"),
  291. "Aogon": []byte("&#260;"),
  292. "ApplyFunction": []byte("&af;"),
  293. "Aring": []byte("&#197;"),
  294. "Assign": []byte("&#8788;"),
  295. "Atilde": []byte("&#195;"),
  296. "Backslash": []byte("&#8726;"),
  297. "Barwed": []byte("&#8966;"),
  298. "Because": []byte("&#8757;"),
  299. "Bernoullis": []byte("&Bscr;"),
  300. "Breve": []byte("&#728;"),
  301. "Bumpeq": []byte("&bump;"),
  302. "Cacute": []byte("&#262;"),
  303. "CapitalDifferentialD": []byte("&DD;"),
  304. "Cayleys": []byte("&Cfr;"),
  305. "Ccaron": []byte("&#268;"),
  306. "Ccedil": []byte("&#199;"),
  307. "Ccirc": []byte("&#264;"),
  308. "Cconint": []byte("&#8752;"),
  309. "Cedilla": []byte("&#184;"),
  310. "CenterDot": []byte("&#183;"),
  311. "CircleDot": []byte("&odot;"),
  312. "CircleMinus": []byte("&#8854;"),
  313. "CirclePlus": []byte("&#8853;"),
  314. "CircleTimes": []byte("&#8855;"),
  315. "ClockwiseContourIntegral": []byte("&#8754;"),
  316. "CloseCurlyDoubleQuote": []byte("&#8221;"),
  317. "CloseCurlyQuote": []byte("&#8217;"),
  318. "Congruent": []byte("&#8801;"),
  319. "Conint": []byte("&#8751;"),
  320. "ContourIntegral": []byte("&oint;"),
  321. "Coproduct": []byte("&#8720;"),
  322. "CounterClockwiseContourIntegral": []byte("&#8755;"),
  323. "CupCap": []byte("&#8781;"),
  324. "DDotrahd": []byte("&#10513;"),
  325. "Dagger": []byte("&#8225;"),
  326. "Dcaron": []byte("&#270;"),
  327. "Delta": []byte("&#916;"),
  328. "DiacriticalAcute": []byte("&#180;"),
  329. "DiacriticalDot": []byte("&dot;"),
  330. "DiacriticalDoubleAcute": []byte("&#733;"),
  331. "DiacriticalGrave": []byte("`"),
  332. "DiacriticalTilde": []byte("&#732;"),
  333. "Diamond": []byte("&diam;"),
  334. "DifferentialD": []byte("&dd;"),
  335. "DotDot": []byte("&#8412;"),
  336. "DotEqual": []byte("&#8784;"),
  337. "DoubleContourIntegral": []byte("&#8751;"),
  338. "DoubleDot": []byte("&Dot;"),
  339. "DoubleDownArrow": []byte("&dArr;"),
  340. "DoubleLeftArrow": []byte("&lArr;"),
  341. "DoubleLeftRightArrow": []byte("&iff;"),
  342. "DoubleLeftTee": []byte("&Dashv;"),
  343. "DoubleLongLeftArrow": []byte("&xlArr;"),
  344. "DoubleLongLeftRightArrow": []byte("&xhArr;"),
  345. "DoubleLongRightArrow": []byte("&xrArr;"),
  346. "DoubleRightArrow": []byte("&rArr;"),
  347. "DoubleRightTee": []byte("&#8872;"),
  348. "DoubleUpArrow": []byte("&uArr;"),
  349. "DoubleUpDownArrow": []byte("&vArr;"),
  350. "DoubleVerticalBar": []byte("&par;"),
  351. "DownArrow": []byte("&darr;"),
  352. "DownArrowBar": []byte("&#10515;"),
  353. "DownArrowUpArrow": []byte("&#8693;"),
  354. "DownBreve": []byte("&#785;"),
  355. "DownLeftRightVector": []byte("&#10576;"),
  356. "DownLeftTeeVector": []byte("&#10590;"),
  357. "DownLeftVector": []byte("&#8637;"),
  358. "DownLeftVectorBar": []byte("&#10582;"),
  359. "DownRightTeeVector": []byte("&#10591;"),
  360. "DownRightVector": []byte("&#8641;"),
  361. "DownRightVectorBar": []byte("&#10583;"),
  362. "DownTee": []byte("&top;"),
  363. "DownTeeArrow": []byte("&#8615;"),
  364. "Downarrow": []byte("&dArr;"),
  365. "Dstrok": []byte("&#272;"),
  366. "Eacute": []byte("&#201;"),
  367. "Ecaron": []byte("&#282;"),
  368. "Ecirc": []byte("&#202;"),
  369. "Egrave": []byte("&#200;"),
  370. "Element": []byte("&in;"),
  371. "Emacr": []byte("&#274;"),
  372. "EmptySmallSquare": []byte("&#9723;"),
  373. "EmptyVerySmallSquare": []byte("&#9643;"),
  374. "Eogon": []byte("&#280;"),
  375. "Epsilon": []byte("&#917;"),
  376. "EqualTilde": []byte("&esim;"),
  377. "Equilibrium": []byte("&#8652;"),
  378. "Exists": []byte("&#8707;"),
  379. "ExponentialE": []byte("&ee;"),
  380. "FilledSmallSquare": []byte("&#9724;"),
  381. "FilledVerySmallSquare": []byte("&squf;"),
  382. "ForAll": []byte("&#8704;"),
  383. "Fouriertrf": []byte("&Fscr;"),
  384. "GT": []byte(">"),
  385. "Gamma": []byte("&#915;"),
  386. "Gammad": []byte("&#988;"),
  387. "Gbreve": []byte("&#286;"),
  388. "Gcedil": []byte("&#290;"),
  389. "Gcirc": []byte("&#284;"),
  390. "GreaterEqual": []byte("&ge;"),
  391. "GreaterEqualLess": []byte("&gel;"),
  392. "GreaterFullEqual": []byte("&gE;"),
  393. "GreaterGreater": []byte("&#10914;"),
  394. "GreaterLess": []byte("&gl;"),
  395. "GreaterSlantEqual": []byte("&ges;"),
  396. "GreaterTilde": []byte("&gsim;"),
  397. "HARDcy": []byte("&#1066;"),
  398. "Hacek": []byte("&#711;"),
  399. "Hat": []byte("^"),
  400. "Hcirc": []byte("&#292;"),
  401. "HilbertSpace": []byte("&Hscr;"),
  402. "HorizontalLine": []byte("&boxh;"),
  403. "Hstrok": []byte("&#294;"),
  404. "HumpDownHump": []byte("&bump;"),
  405. "HumpEqual": []byte("&#8783;"),
  406. "IJlig": []byte("&#306;"),
  407. "Iacute": []byte("&#205;"),
  408. "Icirc": []byte("&#206;"),
  409. "Ifr": []byte("&Im;"),
  410. "Igrave": []byte("&#204;"),
  411. "Imacr": []byte("&#298;"),
  412. "ImaginaryI": []byte("&ii;"),
  413. "Implies": []byte("&rArr;"),
  414. "Integral": []byte("&int;"),
  415. "Intersection": []byte("&xcap;"),
  416. "InvisibleComma": []byte("&ic;"),
  417. "InvisibleTimes": []byte("&it;"),
  418. "Iogon": []byte("&#302;"),
  419. "Itilde": []byte("&#296;"),
  420. "Jcirc": []byte("&#308;"),
  421. "Jsercy": []byte("&#1032;"),
  422. "Kappa": []byte("&#922;"),
  423. "Kcedil": []byte("&#310;"),
  424. "LT": []byte("<"),
  425. "Lacute": []byte("&#313;"),
  426. "Lambda": []byte("&#923;"),
  427. "Laplacetrf": []byte("&Lscr;"),
  428. "Lcaron": []byte("&#317;"),
  429. "Lcedil": []byte("&#315;"),
  430. "LeftAngleBracket": []byte("&lang;"),
  431. "LeftArrow": []byte("&larr;"),
  432. "LeftArrowBar": []byte("&#8676;"),
  433. "LeftArrowRightArrow": []byte("&#8646;"),
  434. "LeftCeiling": []byte("&#8968;"),
  435. "LeftDoubleBracket": []byte("&lobrk;"),
  436. "LeftDownTeeVector": []byte("&#10593;"),
  437. "LeftDownVector": []byte("&#8643;"),
  438. "LeftDownVectorBar": []byte("&#10585;"),
  439. "LeftFloor": []byte("&#8970;"),
  440. "LeftRightArrow": []byte("&harr;"),
  441. "LeftRightVector": []byte("&#10574;"),
  442. "LeftTee": []byte("&#8867;"),
  443. "LeftTeeArrow": []byte("&#8612;"),
  444. "LeftTeeVector": []byte("&#10586;"),
  445. "LeftTriangle": []byte("&#8882;"),
  446. "LeftTriangleBar": []byte("&#10703;"),
  447. "LeftTriangleEqual": []byte("&#8884;"),
  448. "LeftUpDownVector": []byte("&#10577;"),
  449. "LeftUpTeeVector": []byte("&#10592;"),
  450. "LeftUpVector": []byte("&#8639;"),
  451. "LeftUpVectorBar": []byte("&#10584;"),
  452. "LeftVector": []byte("&#8636;"),
  453. "LeftVectorBar": []byte("&#10578;"),
  454. "Leftarrow": []byte("&lArr;"),
  455. "Leftrightarrow": []byte("&iff;"),
  456. "LessEqualGreater": []byte("&leg;"),
  457. "LessFullEqual": []byte("&lE;"),
  458. "LessGreater": []byte("&lg;"),
  459. "LessLess": []byte("&#10913;"),
  460. "LessSlantEqual": []byte("&les;"),
  461. "LessTilde": []byte("&lsim;"),
  462. "Lleftarrow": []byte("&#8666;"),
  463. "Lmidot": []byte("&#319;"),
  464. "LongLeftArrow": []byte("&xlarr;"),
  465. "LongLeftRightArrow": []byte("&xharr;"),
  466. "LongRightArrow": []byte("&xrarr;"),
  467. "Longleftarrow": []byte("&xlArr;"),
  468. "Longleftrightarrow": []byte("&xhArr;"),
  469. "Longrightarrow": []byte("&xrArr;"),
  470. "LowerLeftArrow": []byte("&#8601;"),
  471. "LowerRightArrow": []byte("&#8600;"),
  472. "Lstrok": []byte("&#321;"),
  473. "MediumSpace": []byte("&#8287;"),
  474. "Mellintrf": []byte("&Mscr;"),
  475. "MinusPlus": []byte("&mp;"),
  476. "Nacute": []byte("&#323;"),
  477. "Ncaron": []byte("&#327;"),
  478. "Ncedil": []byte("&#325;"),
  479. "NegativeMediumSpace": []byte("&#8203;"),
  480. "NegativeThickSpace": []byte("&#8203;"),
  481. "NegativeThinSpace": []byte("&#8203;"),
  482. "NegativeVeryThinSpace": []byte("&#8203;"),
  483. "NestedGreaterGreater": []byte("&Gt;"),
  484. "NestedLessLess": []byte("&Lt;"),
  485. "NewLine": []byte("\n"),
  486. "NoBreak": []byte("&#8288;"),
  487. "NonBreakingSpace": []byte("&#160;"),
  488. "NotCongruent": []byte("&#8802;"),
  489. "NotCupCap": []byte("&#8813;"),
  490. "NotDoubleVerticalBar": []byte("&npar;"),
  491. "NotElement": []byte("&#8713;"),
  492. "NotEqual": []byte("&ne;"),
  493. "NotExists": []byte("&#8708;"),
  494. "NotGreater": []byte("&ngt;"),
  495. "NotGreaterEqual": []byte("&nge;"),
  496. "NotGreaterLess": []byte("&ntgl;"),
  497. "NotGreaterTilde": []byte("&#8821;"),
  498. "NotLeftTriangle": []byte("&#8938;"),
  499. "NotLeftTriangleEqual": []byte("&#8940;"),
  500. "NotLess": []byte("&nlt;"),
  501. "NotLessEqual": []byte("&nle;"),
  502. "NotLessGreater": []byte("&ntlg;"),
  503. "NotLessTilde": []byte("&#8820;"),
  504. "NotPrecedes": []byte("&npr;"),
  505. "NotPrecedesSlantEqual": []byte("&#8928;"),
  506. "NotReverseElement": []byte("&#8716;"),
  507. "NotRightTriangle": []byte("&#8939;"),
  508. "NotRightTriangleEqual": []byte("&#8941;"),
  509. "NotSquareSubsetEqual": []byte("&#8930;"),
  510. "NotSquareSupersetEqual": []byte("&#8931;"),
  511. "NotSubsetEqual": []byte("&#8840;"),
  512. "NotSucceeds": []byte("&nsc;"),
  513. "NotSucceedsSlantEqual": []byte("&#8929;"),
  514. "NotSupersetEqual": []byte("&#8841;"),
  515. "NotTilde": []byte("&nsim;"),
  516. "NotTildeEqual": []byte("&#8772;"),
  517. "NotTildeFullEqual": []byte("&#8775;"),
  518. "NotTildeTilde": []byte("&nap;"),
  519. "NotVerticalBar": []byte("&nmid;"),
  520. "Ntilde": []byte("&#209;"),
  521. "OElig": []byte("&#338;"),
  522. "Oacute": []byte("&#211;"),
  523. "Ocirc": []byte("&#212;"),
  524. "Odblac": []byte("&#336;"),
  525. "Ograve": []byte("&#210;"),
  526. "Omacr": []byte("&#332;"),
  527. "Omega": []byte("&ohm;"),
  528. "Omicron": []byte("&#927;"),
  529. "OpenCurlyDoubleQuote": []byte("&#8220;"),
  530. "OpenCurlyQuote": []byte("&#8216;"),
  531. "Oslash": []byte("&#216;"),
  532. "Otilde": []byte("&#213;"),
  533. "OverBar": []byte("&#8254;"),
  534. "OverBrace": []byte("&#9182;"),
  535. "OverBracket": []byte("&tbrk;"),
  536. "OverParenthesis": []byte("&#9180;"),
  537. "PartialD": []byte("&part;"),
  538. "PlusMinus": []byte("&pm;"),
  539. "Poincareplane": []byte("&Hfr;"),
  540. "Precedes": []byte("&pr;"),
  541. "PrecedesEqual": []byte("&pre;"),
  542. "PrecedesSlantEqual": []byte("&#8828;"),
  543. "PrecedesTilde": []byte("&#8830;"),
  544. "Product": []byte("&prod;"),
  545. "Proportion": []byte("&#8759;"),
  546. "Proportional": []byte("&prop;"),
  547. "QUOT": []byte("\""),
  548. "Racute": []byte("&#340;"),
  549. "Rcaron": []byte("&#344;"),
  550. "Rcedil": []byte("&#342;"),
  551. "ReverseElement": []byte("&ni;"),
  552. "ReverseEquilibrium": []byte("&#8651;"),
  553. "ReverseUpEquilibrium": []byte("&duhar;"),
  554. "Rfr": []byte("&Re;"),
  555. "RightAngleBracket": []byte("&rang;"),
  556. "RightArrow": []byte("&rarr;"),
  557. "RightArrowBar": []byte("&#8677;"),
  558. "RightArrowLeftArrow": []byte("&#8644;"),
  559. "RightCeiling": []byte("&#8969;"),
  560. "RightDoubleBracket": []byte("&robrk;"),
  561. "RightDownTeeVector": []byte("&#10589;"),
  562. "RightDownVector": []byte("&#8642;"),
  563. "RightDownVectorBar": []byte("&#10581;"),
  564. "RightFloor": []byte("&#8971;"),
  565. "RightTee": []byte("&#8866;"),
  566. "RightTeeArrow": []byte("&map;"),
  567. "RightTeeVector": []byte("&#10587;"),
  568. "RightTriangle": []byte("&#8883;"),
  569. "RightTriangleBar": []byte("&#10704;"),
  570. "RightTriangleEqual": []byte("&#8885;"),
  571. "RightUpDownVector": []byte("&#10575;"),
  572. "RightUpTeeVector": []byte("&#10588;"),
  573. "RightUpVector": []byte("&#8638;"),
  574. "RightUpVectorBar": []byte("&#10580;"),
  575. "RightVector": []byte("&#8640;"),
  576. "RightVectorBar": []byte("&#10579;"),
  577. "Rightarrow": []byte("&rArr;"),
  578. "RoundImplies": []byte("&#10608;"),
  579. "Rrightarrow": []byte("&#8667;"),
  580. "RuleDelayed": []byte("&#10740;"),
  581. "SHCHcy": []byte("&#1065;"),
  582. "SOFTcy": []byte("&#1068;"),
  583. "Sacute": []byte("&#346;"),
  584. "Scaron": []byte("&#352;"),
  585. "Scedil": []byte("&#350;"),
  586. "Scirc": []byte("&#348;"),
  587. "ShortDownArrow": []byte("&darr;"),
  588. "ShortLeftArrow": []byte("&larr;"),
  589. "ShortRightArrow": []byte("&rarr;"),
  590. "ShortUpArrow": []byte("&uarr;"),
  591. "Sigma": []byte("&#931;"),
  592. "SmallCircle": []byte("&#8728;"),
  593. "Square": []byte("&squ;"),
  594. "SquareIntersection": []byte("&#8851;"),
  595. "SquareSubset": []byte("&#8847;"),
  596. "SquareSubsetEqual": []byte("&#8849;"),
  597. "SquareSuperset": []byte("&#8848;"),
  598. "SquareSupersetEqual": []byte("&#8850;"),
  599. "SquareUnion": []byte("&#8852;"),
  600. "Subset": []byte("&Sub;"),
  601. "SubsetEqual": []byte("&sube;"),
  602. "Succeeds": []byte("&sc;"),
  603. "SucceedsEqual": []byte("&sce;"),
  604. "SucceedsSlantEqual": []byte("&#8829;"),
  605. "SucceedsTilde": []byte("&#8831;"),
  606. "SuchThat": []byte("&ni;"),
  607. "Superset": []byte("&sup;"),
  608. "SupersetEqual": []byte("&supe;"),
  609. "Supset": []byte("&Sup;"),
  610. "THORN": []byte("&#222;"),
  611. "Tab": []byte("\t"),
  612. "Tcaron": []byte("&#356;"),
  613. "Tcedil": []byte("&#354;"),
  614. "Therefore": []byte("&#8756;"),
  615. "Theta": []byte("&#920;"),
  616. "ThinSpace": []byte("&#8201;"),
  617. "Tilde": []byte("&sim;"),
  618. "TildeEqual": []byte("&sime;"),
  619. "TildeFullEqual": []byte("&cong;"),
  620. "TildeTilde": []byte("&ap;"),
  621. "TripleDot": []byte("&tdot;"),
  622. "Tstrok": []byte("&#358;"),
  623. "Uacute": []byte("&#218;"),
  624. "Uarrocir": []byte("&#10569;"),
  625. "Ubreve": []byte("&#364;"),
  626. "Ucirc": []byte("&#219;"),
  627. "Udblac": []byte("&#368;"),
  628. "Ugrave": []byte("&#217;"),
  629. "Umacr": []byte("&#362;"),
  630. "UnderBar": []byte("_"),
  631. "UnderBrace": []byte("&#9183;"),
  632. "UnderBracket": []byte("&bbrk;"),
  633. "UnderParenthesis": []byte("&#9181;"),
  634. "Union": []byte("&xcup;"),
  635. "UnionPlus": []byte("&#8846;"),
  636. "Uogon": []byte("&#370;"),
  637. "UpArrow": []byte("&uarr;"),
  638. "UpArrowBar": []byte("&#10514;"),
  639. "UpArrowDownArrow": []byte("&#8645;"),
  640. "UpDownArrow": []byte("&varr;"),
  641. "UpEquilibrium": []byte("&udhar;"),
  642. "UpTee": []byte("&bot;"),
  643. "UpTeeArrow": []byte("&#8613;"),
  644. "Uparrow": []byte("&uArr;"),
  645. "Updownarrow": []byte("&vArr;"),
  646. "UpperLeftArrow": []byte("&#8598;"),
  647. "UpperRightArrow": []byte("&#8599;"),
  648. "Upsilon": []byte("&#933;"),
  649. "Uring": []byte("&#366;"),
  650. "Utilde": []byte("&#360;"),
  651. "Verbar": []byte("&Vert;"),
  652. "VerticalBar": []byte("&mid;"),
  653. "VerticalLine": []byte("|"),
  654. "VerticalSeparator": []byte("&#10072;"),
  655. "VerticalTilde": []byte("&wr;"),
  656. "VeryThinSpace": []byte("&#8202;"),
  657. "Vvdash": []byte("&#8874;"),
  658. "Wcirc": []byte("&#372;"),
  659. "Yacute": []byte("&#221;"),
  660. "Ycirc": []byte("&#374;"),
  661. "Zacute": []byte("&#377;"),
  662. "Zcaron": []byte("&#381;"),
  663. "ZeroWidthSpace": []byte("&#8203;"),
  664. "aacute": []byte("&#225;"),
  665. "abreve": []byte("&#259;"),
  666. "acirc": []byte("&#226;"),
  667. "acute": []byte("&#180;"),
  668. "aelig": []byte("&#230;"),
  669. "agrave": []byte("&#224;"),
  670. "alefsym": []byte("&#8501;"),
  671. "alpha": []byte("&#945;"),
  672. "amacr": []byte("&#257;"),
  673. "amp": []byte("&"),
  674. "andslope": []byte("&#10840;"),
  675. "angle": []byte("&ang;"),
  676. "angmsd": []byte("&#8737;"),
  677. "angmsdaa": []byte("&#10664;"),
  678. "angmsdab": []byte("&#10665;"),
  679. "angmsdac": []byte("&#10666;"),
  680. "angmsdad": []byte("&#10667;"),
  681. "angmsdae": []byte("&#10668;"),
  682. "angmsdaf": []byte("&#10669;"),
  683. "angmsdag": []byte("&#10670;"),
  684. "angmsdah": []byte("&#10671;"),
  685. "angrtvb": []byte("&#8894;"),
  686. "angrtvbd": []byte("&#10653;"),
  687. "angsph": []byte("&#8738;"),
  688. "angst": []byte("&#197;"),
  689. "angzarr": []byte("&#9084;"),
  690. "aogon": []byte("&#261;"),
  691. "apos": []byte("'"),
  692. "approx": []byte("&ap;"),
  693. "approxeq": []byte("&ape;"),
  694. "aring": []byte("&#229;"),
  695. "ast": []byte("*"),
  696. "asymp": []byte("&ap;"),
  697. "asympeq": []byte("&#8781;"),
  698. "atilde": []byte("&#227;"),
  699. "awconint": []byte("&#8755;"),
  700. "backcong": []byte("&#8780;"),
  701. "backepsilon": []byte("&#1014;"),
  702. "backprime": []byte("&#8245;"),
  703. "backsim": []byte("&bsim;"),
  704. "backsimeq": []byte("&#8909;"),
  705. "barvee": []byte("&#8893;"),
  706. "barwed": []byte("&#8965;"),
  707. "barwedge": []byte("&#8965;"),
  708. "bbrktbrk": []byte("&#9142;"),
  709. "becaus": []byte("&#8757;"),
  710. "because": []byte("&#8757;"),
  711. "bemptyv": []byte("&#10672;"),
  712. "bernou": []byte("&Bscr;"),
  713. "between": []byte("&#8812;"),
  714. "bigcap": []byte("&xcap;"),
  715. "bigcirc": []byte("&#9711;"),
  716. "bigcup": []byte("&xcup;"),
  717. "bigodot": []byte("&xodot;"),
  718. "bigoplus": []byte("&#10753;"),
  719. "bigotimes": []byte("&#10754;"),
  720. "bigsqcup": []byte("&#10758;"),
  721. "bigstar": []byte("&#9733;"),
  722. "bigtriangledown": []byte("&#9661;"),
  723. "bigtriangleup": []byte("&#9651;"),
  724. "biguplus": []byte("&#10756;"),
  725. "bigvee": []byte("&Vee;"),
  726. "bigwedge": []byte("&#8896;"),
  727. "bkarow": []byte("&rbarr;"),
  728. "blacklozenge": []byte("&lozf;"),
  729. "blacksquare": []byte("&squf;"),
  730. "blacktriangle": []byte("&#9652;"),
  731. "blacktriangledown": []byte("&#9662;"),
  732. "blacktriangleleft": []byte("&#9666;"),
  733. "blacktriangleright": []byte("&#9656;"),
  734. "bottom": []byte("&bot;"),
  735. "bowtie": []byte("&#8904;"),
  736. "boxminus": []byte("&#8863;"),
  737. "boxplus": []byte("&#8862;"),
  738. "boxtimes": []byte("&#8864;"),
  739. "bprime": []byte("&#8245;"),
  740. "breve": []byte("&#728;"),
  741. "brvbar": []byte("&#166;"),
  742. "bsol": []byte("\\"),
  743. "bsolhsub": []byte("&#10184;"),
  744. "bullet": []byte("&bull;"),
  745. "bumpeq": []byte("&#8783;"),
  746. "cacute": []byte("&#263;"),
  747. "capbrcup": []byte("&#10825;"),
  748. "caron": []byte("&#711;"),
  749. "ccaron": []byte("&#269;"),
  750. "ccedil": []byte("&#231;"),
  751. "ccirc": []byte("&#265;"),
  752. "ccupssm": []byte("&#10832;"),
  753. "cedil": []byte("&#184;"),
  754. "cemptyv": []byte("&#10674;"),
  755. "centerdot": []byte("&#183;"),
  756. "checkmark": []byte("&check;"),
  757. "circeq": []byte("&cire;"),
  758. "circlearrowleft": []byte("&#8634;"),
  759. "circlearrowright": []byte("&#8635;"),
  760. "circledR": []byte("&REG;"),
  761. "circledS": []byte("&oS;"),
  762. "circledast": []byte("&oast;"),
  763. "circledcirc": []byte("&ocir;"),
  764. "circleddash": []byte("&#8861;"),
  765. "cirfnint": []byte("&#10768;"),
  766. "cirscir": []byte("&#10690;"),
  767. "clubsuit": []byte("&#9827;"),
  768. "colon": []byte(":"),
  769. "colone": []byte("&#8788;"),
  770. "coloneq": []byte("&#8788;"),
  771. "comma": []byte(","),
  772. "commat": []byte("@"),
  773. "compfn": []byte("&#8728;"),
  774. "complement": []byte("&comp;"),
  775. "complexes": []byte("&Copf;"),
  776. "congdot": []byte("&#10861;"),
  777. "conint": []byte("&oint;"),
  778. "coprod": []byte("&#8720;"),
  779. "copysr": []byte("&#8471;"),
  780. "cudarrl": []byte("&#10552;"),
  781. "cudarrr": []byte("&#10549;"),
  782. "cularr": []byte("&#8630;"),
  783. "cularrp": []byte("&#10557;"),
  784. "cupbrcap": []byte("&#10824;"),
  785. "cupdot": []byte("&#8845;"),
  786. "curarr": []byte("&#8631;"),
  787. "curarrm": []byte("&#10556;"),
  788. "curlyeqprec": []byte("&#8926;"),
  789. "curlyeqsucc": []byte("&#8927;"),
  790. "curlyvee": []byte("&#8910;"),
  791. "curlywedge": []byte("&#8911;"),
  792. "curren": []byte("&#164;"),
  793. "curvearrowleft": []byte("&#8630;"),
  794. "curvearrowright": []byte("&#8631;"),
  795. "cwconint": []byte("&#8754;"),
  796. "cylcty": []byte("&#9005;"),
  797. "dagger": []byte("&#8224;"),
  798. "daleth": []byte("&#8504;"),
  799. "dbkarow": []byte("&rBarr;"),
  800. "dblac": []byte("&#733;"),
  801. "dcaron": []byte("&#271;"),
  802. "ddagger": []byte("&#8225;"),
  803. "ddotseq": []byte("&eDDot;"),
  804. "delta": []byte("&#948;"),
  805. "demptyv": []byte("&#10673;"),
  806. "diamond": []byte("&diam;"),
  807. "diamondsuit": []byte("&#9830;"),
  808. "digamma": []byte("&#989;"),
  809. "divide": []byte("&div;"),
  810. "divideontimes": []byte("&#8903;"),
  811. "divonx": []byte("&#8903;"),
  812. "dlcorn": []byte("&#8990;"),
  813. "dlcrop": []byte("&#8973;"),
  814. "dollar": []byte("$"),
  815. "doteqdot": []byte("&eDot;"),
  816. "dotminus": []byte("&#8760;"),
  817. "dotplus": []byte("&#8724;"),
  818. "dotsquare": []byte("&#8865;"),
  819. "doublebarwedge": []byte("&#8966;"),
  820. "downarrow": []byte("&darr;"),
  821. "downdownarrows": []byte("&#8650;"),
  822. "downharpoonleft": []byte("&#8643;"),
  823. "downharpoonright": []byte("&#8642;"),
  824. "drbkarow": []byte("&RBarr;"),
  825. "drcorn": []byte("&#8991;"),
  826. "drcrop": []byte("&#8972;"),
  827. "dstrok": []byte("&#273;"),
  828. "dwangle": []byte("&#10662;"),
  829. "dzigrarr": []byte("&#10239;"),
  830. "eacute": []byte("&#233;"),
  831. "ecaron": []byte("&#283;"),
  832. "ecirc": []byte("&#234;"),
  833. "ecolon": []byte("&#8789;"),
  834. "egrave": []byte("&#232;"),
  835. "elinters": []byte("&#9191;"),
  836. "emacr": []byte("&#275;"),
  837. "emptyset": []byte("&#8709;"),
  838. "emptyv": []byte("&#8709;"),
  839. "emsp13": []byte("&#8196;"),
  840. "emsp14": []byte("&#8197;"),
  841. "eogon": []byte("&#281;"),
  842. "epsilon": []byte("&#949;"),
  843. "eqcirc": []byte("&ecir;"),
  844. "eqcolon": []byte("&#8789;"),
  845. "eqsim": []byte("&esim;"),
  846. "eqslantgtr": []byte("&egs;"),
  847. "eqslantless": []byte("&els;"),
  848. "equals": []byte("="),
  849. "equest": []byte("&#8799;"),
  850. "equivDD": []byte("&#10872;"),
  851. "eqvparsl": []byte("&#10725;"),
  852. "excl": []byte("!"),
  853. "expectation": []byte("&Escr;"),
  854. "exponentiale": []byte("&ee;"),
  855. "fallingdotseq": []byte("&#8786;"),
  856. "female": []byte("&#9792;"),
  857. "forall": []byte("&#8704;"),
  858. "fpartint": []byte("&#10765;"),
  859. "frac12": []byte("&#189;"),
  860. "frac13": []byte("&#8531;"),
  861. "frac14": []byte("&#188;"),
  862. "frac15": []byte("&#8533;"),
  863. "frac16": []byte("&#8537;"),
  864. "frac18": []byte("&#8539;"),
  865. "frac23": []byte("&#8532;"),
  866. "frac25": []byte("&#8534;"),
  867. "frac34": []byte("&#190;"),
  868. "frac35": []byte("&#8535;"),
  869. "frac38": []byte("&#8540;"),
  870. "frac45": []byte("&#8536;"),
  871. "frac56": []byte("&#8538;"),
  872. "frac58": []byte("&#8541;"),
  873. "frac78": []byte("&#8542;"),
  874. "gacute": []byte("&#501;"),
  875. "gamma": []byte("&#947;"),
  876. "gammad": []byte("&#989;"),
  877. "gbreve": []byte("&#287;"),
  878. "gcirc": []byte("&#285;"),
  879. "geq": []byte("&ge;"),
  880. "geqq": []byte("&gE;"),
  881. "geqslant": []byte("&ges;"),
  882. "gesdoto": []byte("&#10882;"),
  883. "gesdotol": []byte("&#10884;"),
  884. "ggg": []byte("&Gg;"),
  885. "gnapprox": []byte("&gnap;"),
  886. "gneq": []byte("&gne;"),
  887. "gneqq": []byte("&gnE;"),
  888. "grave": []byte("`"),
  889. "gt": []byte(">"),
  890. "gtquest": []byte("&#10876;"),
  891. "gtrapprox": []byte("&gap;"),
  892. "gtrdot": []byte("&#8919;"),
  893. "gtreqless": []byte("&gel;"),
  894. "gtreqqless": []byte("&gEl;"),
  895. "gtrless": []byte("&gl;"),
  896. "gtrsim": []byte("&gsim;"),
  897. "hArr": []byte("&iff;"),
  898. "hairsp": []byte("&#8202;"),
  899. "hamilt": []byte("&Hscr;"),
  900. "hardcy": []byte("&#1098;"),
  901. "harrcir": []byte("&#10568;"),
  902. "hcirc": []byte("&#293;"),
  903. "hearts": []byte("&#9829;"),
  904. "heartsuit": []byte("&#9829;"),
  905. "hellip": []byte("&mldr;"),
  906. "hercon": []byte("&#8889;"),
  907. "hksearow": []byte("&#10533;"),
  908. "hkswarow": []byte("&#10534;"),
  909. "homtht": []byte("&#8763;"),
  910. "hookleftarrow": []byte("&#8617;"),
  911. "hookrightarrow": []byte("&#8618;"),
  912. "horbar": []byte("&#8213;"),
  913. "hslash": []byte("&hbar;"),
  914. "hstrok": []byte("&#295;"),
  915. "hybull": []byte("&#8259;"),
  916. "hyphen": []byte("&dash;"),
  917. "iacute": []byte("&#237;"),
  918. "icirc": []byte("&#238;"),
  919. "iexcl": []byte("&#161;"),
  920. "igrave": []byte("&#236;"),
  921. "iiiint": []byte("&qint;"),
  922. "iiint": []byte("&tint;"),
  923. "ijlig": []byte("&#307;"),
  924. "imacr": []byte("&#299;"),
  925. "image": []byte("&Im;"),
  926. "imagline": []byte("&Iscr;"),
  927. "imagpart": []byte("&Im;"),
  928. "imath": []byte("&#305;"),
  929. "imped": []byte("&#437;"),
  930. "incare": []byte("&#8453;"),
  931. "infintie": []byte("&#10717;"),
  932. "inodot": []byte("&#305;"),
  933. "intcal": []byte("&#8890;"),
  934. "integers": []byte("&Zopf;"),
  935. "intercal": []byte("&#8890;"),
  936. "intlarhk": []byte("&#10775;"),
  937. "intprod": []byte("&iprod;"),
  938. "iogon": []byte("&#303;"),
  939. "iquest": []byte("&#191;"),
  940. "isin": []byte("&in;"),
  941. "isindot": []byte("&#8949;"),
  942. "isinsv": []byte("&#8947;"),
  943. "isinv": []byte("&in;"),
  944. "itilde": []byte("&#297;"),
  945. "jcirc": []byte("&#309;"),
  946. "jmath": []byte("&#567;"),
  947. "jsercy": []byte("&#1112;"),
  948. "kappa": []byte("&#954;"),
  949. "kappav": []byte("&#1008;"),
  950. "kcedil": []byte("&#311;"),
  951. "kgreen": []byte("&#312;"),
  952. "lacute": []byte("&#314;"),
  953. "laemptyv": []byte("&#10676;"),
  954. "lagran": []byte("&Lscr;"),
  955. "lambda": []byte("&#955;"),
  956. "langle": []byte("&lang;"),
  957. "laquo": []byte("&#171;"),
  958. "larrbfs": []byte("&#10527;"),
  959. "larrhk": []byte("&#8617;"),
  960. "larrlp": []byte("&#8619;"),
  961. "larrsim": []byte("&#10611;"),
  962. "larrtl": []byte("&#8610;"),
  963. "lbrace": []byte("{"),
  964. "lbrack": []byte("["),
  965. "lbrksld": []byte("&#10639;"),
  966. "lbrkslu": []byte("&#10637;"),
  967. "lcaron": []byte("&#318;"),
  968. "lcedil": []byte("&#316;"),
  969. "lcub": []byte("{"),
  970. "ldquor": []byte("&#8222;"),
  971. "ldrdhar": []byte("&#10599;"),
  972. "ldrushar": []byte("&#10571;"),
  973. "leftarrow": []byte("&larr;"),
  974. "leftarrowtail": []byte("&#8610;"),
  975. "leftharpoondown": []byte("&#8637;"),
  976. "leftharpoonup": []byte("&#8636;"),
  977. "leftleftarrows": []byte("&#8647;"),
  978. "leftrightarrow": []byte("&harr;"),
  979. "leftrightarrows": []byte("&#8646;"),
  980. "leftrightharpoons": []byte("&#8651;"),
  981. "leftrightsquigarrow": []byte("&#8621;"),
  982. "leftthreetimes": []byte("&#8907;"),
  983. "leq": []byte("&le;"),
  984. "leqq": []byte("&lE;"),
  985. "leqslant": []byte("&les;"),
  986. "lesdoto": []byte("&#10881;"),
  987. "lesdotor": []byte("&#10883;"),
  988. "lessapprox": []byte("&lap;"),
  989. "lessdot": []byte("&#8918;"),
  990. "lesseqgtr": []byte("&leg;"),
  991. "lesseqqgtr": []byte("&lEg;"),
  992. "lessgtr": []byte("&lg;"),
  993. "lesssim": []byte("&lsim;"),
  994. "lfloor": []byte("&#8970;"),
  995. "llcorner": []byte("&#8990;"),
  996. "lmidot": []byte("&#320;"),
  997. "lmoust": []byte("&#9136;"),
  998. "lmoustache": []byte("&#9136;"),
  999. "lnapprox": []byte("&lnap;"),
  1000. "lneq": []byte("&lne;"),
  1001. "lneqq": []byte("&lnE;"),
  1002. "longleftarrow": []byte("&xlarr;"),
  1003. "longleftrightarrow": []byte("&xharr;"),
  1004. "longmapsto": []byte("&xmap;"),
  1005. "longrightarrow": []byte("&xrarr;"),
  1006. "looparrowleft": []byte("&#8619;"),
  1007. "looparrowright": []byte("&#8620;"),
  1008. "lotimes": []byte("&#10804;"),
  1009. "lowast": []byte("&#8727;"),
  1010. "lowbar": []byte("_"),
  1011. "lozenge": []byte("&loz;"),
  1012. "lpar": []byte("("),
  1013. "lrcorner": []byte("&#8991;"),
  1014. "lsaquo": []byte("&#8249;"),
  1015. "lsqb": []byte("["),
  1016. "lsquor": []byte("&#8218;"),
  1017. "lstrok": []byte("&#322;"),
  1018. "lt": []byte("<"),
  1019. "lthree": []byte("&#8907;"),
  1020. "ltimes": []byte("&#8905;"),
  1021. "ltquest": []byte("&#10875;"),
  1022. "lurdshar": []byte("&#10570;"),
  1023. "luruhar": []byte("&#10598;"),
  1024. "maltese": []byte("&malt;"),
  1025. "mapsto": []byte("&map;"),
  1026. "mapstodown": []byte("&#8615;"),
  1027. "mapstoleft": []byte("&#8612;"),
  1028. "mapstoup": []byte("&#8613;"),
  1029. "marker": []byte("&#9646;"),
  1030. "measuredangle": []byte("&#8737;"),
  1031. "micro": []byte("&#181;"),
  1032. "midast": []byte("*"),
  1033. "middot": []byte("&#183;"),
  1034. "minusb": []byte("&#8863;"),
  1035. "minusd": []byte("&#8760;"),
  1036. "minusdu": []byte("&#10794;"),
  1037. "mnplus": []byte("&mp;"),
  1038. "models": []byte("&#8871;"),
  1039. "mstpos": []byte("&ac;"),
  1040. "multimap": []byte("&#8888;"),
  1041. "nLeftarrow": []byte("&#8653;"),
  1042. "nLeftrightarrow": []byte("&#8654;"),
  1043. "nRightarrow": []byte("&#8655;"),
  1044. "nVDash": []byte("&#8879;"),
  1045. "nVdash": []byte("&#8878;"),
  1046. "nabla": []byte("&Del;"),
  1047. "nacute": []byte("&#324;"),
  1048. "napos": []byte("&#329;"),
  1049. "napprox": []byte("&nap;"),
  1050. "natural": []byte("&#9838;"),
  1051. "naturals": []byte("&Nopf;"),
  1052. "ncaron": []byte("&#328;"),
  1053. "ncedil": []byte("&#326;"),
  1054. "nearrow": []byte("&#8599;"),
  1055. "nequiv": []byte("&#8802;"),
  1056. "nesear": []byte("&toea;"),
  1057. "nexist": []byte("&#8708;"),
  1058. "nexists": []byte("&#8708;"),
  1059. "ngeq": []byte("&nge;"),
  1060. "ngtr": []byte("&ngt;"),
  1061. "niv": []byte("&ni;"),
  1062. "nleftarrow": []byte("&#8602;"),
  1063. "nleftrightarrow": []byte("&#8622;"),
  1064. "nleq": []byte("&nle;"),
  1065. "nless": []byte("&nlt;"),
  1066. "nltrie": []byte("&#8940;"),
  1067. "notinva": []byte("&#8713;"),
  1068. "notinvb": []byte("&#8951;"),
  1069. "notinvc": []byte("&#8950;"),
  1070. "notniva": []byte("&#8716;"),
  1071. "notnivb": []byte("&#8958;"),
  1072. "notnivc": []byte("&#8957;"),
  1073. "nparallel": []byte("&npar;"),
  1074. "npolint": []byte("&#10772;"),
  1075. "nprcue": []byte("&#8928;"),
  1076. "nprec": []byte("&npr;"),
  1077. "nrightarrow": []byte("&#8603;"),
  1078. "nrtrie": []byte("&#8941;"),
  1079. "nsccue": []byte("&#8929;"),
  1080. "nshortmid": []byte("&nmid;"),
  1081. "nshortparallel": []byte("&npar;"),
  1082. "nsimeq": []byte("&#8772;"),
  1083. "nsmid": []byte("&nmid;"),
  1084. "nspar": []byte("&npar;"),
  1085. "nsqsube": []byte("&#8930;"),
  1086. "nsqsupe": []byte("&#8931;"),
  1087. "nsubseteq": []byte("&#8840;"),
  1088. "nsucc": []byte("&nsc;"),
  1089. "nsupseteq": []byte("&#8841;"),
  1090. "ntilde": []byte("&#241;"),
  1091. "ntriangleleft": []byte("&#8938;"),
  1092. "ntrianglelefteq": []byte("&#8940;"),
  1093. "ntriangleright": []byte("&#8939;"),
  1094. "ntrianglerighteq": []byte("&#8941;"),
  1095. "num": []byte("#"),
  1096. "numero": []byte("&#8470;"),
  1097. "nvDash": []byte("&#8877;"),
  1098. "nvdash": []byte("&#8876;"),
  1099. "nvinfin": []byte("&#10718;"),
  1100. "nwarrow": []byte("&#8598;"),
  1101. "oacute": []byte("&#243;"),
  1102. "ocirc": []byte("&#244;"),
  1103. "odblac": []byte("&#337;"),
  1104. "oelig": []byte("&#339;"),
  1105. "ograve": []byte("&#242;"),
  1106. "olcross": []byte("&#10683;"),
  1107. "omacr": []byte("&#333;"),
  1108. "omega": []byte("&#969;"),
  1109. "omicron": []byte("&#959;"),
  1110. "ominus": []byte("&#8854;"),
  1111. "order": []byte("&oscr;"),
  1112. "orderof": []byte("&oscr;"),
  1113. "origof": []byte("&#8886;"),
  1114. "orslope": []byte("&#10839;"),
  1115. "oslash": []byte("&#248;"),
  1116. "otilde": []byte("&#245;"),
  1117. "otimes": []byte("&#8855;"),
  1118. "otimesas": []byte("&#10806;"),
  1119. "parallel": []byte("&par;"),
  1120. "percnt": []byte("%"),
  1121. "period": []byte("."),
  1122. "permil": []byte("&#8240;"),
  1123. "perp": []byte("&bot;"),
  1124. "pertenk": []byte("&#8241;"),
  1125. "phmmat": []byte("&Mscr;"),
  1126. "pitchfork": []byte("&fork;"),
  1127. "planck": []byte("&hbar;"),
  1128. "planckh": []byte("&#8462;"),
  1129. "plankv": []byte("&hbar;"),
  1130. "plus": []byte("+"),
  1131. "plusacir": []byte("&#10787;"),
  1132. "pluscir": []byte("&#10786;"),
  1133. "plusdo": []byte("&#8724;"),
  1134. "plusmn": []byte("&pm;"),
  1135. "plussim": []byte("&#10790;"),
  1136. "plustwo": []byte("&#10791;"),
  1137. "pointint": []byte("&#10773;"),
  1138. "pound": []byte("&#163;"),
  1139. "prec": []byte("&pr;"),
  1140. "precapprox": []byte("&prap;"),
  1141. "preccurlyeq": []byte("&#8828;"),
  1142. "preceq": []byte("&pre;"),
  1143. "precnapprox": []byte("&prnap;"),
  1144. "precneqq": []byte("&prnE;"),
  1145. "precnsim": []byte("&#8936;"),
  1146. "precsim": []byte("&#8830;"),
  1147. "primes": []byte("&Popf;"),
  1148. "prnsim": []byte("&#8936;"),
  1149. "profalar": []byte("&#9006;"),
  1150. "profline": []byte("&#8978;"),
  1151. "profsurf": []byte("&#8979;"),
  1152. "propto": []byte("&prop;"),
  1153. "prurel": []byte("&#8880;"),
  1154. "puncsp": []byte("&#8200;"),
  1155. "qprime": []byte("&#8279;"),
  1156. "quaternions": []byte("&Hopf;"),
  1157. "quatint": []byte("&#10774;"),
  1158. "quest": []byte("?"),
  1159. "questeq": []byte("&#8799;"),
  1160. "quot": []byte("\""),
  1161. "racute": []byte("&#341;"),
  1162. "radic": []byte("&Sqrt;"),
  1163. "raemptyv": []byte("&#10675;"),
  1164. "rangle": []byte("&rang;"),
  1165. "raquo": []byte("&#187;"),
  1166. "rarrbfs": []byte("&#10528;"),
  1167. "rarrhk": []byte("&#8618;"),
  1168. "rarrlp": []byte("&#8620;"),
  1169. "rarrsim": []byte("&#10612;"),
  1170. "rarrtl": []byte("&#8611;"),
  1171. "rationals": []byte("&Qopf;"),
  1172. "rbrace": []byte("}"),
  1173. "rbrack": []byte("]"),
  1174. "rbrksld": []byte("&#10638;"),
  1175. "rbrkslu": []byte("&#10640;"),
  1176. "rcaron": []byte("&#345;"),
  1177. "rcedil": []byte("&#343;"),
  1178. "rcub": []byte("}"),
  1179. "rdldhar": []byte("&#10601;"),
  1180. "rdquor": []byte("&#8221;"),
  1181. "real": []byte("&Re;"),
  1182. "realine": []byte("&Rscr;"),
  1183. "realpart": []byte("&Re;"),
  1184. "reals": []byte("&Ropf;"),
  1185. "rfloor": []byte("&#8971;"),
  1186. "rightarrow": []byte("&rarr;"),
  1187. "rightarrowtail": []byte("&#8611;"),
  1188. "rightharpoondown": []byte("&#8641;"),
  1189. "rightharpoonup": []byte("&#8640;"),
  1190. "rightleftarrows": []byte("&#8644;"),
  1191. "rightleftharpoons": []byte("&#8652;"),
  1192. "rightrightarrows": []byte("&#8649;"),
  1193. "rightsquigarrow": []byte("&#8605;"),
  1194. "rightthreetimes": []byte("&#8908;"),
  1195. "risingdotseq": []byte("&#8787;"),
  1196. "rmoust": []byte("&#9137;"),
  1197. "rmoustache": []byte("&#9137;"),
  1198. "rotimes": []byte("&#10805;"),
  1199. "rpar": []byte(")"),
  1200. "rppolint": []byte("&#10770;"),
  1201. "rsaquo": []byte("&#8250;"),
  1202. "rsqb": []byte("]"),
  1203. "rsquor": []byte("&#8217;"),
  1204. "rthree": []byte("&#8908;"),
  1205. "rtimes": []byte("&#8906;"),
  1206. "rtriltri": []byte("&#10702;"),
  1207. "ruluhar": []byte("&#10600;"),
  1208. "sacute": []byte("&#347;"),
  1209. "scaron": []byte("&#353;"),
  1210. "scedil": []byte("&#351;"),
  1211. "scirc": []byte("&#349;"),
  1212. "scnsim": []byte("&#8937;"),
  1213. "scpolint": []byte("&#10771;"),
  1214. "searrow": []byte("&#8600;"),
  1215. "semi": []byte(";"),
  1216. "seswar": []byte("&tosa;"),
  1217. "setminus": []byte("&#8726;"),
  1218. "sfrown": []byte("&#8994;"),
  1219. "shchcy": []byte("&#1097;"),
  1220. "shortmid": []byte("&mid;"),
  1221. "shortparallel": []byte("&par;"),
  1222. "sigma": []byte("&#963;"),
  1223. "sigmaf": []byte("&#962;"),
  1224. "sigmav": []byte("&#962;"),
  1225. "simeq": []byte("&sime;"),
  1226. "simplus": []byte("&#10788;"),
  1227. "simrarr": []byte("&#10610;"),
  1228. "slarr": []byte("&larr;"),
  1229. "smallsetminus": []byte("&#8726;"),
  1230. "smeparsl": []byte("&#10724;"),
  1231. "smid": []byte("&mid;"),
  1232. "softcy": []byte("&#1100;"),
  1233. "sol": []byte("/"),
  1234. "solbar": []byte("&#9023;"),
  1235. "spades": []byte("&#9824;"),
  1236. "spadesuit": []byte("&#9824;"),
  1237. "spar": []byte("&par;"),
  1238. "sqsube": []byte("&#8849;"),
  1239. "sqsubset": []byte("&#8847;"),
  1240. "sqsubseteq": []byte("&#8849;"),
  1241. "sqsupe": []byte("&#8850;"),
  1242. "sqsupset": []byte("&#8848;"),
  1243. "sqsupseteq": []byte("&#8850;"),
  1244. "square": []byte("&squ;"),
  1245. "squarf": []byte("&squf;"),
  1246. "srarr": []byte("&rarr;"),
  1247. "ssetmn": []byte("&#8726;"),
  1248. "ssmile": []byte("&#8995;"),
  1249. "sstarf": []byte("&Star;"),
  1250. "straightepsilon": []byte("&#1013;"),
  1251. "straightphi": []byte("&#981;"),
  1252. "strns": []byte("&#175;"),
  1253. "subedot": []byte("&#10947;"),
  1254. "submult": []byte("&#10945;"),
  1255. "subplus": []byte("&#10943;"),
  1256. "subrarr": []byte("&#10617;"),
  1257. "subset": []byte("&sub;"),
  1258. "subseteq": []byte("&sube;"),
  1259. "subseteqq": []byte("&subE;"),
  1260. "subsetneq": []byte("&#8842;"),
  1261. "subsetneqq": []byte("&subnE;"),
  1262. "succ": []byte("&sc;"),
  1263. "succapprox": []byte("&scap;"),
  1264. "succcurlyeq": []byte("&#8829;"),
  1265. "succeq": []byte("&sce;"),
  1266. "succnapprox": []byte("&scnap;"),
  1267. "succneqq": []byte("&scnE;"),
  1268. "succnsim": []byte("&#8937;"),
  1269. "succsim": []byte("&#8831;"),
  1270. "supdsub": []byte("&#10968;"),
  1271. "supedot": []byte("&#10948;"),
  1272. "suphsol": []byte("&#10185;"),
  1273. "suphsub": []byte("&#10967;"),
  1274. "suplarr": []byte("&#10619;"),
  1275. "supmult": []byte("&#10946;"),
  1276. "supplus": []byte("&#10944;"),
  1277. "supset": []byte("&sup;"),
  1278. "supseteq": []byte("&supe;"),
  1279. "supseteqq": []byte("&supE;"),
  1280. "supsetneq": []byte("&#8843;"),
  1281. "supsetneqq": []byte("&supnE;"),
  1282. "swarrow": []byte("&#8601;"),
  1283. "szlig": []byte("&#223;"),
  1284. "target": []byte("&#8982;"),
  1285. "tcaron": []byte("&#357;"),
  1286. "tcedil": []byte("&#355;"),
  1287. "telrec": []byte("&#8981;"),
  1288. "there4": []byte("&#8756;"),
  1289. "therefore": []byte("&#8756;"),
  1290. "theta": []byte("&#952;"),
  1291. "thetasym": []byte("&#977;"),
  1292. "thetav": []byte("&#977;"),
  1293. "thickapprox": []byte("&ap;"),
  1294. "thicksim": []byte("&sim;"),
  1295. "thinsp": []byte("&#8201;"),
  1296. "thkap": []byte("&ap;"),
  1297. "thksim": []byte("&sim;"),
  1298. "thorn": []byte("&#254;"),
  1299. "tilde": []byte("&#732;"),
  1300. "times": []byte("&#215;"),
  1301. "timesb": []byte("&#8864;"),
  1302. "timesbar": []byte("&#10801;"),
  1303. "topbot": []byte("&#9014;"),
  1304. "topfork": []byte("&#10970;"),
  1305. "tprime": []byte("&#8244;"),
  1306. "triangle": []byte("&utri;"),
  1307. "triangledown": []byte("&dtri;"),
  1308. "triangleleft": []byte("&ltri;"),
  1309. "trianglelefteq": []byte("&#8884;"),
  1310. "triangleq": []byte("&trie;"),
  1311. "triangleright": []byte("&rtri;"),
  1312. "trianglerighteq": []byte("&#8885;"),
  1313. "tridot": []byte("&#9708;"),
  1314. "triminus": []byte("&#10810;"),
  1315. "triplus": []byte("&#10809;"),
  1316. "tritime": []byte("&#10811;"),
  1317. "trpezium": []byte("&#9186;"),
  1318. "tstrok": []byte("&#359;"),
  1319. "twoheadleftarrow": []byte("&Larr;"),
  1320. "twoheadrightarrow": []byte("&Rarr;"),
  1321. "uacute": []byte("&#250;"),
  1322. "ubreve": []byte("&#365;"),
  1323. "ucirc": []byte("&#251;"),
  1324. "udblac": []byte("&#369;"),
  1325. "ugrave": []byte("&#249;"),
  1326. "ulcorn": []byte("&#8988;"),
  1327. "ulcorner": []byte("&#8988;"),
  1328. "ulcrop": []byte("&#8975;"),
  1329. "umacr": []byte("&#363;"),
  1330. "uogon": []byte("&#371;"),
  1331. "uparrow": []byte("&uarr;"),
  1332. "updownarrow": []byte("&varr;"),
  1333. "upharpoonleft": []byte("&#8639;"),
  1334. "upharpoonright": []byte("&#8638;"),
  1335. "upsih": []byte("&#978;"),
  1336. "upsilon": []byte("&#965;"),
  1337. "upuparrows": []byte("&#8648;"),
  1338. "urcorn": []byte("&#8989;"),
  1339. "urcorner": []byte("&#8989;"),
  1340. "urcrop": []byte("&#8974;"),
  1341. "uring": []byte("&#367;"),
  1342. "utilde": []byte("&#361;"),
  1343. "uwangle": []byte("&#10663;"),
  1344. "varepsilon": []byte("&#1013;"),
  1345. "varkappa": []byte("&#1008;"),
  1346. "varnothing": []byte("&#8709;"),
  1347. "varphi": []byte("&#981;"),
  1348. "varpi": []byte("&piv;"),
  1349. "varpropto": []byte("&prop;"),
  1350. "varrho": []byte("&rhov;"),
  1351. "varsigma": []byte("&#962;"),
  1352. "vartheta": []byte("&#977;"),
  1353. "vartriangleleft": []byte("&#8882;"),
  1354. "vartriangleright": []byte("&#8883;"),
  1355. "vee": []byte("&or;"),
  1356. "veebar": []byte("&#8891;"),
  1357. "vellip": []byte("&#8942;"),
  1358. "verbar": []byte("|"),
  1359. "vert": []byte("|"),
  1360. "vprop": []byte("&prop;"),
  1361. "vzigzag": []byte("&#10650;"),
  1362. "wcirc": []byte("&#373;"),
  1363. "wedge": []byte("&and;"),
  1364. "wedgeq": []byte("&#8793;"),
  1365. "weierp": []byte("&wp;"),
  1366. "wreath": []byte("&wr;"),
  1367. "xvee": []byte("&Vee;"),
  1368. "xwedge": []byte("&#8896;"),
  1369. "yacute": []byte("&#253;"),
  1370. "ycirc": []byte("&#375;"),
  1371. "zacute": []byte("&#378;"),
  1372. "zcaron": []byte("&#382;"),
  1373. "zeetrf": []byte("&Zfr;"),
  1374. "zigrarr": []byte("&#8669;"),
  1375. }
  1376. // TextRevEntitiesMap is a map of escapes.
  1377. var TextRevEntitiesMap = map[byte][]byte{
  1378. '<': []byte("&lt;"),
  1379. }