@shijiu/jsview 1.9.915 → 1.9.931

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,3152 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var compilerCore = require('@vue/compiler-core');
6
+ var shared = require('@vue/shared');
7
+
8
+ const V_MODEL_RADIO = Symbol(`vModelRadio` );
9
+ const V_MODEL_CHECKBOX = Symbol(`vModelCheckbox` );
10
+ const V_MODEL_TEXT = Symbol(`vModelText` );
11
+ const V_MODEL_SELECT = Symbol(`vModelSelect` );
12
+ const V_MODEL_DYNAMIC = Symbol(`vModelDynamic` );
13
+ const V_ON_WITH_MODIFIERS = Symbol(`vOnModifiersGuard` );
14
+ const V_ON_WITH_KEYS = Symbol(`vOnKeysGuard` );
15
+ const V_SHOW = Symbol(`vShow` );
16
+ const TRANSITION = Symbol(`Transition` );
17
+ const TRANSITION_GROUP = Symbol(`TransitionGroup` );
18
+ compilerCore.registerRuntimeHelpers({
19
+ [V_MODEL_RADIO]: `vModelRadio`,
20
+ [V_MODEL_CHECKBOX]: `vModelCheckbox`,
21
+ [V_MODEL_TEXT]: `vModelText`,
22
+ [V_MODEL_SELECT]: `vModelSelect`,
23
+ [V_MODEL_DYNAMIC]: `vModelDynamic`,
24
+ [V_ON_WITH_MODIFIERS]: `withModifiers`,
25
+ [V_ON_WITH_KEYS]: `withKeys`,
26
+ [V_SHOW]: `vShow`,
27
+ [TRANSITION]: `Transition`,
28
+ [TRANSITION_GROUP]: `TransitionGroup`
29
+ });
30
+
31
+ var namedCharacterReferences = {
32
+ GT: ">",
33
+ gt: ">",
34
+ LT: "<",
35
+ lt: "<",
36
+ "ac;": "∾",
37
+ "af;": "⁡",
38
+ AMP: "&",
39
+ amp: "&",
40
+ "ap;": "≈",
41
+ "DD;": "ⅅ",
42
+ "dd;": "ⅆ",
43
+ deg: "°",
44
+ "ee;": "ⅇ",
45
+ "eg;": "⪚",
46
+ "el;": "⪙",
47
+ ETH: "Ð",
48
+ eth: "ð",
49
+ "gE;": "≧",
50
+ "ge;": "≥",
51
+ "Gg;": "⋙",
52
+ "gg;": "≫",
53
+ "gl;": "≷",
54
+ "GT;": ">",
55
+ "Gt;": "≫",
56
+ "gt;": ">",
57
+ "ic;": "⁣",
58
+ "ii;": "ⅈ",
59
+ "Im;": "ℑ",
60
+ "in;": "∈",
61
+ "it;": "⁢",
62
+ "lE;": "≦",
63
+ "le;": "≤",
64
+ "lg;": "≶",
65
+ "Ll;": "⋘",
66
+ "ll;": "≪",
67
+ "LT;": "<",
68
+ "Lt;": "≪",
69
+ "lt;": "<",
70
+ "mp;": "∓",
71
+ "Mu;": "Μ",
72
+ "mu;": "μ",
73
+ "ne;": "≠",
74
+ "ni;": "∋",
75
+ not: "¬",
76
+ "Nu;": "Ν",
77
+ "nu;": "ν",
78
+ "Or;": "⩔",
79
+ "or;": "∨",
80
+ "oS;": "Ⓢ",
81
+ "Pi;": "Π",
82
+ "pi;": "π",
83
+ "pm;": "±",
84
+ "Pr;": "⪻",
85
+ "pr;": "≺",
86
+ "Re;": "ℜ",
87
+ REG: "®",
88
+ reg: "®",
89
+ "rx;": "℞",
90
+ "Sc;": "⪼",
91
+ "sc;": "≻",
92
+ shy: "­",
93
+ uml: "¨",
94
+ "wp;": "℘",
95
+ "wr;": "≀",
96
+ "Xi;": "Ξ",
97
+ "xi;": "ξ",
98
+ yen: "¥",
99
+ "acd;": "∿",
100
+ "acE;": "∾̳",
101
+ "Acy;": "А",
102
+ "acy;": "а",
103
+ "Afr;": "𝔄",
104
+ "afr;": "𝔞",
105
+ "AMP;": "&",
106
+ "amp;": "&",
107
+ "And;": "⩓",
108
+ "and;": "∧",
109
+ "ang;": "∠",
110
+ "apE;": "⩰",
111
+ "ape;": "≊",
112
+ "ast;": "*",
113
+ Auml: "Ä",
114
+ auml: "ä",
115
+ "Bcy;": "Б",
116
+ "bcy;": "б",
117
+ "Bfr;": "𝔅",
118
+ "bfr;": "𝔟",
119
+ "bne;": "=⃥",
120
+ "bot;": "⊥",
121
+ "Cap;": "⋒",
122
+ "cap;": "∩",
123
+ cent: "¢",
124
+ "Cfr;": "ℭ",
125
+ "cfr;": "𝔠",
126
+ "Chi;": "Χ",
127
+ "chi;": "χ",
128
+ "cir;": "○",
129
+ COPY: "©",
130
+ copy: "©",
131
+ "Cup;": "⋓",
132
+ "cup;": "∪",
133
+ "Dcy;": "Д",
134
+ "dcy;": "д",
135
+ "deg;": "°",
136
+ "Del;": "∇",
137
+ "Dfr;": "𝔇",
138
+ "dfr;": "𝔡",
139
+ "die;": "¨",
140
+ "div;": "÷",
141
+ "Dot;": "¨",
142
+ "dot;": "˙",
143
+ "Ecy;": "Э",
144
+ "ecy;": "э",
145
+ "Efr;": "𝔈",
146
+ "efr;": "𝔢",
147
+ "egs;": "⪖",
148
+ "ell;": "ℓ",
149
+ "els;": "⪕",
150
+ "ENG;": "Ŋ",
151
+ "eng;": "ŋ",
152
+ "Eta;": "Η",
153
+ "eta;": "η",
154
+ "ETH;": "Ð",
155
+ "eth;": "ð",
156
+ Euml: "Ë",
157
+ euml: "ë",
158
+ "Fcy;": "Ф",
159
+ "fcy;": "ф",
160
+ "Ffr;": "𝔉",
161
+ "ffr;": "𝔣",
162
+ "gap;": "⪆",
163
+ "Gcy;": "Г",
164
+ "gcy;": "г",
165
+ "gEl;": "⪌",
166
+ "gel;": "⋛",
167
+ "geq;": "≥",
168
+ "ges;": "⩾",
169
+ "Gfr;": "𝔊",
170
+ "gfr;": "𝔤",
171
+ "ggg;": "⋙",
172
+ "gla;": "⪥",
173
+ "glE;": "⪒",
174
+ "glj;": "⪤",
175
+ "gnE;": "≩",
176
+ "gne;": "⪈",
177
+ "Hat;": "^",
178
+ "Hfr;": "ℌ",
179
+ "hfr;": "𝔥",
180
+ "Icy;": "И",
181
+ "icy;": "и",
182
+ "iff;": "⇔",
183
+ "Ifr;": "ℑ",
184
+ "ifr;": "𝔦",
185
+ "Int;": "∬",
186
+ "int;": "∫",
187
+ Iuml: "Ï",
188
+ iuml: "ï",
189
+ "Jcy;": "Й",
190
+ "jcy;": "й",
191
+ "Jfr;": "𝔍",
192
+ "jfr;": "𝔧",
193
+ "Kcy;": "К",
194
+ "kcy;": "к",
195
+ "Kfr;": "𝔎",
196
+ "kfr;": "𝔨",
197
+ "lap;": "⪅",
198
+ "lat;": "⪫",
199
+ "Lcy;": "Л",
200
+ "lcy;": "л",
201
+ "lEg;": "⪋",
202
+ "leg;": "⋚",
203
+ "leq;": "≤",
204
+ "les;": "⩽",
205
+ "Lfr;": "𝔏",
206
+ "lfr;": "𝔩",
207
+ "lgE;": "⪑",
208
+ "lnE;": "≨",
209
+ "lne;": "⪇",
210
+ "loz;": "◊",
211
+ "lrm;": "‎",
212
+ "Lsh;": "↰",
213
+ "lsh;": "↰",
214
+ macr: "¯",
215
+ "Map;": "⤅",
216
+ "map;": "↦",
217
+ "Mcy;": "М",
218
+ "mcy;": "м",
219
+ "Mfr;": "𝔐",
220
+ "mfr;": "𝔪",
221
+ "mho;": "℧",
222
+ "mid;": "∣",
223
+ "nap;": "≉",
224
+ nbsp: " ",
225
+ "Ncy;": "Н",
226
+ "ncy;": "н",
227
+ "Nfr;": "𝔑",
228
+ "nfr;": "𝔫",
229
+ "ngE;": "≧̸",
230
+ "nge;": "≱",
231
+ "nGg;": "⋙̸",
232
+ "nGt;": "≫⃒",
233
+ "ngt;": "≯",
234
+ "nis;": "⋼",
235
+ "niv;": "∋",
236
+ "nlE;": "≦̸",
237
+ "nle;": "≰",
238
+ "nLl;": "⋘̸",
239
+ "nLt;": "≪⃒",
240
+ "nlt;": "≮",
241
+ "Not;": "⫬",
242
+ "not;": "¬",
243
+ "npr;": "⊀",
244
+ "nsc;": "⊁",
245
+ "num;": "#",
246
+ "Ocy;": "О",
247
+ "ocy;": "о",
248
+ "Ofr;": "𝔒",
249
+ "ofr;": "𝔬",
250
+ "ogt;": "⧁",
251
+ "ohm;": "Ω",
252
+ "olt;": "⧀",
253
+ "ord;": "⩝",
254
+ ordf: "ª",
255
+ ordm: "º",
256
+ "orv;": "⩛",
257
+ Ouml: "Ö",
258
+ ouml: "ö",
259
+ "par;": "∥",
260
+ para: "¶",
261
+ "Pcy;": "П",
262
+ "pcy;": "п",
263
+ "Pfr;": "𝔓",
264
+ "pfr;": "𝔭",
265
+ "Phi;": "Φ",
266
+ "phi;": "φ",
267
+ "piv;": "ϖ",
268
+ "prE;": "⪳",
269
+ "pre;": "⪯",
270
+ "Psi;": "Ψ",
271
+ "psi;": "ψ",
272
+ "Qfr;": "𝔔",
273
+ "qfr;": "𝔮",
274
+ QUOT: "\"",
275
+ quot: "\"",
276
+ "Rcy;": "Р",
277
+ "rcy;": "р",
278
+ "REG;": "®",
279
+ "reg;": "®",
280
+ "Rfr;": "ℜ",
281
+ "rfr;": "𝔯",
282
+ "Rho;": "Ρ",
283
+ "rho;": "ρ",
284
+ "rlm;": "‏",
285
+ "Rsh;": "↱",
286
+ "rsh;": "↱",
287
+ "scE;": "⪴",
288
+ "sce;": "⪰",
289
+ "Scy;": "С",
290
+ "scy;": "с",
291
+ sect: "§",
292
+ "Sfr;": "𝔖",
293
+ "sfr;": "𝔰",
294
+ "shy;": "­",
295
+ "sim;": "∼",
296
+ "smt;": "⪪",
297
+ "sol;": "/",
298
+ "squ;": "□",
299
+ "Sub;": "⋐",
300
+ "sub;": "⊂",
301
+ "Sum;": "∑",
302
+ "sum;": "∑",
303
+ "Sup;": "⋑",
304
+ "sup;": "⊃",
305
+ sup1: "¹",
306
+ sup2: "²",
307
+ sup3: "³",
308
+ "Tab;": "\t",
309
+ "Tau;": "Τ",
310
+ "tau;": "τ",
311
+ "Tcy;": "Т",
312
+ "tcy;": "т",
313
+ "Tfr;": "𝔗",
314
+ "tfr;": "𝔱",
315
+ "top;": "⊤",
316
+ "Ucy;": "У",
317
+ "ucy;": "у",
318
+ "Ufr;": "𝔘",
319
+ "ufr;": "𝔲",
320
+ "uml;": "¨",
321
+ Uuml: "Ü",
322
+ uuml: "ü",
323
+ "Vcy;": "В",
324
+ "vcy;": "в",
325
+ "Vee;": "⋁",
326
+ "vee;": "∨",
327
+ "Vfr;": "𝔙",
328
+ "vfr;": "𝔳",
329
+ "Wfr;": "𝔚",
330
+ "wfr;": "𝔴",
331
+ "Xfr;": "𝔛",
332
+ "xfr;": "𝔵",
333
+ "Ycy;": "Ы",
334
+ "ycy;": "ы",
335
+ "yen;": "¥",
336
+ "Yfr;": "𝔜",
337
+ "yfr;": "𝔶",
338
+ yuml: "ÿ",
339
+ "Zcy;": "З",
340
+ "zcy;": "з",
341
+ "Zfr;": "ℨ",
342
+ "zfr;": "𝔷",
343
+ "zwj;": "‍",
344
+ Acirc: "Â",
345
+ acirc: "â",
346
+ acute: "´",
347
+ AElig: "Æ",
348
+ aelig: "æ",
349
+ "andd;": "⩜",
350
+ "andv;": "⩚",
351
+ "ange;": "⦤",
352
+ "Aopf;": "𝔸",
353
+ "aopf;": "𝕒",
354
+ "apid;": "≋",
355
+ "apos;": "'",
356
+ Aring: "Å",
357
+ aring: "å",
358
+ "Ascr;": "𝒜",
359
+ "ascr;": "𝒶",
360
+ "Auml;": "Ä",
361
+ "auml;": "ä",
362
+ "Barv;": "⫧",
363
+ "bbrk;": "⎵",
364
+ "Beta;": "Β",
365
+ "beta;": "β",
366
+ "beth;": "ℶ",
367
+ "bNot;": "⫭",
368
+ "bnot;": "⌐",
369
+ "Bopf;": "𝔹",
370
+ "bopf;": "𝕓",
371
+ "boxH;": "═",
372
+ "boxh;": "─",
373
+ "boxV;": "║",
374
+ "boxv;": "│",
375
+ "Bscr;": "ℬ",
376
+ "bscr;": "𝒷",
377
+ "bsim;": "∽",
378
+ "bsol;": "\\",
379
+ "bull;": "•",
380
+ "bump;": "≎",
381
+ "caps;": "∩︀",
382
+ "Cdot;": "Ċ",
383
+ "cdot;": "ċ",
384
+ cedil: "¸",
385
+ "cent;": "¢",
386
+ "CHcy;": "Ч",
387
+ "chcy;": "ч",
388
+ "circ;": "ˆ",
389
+ "cirE;": "⧃",
390
+ "cire;": "≗",
391
+ "comp;": "∁",
392
+ "cong;": "≅",
393
+ "Copf;": "ℂ",
394
+ "copf;": "𝕔",
395
+ "COPY;": "©",
396
+ "copy;": "©",
397
+ "Cscr;": "𝒞",
398
+ "cscr;": "𝒸",
399
+ "csub;": "⫏",
400
+ "csup;": "⫐",
401
+ "cups;": "∪︀",
402
+ "Darr;": "↡",
403
+ "dArr;": "⇓",
404
+ "darr;": "↓",
405
+ "dash;": "‐",
406
+ "dHar;": "⥥",
407
+ "diam;": "⋄",
408
+ "DJcy;": "Ђ",
409
+ "djcy;": "ђ",
410
+ "Dopf;": "𝔻",
411
+ "dopf;": "𝕕",
412
+ "Dscr;": "𝒟",
413
+ "dscr;": "𝒹",
414
+ "DScy;": "Ѕ",
415
+ "dscy;": "ѕ",
416
+ "dsol;": "⧶",
417
+ "dtri;": "▿",
418
+ "DZcy;": "Џ",
419
+ "dzcy;": "џ",
420
+ "ecir;": "≖",
421
+ Ecirc: "Ê",
422
+ ecirc: "ê",
423
+ "Edot;": "Ė",
424
+ "eDot;": "≑",
425
+ "edot;": "ė",
426
+ "emsp;": " ",
427
+ "ensp;": " ",
428
+ "Eopf;": "𝔼",
429
+ "eopf;": "𝕖",
430
+ "epar;": "⋕",
431
+ "epsi;": "ε",
432
+ "Escr;": "ℰ",
433
+ "escr;": "ℯ",
434
+ "Esim;": "⩳",
435
+ "esim;": "≂",
436
+ "Euml;": "Ë",
437
+ "euml;": "ë",
438
+ "euro;": "€",
439
+ "excl;": "!",
440
+ "flat;": "♭",
441
+ "fnof;": "ƒ",
442
+ "Fopf;": "𝔽",
443
+ "fopf;": "𝕗",
444
+ "fork;": "⋔",
445
+ "Fscr;": "ℱ",
446
+ "fscr;": "𝒻",
447
+ "Gdot;": "Ġ",
448
+ "gdot;": "ġ",
449
+ "geqq;": "≧",
450
+ "gesl;": "⋛︀",
451
+ "GJcy;": "Ѓ",
452
+ "gjcy;": "ѓ",
453
+ "gnap;": "⪊",
454
+ "gneq;": "⪈",
455
+ "Gopf;": "𝔾",
456
+ "gopf;": "𝕘",
457
+ "Gscr;": "𝒢",
458
+ "gscr;": "ℊ",
459
+ "gsim;": "≳",
460
+ "gtcc;": "⪧",
461
+ "gvnE;": "≩︀",
462
+ "half;": "½",
463
+ "hArr;": "⇔",
464
+ "harr;": "↔",
465
+ "hbar;": "ℏ",
466
+ "Hopf;": "ℍ",
467
+ "hopf;": "𝕙",
468
+ "Hscr;": "ℋ",
469
+ "hscr;": "𝒽",
470
+ Icirc: "Î",
471
+ icirc: "î",
472
+ "Idot;": "İ",
473
+ "IEcy;": "Е",
474
+ "iecy;": "е",
475
+ iexcl: "¡",
476
+ "imof;": "⊷",
477
+ "IOcy;": "Ё",
478
+ "iocy;": "ё",
479
+ "Iopf;": "𝕀",
480
+ "iopf;": "𝕚",
481
+ "Iota;": "Ι",
482
+ "iota;": "ι",
483
+ "Iscr;": "ℐ",
484
+ "iscr;": "𝒾",
485
+ "isin;": "∈",
486
+ "Iuml;": "Ï",
487
+ "iuml;": "ï",
488
+ "Jopf;": "𝕁",
489
+ "jopf;": "𝕛",
490
+ "Jscr;": "𝒥",
491
+ "jscr;": "𝒿",
492
+ "KHcy;": "Х",
493
+ "khcy;": "х",
494
+ "KJcy;": "Ќ",
495
+ "kjcy;": "ќ",
496
+ "Kopf;": "𝕂",
497
+ "kopf;": "𝕜",
498
+ "Kscr;": "𝒦",
499
+ "kscr;": "𝓀",
500
+ "Lang;": "⟪",
501
+ "lang;": "⟨",
502
+ laquo: "«",
503
+ "Larr;": "↞",
504
+ "lArr;": "⇐",
505
+ "larr;": "←",
506
+ "late;": "⪭",
507
+ "lcub;": "{",
508
+ "ldca;": "⤶",
509
+ "ldsh;": "↲",
510
+ "leqq;": "≦",
511
+ "lesg;": "⋚︀",
512
+ "lHar;": "⥢",
513
+ "LJcy;": "Љ",
514
+ "ljcy;": "љ",
515
+ "lnap;": "⪉",
516
+ "lneq;": "⪇",
517
+ "Lopf;": "𝕃",
518
+ "lopf;": "𝕝",
519
+ "lozf;": "⧫",
520
+ "lpar;": "(",
521
+ "Lscr;": "ℒ",
522
+ "lscr;": "𝓁",
523
+ "lsim;": "≲",
524
+ "lsqb;": "[",
525
+ "ltcc;": "⪦",
526
+ "ltri;": "◃",
527
+ "lvnE;": "≨︀",
528
+ "macr;": "¯",
529
+ "male;": "♂",
530
+ "malt;": "✠",
531
+ micro: "µ",
532
+ "mlcp;": "⫛",
533
+ "mldr;": "…",
534
+ "Mopf;": "𝕄",
535
+ "mopf;": "𝕞",
536
+ "Mscr;": "ℳ",
537
+ "mscr;": "𝓂",
538
+ "nang;": "∠⃒",
539
+ "napE;": "⩰̸",
540
+ "nbsp;": " ",
541
+ "ncap;": "⩃",
542
+ "ncup;": "⩂",
543
+ "ngeq;": "≱",
544
+ "nges;": "⩾̸",
545
+ "ngtr;": "≯",
546
+ "nGtv;": "≫̸",
547
+ "nisd;": "⋺",
548
+ "NJcy;": "Њ",
549
+ "njcy;": "њ",
550
+ "nldr;": "‥",
551
+ "nleq;": "≰",
552
+ "nles;": "⩽̸",
553
+ "nLtv;": "≪̸",
554
+ "nmid;": "∤",
555
+ "Nopf;": "ℕ",
556
+ "nopf;": "𝕟",
557
+ "npar;": "∦",
558
+ "npre;": "⪯̸",
559
+ "nsce;": "⪰̸",
560
+ "Nscr;": "𝒩",
561
+ "nscr;": "𝓃",
562
+ "nsim;": "≁",
563
+ "nsub;": "⊄",
564
+ "nsup;": "⊅",
565
+ "ntgl;": "≹",
566
+ "ntlg;": "≸",
567
+ "nvap;": "≍⃒",
568
+ "nvge;": "≥⃒",
569
+ "nvgt;": ">⃒",
570
+ "nvle;": "≤⃒",
571
+ "nvlt;": "<⃒",
572
+ "oast;": "⊛",
573
+ "ocir;": "⊚",
574
+ Ocirc: "Ô",
575
+ ocirc: "ô",
576
+ "odiv;": "⨸",
577
+ "odot;": "⊙",
578
+ "ogon;": "˛",
579
+ "oint;": "∮",
580
+ "omid;": "⦶",
581
+ "Oopf;": "𝕆",
582
+ "oopf;": "𝕠",
583
+ "opar;": "⦷",
584
+ "ordf;": "ª",
585
+ "ordm;": "º",
586
+ "oror;": "⩖",
587
+ "Oscr;": "𝒪",
588
+ "oscr;": "ℴ",
589
+ "osol;": "⊘",
590
+ "Ouml;": "Ö",
591
+ "ouml;": "ö",
592
+ "para;": "¶",
593
+ "part;": "∂",
594
+ "perp;": "⊥",
595
+ "phiv;": "ϕ",
596
+ "plus;": "+",
597
+ "Popf;": "ℙ",
598
+ "popf;": "𝕡",
599
+ pound: "£",
600
+ "prap;": "⪷",
601
+ "prec;": "≺",
602
+ "prnE;": "⪵",
603
+ "prod;": "∏",
604
+ "prop;": "∝",
605
+ "Pscr;": "𝒫",
606
+ "pscr;": "𝓅",
607
+ "qint;": "⨌",
608
+ "Qopf;": "ℚ",
609
+ "qopf;": "𝕢",
610
+ "Qscr;": "𝒬",
611
+ "qscr;": "𝓆",
612
+ "QUOT;": "\"",
613
+ "quot;": "\"",
614
+ "race;": "∽̱",
615
+ "Rang;": "⟫",
616
+ "rang;": "⟩",
617
+ raquo: "»",
618
+ "Rarr;": "↠",
619
+ "rArr;": "⇒",
620
+ "rarr;": "→",
621
+ "rcub;": "}",
622
+ "rdca;": "⤷",
623
+ "rdsh;": "↳",
624
+ "real;": "ℜ",
625
+ "rect;": "▭",
626
+ "rHar;": "⥤",
627
+ "rhov;": "ϱ",
628
+ "ring;": "˚",
629
+ "Ropf;": "ℝ",
630
+ "ropf;": "𝕣",
631
+ "rpar;": ")",
632
+ "Rscr;": "ℛ",
633
+ "rscr;": "𝓇",
634
+ "rsqb;": "]",
635
+ "rtri;": "▹",
636
+ "scap;": "⪸",
637
+ "scnE;": "⪶",
638
+ "sdot;": "⋅",
639
+ "sect;": "§",
640
+ "semi;": ";",
641
+ "sext;": "✶",
642
+ "SHcy;": "Ш",
643
+ "shcy;": "ш",
644
+ "sime;": "≃",
645
+ "simg;": "⪞",
646
+ "siml;": "⪝",
647
+ "smid;": "∣",
648
+ "smte;": "⪬",
649
+ "solb;": "⧄",
650
+ "Sopf;": "𝕊",
651
+ "sopf;": "𝕤",
652
+ "spar;": "∥",
653
+ "Sqrt;": "√",
654
+ "squf;": "▪",
655
+ "Sscr;": "𝒮",
656
+ "sscr;": "𝓈",
657
+ "Star;": "⋆",
658
+ "star;": "☆",
659
+ "subE;": "⫅",
660
+ "sube;": "⊆",
661
+ "succ;": "≻",
662
+ "sung;": "♪",
663
+ "sup1;": "¹",
664
+ "sup2;": "²",
665
+ "sup3;": "³",
666
+ "supE;": "⫆",
667
+ "supe;": "⊇",
668
+ szlig: "ß",
669
+ "tbrk;": "⎴",
670
+ "tdot;": "⃛",
671
+ THORN: "Þ",
672
+ thorn: "þ",
673
+ times: "×",
674
+ "tint;": "∭",
675
+ "toea;": "⤨",
676
+ "Topf;": "𝕋",
677
+ "topf;": "𝕥",
678
+ "tosa;": "⤩",
679
+ "trie;": "≜",
680
+ "Tscr;": "𝒯",
681
+ "tscr;": "𝓉",
682
+ "TScy;": "Ц",
683
+ "tscy;": "ц",
684
+ "Uarr;": "↟",
685
+ "uArr;": "⇑",
686
+ "uarr;": "↑",
687
+ Ucirc: "Û",
688
+ ucirc: "û",
689
+ "uHar;": "⥣",
690
+ "Uopf;": "𝕌",
691
+ "uopf;": "𝕦",
692
+ "Upsi;": "ϒ",
693
+ "upsi;": "υ",
694
+ "Uscr;": "𝒰",
695
+ "uscr;": "𝓊",
696
+ "utri;": "▵",
697
+ "Uuml;": "Ü",
698
+ "uuml;": "ü",
699
+ "vArr;": "⇕",
700
+ "varr;": "↕",
701
+ "Vbar;": "⫫",
702
+ "vBar;": "⫨",
703
+ "Vert;": "‖",
704
+ "vert;": "|",
705
+ "Vopf;": "𝕍",
706
+ "vopf;": "𝕧",
707
+ "Vscr;": "𝒱",
708
+ "vscr;": "𝓋",
709
+ "Wopf;": "𝕎",
710
+ "wopf;": "𝕨",
711
+ "Wscr;": "𝒲",
712
+ "wscr;": "𝓌",
713
+ "xcap;": "⋂",
714
+ "xcup;": "⋃",
715
+ "xmap;": "⟼",
716
+ "xnis;": "⋻",
717
+ "Xopf;": "𝕏",
718
+ "xopf;": "𝕩",
719
+ "Xscr;": "𝒳",
720
+ "xscr;": "𝓍",
721
+ "xvee;": "⋁",
722
+ "YAcy;": "Я",
723
+ "yacy;": "я",
724
+ "YIcy;": "Ї",
725
+ "yicy;": "ї",
726
+ "Yopf;": "𝕐",
727
+ "yopf;": "𝕪",
728
+ "Yscr;": "𝒴",
729
+ "yscr;": "𝓎",
730
+ "YUcy;": "Ю",
731
+ "yucy;": "ю",
732
+ "Yuml;": "Ÿ",
733
+ "yuml;": "ÿ",
734
+ "Zdot;": "Ż",
735
+ "zdot;": "ż",
736
+ "Zeta;": "Ζ",
737
+ "zeta;": "ζ",
738
+ "ZHcy;": "Ж",
739
+ "zhcy;": "ж",
740
+ "Zopf;": "ℤ",
741
+ "zopf;": "𝕫",
742
+ "Zscr;": "𝒵",
743
+ "zscr;": "𝓏",
744
+ "zwnj;": "‌",
745
+ Aacute: "Á",
746
+ aacute: "á",
747
+ "Acirc;": "Â",
748
+ "acirc;": "â",
749
+ "acute;": "´",
750
+ "AElig;": "Æ",
751
+ "aelig;": "æ",
752
+ Agrave: "À",
753
+ agrave: "à",
754
+ "aleph;": "ℵ",
755
+ "Alpha;": "Α",
756
+ "alpha;": "α",
757
+ "Amacr;": "Ā",
758
+ "amacr;": "ā",
759
+ "amalg;": "⨿",
760
+ "angle;": "∠",
761
+ "angrt;": "∟",
762
+ "angst;": "Å",
763
+ "Aogon;": "Ą",
764
+ "aogon;": "ą",
765
+ "Aring;": "Å",
766
+ "aring;": "å",
767
+ "asymp;": "≈",
768
+ Atilde: "Ã",
769
+ atilde: "ã",
770
+ "awint;": "⨑",
771
+ "bcong;": "≌",
772
+ "bdquo;": "„",
773
+ "bepsi;": "϶",
774
+ "blank;": "␣",
775
+ "blk12;": "▒",
776
+ "blk14;": "░",
777
+ "blk34;": "▓",
778
+ "block;": "█",
779
+ "boxDL;": "╗",
780
+ "boxDl;": "╖",
781
+ "boxdL;": "╕",
782
+ "boxdl;": "┐",
783
+ "boxDR;": "╔",
784
+ "boxDr;": "╓",
785
+ "boxdR;": "╒",
786
+ "boxdr;": "┌",
787
+ "boxHD;": "╦",
788
+ "boxHd;": "╤",
789
+ "boxhD;": "╥",
790
+ "boxhd;": "┬",
791
+ "boxHU;": "╩",
792
+ "boxHu;": "╧",
793
+ "boxhU;": "╨",
794
+ "boxhu;": "┴",
795
+ "boxUL;": "╝",
796
+ "boxUl;": "╜",
797
+ "boxuL;": "╛",
798
+ "boxul;": "┘",
799
+ "boxUR;": "╚",
800
+ "boxUr;": "╙",
801
+ "boxuR;": "╘",
802
+ "boxur;": "└",
803
+ "boxVH;": "╬",
804
+ "boxVh;": "╫",
805
+ "boxvH;": "╪",
806
+ "boxvh;": "┼",
807
+ "boxVL;": "╣",
808
+ "boxVl;": "╢",
809
+ "boxvL;": "╡",
810
+ "boxvl;": "┤",
811
+ "boxVR;": "╠",
812
+ "boxVr;": "╟",
813
+ "boxvR;": "╞",
814
+ "boxvr;": "├",
815
+ "Breve;": "˘",
816
+ "breve;": "˘",
817
+ brvbar: "¦",
818
+ "bsemi;": "⁏",
819
+ "bsime;": "⋍",
820
+ "bsolb;": "⧅",
821
+ "bumpE;": "⪮",
822
+ "bumpe;": "≏",
823
+ "caret;": "⁁",
824
+ "caron;": "ˇ",
825
+ "ccaps;": "⩍",
826
+ Ccedil: "Ç",
827
+ ccedil: "ç",
828
+ "Ccirc;": "Ĉ",
829
+ "ccirc;": "ĉ",
830
+ "ccups;": "⩌",
831
+ "cedil;": "¸",
832
+ "check;": "✓",
833
+ "clubs;": "♣",
834
+ "Colon;": "∷",
835
+ "colon;": ":",
836
+ "comma;": ",",
837
+ "crarr;": "↵",
838
+ "Cross;": "⨯",
839
+ "cross;": "✗",
840
+ "csube;": "⫑",
841
+ "csupe;": "⫒",
842
+ "ctdot;": "⋯",
843
+ "cuepr;": "⋞",
844
+ "cuesc;": "⋟",
845
+ "cupor;": "⩅",
846
+ curren: "¤",
847
+ "cuvee;": "⋎",
848
+ "cuwed;": "⋏",
849
+ "cwint;": "∱",
850
+ "Dashv;": "⫤",
851
+ "dashv;": "⊣",
852
+ "dblac;": "˝",
853
+ "ddarr;": "⇊",
854
+ "Delta;": "Δ",
855
+ "delta;": "δ",
856
+ "dharl;": "⇃",
857
+ "dharr;": "⇂",
858
+ "diams;": "♦",
859
+ "disin;": "⋲",
860
+ divide: "÷",
861
+ "doteq;": "≐",
862
+ "dtdot;": "⋱",
863
+ "dtrif;": "▾",
864
+ "duarr;": "⇵",
865
+ "duhar;": "⥯",
866
+ Eacute: "É",
867
+ eacute: "é",
868
+ "Ecirc;": "Ê",
869
+ "ecirc;": "ê",
870
+ "eDDot;": "⩷",
871
+ "efDot;": "≒",
872
+ Egrave: "È",
873
+ egrave: "è",
874
+ "Emacr;": "Ē",
875
+ "emacr;": "ē",
876
+ "empty;": "∅",
877
+ "Eogon;": "Ę",
878
+ "eogon;": "ę",
879
+ "eplus;": "⩱",
880
+ "epsiv;": "ϵ",
881
+ "eqsim;": "≂",
882
+ "Equal;": "⩵",
883
+ "equiv;": "≡",
884
+ "erarr;": "⥱",
885
+ "erDot;": "≓",
886
+ "esdot;": "≐",
887
+ "exist;": "∃",
888
+ "fflig;": "ff",
889
+ "filig;": "fi",
890
+ "fjlig;": "fj",
891
+ "fllig;": "fl",
892
+ "fltns;": "▱",
893
+ "forkv;": "⫙",
894
+ frac12: "½",
895
+ frac14: "¼",
896
+ frac34: "¾",
897
+ "frasl;": "⁄",
898
+ "frown;": "⌢",
899
+ "Gamma;": "Γ",
900
+ "gamma;": "γ",
901
+ "Gcirc;": "Ĝ",
902
+ "gcirc;": "ĝ",
903
+ "gescc;": "⪩",
904
+ "gimel;": "ℷ",
905
+ "gneqq;": "≩",
906
+ "gnsim;": "⋧",
907
+ "grave;": "`",
908
+ "gsime;": "⪎",
909
+ "gsiml;": "⪐",
910
+ "gtcir;": "⩺",
911
+ "gtdot;": "⋗",
912
+ "Hacek;": "ˇ",
913
+ "harrw;": "↭",
914
+ "Hcirc;": "Ĥ",
915
+ "hcirc;": "ĥ",
916
+ "hoarr;": "⇿",
917
+ Iacute: "Í",
918
+ iacute: "í",
919
+ "Icirc;": "Î",
920
+ "icirc;": "î",
921
+ "iexcl;": "¡",
922
+ Igrave: "Ì",
923
+ igrave: "ì",
924
+ "iiint;": "∭",
925
+ "iiota;": "℩",
926
+ "IJlig;": "IJ",
927
+ "ijlig;": "ij",
928
+ "Imacr;": "Ī",
929
+ "imacr;": "ī",
930
+ "image;": "ℑ",
931
+ "imath;": "ı",
932
+ "imped;": "Ƶ",
933
+ "infin;": "∞",
934
+ "Iogon;": "Į",
935
+ "iogon;": "į",
936
+ "iprod;": "⨼",
937
+ iquest: "¿",
938
+ "isinE;": "⋹",
939
+ "isins;": "⋴",
940
+ "isinv;": "∈",
941
+ "Iukcy;": "І",
942
+ "iukcy;": "і",
943
+ "Jcirc;": "Ĵ",
944
+ "jcirc;": "ĵ",
945
+ "jmath;": "ȷ",
946
+ "Jukcy;": "Є",
947
+ "jukcy;": "є",
948
+ "Kappa;": "Κ",
949
+ "kappa;": "κ",
950
+ "lAarr;": "⇚",
951
+ "langd;": "⦑",
952
+ "laquo;": "«",
953
+ "larrb;": "⇤",
954
+ "lates;": "⪭︀",
955
+ "lBarr;": "⤎",
956
+ "lbarr;": "⤌",
957
+ "lbbrk;": "❲",
958
+ "lbrke;": "⦋",
959
+ "lceil;": "⌈",
960
+ "ldquo;": "“",
961
+ "lescc;": "⪨",
962
+ "lhard;": "↽",
963
+ "lharu;": "↼",
964
+ "lhblk;": "▄",
965
+ "llarr;": "⇇",
966
+ "lltri;": "◺",
967
+ "lneqq;": "≨",
968
+ "lnsim;": "⋦",
969
+ "loang;": "⟬",
970
+ "loarr;": "⇽",
971
+ "lobrk;": "⟦",
972
+ "lopar;": "⦅",
973
+ "lrarr;": "⇆",
974
+ "lrhar;": "⇋",
975
+ "lrtri;": "⊿",
976
+ "lsime;": "⪍",
977
+ "lsimg;": "⪏",
978
+ "lsquo;": "‘",
979
+ "ltcir;": "⩹",
980
+ "ltdot;": "⋖",
981
+ "ltrie;": "⊴",
982
+ "ltrif;": "◂",
983
+ "mdash;": "—",
984
+ "mDDot;": "∺",
985
+ "micro;": "µ",
986
+ middot: "·",
987
+ "minus;": "−",
988
+ "mumap;": "⊸",
989
+ "nabla;": "∇",
990
+ "napid;": "≋̸",
991
+ "napos;": "ʼn",
992
+ "natur;": "♮",
993
+ "nbump;": "≎̸",
994
+ "ncong;": "≇",
995
+ "ndash;": "–",
996
+ "neArr;": "⇗",
997
+ "nearr;": "↗",
998
+ "nedot;": "≐̸",
999
+ "nesim;": "≂̸",
1000
+ "ngeqq;": "≧̸",
1001
+ "ngsim;": "≵",
1002
+ "nhArr;": "⇎",
1003
+ "nharr;": "↮",
1004
+ "nhpar;": "⫲",
1005
+ "nlArr;": "⇍",
1006
+ "nlarr;": "↚",
1007
+ "nleqq;": "≦̸",
1008
+ "nless;": "≮",
1009
+ "nlsim;": "≴",
1010
+ "nltri;": "⋪",
1011
+ "notin;": "∉",
1012
+ "notni;": "∌",
1013
+ "npart;": "∂̸",
1014
+ "nprec;": "⊀",
1015
+ "nrArr;": "⇏",
1016
+ "nrarr;": "↛",
1017
+ "nrtri;": "⋫",
1018
+ "nsime;": "≄",
1019
+ "nsmid;": "∤",
1020
+ "nspar;": "∦",
1021
+ "nsubE;": "⫅̸",
1022
+ "nsube;": "⊈",
1023
+ "nsucc;": "⊁",
1024
+ "nsupE;": "⫆̸",
1025
+ "nsupe;": "⊉",
1026
+ Ntilde: "Ñ",
1027
+ ntilde: "ñ",
1028
+ "numsp;": " ",
1029
+ "nvsim;": "∼⃒",
1030
+ "nwArr;": "⇖",
1031
+ "nwarr;": "↖",
1032
+ Oacute: "Ó",
1033
+ oacute: "ó",
1034
+ "Ocirc;": "Ô",
1035
+ "ocirc;": "ô",
1036
+ "odash;": "⊝",
1037
+ "OElig;": "Œ",
1038
+ "oelig;": "œ",
1039
+ "ofcir;": "⦿",
1040
+ Ograve: "Ò",
1041
+ ograve: "ò",
1042
+ "ohbar;": "⦵",
1043
+ "olarr;": "↺",
1044
+ "olcir;": "⦾",
1045
+ "oline;": "‾",
1046
+ "Omacr;": "Ō",
1047
+ "omacr;": "ō",
1048
+ "Omega;": "Ω",
1049
+ "omega;": "ω",
1050
+ "operp;": "⦹",
1051
+ "oplus;": "⊕",
1052
+ "orarr;": "↻",
1053
+ "order;": "ℴ",
1054
+ Oslash: "Ø",
1055
+ oslash: "ø",
1056
+ Otilde: "Õ",
1057
+ otilde: "õ",
1058
+ "ovbar;": "⌽",
1059
+ "parsl;": "⫽",
1060
+ "phone;": "☎",
1061
+ "plusb;": "⊞",
1062
+ "pluse;": "⩲",
1063
+ plusmn: "±",
1064
+ "pound;": "£",
1065
+ "prcue;": "≼",
1066
+ "Prime;": "″",
1067
+ "prime;": "′",
1068
+ "prnap;": "⪹",
1069
+ "prsim;": "≾",
1070
+ "quest;": "?",
1071
+ "rAarr;": "⇛",
1072
+ "radic;": "√",
1073
+ "rangd;": "⦒",
1074
+ "range;": "⦥",
1075
+ "raquo;": "»",
1076
+ "rarrb;": "⇥",
1077
+ "rarrc;": "⤳",
1078
+ "rarrw;": "↝",
1079
+ "ratio;": "∶",
1080
+ "RBarr;": "⤐",
1081
+ "rBarr;": "⤏",
1082
+ "rbarr;": "⤍",
1083
+ "rbbrk;": "❳",
1084
+ "rbrke;": "⦌",
1085
+ "rceil;": "⌉",
1086
+ "rdquo;": "”",
1087
+ "reals;": "ℝ",
1088
+ "rhard;": "⇁",
1089
+ "rharu;": "⇀",
1090
+ "rlarr;": "⇄",
1091
+ "rlhar;": "⇌",
1092
+ "rnmid;": "⫮",
1093
+ "roang;": "⟭",
1094
+ "roarr;": "⇾",
1095
+ "robrk;": "⟧",
1096
+ "ropar;": "⦆",
1097
+ "rrarr;": "⇉",
1098
+ "rsquo;": "’",
1099
+ "rtrie;": "⊵",
1100
+ "rtrif;": "▸",
1101
+ "sbquo;": "‚",
1102
+ "sccue;": "≽",
1103
+ "Scirc;": "Ŝ",
1104
+ "scirc;": "ŝ",
1105
+ "scnap;": "⪺",
1106
+ "scsim;": "≿",
1107
+ "sdotb;": "⊡",
1108
+ "sdote;": "⩦",
1109
+ "seArr;": "⇘",
1110
+ "searr;": "↘",
1111
+ "setmn;": "∖",
1112
+ "sharp;": "♯",
1113
+ "Sigma;": "Σ",
1114
+ "sigma;": "σ",
1115
+ "simeq;": "≃",
1116
+ "simgE;": "⪠",
1117
+ "simlE;": "⪟",
1118
+ "simne;": "≆",
1119
+ "slarr;": "←",
1120
+ "smile;": "⌣",
1121
+ "smtes;": "⪬︀",
1122
+ "sqcap;": "⊓",
1123
+ "sqcup;": "⊔",
1124
+ "sqsub;": "⊏",
1125
+ "sqsup;": "⊐",
1126
+ "srarr;": "→",
1127
+ "starf;": "★",
1128
+ "strns;": "¯",
1129
+ "subnE;": "⫋",
1130
+ "subne;": "⊊",
1131
+ "supnE;": "⫌",
1132
+ "supne;": "⊋",
1133
+ "swArr;": "⇙",
1134
+ "swarr;": "↙",
1135
+ "szlig;": "ß",
1136
+ "Theta;": "Θ",
1137
+ "theta;": "θ",
1138
+ "thkap;": "≈",
1139
+ "THORN;": "Þ",
1140
+ "thorn;": "þ",
1141
+ "Tilde;": "∼",
1142
+ "tilde;": "˜",
1143
+ "times;": "×",
1144
+ "TRADE;": "™",
1145
+ "trade;": "™",
1146
+ "trisb;": "⧍",
1147
+ "TSHcy;": "Ћ",
1148
+ "tshcy;": "ћ",
1149
+ "twixt;": "≬",
1150
+ Uacute: "Ú",
1151
+ uacute: "ú",
1152
+ "Ubrcy;": "Ў",
1153
+ "ubrcy;": "ў",
1154
+ "Ucirc;": "Û",
1155
+ "ucirc;": "û",
1156
+ "udarr;": "⇅",
1157
+ "udhar;": "⥮",
1158
+ Ugrave: "Ù",
1159
+ ugrave: "ù",
1160
+ "uharl;": "↿",
1161
+ "uharr;": "↾",
1162
+ "uhblk;": "▀",
1163
+ "ultri;": "◸",
1164
+ "Umacr;": "Ū",
1165
+ "umacr;": "ū",
1166
+ "Union;": "⋃",
1167
+ "Uogon;": "Ų",
1168
+ "uogon;": "ų",
1169
+ "uplus;": "⊎",
1170
+ "upsih;": "ϒ",
1171
+ "UpTee;": "⊥",
1172
+ "Uring;": "Ů",
1173
+ "uring;": "ů",
1174
+ "urtri;": "◹",
1175
+ "utdot;": "⋰",
1176
+ "utrif;": "▴",
1177
+ "uuarr;": "⇈",
1178
+ "varpi;": "ϖ",
1179
+ "vBarv;": "⫩",
1180
+ "VDash;": "⊫",
1181
+ "Vdash;": "⊩",
1182
+ "vDash;": "⊨",
1183
+ "vdash;": "⊢",
1184
+ "veeeq;": "≚",
1185
+ "vltri;": "⊲",
1186
+ "vnsub;": "⊂⃒",
1187
+ "vnsup;": "⊃⃒",
1188
+ "vprop;": "∝",
1189
+ "vrtri;": "⊳",
1190
+ "Wcirc;": "Ŵ",
1191
+ "wcirc;": "ŵ",
1192
+ "Wedge;": "⋀",
1193
+ "wedge;": "∧",
1194
+ "xcirc;": "◯",
1195
+ "xdtri;": "▽",
1196
+ "xhArr;": "⟺",
1197
+ "xharr;": "⟷",
1198
+ "xlArr;": "⟸",
1199
+ "xlarr;": "⟵",
1200
+ "xodot;": "⨀",
1201
+ "xrArr;": "⟹",
1202
+ "xrarr;": "⟶",
1203
+ "xutri;": "△",
1204
+ Yacute: "Ý",
1205
+ yacute: "ý",
1206
+ "Ycirc;": "Ŷ",
1207
+ "ycirc;": "ŷ",
1208
+ "Aacute;": "Á",
1209
+ "aacute;": "á",
1210
+ "Abreve;": "Ă",
1211
+ "abreve;": "ă",
1212
+ "Agrave;": "À",
1213
+ "agrave;": "à",
1214
+ "andand;": "⩕",
1215
+ "angmsd;": "∡",
1216
+ "angsph;": "∢",
1217
+ "apacir;": "⩯",
1218
+ "approx;": "≈",
1219
+ "Assign;": "≔",
1220
+ "Atilde;": "Ã",
1221
+ "atilde;": "ã",
1222
+ "barvee;": "⊽",
1223
+ "Barwed;": "⌆",
1224
+ "barwed;": "⌅",
1225
+ "becaus;": "∵",
1226
+ "bernou;": "ℬ",
1227
+ "bigcap;": "⋂",
1228
+ "bigcup;": "⋃",
1229
+ "bigvee;": "⋁",
1230
+ "bkarow;": "⤍",
1231
+ "bottom;": "⊥",
1232
+ "bowtie;": "⋈",
1233
+ "boxbox;": "⧉",
1234
+ "bprime;": "‵",
1235
+ "brvbar;": "¦",
1236
+ "bullet;": "•",
1237
+ "Bumpeq;": "≎",
1238
+ "bumpeq;": "≏",
1239
+ "Cacute;": "Ć",
1240
+ "cacute;": "ć",
1241
+ "capand;": "⩄",
1242
+ "capcap;": "⩋",
1243
+ "capcup;": "⩇",
1244
+ "capdot;": "⩀",
1245
+ "Ccaron;": "Č",
1246
+ "ccaron;": "č",
1247
+ "Ccedil;": "Ç",
1248
+ "ccedil;": "ç",
1249
+ "circeq;": "≗",
1250
+ "cirmid;": "⫯",
1251
+ "Colone;": "⩴",
1252
+ "colone;": "≔",
1253
+ "commat;": "@",
1254
+ "compfn;": "∘",
1255
+ "Conint;": "∯",
1256
+ "conint;": "∮",
1257
+ "coprod;": "∐",
1258
+ "copysr;": "℗",
1259
+ "cularr;": "↶",
1260
+ "CupCap;": "≍",
1261
+ "cupcap;": "⩆",
1262
+ "cupcup;": "⩊",
1263
+ "cupdot;": "⊍",
1264
+ "curarr;": "↷",
1265
+ "curren;": "¤",
1266
+ "cylcty;": "⌭",
1267
+ "Dagger;": "‡",
1268
+ "dagger;": "†",
1269
+ "daleth;": "ℸ",
1270
+ "Dcaron;": "Ď",
1271
+ "dcaron;": "ď",
1272
+ "dfisht;": "⥿",
1273
+ "divide;": "÷",
1274
+ "divonx;": "⋇",
1275
+ "dlcorn;": "⌞",
1276
+ "dlcrop;": "⌍",
1277
+ "dollar;": "$",
1278
+ "DotDot;": "⃜",
1279
+ "drcorn;": "⌟",
1280
+ "drcrop;": "⌌",
1281
+ "Dstrok;": "Đ",
1282
+ "dstrok;": "đ",
1283
+ "Eacute;": "É",
1284
+ "eacute;": "é",
1285
+ "easter;": "⩮",
1286
+ "Ecaron;": "Ě",
1287
+ "ecaron;": "ě",
1288
+ "ecolon;": "≕",
1289
+ "Egrave;": "È",
1290
+ "egrave;": "è",
1291
+ "egsdot;": "⪘",
1292
+ "elsdot;": "⪗",
1293
+ "emptyv;": "∅",
1294
+ "emsp13;": " ",
1295
+ "emsp14;": " ",
1296
+ "eparsl;": "⧣",
1297
+ "eqcirc;": "≖",
1298
+ "equals;": "=",
1299
+ "equest;": "≟",
1300
+ "Exists;": "∃",
1301
+ "female;": "♀",
1302
+ "ffilig;": "ffi",
1303
+ "ffllig;": "ffl",
1304
+ "ForAll;": "∀",
1305
+ "forall;": "∀",
1306
+ "frac12;": "½",
1307
+ "frac13;": "⅓",
1308
+ "frac14;": "¼",
1309
+ "frac15;": "⅕",
1310
+ "frac16;": "⅙",
1311
+ "frac18;": "⅛",
1312
+ "frac23;": "⅔",
1313
+ "frac25;": "⅖",
1314
+ "frac34;": "¾",
1315
+ "frac35;": "⅗",
1316
+ "frac38;": "⅜",
1317
+ "frac45;": "⅘",
1318
+ "frac56;": "⅚",
1319
+ "frac58;": "⅝",
1320
+ "frac78;": "⅞",
1321
+ "gacute;": "ǵ",
1322
+ "Gammad;": "Ϝ",
1323
+ "gammad;": "ϝ",
1324
+ "Gbreve;": "Ğ",
1325
+ "gbreve;": "ğ",
1326
+ "Gcedil;": "Ģ",
1327
+ "gesdot;": "⪀",
1328
+ "gesles;": "⪔",
1329
+ "gtlPar;": "⦕",
1330
+ "gtrarr;": "⥸",
1331
+ "gtrdot;": "⋗",
1332
+ "gtrsim;": "≳",
1333
+ "hairsp;": " ",
1334
+ "hamilt;": "ℋ",
1335
+ "HARDcy;": "Ъ",
1336
+ "hardcy;": "ъ",
1337
+ "hearts;": "♥",
1338
+ "hellip;": "…",
1339
+ "hercon;": "⊹",
1340
+ "homtht;": "∻",
1341
+ "horbar;": "―",
1342
+ "hslash;": "ℏ",
1343
+ "Hstrok;": "Ħ",
1344
+ "hstrok;": "ħ",
1345
+ "hybull;": "⁃",
1346
+ "hyphen;": "‐",
1347
+ "Iacute;": "Í",
1348
+ "iacute;": "í",
1349
+ "Igrave;": "Ì",
1350
+ "igrave;": "ì",
1351
+ "iiiint;": "⨌",
1352
+ "iinfin;": "⧜",
1353
+ "incare;": "℅",
1354
+ "inodot;": "ı",
1355
+ "intcal;": "⊺",
1356
+ "iquest;": "¿",
1357
+ "isinsv;": "⋳",
1358
+ "Itilde;": "Ĩ",
1359
+ "itilde;": "ĩ",
1360
+ "Jsercy;": "Ј",
1361
+ "jsercy;": "ј",
1362
+ "kappav;": "ϰ",
1363
+ "Kcedil;": "Ķ",
1364
+ "kcedil;": "ķ",
1365
+ "kgreen;": "ĸ",
1366
+ "Lacute;": "Ĺ",
1367
+ "lacute;": "ĺ",
1368
+ "lagran;": "ℒ",
1369
+ "Lambda;": "Λ",
1370
+ "lambda;": "λ",
1371
+ "langle;": "⟨",
1372
+ "larrfs;": "⤝",
1373
+ "larrhk;": "↩",
1374
+ "larrlp;": "↫",
1375
+ "larrpl;": "⤹",
1376
+ "larrtl;": "↢",
1377
+ "lAtail;": "⤛",
1378
+ "latail;": "⤙",
1379
+ "lbrace;": "{",
1380
+ "lbrack;": "[",
1381
+ "Lcaron;": "Ľ",
1382
+ "lcaron;": "ľ",
1383
+ "Lcedil;": "Ļ",
1384
+ "lcedil;": "ļ",
1385
+ "ldquor;": "„",
1386
+ "lesdot;": "⩿",
1387
+ "lesges;": "⪓",
1388
+ "lfisht;": "⥼",
1389
+ "lfloor;": "⌊",
1390
+ "lharul;": "⥪",
1391
+ "llhard;": "⥫",
1392
+ "Lmidot;": "Ŀ",
1393
+ "lmidot;": "ŀ",
1394
+ "lmoust;": "⎰",
1395
+ "loplus;": "⨭",
1396
+ "lowast;": "∗",
1397
+ "lowbar;": "_",
1398
+ "lparlt;": "⦓",
1399
+ "lrhard;": "⥭",
1400
+ "lsaquo;": "‹",
1401
+ "lsquor;": "‚",
1402
+ "Lstrok;": "Ł",
1403
+ "lstrok;": "ł",
1404
+ "lthree;": "⋋",
1405
+ "ltimes;": "⋉",
1406
+ "ltlarr;": "⥶",
1407
+ "ltrPar;": "⦖",
1408
+ "mapsto;": "↦",
1409
+ "marker;": "▮",
1410
+ "mcomma;": "⨩",
1411
+ "midast;": "*",
1412
+ "midcir;": "⫰",
1413
+ "middot;": "·",
1414
+ "minusb;": "⊟",
1415
+ "minusd;": "∸",
1416
+ "mnplus;": "∓",
1417
+ "models;": "⊧",
1418
+ "mstpos;": "∾",
1419
+ "Nacute;": "Ń",
1420
+ "nacute;": "ń",
1421
+ "nbumpe;": "≏̸",
1422
+ "Ncaron;": "Ň",
1423
+ "ncaron;": "ň",
1424
+ "Ncedil;": "Ņ",
1425
+ "ncedil;": "ņ",
1426
+ "nearhk;": "⤤",
1427
+ "nequiv;": "≢",
1428
+ "nesear;": "⤨",
1429
+ "nexist;": "∄",
1430
+ "nltrie;": "⋬",
1431
+ "notinE;": "⋹̸",
1432
+ "nparsl;": "⫽⃥",
1433
+ "nprcue;": "⋠",
1434
+ "nrarrc;": "⤳̸",
1435
+ "nrarrw;": "↝̸",
1436
+ "nrtrie;": "⋭",
1437
+ "nsccue;": "⋡",
1438
+ "nsimeq;": "≄",
1439
+ "Ntilde;": "Ñ",
1440
+ "ntilde;": "ñ",
1441
+ "numero;": "№",
1442
+ "nVDash;": "⊯",
1443
+ "nVdash;": "⊮",
1444
+ "nvDash;": "⊭",
1445
+ "nvdash;": "⊬",
1446
+ "nvHarr;": "⤄",
1447
+ "nvlArr;": "⤂",
1448
+ "nvrArr;": "⤃",
1449
+ "nwarhk;": "⤣",
1450
+ "nwnear;": "⤧",
1451
+ "Oacute;": "Ó",
1452
+ "oacute;": "ó",
1453
+ "Odblac;": "Ő",
1454
+ "odblac;": "ő",
1455
+ "odsold;": "⦼",
1456
+ "Ograve;": "Ò",
1457
+ "ograve;": "ò",
1458
+ "ominus;": "⊖",
1459
+ "origof;": "⊶",
1460
+ "Oslash;": "Ø",
1461
+ "oslash;": "ø",
1462
+ "Otilde;": "Õ",
1463
+ "otilde;": "õ",
1464
+ "Otimes;": "⨷",
1465
+ "otimes;": "⊗",
1466
+ "parsim;": "⫳",
1467
+ "percnt;": "%",
1468
+ "period;": ".",
1469
+ "permil;": "‰",
1470
+ "phmmat;": "ℳ",
1471
+ "planck;": "ℏ",
1472
+ "plankv;": "ℏ",
1473
+ "plusdo;": "∔",
1474
+ "plusdu;": "⨥",
1475
+ "plusmn;": "±",
1476
+ "preceq;": "⪯",
1477
+ "primes;": "ℙ",
1478
+ "prnsim;": "⋨",
1479
+ "propto;": "∝",
1480
+ "prurel;": "⊰",
1481
+ "puncsp;": " ",
1482
+ "qprime;": "⁗",
1483
+ "Racute;": "Ŕ",
1484
+ "racute;": "ŕ",
1485
+ "rangle;": "⟩",
1486
+ "rarrap;": "⥵",
1487
+ "rarrfs;": "⤞",
1488
+ "rarrhk;": "↪",
1489
+ "rarrlp;": "↬",
1490
+ "rarrpl;": "⥅",
1491
+ "Rarrtl;": "⤖",
1492
+ "rarrtl;": "↣",
1493
+ "rAtail;": "⤜",
1494
+ "ratail;": "⤚",
1495
+ "rbrace;": "}",
1496
+ "rbrack;": "]",
1497
+ "Rcaron;": "Ř",
1498
+ "rcaron;": "ř",
1499
+ "Rcedil;": "Ŗ",
1500
+ "rcedil;": "ŗ",
1501
+ "rdquor;": "”",
1502
+ "rfisht;": "⥽",
1503
+ "rfloor;": "⌋",
1504
+ "rharul;": "⥬",
1505
+ "rmoust;": "⎱",
1506
+ "roplus;": "⨮",
1507
+ "rpargt;": "⦔",
1508
+ "rsaquo;": "›",
1509
+ "rsquor;": "’",
1510
+ "rthree;": "⋌",
1511
+ "rtimes;": "⋊",
1512
+ "Sacute;": "Ś",
1513
+ "sacute;": "ś",
1514
+ "Scaron;": "Š",
1515
+ "scaron;": "š",
1516
+ "Scedil;": "Ş",
1517
+ "scedil;": "ş",
1518
+ "scnsim;": "⋩",
1519
+ "searhk;": "⤥",
1520
+ "seswar;": "⤩",
1521
+ "sfrown;": "⌢",
1522
+ "SHCHcy;": "Щ",
1523
+ "shchcy;": "щ",
1524
+ "sigmaf;": "ς",
1525
+ "sigmav;": "ς",
1526
+ "simdot;": "⩪",
1527
+ "smashp;": "⨳",
1528
+ "SOFTcy;": "Ь",
1529
+ "softcy;": "ь",
1530
+ "solbar;": "⌿",
1531
+ "spades;": "♠",
1532
+ "sqcaps;": "⊓︀",
1533
+ "sqcups;": "⊔︀",
1534
+ "sqsube;": "⊑",
1535
+ "sqsupe;": "⊒",
1536
+ "Square;": "□",
1537
+ "square;": "□",
1538
+ "squarf;": "▪",
1539
+ "ssetmn;": "∖",
1540
+ "ssmile;": "⌣",
1541
+ "sstarf;": "⋆",
1542
+ "subdot;": "⪽",
1543
+ "Subset;": "⋐",
1544
+ "subset;": "⊂",
1545
+ "subsim;": "⫇",
1546
+ "subsub;": "⫕",
1547
+ "subsup;": "⫓",
1548
+ "succeq;": "⪰",
1549
+ "supdot;": "⪾",
1550
+ "Supset;": "⋑",
1551
+ "supset;": "⊃",
1552
+ "supsim;": "⫈",
1553
+ "supsub;": "⫔",
1554
+ "supsup;": "⫖",
1555
+ "swarhk;": "⤦",
1556
+ "swnwar;": "⤪",
1557
+ "target;": "⌖",
1558
+ "Tcaron;": "Ť",
1559
+ "tcaron;": "ť",
1560
+ "Tcedil;": "Ţ",
1561
+ "tcedil;": "ţ",
1562
+ "telrec;": "⌕",
1563
+ "there4;": "∴",
1564
+ "thetav;": "ϑ",
1565
+ "thinsp;": " ",
1566
+ "thksim;": "∼",
1567
+ "timesb;": "⊠",
1568
+ "timesd;": "⨰",
1569
+ "topbot;": "⌶",
1570
+ "topcir;": "⫱",
1571
+ "tprime;": "‴",
1572
+ "tridot;": "◬",
1573
+ "Tstrok;": "Ŧ",
1574
+ "tstrok;": "ŧ",
1575
+ "Uacute;": "Ú",
1576
+ "uacute;": "ú",
1577
+ "Ubreve;": "Ŭ",
1578
+ "ubreve;": "ŭ",
1579
+ "Udblac;": "Ű",
1580
+ "udblac;": "ű",
1581
+ "ufisht;": "⥾",
1582
+ "Ugrave;": "Ù",
1583
+ "ugrave;": "ù",
1584
+ "ulcorn;": "⌜",
1585
+ "ulcrop;": "⌏",
1586
+ "urcorn;": "⌝",
1587
+ "urcrop;": "⌎",
1588
+ "Utilde;": "Ũ",
1589
+ "utilde;": "ũ",
1590
+ "vangrt;": "⦜",
1591
+ "varphi;": "ϕ",
1592
+ "varrho;": "ϱ",
1593
+ "Vdashl;": "⫦",
1594
+ "veebar;": "⊻",
1595
+ "vellip;": "⋮",
1596
+ "Verbar;": "‖",
1597
+ "verbar;": "|",
1598
+ "vsubnE;": "⫋︀",
1599
+ "vsubne;": "⊊︀",
1600
+ "vsupnE;": "⫌︀",
1601
+ "vsupne;": "⊋︀",
1602
+ "Vvdash;": "⊪",
1603
+ "wedbar;": "⩟",
1604
+ "wedgeq;": "≙",
1605
+ "weierp;": "℘",
1606
+ "wreath;": "≀",
1607
+ "xoplus;": "⨁",
1608
+ "xotime;": "⨂",
1609
+ "xsqcup;": "⨆",
1610
+ "xuplus;": "⨄",
1611
+ "xwedge;": "⋀",
1612
+ "Yacute;": "Ý",
1613
+ "yacute;": "ý",
1614
+ "Zacute;": "Ź",
1615
+ "zacute;": "ź",
1616
+ "Zcaron;": "Ž",
1617
+ "zcaron;": "ž",
1618
+ "zeetrf;": "ℨ",
1619
+ "alefsym;": "ℵ",
1620
+ "angrtvb;": "⊾",
1621
+ "angzarr;": "⍼",
1622
+ "asympeq;": "≍",
1623
+ "backsim;": "∽",
1624
+ "Because;": "∵",
1625
+ "because;": "∵",
1626
+ "bemptyv;": "⦰",
1627
+ "between;": "≬",
1628
+ "bigcirc;": "◯",
1629
+ "bigodot;": "⨀",
1630
+ "bigstar;": "★",
1631
+ "bnequiv;": "≡⃥",
1632
+ "boxplus;": "⊞",
1633
+ "Cayleys;": "ℭ",
1634
+ "Cconint;": "∰",
1635
+ "ccupssm;": "⩐",
1636
+ "Cedilla;": "¸",
1637
+ "cemptyv;": "⦲",
1638
+ "cirscir;": "⧂",
1639
+ "coloneq;": "≔",
1640
+ "congdot;": "⩭",
1641
+ "cudarrl;": "⤸",
1642
+ "cudarrr;": "⤵",
1643
+ "cularrp;": "⤽",
1644
+ "curarrm;": "⤼",
1645
+ "dbkarow;": "⤏",
1646
+ "ddagger;": "‡",
1647
+ "ddotseq;": "⩷",
1648
+ "demptyv;": "⦱",
1649
+ "Diamond;": "⋄",
1650
+ "diamond;": "⋄",
1651
+ "digamma;": "ϝ",
1652
+ "dotplus;": "∔",
1653
+ "DownTee;": "⊤",
1654
+ "dwangle;": "⦦",
1655
+ "Element;": "∈",
1656
+ "Epsilon;": "Ε",
1657
+ "epsilon;": "ε",
1658
+ "eqcolon;": "≕",
1659
+ "equivDD;": "⩸",
1660
+ "gesdoto;": "⪂",
1661
+ "gtquest;": "⩼",
1662
+ "gtrless;": "≷",
1663
+ "harrcir;": "⥈",
1664
+ "Implies;": "⇒",
1665
+ "intprod;": "⨼",
1666
+ "isindot;": "⋵",
1667
+ "larrbfs;": "⤟",
1668
+ "larrsim;": "⥳",
1669
+ "lbrksld;": "⦏",
1670
+ "lbrkslu;": "⦍",
1671
+ "ldrdhar;": "⥧",
1672
+ "LeftTee;": "⊣",
1673
+ "lesdoto;": "⪁",
1674
+ "lessdot;": "⋖",
1675
+ "lessgtr;": "≶",
1676
+ "lesssim;": "≲",
1677
+ "lotimes;": "⨴",
1678
+ "lozenge;": "◊",
1679
+ "ltquest;": "⩻",
1680
+ "luruhar;": "⥦",
1681
+ "maltese;": "✠",
1682
+ "minusdu;": "⨪",
1683
+ "napprox;": "≉",
1684
+ "natural;": "♮",
1685
+ "nearrow;": "↗",
1686
+ "NewLine;": "\n",
1687
+ "nexists;": "∄",
1688
+ "NoBreak;": "⁠",
1689
+ "notinva;": "∉",
1690
+ "notinvb;": "⋷",
1691
+ "notinvc;": "⋶",
1692
+ "NotLess;": "≮",
1693
+ "notniva;": "∌",
1694
+ "notnivb;": "⋾",
1695
+ "notnivc;": "⋽",
1696
+ "npolint;": "⨔",
1697
+ "npreceq;": "⪯̸",
1698
+ "nsqsube;": "⋢",
1699
+ "nsqsupe;": "⋣",
1700
+ "nsubset;": "⊂⃒",
1701
+ "nsucceq;": "⪰̸",
1702
+ "nsupset;": "⊃⃒",
1703
+ "nvinfin;": "⧞",
1704
+ "nvltrie;": "⊴⃒",
1705
+ "nvrtrie;": "⊵⃒",
1706
+ "nwarrow;": "↖",
1707
+ "olcross;": "⦻",
1708
+ "Omicron;": "Ο",
1709
+ "omicron;": "ο",
1710
+ "orderof;": "ℴ",
1711
+ "orslope;": "⩗",
1712
+ "OverBar;": "‾",
1713
+ "pertenk;": "‱",
1714
+ "planckh;": "ℎ",
1715
+ "pluscir;": "⨢",
1716
+ "plussim;": "⨦",
1717
+ "plustwo;": "⨧",
1718
+ "precsim;": "≾",
1719
+ "Product;": "∏",
1720
+ "quatint;": "⨖",
1721
+ "questeq;": "≟",
1722
+ "rarrbfs;": "⤠",
1723
+ "rarrsim;": "⥴",
1724
+ "rbrksld;": "⦎",
1725
+ "rbrkslu;": "⦐",
1726
+ "rdldhar;": "⥩",
1727
+ "realine;": "ℛ",
1728
+ "rotimes;": "⨵",
1729
+ "ruluhar;": "⥨",
1730
+ "searrow;": "↘",
1731
+ "simplus;": "⨤",
1732
+ "simrarr;": "⥲",
1733
+ "subedot;": "⫃",
1734
+ "submult;": "⫁",
1735
+ "subplus;": "⪿",
1736
+ "subrarr;": "⥹",
1737
+ "succsim;": "≿",
1738
+ "supdsub;": "⫘",
1739
+ "supedot;": "⫄",
1740
+ "suphsol;": "⟉",
1741
+ "suphsub;": "⫗",
1742
+ "suplarr;": "⥻",
1743
+ "supmult;": "⫂",
1744
+ "supplus;": "⫀",
1745
+ "swarrow;": "↙",
1746
+ "topfork;": "⫚",
1747
+ "triplus;": "⨹",
1748
+ "tritime;": "⨻",
1749
+ "UpArrow;": "↑",
1750
+ "Uparrow;": "⇑",
1751
+ "uparrow;": "↑",
1752
+ "Upsilon;": "Υ",
1753
+ "upsilon;": "υ",
1754
+ "uwangle;": "⦧",
1755
+ "vzigzag;": "⦚",
1756
+ "zigrarr;": "⇝",
1757
+ "andslope;": "⩘",
1758
+ "angmsdaa;": "⦨",
1759
+ "angmsdab;": "⦩",
1760
+ "angmsdac;": "⦪",
1761
+ "angmsdad;": "⦫",
1762
+ "angmsdae;": "⦬",
1763
+ "angmsdaf;": "⦭",
1764
+ "angmsdag;": "⦮",
1765
+ "angmsdah;": "⦯",
1766
+ "angrtvbd;": "⦝",
1767
+ "approxeq;": "≊",
1768
+ "awconint;": "∳",
1769
+ "backcong;": "≌",
1770
+ "barwedge;": "⌅",
1771
+ "bbrktbrk;": "⎶",
1772
+ "bigoplus;": "⨁",
1773
+ "bigsqcup;": "⨆",
1774
+ "biguplus;": "⨄",
1775
+ "bigwedge;": "⋀",
1776
+ "boxminus;": "⊟",
1777
+ "boxtimes;": "⊠",
1778
+ "bsolhsub;": "⟈",
1779
+ "capbrcup;": "⩉",
1780
+ "circledR;": "®",
1781
+ "circledS;": "Ⓢ",
1782
+ "cirfnint;": "⨐",
1783
+ "clubsuit;": "♣",
1784
+ "cupbrcap;": "⩈",
1785
+ "curlyvee;": "⋎",
1786
+ "cwconint;": "∲",
1787
+ "DDotrahd;": "⤑",
1788
+ "doteqdot;": "≑",
1789
+ "DotEqual;": "≐",
1790
+ "dotminus;": "∸",
1791
+ "drbkarow;": "⤐",
1792
+ "dzigrarr;": "⟿",
1793
+ "elinters;": "⏧",
1794
+ "emptyset;": "∅",
1795
+ "eqvparsl;": "⧥",
1796
+ "fpartint;": "⨍",
1797
+ "geqslant;": "⩾",
1798
+ "gesdotol;": "⪄",
1799
+ "gnapprox;": "⪊",
1800
+ "hksearow;": "⤥",
1801
+ "hkswarow;": "⤦",
1802
+ "imagline;": "ℐ",
1803
+ "imagpart;": "ℑ",
1804
+ "infintie;": "⧝",
1805
+ "integers;": "ℤ",
1806
+ "Integral;": "∫",
1807
+ "intercal;": "⊺",
1808
+ "intlarhk;": "⨗",
1809
+ "laemptyv;": "⦴",
1810
+ "ldrushar;": "⥋",
1811
+ "leqslant;": "⩽",
1812
+ "lesdotor;": "⪃",
1813
+ "LessLess;": "⪡",
1814
+ "llcorner;": "⌞",
1815
+ "lnapprox;": "⪉",
1816
+ "lrcorner;": "⌟",
1817
+ "lurdshar;": "⥊",
1818
+ "mapstoup;": "↥",
1819
+ "multimap;": "⊸",
1820
+ "naturals;": "ℕ",
1821
+ "ncongdot;": "⩭̸",
1822
+ "NotEqual;": "≠",
1823
+ "notindot;": "⋵̸",
1824
+ "NotTilde;": "≁",
1825
+ "otimesas;": "⨶",
1826
+ "parallel;": "∥",
1827
+ "PartialD;": "∂",
1828
+ "plusacir;": "⨣",
1829
+ "pointint;": "⨕",
1830
+ "Precedes;": "≺",
1831
+ "precneqq;": "⪵",
1832
+ "precnsim;": "⋨",
1833
+ "profalar;": "⌮",
1834
+ "profline;": "⌒",
1835
+ "profsurf;": "⌓",
1836
+ "raemptyv;": "⦳",
1837
+ "realpart;": "ℜ",
1838
+ "RightTee;": "⊢",
1839
+ "rppolint;": "⨒",
1840
+ "rtriltri;": "⧎",
1841
+ "scpolint;": "⨓",
1842
+ "setminus;": "∖",
1843
+ "shortmid;": "∣",
1844
+ "smeparsl;": "⧤",
1845
+ "sqsubset;": "⊏",
1846
+ "sqsupset;": "⊐",
1847
+ "subseteq;": "⊆",
1848
+ "Succeeds;": "≻",
1849
+ "succneqq;": "⪶",
1850
+ "succnsim;": "⋩",
1851
+ "SuchThat;": "∋",
1852
+ "Superset;": "⊃",
1853
+ "supseteq;": "⊇",
1854
+ "thetasym;": "ϑ",
1855
+ "thicksim;": "∼",
1856
+ "timesbar;": "⨱",
1857
+ "triangle;": "▵",
1858
+ "triminus;": "⨺",
1859
+ "trpezium;": "⏢",
1860
+ "Uarrocir;": "⥉",
1861
+ "ulcorner;": "⌜",
1862
+ "UnderBar;": "_",
1863
+ "urcorner;": "⌝",
1864
+ "varkappa;": "ϰ",
1865
+ "varsigma;": "ς",
1866
+ "vartheta;": "ϑ",
1867
+ "backprime;": "‵",
1868
+ "backsimeq;": "⋍",
1869
+ "Backslash;": "∖",
1870
+ "bigotimes;": "⨂",
1871
+ "CenterDot;": "·",
1872
+ "centerdot;": "·",
1873
+ "checkmark;": "✓",
1874
+ "CircleDot;": "⊙",
1875
+ "complexes;": "ℂ",
1876
+ "Congruent;": "≡",
1877
+ "Coproduct;": "∐",
1878
+ "dotsquare;": "⊡",
1879
+ "DoubleDot;": "¨",
1880
+ "DownArrow;": "↓",
1881
+ "Downarrow;": "⇓",
1882
+ "downarrow;": "↓",
1883
+ "DownBreve;": "̑",
1884
+ "gtrapprox;": "⪆",
1885
+ "gtreqless;": "⋛",
1886
+ "gvertneqq;": "≩︀",
1887
+ "heartsuit;": "♥",
1888
+ "HumpEqual;": "≏",
1889
+ "LeftArrow;": "←",
1890
+ "Leftarrow;": "⇐",
1891
+ "leftarrow;": "←",
1892
+ "LeftFloor;": "⌊",
1893
+ "lesseqgtr;": "⋚",
1894
+ "LessTilde;": "≲",
1895
+ "lvertneqq;": "≨︀",
1896
+ "Mellintrf;": "ℳ",
1897
+ "MinusPlus;": "∓",
1898
+ "ngeqslant;": "⩾̸",
1899
+ "nleqslant;": "⩽̸",
1900
+ "NotCupCap;": "≭",
1901
+ "NotExists;": "∄",
1902
+ "NotSubset;": "⊂⃒",
1903
+ "nparallel;": "∦",
1904
+ "nshortmid;": "∤",
1905
+ "nsubseteq;": "⊈",
1906
+ "nsupseteq;": "⊉",
1907
+ "OverBrace;": "⏞",
1908
+ "pitchfork;": "⋔",
1909
+ "PlusMinus;": "±",
1910
+ "rationals;": "ℚ",
1911
+ "spadesuit;": "♠",
1912
+ "subseteqq;": "⫅",
1913
+ "subsetneq;": "⊊",
1914
+ "supseteqq;": "⫆",
1915
+ "supsetneq;": "⊋",
1916
+ "Therefore;": "∴",
1917
+ "therefore;": "∴",
1918
+ "ThinSpace;": " ",
1919
+ "triangleq;": "≜",
1920
+ "TripleDot;": "⃛",
1921
+ "UnionPlus;": "⊎",
1922
+ "varpropto;": "∝",
1923
+ "Bernoullis;": "ℬ",
1924
+ "circledast;": "⊛",
1925
+ "CirclePlus;": "⊕",
1926
+ "complement;": "∁",
1927
+ "curlywedge;": "⋏",
1928
+ "eqslantgtr;": "⪖",
1929
+ "EqualTilde;": "≂",
1930
+ "Fouriertrf;": "ℱ",
1931
+ "gtreqqless;": "⪌",
1932
+ "ImaginaryI;": "ⅈ",
1933
+ "Laplacetrf;": "ℒ",
1934
+ "LeftVector;": "↼",
1935
+ "lessapprox;": "⪅",
1936
+ "lesseqqgtr;": "⪋",
1937
+ "Lleftarrow;": "⇚",
1938
+ "lmoustache;": "⎰",
1939
+ "longmapsto;": "⟼",
1940
+ "mapstodown;": "↧",
1941
+ "mapstoleft;": "↤",
1942
+ "nLeftarrow;": "⇍",
1943
+ "nleftarrow;": "↚",
1944
+ "NotElement;": "∉",
1945
+ "NotGreater;": "≯",
1946
+ "nsubseteqq;": "⫅̸",
1947
+ "nsupseteqq;": "⫆̸",
1948
+ "precapprox;": "⪷",
1949
+ "Proportion;": "∷",
1950
+ "RightArrow;": "→",
1951
+ "Rightarrow;": "⇒",
1952
+ "rightarrow;": "→",
1953
+ "RightFloor;": "⌋",
1954
+ "rmoustache;": "⎱",
1955
+ "sqsubseteq;": "⊑",
1956
+ "sqsupseteq;": "⊒",
1957
+ "subsetneqq;": "⫋",
1958
+ "succapprox;": "⪸",
1959
+ "supsetneqq;": "⫌",
1960
+ "ThickSpace;": "  ",
1961
+ "TildeEqual;": "≃",
1962
+ "TildeTilde;": "≈",
1963
+ "UnderBrace;": "⏟",
1964
+ "UpArrowBar;": "⤒",
1965
+ "UpTeeArrow;": "↥",
1966
+ "upuparrows;": "⇈",
1967
+ "varepsilon;": "ϵ",
1968
+ "varnothing;": "∅",
1969
+ "backepsilon;": "϶",
1970
+ "blacksquare;": "▪",
1971
+ "circledcirc;": "⊚",
1972
+ "circleddash;": "⊝",
1973
+ "CircleMinus;": "⊖",
1974
+ "CircleTimes;": "⊗",
1975
+ "curlyeqprec;": "⋞",
1976
+ "curlyeqsucc;": "⋟",
1977
+ "diamondsuit;": "♦",
1978
+ "eqslantless;": "⪕",
1979
+ "Equilibrium;": "⇌",
1980
+ "expectation;": "ℰ",
1981
+ "GreaterLess;": "≷",
1982
+ "LeftCeiling;": "⌈",
1983
+ "LessGreater;": "≶",
1984
+ "MediumSpace;": " ",
1985
+ "NotLessLess;": "≪̸",
1986
+ "NotPrecedes;": "⊀",
1987
+ "NotSucceeds;": "⊁",
1988
+ "NotSuperset;": "⊃⃒",
1989
+ "nRightarrow;": "⇏",
1990
+ "nrightarrow;": "↛",
1991
+ "OverBracket;": "⎴",
1992
+ "preccurlyeq;": "≼",
1993
+ "precnapprox;": "⪹",
1994
+ "quaternions;": "ℍ",
1995
+ "RightVector;": "⇀",
1996
+ "Rrightarrow;": "⇛",
1997
+ "RuleDelayed;": "⧴",
1998
+ "SmallCircle;": "∘",
1999
+ "SquareUnion;": "⊔",
2000
+ "straightphi;": "ϕ",
2001
+ "SubsetEqual;": "⊆",
2002
+ "succcurlyeq;": "≽",
2003
+ "succnapprox;": "⪺",
2004
+ "thickapprox;": "≈",
2005
+ "UpDownArrow;": "↕",
2006
+ "Updownarrow;": "⇕",
2007
+ "updownarrow;": "↕",
2008
+ "VerticalBar;": "∣",
2009
+ "blacklozenge;": "⧫",
2010
+ "DownArrowBar;": "⤓",
2011
+ "DownTeeArrow;": "↧",
2012
+ "ExponentialE;": "ⅇ",
2013
+ "exponentiale;": "ⅇ",
2014
+ "GreaterEqual;": "≥",
2015
+ "GreaterTilde;": "≳",
2016
+ "HilbertSpace;": "ℋ",
2017
+ "HumpDownHump;": "≎",
2018
+ "Intersection;": "⋂",
2019
+ "LeftArrowBar;": "⇤",
2020
+ "LeftTeeArrow;": "↤",
2021
+ "LeftTriangle;": "⊲",
2022
+ "LeftUpVector;": "↿",
2023
+ "NotCongruent;": "≢",
2024
+ "NotHumpEqual;": "≏̸",
2025
+ "NotLessEqual;": "≰",
2026
+ "NotLessTilde;": "≴",
2027
+ "Proportional;": "∝",
2028
+ "RightCeiling;": "⌉",
2029
+ "risingdotseq;": "≓",
2030
+ "RoundImplies;": "⥰",
2031
+ "ShortUpArrow;": "↑",
2032
+ "SquareSubset;": "⊏",
2033
+ "triangledown;": "▿",
2034
+ "triangleleft;": "◃",
2035
+ "UnderBracket;": "⎵",
2036
+ "varsubsetneq;": "⊊︀",
2037
+ "varsupsetneq;": "⊋︀",
2038
+ "VerticalLine;": "|",
2039
+ "ApplyFunction;": "⁡",
2040
+ "bigtriangleup;": "△",
2041
+ "blacktriangle;": "▴",
2042
+ "DifferentialD;": "ⅆ",
2043
+ "divideontimes;": "⋇",
2044
+ "DoubleLeftTee;": "⫤",
2045
+ "DoubleUpArrow;": "⇑",
2046
+ "fallingdotseq;": "≒",
2047
+ "hookleftarrow;": "↩",
2048
+ "leftarrowtail;": "↢",
2049
+ "leftharpoonup;": "↼",
2050
+ "LeftTeeVector;": "⥚",
2051
+ "LeftVectorBar;": "⥒",
2052
+ "LessFullEqual;": "≦",
2053
+ "LongLeftArrow;": "⟵",
2054
+ "Longleftarrow;": "⟸",
2055
+ "longleftarrow;": "⟵",
2056
+ "looparrowleft;": "↫",
2057
+ "measuredangle;": "∡",
2058
+ "NotEqualTilde;": "≂̸",
2059
+ "NotTildeEqual;": "≄",
2060
+ "NotTildeTilde;": "≉",
2061
+ "ntriangleleft;": "⋪",
2062
+ "Poincareplane;": "ℌ",
2063
+ "PrecedesEqual;": "⪯",
2064
+ "PrecedesTilde;": "≾",
2065
+ "RightArrowBar;": "⇥",
2066
+ "RightTeeArrow;": "↦",
2067
+ "RightTriangle;": "⊳",
2068
+ "RightUpVector;": "↾",
2069
+ "shortparallel;": "∥",
2070
+ "smallsetminus;": "∖",
2071
+ "SucceedsEqual;": "⪰",
2072
+ "SucceedsTilde;": "≿",
2073
+ "SupersetEqual;": "⊇",
2074
+ "triangleright;": "▹",
2075
+ "UpEquilibrium;": "⥮",
2076
+ "upharpoonleft;": "↿",
2077
+ "varsubsetneqq;": "⫋︀",
2078
+ "varsupsetneqq;": "⫌︀",
2079
+ "VerticalTilde;": "≀",
2080
+ "VeryThinSpace;": " ",
2081
+ "curvearrowleft;": "↶",
2082
+ "DiacriticalDot;": "˙",
2083
+ "doublebarwedge;": "⌆",
2084
+ "DoubleRightTee;": "⊨",
2085
+ "downdownarrows;": "⇊",
2086
+ "DownLeftVector;": "↽",
2087
+ "GreaterGreater;": "⪢",
2088
+ "hookrightarrow;": "↪",
2089
+ "HorizontalLine;": "─",
2090
+ "InvisibleComma;": "⁣",
2091
+ "InvisibleTimes;": "⁢",
2092
+ "LeftDownVector;": "⇃",
2093
+ "leftleftarrows;": "⇇",
2094
+ "LeftRightArrow;": "↔",
2095
+ "Leftrightarrow;": "⇔",
2096
+ "leftrightarrow;": "↔",
2097
+ "leftthreetimes;": "⋋",
2098
+ "LessSlantEqual;": "⩽",
2099
+ "LongRightArrow;": "⟶",
2100
+ "Longrightarrow;": "⟹",
2101
+ "longrightarrow;": "⟶",
2102
+ "looparrowright;": "↬",
2103
+ "LowerLeftArrow;": "↙",
2104
+ "NestedLessLess;": "≪",
2105
+ "NotGreaterLess;": "≹",
2106
+ "NotLessGreater;": "≸",
2107
+ "NotSubsetEqual;": "⊈",
2108
+ "NotVerticalBar;": "∤",
2109
+ "nshortparallel;": "∦",
2110
+ "ntriangleright;": "⋫",
2111
+ "OpenCurlyQuote;": "‘",
2112
+ "ReverseElement;": "∋",
2113
+ "rightarrowtail;": "↣",
2114
+ "rightharpoonup;": "⇀",
2115
+ "RightTeeVector;": "⥛",
2116
+ "RightVectorBar;": "⥓",
2117
+ "ShortDownArrow;": "↓",
2118
+ "ShortLeftArrow;": "←",
2119
+ "SquareSuperset;": "⊐",
2120
+ "TildeFullEqual;": "≅",
2121
+ "trianglelefteq;": "⊴",
2122
+ "upharpoonright;": "↾",
2123
+ "UpperLeftArrow;": "↖",
2124
+ "ZeroWidthSpace;": "​",
2125
+ "bigtriangledown;": "▽",
2126
+ "circlearrowleft;": "↺",
2127
+ "CloseCurlyQuote;": "’",
2128
+ "ContourIntegral;": "∮",
2129
+ "curvearrowright;": "↷",
2130
+ "DoubleDownArrow;": "⇓",
2131
+ "DoubleLeftArrow;": "⇐",
2132
+ "downharpoonleft;": "⇃",
2133
+ "DownRightVector;": "⇁",
2134
+ "leftharpoondown;": "↽",
2135
+ "leftrightarrows;": "⇆",
2136
+ "LeftRightVector;": "⥎",
2137
+ "LeftTriangleBar;": "⧏",
2138
+ "LeftUpTeeVector;": "⥠",
2139
+ "LeftUpVectorBar;": "⥘",
2140
+ "LowerRightArrow;": "↘",
2141
+ "nLeftrightarrow;": "⇎",
2142
+ "nleftrightarrow;": "↮",
2143
+ "NotGreaterEqual;": "≱",
2144
+ "NotGreaterTilde;": "≵",
2145
+ "NotHumpDownHump;": "≎̸",
2146
+ "NotLeftTriangle;": "⋪",
2147
+ "NotSquareSubset;": "⊏̸",
2148
+ "ntrianglelefteq;": "⋬",
2149
+ "OverParenthesis;": "⏜",
2150
+ "RightDownVector;": "⇂",
2151
+ "rightleftarrows;": "⇄",
2152
+ "rightsquigarrow;": "↝",
2153
+ "rightthreetimes;": "⋌",
2154
+ "ShortRightArrow;": "→",
2155
+ "straightepsilon;": "ϵ",
2156
+ "trianglerighteq;": "⊵",
2157
+ "UpperRightArrow;": "↗",
2158
+ "vartriangleleft;": "⊲",
2159
+ "circlearrowright;": "↻",
2160
+ "DiacriticalAcute;": "´",
2161
+ "DiacriticalGrave;": "`",
2162
+ "DiacriticalTilde;": "˜",
2163
+ "DoubleRightArrow;": "⇒",
2164
+ "DownArrowUpArrow;": "⇵",
2165
+ "downharpoonright;": "⇂",
2166
+ "EmptySmallSquare;": "◻",
2167
+ "GreaterEqualLess;": "⋛",
2168
+ "GreaterFullEqual;": "≧",
2169
+ "LeftAngleBracket;": "⟨",
2170
+ "LeftUpDownVector;": "⥑",
2171
+ "LessEqualGreater;": "⋚",
2172
+ "NonBreakingSpace;": " ",
2173
+ "NotPrecedesEqual;": "⪯̸",
2174
+ "NotRightTriangle;": "⋫",
2175
+ "NotSucceedsEqual;": "⪰̸",
2176
+ "NotSucceedsTilde;": "≿̸",
2177
+ "NotSupersetEqual;": "⊉",
2178
+ "ntrianglerighteq;": "⋭",
2179
+ "rightharpoondown;": "⇁",
2180
+ "rightrightarrows;": "⇉",
2181
+ "RightTriangleBar;": "⧐",
2182
+ "RightUpTeeVector;": "⥜",
2183
+ "RightUpVectorBar;": "⥔",
2184
+ "twoheadleftarrow;": "↞",
2185
+ "UnderParenthesis;": "⏝",
2186
+ "UpArrowDownArrow;": "⇅",
2187
+ "vartriangleright;": "⊳",
2188
+ "blacktriangledown;": "▾",
2189
+ "blacktriangleleft;": "◂",
2190
+ "DoubleUpDownArrow;": "⇕",
2191
+ "DoubleVerticalBar;": "∥",
2192
+ "DownLeftTeeVector;": "⥞",
2193
+ "DownLeftVectorBar;": "⥖",
2194
+ "FilledSmallSquare;": "◼",
2195
+ "GreaterSlantEqual;": "⩾",
2196
+ "LeftDoubleBracket;": "⟦",
2197
+ "LeftDownTeeVector;": "⥡",
2198
+ "LeftDownVectorBar;": "⥙",
2199
+ "leftrightharpoons;": "⇋",
2200
+ "LeftTriangleEqual;": "⊴",
2201
+ "NegativeThinSpace;": "​",
2202
+ "NotGreaterGreater;": "≫̸",
2203
+ "NotLessSlantEqual;": "⩽̸",
2204
+ "NotNestedLessLess;": "⪡̸",
2205
+ "NotReverseElement;": "∌",
2206
+ "NotSquareSuperset;": "⊐̸",
2207
+ "NotTildeFullEqual;": "≇",
2208
+ "RightAngleBracket;": "⟩",
2209
+ "rightleftharpoons;": "⇌",
2210
+ "RightUpDownVector;": "⥏",
2211
+ "SquareSubsetEqual;": "⊑",
2212
+ "twoheadrightarrow;": "↠",
2213
+ "VerticalSeparator;": "❘",
2214
+ "blacktriangleright;": "▸",
2215
+ "DownRightTeeVector;": "⥟",
2216
+ "DownRightVectorBar;": "⥗",
2217
+ "LongLeftRightArrow;": "⟷",
2218
+ "Longleftrightarrow;": "⟺",
2219
+ "longleftrightarrow;": "⟷",
2220
+ "NegativeThickSpace;": "​",
2221
+ "NotLeftTriangleBar;": "⧏̸",
2222
+ "PrecedesSlantEqual;": "≼",
2223
+ "ReverseEquilibrium;": "⇋",
2224
+ "RightDoubleBracket;": "⟧",
2225
+ "RightDownTeeVector;": "⥝",
2226
+ "RightDownVectorBar;": "⥕",
2227
+ "RightTriangleEqual;": "⊵",
2228
+ "SquareIntersection;": "⊓",
2229
+ "SucceedsSlantEqual;": "≽",
2230
+ "DoubleLongLeftArrow;": "⟸",
2231
+ "DownLeftRightVector;": "⥐",
2232
+ "LeftArrowRightArrow;": "⇆",
2233
+ "leftrightsquigarrow;": "↭",
2234
+ "NegativeMediumSpace;": "​",
2235
+ "NotGreaterFullEqual;": "≧̸",
2236
+ "NotRightTriangleBar;": "⧐̸",
2237
+ "RightArrowLeftArrow;": "⇄",
2238
+ "SquareSupersetEqual;": "⊒",
2239
+ "CapitalDifferentialD;": "ⅅ",
2240
+ "DoubleLeftRightArrow;": "⇔",
2241
+ "DoubleLongRightArrow;": "⟹",
2242
+ "EmptyVerySmallSquare;": "▫",
2243
+ "NestedGreaterGreater;": "≫",
2244
+ "NotDoubleVerticalBar;": "∦",
2245
+ "NotGreaterSlantEqual;": "⩾̸",
2246
+ "NotLeftTriangleEqual;": "⋬",
2247
+ "NotSquareSubsetEqual;": "⋢",
2248
+ "OpenCurlyDoubleQuote;": "“",
2249
+ "ReverseUpEquilibrium;": "⥯",
2250
+ "CloseCurlyDoubleQuote;": "”",
2251
+ "DoubleContourIntegral;": "∯",
2252
+ "FilledVerySmallSquare;": "▪",
2253
+ "NegativeVeryThinSpace;": "​",
2254
+ "NotPrecedesSlantEqual;": "⋠",
2255
+ "NotRightTriangleEqual;": "⋭",
2256
+ "NotSucceedsSlantEqual;": "⋡",
2257
+ "DiacriticalDoubleAcute;": "˝",
2258
+ "NotSquareSupersetEqual;": "⋣",
2259
+ "NotNestedGreaterGreater;": "⪢̸",
2260
+ "ClockwiseContourIntegral;": "∲",
2261
+ "DoubleLongLeftRightArrow;": "⟺",
2262
+ "CounterClockwiseContourIntegral;": "∳"
2263
+ };
2264
+
2265
+ // lazy compute this to make this file tree-shakable for browser
2266
+ let maxCRNameLength;
2267
+ const decodeHtml = (rawText, asAttr) => {
2268
+ let offset = 0;
2269
+ const end = rawText.length;
2270
+ let decodedText = '';
2271
+ function advance(length) {
2272
+ offset += length;
2273
+ rawText = rawText.slice(length);
2274
+ }
2275
+ while (offset < end) {
2276
+ const head = /&(?:#x?)?/i.exec(rawText);
2277
+ if (!head || offset + head.index >= end) {
2278
+ const remaining = end - offset;
2279
+ decodedText += rawText.slice(0, remaining);
2280
+ advance(remaining);
2281
+ break;
2282
+ }
2283
+ // Advance to the "&".
2284
+ decodedText += rawText.slice(0, head.index);
2285
+ advance(head.index);
2286
+ if (head[0] === '&') {
2287
+ // Named character reference.
2288
+ let name = '';
2289
+ let value = undefined;
2290
+ if (/[0-9a-z]/i.test(rawText[1])) {
2291
+ if (!maxCRNameLength) {
2292
+ maxCRNameLength = Object.keys(namedCharacterReferences).reduce((max, name) => Math.max(max, name.length), 0);
2293
+ }
2294
+ for (let length = maxCRNameLength; !value && length > 0; --length) {
2295
+ name = rawText.slice(1, 1 + length);
2296
+ value = namedCharacterReferences[name];
2297
+ }
2298
+ if (value) {
2299
+ const semi = name.endsWith(';');
2300
+ if (asAttr &&
2301
+ !semi &&
2302
+ /[=a-z0-9]/i.test(rawText[name.length + 1] || '')) {
2303
+ decodedText += '&' + name;
2304
+ advance(1 + name.length);
2305
+ }
2306
+ else {
2307
+ decodedText += value;
2308
+ advance(1 + name.length);
2309
+ }
2310
+ }
2311
+ else {
2312
+ decodedText += '&' + name;
2313
+ advance(1 + name.length);
2314
+ }
2315
+ }
2316
+ else {
2317
+ decodedText += '&';
2318
+ advance(1);
2319
+ }
2320
+ }
2321
+ else {
2322
+ // Numeric character reference.
2323
+ const hex = head[0] === '&#x';
2324
+ const pattern = hex ? /^&#x([0-9a-f]+);?/i : /^&#([0-9]+);?/;
2325
+ const body = pattern.exec(rawText);
2326
+ if (!body) {
2327
+ decodedText += head[0];
2328
+ advance(head[0].length);
2329
+ }
2330
+ else {
2331
+ // https://html.spec.whatwg.org/multipage/parsing.html#numeric-character-reference-end-state
2332
+ let cp = Number.parseInt(body[1], hex ? 16 : 10);
2333
+ if (cp === 0) {
2334
+ cp = 0xfffd;
2335
+ }
2336
+ else if (cp > 0x10ffff) {
2337
+ cp = 0xfffd;
2338
+ }
2339
+ else if (cp >= 0xd800 && cp <= 0xdfff) {
2340
+ cp = 0xfffd;
2341
+ }
2342
+ else if ((cp >= 0xfdd0 && cp <= 0xfdef) || (cp & 0xfffe) === 0xfffe) ;
2343
+ else if ((cp >= 0x01 && cp <= 0x08) ||
2344
+ cp === 0x0b ||
2345
+ (cp >= 0x0d && cp <= 0x1f) ||
2346
+ (cp >= 0x7f && cp <= 0x9f)) {
2347
+ cp = CCR_REPLACEMENTS[cp] || cp;
2348
+ }
2349
+ decodedText += String.fromCodePoint(cp);
2350
+ advance(body[0].length);
2351
+ }
2352
+ }
2353
+ }
2354
+ return decodedText;
2355
+ };
2356
+ // https://html.spec.whatwg.org/multipage/parsing.html#numeric-character-reference-end-state
2357
+ const CCR_REPLACEMENTS = {
2358
+ 0x80: 0x20ac,
2359
+ 0x82: 0x201a,
2360
+ 0x83: 0x0192,
2361
+ 0x84: 0x201e,
2362
+ 0x85: 0x2026,
2363
+ 0x86: 0x2020,
2364
+ 0x87: 0x2021,
2365
+ 0x88: 0x02c6,
2366
+ 0x89: 0x2030,
2367
+ 0x8a: 0x0160,
2368
+ 0x8b: 0x2039,
2369
+ 0x8c: 0x0152,
2370
+ 0x8e: 0x017d,
2371
+ 0x91: 0x2018,
2372
+ 0x92: 0x2019,
2373
+ 0x93: 0x201c,
2374
+ 0x94: 0x201d,
2375
+ 0x95: 0x2022,
2376
+ 0x96: 0x2013,
2377
+ 0x97: 0x2014,
2378
+ 0x98: 0x02dc,
2379
+ 0x99: 0x2122,
2380
+ 0x9a: 0x0161,
2381
+ 0x9b: 0x203a,
2382
+ 0x9c: 0x0153,
2383
+ 0x9e: 0x017e,
2384
+ 0x9f: 0x0178
2385
+ };
2386
+
2387
+ const isRawTextContainer = /*#__PURE__*/ shared.makeMap('style,iframe,script,noscript', true);
2388
+ const parserOptions = {
2389
+ isVoidTag: shared.isVoidTag,
2390
+ isNativeTag: tag => shared.isHTMLTag(tag) || shared.isSVGTag(tag),
2391
+ isPreTag: tag => tag === 'pre',
2392
+ decodeEntities: decodeHtml,
2393
+ isBuiltInComponent: (tag) => {
2394
+ if (compilerCore.isBuiltInType(tag, `Transition`)) {
2395
+ return TRANSITION;
2396
+ }
2397
+ else if (compilerCore.isBuiltInType(tag, `TransitionGroup`)) {
2398
+ return TRANSITION_GROUP;
2399
+ }
2400
+ },
2401
+ // https://html.spec.whatwg.org/multipage/parsing.html#tree-construction-dispatcher
2402
+ getNamespace(tag, parent) {
2403
+ let ns = parent ? parent.ns : 0 /* DOMNamespaces.HTML */;
2404
+ if (parent && ns === 2 /* DOMNamespaces.MATH_ML */) {
2405
+ if (parent.tag === 'annotation-xml') {
2406
+ if (tag === 'svg') {
2407
+ return 1 /* DOMNamespaces.SVG */;
2408
+ }
2409
+ if (parent.props.some(a => a.type === 6 /* NodeTypes.ATTRIBUTE */ &&
2410
+ a.name === 'encoding' &&
2411
+ a.value != null &&
2412
+ (a.value.content === 'text/html' ||
2413
+ a.value.content === 'application/xhtml+xml'))) {
2414
+ ns = 0 /* DOMNamespaces.HTML */;
2415
+ }
2416
+ }
2417
+ else if (/^m(?:[ions]|text)$/.test(parent.tag) &&
2418
+ tag !== 'mglyph' &&
2419
+ tag !== 'malignmark') {
2420
+ ns = 0 /* DOMNamespaces.HTML */;
2421
+ }
2422
+ }
2423
+ else if (parent && ns === 1 /* DOMNamespaces.SVG */) {
2424
+ if (parent.tag === 'foreignObject' ||
2425
+ parent.tag === 'desc' ||
2426
+ parent.tag === 'title') {
2427
+ ns = 0 /* DOMNamespaces.HTML */;
2428
+ }
2429
+ }
2430
+ if (ns === 0 /* DOMNamespaces.HTML */) {
2431
+ if (tag === 'svg') {
2432
+ return 1 /* DOMNamespaces.SVG */;
2433
+ }
2434
+ if (tag === 'math') {
2435
+ return 2 /* DOMNamespaces.MATH_ML */;
2436
+ }
2437
+ }
2438
+ return ns;
2439
+ },
2440
+ // https://html.spec.whatwg.org/multipage/parsing.html#parsing-html-fragments
2441
+ getTextMode({ tag, ns }) {
2442
+ if (ns === 0 /* DOMNamespaces.HTML */) {
2443
+ if (tag === 'textarea' || tag === 'title') {
2444
+ return 1 /* TextModes.RCDATA */;
2445
+ }
2446
+ if (isRawTextContainer(tag)) {
2447
+ return 2 /* TextModes.RAWTEXT */;
2448
+ }
2449
+ }
2450
+ return 0 /* TextModes.DATA */;
2451
+ }
2452
+ };
2453
+
2454
+ // Parse inline CSS strings for static style attributes into an object.
2455
+ // This is a NodeTransform since it works on the static `style` attribute and
2456
+ // converts it into a dynamic equivalent:
2457
+ // style="color: red" -> :style='{ "color": "red" }'
2458
+ // It is then processed by `transformElement` and included in the generated
2459
+ // props.
2460
+ const transformStyle = node => {
2461
+ if (node.type === 1 /* NodeTypes.ELEMENT */) {
2462
+ node.props.forEach((p, i) => {
2463
+ if (p.type === 6 /* NodeTypes.ATTRIBUTE */ && p.name === 'style' && p.value) {
2464
+ // replace p with an expression node
2465
+ node.props[i] = {
2466
+ type: 7 /* NodeTypes.DIRECTIVE */,
2467
+ name: `bind`,
2468
+ arg: compilerCore.createSimpleExpression(`style`, true, p.loc),
2469
+ exp: parseInlineCSS(p.value.content, p.loc),
2470
+ modifiers: [],
2471
+ loc: p.loc
2472
+ };
2473
+ }
2474
+ });
2475
+ }
2476
+ };
2477
+ const parseInlineCSS = (cssText, loc) => {
2478
+ const normalized = shared.parseStringStyle(cssText);
2479
+ return compilerCore.createSimpleExpression(JSON.stringify(normalized), false, loc, 3 /* ConstantTypes.CAN_STRINGIFY */);
2480
+ };
2481
+
2482
+ function createDOMCompilerError(code, loc) {
2483
+ return compilerCore.createCompilerError(code, loc, DOMErrorMessages );
2484
+ }
2485
+ const DOMErrorMessages = {
2486
+ [51 /* DOMErrorCodes.X_V_HTML_NO_EXPRESSION */]: `v-html is missing expression.`,
2487
+ [52 /* DOMErrorCodes.X_V_HTML_WITH_CHILDREN */]: `v-html will override element children.`,
2488
+ [53 /* DOMErrorCodes.X_V_TEXT_NO_EXPRESSION */]: `v-text is missing expression.`,
2489
+ [54 /* DOMErrorCodes.X_V_TEXT_WITH_CHILDREN */]: `v-text will override element children.`,
2490
+ [55 /* DOMErrorCodes.X_V_MODEL_ON_INVALID_ELEMENT */]: `v-model can only be used on <input>, <textarea> and <select> elements.`,
2491
+ [56 /* DOMErrorCodes.X_V_MODEL_ARG_ON_ELEMENT */]: `v-model argument is not supported on plain elements.`,
2492
+ [57 /* DOMErrorCodes.X_V_MODEL_ON_FILE_INPUT_ELEMENT */]: `v-model cannot be used on file inputs since they are read-only. Use a v-on:change listener instead.`,
2493
+ [58 /* DOMErrorCodes.X_V_MODEL_UNNECESSARY_VALUE */]: `Unnecessary value binding used alongside v-model. It will interfere with v-model's behavior.`,
2494
+ [59 /* DOMErrorCodes.X_V_SHOW_NO_EXPRESSION */]: `v-show is missing expression.`,
2495
+ [60 /* DOMErrorCodes.X_TRANSITION_INVALID_CHILDREN */]: `<Transition> expects exactly one child element or component.`,
2496
+ [61 /* DOMErrorCodes.X_IGNORED_SIDE_EFFECT_TAG */]: `Tags with side effect (<script> and <style>) are ignored in client component templates.`
2497
+ };
2498
+
2499
+ const transformVHtml = (dir, node, context) => {
2500
+ const { exp, loc } = dir;
2501
+ if (!exp) {
2502
+ context.onError(createDOMCompilerError(51 /* DOMErrorCodes.X_V_HTML_NO_EXPRESSION */, loc));
2503
+ }
2504
+ if (node.children.length) {
2505
+ context.onError(createDOMCompilerError(52 /* DOMErrorCodes.X_V_HTML_WITH_CHILDREN */, loc));
2506
+ node.children.length = 0;
2507
+ }
2508
+ return {
2509
+ props: [
2510
+ compilerCore.createObjectProperty(compilerCore.createSimpleExpression(`innerHTML`, true, loc), exp || compilerCore.createSimpleExpression('', true))
2511
+ ]
2512
+ };
2513
+ };
2514
+
2515
+ const transformVText = (dir, node, context) => {
2516
+ const { exp, loc } = dir;
2517
+ if (!exp) {
2518
+ context.onError(createDOMCompilerError(53 /* DOMErrorCodes.X_V_TEXT_NO_EXPRESSION */, loc));
2519
+ }
2520
+ if (node.children.length) {
2521
+ context.onError(createDOMCompilerError(54 /* DOMErrorCodes.X_V_TEXT_WITH_CHILDREN */, loc));
2522
+ node.children.length = 0;
2523
+ }
2524
+ return {
2525
+ props: [
2526
+ compilerCore.createObjectProperty(compilerCore.createSimpleExpression(`textContent`, true), exp
2527
+ ? compilerCore.getConstantType(exp, context) > 0
2528
+ ? exp
2529
+ : compilerCore.createCallExpression(context.helperString(compilerCore.TO_DISPLAY_STRING), [exp], loc)
2530
+ : compilerCore.createSimpleExpression('', true))
2531
+ ]
2532
+ };
2533
+ };
2534
+
2535
+ const transformModel = (dir, node, context) => {
2536
+ const baseResult = compilerCore.transformModel(dir, node, context);
2537
+ // base transform has errors OR component v-model (only need props)
2538
+ if (!baseResult.props.length || node.tagType === 1 /* ElementTypes.COMPONENT */) {
2539
+ return baseResult;
2540
+ }
2541
+ if (dir.arg) {
2542
+ context.onError(createDOMCompilerError(56 /* DOMErrorCodes.X_V_MODEL_ARG_ON_ELEMENT */, dir.arg.loc));
2543
+ }
2544
+ function checkDuplicatedValue() {
2545
+ const value = compilerCore.findProp(node, 'value');
2546
+ if (value) {
2547
+ context.onError(createDOMCompilerError(58 /* DOMErrorCodes.X_V_MODEL_UNNECESSARY_VALUE */, value.loc));
2548
+ }
2549
+ }
2550
+ const { tag } = node;
2551
+ const isCustomElement = context.isCustomElement(tag);
2552
+ if (tag === 'input' ||
2553
+ tag === 'textarea' ||
2554
+ tag === 'select' ||
2555
+ isCustomElement) {
2556
+ let directiveToUse = V_MODEL_TEXT;
2557
+ let isInvalidType = false;
2558
+ if (tag === 'input' || isCustomElement) {
2559
+ const type = compilerCore.findProp(node, `type`);
2560
+ if (type) {
2561
+ if (type.type === 7 /* NodeTypes.DIRECTIVE */) {
2562
+ // :type="foo"
2563
+ directiveToUse = V_MODEL_DYNAMIC;
2564
+ }
2565
+ else if (type.value) {
2566
+ switch (type.value.content) {
2567
+ case 'radio':
2568
+ directiveToUse = V_MODEL_RADIO;
2569
+ break;
2570
+ case 'checkbox':
2571
+ directiveToUse = V_MODEL_CHECKBOX;
2572
+ break;
2573
+ case 'file':
2574
+ isInvalidType = true;
2575
+ context.onError(createDOMCompilerError(57 /* DOMErrorCodes.X_V_MODEL_ON_FILE_INPUT_ELEMENT */, dir.loc));
2576
+ break;
2577
+ default:
2578
+ // text type
2579
+ checkDuplicatedValue();
2580
+ break;
2581
+ }
2582
+ }
2583
+ }
2584
+ else if (compilerCore.hasDynamicKeyVBind(node)) {
2585
+ // element has bindings with dynamic keys, which can possibly contain
2586
+ // "type".
2587
+ directiveToUse = V_MODEL_DYNAMIC;
2588
+ }
2589
+ else {
2590
+ // text type
2591
+ checkDuplicatedValue();
2592
+ }
2593
+ }
2594
+ else if (tag === 'select') {
2595
+ directiveToUse = V_MODEL_SELECT;
2596
+ }
2597
+ else {
2598
+ // textarea
2599
+ checkDuplicatedValue();
2600
+ }
2601
+ // inject runtime directive
2602
+ // by returning the helper symbol via needRuntime
2603
+ // the import will replaced a resolveDirective call.
2604
+ if (!isInvalidType) {
2605
+ baseResult.needRuntime = context.helper(directiveToUse);
2606
+ }
2607
+ }
2608
+ else {
2609
+ context.onError(createDOMCompilerError(55 /* DOMErrorCodes.X_V_MODEL_ON_INVALID_ELEMENT */, dir.loc));
2610
+ }
2611
+ // native vmodel doesn't need the `modelValue` props since they are also
2612
+ // passed to the runtime as `binding.value`. removing it reduces code size.
2613
+ baseResult.props = baseResult.props.filter(p => !(p.key.type === 4 /* NodeTypes.SIMPLE_EXPRESSION */ &&
2614
+ p.key.content === 'modelValue'));
2615
+ return baseResult;
2616
+ };
2617
+
2618
+ const isEventOptionModifier = /*#__PURE__*/ shared.makeMap(`passive,once,capture`);
2619
+ const isNonKeyModifier = /*#__PURE__*/ shared.makeMap(
2620
+ // event propagation management
2621
+ `stop,prevent,self,` +
2622
+ // system modifiers + exact
2623
+ `ctrl,shift,alt,meta,exact,` +
2624
+ // mouse
2625
+ `middle`);
2626
+ // left & right could be mouse or key modifiers based on event type
2627
+ const maybeKeyModifier = /*#__PURE__*/ shared.makeMap('left,right');
2628
+ const isKeyboardEvent = /*#__PURE__*/ shared.makeMap(`onkeyup,onkeydown,onkeypress`, true);
2629
+ const resolveModifiers = (key, modifiers, context, loc) => {
2630
+ const keyModifiers = [];
2631
+ const nonKeyModifiers = [];
2632
+ const eventOptionModifiers = [];
2633
+ for (let i = 0; i < modifiers.length; i++) {
2634
+ const modifier = modifiers[i];
2635
+ if (modifier === 'native' &&
2636
+ compilerCore.checkCompatEnabled("COMPILER_V_ON_NATIVE" /* CompilerDeprecationTypes.COMPILER_V_ON_NATIVE */, context, loc)) {
2637
+ eventOptionModifiers.push(modifier);
2638
+ }
2639
+ else if (isEventOptionModifier(modifier)) {
2640
+ // eventOptionModifiers: modifiers for addEventListener() options,
2641
+ // e.g. .passive & .capture
2642
+ eventOptionModifiers.push(modifier);
2643
+ }
2644
+ // JsView Added >>>
2645
+ // 处理自定义的 addEventListener() options, 前缀为jsv
2646
+ else if(modifier.startsWith('jsv')) {
2647
+ const regex = new RegExp('[A-Z]');
2648
+ if (regex.test(modifier)) {
2649
+ console.error("JsView Error: Failed to parse event option: " + modifier + ". Please use lower-case");
2650
+ continue;
2651
+ }
2652
+ eventOptionModifiers.push(modifier);
2653
+ }
2654
+ // JsView Added <<<
2655
+ else {
2656
+ // runtimeModifiers: modifiers that needs runtime guards
2657
+ if (maybeKeyModifier(modifier)) {
2658
+ if (compilerCore.isStaticExp(key)) {
2659
+ if (isKeyboardEvent(key.content)) {
2660
+ keyModifiers.push(modifier);
2661
+ }
2662
+ else {
2663
+ nonKeyModifiers.push(modifier);
2664
+ }
2665
+ }
2666
+ else {
2667
+ keyModifiers.push(modifier);
2668
+ nonKeyModifiers.push(modifier);
2669
+ }
2670
+ }
2671
+ else {
2672
+ if (isNonKeyModifier(modifier)) {
2673
+ nonKeyModifiers.push(modifier);
2674
+ }
2675
+ else {
2676
+ keyModifiers.push(modifier);
2677
+ }
2678
+ }
2679
+ }
2680
+ }
2681
+ return {
2682
+ keyModifiers,
2683
+ nonKeyModifiers,
2684
+ eventOptionModifiers
2685
+ };
2686
+ };
2687
+ const transformClick = (key, event) => {
2688
+ const isStaticClick = compilerCore.isStaticExp(key) && key.content.toLowerCase() === 'onclick';
2689
+ return isStaticClick
2690
+ ? compilerCore.createSimpleExpression(event, true)
2691
+ : key.type !== 4 /* NodeTypes.SIMPLE_EXPRESSION */
2692
+ ? compilerCore.createCompoundExpression([
2693
+ `(`,
2694
+ key,
2695
+ `) === "onClick" ? "${event}" : (`,
2696
+ key,
2697
+ `)`
2698
+ ])
2699
+ : key;
2700
+ };
2701
+ const transformOn = (dir, node, context) => {
2702
+ return compilerCore.transformOn(dir, node, context, baseResult => {
2703
+ const { modifiers } = dir;
2704
+ if (!modifiers.length)
2705
+ return baseResult;
2706
+ let { key, value: handlerExp } = baseResult.props[0];
2707
+ const { keyModifiers, nonKeyModifiers, eventOptionModifiers } = resolveModifiers(key, modifiers, context, dir.loc);
2708
+ // normalize click.right and click.middle since they don't actually fire
2709
+ if (nonKeyModifiers.includes('right')) {
2710
+ key = transformClick(key, `onContextmenu`);
2711
+ }
2712
+ if (nonKeyModifiers.includes('middle')) {
2713
+ key = transformClick(key, `onMouseup`);
2714
+ }
2715
+ if (nonKeyModifiers.length) {
2716
+ handlerExp = compilerCore.createCallExpression(context.helper(V_ON_WITH_MODIFIERS), [
2717
+ handlerExp,
2718
+ JSON.stringify(nonKeyModifiers)
2719
+ ]);
2720
+ }
2721
+ if (keyModifiers.length &&
2722
+ // if event name is dynamic, always wrap with keys guard
2723
+ (!compilerCore.isStaticExp(key) || isKeyboardEvent(key.content))) {
2724
+ handlerExp = compilerCore.createCallExpression(context.helper(V_ON_WITH_KEYS), [
2725
+ handlerExp,
2726
+ JSON.stringify(keyModifiers)
2727
+ ]);
2728
+ }
2729
+ if (eventOptionModifiers.length) {
2730
+ const modifierPostfix = eventOptionModifiers.map(shared.capitalize).join('');
2731
+ key = compilerCore.isStaticExp(key)
2732
+ ? compilerCore.createSimpleExpression(`${key.content}${modifierPostfix}`, true)
2733
+ : compilerCore.createCompoundExpression([`(`, key, `) + "${modifierPostfix}"`]);
2734
+ }
2735
+ return {
2736
+ props: [compilerCore.createObjectProperty(key, handlerExp)]
2737
+ };
2738
+ });
2739
+ };
2740
+
2741
+ const transformShow = (dir, node, context) => {
2742
+ const { exp, loc } = dir;
2743
+ if (!exp) {
2744
+ context.onError(createDOMCompilerError(59 /* DOMErrorCodes.X_V_SHOW_NO_EXPRESSION */, loc));
2745
+ }
2746
+ return {
2747
+ props: [],
2748
+ needRuntime: context.helper(V_SHOW)
2749
+ };
2750
+ };
2751
+
2752
+ const transformTransition = (node, context) => {
2753
+ if (node.type === 1 /* NodeTypes.ELEMENT */ &&
2754
+ node.tagType === 1 /* ElementTypes.COMPONENT */) {
2755
+ const component = context.isBuiltInComponent(node.tag);
2756
+ if (component === TRANSITION) {
2757
+ return () => {
2758
+ if (!node.children.length) {
2759
+ return;
2760
+ }
2761
+ // warn multiple transition children
2762
+ if (hasMultipleChildren(node)) {
2763
+ context.onError(createDOMCompilerError(60 /* DOMErrorCodes.X_TRANSITION_INVALID_CHILDREN */, {
2764
+ start: node.children[0].loc.start,
2765
+ end: node.children[node.children.length - 1].loc.end,
2766
+ source: ''
2767
+ }));
2768
+ }
2769
+ // check if it's s single child w/ v-show
2770
+ // if yes, inject "persisted: true" to the transition props
2771
+ const child = node.children[0];
2772
+ if (child.type === 1 /* NodeTypes.ELEMENT */) {
2773
+ for (const p of child.props) {
2774
+ if (p.type === 7 /* NodeTypes.DIRECTIVE */ && p.name === 'show') {
2775
+ node.props.push({
2776
+ type: 6 /* NodeTypes.ATTRIBUTE */,
2777
+ name: 'persisted',
2778
+ value: undefined,
2779
+ loc: node.loc
2780
+ });
2781
+ }
2782
+ }
2783
+ }
2784
+ };
2785
+ }
2786
+ }
2787
+ };
2788
+ function hasMultipleChildren(node) {
2789
+ // #1352 filter out potential comment nodes.
2790
+ const children = (node.children = node.children.filter(c => c.type !== 3 /* NodeTypes.COMMENT */ &&
2791
+ !(c.type === 2 /* NodeTypes.TEXT */ && !c.content.trim())));
2792
+ const child = children[0];
2793
+ return (children.length !== 1 ||
2794
+ child.type === 11 /* NodeTypes.FOR */ ||
2795
+ (child.type === 9 /* NodeTypes.IF */ && child.branches.some(hasMultipleChildren)));
2796
+ }
2797
+
2798
+ /**
2799
+ * This module is Node-only.
2800
+ */
2801
+ /**
2802
+ * Regex for replacing placeholders for embedded constant variables
2803
+ * (e.g. import URL string constants generated by compiler-sfc)
2804
+ */
2805
+ const expReplaceRE = /__VUE_EXP_START__(.*?)__VUE_EXP_END__/g;
2806
+ /**
2807
+ * Turn eligible hoisted static trees into stringified static nodes, e.g.
2808
+ *
2809
+ * ```js
2810
+ * const _hoisted_1 = createStaticVNode(`<div class="foo">bar</div>`)
2811
+ * ```
2812
+ *
2813
+ * A single static vnode can contain stringified content for **multiple**
2814
+ * consecutive nodes (element and plain text), called a "chunk".
2815
+ * `@vue/runtime-dom` will create the content via innerHTML in a hidden
2816
+ * container element and insert all the nodes in place. The call must also
2817
+ * provide the number of nodes contained in the chunk so that during hydration
2818
+ * we can know how many nodes the static vnode should adopt.
2819
+ *
2820
+ * The optimization scans a children list that contains hoisted nodes, and
2821
+ * tries to find the largest chunk of consecutive hoisted nodes before running
2822
+ * into a non-hoisted node or the end of the list. A chunk is then converted
2823
+ * into a single static vnode and replaces the hoisted expression of the first
2824
+ * node in the chunk. Other nodes in the chunk are considered "merged" and
2825
+ * therefore removed from both the hoist list and the children array.
2826
+ *
2827
+ * This optimization is only performed in Node.js.
2828
+ */
2829
+ const stringifyStatic = (children, context, parent) => {
2830
+ // bail stringification for slot content
2831
+ if (context.scopes.vSlot > 0) {
2832
+ return;
2833
+ }
2834
+ let nc = 0; // current node count
2835
+ let ec = 0; // current element with binding count
2836
+ const currentChunk = [];
2837
+ const stringifyCurrentChunk = (currentIndex) => {
2838
+ if (nc >= 20 /* StringifyThresholds.NODE_COUNT */ ||
2839
+ ec >= 5 /* StringifyThresholds.ELEMENT_WITH_BINDING_COUNT */) {
2840
+ // combine all currently eligible nodes into a single static vnode call
2841
+ const staticCall = compilerCore.createCallExpression(context.helper(compilerCore.CREATE_STATIC), [
2842
+ JSON.stringify(currentChunk.map(node => stringifyNode(node, context)).join('')).replace(expReplaceRE, `" + $1 + "`),
2843
+ // the 2nd argument indicates the number of DOM nodes this static vnode
2844
+ // will insert / hydrate
2845
+ String(currentChunk.length)
2846
+ ]);
2847
+ // replace the first node's hoisted expression with the static vnode call
2848
+ replaceHoist(currentChunk[0], staticCall, context);
2849
+ if (currentChunk.length > 1) {
2850
+ for (let i = 1; i < currentChunk.length; i++) {
2851
+ // for the merged nodes, set their hoisted expression to null
2852
+ replaceHoist(currentChunk[i], null, context);
2853
+ }
2854
+ // also remove merged nodes from children
2855
+ const deleteCount = currentChunk.length - 1;
2856
+ children.splice(currentIndex - currentChunk.length + 1, deleteCount);
2857
+ return deleteCount;
2858
+ }
2859
+ }
2860
+ return 0;
2861
+ };
2862
+ let i = 0;
2863
+ for (; i < children.length; i++) {
2864
+ const child = children[i];
2865
+ const hoisted = getHoistedNode(child);
2866
+ if (hoisted) {
2867
+ // presence of hoisted means child must be a stringifiable node
2868
+ const node = child;
2869
+ const result = analyzeNode(node);
2870
+ if (result) {
2871
+ // node is stringifiable, record state
2872
+ nc += result[0];
2873
+ ec += result[1];
2874
+ currentChunk.push(node);
2875
+ continue;
2876
+ }
2877
+ }
2878
+ // we only reach here if we ran into a node that is not stringifiable
2879
+ // check if currently analyzed nodes meet criteria for stringification.
2880
+ // adjust iteration index
2881
+ i -= stringifyCurrentChunk(i);
2882
+ // reset state
2883
+ nc = 0;
2884
+ ec = 0;
2885
+ currentChunk.length = 0;
2886
+ }
2887
+ // in case the last node was also stringifiable
2888
+ stringifyCurrentChunk(i);
2889
+ };
2890
+ const getHoistedNode = (node) => ((node.type === 1 /* NodeTypes.ELEMENT */ && node.tagType === 0 /* ElementTypes.ELEMENT */) ||
2891
+ node.type == 12 /* NodeTypes.TEXT_CALL */) &&
2892
+ node.codegenNode &&
2893
+ node.codegenNode.type === 4 /* NodeTypes.SIMPLE_EXPRESSION */ &&
2894
+ node.codegenNode.hoisted;
2895
+ const dataAriaRE = /^(data|aria)-/;
2896
+ const isStringifiableAttr = (name, ns) => {
2897
+ return ((ns === 0 /* DOMNamespaces.HTML */
2898
+ ? shared.isKnownHtmlAttr(name)
2899
+ : ns === 1 /* DOMNamespaces.SVG */
2900
+ ? shared.isKnownSvgAttr(name)
2901
+ : false) || dataAriaRE.test(name));
2902
+ };
2903
+ const replaceHoist = (node, replacement, context) => {
2904
+ const hoistToReplace = node.codegenNode.hoisted;
2905
+ context.hoists[context.hoists.indexOf(hoistToReplace)] = replacement;
2906
+ };
2907
+ const isNonStringifiable = /*#__PURE__*/ shared.makeMap(`caption,thead,tr,th,tbody,td,tfoot,colgroup,col`);
2908
+ /**
2909
+ * for a hoisted node, analyze it and return:
2910
+ * - false: bailed (contains non-stringifiable props or runtime constant)
2911
+ * - [nc, ec] where
2912
+ * - nc is the number of nodes inside
2913
+ * - ec is the number of element with bindings inside
2914
+ */
2915
+ function analyzeNode(node) {
2916
+ if (node.type === 1 /* NodeTypes.ELEMENT */ && isNonStringifiable(node.tag)) {
2917
+ return false;
2918
+ }
2919
+ if (node.type === 12 /* NodeTypes.TEXT_CALL */) {
2920
+ return [1, 0];
2921
+ }
2922
+ let nc = 1; // node count
2923
+ let ec = node.props.length > 0 ? 1 : 0; // element w/ binding count
2924
+ let bailed = false;
2925
+ const bail = () => {
2926
+ bailed = true;
2927
+ return false;
2928
+ };
2929
+ // TODO: check for cases where using innerHTML will result in different
2930
+ // output compared to imperative node insertions.
2931
+ // probably only need to check for most common case
2932
+ // i.e. non-phrasing-content tags inside `<p>`
2933
+ function walk(node) {
2934
+ for (let i = 0; i < node.props.length; i++) {
2935
+ const p = node.props[i];
2936
+ // bail on non-attr bindings
2937
+ if (p.type === 6 /* NodeTypes.ATTRIBUTE */ &&
2938
+ !isStringifiableAttr(p.name, node.ns)) {
2939
+ return bail();
2940
+ }
2941
+ if (p.type === 7 /* NodeTypes.DIRECTIVE */ && p.name === 'bind') {
2942
+ // bail on non-attr bindings
2943
+ if (p.arg &&
2944
+ (p.arg.type === 8 /* NodeTypes.COMPOUND_EXPRESSION */ ||
2945
+ (p.arg.isStatic && !isStringifiableAttr(p.arg.content, node.ns)))) {
2946
+ return bail();
2947
+ }
2948
+ if (p.exp &&
2949
+ (p.exp.type === 8 /* NodeTypes.COMPOUND_EXPRESSION */ ||
2950
+ p.exp.constType < 3 /* ConstantTypes.CAN_STRINGIFY */)) {
2951
+ return bail();
2952
+ }
2953
+ }
2954
+ }
2955
+ for (let i = 0; i < node.children.length; i++) {
2956
+ nc++;
2957
+ const child = node.children[i];
2958
+ if (child.type === 1 /* NodeTypes.ELEMENT */) {
2959
+ if (child.props.length > 0) {
2960
+ ec++;
2961
+ }
2962
+ walk(child);
2963
+ if (bailed) {
2964
+ return false;
2965
+ }
2966
+ }
2967
+ }
2968
+ return true;
2969
+ }
2970
+ return walk(node) ? [nc, ec] : false;
2971
+ }
2972
+ function stringifyNode(node, context) {
2973
+ if (shared.isString(node)) {
2974
+ return node;
2975
+ }
2976
+ if (shared.isSymbol(node)) {
2977
+ return ``;
2978
+ }
2979
+ switch (node.type) {
2980
+ case 1 /* NodeTypes.ELEMENT */:
2981
+ return stringifyElement(node, context);
2982
+ case 2 /* NodeTypes.TEXT */:
2983
+ return shared.escapeHtml(node.content);
2984
+ case 3 /* NodeTypes.COMMENT */:
2985
+ return `<!--${shared.escapeHtml(node.content)}-->`;
2986
+ case 5 /* NodeTypes.INTERPOLATION */:
2987
+ return shared.escapeHtml(shared.toDisplayString(evaluateConstant(node.content)));
2988
+ case 8 /* NodeTypes.COMPOUND_EXPRESSION */:
2989
+ return shared.escapeHtml(evaluateConstant(node));
2990
+ case 12 /* NodeTypes.TEXT_CALL */:
2991
+ return stringifyNode(node.content, context);
2992
+ default:
2993
+ // static trees will not contain if/for nodes
2994
+ return '';
2995
+ }
2996
+ }
2997
+ function stringifyElement(node, context) {
2998
+ let res = `<${node.tag}`;
2999
+ let innerHTML = '';
3000
+ for (let i = 0; i < node.props.length; i++) {
3001
+ const p = node.props[i];
3002
+ if (p.type === 6 /* NodeTypes.ATTRIBUTE */) {
3003
+ res += ` ${p.name}`;
3004
+ if (p.value) {
3005
+ res += `="${shared.escapeHtml(p.value.content)}"`;
3006
+ }
3007
+ }
3008
+ else if (p.type === 7 /* NodeTypes.DIRECTIVE */) {
3009
+ if (p.name === 'bind') {
3010
+ const exp = p.exp;
3011
+ if (exp.content[0] === '_') {
3012
+ // internally generated string constant references
3013
+ // e.g. imported URL strings via compiler-sfc transformAssetUrl plugin
3014
+ res += ` ${p.arg.content}="__VUE_EXP_START__${exp.content}__VUE_EXP_END__"`;
3015
+ continue;
3016
+ }
3017
+ // #6568
3018
+ if (shared.isBooleanAttr(p.arg.content) &&
3019
+ exp.content === 'false') {
3020
+ continue;
3021
+ }
3022
+ // constant v-bind, e.g. :foo="1"
3023
+ let evaluated = evaluateConstant(exp);
3024
+ if (evaluated != null) {
3025
+ const arg = p.arg && p.arg.content;
3026
+ if (arg === 'class') {
3027
+ evaluated = shared.normalizeClass(evaluated);
3028
+ }
3029
+ else if (arg === 'style') {
3030
+ evaluated = shared.stringifyStyle(shared.normalizeStyle(evaluated));
3031
+ }
3032
+ res += ` ${p.arg.content}="${shared.escapeHtml(evaluated)}"`;
3033
+ }
3034
+ }
3035
+ else if (p.name === 'html') {
3036
+ // #5439 v-html with constant value
3037
+ // not sure why would anyone do this but it can happen
3038
+ innerHTML = evaluateConstant(p.exp);
3039
+ }
3040
+ else if (p.name === 'text') {
3041
+ innerHTML = shared.escapeHtml(shared.toDisplayString(evaluateConstant(p.exp)));
3042
+ }
3043
+ }
3044
+ }
3045
+ if (context.scopeId) {
3046
+ res += ` ${context.scopeId}`;
3047
+ }
3048
+ res += `>`;
3049
+ if (innerHTML) {
3050
+ res += innerHTML;
3051
+ }
3052
+ else {
3053
+ for (let i = 0; i < node.children.length; i++) {
3054
+ res += stringifyNode(node.children[i], context);
3055
+ }
3056
+ }
3057
+ if (!shared.isVoidTag(node.tag)) {
3058
+ res += `</${node.tag}>`;
3059
+ }
3060
+ return res;
3061
+ }
3062
+ // __UNSAFE__
3063
+ // Reason: eval.
3064
+ // It's technically safe to eval because only constant expressions are possible
3065
+ // here, e.g. `{{ 1 }}` or `{{ 'foo' }}`
3066
+ // in addition, constant exps bail on presence of parens so you can't even
3067
+ // run JSFuck in here. But we mark it unsafe for security review purposes.
3068
+ // (see compiler-core/src/transforms/transformExpression)
3069
+ function evaluateConstant(exp) {
3070
+ if (exp.type === 4 /* NodeTypes.SIMPLE_EXPRESSION */) {
3071
+ return new Function(`return ${exp.content}`)();
3072
+ }
3073
+ else {
3074
+ // compound
3075
+ let res = ``;
3076
+ exp.children.forEach(c => {
3077
+ if (shared.isString(c) || shared.isSymbol(c)) {
3078
+ return;
3079
+ }
3080
+ if (c.type === 2 /* NodeTypes.TEXT */) {
3081
+ res += c.content;
3082
+ }
3083
+ else if (c.type === 5 /* NodeTypes.INTERPOLATION */) {
3084
+ res += shared.toDisplayString(evaluateConstant(c.content));
3085
+ }
3086
+ else {
3087
+ res += evaluateConstant(c);
3088
+ }
3089
+ });
3090
+ return res;
3091
+ }
3092
+ }
3093
+
3094
+ const ignoreSideEffectTags = (node, context) => {
3095
+ if (node.type === 1 /* NodeTypes.ELEMENT */ &&
3096
+ node.tagType === 0 /* ElementTypes.ELEMENT */ &&
3097
+ (node.tag === 'script' || node.tag === 'style')) {
3098
+ context.onError(createDOMCompilerError(61 /* DOMErrorCodes.X_IGNORED_SIDE_EFFECT_TAG */, node.loc));
3099
+ context.removeNode();
3100
+ }
3101
+ };
3102
+
3103
+ const DOMNodeTransforms = [
3104
+ transformStyle,
3105
+ ...([transformTransition] )
3106
+ ];
3107
+ const DOMDirectiveTransforms = {
3108
+ cloak: compilerCore.noopDirectiveTransform,
3109
+ html: transformVHtml,
3110
+ text: transformVText,
3111
+ model: transformModel,
3112
+ on: transformOn,
3113
+ show: transformShow
3114
+ };
3115
+ function compile(template, options = {}) {
3116
+ return compilerCore.baseCompile(template, shared.extend({}, parserOptions, options, {
3117
+ nodeTransforms: [
3118
+ // ignore <script> and <tag>
3119
+ // this is not put inside DOMNodeTransforms because that list is used
3120
+ // by compiler-ssr to generate vnode fallback branches
3121
+ ignoreSideEffectTags,
3122
+ ...DOMNodeTransforms,
3123
+ ...(options.nodeTransforms || [])
3124
+ ],
3125
+ directiveTransforms: shared.extend({}, DOMDirectiveTransforms, options.directiveTransforms || {}),
3126
+ transformHoist: stringifyStatic
3127
+ }));
3128
+ }
3129
+ function parse(template, options = {}) {
3130
+ return compilerCore.baseParse(template, shared.extend({}, parserOptions, options));
3131
+ }
3132
+
3133
+ Object.keys(compilerCore).forEach(function (k) {
3134
+ if (k !== 'default') exports[k] = compilerCore[k];
3135
+ });
3136
+ exports.DOMDirectiveTransforms = DOMDirectiveTransforms;
3137
+ exports.DOMNodeTransforms = DOMNodeTransforms;
3138
+ exports.TRANSITION = TRANSITION;
3139
+ exports.TRANSITION_GROUP = TRANSITION_GROUP;
3140
+ exports.V_MODEL_CHECKBOX = V_MODEL_CHECKBOX;
3141
+ exports.V_MODEL_DYNAMIC = V_MODEL_DYNAMIC;
3142
+ exports.V_MODEL_RADIO = V_MODEL_RADIO;
3143
+ exports.V_MODEL_SELECT = V_MODEL_SELECT;
3144
+ exports.V_MODEL_TEXT = V_MODEL_TEXT;
3145
+ exports.V_ON_WITH_KEYS = V_ON_WITH_KEYS;
3146
+ exports.V_ON_WITH_MODIFIERS = V_ON_WITH_MODIFIERS;
3147
+ exports.V_SHOW = V_SHOW;
3148
+ exports.compile = compile;
3149
+ exports.createDOMCompilerError = createDOMCompilerError;
3150
+ exports.parse = parse;
3151
+ exports.parserOptions = parserOptions;
3152
+ exports.transformStyle = transformStyle;