@nika-js/onlymap 0.1.0

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.
Files changed (77) hide show
  1. package/.vscode/onlymap.code-snippets +173 -0
  2. package/LICENSE.md +133 -0
  3. package/README.md +188 -0
  4. package/bin/onlymapjs.mjs +182 -0
  5. package/dist/Arrow.dom-7AXne1TU.js +5233 -0
  6. package/dist/actions.d.ts +30 -0
  7. package/dist/attribute-resolution.d.ts +73 -0
  8. package/dist/basemap-D95W0IIA.js +25203 -0
  9. package/dist/basemap.d.ts +72 -0
  10. package/dist/convert-arrow-schema-CvZ3cT5m.js +94 -0
  11. package/dist/csp-sandbox.d.ts +20 -0
  12. package/dist/ctx.d.ts +49 -0
  13. package/dist/d3-bundle.d.ts +218 -0
  14. package/dist/data-emit.d.ts +10 -0
  15. package/dist/data-layer.d.ts +150 -0
  16. package/dist/declarative-filter.d.ts +12 -0
  17. package/dist/dev-error-panel.d.ts +15 -0
  18. package/dist/draw-controller.d.ts +51 -0
  19. package/dist/draw.d.ts +102 -0
  20. package/dist/effects.d.ts +39 -0
  21. package/dist/elements/om-behavior.d.ts +13 -0
  22. package/dist/elements/om-layer.d.ts +11 -0
  23. package/dist/elements/om-map.d.ts +168 -0
  24. package/dist/elements/om-overlay.d.ts +82 -0
  25. package/dist/elements/om-step.d.ts +12 -0
  26. package/dist/elements/om-story.d.ts +67 -0
  27. package/dist/elements/om-widget.d.ts +29 -0
  28. package/dist/env.d.ts +41 -0
  29. package/dist/expr/cache.d.ts +28 -0
  30. package/dist/expr/compile.d.ts +27 -0
  31. package/dist/expr/errors.d.ts +10 -0
  32. package/dist/expr/full-js-block.d.ts +17 -0
  33. package/dist/expr/index.d.ts +12 -0
  34. package/dist/expr/output-type.d.ts +12 -0
  35. package/dist/expr/scale.d.ts +13 -0
  36. package/dist/expr/script-block.d.ts +16 -0
  37. package/dist/expr/whitelist.d.ts +28 -0
  38. package/dist/field-access.d.ts +24 -0
  39. package/dist/html-data.d.ts +25 -0
  40. package/dist/index-2v2NXF_n.js +435 -0
  41. package/dist/index-BFjXVHly.js +605 -0
  42. package/dist/index-C9w78NS9.js +4883 -0
  43. package/dist/index-CU-iOTdr.js +75292 -0
  44. package/dist/index-D74olQ9w.js +3907 -0
  45. package/dist/index-Do7hmHwi.js +1457 -0
  46. package/dist/index.d.ts +76 -0
  47. package/dist/ir-snapshot.d.ts +54 -0
  48. package/dist/ir.d.ts +66 -0
  49. package/dist/layer-registry.d.ts +27 -0
  50. package/dist/layers/popup-layer.d.ts +65 -0
  51. package/dist/onlymapjs.css +1 -0
  52. package/dist/onlymapjs.js +30 -0
  53. package/dist/onlymapjs.umd.cjs +8618 -0
  54. package/dist/parse-manifest.d.ts +19 -0
  55. package/dist/recordbatch-HRu0SMKp.js +4742 -0
  56. package/dist/runtime-core.d.ts +170 -0
  57. package/dist/selection.d.ts +31 -0
  58. package/dist/stats.d.ts +29 -0
  59. package/dist/table-accessors-DBjWgN0C.js +204 -0
  60. package/dist/template-interpolation.d.ts +6 -0
  61. package/dist/testing.d.ts +90 -0
  62. package/dist/timeline.d.ts +37 -0
  63. package/dist/validation.d.ts +22 -0
  64. package/dist/vega-loader.d.ts +22 -0
  65. package/dist/viewport-filter.d.ts +25 -0
  66. package/dist/widget-registry.d.ts +23 -0
  67. package/dist/widget-script.d.ts +1 -0
  68. package/dist/widgets/built-in.d.ts +1 -0
  69. package/dist/widgets/dom-utils.d.ts +4 -0
  70. package/llms.txt +43 -0
  71. package/onlymapjs.html-data.json +1688 -0
  72. package/package.json +111 -0
  73. package/skills/onlymapjs/SKILL.md +61 -0
  74. package/skills/onlymapjs/agents/openai.yaml +4 -0
  75. package/skills/onlymapjs/references/patterns.md +213 -0
  76. package/skills/onlymapjs/references/syntax.md +342 -0
  77. package/skills/onlymapjs/references/testing.md +126 -0
@@ -0,0 +1,4883 @@
1
+ import { a2 as _t, a3 as Ct } from "./index-CU-iOTdr.js";
2
+ function Yt(e, r, t = 2, i, o = "xy") {
3
+ const s = r && r.length, l = s ? r[0] * t : e.length;
4
+ let c = Ut(e, 0, l, t, !0, i && i[0], o);
5
+ const p = [];
6
+ if (!c || c.next === c.prev)
7
+ return p;
8
+ let g, D, d, E, S, C, m;
9
+ if (s && (c = tu(e, r, c, t, i, o)), e.length > 80 * t) {
10
+ E = D = e[0], S = d = e[1];
11
+ for (let N = t; N < l; N += t)
12
+ C = e[N], m = e[N + 1], C < E && (E = C), m < S && (S = m), C > D && (D = C), m > d && (d = m);
13
+ g = Math.max(D - E, d - S), g = g !== 0 ? 32767 / g : 0;
14
+ }
15
+ return Ie(c, p, t, E, S, g, 0), p;
16
+ }
17
+ function Ut(e, r, t, i, o, s, l) {
18
+ let c, p;
19
+ s === void 0 && (s = _t(e, { start: r, end: t, size: i, plane: l }));
20
+ let g = Ct[l[0]], D = Ct[l[1]];
21
+ if (o === s < 0)
22
+ for (c = r; c < t; c += i)
23
+ p = bt(c, e[c + g], e[c + D], p);
24
+ else
25
+ for (c = t - i; c >= r; c -= i)
26
+ p = bt(c, e[c + g], e[c + D], p);
27
+ return p && Xe(p, p.next) && (qe(p), p = p.next), p;
28
+ }
29
+ function ye(e, r) {
30
+ if (!e)
31
+ return e;
32
+ r || (r = e);
33
+ let t = e, i;
34
+ do
35
+ if (i = !1, !t.steiner && (Xe(t, t.next) || X(t.prev, t, t.next) === 0)) {
36
+ if (qe(t), t = r = t.prev, t === t.next)
37
+ break;
38
+ i = !0;
39
+ } else
40
+ t = t.next;
41
+ while (i || t !== r);
42
+ return r;
43
+ }
44
+ function Ie(e, r, t, i, o, s, l) {
45
+ if (!e)
46
+ return;
47
+ !l && s && ou(e, i, o, s);
48
+ let c = e, p, g;
49
+ for (; e.prev !== e.next; ) {
50
+ if (p = e.prev, g = e.next, s ? Qt(e, i, o, s) : Kt(e)) {
51
+ r.push(p.i / t | 0), r.push(e.i / t | 0), r.push(g.i / t | 0), qe(e), e = g.next, c = g.next;
52
+ continue;
53
+ }
54
+ if (e = g, e === c) {
55
+ l ? l === 1 ? (e = Jt(ye(e), r, t), Ie(e, r, t, i, o, s, 2)) : l === 2 && eu(e, r, t, i, o, s) : Ie(ye(e), r, t, i, o, s, 1);
56
+ break;
57
+ }
58
+ }
59
+ }
60
+ function Kt(e) {
61
+ const r = e.prev, t = e, i = e.next;
62
+ if (X(r, t, i) >= 0)
63
+ return !1;
64
+ const o = r.x, s = t.x, l = i.x, c = r.y, p = t.y, g = i.y, D = o < s ? o < l ? o : l : s < l ? s : l, d = c < p ? c < g ? c : g : p < g ? p : g, E = o > s ? o > l ? o : l : s > l ? s : l, S = c > p ? c > g ? c : g : p > g ? p : g;
65
+ let C = i.next;
66
+ for (; C !== r; ) {
67
+ if (C.x >= D && C.x <= E && C.y >= d && C.y <= S && Be(o, c, s, p, l, g, C.x, C.y) && X(C.prev, C, C.next) >= 0)
68
+ return !1;
69
+ C = C.next;
70
+ }
71
+ return !0;
72
+ }
73
+ function Qt(e, r, t, i) {
74
+ const o = e.prev, s = e, l = e.next;
75
+ if (X(o, s, l) >= 0)
76
+ return !1;
77
+ const c = o.x, p = s.x, g = l.x, D = o.y, d = s.y, E = l.y, S = c < p ? c < g ? c : g : p < g ? p : g, C = D < d ? D < E ? D : E : d < E ? d : E, m = c > p ? c > g ? c : g : p > g ? p : g, N = D > d ? D > E ? D : E : d > E ? d : E, P = it(S, C, r, t, i), R = it(m, N, r, t, i);
78
+ let w = e.prevZ, y = e.nextZ;
79
+ for (; w && w.z >= P && y && y.z <= R; ) {
80
+ if (w.x >= S && w.x <= m && w.y >= C && w.y <= N && w !== o && w !== l && Be(c, D, p, d, g, E, w.x, w.y) && X(w.prev, w, w.next) >= 0 || (w = w.prevZ, y.x >= S && y.x <= m && y.y >= C && y.y <= N && y !== o && y !== l && Be(c, D, p, d, g, E, y.x, y.y) && X(y.prev, y, y.next) >= 0))
81
+ return !1;
82
+ y = y.nextZ;
83
+ }
84
+ for (; w && w.z >= P; ) {
85
+ if (w.x >= S && w.x <= m && w.y >= C && w.y <= N && w !== o && w !== l && Be(c, D, p, d, g, E, w.x, w.y) && X(w.prev, w, w.next) >= 0)
86
+ return !1;
87
+ w = w.prevZ;
88
+ }
89
+ for (; y && y.z <= R; ) {
90
+ if (y.x >= S && y.x <= m && y.y >= C && y.y <= N && y !== o && y !== l && Be(c, D, p, d, g, E, y.x, y.y) && X(y.prev, y, y.next) >= 0)
91
+ return !1;
92
+ y = y.nextZ;
93
+ }
94
+ return !0;
95
+ }
96
+ function Jt(e, r, t) {
97
+ let i = e;
98
+ do {
99
+ const o = i.prev, s = i.next.next;
100
+ !Xe(o, s) && Mt(o, i, i.next, s) && Re(o, s) && Re(s, o) && (r.push(o.i / t | 0), r.push(i.i / t | 0), r.push(s.i / t | 0), qe(i), qe(i.next), i = e = s), i = i.next;
101
+ } while (i !== e);
102
+ return ye(i);
103
+ }
104
+ function eu(e, r, t, i, o, s) {
105
+ let l = e;
106
+ do {
107
+ let c = l.next.next;
108
+ for (; c !== l.prev; ) {
109
+ if (l.i !== c.i && lu(l, c)) {
110
+ let p = Vt(l, c);
111
+ l = ye(l, l.next), p = ye(p, p.next), Ie(l, r, t, i, o, s, 0), Ie(p, r, t, i, o, s, 0);
112
+ return;
113
+ }
114
+ c = c.next;
115
+ }
116
+ l = l.next;
117
+ } while (l !== e);
118
+ }
119
+ function tu(e, r, t, i, o, s) {
120
+ const l = [];
121
+ let c, p, g, D, d;
122
+ for (c = 0, p = r.length; c < p; c++)
123
+ g = r[c] * i, D = c < p - 1 ? r[c + 1] * i : e.length, d = Ut(e, g, D, i, !1, o && o[c + 1], s), d === d.next && (d.steiner = !0), l.push(su(d));
124
+ for (l.sort(uu), c = 0; c < l.length; c++)
125
+ t = ru(l[c], t);
126
+ return t;
127
+ }
128
+ function uu(e, r) {
129
+ return e.x - r.x;
130
+ }
131
+ function ru(e, r) {
132
+ const t = nu(e, r);
133
+ if (!t)
134
+ return r;
135
+ const i = Vt(t, e);
136
+ return ye(i, i.next), ye(t, t.next);
137
+ }
138
+ function nu(e, r) {
139
+ let t = r;
140
+ const i = e.x, o = e.y;
141
+ let s = -1 / 0, l;
142
+ do {
143
+ if (o <= t.y && o >= t.next.y && t.next.y !== t.y) {
144
+ const E = t.x + (o - t.y) * (t.next.x - t.x) / (t.next.y - t.y);
145
+ if (E <= i && E > s && (s = E, l = t.x < t.next.x ? t : t.next, E === i))
146
+ return l;
147
+ }
148
+ t = t.next;
149
+ } while (t !== r);
150
+ if (!l)
151
+ return null;
152
+ const c = l, p = l.x, g = l.y;
153
+ let D = 1 / 0, d;
154
+ t = l;
155
+ do
156
+ i >= t.x && t.x >= p && i !== t.x && Be(o < g ? i : s, o, p, g, o < g ? s : i, o, t.x, t.y) && (d = Math.abs(o - t.y) / (i - t.x), Re(t, e) && (d < D || d === D && (t.x > l.x || t.x === l.x && iu(l, t))) && (l = t, D = d)), t = t.next;
157
+ while (t !== c);
158
+ return l;
159
+ }
160
+ function iu(e, r) {
161
+ return X(e.prev, e, r.prev) < 0 && X(r.next, e, e.next) < 0;
162
+ }
163
+ function ou(e, r, t, i) {
164
+ let o = e;
165
+ do
166
+ o.z === 0 && (o.z = it(o.x, o.y, r, t, i)), o.prevZ = o.prev, o.nextZ = o.next, o = o.next;
167
+ while (o !== e);
168
+ o.prevZ.nextZ = null, o.prevZ = null, au(o);
169
+ }
170
+ function au(e) {
171
+ let r, t, i = 1, o, s, l, c, p, g;
172
+ do {
173
+ for (s = e, e = null, g = null, o = 0; s; ) {
174
+ for (o++, c = s, l = 0, t = 0; t < i && (l++, c = c.nextZ, !!c); t++)
175
+ ;
176
+ for (p = i; l > 0 || p > 0 && c; )
177
+ l !== 0 && (p === 0 || !c || s.z <= c.z) ? (r = s, s = s.nextZ, l--) : (r = c, c = c.nextZ, p--), g ? g.nextZ = r : e = r, r.prevZ = g, g = r;
178
+ s = c;
179
+ }
180
+ g.nextZ = null, i *= 2;
181
+ } while (o > 1);
182
+ return e;
183
+ }
184
+ function it(e, r, t, i, o) {
185
+ return e = (e - t) * o | 0, r = (r - i) * o | 0, e = (e | e << 8) & 16711935, e = (e | e << 4) & 252645135, e = (e | e << 2) & 858993459, e = (e | e << 1) & 1431655765, r = (r | r << 8) & 16711935, r = (r | r << 4) & 252645135, r = (r | r << 2) & 858993459, r = (r | r << 1) & 1431655765, e | r << 1;
186
+ }
187
+ function su(e) {
188
+ let r = e, t = e;
189
+ do
190
+ (r.x < t.x || r.x === t.x && r.y < t.y) && (t = r), r = r.next;
191
+ while (r !== e);
192
+ return t;
193
+ }
194
+ function Be(e, r, t, i, o, s, l, c) {
195
+ return (o - l) * (r - c) >= (e - l) * (s - c) && (e - l) * (i - c) >= (t - l) * (r - c) && (t - l) * (s - c) >= (o - l) * (i - c);
196
+ }
197
+ function lu(e, r) {
198
+ return e.next.i !== r.i && e.prev.i !== r.i && !cu(e, r) && // dones't intersect other edges
199
+ (Re(e, r) && Re(r, e) && pu(e, r) && // locally visible
200
+ (X(e.prev, e, r.prev) || X(e, r.prev, r)) || // does not create opposite-facing sectors
201
+ Xe(e, r) && X(e.prev, e, e.next) > 0 && X(r.prev, r, r.next) > 0);
202
+ }
203
+ function X(e, r, t) {
204
+ return (r.y - e.y) * (t.x - r.x) - (r.x - e.x) * (t.y - r.y);
205
+ }
206
+ function Xe(e, r) {
207
+ return e.x === r.x && e.y === r.y;
208
+ }
209
+ function Mt(e, r, t, i) {
210
+ const o = Ge(X(e, r, t)), s = Ge(X(e, r, i)), l = Ge(X(t, i, e)), c = Ge(X(t, i, r));
211
+ return !!(o !== s && l !== c || o === 0 && Ve(e, t, r) || s === 0 && Ve(e, i, r) || l === 0 && Ve(t, e, i) || c === 0 && Ve(t, r, i));
212
+ }
213
+ function Ve(e, r, t) {
214
+ return r.x <= Math.max(e.x, t.x) && r.x >= Math.min(e.x, t.x) && r.y <= Math.max(e.y, t.y) && r.y >= Math.min(e.y, t.y);
215
+ }
216
+ function Ge(e) {
217
+ return e > 0 ? 1 : e < 0 ? -1 : 0;
218
+ }
219
+ function cu(e, r) {
220
+ let t = e;
221
+ do {
222
+ if (t.i !== e.i && t.next.i !== e.i && t.i !== r.i && t.next.i !== r.i && Mt(t, t.next, e, r))
223
+ return !0;
224
+ t = t.next;
225
+ } while (t !== e);
226
+ return !1;
227
+ }
228
+ function Re(e, r) {
229
+ return X(e.prev, e, e.next) < 0 ? X(e, r, e.next) >= 0 && X(e, e.prev, r) >= 0 : X(e, r, e.prev) < 0 || X(e, e.next, r) < 0;
230
+ }
231
+ function pu(e, r) {
232
+ let t = e, i = !1;
233
+ const o = (e.x + r.x) / 2, s = (e.y + r.y) / 2;
234
+ do
235
+ t.y > s != t.next.y > s && t.next.y !== t.y && o < (t.next.x - t.x) * (s - t.y) / (t.next.y - t.y) + t.x && (i = !i), t = t.next;
236
+ while (t !== e);
237
+ return i;
238
+ }
239
+ function Vt(e, r) {
240
+ const t = new ot(e.i, e.x, e.y), i = new ot(r.i, r.x, r.y), o = e.next, s = r.prev;
241
+ return e.next = r, r.prev = e, t.next = o, o.prev = t, i.next = t, t.prev = i, s.next = i, i.prev = s, i;
242
+ }
243
+ function bt(e, r, t, i) {
244
+ const o = new ot(e, r, t);
245
+ return i ? (o.next = i.next, o.prev = i, i.next.prev = o, i.next = o) : (o.prev = o, o.next = o), o;
246
+ }
247
+ function qe(e) {
248
+ e.next.prev = e.prev, e.prev.next = e.next, e.prevZ && (e.prevZ.nextZ = e.nextZ), e.nextZ && (e.nextZ.prevZ = e.prevZ);
249
+ }
250
+ class ot {
251
+ constructor(r, t, i) {
252
+ this.prev = null, this.next = null, this.z = 0, this.prevZ = null, this.nextZ = null, this.steiner = !1, this.i = r, this.x = t, this.y = i;
253
+ }
254
+ }
255
+ function fu(e) {
256
+ let r = 0, t = 0, i = 0, o = 0, s = 0, l = 0, c = 0, p = 0, g = 0;
257
+ const D = /* @__PURE__ */ new Set();
258
+ for (const d of e) {
259
+ const E = d.geometry;
260
+ switch (E.type) {
261
+ case "Point":
262
+ t++, r++, D.add(E.coordinates.length);
263
+ break;
264
+ case "MultiPoint":
265
+ t++, r += E.coordinates.length;
266
+ for (const C of E.coordinates)
267
+ D.add(C.length);
268
+ break;
269
+ case "LineString":
270
+ s++, i += E.coordinates.length, o++;
271
+ for (const C of E.coordinates)
272
+ D.add(C.length);
273
+ break;
274
+ case "MultiLineString":
275
+ s++;
276
+ for (const C of E.coordinates) {
277
+ i += C.length, o++;
278
+ for (const m of C)
279
+ D.add(m.length);
280
+ }
281
+ break;
282
+ case "Polygon":
283
+ g++, c++, p += E.coordinates.length;
284
+ const S = E.coordinates.flat();
285
+ l += S.length;
286
+ for (const C of S)
287
+ D.add(C.length);
288
+ break;
289
+ case "MultiPolygon":
290
+ g++;
291
+ for (const C of E.coordinates) {
292
+ c++, p += C.length;
293
+ const m = C.flat();
294
+ l += m.length;
295
+ for (const N of m)
296
+ D.add(N.length);
297
+ }
298
+ break;
299
+ default:
300
+ throw new Error(`Unsupported geometry type: ${E.type}`);
301
+ }
302
+ }
303
+ return {
304
+ coordLength: D.size > 0 ? Math.max(...D) : 2,
305
+ pointPositionsCount: r,
306
+ pointFeaturesCount: t,
307
+ linePositionsCount: i,
308
+ linePathsCount: o,
309
+ lineFeaturesCount: s,
310
+ polygonPositionsCount: l,
311
+ polygonObjectsCount: c,
312
+ polygonRingsCount: p,
313
+ polygonFeaturesCount: g
314
+ };
315
+ }
316
+ function gu(e, r, t) {
317
+ const i = hu(e), o = Object.keys(i).filter((s) => i[s] !== Array);
318
+ return Du(e, {
319
+ propArrayTypes: i,
320
+ ...r
321
+ }, {
322
+ numericPropKeys: t && t.numericPropKeys || o,
323
+ PositionDataType: t ? t.PositionDataType : Float32Array,
324
+ triangulate: t ? t.triangulate : !0
325
+ });
326
+ }
327
+ function hu(e) {
328
+ const r = {};
329
+ for (const t of e)
330
+ if (t.properties)
331
+ for (const i in t.properties) {
332
+ const o = t.properties[i];
333
+ r[i] = vu(o, r[i]);
334
+ }
335
+ return r;
336
+ }
337
+ function Du(e, r, t) {
338
+ const { pointPositionsCount: i, pointFeaturesCount: o, linePositionsCount: s, linePathsCount: l, lineFeaturesCount: c, polygonPositionsCount: p, polygonObjectsCount: g, polygonRingsCount: D, polygonFeaturesCount: d, propArrayTypes: E, coordLength: S } = r, { numericPropKeys: C = [], PositionDataType: m = Float32Array, triangulate: N = !0 } = t, P = e[0] && "id" in e[0], R = e.length > 65535 ? Uint32Array : Uint16Array, w = {
339
+ type: "Point",
340
+ positions: new m(i * S),
341
+ globalFeatureIds: new R(i),
342
+ featureIds: o > 65535 ? new Uint32Array(i) : new Uint16Array(i),
343
+ numericProps: {},
344
+ properties: [],
345
+ fields: []
346
+ }, y = {
347
+ type: "LineString",
348
+ pathIndices: s > 65535 ? new Uint32Array(l + 1) : new Uint16Array(l + 1),
349
+ positions: new m(s * S),
350
+ globalFeatureIds: new R(s),
351
+ featureIds: c > 65535 ? new Uint32Array(s) : new Uint16Array(s),
352
+ numericProps: {},
353
+ properties: [],
354
+ fields: []
355
+ }, q = {
356
+ type: "Polygon",
357
+ polygonIndices: p > 65535 ? new Uint32Array(g + 1) : new Uint16Array(g + 1),
358
+ primitivePolygonIndices: p > 65535 ? new Uint32Array(D + 1) : new Uint16Array(D + 1),
359
+ positions: new m(p * S),
360
+ globalFeatureIds: new R(p),
361
+ featureIds: d > 65535 ? new Uint32Array(p) : new Uint16Array(p),
362
+ numericProps: {},
363
+ properties: [],
364
+ fields: []
365
+ };
366
+ N && (q.triangles = []);
367
+ for (const L of [w, y, q])
368
+ for (const G of C) {
369
+ const h = E[G];
370
+ L.numericProps[G] = new h(L.positions.length / S);
371
+ }
372
+ y.pathIndices[l] = s, q.polygonIndices[g] = p, q.primitivePolygonIndices[D] = p;
373
+ const j = {
374
+ pointPosition: 0,
375
+ pointFeature: 0,
376
+ linePosition: 0,
377
+ linePath: 0,
378
+ lineFeature: 0,
379
+ polygonPosition: 0,
380
+ polygonObject: 0,
381
+ polygonRing: 0,
382
+ polygonFeature: 0,
383
+ feature: 0
384
+ };
385
+ for (const L of e) {
386
+ const G = L.geometry, h = L.properties || {};
387
+ switch (G.type) {
388
+ case "Point":
389
+ mu(G, w, j, S, h), w.properties.push(rt(h, C)), P && w.fields.push({ id: L.id }), j.pointFeature++;
390
+ break;
391
+ case "LineString":
392
+ du(G, y, j, S, h), y.properties.push(rt(h, C)), P && y.fields.push({ id: L.id }), j.lineFeature++;
393
+ break;
394
+ case "Polygon":
395
+ Au(G, q, j, S, h), q.properties.push(rt(h, C)), P && q.fields.push({ id: L.id }), j.polygonFeature++;
396
+ break;
397
+ default:
398
+ throw new Error("Invalid geometry type");
399
+ }
400
+ j.feature++;
401
+ }
402
+ return yu(w, y, q, S);
403
+ }
404
+ function mu(e, r, t, i, o) {
405
+ r.positions.set(e.data, t.pointPosition * i);
406
+ const s = e.data.length / i;
407
+ ct(r, o, t.pointPosition, s), r.globalFeatureIds.fill(t.feature, t.pointPosition, t.pointPosition + s), r.featureIds.fill(t.pointFeature, t.pointPosition, t.pointPosition + s), t.pointPosition += s;
408
+ }
409
+ function du(e, r, t, i, o) {
410
+ r.positions.set(e.data, t.linePosition * i);
411
+ const s = e.data.length / i;
412
+ ct(r, o, t.linePosition, s), r.globalFeatureIds.fill(t.feature, t.linePosition, t.linePosition + s), r.featureIds.fill(t.lineFeature, t.linePosition, t.linePosition + s);
413
+ for (let l = 0, c = e.indices.length; l < c; ++l) {
414
+ const p = e.indices[l], g = l === c - 1 ? e.data.length : e.indices[l + 1];
415
+ r.pathIndices[t.linePath++] = t.linePosition, t.linePosition += (g - p) / i;
416
+ }
417
+ }
418
+ function Au(e, r, t, i, o) {
419
+ r.positions.set(e.data, t.polygonPosition * i);
420
+ const s = e.data.length / i;
421
+ ct(r, o, t.polygonPosition, s), r.globalFeatureIds.fill(t.feature, t.polygonPosition, t.polygonPosition + s), r.featureIds.fill(t.polygonFeature, t.polygonPosition, t.polygonPosition + s);
422
+ for (let l = 0, c = e.indices.length; l < c; ++l) {
423
+ const p = t.polygonPosition;
424
+ r.polygonIndices[t.polygonObject++] = p;
425
+ const g = e.areas[l], D = e.indices[l], d = e.indices[l + 1];
426
+ for (let S = 0, C = D.length; S < C; ++S) {
427
+ const m = D[S], N = S === C - 1 ? (
428
+ // last line, so either read to:
429
+ d === void 0 ? e.data.length : d[0]
430
+ ) : D[S + 1];
431
+ r.primitivePolygonIndices[t.polygonRing++] = t.polygonPosition, t.polygonPosition += (N - m) / i;
432
+ }
433
+ const E = t.polygonPosition;
434
+ Eu(r, g, D, { startPosition: p, endPosition: E, coordLength: i });
435
+ }
436
+ }
437
+ function Eu(e, r, t, { startPosition: i, endPosition: o, coordLength: s }) {
438
+ if (!e.triangles)
439
+ return;
440
+ const l = i * s, c = o * s, p = e.positions.subarray(l, c), g = t[0], D = t.slice(1).map((E) => (E - g) / s), d = Yt(p, D, s, r);
441
+ for (let E = 0, S = d.length; E < S; ++E)
442
+ e.triangles.push(i + d[E]);
443
+ }
444
+ function ut(e, r) {
445
+ const t = {};
446
+ for (const i in e)
447
+ t[i] = { value: e[i], size: r };
448
+ return t;
449
+ }
450
+ function yu(e, r, t, i) {
451
+ const o = {
452
+ shape: "binary-feature-collection",
453
+ points: {
454
+ ...e,
455
+ positions: { value: e.positions, size: i },
456
+ globalFeatureIds: { value: e.globalFeatureIds, size: 1 },
457
+ featureIds: { value: e.featureIds, size: 1 },
458
+ numericProps: ut(e.numericProps, 1)
459
+ },
460
+ lines: {
461
+ ...r,
462
+ positions: { value: r.positions, size: i },
463
+ pathIndices: { value: r.pathIndices, size: 1 },
464
+ globalFeatureIds: { value: r.globalFeatureIds, size: 1 },
465
+ featureIds: { value: r.featureIds, size: 1 },
466
+ numericProps: ut(r.numericProps, 1)
467
+ },
468
+ polygons: {
469
+ ...t,
470
+ positions: { value: t.positions, size: i },
471
+ polygonIndices: { value: t.polygonIndices, size: 1 },
472
+ primitivePolygonIndices: { value: t.primitivePolygonIndices, size: 1 },
473
+ globalFeatureIds: { value: t.globalFeatureIds, size: 1 },
474
+ featureIds: { value: t.featureIds, size: 1 },
475
+ numericProps: ut(t.numericProps, 1)
476
+ }
477
+ // triangles not expected
478
+ };
479
+ return o.polygons && t.triangles && (o.polygons.triangles = { value: new Uint32Array(t.triangles), size: 1 }), o;
480
+ }
481
+ function ct(e, r, t, i) {
482
+ for (const o in e.numericProps)
483
+ if (o in r) {
484
+ const s = r[o];
485
+ e.numericProps[o].fill(s, t, t + i);
486
+ }
487
+ }
488
+ function rt(e, r) {
489
+ const t = {};
490
+ for (const i in e)
491
+ r.includes(i) || (t[i] = e[i]);
492
+ return t;
493
+ }
494
+ function vu(e, r) {
495
+ return r === Array || !Number.isFinite(e) ? Array : r === Float64Array || Math.fround(e) !== e ? Float64Array : Float32Array;
496
+ }
497
+ function Cu(e, r = { coordLength: 2, fixRingWinding: !0 }) {
498
+ return e.map((t) => bu(t, r));
499
+ }
500
+ function wt(e, r, t, i) {
501
+ t.push(r.length), r.push(...e);
502
+ for (let o = e.length; o < i.coordLength; o++)
503
+ r.push(0);
504
+ }
505
+ function at(e, r, t, i) {
506
+ t.push(r.length);
507
+ for (const o of e) {
508
+ r.push(...o);
509
+ for (let s = o.length; s < i.coordLength; s++)
510
+ r.push(0);
511
+ }
512
+ }
513
+ function xt(e, r, t, i, o) {
514
+ let s = 0;
515
+ const l = [], c = [];
516
+ for (const p of e) {
517
+ const g = p.map((E) => E.slice(0, 2));
518
+ let D = _t(g.flat());
519
+ const d = D < 0;
520
+ o.fixRingWinding && (s === 0 && !d || s > 0 && d) && (p.reverse(), D = -D), l.push(D), at(p, r, c, o), s++;
521
+ }
522
+ s > 0 && (i.push(l), t.push(c));
523
+ }
524
+ function bu(e, r) {
525
+ const { geometry: t } = e;
526
+ if (t.type === "GeometryCollection")
527
+ throw new Error("GeometryCollection type not supported");
528
+ const i = [], o = [];
529
+ let s, l;
530
+ switch (t.type) {
531
+ case "Point":
532
+ l = "Point", wt(t.coordinates, i, o, r);
533
+ break;
534
+ case "MultiPoint":
535
+ l = "Point", t.coordinates.map((c) => wt(c, i, o, r));
536
+ break;
537
+ case "LineString":
538
+ l = "LineString", at(t.coordinates, i, o, r);
539
+ break;
540
+ case "MultiLineString":
541
+ l = "LineString", t.coordinates.map((c) => at(c, i, o, r));
542
+ break;
543
+ case "Polygon":
544
+ l = "Polygon", s = [], xt(t.coordinates, i, o, s, r);
545
+ break;
546
+ case "MultiPolygon":
547
+ l = "Polygon", s = [], t.coordinates.map((c) => xt(c, i, o, s, r));
548
+ break;
549
+ default:
550
+ throw new Error(`Unknown type: ${l}`);
551
+ }
552
+ return { ...e, geometry: { type: l, indices: o, data: i, areas: s } };
553
+ }
554
+ function Gt(e, r = { fixRingWinding: !0, triangulate: !0 }) {
555
+ const t = fu(e), i = t.coordLength, { fixRingWinding: o } = r, s = Cu(e, { coordLength: i, fixRingWinding: o });
556
+ return gu(s, t, {
557
+ numericPropKeys: r.numericPropKeys,
558
+ PositionDataType: r.PositionDataType || Float32Array,
559
+ triangulate: r.triangulate
560
+ });
561
+ }
562
+ function V(e) {
563
+ return e && e.normalize && e.normalize(), e && e.textContent || "";
564
+ }
565
+ function x(e, r) {
566
+ const t = e.getElementsByTagName(r);
567
+ return t.length ? t[0] : null;
568
+ }
569
+ function jt(e) {
570
+ const r = {};
571
+ if (e) {
572
+ const t = x(e, "line");
573
+ if (t) {
574
+ const i = V(x(t, "color")), o = parseFloat(V(x(t, "opacity"))), s = parseFloat(V(x(t, "width")));
575
+ i && (r.stroke = i), isNaN(o) || (r["stroke-opacity"] = o), isNaN(s) || (r["stroke-width"] = s * 96 / 25.4);
576
+ }
577
+ }
578
+ return r;
579
+ }
580
+ function zt(e) {
581
+ let r = [];
582
+ if (e !== null)
583
+ for (let t = 0; t < e.childNodes.length; t++) {
584
+ const i = e.childNodes[t];
585
+ if (i.nodeType !== 1) continue;
586
+ const o = ["heart", "gpxtpx:hr", "hr"].includes(i.nodeName) ? "heart" : i.nodeName;
587
+ if (o === "gpxtpx:TrackPointExtension")
588
+ r = r.concat(zt(i));
589
+ else {
590
+ const s = V(i);
591
+ r.push([o, isNaN(s) ? s : parseFloat(s)]);
592
+ }
593
+ }
594
+ return r;
595
+ }
596
+ function st(e, r) {
597
+ const t = {};
598
+ let i, o;
599
+ for (o = 0; o < r.length; o++)
600
+ i = x(e, r[o]), i && (t[r[o]] = V(i));
601
+ return t;
602
+ }
603
+ function pt(e) {
604
+ const r = st(e, [
605
+ "name",
606
+ "cmt",
607
+ "desc",
608
+ "type",
609
+ "time",
610
+ "keywords"
611
+ ]), t = e.getElementsByTagNameNS(
612
+ "http://www.garmin.com/xmlschemas/GpxExtensions/v3",
613
+ "*"
614
+ );
615
+ for (let o = 0; o < t.length; o++) {
616
+ const s = t[o];
617
+ s.parentNode.parentNode === e && (r[s.tagName.replace(":", "_")] = V(s));
618
+ }
619
+ const i = e.getElementsByTagName("link");
620
+ i.length && (r.links = []);
621
+ for (let o = 0; o < i.length; o++)
622
+ r.links.push(
623
+ Object.assign(
624
+ { href: i[o].getAttribute("href") },
625
+ st(i[o], ["text", "type"])
626
+ )
627
+ );
628
+ return r;
629
+ }
630
+ function Ht(e) {
631
+ const r = [
632
+ parseFloat(e.getAttribute("lon")),
633
+ parseFloat(e.getAttribute("lat"))
634
+ ], t = x(e, "ele"), i = x(e, "time");
635
+ if (t) {
636
+ const o = parseFloat(V(t));
637
+ isNaN(o) || r.push(o);
638
+ }
639
+ return {
640
+ coordinates: r,
641
+ time: i ? V(i) : null,
642
+ extendedValues: zt(x(e, "extensions"))
643
+ };
644
+ }
645
+ function wu(e) {
646
+ const r = Zt(e, "rtept");
647
+ if (r)
648
+ return {
649
+ type: "Feature",
650
+ properties: Object.assign(
651
+ pt(e),
652
+ jt(x(e, "extensions")),
653
+ { _gpxType: "rte" }
654
+ ),
655
+ geometry: {
656
+ type: "LineString",
657
+ coordinates: r.line
658
+ }
659
+ };
660
+ }
661
+ function Zt(e, r) {
662
+ const t = e.getElementsByTagName(r);
663
+ if (t.length < 2) return;
664
+ const i = [], o = [], s = {};
665
+ for (let l = 0; l < t.length; l++) {
666
+ const c = Ht(t[l]);
667
+ i.push(c.coordinates), c.time && o.push(c.time);
668
+ for (let p = 0; p < c.extendedValues.length; p++) {
669
+ const [g, D] = c.extendedValues[p], d = g === "heart" ? g : g.replace("gpxtpx:", "") + "s";
670
+ s[d] || (s[d] = Array(t.length).fill(null)), s[d][l] = D;
671
+ }
672
+ }
673
+ return {
674
+ line: i,
675
+ times: o,
676
+ extendedValues: s
677
+ };
678
+ }
679
+ function xu(e) {
680
+ const r = e.getElementsByTagName("trkseg"), t = [], i = [], o = [];
681
+ for (let c = 0; c < r.length; c++) {
682
+ const p = Zt(r[c], "trkpt");
683
+ p && (o.push(p), p.times && p.times.length && i.push(p.times));
684
+ }
685
+ if (o.length === 0) return;
686
+ const s = o.length > 1, l = Object.assign(
687
+ pt(e),
688
+ jt(x(e, "extensions")),
689
+ { _gpxType: "trk" },
690
+ i.length ? {
691
+ coordinateProperties: {
692
+ times: s ? i : i[0]
693
+ }
694
+ } : {}
695
+ );
696
+ for (let c = 0; c < o.length; c++) {
697
+ const p = o[c];
698
+ t.push(p.line);
699
+ for (const [g, D] of Object.entries(p.extendedValues)) {
700
+ l.coordinateProperties || (l.coordinateProperties = {});
701
+ const d = l.coordinateProperties;
702
+ s ? (d[g] || (d[g] = o.map(
703
+ (E) => new Array(E.line.length).fill(null)
704
+ )), d[g][c] = D) : d[g] = D;
705
+ }
706
+ }
707
+ return {
708
+ type: "Feature",
709
+ properties: l,
710
+ geometry: s ? {
711
+ type: "MultiLineString",
712
+ coordinates: t
713
+ } : {
714
+ type: "LineString",
715
+ coordinates: t[0]
716
+ }
717
+ };
718
+ }
719
+ function Nu(e) {
720
+ return {
721
+ type: "Feature",
722
+ properties: Object.assign(pt(e), st(e, ["sym"])),
723
+ geometry: {
724
+ type: "Point",
725
+ coordinates: Ht(e).coordinates
726
+ }
727
+ };
728
+ }
729
+ function* Tu(e) {
730
+ const r = e.getElementsByTagName("trk"), t = e.getElementsByTagName("rte"), i = e.getElementsByTagName("wpt");
731
+ for (let o = 0; o < r.length; o++) {
732
+ const s = xu(r[o]);
733
+ s && (yield s);
734
+ }
735
+ for (let o = 0; o < t.length; o++) {
736
+ const s = wu(t[o]);
737
+ s && (yield s);
738
+ }
739
+ for (let o = 0; o < i.length; o++)
740
+ yield Nu(i[o]);
741
+ }
742
+ function Bu(e) {
743
+ return {
744
+ type: "FeatureCollection",
745
+ features: Array.from(Tu(e))
746
+ };
747
+ }
748
+ const Fu = "http://www.garmin.com/xmlschemas/ActivityExtension/v2", Su = [
749
+ ["heartRate", "heartRates"],
750
+ ["Cadence", "cadences"],
751
+ // Extended Trackpoint attributes
752
+ ["Speed", "speeds"],
753
+ ["Watts", "watts"]
754
+ ], Pu = [
755
+ ["TotalTimeSeconds", "totalTimeSeconds"],
756
+ ["DistanceMeters", "distanceMeters"],
757
+ ["MaximumSpeed", "maxSpeed"],
758
+ ["AverageHeartRateBpm", "avgHeartRate"],
759
+ ["MaximumHeartRateBpm", "maxHeartRate"],
760
+ // Extended Lap attributes
761
+ ["AvgSpeed", "avgSpeed"],
762
+ ["AvgWatts", "avgWatts"],
763
+ ["MaxWatts", "maxWatts"]
764
+ ];
765
+ function ku(e) {
766
+ const r = {};
767
+ for (const [t, i] of e)
768
+ r[t] = i;
769
+ return r;
770
+ }
771
+ function Xt(e, r) {
772
+ const t = [];
773
+ for (const [i, o] of r) {
774
+ let s = x(e, i);
775
+ if (!s) {
776
+ const c = e.getElementsByTagNameNS(Fu, i);
777
+ c.length && (s = c[0]);
778
+ }
779
+ const l = parseFloat(V(s));
780
+ isNaN(l) || t.push([o, l]);
781
+ }
782
+ return t;
783
+ }
784
+ function Iu(e) {
785
+ const r = V(x(e, "LongitudeDegrees")), t = V(x(e, "LatitudeDegrees"));
786
+ if (!r.length || !t.length)
787
+ return null;
788
+ const i = [parseFloat(r), parseFloat(t)], o = x(e, "AltitudeMeters"), s = x(e, "HeartRateBpm"), l = x(e, "Time");
789
+ let c;
790
+ return o && (c = parseFloat(V(o)), isNaN(c) || i.push(c)), {
791
+ coordinates: i,
792
+ time: l ? V(l) : null,
793
+ heartRate: s ? parseFloat(V(s)) : null,
794
+ extensions: Xt(e, Su)
795
+ };
796
+ }
797
+ function Ru(e, r) {
798
+ const t = e.getElementsByTagName(r), i = [], o = [], s = [];
799
+ if (t.length < 2) return null;
800
+ const l = { extendedProperties: {} };
801
+ for (let c = 0; c < t.length; c++) {
802
+ const p = Iu(t[c]);
803
+ if (p !== null) {
804
+ i.push(p.coordinates), p.time && o.push(p.time), p.heartRate && s.push(p.heartRate);
805
+ for (const [g, D] of p.extensions)
806
+ l.extendedProperties[g] || (l.extendedProperties[g] = Array(t.length).fill(null)), l.extendedProperties[g][c] = D;
807
+ }
808
+ }
809
+ return Object.assign(l, {
810
+ line: i,
811
+ times: o,
812
+ heartRates: s
813
+ });
814
+ }
815
+ function Nt(e) {
816
+ const r = e.getElementsByTagName("Track"), t = [], i = [], o = [], s = [];
817
+ let l;
818
+ const c = ku(Xt(e, Pu)), p = x(e, "Name");
819
+ p && (c.name = V(p));
820
+ for (let g = 0; g < r.length; g++)
821
+ l = Ru(r[g], "Trackpoint"), l && (t.push(l.line), l.times.length && i.push(l.times), l.heartRates.length && o.push(l.heartRates), s.push(l.extendedProperties));
822
+ for (let g = 0; g < s.length; g++) {
823
+ const D = s[g];
824
+ for (const d in D)
825
+ r.length === 1 ? c[d] = l.extendedProperties[d] : (c[d] || (c[d] = t.map(
826
+ (E) => Array(E.length).fill(null)
827
+ )), c[d][g] = D[d]);
828
+ }
829
+ if (t.length !== 0)
830
+ return (i.length || o.length) && (c.coordinateProperties = Object.assign(
831
+ i.length ? {
832
+ times: t.length === 1 ? i[0] : i
833
+ } : {},
834
+ o.length ? {
835
+ heart: t.length === 1 ? o[0] : o
836
+ } : {}
837
+ )), {
838
+ type: "Feature",
839
+ properties: c,
840
+ geometry: {
841
+ type: t.length === 1 ? "LineString" : "MultiLineString",
842
+ coordinates: t.length === 1 ? t[0] : t
843
+ }
844
+ };
845
+ }
846
+ function* qu(e) {
847
+ const r = e.getElementsByTagName("Lap");
848
+ for (let i = 0; i < r.length; i++) {
849
+ const o = Nt(r[i]);
850
+ o && (yield o);
851
+ }
852
+ const t = e.getElementsByTagName("Courses");
853
+ for (let i = 0; i < t.length; i++) {
854
+ const o = Nt(t[i]);
855
+ o && (yield o);
856
+ }
857
+ }
858
+ function Lu(e) {
859
+ return {
860
+ type: "FeatureCollection",
861
+ features: Array.from(qu(e))
862
+ };
863
+ }
864
+ const Ou = /\s*/g, _u = /^\s*|\s*$/g, Uu = /\s+/;
865
+ function Tt(e) {
866
+ if (!e || !e.length) return 0;
867
+ let r = 0;
868
+ for (let t = 0; t < e.length; t++)
869
+ r = (r << 5) - r + e.charCodeAt(t) | 0;
870
+ return r;
871
+ }
872
+ function $t(e) {
873
+ return e.replace(Ou, "").split(",").map(parseFloat);
874
+ }
875
+ function Bt(e) {
876
+ return e.replace(_u, "").split(Uu).map($t);
877
+ }
878
+ function lt(e) {
879
+ if (e.xml !== void 0) return e.xml;
880
+ if (e.tagName) {
881
+ let r = e.tagName;
882
+ for (let t = 0; t < e.attributes.length; t++)
883
+ r += e.attributes[t].name + e.attributes[t].value;
884
+ for (let t = 0; t < e.childNodes.length; t++)
885
+ r += lt(e.childNodes[t]);
886
+ return r;
887
+ }
888
+ return e.nodeName === "#text" ? (e.nodeValue || e.value || "").trim() : e.nodeName === "#cdata-section" ? e.nodeValue : "";
889
+ }
890
+ const Ee = ["Polygon", "LineString", "Point", "Track", "gx:Track"];
891
+ function je(e, r, t) {
892
+ let i = V(x(r, "color")) || "";
893
+ const o = t == "stroke" || t === "fill" ? t : t + "-color";
894
+ i.substr(0, 1) === "#" && (i = i.substr(1)), i.length === 6 || i.length === 3 ? e[o] = i : i.length === 8 && (e[t + "-opacity"] = parseInt(i.substr(0, 2), 16) / 255, e[o] = "#" + i.substr(6, 2) + i.substr(4, 2) + i.substr(2, 2));
895
+ }
896
+ function ze(e, r, t, i) {
897
+ const o = parseFloat(V(x(r, t)));
898
+ isNaN(o) || (e[i] = o);
899
+ }
900
+ function Mu(e) {
901
+ let r = e.getElementsByTagName("coord");
902
+ const t = [], i = [];
903
+ r.length === 0 && (r = e.getElementsByTagName("gx:coord"));
904
+ for (let s = 0; s < r.length; s++)
905
+ t.push(V(r[s]).split(" ").map(parseFloat));
906
+ const o = e.getElementsByTagName("when");
907
+ for (let s = 0; s < o.length; s++) i.push(V(o[s]));
908
+ return {
909
+ coords: t,
910
+ times: i
911
+ };
912
+ }
913
+ function Ze(e) {
914
+ let r, t, i, o, s;
915
+ const l = [], c = [];
916
+ if (x(e, "MultiGeometry"))
917
+ return Ze(x(e, "MultiGeometry"));
918
+ if (x(e, "MultiTrack"))
919
+ return Ze(x(e, "MultiTrack"));
920
+ if (x(e, "gx:MultiTrack"))
921
+ return Ze(x(e, "gx:MultiTrack"));
922
+ for (i = 0; i < Ee.length; i++)
923
+ if (t = e.getElementsByTagName(Ee[i]), t) {
924
+ for (o = 0; o < t.length; o++)
925
+ if (r = t[o], Ee[i] === "Point")
926
+ l.push({
927
+ type: "Point",
928
+ coordinates: $t(V(x(r, "coordinates")))
929
+ });
930
+ else if (Ee[i] === "LineString")
931
+ l.push({
932
+ type: "LineString",
933
+ coordinates: Bt(V(x(r, "coordinates")))
934
+ });
935
+ else if (Ee[i] === "Polygon") {
936
+ const p = r.getElementsByTagName("LinearRing"), g = [];
937
+ for (s = 0; s < p.length; s++)
938
+ g.push(Bt(V(x(p[s], "coordinates"))));
939
+ l.push({
940
+ type: "Polygon",
941
+ coordinates: g
942
+ });
943
+ } else if (Ee[i] === "Track" || Ee[i] === "gx:Track") {
944
+ const p = Mu(r);
945
+ l.push({
946
+ type: "LineString",
947
+ coordinates: p.coords
948
+ }), p.times.length && c.push(p.times);
949
+ }
950
+ }
951
+ return {
952
+ geoms: l,
953
+ coordTimes: c
954
+ };
955
+ }
956
+ function Vu(e, r, t, i) {
957
+ const o = Ze(e);
958
+ let s;
959
+ const l = {}, c = V(x(e, "name")), p = V(x(e, "address"));
960
+ let g = V(x(e, "styleUrl"));
961
+ const D = V(x(e, "description")), d = x(e, "TimeSpan"), E = x(e, "TimeStamp"), S = x(e, "ExtendedData");
962
+ let C = x(e, "IconStyle"), m = x(e, "LabelStyle"), N = x(e, "LineStyle"), P = x(e, "PolyStyle");
963
+ const R = x(e, "visibility");
964
+ if (c && (l.name = c), p && (l.address = p), g) {
965
+ g[0] !== "#" && (g = "#" + g), l.styleUrl = g, r[g] && (l.styleHash = r[g]), t[g] && (l.styleMapHash = t[g], l.styleHash = r[t[g].normal]);
966
+ const y = i[l.styleHash];
967
+ y && (C || (C = x(y, "IconStyle")), m || (m = x(y, "LabelStyle")), N || (N = x(y, "LineStyle")), P || (P = x(y, "PolyStyle")));
968
+ }
969
+ if (D && (l.description = D), d) {
970
+ const y = V(x(d, "begin")), q = V(x(d, "end"));
971
+ l.timespan = { begin: y, end: q };
972
+ }
973
+ if (E && (l.timestamp = V(x(E, "when"))), C) {
974
+ je(l, C, "icon"), ze(l, C, "scale", "icon-scale"), ze(l, C, "heading", "icon-heading");
975
+ const y = x(C, "hotSpot");
976
+ if (y) {
977
+ const j = parseFloat(y.getAttribute("x")), L = parseFloat(y.getAttribute("y"));
978
+ !isNaN(j) && !isNaN(L) && (l["icon-offset"] = [j, L]);
979
+ }
980
+ const q = x(C, "Icon");
981
+ if (q) {
982
+ const j = V(x(q, "href"));
983
+ j && (l.icon = j);
984
+ }
985
+ }
986
+ if (m && (je(l, m, "label"), ze(l, m, "scale", "label-scale")), N && (je(l, N, "stroke"), ze(l, N, "width", "stroke-width")), P) {
987
+ je(l, P, "fill");
988
+ const y = V(x(P, "fill")), q = V(x(P, "outline"));
989
+ y && (l["fill-opacity"] = y === "1" ? l["fill-opacity"] || 1 : 0), q && (l["stroke-opacity"] = q === "1" ? l["stroke-opacity"] || 1 : 0);
990
+ }
991
+ if (S) {
992
+ const y = S.getElementsByTagName("Data"), q = S.getElementsByTagName("SimpleData");
993
+ for (s = 0; s < y.length; s++)
994
+ l[y[s].getAttribute("name")] = V(
995
+ x(y[s], "value")
996
+ );
997
+ for (s = 0; s < q.length; s++)
998
+ l[q[s].getAttribute("name")] = V(q[s]);
999
+ }
1000
+ R && (l.visibility = V(R)), o.coordTimes.length && (l.coordinateProperties = {
1001
+ times: o.coordTimes.length === 1 ? o.coordTimes[0] : o.coordTimes
1002
+ });
1003
+ const w = {
1004
+ type: "Feature",
1005
+ geometry: o.geoms.length === 0 ? null : o.geoms.length === 1 ? o.geoms[0] : {
1006
+ type: "GeometryCollection",
1007
+ geometries: o.geoms
1008
+ },
1009
+ properties: l
1010
+ };
1011
+ return e.getAttribute("id") && (w.id = e.getAttribute("id")), w;
1012
+ }
1013
+ function* Gu(e) {
1014
+ const r = {}, t = {}, i = {}, o = e.getElementsByTagName("Placemark"), s = e.getElementsByTagName("Style"), l = e.getElementsByTagName("StyleMap");
1015
+ for (let c = 0; c < s.length; c++) {
1016
+ const p = s[c], g = Tt(lt(p)).toString(16);
1017
+ let D = p.getAttribute("id");
1018
+ !D && p.parentNode.tagName.replace("gx:", "") === "CascadingStyle" && (D = p.parentNode.getAttribute("kml:id") || p.parentNode.getAttribute("id")), r["#" + D] = g, t[g] = p;
1019
+ }
1020
+ for (let c = 0; c < l.length; c++) {
1021
+ r["#" + l[c].getAttribute("id")] = Tt(
1022
+ lt(l[c])
1023
+ ).toString(16);
1024
+ const p = l[c].getElementsByTagName("Pair"), g = {};
1025
+ for (let D = 0; D < p.length; D++)
1026
+ g[V(x(p[D], "key"))] = V(
1027
+ x(p[D], "styleUrl")
1028
+ );
1029
+ i["#" + l[c].getAttribute("id")] = g;
1030
+ }
1031
+ for (let c = 0; c < o.length; c++) {
1032
+ const p = Vu(
1033
+ o[c],
1034
+ r,
1035
+ i,
1036
+ t
1037
+ );
1038
+ p && (yield p);
1039
+ }
1040
+ }
1041
+ function ju(e) {
1042
+ return {
1043
+ type: "FeatureCollection",
1044
+ features: Array.from(Gu(e))
1045
+ };
1046
+ }
1047
+ var ke = {}, pe = {}, Ne = {}, Ft;
1048
+ function $e() {
1049
+ if (Ft) return Ne;
1050
+ Ft = 1;
1051
+ function e(o, s, l) {
1052
+ if (l === void 0 && (l = Array.prototype), o && typeof l.find == "function")
1053
+ return l.find.call(o, s);
1054
+ for (var c = 0; c < o.length; c++)
1055
+ if (Object.prototype.hasOwnProperty.call(o, c)) {
1056
+ var p = o[c];
1057
+ if (s.call(void 0, p, c, o))
1058
+ return p;
1059
+ }
1060
+ }
1061
+ function r(o, s) {
1062
+ return s === void 0 && (s = Object), s && typeof s.freeze == "function" ? s.freeze(o) : o;
1063
+ }
1064
+ var t = r({
1065
+ /**
1066
+ * `text/html`, the only mime type that triggers treating an XML document as HTML.
1067
+ *
1068
+ * @see DOMParser.SupportedType.isHTML
1069
+ * @see https://www.iana.org/assignments/media-types/text/html IANA MimeType registration
1070
+ * @see https://en.wikipedia.org/wiki/HTML Wikipedia
1071
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString MDN
1072
+ * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-domparser-parsefromstring WHATWG HTML Spec
1073
+ */
1074
+ HTML: "text/html",
1075
+ /**
1076
+ * Helper method to check a mime type if it indicates an HTML document
1077
+ *
1078
+ * @param {string} [value]
1079
+ * @returns {boolean}
1080
+ *
1081
+ * @see https://www.iana.org/assignments/media-types/text/html IANA MimeType registration
1082
+ * @see https://en.wikipedia.org/wiki/HTML Wikipedia
1083
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString MDN
1084
+ * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-domparser-parsefromstring */
1085
+ isHTML: function(o) {
1086
+ return o === t.HTML;
1087
+ },
1088
+ /**
1089
+ * `application/xml`, the standard mime type for XML documents.
1090
+ *
1091
+ * @see https://www.iana.org/assignments/media-types/application/xml IANA MimeType registration
1092
+ * @see https://tools.ietf.org/html/rfc7303#section-9.1 RFC 7303
1093
+ * @see https://en.wikipedia.org/wiki/XML_and_MIME Wikipedia
1094
+ */
1095
+ XML_APPLICATION: "application/xml",
1096
+ /**
1097
+ * `text/html`, an alias for `application/xml`.
1098
+ *
1099
+ * @see https://tools.ietf.org/html/rfc7303#section-9.2 RFC 7303
1100
+ * @see https://www.iana.org/assignments/media-types/text/xml IANA MimeType registration
1101
+ * @see https://en.wikipedia.org/wiki/XML_and_MIME Wikipedia
1102
+ */
1103
+ XML_TEXT: "text/xml",
1104
+ /**
1105
+ * `application/xhtml+xml`, indicates an XML document that has the default HTML namespace,
1106
+ * but is parsed as an XML document.
1107
+ *
1108
+ * @see https://www.iana.org/assignments/media-types/application/xhtml+xml IANA MimeType registration
1109
+ * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocument WHATWG DOM Spec
1110
+ * @see https://en.wikipedia.org/wiki/XHTML Wikipedia
1111
+ */
1112
+ XML_XHTML_APPLICATION: "application/xhtml+xml",
1113
+ /**
1114
+ * `image/svg+xml`,
1115
+ *
1116
+ * @see https://www.iana.org/assignments/media-types/image/svg+xml IANA MimeType registration
1117
+ * @see https://www.w3.org/TR/SVG11/ W3C SVG 1.1
1118
+ * @see https://en.wikipedia.org/wiki/Scalable_Vector_Graphics Wikipedia
1119
+ */
1120
+ XML_SVG_IMAGE: "image/svg+xml"
1121
+ }), i = r({
1122
+ /**
1123
+ * The XHTML namespace.
1124
+ *
1125
+ * @see http://www.w3.org/1999/xhtml
1126
+ */
1127
+ HTML: "http://www.w3.org/1999/xhtml",
1128
+ /**
1129
+ * Checks if `uri` equals `NAMESPACE.HTML`.
1130
+ *
1131
+ * @param {string} [uri]
1132
+ *
1133
+ * @see NAMESPACE.HTML
1134
+ */
1135
+ isHTML: function(o) {
1136
+ return o === i.HTML;
1137
+ },
1138
+ /**
1139
+ * The SVG namespace.
1140
+ *
1141
+ * @see http://www.w3.org/2000/svg
1142
+ */
1143
+ SVG: "http://www.w3.org/2000/svg",
1144
+ /**
1145
+ * The `xml:` namespace.
1146
+ *
1147
+ * @see http://www.w3.org/XML/1998/namespace
1148
+ */
1149
+ XML: "http://www.w3.org/XML/1998/namespace",
1150
+ /**
1151
+ * The `xmlns:` namespace
1152
+ *
1153
+ * @see https://www.w3.org/2000/xmlns/
1154
+ */
1155
+ XMLNS: "http://www.w3.org/2000/xmlns/"
1156
+ });
1157
+ return Ne.find = e, Ne.freeze = r, Ne.MIME_TYPE = t, Ne.NAMESPACE = i, Ne;
1158
+ }
1159
+ var St;
1160
+ function Wt() {
1161
+ if (St) return pe;
1162
+ St = 1;
1163
+ var e = $e(), r = e.find, t = e.NAMESPACE;
1164
+ function i(u) {
1165
+ return u !== "";
1166
+ }
1167
+ function o(u) {
1168
+ return u ? u.split(/[\t\n\f\r ]+/).filter(i) : [];
1169
+ }
1170
+ function s(u, n) {
1171
+ return u.hasOwnProperty(n) || (u[n] = !0), u;
1172
+ }
1173
+ function l(u) {
1174
+ if (!u) return [];
1175
+ var n = o(u);
1176
+ return Object.keys(n.reduce(s, {}));
1177
+ }
1178
+ function c(u) {
1179
+ return function(n) {
1180
+ return u && u.indexOf(n) !== -1;
1181
+ };
1182
+ }
1183
+ function p(u, n) {
1184
+ for (var a in u)
1185
+ Object.prototype.hasOwnProperty.call(u, a) && (n[a] = u[a]);
1186
+ }
1187
+ function g(u, n) {
1188
+ var a = u.prototype;
1189
+ if (!(a instanceof n)) {
1190
+ let f = function() {
1191
+ };
1192
+ f.prototype = n.prototype, f = new f(), p(a, f), u.prototype = a = f;
1193
+ }
1194
+ a.constructor != u && (typeof u != "function" && console.error("unknown Class:" + u), a.constructor = u);
1195
+ }
1196
+ var D = {}, d = D.ELEMENT_NODE = 1, E = D.ATTRIBUTE_NODE = 2, S = D.TEXT_NODE = 3, C = D.CDATA_SECTION_NODE = 4, m = D.ENTITY_REFERENCE_NODE = 5, N = D.ENTITY_NODE = 6, P = D.PROCESSING_INSTRUCTION_NODE = 7, R = D.COMMENT_NODE = 8, w = D.DOCUMENT_NODE = 9, y = D.DOCUMENT_TYPE_NODE = 10, q = D.DOCUMENT_FRAGMENT_NODE = 11, j = D.NOTATION_NODE = 12, L = {}, G = {};
1197
+ L.INDEX_SIZE_ERR = (G[1] = "Index size error", 1), L.DOMSTRING_SIZE_ERR = (G[2] = "DOMString size error", 2);
1198
+ var h = L.HIERARCHY_REQUEST_ERR = (G[3] = "Hierarchy request error", 3);
1199
+ L.WRONG_DOCUMENT_ERR = (G[4] = "Wrong document", 4), L.INVALID_CHARACTER_ERR = (G[5] = "Invalid character", 5), L.NO_DATA_ALLOWED_ERR = (G[6] = "No data allowed", 6), L.NO_MODIFICATION_ALLOWED_ERR = (G[7] = "No modification allowed", 7);
1200
+ var v = L.NOT_FOUND_ERR = (G[8] = "Not found", 8);
1201
+ L.NOT_SUPPORTED_ERR = (G[9] = "Not supported", 9);
1202
+ var T = L.INUSE_ATTRIBUTE_ERR = (G[10] = "Attribute in use", 10);
1203
+ L.INVALID_STATE_ERR = (G[11] = "Invalid state", 11), L.SYNTAX_ERR = (G[12] = "Syntax error", 12), L.INVALID_MODIFICATION_ERR = (G[13] = "Invalid modification", 13), L.NAMESPACE_ERR = (G[14] = "Invalid namespace", 14), L.INVALID_ACCESS_ERR = (G[15] = "Invalid access", 15);
1204
+ function b(u, n) {
1205
+ if (n instanceof Error)
1206
+ var a = n;
1207
+ else
1208
+ a = this, Error.call(this, G[u]), this.message = G[u], Error.captureStackTrace && Error.captureStackTrace(this, b);
1209
+ return a.code = u, n && (this.message = this.message + ": " + n), a;
1210
+ }
1211
+ b.prototype = Error.prototype, p(L, b);
1212
+ function B() {
1213
+ }
1214
+ B.prototype = {
1215
+ /**
1216
+ * The number of nodes in the list. The range of valid child node indices is 0 to length-1 inclusive.
1217
+ * @standard level1
1218
+ */
1219
+ length: 0,
1220
+ /**
1221
+ * Returns the indexth item in the collection. If index is greater than or equal to the number of nodes in the list, this returns null.
1222
+ * @standard level1
1223
+ * @param index unsigned long
1224
+ * Index into the collection.
1225
+ * @return Node
1226
+ * The node at the indexth position in the NodeList, or null if that is not a valid index.
1227
+ */
1228
+ item: function(u) {
1229
+ return u >= 0 && u < this.length ? this[u] : null;
1230
+ },
1231
+ toString: function(u, n) {
1232
+ for (var a = [], f = 0; f < this.length; f++)
1233
+ we(this[f], a, u, n);
1234
+ return a.join("");
1235
+ },
1236
+ /**
1237
+ * @private
1238
+ * @param {function (Node):boolean} predicate
1239
+ * @returns {Node[]}
1240
+ */
1241
+ filter: function(u) {
1242
+ return Array.prototype.filter.call(this, u);
1243
+ },
1244
+ /**
1245
+ * @private
1246
+ * @param {Node} item
1247
+ * @returns {number}
1248
+ */
1249
+ indexOf: function(u) {
1250
+ return Array.prototype.indexOf.call(this, u);
1251
+ }
1252
+ };
1253
+ function U(u, n) {
1254
+ this._node = u, this._refresh = n, M(this);
1255
+ }
1256
+ function M(u) {
1257
+ var n = u._node._inc || u._node.ownerDocument._inc;
1258
+ if (u._inc !== n) {
1259
+ var a = u._refresh(u._node);
1260
+ if (Et(u, "length", a.length), !u.$$length || a.length < u.$$length)
1261
+ for (var f = a.length; f in u; f++)
1262
+ Object.prototype.hasOwnProperty.call(u, f) && delete u[f];
1263
+ p(a, u), u._inc = n;
1264
+ }
1265
+ }
1266
+ U.prototype.item = function(u) {
1267
+ return M(this), this[u] || null;
1268
+ }, g(U, B);
1269
+ function z() {
1270
+ }
1271
+ function I(u, n) {
1272
+ for (var a = u.length; a--; )
1273
+ if (u[a] === n)
1274
+ return a;
1275
+ }
1276
+ function O(u, n, a, f) {
1277
+ if (f ? n[I(n, f)] = a : n[n.length++] = a, u) {
1278
+ a.ownerElement = u;
1279
+ var A = u.ownerDocument;
1280
+ A && (f && Fe(A, u, f), Y(A, u, a));
1281
+ }
1282
+ }
1283
+ function _(u, n, a) {
1284
+ var f = I(n, a);
1285
+ if (f >= 0) {
1286
+ for (var A = n.length - 1; f < A; )
1287
+ n[f] = n[++f];
1288
+ if (n.length = A, u) {
1289
+ var k = u.ownerDocument;
1290
+ k && (Fe(k, u, a), a.ownerElement = null);
1291
+ }
1292
+ } else
1293
+ throw new b(v, new Error(u.tagName + "@" + a));
1294
+ }
1295
+ z.prototype = {
1296
+ length: 0,
1297
+ item: B.prototype.item,
1298
+ getNamedItem: function(u) {
1299
+ for (var n = this.length; n--; ) {
1300
+ var a = this[n];
1301
+ if (a.nodeName == u)
1302
+ return a;
1303
+ }
1304
+ },
1305
+ setNamedItem: function(u) {
1306
+ var n = u.ownerElement;
1307
+ if (n && n != this._ownerElement)
1308
+ throw new b(T);
1309
+ var a = this.getNamedItem(u.nodeName);
1310
+ return O(this._ownerElement, this, u, a), a;
1311
+ },
1312
+ /* returns Node */
1313
+ setNamedItemNS: function(u) {
1314
+ var n = u.ownerElement, a;
1315
+ if (n && n != this._ownerElement)
1316
+ throw new b(T);
1317
+ return a = this.getNamedItemNS(u.namespaceURI, u.localName), O(this._ownerElement, this, u, a), a;
1318
+ },
1319
+ /* returns Node */
1320
+ removeNamedItem: function(u) {
1321
+ var n = this.getNamedItem(u);
1322
+ return _(this._ownerElement, this, n), n;
1323
+ },
1324
+ // raises: NOT_FOUND_ERR,NO_MODIFICATION_ALLOWED_ERR
1325
+ //for level2
1326
+ removeNamedItemNS: function(u, n) {
1327
+ var a = this.getNamedItemNS(u, n);
1328
+ return _(this._ownerElement, this, a), a;
1329
+ },
1330
+ getNamedItemNS: function(u, n) {
1331
+ for (var a = this.length; a--; ) {
1332
+ var f = this[a];
1333
+ if (f.localName == n && f.namespaceURI == u)
1334
+ return f;
1335
+ }
1336
+ return null;
1337
+ }
1338
+ };
1339
+ function $() {
1340
+ }
1341
+ $.prototype = {
1342
+ /**
1343
+ * The DOMImplementation.hasFeature() method returns a Boolean flag indicating if a given feature is supported.
1344
+ * The different implementations fairly diverged in what kind of features were reported.
1345
+ * The latest version of the spec settled to force this method to always return true, where the functionality was accurate and in use.
1346
+ *
1347
+ * @deprecated It is deprecated and modern browsers return true in all cases.
1348
+ *
1349
+ * @param {string} feature
1350
+ * @param {string} [version]
1351
+ * @returns {boolean} always true
1352
+ *
1353
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/hasFeature MDN
1354
+ * @see https://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-5CED94D7 DOM Level 1 Core
1355
+ * @see https://dom.spec.whatwg.org/#dom-domimplementation-hasfeature DOM Living Standard
1356
+ */
1357
+ hasFeature: function(u, n) {
1358
+ return !0;
1359
+ },
1360
+ /**
1361
+ * Creates an XML Document object of the specified type with its document element.
1362
+ *
1363
+ * __It behaves slightly different from the description in the living standard__:
1364
+ * - There is no interface/class `XMLDocument`, it returns a `Document` instance.
1365
+ * - `contentType`, `encoding`, `mode`, `origin`, `url` fields are currently not declared.
1366
+ * - this implementation is not validating names or qualified names
1367
+ * (when parsing XML strings, the SAX parser takes care of that)
1368
+ *
1369
+ * @param {string|null} namespaceURI
1370
+ * @param {string} qualifiedName
1371
+ * @param {DocumentType=null} doctype
1372
+ * @returns {Document}
1373
+ *
1374
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createDocument MDN
1375
+ * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#Level-2-Core-DOM-createDocument DOM Level 2 Core (initial)
1376
+ * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocument DOM Level 2 Core
1377
+ *
1378
+ * @see https://dom.spec.whatwg.org/#validate-and-extract DOM: Validate and extract
1379
+ * @see https://www.w3.org/TR/xml/#NT-NameStartChar XML Spec: Names
1380
+ * @see https://www.w3.org/TR/xml-names/#ns-qualnames XML Namespaces: Qualified names
1381
+ */
1382
+ createDocument: function(u, n, a) {
1383
+ var f = new W();
1384
+ if (f.implementation = this, f.childNodes = new B(), f.doctype = a || null, a && f.appendChild(a), n) {
1385
+ var A = f.createElementNS(u, n);
1386
+ f.appendChild(A);
1387
+ }
1388
+ return f;
1389
+ },
1390
+ /**
1391
+ * Returns a doctype, with the given `qualifiedName`, `publicId`, and `systemId`.
1392
+ *
1393
+ * __This behavior is slightly different from the in the specs__:
1394
+ * - this implementation is not validating names or qualified names
1395
+ * (when parsing XML strings, the SAX parser takes care of that)
1396
+ *
1397
+ * @param {string} qualifiedName
1398
+ * @param {string} [publicId]
1399
+ * @param {string} [systemId]
1400
+ * @returns {DocumentType} which can either be used with `DOMImplementation.createDocument` upon document creation
1401
+ * or can be put into the document via methods like `Node.insertBefore()` or `Node.replaceChild()`
1402
+ *
1403
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createDocumentType MDN
1404
+ * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#Level-2-Core-DOM-createDocType DOM Level 2 Core
1405
+ * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocumenttype DOM Living Standard
1406
+ *
1407
+ * @see https://dom.spec.whatwg.org/#validate-and-extract DOM: Validate and extract
1408
+ * @see https://www.w3.org/TR/xml/#NT-NameStartChar XML Spec: Names
1409
+ * @see https://www.w3.org/TR/xml-names/#ns-qualnames XML Namespaces: Qualified names
1410
+ */
1411
+ createDocumentType: function(u, n, a) {
1412
+ var f = new Ue();
1413
+ return f.name = u, f.nodeName = u, f.publicId = n || "", f.systemId = a || "", f;
1414
+ }
1415
+ };
1416
+ function F() {
1417
+ }
1418
+ F.prototype = {
1419
+ firstChild: null,
1420
+ lastChild: null,
1421
+ previousSibling: null,
1422
+ nextSibling: null,
1423
+ attributes: null,
1424
+ parentNode: null,
1425
+ childNodes: null,
1426
+ ownerDocument: null,
1427
+ nodeValue: null,
1428
+ namespaceURI: null,
1429
+ prefix: null,
1430
+ localName: null,
1431
+ // Modified in DOM Level 2:
1432
+ insertBefore: function(u, n) {
1433
+ return fe(this, u, n);
1434
+ },
1435
+ replaceChild: function(u, n) {
1436
+ fe(this, u, n, Oe), n && this.removeChild(n);
1437
+ },
1438
+ removeChild: function(u) {
1439
+ return te(this, u);
1440
+ },
1441
+ appendChild: function(u) {
1442
+ return this.insertBefore(u, null);
1443
+ },
1444
+ hasChildNodes: function() {
1445
+ return this.firstChild != null;
1446
+ },
1447
+ cloneNode: function(u) {
1448
+ return tt(this.ownerDocument || this, this, u);
1449
+ },
1450
+ // Modified in DOM Level 2:
1451
+ normalize: function() {
1452
+ for (var u = this.firstChild; u; ) {
1453
+ var n = u.nextSibling;
1454
+ n && n.nodeType == S && u.nodeType == S ? (this.removeChild(n), u.appendData(n.data)) : (u.normalize(), u = n);
1455
+ }
1456
+ },
1457
+ // Introduced in DOM Level 2:
1458
+ isSupported: function(u, n) {
1459
+ return this.ownerDocument.implementation.hasFeature(u, n);
1460
+ },
1461
+ // Introduced in DOM Level 2:
1462
+ hasAttributes: function() {
1463
+ return this.attributes.length > 0;
1464
+ },
1465
+ /**
1466
+ * Look up the prefix associated to the given namespace URI, starting from this node.
1467
+ * **The default namespace declarations are ignored by this method.**
1468
+ * See Namespace Prefix Lookup for details on the algorithm used by this method.
1469
+ *
1470
+ * _Note: The implementation seems to be incomplete when compared to the algorithm described in the specs._
1471
+ *
1472
+ * @param {string | null} namespaceURI
1473
+ * @returns {string | null}
1474
+ * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-lookupNamespacePrefix
1475
+ * @see https://www.w3.org/TR/DOM-Level-3-Core/namespaces-algorithms.html#lookupNamespacePrefixAlgo
1476
+ * @see https://dom.spec.whatwg.org/#dom-node-lookupprefix
1477
+ * @see https://github.com/xmldom/xmldom/issues/322
1478
+ */
1479
+ lookupPrefix: function(u) {
1480
+ for (var n = this; n; ) {
1481
+ var a = n._nsMap;
1482
+ if (a) {
1483
+ for (var f in a)
1484
+ if (Object.prototype.hasOwnProperty.call(a, f) && a[f] === u)
1485
+ return f;
1486
+ }
1487
+ n = n.nodeType == E ? n.ownerDocument : n.parentNode;
1488
+ }
1489
+ return null;
1490
+ },
1491
+ // Introduced in DOM Level 3:
1492
+ lookupNamespaceURI: function(u) {
1493
+ for (var n = this; n; ) {
1494
+ var a = n._nsMap;
1495
+ if (a && u in a && Object.prototype.hasOwnProperty.call(a, u))
1496
+ return a[u];
1497
+ n = n.nodeType == E ? n.ownerDocument : n.parentNode;
1498
+ }
1499
+ return null;
1500
+ },
1501
+ // Introduced in DOM Level 3:
1502
+ isDefaultNamespace: function(u) {
1503
+ var n = this.lookupPrefix(u);
1504
+ return n == null;
1505
+ }
1506
+ };
1507
+ function ue(u) {
1508
+ return u == "<" && "&lt;" || u == ">" && "&gt;" || u == "&" && "&amp;" || u == '"' && "&quot;" || "&#" + u.charCodeAt() + ";";
1509
+ }
1510
+ p(D, F), p(D, F.prototype);
1511
+ function se(u, n) {
1512
+ if (n(u))
1513
+ return !0;
1514
+ if (u = u.firstChild)
1515
+ do
1516
+ if (se(u, n))
1517
+ return !0;
1518
+ while (u = u.nextSibling);
1519
+ }
1520
+ function W() {
1521
+ this.ownerDocument = this;
1522
+ }
1523
+ function Y(u, n, a) {
1524
+ u && u._inc++;
1525
+ var f = a.namespaceURI;
1526
+ f === t.XMLNS && (n._nsMap[a.prefix ? a.localName : ""] = a.value);
1527
+ }
1528
+ function Fe(u, n, a, f) {
1529
+ u && u._inc++;
1530
+ var A = a.namespaceURI;
1531
+ A === t.XMLNS && delete n._nsMap[a.prefix ? a.localName : ""];
1532
+ }
1533
+ function ve(u, n, a) {
1534
+ if (u && u._inc) {
1535
+ u._inc++;
1536
+ var f = n.childNodes;
1537
+ if (a)
1538
+ f[f.length++] = a;
1539
+ else {
1540
+ for (var A = n.firstChild, k = 0; A; )
1541
+ f[k++] = A, A = A.nextSibling;
1542
+ f.length = k, delete f[f.length];
1543
+ }
1544
+ }
1545
+ }
1546
+ function te(u, n) {
1547
+ var a = n.previousSibling, f = n.nextSibling;
1548
+ return a ? a.nextSibling = f : u.firstChild = f, f ? f.previousSibling = a : u.lastChild = a, n.parentNode = null, n.previousSibling = null, n.nextSibling = null, ve(u.ownerDocument, u), n;
1549
+ }
1550
+ function oe(u) {
1551
+ return u && (u.nodeType === F.DOCUMENT_NODE || u.nodeType === F.DOCUMENT_FRAGMENT_NODE || u.nodeType === F.ELEMENT_NODE);
1552
+ }
1553
+ function Se(u) {
1554
+ return u && (ie(u) || Ce(u) || ne(u) || u.nodeType === F.DOCUMENT_FRAGMENT_NODE || u.nodeType === F.COMMENT_NODE || u.nodeType === F.PROCESSING_INSTRUCTION_NODE);
1555
+ }
1556
+ function ne(u) {
1557
+ return u && u.nodeType === F.DOCUMENT_TYPE_NODE;
1558
+ }
1559
+ function ie(u) {
1560
+ return u && u.nodeType === F.ELEMENT_NODE;
1561
+ }
1562
+ function Ce(u) {
1563
+ return u && u.nodeType === F.TEXT_NODE;
1564
+ }
1565
+ function J(u, n) {
1566
+ var a = u.childNodes || [];
1567
+ if (r(a, ie) || ne(n))
1568
+ return !1;
1569
+ var f = r(a, ne);
1570
+ return !(n && f && a.indexOf(f) > a.indexOf(n));
1571
+ }
1572
+ function be(u, n) {
1573
+ var a = u.childNodes || [];
1574
+ function f(k) {
1575
+ return ie(k) && k !== n;
1576
+ }
1577
+ if (r(a, f))
1578
+ return !1;
1579
+ var A = r(a, ne);
1580
+ return !(n && A && a.indexOf(A) > a.indexOf(n));
1581
+ }
1582
+ function K(u, n, a) {
1583
+ if (!oe(u))
1584
+ throw new b(h, "Unexpected parent node type " + u.nodeType);
1585
+ if (a && a.parentNode !== u)
1586
+ throw new b(v, "child not in parent");
1587
+ if (
1588
+ // 4. If `node` is not a DocumentFragment, DocumentType, Element, or CharacterData node, then throw a "HierarchyRequestError" DOMException.
1589
+ !Se(n) || // 5. If either `node` is a Text node and `parent` is a document,
1590
+ // the sax parser currently adds top level text nodes, this will be fixed in 0.9.0
1591
+ // || (node.nodeType === Node.TEXT_NODE && parent.nodeType === Node.DOCUMENT_NODE)
1592
+ // or `node` is a doctype and `parent` is not a document, then throw a "HierarchyRequestError" DOMException.
1593
+ ne(n) && u.nodeType !== F.DOCUMENT_NODE
1594
+ )
1595
+ throw new b(
1596
+ h,
1597
+ "Unexpected node type " + n.nodeType + " for parent node type " + u.nodeType
1598
+ );
1599
+ }
1600
+ function Le(u, n, a) {
1601
+ var f = u.childNodes || [], A = n.childNodes || [];
1602
+ if (n.nodeType === F.DOCUMENT_FRAGMENT_NODE) {
1603
+ var k = A.filter(ie);
1604
+ if (k.length > 1 || r(A, Ce))
1605
+ throw new b(h, "More than one element or text in fragment");
1606
+ if (k.length === 1 && !J(u, a))
1607
+ throw new b(h, "Element in fragment can not be inserted before doctype");
1608
+ }
1609
+ if (ie(n) && !J(u, a))
1610
+ throw new b(h, "Only one element can be added and only after doctype");
1611
+ if (ne(n)) {
1612
+ if (r(f, ne))
1613
+ throw new b(h, "Only one doctype is allowed");
1614
+ var Z = r(f, ie);
1615
+ if (a && f.indexOf(Z) < f.indexOf(a))
1616
+ throw new b(h, "Doctype can only be inserted before an element");
1617
+ if (!a && Z)
1618
+ throw new b(h, "Doctype can not be appended since element is present");
1619
+ }
1620
+ }
1621
+ function Oe(u, n, a) {
1622
+ var f = u.childNodes || [], A = n.childNodes || [];
1623
+ if (n.nodeType === F.DOCUMENT_FRAGMENT_NODE) {
1624
+ var k = A.filter(ie);
1625
+ if (k.length > 1 || r(A, Ce))
1626
+ throw new b(h, "More than one element or text in fragment");
1627
+ if (k.length === 1 && !be(u, a))
1628
+ throw new b(h, "Element in fragment can not be inserted before doctype");
1629
+ }
1630
+ if (ie(n) && !be(u, a))
1631
+ throw new b(h, "Only one element can be added and only after doctype");
1632
+ if (ne(n)) {
1633
+ if (r(f, function(le) {
1634
+ return ne(le) && le !== a;
1635
+ }))
1636
+ throw new b(h, "Only one doctype is allowed");
1637
+ var Z = r(f, ie);
1638
+ if (a && f.indexOf(Z) < f.indexOf(a))
1639
+ throw new b(h, "Doctype can only be inserted before an element");
1640
+ }
1641
+ }
1642
+ function fe(u, n, a, f) {
1643
+ K(u, n, a), u.nodeType === F.DOCUMENT_NODE && (f || Le)(u, n, a);
1644
+ var A = n.parentNode;
1645
+ if (A && A.removeChild(n), n.nodeType === q) {
1646
+ var k = n.firstChild;
1647
+ if (k == null)
1648
+ return n;
1649
+ var Z = n.lastChild;
1650
+ } else
1651
+ k = Z = n;
1652
+ var re = a ? a.previousSibling : u.lastChild;
1653
+ k.previousSibling = re, Z.nextSibling = a, re ? re.nextSibling = k : u.firstChild = k, a == null ? u.lastChild = Z : a.previousSibling = Z;
1654
+ do
1655
+ k.parentNode = u;
1656
+ while (k !== Z && (k = k.nextSibling));
1657
+ return ve(u.ownerDocument || u, u), n.nodeType == q && (n.firstChild = n.lastChild = null), n;
1658
+ }
1659
+ function _e(u, n) {
1660
+ return n.parentNode && n.parentNode.removeChild(n), n.parentNode = u, n.previousSibling = u.lastChild, n.nextSibling = null, n.previousSibling ? n.previousSibling.nextSibling = n : u.firstChild = n, u.lastChild = n, ve(u.ownerDocument, u, n), n;
1661
+ }
1662
+ W.prototype = {
1663
+ //implementation : null,
1664
+ nodeName: "#document",
1665
+ nodeType: w,
1666
+ /**
1667
+ * The DocumentType node of the document.
1668
+ *
1669
+ * @readonly
1670
+ * @type DocumentType
1671
+ */
1672
+ doctype: null,
1673
+ documentElement: null,
1674
+ _inc: 1,
1675
+ insertBefore: function(u, n) {
1676
+ if (u.nodeType == q) {
1677
+ for (var a = u.firstChild; a; ) {
1678
+ var f = a.nextSibling;
1679
+ this.insertBefore(a, n), a = f;
1680
+ }
1681
+ return u;
1682
+ }
1683
+ return fe(this, u, n), u.ownerDocument = this, this.documentElement === null && u.nodeType === d && (this.documentElement = u), u;
1684
+ },
1685
+ removeChild: function(u) {
1686
+ return this.documentElement == u && (this.documentElement = null), te(this, u);
1687
+ },
1688
+ replaceChild: function(u, n) {
1689
+ fe(this, u, n, Oe), u.ownerDocument = this, n && this.removeChild(n), ie(u) && (this.documentElement = u);
1690
+ },
1691
+ // Introduced in DOM Level 2:
1692
+ importNode: function(u, n) {
1693
+ return At(this, u, n);
1694
+ },
1695
+ // Introduced in DOM Level 2:
1696
+ getElementById: function(u) {
1697
+ var n = null;
1698
+ return se(this.documentElement, function(a) {
1699
+ if (a.nodeType == d && a.getAttribute("id") == u)
1700
+ return n = a, !0;
1701
+ }), n;
1702
+ },
1703
+ /**
1704
+ * The `getElementsByClassName` method of `Document` interface returns an array-like object
1705
+ * of all child elements which have **all** of the given class name(s).
1706
+ *
1707
+ * Returns an empty list if `classeNames` is an empty string or only contains HTML white space characters.
1708
+ *
1709
+ *
1710
+ * Warning: This is a live LiveNodeList.
1711
+ * Changes in the DOM will reflect in the array as the changes occur.
1712
+ * If an element selected by this array no longer qualifies for the selector,
1713
+ * it will automatically be removed. Be aware of this for iteration purposes.
1714
+ *
1715
+ * @param {string} classNames is a string representing the class name(s) to match; multiple class names are separated by (ASCII-)whitespace
1716
+ *
1717
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementsByClassName
1718
+ * @see https://dom.spec.whatwg.org/#concept-getelementsbyclassname
1719
+ */
1720
+ getElementsByClassName: function(u) {
1721
+ var n = l(u);
1722
+ return new U(this, function(a) {
1723
+ var f = [];
1724
+ return n.length > 0 && se(a.documentElement, function(A) {
1725
+ if (A !== a && A.nodeType === d) {
1726
+ var k = A.getAttribute("class");
1727
+ if (k) {
1728
+ var Z = u === k;
1729
+ if (!Z) {
1730
+ var re = l(k);
1731
+ Z = n.every(c(re));
1732
+ }
1733
+ Z && f.push(A);
1734
+ }
1735
+ }
1736
+ }), f;
1737
+ });
1738
+ },
1739
+ //document factory method:
1740
+ createElement: function(u) {
1741
+ var n = new H();
1742
+ n.ownerDocument = this, n.nodeName = u, n.tagName = u, n.localName = u, n.childNodes = new B();
1743
+ var a = n.attributes = new z();
1744
+ return a._ownerElement = n, n;
1745
+ },
1746
+ createDocumentFragment: function() {
1747
+ var u = new Me();
1748
+ return u.ownerDocument = this, u.childNodes = new B(), u;
1749
+ },
1750
+ createTextNode: function(u) {
1751
+ var n = new We();
1752
+ return n.ownerDocument = this, n.appendData(u), n;
1753
+ },
1754
+ createComment: function(u) {
1755
+ var n = new Ye();
1756
+ return n.ownerDocument = this, n.appendData(u), n;
1757
+ },
1758
+ createCDATASection: function(u) {
1759
+ var n = new Ke();
1760
+ return n.ownerDocument = this, n.appendData(u), n;
1761
+ },
1762
+ createProcessingInstruction: function(u, n) {
1763
+ var a = new Je();
1764
+ return a.ownerDocument = this, a.tagName = a.nodeName = a.target = u, a.nodeValue = a.data = n, a;
1765
+ },
1766
+ createAttribute: function(u) {
1767
+ var n = new Q();
1768
+ return n.ownerDocument = this, n.name = u, n.nodeName = u, n.localName = u, n.specified = !0, n;
1769
+ },
1770
+ createEntityReference: function(u) {
1771
+ var n = new Qe();
1772
+ return n.ownerDocument = this, n.nodeName = u, n;
1773
+ },
1774
+ // Introduced in DOM Level 2:
1775
+ createElementNS: function(u, n) {
1776
+ var a = new H(), f = n.split(":"), A = a.attributes = new z();
1777
+ return a.childNodes = new B(), a.ownerDocument = this, a.nodeName = n, a.tagName = n, a.namespaceURI = u, f.length == 2 ? (a.prefix = f[0], a.localName = f[1]) : a.localName = n, A._ownerElement = a, a;
1778
+ },
1779
+ // Introduced in DOM Level 2:
1780
+ createAttributeNS: function(u, n) {
1781
+ var a = new Q(), f = n.split(":");
1782
+ return a.ownerDocument = this, a.nodeName = n, a.name = n, a.namespaceURI = u, a.specified = !0, f.length == 2 ? (a.prefix = f[0], a.localName = f[1]) : a.localName = n, a;
1783
+ }
1784
+ }, g(W, F);
1785
+ function H() {
1786
+ this._nsMap = {};
1787
+ }
1788
+ H.prototype = {
1789
+ nodeType: d,
1790
+ hasAttribute: function(u) {
1791
+ return this.getAttributeNode(u) != null;
1792
+ },
1793
+ getAttribute: function(u) {
1794
+ var n = this.getAttributeNode(u);
1795
+ return n && n.value || "";
1796
+ },
1797
+ getAttributeNode: function(u) {
1798
+ return this.attributes.getNamedItem(u);
1799
+ },
1800
+ setAttribute: function(u, n) {
1801
+ var a = this.ownerDocument.createAttribute(u);
1802
+ a.value = a.nodeValue = "" + n, this.setAttributeNode(a);
1803
+ },
1804
+ removeAttribute: function(u) {
1805
+ var n = this.getAttributeNode(u);
1806
+ n && this.removeAttributeNode(n);
1807
+ },
1808
+ //four real opeartion method
1809
+ appendChild: function(u) {
1810
+ return u.nodeType === q ? this.insertBefore(u, null) : _e(this, u);
1811
+ },
1812
+ setAttributeNode: function(u) {
1813
+ return this.attributes.setNamedItem(u);
1814
+ },
1815
+ setAttributeNodeNS: function(u) {
1816
+ return this.attributes.setNamedItemNS(u);
1817
+ },
1818
+ removeAttributeNode: function(u) {
1819
+ return this.attributes.removeNamedItem(u.nodeName);
1820
+ },
1821
+ //get real attribute name,and remove it by removeAttributeNode
1822
+ removeAttributeNS: function(u, n) {
1823
+ var a = this.getAttributeNodeNS(u, n);
1824
+ a && this.removeAttributeNode(a);
1825
+ },
1826
+ hasAttributeNS: function(u, n) {
1827
+ return this.getAttributeNodeNS(u, n) != null;
1828
+ },
1829
+ getAttributeNS: function(u, n) {
1830
+ var a = this.getAttributeNodeNS(u, n);
1831
+ return a && a.value || "";
1832
+ },
1833
+ setAttributeNS: function(u, n, a) {
1834
+ var f = this.ownerDocument.createAttributeNS(u, n);
1835
+ f.value = f.nodeValue = "" + a, this.setAttributeNode(f);
1836
+ },
1837
+ getAttributeNodeNS: function(u, n) {
1838
+ return this.attributes.getNamedItemNS(u, n);
1839
+ },
1840
+ getElementsByTagName: function(u) {
1841
+ return new U(this, function(n) {
1842
+ var a = [];
1843
+ return se(n, function(f) {
1844
+ f !== n && f.nodeType == d && (u === "*" || f.tagName == u) && a.push(f);
1845
+ }), a;
1846
+ });
1847
+ },
1848
+ getElementsByTagNameNS: function(u, n) {
1849
+ return new U(this, function(a) {
1850
+ var f = [];
1851
+ return se(a, function(A) {
1852
+ A !== a && A.nodeType === d && (u === "*" || A.namespaceURI === u) && (n === "*" || A.localName == n) && f.push(A);
1853
+ }), f;
1854
+ });
1855
+ }
1856
+ }, W.prototype.getElementsByTagName = H.prototype.getElementsByTagName, W.prototype.getElementsByTagNameNS = H.prototype.getElementsByTagNameNS, g(H, F);
1857
+ function Q() {
1858
+ }
1859
+ Q.prototype.nodeType = E, g(Q, F);
1860
+ function he() {
1861
+ }
1862
+ he.prototype = {
1863
+ data: "",
1864
+ substringData: function(u, n) {
1865
+ return this.data.substring(u, u + n);
1866
+ },
1867
+ appendData: function(u) {
1868
+ u = this.data + u, this.nodeValue = this.data = u, this.length = u.length;
1869
+ },
1870
+ insertData: function(u, n) {
1871
+ this.replaceData(u, 0, n);
1872
+ },
1873
+ appendChild: function(u) {
1874
+ throw new Error(G[h]);
1875
+ },
1876
+ deleteData: function(u, n) {
1877
+ this.replaceData(u, n, "");
1878
+ },
1879
+ replaceData: function(u, n, a) {
1880
+ var f = this.data.substring(0, u), A = this.data.substring(u + n);
1881
+ a = f + a + A, this.nodeValue = this.data = a, this.length = a.length;
1882
+ }
1883
+ }, g(he, F);
1884
+ function We() {
1885
+ }
1886
+ We.prototype = {
1887
+ nodeName: "#text",
1888
+ nodeType: S,
1889
+ splitText: function(u) {
1890
+ var n = this.data, a = n.substring(u);
1891
+ n = n.substring(0, u), this.data = this.nodeValue = n, this.length = n.length;
1892
+ var f = this.ownerDocument.createTextNode(a);
1893
+ return this.parentNode && this.parentNode.insertBefore(f, this.nextSibling), f;
1894
+ }
1895
+ }, g(We, he);
1896
+ function Ye() {
1897
+ }
1898
+ Ye.prototype = {
1899
+ nodeName: "#comment",
1900
+ nodeType: R
1901
+ }, g(Ye, he);
1902
+ function Ke() {
1903
+ }
1904
+ Ke.prototype = {
1905
+ nodeName: "#cdata-section",
1906
+ nodeType: C
1907
+ }, g(Ke, he);
1908
+ function Ue() {
1909
+ }
1910
+ Ue.prototype.nodeType = y, g(Ue, F);
1911
+ function gt() {
1912
+ }
1913
+ gt.prototype.nodeType = j, g(gt, F);
1914
+ function ht() {
1915
+ }
1916
+ ht.prototype.nodeType = N, g(ht, F);
1917
+ function Qe() {
1918
+ }
1919
+ Qe.prototype.nodeType = m, g(Qe, F);
1920
+ function Me() {
1921
+ }
1922
+ Me.prototype.nodeName = "#document-fragment", Me.prototype.nodeType = q, g(Me, F);
1923
+ function Je() {
1924
+ }
1925
+ Je.prototype.nodeType = P, g(Je, F);
1926
+ function Dt() {
1927
+ }
1928
+ Dt.prototype.serializeToString = function(u, n, a) {
1929
+ return mt.call(u, n, a);
1930
+ }, F.prototype.toString = mt;
1931
+ function mt(u, n) {
1932
+ var a = [], f = this.nodeType == 9 && this.documentElement || this, A = f.prefix, k = f.namespaceURI;
1933
+ if (k && A == null) {
1934
+ var A = f.lookupPrefix(k);
1935
+ if (A == null)
1936
+ var Z = [
1937
+ { namespace: k, prefix: null }
1938
+ //{namespace:uri,prefix:''}
1939
+ ];
1940
+ }
1941
+ return we(this, a, u, n, Z), a.join("");
1942
+ }
1943
+ function dt(u, n, a) {
1944
+ var f = u.prefix || "", A = u.namespaceURI;
1945
+ if (!A || f === "xml" && A === t.XML || A === t.XMLNS)
1946
+ return !1;
1947
+ for (var k = a.length; k--; ) {
1948
+ var Z = a[k];
1949
+ if (Z.prefix === f)
1950
+ return Z.namespace !== A;
1951
+ }
1952
+ return !0;
1953
+ }
1954
+ function et(u, n, a) {
1955
+ u.push(" ", n, '="', a.replace(/[<&"]/g, ue), '"');
1956
+ }
1957
+ function we(u, n, a, f, A) {
1958
+ if (A || (A = []), f)
1959
+ if (u = f(u), u) {
1960
+ if (typeof u == "string") {
1961
+ n.push(u);
1962
+ return;
1963
+ }
1964
+ } else
1965
+ return;
1966
+ switch (u.nodeType) {
1967
+ case d:
1968
+ var k = u.attributes, Z = k.length, ee = u.firstChild, re = u.tagName;
1969
+ a = t.isHTML(u.namespaceURI) || a;
1970
+ var le = re;
1971
+ if (!a && !u.prefix && u.namespaceURI) {
1972
+ for (var ge, ce = 0; ce < k.length; ce++)
1973
+ if (k.item(ce).name === "xmlns") {
1974
+ ge = k.item(ce).value;
1975
+ break;
1976
+ }
1977
+ if (!ge)
1978
+ for (var De = A.length - 1; De >= 0; De--) {
1979
+ var me = A[De];
1980
+ if (me.prefix === "" && me.namespace === u.namespaceURI) {
1981
+ ge = me.namespace;
1982
+ break;
1983
+ }
1984
+ }
1985
+ if (ge !== u.namespaceURI)
1986
+ for (var De = A.length - 1; De >= 0; De--) {
1987
+ var me = A[De];
1988
+ if (me.namespace === u.namespaceURI) {
1989
+ me.prefix && (le = me.prefix + ":" + re);
1990
+ break;
1991
+ }
1992
+ }
1993
+ }
1994
+ n.push("<", le);
1995
+ for (var de = 0; de < Z; de++) {
1996
+ var ae = k.item(de);
1997
+ ae.prefix == "xmlns" ? A.push({ prefix: ae.localName, namespace: ae.value }) : ae.nodeName == "xmlns" && A.push({ prefix: "", namespace: ae.value });
1998
+ }
1999
+ for (var de = 0; de < Z; de++) {
2000
+ var ae = k.item(de);
2001
+ if (dt(ae, a, A)) {
2002
+ var Ae = ae.prefix || "", Pe = ae.namespaceURI;
2003
+ et(n, Ae ? "xmlns:" + Ae : "xmlns", Pe), A.push({ prefix: Ae, namespace: Pe });
2004
+ }
2005
+ we(ae, n, a, f, A);
2006
+ }
2007
+ if (re === le && dt(u, a, A)) {
2008
+ var Ae = u.prefix || "", Pe = u.namespaceURI;
2009
+ et(n, Ae ? "xmlns:" + Ae : "xmlns", Pe), A.push({ prefix: Ae, namespace: Pe });
2010
+ }
2011
+ if (ee || a && !/^(?:meta|link|img|br|hr|input)$/i.test(re)) {
2012
+ if (n.push(">"), a && /^script$/i.test(re))
2013
+ for (; ee; )
2014
+ ee.data ? n.push(ee.data) : we(ee, n, a, f, A.slice()), ee = ee.nextSibling;
2015
+ else
2016
+ for (; ee; )
2017
+ we(ee, n, a, f, A.slice()), ee = ee.nextSibling;
2018
+ n.push("</", le, ">");
2019
+ } else
2020
+ n.push("/>");
2021
+ return;
2022
+ case w:
2023
+ case q:
2024
+ for (var ee = u.firstChild; ee; )
2025
+ we(ee, n, a, f, A.slice()), ee = ee.nextSibling;
2026
+ return;
2027
+ case E:
2028
+ return et(n, u.name, u.value);
2029
+ case S:
2030
+ return n.push(
2031
+ u.data.replace(/[<&]/g, ue).replace(/]]>/g, "]]&gt;")
2032
+ );
2033
+ case C:
2034
+ return n.push("<![CDATA[", u.data, "]]>");
2035
+ case R:
2036
+ return n.push("<!--", u.data, "-->");
2037
+ case y:
2038
+ var yt = u.publicId, xe = u.systemId;
2039
+ if (n.push("<!DOCTYPE ", u.name), yt)
2040
+ n.push(" PUBLIC ", yt), xe && xe != "." && n.push(" ", xe), n.push(">");
2041
+ else if (xe && xe != ".")
2042
+ n.push(" SYSTEM ", xe, ">");
2043
+ else {
2044
+ var vt = u.internalSubset;
2045
+ vt && n.push(" [", vt, "]"), n.push(">");
2046
+ }
2047
+ return;
2048
+ case P:
2049
+ return n.push("<?", u.target, " ", u.data, "?>");
2050
+ case m:
2051
+ return n.push("&", u.nodeName, ";");
2052
+ //case ENTITY_NODE:
2053
+ //case NOTATION_NODE:
2054
+ default:
2055
+ n.push("??", u.nodeName);
2056
+ }
2057
+ }
2058
+ function At(u, n, a) {
2059
+ var f;
2060
+ switch (n.nodeType) {
2061
+ case d:
2062
+ f = n.cloneNode(!1), f.ownerDocument = u;
2063
+ //var attrs = node2.attributes;
2064
+ //var len = attrs.length;
2065
+ //for(var i=0;i<len;i++){
2066
+ //node2.setAttributeNodeNS(importNode(doc,attrs.item(i),deep));
2067
+ //}
2068
+ case q:
2069
+ break;
2070
+ case E:
2071
+ a = !0;
2072
+ break;
2073
+ }
2074
+ if (f || (f = n.cloneNode(!1)), f.ownerDocument = u, f.parentNode = null, a)
2075
+ for (var A = n.firstChild; A; )
2076
+ f.appendChild(At(u, A, a)), A = A.nextSibling;
2077
+ return f;
2078
+ }
2079
+ function tt(u, n, a) {
2080
+ var f = new n.constructor();
2081
+ for (var A in n)
2082
+ if (Object.prototype.hasOwnProperty.call(n, A)) {
2083
+ var k = n[A];
2084
+ typeof k != "object" && k != f[A] && (f[A] = k);
2085
+ }
2086
+ switch (n.childNodes && (f.childNodes = new B()), f.ownerDocument = u, f.nodeType) {
2087
+ case d:
2088
+ var Z = n.attributes, re = f.attributes = new z(), le = Z.length;
2089
+ re._ownerElement = f;
2090
+ for (var ge = 0; ge < le; ge++)
2091
+ f.setAttributeNode(tt(u, Z.item(ge), !0));
2092
+ break;
2093
+ case E:
2094
+ a = !0;
2095
+ }
2096
+ if (a)
2097
+ for (var ce = n.firstChild; ce; )
2098
+ f.appendChild(tt(u, ce, a)), ce = ce.nextSibling;
2099
+ return f;
2100
+ }
2101
+ function Et(u, n, a) {
2102
+ u[n] = a;
2103
+ }
2104
+ try {
2105
+ if (Object.defineProperty) {
2106
+ let u = function(n) {
2107
+ switch (n.nodeType) {
2108
+ case d:
2109
+ case q:
2110
+ var a = [];
2111
+ for (n = n.firstChild; n; )
2112
+ n.nodeType !== 7 && n.nodeType !== 8 && a.push(u(n)), n = n.nextSibling;
2113
+ return a.join("");
2114
+ default:
2115
+ return n.nodeValue;
2116
+ }
2117
+ };
2118
+ Object.defineProperty(U.prototype, "length", {
2119
+ get: function() {
2120
+ return M(this), this.$$length;
2121
+ }
2122
+ }), Object.defineProperty(F.prototype, "textContent", {
2123
+ get: function() {
2124
+ return u(this);
2125
+ },
2126
+ set: function(n) {
2127
+ switch (this.nodeType) {
2128
+ case d:
2129
+ case q:
2130
+ for (; this.firstChild; )
2131
+ this.removeChild(this.firstChild);
2132
+ (n || String(n)) && this.appendChild(this.ownerDocument.createTextNode(n));
2133
+ break;
2134
+ default:
2135
+ this.data = n, this.value = n, this.nodeValue = n;
2136
+ }
2137
+ }
2138
+ }), Et = function(n, a, f) {
2139
+ n["$$" + a] = f;
2140
+ };
2141
+ }
2142
+ } catch {
2143
+ }
2144
+ return pe.DocumentType = Ue, pe.DOMException = b, pe.DOMImplementation = $, pe.Element = H, pe.Node = F, pe.NodeList = B, pe.XMLSerializer = Dt, pe;
2145
+ }
2146
+ var Te = {}, nt = {}, Pt;
2147
+ function zu() {
2148
+ return Pt || (Pt = 1, (function(e) {
2149
+ var r = $e().freeze;
2150
+ e.XML_ENTITIES = r({
2151
+ amp: "&",
2152
+ apos: "'",
2153
+ gt: ">",
2154
+ lt: "<",
2155
+ quot: '"'
2156
+ }), e.HTML_ENTITIES = r({
2157
+ Aacute: "Á",
2158
+ aacute: "á",
2159
+ Abreve: "Ă",
2160
+ abreve: "ă",
2161
+ ac: "∾",
2162
+ acd: "∿",
2163
+ acE: "∾̳",
2164
+ Acirc: "Â",
2165
+ acirc: "â",
2166
+ acute: "´",
2167
+ Acy: "А",
2168
+ acy: "а",
2169
+ AElig: "Æ",
2170
+ aelig: "æ",
2171
+ af: "⁡",
2172
+ Afr: "𝔄",
2173
+ afr: "𝔞",
2174
+ Agrave: "À",
2175
+ agrave: "à",
2176
+ alefsym: "ℵ",
2177
+ aleph: "ℵ",
2178
+ Alpha: "Α",
2179
+ alpha: "α",
2180
+ Amacr: "Ā",
2181
+ amacr: "ā",
2182
+ amalg: "⨿",
2183
+ AMP: "&",
2184
+ amp: "&",
2185
+ And: "⩓",
2186
+ and: "∧",
2187
+ andand: "⩕",
2188
+ andd: "⩜",
2189
+ andslope: "⩘",
2190
+ andv: "⩚",
2191
+ ang: "∠",
2192
+ ange: "⦤",
2193
+ angle: "∠",
2194
+ angmsd: "∡",
2195
+ angmsdaa: "⦨",
2196
+ angmsdab: "⦩",
2197
+ angmsdac: "⦪",
2198
+ angmsdad: "⦫",
2199
+ angmsdae: "⦬",
2200
+ angmsdaf: "⦭",
2201
+ angmsdag: "⦮",
2202
+ angmsdah: "⦯",
2203
+ angrt: "∟",
2204
+ angrtvb: "⊾",
2205
+ angrtvbd: "⦝",
2206
+ angsph: "∢",
2207
+ angst: "Å",
2208
+ angzarr: "⍼",
2209
+ Aogon: "Ą",
2210
+ aogon: "ą",
2211
+ Aopf: "𝔸",
2212
+ aopf: "𝕒",
2213
+ ap: "≈",
2214
+ apacir: "⩯",
2215
+ apE: "⩰",
2216
+ ape: "≊",
2217
+ apid: "≋",
2218
+ apos: "'",
2219
+ ApplyFunction: "⁡",
2220
+ approx: "≈",
2221
+ approxeq: "≊",
2222
+ Aring: "Å",
2223
+ aring: "å",
2224
+ Ascr: "𝒜",
2225
+ ascr: "𝒶",
2226
+ Assign: "≔",
2227
+ ast: "*",
2228
+ asymp: "≈",
2229
+ asympeq: "≍",
2230
+ Atilde: "Ã",
2231
+ atilde: "ã",
2232
+ Auml: "Ä",
2233
+ auml: "ä",
2234
+ awconint: "∳",
2235
+ awint: "⨑",
2236
+ backcong: "≌",
2237
+ backepsilon: "϶",
2238
+ backprime: "‵",
2239
+ backsim: "∽",
2240
+ backsimeq: "⋍",
2241
+ Backslash: "∖",
2242
+ Barv: "⫧",
2243
+ barvee: "⊽",
2244
+ Barwed: "⌆",
2245
+ barwed: "⌅",
2246
+ barwedge: "⌅",
2247
+ bbrk: "⎵",
2248
+ bbrktbrk: "⎶",
2249
+ bcong: "≌",
2250
+ Bcy: "Б",
2251
+ bcy: "б",
2252
+ bdquo: "„",
2253
+ becaus: "∵",
2254
+ Because: "∵",
2255
+ because: "∵",
2256
+ bemptyv: "⦰",
2257
+ bepsi: "϶",
2258
+ bernou: "ℬ",
2259
+ Bernoullis: "ℬ",
2260
+ Beta: "Β",
2261
+ beta: "β",
2262
+ beth: "ℶ",
2263
+ between: "≬",
2264
+ Bfr: "𝔅",
2265
+ bfr: "𝔟",
2266
+ bigcap: "⋂",
2267
+ bigcirc: "◯",
2268
+ bigcup: "⋃",
2269
+ bigodot: "⨀",
2270
+ bigoplus: "⨁",
2271
+ bigotimes: "⨂",
2272
+ bigsqcup: "⨆",
2273
+ bigstar: "★",
2274
+ bigtriangledown: "▽",
2275
+ bigtriangleup: "△",
2276
+ biguplus: "⨄",
2277
+ bigvee: "⋁",
2278
+ bigwedge: "⋀",
2279
+ bkarow: "⤍",
2280
+ blacklozenge: "⧫",
2281
+ blacksquare: "▪",
2282
+ blacktriangle: "▴",
2283
+ blacktriangledown: "▾",
2284
+ blacktriangleleft: "◂",
2285
+ blacktriangleright: "▸",
2286
+ blank: "␣",
2287
+ blk12: "▒",
2288
+ blk14: "░",
2289
+ blk34: "▓",
2290
+ block: "█",
2291
+ bne: "=⃥",
2292
+ bnequiv: "≡⃥",
2293
+ bNot: "⫭",
2294
+ bnot: "⌐",
2295
+ Bopf: "𝔹",
2296
+ bopf: "𝕓",
2297
+ bot: "⊥",
2298
+ bottom: "⊥",
2299
+ bowtie: "⋈",
2300
+ boxbox: "⧉",
2301
+ boxDL: "╗",
2302
+ boxDl: "╖",
2303
+ boxdL: "╕",
2304
+ boxdl: "┐",
2305
+ boxDR: "╔",
2306
+ boxDr: "╓",
2307
+ boxdR: "╒",
2308
+ boxdr: "┌",
2309
+ boxH: "═",
2310
+ boxh: "─",
2311
+ boxHD: "╦",
2312
+ boxHd: "╤",
2313
+ boxhD: "╥",
2314
+ boxhd: "┬",
2315
+ boxHU: "╩",
2316
+ boxHu: "╧",
2317
+ boxhU: "╨",
2318
+ boxhu: "┴",
2319
+ boxminus: "⊟",
2320
+ boxplus: "⊞",
2321
+ boxtimes: "⊠",
2322
+ boxUL: "╝",
2323
+ boxUl: "╜",
2324
+ boxuL: "╛",
2325
+ boxul: "┘",
2326
+ boxUR: "╚",
2327
+ boxUr: "╙",
2328
+ boxuR: "╘",
2329
+ boxur: "└",
2330
+ boxV: "║",
2331
+ boxv: "│",
2332
+ boxVH: "╬",
2333
+ boxVh: "╫",
2334
+ boxvH: "╪",
2335
+ boxvh: "┼",
2336
+ boxVL: "╣",
2337
+ boxVl: "╢",
2338
+ boxvL: "╡",
2339
+ boxvl: "┤",
2340
+ boxVR: "╠",
2341
+ boxVr: "╟",
2342
+ boxvR: "╞",
2343
+ boxvr: "├",
2344
+ bprime: "‵",
2345
+ Breve: "˘",
2346
+ breve: "˘",
2347
+ brvbar: "¦",
2348
+ Bscr: "ℬ",
2349
+ bscr: "𝒷",
2350
+ bsemi: "⁏",
2351
+ bsim: "∽",
2352
+ bsime: "⋍",
2353
+ bsol: "\\",
2354
+ bsolb: "⧅",
2355
+ bsolhsub: "⟈",
2356
+ bull: "•",
2357
+ bullet: "•",
2358
+ bump: "≎",
2359
+ bumpE: "⪮",
2360
+ bumpe: "≏",
2361
+ Bumpeq: "≎",
2362
+ bumpeq: "≏",
2363
+ Cacute: "Ć",
2364
+ cacute: "ć",
2365
+ Cap: "⋒",
2366
+ cap: "∩",
2367
+ capand: "⩄",
2368
+ capbrcup: "⩉",
2369
+ capcap: "⩋",
2370
+ capcup: "⩇",
2371
+ capdot: "⩀",
2372
+ CapitalDifferentialD: "ⅅ",
2373
+ caps: "∩︀",
2374
+ caret: "⁁",
2375
+ caron: "ˇ",
2376
+ Cayleys: "ℭ",
2377
+ ccaps: "⩍",
2378
+ Ccaron: "Č",
2379
+ ccaron: "č",
2380
+ Ccedil: "Ç",
2381
+ ccedil: "ç",
2382
+ Ccirc: "Ĉ",
2383
+ ccirc: "ĉ",
2384
+ Cconint: "∰",
2385
+ ccups: "⩌",
2386
+ ccupssm: "⩐",
2387
+ Cdot: "Ċ",
2388
+ cdot: "ċ",
2389
+ cedil: "¸",
2390
+ Cedilla: "¸",
2391
+ cemptyv: "⦲",
2392
+ cent: "¢",
2393
+ CenterDot: "·",
2394
+ centerdot: "·",
2395
+ Cfr: "ℭ",
2396
+ cfr: "𝔠",
2397
+ CHcy: "Ч",
2398
+ chcy: "ч",
2399
+ check: "✓",
2400
+ checkmark: "✓",
2401
+ Chi: "Χ",
2402
+ chi: "χ",
2403
+ cir: "○",
2404
+ circ: "ˆ",
2405
+ circeq: "≗",
2406
+ circlearrowleft: "↺",
2407
+ circlearrowright: "↻",
2408
+ circledast: "⊛",
2409
+ circledcirc: "⊚",
2410
+ circleddash: "⊝",
2411
+ CircleDot: "⊙",
2412
+ circledR: "®",
2413
+ circledS: "Ⓢ",
2414
+ CircleMinus: "⊖",
2415
+ CirclePlus: "⊕",
2416
+ CircleTimes: "⊗",
2417
+ cirE: "⧃",
2418
+ cire: "≗",
2419
+ cirfnint: "⨐",
2420
+ cirmid: "⫯",
2421
+ cirscir: "⧂",
2422
+ ClockwiseContourIntegral: "∲",
2423
+ CloseCurlyDoubleQuote: "”",
2424
+ CloseCurlyQuote: "’",
2425
+ clubs: "♣",
2426
+ clubsuit: "♣",
2427
+ Colon: "∷",
2428
+ colon: ":",
2429
+ Colone: "⩴",
2430
+ colone: "≔",
2431
+ coloneq: "≔",
2432
+ comma: ",",
2433
+ commat: "@",
2434
+ comp: "∁",
2435
+ compfn: "∘",
2436
+ complement: "∁",
2437
+ complexes: "ℂ",
2438
+ cong: "≅",
2439
+ congdot: "⩭",
2440
+ Congruent: "≡",
2441
+ Conint: "∯",
2442
+ conint: "∮",
2443
+ ContourIntegral: "∮",
2444
+ Copf: "ℂ",
2445
+ copf: "𝕔",
2446
+ coprod: "∐",
2447
+ Coproduct: "∐",
2448
+ COPY: "©",
2449
+ copy: "©",
2450
+ copysr: "℗",
2451
+ CounterClockwiseContourIntegral: "∳",
2452
+ crarr: "↵",
2453
+ Cross: "⨯",
2454
+ cross: "✗",
2455
+ Cscr: "𝒞",
2456
+ cscr: "𝒸",
2457
+ csub: "⫏",
2458
+ csube: "⫑",
2459
+ csup: "⫐",
2460
+ csupe: "⫒",
2461
+ ctdot: "⋯",
2462
+ cudarrl: "⤸",
2463
+ cudarrr: "⤵",
2464
+ cuepr: "⋞",
2465
+ cuesc: "⋟",
2466
+ cularr: "↶",
2467
+ cularrp: "⤽",
2468
+ Cup: "⋓",
2469
+ cup: "∪",
2470
+ cupbrcap: "⩈",
2471
+ CupCap: "≍",
2472
+ cupcap: "⩆",
2473
+ cupcup: "⩊",
2474
+ cupdot: "⊍",
2475
+ cupor: "⩅",
2476
+ cups: "∪︀",
2477
+ curarr: "↷",
2478
+ curarrm: "⤼",
2479
+ curlyeqprec: "⋞",
2480
+ curlyeqsucc: "⋟",
2481
+ curlyvee: "⋎",
2482
+ curlywedge: "⋏",
2483
+ curren: "¤",
2484
+ curvearrowleft: "↶",
2485
+ curvearrowright: "↷",
2486
+ cuvee: "⋎",
2487
+ cuwed: "⋏",
2488
+ cwconint: "∲",
2489
+ cwint: "∱",
2490
+ cylcty: "⌭",
2491
+ Dagger: "‡",
2492
+ dagger: "†",
2493
+ daleth: "ℸ",
2494
+ Darr: "↡",
2495
+ dArr: "⇓",
2496
+ darr: "↓",
2497
+ dash: "‐",
2498
+ Dashv: "⫤",
2499
+ dashv: "⊣",
2500
+ dbkarow: "⤏",
2501
+ dblac: "˝",
2502
+ Dcaron: "Ď",
2503
+ dcaron: "ď",
2504
+ Dcy: "Д",
2505
+ dcy: "д",
2506
+ DD: "ⅅ",
2507
+ dd: "ⅆ",
2508
+ ddagger: "‡",
2509
+ ddarr: "⇊",
2510
+ DDotrahd: "⤑",
2511
+ ddotseq: "⩷",
2512
+ deg: "°",
2513
+ Del: "∇",
2514
+ Delta: "Δ",
2515
+ delta: "δ",
2516
+ demptyv: "⦱",
2517
+ dfisht: "⥿",
2518
+ Dfr: "𝔇",
2519
+ dfr: "𝔡",
2520
+ dHar: "⥥",
2521
+ dharl: "⇃",
2522
+ dharr: "⇂",
2523
+ DiacriticalAcute: "´",
2524
+ DiacriticalDot: "˙",
2525
+ DiacriticalDoubleAcute: "˝",
2526
+ DiacriticalGrave: "`",
2527
+ DiacriticalTilde: "˜",
2528
+ diam: "⋄",
2529
+ Diamond: "⋄",
2530
+ diamond: "⋄",
2531
+ diamondsuit: "♦",
2532
+ diams: "♦",
2533
+ die: "¨",
2534
+ DifferentialD: "ⅆ",
2535
+ digamma: "ϝ",
2536
+ disin: "⋲",
2537
+ div: "÷",
2538
+ divide: "÷",
2539
+ divideontimes: "⋇",
2540
+ divonx: "⋇",
2541
+ DJcy: "Ђ",
2542
+ djcy: "ђ",
2543
+ dlcorn: "⌞",
2544
+ dlcrop: "⌍",
2545
+ dollar: "$",
2546
+ Dopf: "𝔻",
2547
+ dopf: "𝕕",
2548
+ Dot: "¨",
2549
+ dot: "˙",
2550
+ DotDot: "⃜",
2551
+ doteq: "≐",
2552
+ doteqdot: "≑",
2553
+ DotEqual: "≐",
2554
+ dotminus: "∸",
2555
+ dotplus: "∔",
2556
+ dotsquare: "⊡",
2557
+ doublebarwedge: "⌆",
2558
+ DoubleContourIntegral: "∯",
2559
+ DoubleDot: "¨",
2560
+ DoubleDownArrow: "⇓",
2561
+ DoubleLeftArrow: "⇐",
2562
+ DoubleLeftRightArrow: "⇔",
2563
+ DoubleLeftTee: "⫤",
2564
+ DoubleLongLeftArrow: "⟸",
2565
+ DoubleLongLeftRightArrow: "⟺",
2566
+ DoubleLongRightArrow: "⟹",
2567
+ DoubleRightArrow: "⇒",
2568
+ DoubleRightTee: "⊨",
2569
+ DoubleUpArrow: "⇑",
2570
+ DoubleUpDownArrow: "⇕",
2571
+ DoubleVerticalBar: "∥",
2572
+ DownArrow: "↓",
2573
+ Downarrow: "⇓",
2574
+ downarrow: "↓",
2575
+ DownArrowBar: "⤓",
2576
+ DownArrowUpArrow: "⇵",
2577
+ DownBreve: "̑",
2578
+ downdownarrows: "⇊",
2579
+ downharpoonleft: "⇃",
2580
+ downharpoonright: "⇂",
2581
+ DownLeftRightVector: "⥐",
2582
+ DownLeftTeeVector: "⥞",
2583
+ DownLeftVector: "↽",
2584
+ DownLeftVectorBar: "⥖",
2585
+ DownRightTeeVector: "⥟",
2586
+ DownRightVector: "⇁",
2587
+ DownRightVectorBar: "⥗",
2588
+ DownTee: "⊤",
2589
+ DownTeeArrow: "↧",
2590
+ drbkarow: "⤐",
2591
+ drcorn: "⌟",
2592
+ drcrop: "⌌",
2593
+ Dscr: "𝒟",
2594
+ dscr: "𝒹",
2595
+ DScy: "Ѕ",
2596
+ dscy: "ѕ",
2597
+ dsol: "⧶",
2598
+ Dstrok: "Đ",
2599
+ dstrok: "đ",
2600
+ dtdot: "⋱",
2601
+ dtri: "▿",
2602
+ dtrif: "▾",
2603
+ duarr: "⇵",
2604
+ duhar: "⥯",
2605
+ dwangle: "⦦",
2606
+ DZcy: "Џ",
2607
+ dzcy: "џ",
2608
+ dzigrarr: "⟿",
2609
+ Eacute: "É",
2610
+ eacute: "é",
2611
+ easter: "⩮",
2612
+ Ecaron: "Ě",
2613
+ ecaron: "ě",
2614
+ ecir: "≖",
2615
+ Ecirc: "Ê",
2616
+ ecirc: "ê",
2617
+ ecolon: "≕",
2618
+ Ecy: "Э",
2619
+ ecy: "э",
2620
+ eDDot: "⩷",
2621
+ Edot: "Ė",
2622
+ eDot: "≑",
2623
+ edot: "ė",
2624
+ ee: "ⅇ",
2625
+ efDot: "≒",
2626
+ Efr: "𝔈",
2627
+ efr: "𝔢",
2628
+ eg: "⪚",
2629
+ Egrave: "È",
2630
+ egrave: "è",
2631
+ egs: "⪖",
2632
+ egsdot: "⪘",
2633
+ el: "⪙",
2634
+ Element: "∈",
2635
+ elinters: "⏧",
2636
+ ell: "ℓ",
2637
+ els: "⪕",
2638
+ elsdot: "⪗",
2639
+ Emacr: "Ē",
2640
+ emacr: "ē",
2641
+ empty: "∅",
2642
+ emptyset: "∅",
2643
+ EmptySmallSquare: "◻",
2644
+ emptyv: "∅",
2645
+ EmptyVerySmallSquare: "▫",
2646
+ emsp: " ",
2647
+ emsp13: " ",
2648
+ emsp14: " ",
2649
+ ENG: "Ŋ",
2650
+ eng: "ŋ",
2651
+ ensp: " ",
2652
+ Eogon: "Ę",
2653
+ eogon: "ę",
2654
+ Eopf: "𝔼",
2655
+ eopf: "𝕖",
2656
+ epar: "⋕",
2657
+ eparsl: "⧣",
2658
+ eplus: "⩱",
2659
+ epsi: "ε",
2660
+ Epsilon: "Ε",
2661
+ epsilon: "ε",
2662
+ epsiv: "ϵ",
2663
+ eqcirc: "≖",
2664
+ eqcolon: "≕",
2665
+ eqsim: "≂",
2666
+ eqslantgtr: "⪖",
2667
+ eqslantless: "⪕",
2668
+ Equal: "⩵",
2669
+ equals: "=",
2670
+ EqualTilde: "≂",
2671
+ equest: "≟",
2672
+ Equilibrium: "⇌",
2673
+ equiv: "≡",
2674
+ equivDD: "⩸",
2675
+ eqvparsl: "⧥",
2676
+ erarr: "⥱",
2677
+ erDot: "≓",
2678
+ Escr: "ℰ",
2679
+ escr: "ℯ",
2680
+ esdot: "≐",
2681
+ Esim: "⩳",
2682
+ esim: "≂",
2683
+ Eta: "Η",
2684
+ eta: "η",
2685
+ ETH: "Ð",
2686
+ eth: "ð",
2687
+ Euml: "Ë",
2688
+ euml: "ë",
2689
+ euro: "€",
2690
+ excl: "!",
2691
+ exist: "∃",
2692
+ Exists: "∃",
2693
+ expectation: "ℰ",
2694
+ ExponentialE: "ⅇ",
2695
+ exponentiale: "ⅇ",
2696
+ fallingdotseq: "≒",
2697
+ Fcy: "Ф",
2698
+ fcy: "ф",
2699
+ female: "♀",
2700
+ ffilig: "ffi",
2701
+ fflig: "ff",
2702
+ ffllig: "ffl",
2703
+ Ffr: "𝔉",
2704
+ ffr: "𝔣",
2705
+ filig: "fi",
2706
+ FilledSmallSquare: "◼",
2707
+ FilledVerySmallSquare: "▪",
2708
+ fjlig: "fj",
2709
+ flat: "♭",
2710
+ fllig: "fl",
2711
+ fltns: "▱",
2712
+ fnof: "ƒ",
2713
+ Fopf: "𝔽",
2714
+ fopf: "𝕗",
2715
+ ForAll: "∀",
2716
+ forall: "∀",
2717
+ fork: "⋔",
2718
+ forkv: "⫙",
2719
+ Fouriertrf: "ℱ",
2720
+ fpartint: "⨍",
2721
+ frac12: "½",
2722
+ frac13: "⅓",
2723
+ frac14: "¼",
2724
+ frac15: "⅕",
2725
+ frac16: "⅙",
2726
+ frac18: "⅛",
2727
+ frac23: "⅔",
2728
+ frac25: "⅖",
2729
+ frac34: "¾",
2730
+ frac35: "⅗",
2731
+ frac38: "⅜",
2732
+ frac45: "⅘",
2733
+ frac56: "⅚",
2734
+ frac58: "⅝",
2735
+ frac78: "⅞",
2736
+ frasl: "⁄",
2737
+ frown: "⌢",
2738
+ Fscr: "ℱ",
2739
+ fscr: "𝒻",
2740
+ gacute: "ǵ",
2741
+ Gamma: "Γ",
2742
+ gamma: "γ",
2743
+ Gammad: "Ϝ",
2744
+ gammad: "ϝ",
2745
+ gap: "⪆",
2746
+ Gbreve: "Ğ",
2747
+ gbreve: "ğ",
2748
+ Gcedil: "Ģ",
2749
+ Gcirc: "Ĝ",
2750
+ gcirc: "ĝ",
2751
+ Gcy: "Г",
2752
+ gcy: "г",
2753
+ Gdot: "Ġ",
2754
+ gdot: "ġ",
2755
+ gE: "≧",
2756
+ ge: "≥",
2757
+ gEl: "⪌",
2758
+ gel: "⋛",
2759
+ geq: "≥",
2760
+ geqq: "≧",
2761
+ geqslant: "⩾",
2762
+ ges: "⩾",
2763
+ gescc: "⪩",
2764
+ gesdot: "⪀",
2765
+ gesdoto: "⪂",
2766
+ gesdotol: "⪄",
2767
+ gesl: "⋛︀",
2768
+ gesles: "⪔",
2769
+ Gfr: "𝔊",
2770
+ gfr: "𝔤",
2771
+ Gg: "⋙",
2772
+ gg: "≫",
2773
+ ggg: "⋙",
2774
+ gimel: "ℷ",
2775
+ GJcy: "Ѓ",
2776
+ gjcy: "ѓ",
2777
+ gl: "≷",
2778
+ gla: "⪥",
2779
+ glE: "⪒",
2780
+ glj: "⪤",
2781
+ gnap: "⪊",
2782
+ gnapprox: "⪊",
2783
+ gnE: "≩",
2784
+ gne: "⪈",
2785
+ gneq: "⪈",
2786
+ gneqq: "≩",
2787
+ gnsim: "⋧",
2788
+ Gopf: "𝔾",
2789
+ gopf: "𝕘",
2790
+ grave: "`",
2791
+ GreaterEqual: "≥",
2792
+ GreaterEqualLess: "⋛",
2793
+ GreaterFullEqual: "≧",
2794
+ GreaterGreater: "⪢",
2795
+ GreaterLess: "≷",
2796
+ GreaterSlantEqual: "⩾",
2797
+ GreaterTilde: "≳",
2798
+ Gscr: "𝒢",
2799
+ gscr: "ℊ",
2800
+ gsim: "≳",
2801
+ gsime: "⪎",
2802
+ gsiml: "⪐",
2803
+ Gt: "≫",
2804
+ GT: ">",
2805
+ gt: ">",
2806
+ gtcc: "⪧",
2807
+ gtcir: "⩺",
2808
+ gtdot: "⋗",
2809
+ gtlPar: "⦕",
2810
+ gtquest: "⩼",
2811
+ gtrapprox: "⪆",
2812
+ gtrarr: "⥸",
2813
+ gtrdot: "⋗",
2814
+ gtreqless: "⋛",
2815
+ gtreqqless: "⪌",
2816
+ gtrless: "≷",
2817
+ gtrsim: "≳",
2818
+ gvertneqq: "≩︀",
2819
+ gvnE: "≩︀",
2820
+ Hacek: "ˇ",
2821
+ hairsp: " ",
2822
+ half: "½",
2823
+ hamilt: "ℋ",
2824
+ HARDcy: "Ъ",
2825
+ hardcy: "ъ",
2826
+ hArr: "⇔",
2827
+ harr: "↔",
2828
+ harrcir: "⥈",
2829
+ harrw: "↭",
2830
+ Hat: "^",
2831
+ hbar: "ℏ",
2832
+ Hcirc: "Ĥ",
2833
+ hcirc: "ĥ",
2834
+ hearts: "♥",
2835
+ heartsuit: "♥",
2836
+ hellip: "…",
2837
+ hercon: "⊹",
2838
+ Hfr: "ℌ",
2839
+ hfr: "𝔥",
2840
+ HilbertSpace: "ℋ",
2841
+ hksearow: "⤥",
2842
+ hkswarow: "⤦",
2843
+ hoarr: "⇿",
2844
+ homtht: "∻",
2845
+ hookleftarrow: "↩",
2846
+ hookrightarrow: "↪",
2847
+ Hopf: "ℍ",
2848
+ hopf: "𝕙",
2849
+ horbar: "―",
2850
+ HorizontalLine: "─",
2851
+ Hscr: "ℋ",
2852
+ hscr: "𝒽",
2853
+ hslash: "ℏ",
2854
+ Hstrok: "Ħ",
2855
+ hstrok: "ħ",
2856
+ HumpDownHump: "≎",
2857
+ HumpEqual: "≏",
2858
+ hybull: "⁃",
2859
+ hyphen: "‐",
2860
+ Iacute: "Í",
2861
+ iacute: "í",
2862
+ ic: "⁣",
2863
+ Icirc: "Î",
2864
+ icirc: "î",
2865
+ Icy: "И",
2866
+ icy: "и",
2867
+ Idot: "İ",
2868
+ IEcy: "Е",
2869
+ iecy: "е",
2870
+ iexcl: "¡",
2871
+ iff: "⇔",
2872
+ Ifr: "ℑ",
2873
+ ifr: "𝔦",
2874
+ Igrave: "Ì",
2875
+ igrave: "ì",
2876
+ ii: "ⅈ",
2877
+ iiiint: "⨌",
2878
+ iiint: "∭",
2879
+ iinfin: "⧜",
2880
+ iiota: "℩",
2881
+ IJlig: "IJ",
2882
+ ijlig: "ij",
2883
+ Im: "ℑ",
2884
+ Imacr: "Ī",
2885
+ imacr: "ī",
2886
+ image: "ℑ",
2887
+ ImaginaryI: "ⅈ",
2888
+ imagline: "ℐ",
2889
+ imagpart: "ℑ",
2890
+ imath: "ı",
2891
+ imof: "⊷",
2892
+ imped: "Ƶ",
2893
+ Implies: "⇒",
2894
+ in: "∈",
2895
+ incare: "℅",
2896
+ infin: "∞",
2897
+ infintie: "⧝",
2898
+ inodot: "ı",
2899
+ Int: "∬",
2900
+ int: "∫",
2901
+ intcal: "⊺",
2902
+ integers: "ℤ",
2903
+ Integral: "∫",
2904
+ intercal: "⊺",
2905
+ Intersection: "⋂",
2906
+ intlarhk: "⨗",
2907
+ intprod: "⨼",
2908
+ InvisibleComma: "⁣",
2909
+ InvisibleTimes: "⁢",
2910
+ IOcy: "Ё",
2911
+ iocy: "ё",
2912
+ Iogon: "Į",
2913
+ iogon: "į",
2914
+ Iopf: "𝕀",
2915
+ iopf: "𝕚",
2916
+ Iota: "Ι",
2917
+ iota: "ι",
2918
+ iprod: "⨼",
2919
+ iquest: "¿",
2920
+ Iscr: "ℐ",
2921
+ iscr: "𝒾",
2922
+ isin: "∈",
2923
+ isindot: "⋵",
2924
+ isinE: "⋹",
2925
+ isins: "⋴",
2926
+ isinsv: "⋳",
2927
+ isinv: "∈",
2928
+ it: "⁢",
2929
+ Itilde: "Ĩ",
2930
+ itilde: "ĩ",
2931
+ Iukcy: "І",
2932
+ iukcy: "і",
2933
+ Iuml: "Ï",
2934
+ iuml: "ï",
2935
+ Jcirc: "Ĵ",
2936
+ jcirc: "ĵ",
2937
+ Jcy: "Й",
2938
+ jcy: "й",
2939
+ Jfr: "𝔍",
2940
+ jfr: "𝔧",
2941
+ jmath: "ȷ",
2942
+ Jopf: "𝕁",
2943
+ jopf: "𝕛",
2944
+ Jscr: "𝒥",
2945
+ jscr: "𝒿",
2946
+ Jsercy: "Ј",
2947
+ jsercy: "ј",
2948
+ Jukcy: "Є",
2949
+ jukcy: "є",
2950
+ Kappa: "Κ",
2951
+ kappa: "κ",
2952
+ kappav: "ϰ",
2953
+ Kcedil: "Ķ",
2954
+ kcedil: "ķ",
2955
+ Kcy: "К",
2956
+ kcy: "к",
2957
+ Kfr: "𝔎",
2958
+ kfr: "𝔨",
2959
+ kgreen: "ĸ",
2960
+ KHcy: "Х",
2961
+ khcy: "х",
2962
+ KJcy: "Ќ",
2963
+ kjcy: "ќ",
2964
+ Kopf: "𝕂",
2965
+ kopf: "𝕜",
2966
+ Kscr: "𝒦",
2967
+ kscr: "𝓀",
2968
+ lAarr: "⇚",
2969
+ Lacute: "Ĺ",
2970
+ lacute: "ĺ",
2971
+ laemptyv: "⦴",
2972
+ lagran: "ℒ",
2973
+ Lambda: "Λ",
2974
+ lambda: "λ",
2975
+ Lang: "⟪",
2976
+ lang: "⟨",
2977
+ langd: "⦑",
2978
+ langle: "⟨",
2979
+ lap: "⪅",
2980
+ Laplacetrf: "ℒ",
2981
+ laquo: "«",
2982
+ Larr: "↞",
2983
+ lArr: "⇐",
2984
+ larr: "←",
2985
+ larrb: "⇤",
2986
+ larrbfs: "⤟",
2987
+ larrfs: "⤝",
2988
+ larrhk: "↩",
2989
+ larrlp: "↫",
2990
+ larrpl: "⤹",
2991
+ larrsim: "⥳",
2992
+ larrtl: "↢",
2993
+ lat: "⪫",
2994
+ lAtail: "⤛",
2995
+ latail: "⤙",
2996
+ late: "⪭",
2997
+ lates: "⪭︀",
2998
+ lBarr: "⤎",
2999
+ lbarr: "⤌",
3000
+ lbbrk: "❲",
3001
+ lbrace: "{",
3002
+ lbrack: "[",
3003
+ lbrke: "⦋",
3004
+ lbrksld: "⦏",
3005
+ lbrkslu: "⦍",
3006
+ Lcaron: "Ľ",
3007
+ lcaron: "ľ",
3008
+ Lcedil: "Ļ",
3009
+ lcedil: "ļ",
3010
+ lceil: "⌈",
3011
+ lcub: "{",
3012
+ Lcy: "Л",
3013
+ lcy: "л",
3014
+ ldca: "⤶",
3015
+ ldquo: "“",
3016
+ ldquor: "„",
3017
+ ldrdhar: "⥧",
3018
+ ldrushar: "⥋",
3019
+ ldsh: "↲",
3020
+ lE: "≦",
3021
+ le: "≤",
3022
+ LeftAngleBracket: "⟨",
3023
+ LeftArrow: "←",
3024
+ Leftarrow: "⇐",
3025
+ leftarrow: "←",
3026
+ LeftArrowBar: "⇤",
3027
+ LeftArrowRightArrow: "⇆",
3028
+ leftarrowtail: "↢",
3029
+ LeftCeiling: "⌈",
3030
+ LeftDoubleBracket: "⟦",
3031
+ LeftDownTeeVector: "⥡",
3032
+ LeftDownVector: "⇃",
3033
+ LeftDownVectorBar: "⥙",
3034
+ LeftFloor: "⌊",
3035
+ leftharpoondown: "↽",
3036
+ leftharpoonup: "↼",
3037
+ leftleftarrows: "⇇",
3038
+ LeftRightArrow: "↔",
3039
+ Leftrightarrow: "⇔",
3040
+ leftrightarrow: "↔",
3041
+ leftrightarrows: "⇆",
3042
+ leftrightharpoons: "⇋",
3043
+ leftrightsquigarrow: "↭",
3044
+ LeftRightVector: "⥎",
3045
+ LeftTee: "⊣",
3046
+ LeftTeeArrow: "↤",
3047
+ LeftTeeVector: "⥚",
3048
+ leftthreetimes: "⋋",
3049
+ LeftTriangle: "⊲",
3050
+ LeftTriangleBar: "⧏",
3051
+ LeftTriangleEqual: "⊴",
3052
+ LeftUpDownVector: "⥑",
3053
+ LeftUpTeeVector: "⥠",
3054
+ LeftUpVector: "↿",
3055
+ LeftUpVectorBar: "⥘",
3056
+ LeftVector: "↼",
3057
+ LeftVectorBar: "⥒",
3058
+ lEg: "⪋",
3059
+ leg: "⋚",
3060
+ leq: "≤",
3061
+ leqq: "≦",
3062
+ leqslant: "⩽",
3063
+ les: "⩽",
3064
+ lescc: "⪨",
3065
+ lesdot: "⩿",
3066
+ lesdoto: "⪁",
3067
+ lesdotor: "⪃",
3068
+ lesg: "⋚︀",
3069
+ lesges: "⪓",
3070
+ lessapprox: "⪅",
3071
+ lessdot: "⋖",
3072
+ lesseqgtr: "⋚",
3073
+ lesseqqgtr: "⪋",
3074
+ LessEqualGreater: "⋚",
3075
+ LessFullEqual: "≦",
3076
+ LessGreater: "≶",
3077
+ lessgtr: "≶",
3078
+ LessLess: "⪡",
3079
+ lesssim: "≲",
3080
+ LessSlantEqual: "⩽",
3081
+ LessTilde: "≲",
3082
+ lfisht: "⥼",
3083
+ lfloor: "⌊",
3084
+ Lfr: "𝔏",
3085
+ lfr: "𝔩",
3086
+ lg: "≶",
3087
+ lgE: "⪑",
3088
+ lHar: "⥢",
3089
+ lhard: "↽",
3090
+ lharu: "↼",
3091
+ lharul: "⥪",
3092
+ lhblk: "▄",
3093
+ LJcy: "Љ",
3094
+ ljcy: "љ",
3095
+ Ll: "⋘",
3096
+ ll: "≪",
3097
+ llarr: "⇇",
3098
+ llcorner: "⌞",
3099
+ Lleftarrow: "⇚",
3100
+ llhard: "⥫",
3101
+ lltri: "◺",
3102
+ Lmidot: "Ŀ",
3103
+ lmidot: "ŀ",
3104
+ lmoust: "⎰",
3105
+ lmoustache: "⎰",
3106
+ lnap: "⪉",
3107
+ lnapprox: "⪉",
3108
+ lnE: "≨",
3109
+ lne: "⪇",
3110
+ lneq: "⪇",
3111
+ lneqq: "≨",
3112
+ lnsim: "⋦",
3113
+ loang: "⟬",
3114
+ loarr: "⇽",
3115
+ lobrk: "⟦",
3116
+ LongLeftArrow: "⟵",
3117
+ Longleftarrow: "⟸",
3118
+ longleftarrow: "⟵",
3119
+ LongLeftRightArrow: "⟷",
3120
+ Longleftrightarrow: "⟺",
3121
+ longleftrightarrow: "⟷",
3122
+ longmapsto: "⟼",
3123
+ LongRightArrow: "⟶",
3124
+ Longrightarrow: "⟹",
3125
+ longrightarrow: "⟶",
3126
+ looparrowleft: "↫",
3127
+ looparrowright: "↬",
3128
+ lopar: "⦅",
3129
+ Lopf: "𝕃",
3130
+ lopf: "𝕝",
3131
+ loplus: "⨭",
3132
+ lotimes: "⨴",
3133
+ lowast: "∗",
3134
+ lowbar: "_",
3135
+ LowerLeftArrow: "↙",
3136
+ LowerRightArrow: "↘",
3137
+ loz: "◊",
3138
+ lozenge: "◊",
3139
+ lozf: "⧫",
3140
+ lpar: "(",
3141
+ lparlt: "⦓",
3142
+ lrarr: "⇆",
3143
+ lrcorner: "⌟",
3144
+ lrhar: "⇋",
3145
+ lrhard: "⥭",
3146
+ lrm: "‎",
3147
+ lrtri: "⊿",
3148
+ lsaquo: "‹",
3149
+ Lscr: "ℒ",
3150
+ lscr: "𝓁",
3151
+ Lsh: "↰",
3152
+ lsh: "↰",
3153
+ lsim: "≲",
3154
+ lsime: "⪍",
3155
+ lsimg: "⪏",
3156
+ lsqb: "[",
3157
+ lsquo: "‘",
3158
+ lsquor: "‚",
3159
+ Lstrok: "Ł",
3160
+ lstrok: "ł",
3161
+ Lt: "≪",
3162
+ LT: "<",
3163
+ lt: "<",
3164
+ ltcc: "⪦",
3165
+ ltcir: "⩹",
3166
+ ltdot: "⋖",
3167
+ lthree: "⋋",
3168
+ ltimes: "⋉",
3169
+ ltlarr: "⥶",
3170
+ ltquest: "⩻",
3171
+ ltri: "◃",
3172
+ ltrie: "⊴",
3173
+ ltrif: "◂",
3174
+ ltrPar: "⦖",
3175
+ lurdshar: "⥊",
3176
+ luruhar: "⥦",
3177
+ lvertneqq: "≨︀",
3178
+ lvnE: "≨︀",
3179
+ macr: "¯",
3180
+ male: "♂",
3181
+ malt: "✠",
3182
+ maltese: "✠",
3183
+ Map: "⤅",
3184
+ map: "↦",
3185
+ mapsto: "↦",
3186
+ mapstodown: "↧",
3187
+ mapstoleft: "↤",
3188
+ mapstoup: "↥",
3189
+ marker: "▮",
3190
+ mcomma: "⨩",
3191
+ Mcy: "М",
3192
+ mcy: "м",
3193
+ mdash: "—",
3194
+ mDDot: "∺",
3195
+ measuredangle: "∡",
3196
+ MediumSpace: " ",
3197
+ Mellintrf: "ℳ",
3198
+ Mfr: "𝔐",
3199
+ mfr: "𝔪",
3200
+ mho: "℧",
3201
+ micro: "µ",
3202
+ mid: "∣",
3203
+ midast: "*",
3204
+ midcir: "⫰",
3205
+ middot: "·",
3206
+ minus: "−",
3207
+ minusb: "⊟",
3208
+ minusd: "∸",
3209
+ minusdu: "⨪",
3210
+ MinusPlus: "∓",
3211
+ mlcp: "⫛",
3212
+ mldr: "…",
3213
+ mnplus: "∓",
3214
+ models: "⊧",
3215
+ Mopf: "𝕄",
3216
+ mopf: "𝕞",
3217
+ mp: "∓",
3218
+ Mscr: "ℳ",
3219
+ mscr: "𝓂",
3220
+ mstpos: "∾",
3221
+ Mu: "Μ",
3222
+ mu: "μ",
3223
+ multimap: "⊸",
3224
+ mumap: "⊸",
3225
+ nabla: "∇",
3226
+ Nacute: "Ń",
3227
+ nacute: "ń",
3228
+ nang: "∠⃒",
3229
+ nap: "≉",
3230
+ napE: "⩰̸",
3231
+ napid: "≋̸",
3232
+ napos: "ʼn",
3233
+ napprox: "≉",
3234
+ natur: "♮",
3235
+ natural: "♮",
3236
+ naturals: "ℕ",
3237
+ nbsp: " ",
3238
+ nbump: "≎̸",
3239
+ nbumpe: "≏̸",
3240
+ ncap: "⩃",
3241
+ Ncaron: "Ň",
3242
+ ncaron: "ň",
3243
+ Ncedil: "Ņ",
3244
+ ncedil: "ņ",
3245
+ ncong: "≇",
3246
+ ncongdot: "⩭̸",
3247
+ ncup: "⩂",
3248
+ Ncy: "Н",
3249
+ ncy: "н",
3250
+ ndash: "–",
3251
+ ne: "≠",
3252
+ nearhk: "⤤",
3253
+ neArr: "⇗",
3254
+ nearr: "↗",
3255
+ nearrow: "↗",
3256
+ nedot: "≐̸",
3257
+ NegativeMediumSpace: "​",
3258
+ NegativeThickSpace: "​",
3259
+ NegativeThinSpace: "​",
3260
+ NegativeVeryThinSpace: "​",
3261
+ nequiv: "≢",
3262
+ nesear: "⤨",
3263
+ nesim: "≂̸",
3264
+ NestedGreaterGreater: "≫",
3265
+ NestedLessLess: "≪",
3266
+ NewLine: `
3267
+ `,
3268
+ nexist: "∄",
3269
+ nexists: "∄",
3270
+ Nfr: "𝔑",
3271
+ nfr: "𝔫",
3272
+ ngE: "≧̸",
3273
+ nge: "≱",
3274
+ ngeq: "≱",
3275
+ ngeqq: "≧̸",
3276
+ ngeqslant: "⩾̸",
3277
+ nges: "⩾̸",
3278
+ nGg: "⋙̸",
3279
+ ngsim: "≵",
3280
+ nGt: "≫⃒",
3281
+ ngt: "≯",
3282
+ ngtr: "≯",
3283
+ nGtv: "≫̸",
3284
+ nhArr: "⇎",
3285
+ nharr: "↮",
3286
+ nhpar: "⫲",
3287
+ ni: "∋",
3288
+ nis: "⋼",
3289
+ nisd: "⋺",
3290
+ niv: "∋",
3291
+ NJcy: "Њ",
3292
+ njcy: "њ",
3293
+ nlArr: "⇍",
3294
+ nlarr: "↚",
3295
+ nldr: "‥",
3296
+ nlE: "≦̸",
3297
+ nle: "≰",
3298
+ nLeftarrow: "⇍",
3299
+ nleftarrow: "↚",
3300
+ nLeftrightarrow: "⇎",
3301
+ nleftrightarrow: "↮",
3302
+ nleq: "≰",
3303
+ nleqq: "≦̸",
3304
+ nleqslant: "⩽̸",
3305
+ nles: "⩽̸",
3306
+ nless: "≮",
3307
+ nLl: "⋘̸",
3308
+ nlsim: "≴",
3309
+ nLt: "≪⃒",
3310
+ nlt: "≮",
3311
+ nltri: "⋪",
3312
+ nltrie: "⋬",
3313
+ nLtv: "≪̸",
3314
+ nmid: "∤",
3315
+ NoBreak: "⁠",
3316
+ NonBreakingSpace: " ",
3317
+ Nopf: "ℕ",
3318
+ nopf: "𝕟",
3319
+ Not: "⫬",
3320
+ not: "¬",
3321
+ NotCongruent: "≢",
3322
+ NotCupCap: "≭",
3323
+ NotDoubleVerticalBar: "∦",
3324
+ NotElement: "∉",
3325
+ NotEqual: "≠",
3326
+ NotEqualTilde: "≂̸",
3327
+ NotExists: "∄",
3328
+ NotGreater: "≯",
3329
+ NotGreaterEqual: "≱",
3330
+ NotGreaterFullEqual: "≧̸",
3331
+ NotGreaterGreater: "≫̸",
3332
+ NotGreaterLess: "≹",
3333
+ NotGreaterSlantEqual: "⩾̸",
3334
+ NotGreaterTilde: "≵",
3335
+ NotHumpDownHump: "≎̸",
3336
+ NotHumpEqual: "≏̸",
3337
+ notin: "∉",
3338
+ notindot: "⋵̸",
3339
+ notinE: "⋹̸",
3340
+ notinva: "∉",
3341
+ notinvb: "⋷",
3342
+ notinvc: "⋶",
3343
+ NotLeftTriangle: "⋪",
3344
+ NotLeftTriangleBar: "⧏̸",
3345
+ NotLeftTriangleEqual: "⋬",
3346
+ NotLess: "≮",
3347
+ NotLessEqual: "≰",
3348
+ NotLessGreater: "≸",
3349
+ NotLessLess: "≪̸",
3350
+ NotLessSlantEqual: "⩽̸",
3351
+ NotLessTilde: "≴",
3352
+ NotNestedGreaterGreater: "⪢̸",
3353
+ NotNestedLessLess: "⪡̸",
3354
+ notni: "∌",
3355
+ notniva: "∌",
3356
+ notnivb: "⋾",
3357
+ notnivc: "⋽",
3358
+ NotPrecedes: "⊀",
3359
+ NotPrecedesEqual: "⪯̸",
3360
+ NotPrecedesSlantEqual: "⋠",
3361
+ NotReverseElement: "∌",
3362
+ NotRightTriangle: "⋫",
3363
+ NotRightTriangleBar: "⧐̸",
3364
+ NotRightTriangleEqual: "⋭",
3365
+ NotSquareSubset: "⊏̸",
3366
+ NotSquareSubsetEqual: "⋢",
3367
+ NotSquareSuperset: "⊐̸",
3368
+ NotSquareSupersetEqual: "⋣",
3369
+ NotSubset: "⊂⃒",
3370
+ NotSubsetEqual: "⊈",
3371
+ NotSucceeds: "⊁",
3372
+ NotSucceedsEqual: "⪰̸",
3373
+ NotSucceedsSlantEqual: "⋡",
3374
+ NotSucceedsTilde: "≿̸",
3375
+ NotSuperset: "⊃⃒",
3376
+ NotSupersetEqual: "⊉",
3377
+ NotTilde: "≁",
3378
+ NotTildeEqual: "≄",
3379
+ NotTildeFullEqual: "≇",
3380
+ NotTildeTilde: "≉",
3381
+ NotVerticalBar: "∤",
3382
+ npar: "∦",
3383
+ nparallel: "∦",
3384
+ nparsl: "⫽⃥",
3385
+ npart: "∂̸",
3386
+ npolint: "⨔",
3387
+ npr: "⊀",
3388
+ nprcue: "⋠",
3389
+ npre: "⪯̸",
3390
+ nprec: "⊀",
3391
+ npreceq: "⪯̸",
3392
+ nrArr: "⇏",
3393
+ nrarr: "↛",
3394
+ nrarrc: "⤳̸",
3395
+ nrarrw: "↝̸",
3396
+ nRightarrow: "⇏",
3397
+ nrightarrow: "↛",
3398
+ nrtri: "⋫",
3399
+ nrtrie: "⋭",
3400
+ nsc: "⊁",
3401
+ nsccue: "⋡",
3402
+ nsce: "⪰̸",
3403
+ Nscr: "𝒩",
3404
+ nscr: "𝓃",
3405
+ nshortmid: "∤",
3406
+ nshortparallel: "∦",
3407
+ nsim: "≁",
3408
+ nsime: "≄",
3409
+ nsimeq: "≄",
3410
+ nsmid: "∤",
3411
+ nspar: "∦",
3412
+ nsqsube: "⋢",
3413
+ nsqsupe: "⋣",
3414
+ nsub: "⊄",
3415
+ nsubE: "⫅̸",
3416
+ nsube: "⊈",
3417
+ nsubset: "⊂⃒",
3418
+ nsubseteq: "⊈",
3419
+ nsubseteqq: "⫅̸",
3420
+ nsucc: "⊁",
3421
+ nsucceq: "⪰̸",
3422
+ nsup: "⊅",
3423
+ nsupE: "⫆̸",
3424
+ nsupe: "⊉",
3425
+ nsupset: "⊃⃒",
3426
+ nsupseteq: "⊉",
3427
+ nsupseteqq: "⫆̸",
3428
+ ntgl: "≹",
3429
+ Ntilde: "Ñ",
3430
+ ntilde: "ñ",
3431
+ ntlg: "≸",
3432
+ ntriangleleft: "⋪",
3433
+ ntrianglelefteq: "⋬",
3434
+ ntriangleright: "⋫",
3435
+ ntrianglerighteq: "⋭",
3436
+ Nu: "Ν",
3437
+ nu: "ν",
3438
+ num: "#",
3439
+ numero: "№",
3440
+ numsp: " ",
3441
+ nvap: "≍⃒",
3442
+ nVDash: "⊯",
3443
+ nVdash: "⊮",
3444
+ nvDash: "⊭",
3445
+ nvdash: "⊬",
3446
+ nvge: "≥⃒",
3447
+ nvgt: ">⃒",
3448
+ nvHarr: "⤄",
3449
+ nvinfin: "⧞",
3450
+ nvlArr: "⤂",
3451
+ nvle: "≤⃒",
3452
+ nvlt: "<⃒",
3453
+ nvltrie: "⊴⃒",
3454
+ nvrArr: "⤃",
3455
+ nvrtrie: "⊵⃒",
3456
+ nvsim: "∼⃒",
3457
+ nwarhk: "⤣",
3458
+ nwArr: "⇖",
3459
+ nwarr: "↖",
3460
+ nwarrow: "↖",
3461
+ nwnear: "⤧",
3462
+ Oacute: "Ó",
3463
+ oacute: "ó",
3464
+ oast: "⊛",
3465
+ ocir: "⊚",
3466
+ Ocirc: "Ô",
3467
+ ocirc: "ô",
3468
+ Ocy: "О",
3469
+ ocy: "о",
3470
+ odash: "⊝",
3471
+ Odblac: "Ő",
3472
+ odblac: "ő",
3473
+ odiv: "⨸",
3474
+ odot: "⊙",
3475
+ odsold: "⦼",
3476
+ OElig: "Œ",
3477
+ oelig: "œ",
3478
+ ofcir: "⦿",
3479
+ Ofr: "𝔒",
3480
+ ofr: "𝔬",
3481
+ ogon: "˛",
3482
+ Ograve: "Ò",
3483
+ ograve: "ò",
3484
+ ogt: "⧁",
3485
+ ohbar: "⦵",
3486
+ ohm: "Ω",
3487
+ oint: "∮",
3488
+ olarr: "↺",
3489
+ olcir: "⦾",
3490
+ olcross: "⦻",
3491
+ oline: "‾",
3492
+ olt: "⧀",
3493
+ Omacr: "Ō",
3494
+ omacr: "ō",
3495
+ Omega: "Ω",
3496
+ omega: "ω",
3497
+ Omicron: "Ο",
3498
+ omicron: "ο",
3499
+ omid: "⦶",
3500
+ ominus: "⊖",
3501
+ Oopf: "𝕆",
3502
+ oopf: "𝕠",
3503
+ opar: "⦷",
3504
+ OpenCurlyDoubleQuote: "“",
3505
+ OpenCurlyQuote: "‘",
3506
+ operp: "⦹",
3507
+ oplus: "⊕",
3508
+ Or: "⩔",
3509
+ or: "∨",
3510
+ orarr: "↻",
3511
+ ord: "⩝",
3512
+ order: "ℴ",
3513
+ orderof: "ℴ",
3514
+ ordf: "ª",
3515
+ ordm: "º",
3516
+ origof: "⊶",
3517
+ oror: "⩖",
3518
+ orslope: "⩗",
3519
+ orv: "⩛",
3520
+ oS: "Ⓢ",
3521
+ Oscr: "𝒪",
3522
+ oscr: "ℴ",
3523
+ Oslash: "Ø",
3524
+ oslash: "ø",
3525
+ osol: "⊘",
3526
+ Otilde: "Õ",
3527
+ otilde: "õ",
3528
+ Otimes: "⨷",
3529
+ otimes: "⊗",
3530
+ otimesas: "⨶",
3531
+ Ouml: "Ö",
3532
+ ouml: "ö",
3533
+ ovbar: "⌽",
3534
+ OverBar: "‾",
3535
+ OverBrace: "⏞",
3536
+ OverBracket: "⎴",
3537
+ OverParenthesis: "⏜",
3538
+ par: "∥",
3539
+ para: "¶",
3540
+ parallel: "∥",
3541
+ parsim: "⫳",
3542
+ parsl: "⫽",
3543
+ part: "∂",
3544
+ PartialD: "∂",
3545
+ Pcy: "П",
3546
+ pcy: "п",
3547
+ percnt: "%",
3548
+ period: ".",
3549
+ permil: "‰",
3550
+ perp: "⊥",
3551
+ pertenk: "‱",
3552
+ Pfr: "𝔓",
3553
+ pfr: "𝔭",
3554
+ Phi: "Φ",
3555
+ phi: "φ",
3556
+ phiv: "ϕ",
3557
+ phmmat: "ℳ",
3558
+ phone: "☎",
3559
+ Pi: "Π",
3560
+ pi: "π",
3561
+ pitchfork: "⋔",
3562
+ piv: "ϖ",
3563
+ planck: "ℏ",
3564
+ planckh: "ℎ",
3565
+ plankv: "ℏ",
3566
+ plus: "+",
3567
+ plusacir: "⨣",
3568
+ plusb: "⊞",
3569
+ pluscir: "⨢",
3570
+ plusdo: "∔",
3571
+ plusdu: "⨥",
3572
+ pluse: "⩲",
3573
+ PlusMinus: "±",
3574
+ plusmn: "±",
3575
+ plussim: "⨦",
3576
+ plustwo: "⨧",
3577
+ pm: "±",
3578
+ Poincareplane: "ℌ",
3579
+ pointint: "⨕",
3580
+ Popf: "ℙ",
3581
+ popf: "𝕡",
3582
+ pound: "£",
3583
+ Pr: "⪻",
3584
+ pr: "≺",
3585
+ prap: "⪷",
3586
+ prcue: "≼",
3587
+ prE: "⪳",
3588
+ pre: "⪯",
3589
+ prec: "≺",
3590
+ precapprox: "⪷",
3591
+ preccurlyeq: "≼",
3592
+ Precedes: "≺",
3593
+ PrecedesEqual: "⪯",
3594
+ PrecedesSlantEqual: "≼",
3595
+ PrecedesTilde: "≾",
3596
+ preceq: "⪯",
3597
+ precnapprox: "⪹",
3598
+ precneqq: "⪵",
3599
+ precnsim: "⋨",
3600
+ precsim: "≾",
3601
+ Prime: "″",
3602
+ prime: "′",
3603
+ primes: "ℙ",
3604
+ prnap: "⪹",
3605
+ prnE: "⪵",
3606
+ prnsim: "⋨",
3607
+ prod: "∏",
3608
+ Product: "∏",
3609
+ profalar: "⌮",
3610
+ profline: "⌒",
3611
+ profsurf: "⌓",
3612
+ prop: "∝",
3613
+ Proportion: "∷",
3614
+ Proportional: "∝",
3615
+ propto: "∝",
3616
+ prsim: "≾",
3617
+ prurel: "⊰",
3618
+ Pscr: "𝒫",
3619
+ pscr: "𝓅",
3620
+ Psi: "Ψ",
3621
+ psi: "ψ",
3622
+ puncsp: " ",
3623
+ Qfr: "𝔔",
3624
+ qfr: "𝔮",
3625
+ qint: "⨌",
3626
+ Qopf: "ℚ",
3627
+ qopf: "𝕢",
3628
+ qprime: "⁗",
3629
+ Qscr: "𝒬",
3630
+ qscr: "𝓆",
3631
+ quaternions: "ℍ",
3632
+ quatint: "⨖",
3633
+ quest: "?",
3634
+ questeq: "≟",
3635
+ QUOT: '"',
3636
+ quot: '"',
3637
+ rAarr: "⇛",
3638
+ race: "∽̱",
3639
+ Racute: "Ŕ",
3640
+ racute: "ŕ",
3641
+ radic: "√",
3642
+ raemptyv: "⦳",
3643
+ Rang: "⟫",
3644
+ rang: "⟩",
3645
+ rangd: "⦒",
3646
+ range: "⦥",
3647
+ rangle: "⟩",
3648
+ raquo: "»",
3649
+ Rarr: "↠",
3650
+ rArr: "⇒",
3651
+ rarr: "→",
3652
+ rarrap: "⥵",
3653
+ rarrb: "⇥",
3654
+ rarrbfs: "⤠",
3655
+ rarrc: "⤳",
3656
+ rarrfs: "⤞",
3657
+ rarrhk: "↪",
3658
+ rarrlp: "↬",
3659
+ rarrpl: "⥅",
3660
+ rarrsim: "⥴",
3661
+ Rarrtl: "⤖",
3662
+ rarrtl: "↣",
3663
+ rarrw: "↝",
3664
+ rAtail: "⤜",
3665
+ ratail: "⤚",
3666
+ ratio: "∶",
3667
+ rationals: "ℚ",
3668
+ RBarr: "⤐",
3669
+ rBarr: "⤏",
3670
+ rbarr: "⤍",
3671
+ rbbrk: "❳",
3672
+ rbrace: "}",
3673
+ rbrack: "]",
3674
+ rbrke: "⦌",
3675
+ rbrksld: "⦎",
3676
+ rbrkslu: "⦐",
3677
+ Rcaron: "Ř",
3678
+ rcaron: "ř",
3679
+ Rcedil: "Ŗ",
3680
+ rcedil: "ŗ",
3681
+ rceil: "⌉",
3682
+ rcub: "}",
3683
+ Rcy: "Р",
3684
+ rcy: "р",
3685
+ rdca: "⤷",
3686
+ rdldhar: "⥩",
3687
+ rdquo: "”",
3688
+ rdquor: "”",
3689
+ rdsh: "↳",
3690
+ Re: "ℜ",
3691
+ real: "ℜ",
3692
+ realine: "ℛ",
3693
+ realpart: "ℜ",
3694
+ reals: "ℝ",
3695
+ rect: "▭",
3696
+ REG: "®",
3697
+ reg: "®",
3698
+ ReverseElement: "∋",
3699
+ ReverseEquilibrium: "⇋",
3700
+ ReverseUpEquilibrium: "⥯",
3701
+ rfisht: "⥽",
3702
+ rfloor: "⌋",
3703
+ Rfr: "ℜ",
3704
+ rfr: "𝔯",
3705
+ rHar: "⥤",
3706
+ rhard: "⇁",
3707
+ rharu: "⇀",
3708
+ rharul: "⥬",
3709
+ Rho: "Ρ",
3710
+ rho: "ρ",
3711
+ rhov: "ϱ",
3712
+ RightAngleBracket: "⟩",
3713
+ RightArrow: "→",
3714
+ Rightarrow: "⇒",
3715
+ rightarrow: "→",
3716
+ RightArrowBar: "⇥",
3717
+ RightArrowLeftArrow: "⇄",
3718
+ rightarrowtail: "↣",
3719
+ RightCeiling: "⌉",
3720
+ RightDoubleBracket: "⟧",
3721
+ RightDownTeeVector: "⥝",
3722
+ RightDownVector: "⇂",
3723
+ RightDownVectorBar: "⥕",
3724
+ RightFloor: "⌋",
3725
+ rightharpoondown: "⇁",
3726
+ rightharpoonup: "⇀",
3727
+ rightleftarrows: "⇄",
3728
+ rightleftharpoons: "⇌",
3729
+ rightrightarrows: "⇉",
3730
+ rightsquigarrow: "↝",
3731
+ RightTee: "⊢",
3732
+ RightTeeArrow: "↦",
3733
+ RightTeeVector: "⥛",
3734
+ rightthreetimes: "⋌",
3735
+ RightTriangle: "⊳",
3736
+ RightTriangleBar: "⧐",
3737
+ RightTriangleEqual: "⊵",
3738
+ RightUpDownVector: "⥏",
3739
+ RightUpTeeVector: "⥜",
3740
+ RightUpVector: "↾",
3741
+ RightUpVectorBar: "⥔",
3742
+ RightVector: "⇀",
3743
+ RightVectorBar: "⥓",
3744
+ ring: "˚",
3745
+ risingdotseq: "≓",
3746
+ rlarr: "⇄",
3747
+ rlhar: "⇌",
3748
+ rlm: "‏",
3749
+ rmoust: "⎱",
3750
+ rmoustache: "⎱",
3751
+ rnmid: "⫮",
3752
+ roang: "⟭",
3753
+ roarr: "⇾",
3754
+ robrk: "⟧",
3755
+ ropar: "⦆",
3756
+ Ropf: "ℝ",
3757
+ ropf: "𝕣",
3758
+ roplus: "⨮",
3759
+ rotimes: "⨵",
3760
+ RoundImplies: "⥰",
3761
+ rpar: ")",
3762
+ rpargt: "⦔",
3763
+ rppolint: "⨒",
3764
+ rrarr: "⇉",
3765
+ Rrightarrow: "⇛",
3766
+ rsaquo: "›",
3767
+ Rscr: "ℛ",
3768
+ rscr: "𝓇",
3769
+ Rsh: "↱",
3770
+ rsh: "↱",
3771
+ rsqb: "]",
3772
+ rsquo: "’",
3773
+ rsquor: "’",
3774
+ rthree: "⋌",
3775
+ rtimes: "⋊",
3776
+ rtri: "▹",
3777
+ rtrie: "⊵",
3778
+ rtrif: "▸",
3779
+ rtriltri: "⧎",
3780
+ RuleDelayed: "⧴",
3781
+ ruluhar: "⥨",
3782
+ rx: "℞",
3783
+ Sacute: "Ś",
3784
+ sacute: "ś",
3785
+ sbquo: "‚",
3786
+ Sc: "⪼",
3787
+ sc: "≻",
3788
+ scap: "⪸",
3789
+ Scaron: "Š",
3790
+ scaron: "š",
3791
+ sccue: "≽",
3792
+ scE: "⪴",
3793
+ sce: "⪰",
3794
+ Scedil: "Ş",
3795
+ scedil: "ş",
3796
+ Scirc: "Ŝ",
3797
+ scirc: "ŝ",
3798
+ scnap: "⪺",
3799
+ scnE: "⪶",
3800
+ scnsim: "⋩",
3801
+ scpolint: "⨓",
3802
+ scsim: "≿",
3803
+ Scy: "С",
3804
+ scy: "с",
3805
+ sdot: "⋅",
3806
+ sdotb: "⊡",
3807
+ sdote: "⩦",
3808
+ searhk: "⤥",
3809
+ seArr: "⇘",
3810
+ searr: "↘",
3811
+ searrow: "↘",
3812
+ sect: "§",
3813
+ semi: ";",
3814
+ seswar: "⤩",
3815
+ setminus: "∖",
3816
+ setmn: "∖",
3817
+ sext: "✶",
3818
+ Sfr: "𝔖",
3819
+ sfr: "𝔰",
3820
+ sfrown: "⌢",
3821
+ sharp: "♯",
3822
+ SHCHcy: "Щ",
3823
+ shchcy: "щ",
3824
+ SHcy: "Ш",
3825
+ shcy: "ш",
3826
+ ShortDownArrow: "↓",
3827
+ ShortLeftArrow: "←",
3828
+ shortmid: "∣",
3829
+ shortparallel: "∥",
3830
+ ShortRightArrow: "→",
3831
+ ShortUpArrow: "↑",
3832
+ shy: "­",
3833
+ Sigma: "Σ",
3834
+ sigma: "σ",
3835
+ sigmaf: "ς",
3836
+ sigmav: "ς",
3837
+ sim: "∼",
3838
+ simdot: "⩪",
3839
+ sime: "≃",
3840
+ simeq: "≃",
3841
+ simg: "⪞",
3842
+ simgE: "⪠",
3843
+ siml: "⪝",
3844
+ simlE: "⪟",
3845
+ simne: "≆",
3846
+ simplus: "⨤",
3847
+ simrarr: "⥲",
3848
+ slarr: "←",
3849
+ SmallCircle: "∘",
3850
+ smallsetminus: "∖",
3851
+ smashp: "⨳",
3852
+ smeparsl: "⧤",
3853
+ smid: "∣",
3854
+ smile: "⌣",
3855
+ smt: "⪪",
3856
+ smte: "⪬",
3857
+ smtes: "⪬︀",
3858
+ SOFTcy: "Ь",
3859
+ softcy: "ь",
3860
+ sol: "/",
3861
+ solb: "⧄",
3862
+ solbar: "⌿",
3863
+ Sopf: "𝕊",
3864
+ sopf: "𝕤",
3865
+ spades: "♠",
3866
+ spadesuit: "♠",
3867
+ spar: "∥",
3868
+ sqcap: "⊓",
3869
+ sqcaps: "⊓︀",
3870
+ sqcup: "⊔",
3871
+ sqcups: "⊔︀",
3872
+ Sqrt: "√",
3873
+ sqsub: "⊏",
3874
+ sqsube: "⊑",
3875
+ sqsubset: "⊏",
3876
+ sqsubseteq: "⊑",
3877
+ sqsup: "⊐",
3878
+ sqsupe: "⊒",
3879
+ sqsupset: "⊐",
3880
+ sqsupseteq: "⊒",
3881
+ squ: "□",
3882
+ Square: "□",
3883
+ square: "□",
3884
+ SquareIntersection: "⊓",
3885
+ SquareSubset: "⊏",
3886
+ SquareSubsetEqual: "⊑",
3887
+ SquareSuperset: "⊐",
3888
+ SquareSupersetEqual: "⊒",
3889
+ SquareUnion: "⊔",
3890
+ squarf: "▪",
3891
+ squf: "▪",
3892
+ srarr: "→",
3893
+ Sscr: "𝒮",
3894
+ sscr: "𝓈",
3895
+ ssetmn: "∖",
3896
+ ssmile: "⌣",
3897
+ sstarf: "⋆",
3898
+ Star: "⋆",
3899
+ star: "☆",
3900
+ starf: "★",
3901
+ straightepsilon: "ϵ",
3902
+ straightphi: "ϕ",
3903
+ strns: "¯",
3904
+ Sub: "⋐",
3905
+ sub: "⊂",
3906
+ subdot: "⪽",
3907
+ subE: "⫅",
3908
+ sube: "⊆",
3909
+ subedot: "⫃",
3910
+ submult: "⫁",
3911
+ subnE: "⫋",
3912
+ subne: "⊊",
3913
+ subplus: "⪿",
3914
+ subrarr: "⥹",
3915
+ Subset: "⋐",
3916
+ subset: "⊂",
3917
+ subseteq: "⊆",
3918
+ subseteqq: "⫅",
3919
+ SubsetEqual: "⊆",
3920
+ subsetneq: "⊊",
3921
+ subsetneqq: "⫋",
3922
+ subsim: "⫇",
3923
+ subsub: "⫕",
3924
+ subsup: "⫓",
3925
+ succ: "≻",
3926
+ succapprox: "⪸",
3927
+ succcurlyeq: "≽",
3928
+ Succeeds: "≻",
3929
+ SucceedsEqual: "⪰",
3930
+ SucceedsSlantEqual: "≽",
3931
+ SucceedsTilde: "≿",
3932
+ succeq: "⪰",
3933
+ succnapprox: "⪺",
3934
+ succneqq: "⪶",
3935
+ succnsim: "⋩",
3936
+ succsim: "≿",
3937
+ SuchThat: "∋",
3938
+ Sum: "∑",
3939
+ sum: "∑",
3940
+ sung: "♪",
3941
+ Sup: "⋑",
3942
+ sup: "⊃",
3943
+ sup1: "¹",
3944
+ sup2: "²",
3945
+ sup3: "³",
3946
+ supdot: "⪾",
3947
+ supdsub: "⫘",
3948
+ supE: "⫆",
3949
+ supe: "⊇",
3950
+ supedot: "⫄",
3951
+ Superset: "⊃",
3952
+ SupersetEqual: "⊇",
3953
+ suphsol: "⟉",
3954
+ suphsub: "⫗",
3955
+ suplarr: "⥻",
3956
+ supmult: "⫂",
3957
+ supnE: "⫌",
3958
+ supne: "⊋",
3959
+ supplus: "⫀",
3960
+ Supset: "⋑",
3961
+ supset: "⊃",
3962
+ supseteq: "⊇",
3963
+ supseteqq: "⫆",
3964
+ supsetneq: "⊋",
3965
+ supsetneqq: "⫌",
3966
+ supsim: "⫈",
3967
+ supsub: "⫔",
3968
+ supsup: "⫖",
3969
+ swarhk: "⤦",
3970
+ swArr: "⇙",
3971
+ swarr: "↙",
3972
+ swarrow: "↙",
3973
+ swnwar: "⤪",
3974
+ szlig: "ß",
3975
+ Tab: " ",
3976
+ target: "⌖",
3977
+ Tau: "Τ",
3978
+ tau: "τ",
3979
+ tbrk: "⎴",
3980
+ Tcaron: "Ť",
3981
+ tcaron: "ť",
3982
+ Tcedil: "Ţ",
3983
+ tcedil: "ţ",
3984
+ Tcy: "Т",
3985
+ tcy: "т",
3986
+ tdot: "⃛",
3987
+ telrec: "⌕",
3988
+ Tfr: "𝔗",
3989
+ tfr: "𝔱",
3990
+ there4: "∴",
3991
+ Therefore: "∴",
3992
+ therefore: "∴",
3993
+ Theta: "Θ",
3994
+ theta: "θ",
3995
+ thetasym: "ϑ",
3996
+ thetav: "ϑ",
3997
+ thickapprox: "≈",
3998
+ thicksim: "∼",
3999
+ ThickSpace: "  ",
4000
+ thinsp: " ",
4001
+ ThinSpace: " ",
4002
+ thkap: "≈",
4003
+ thksim: "∼",
4004
+ THORN: "Þ",
4005
+ thorn: "þ",
4006
+ Tilde: "∼",
4007
+ tilde: "˜",
4008
+ TildeEqual: "≃",
4009
+ TildeFullEqual: "≅",
4010
+ TildeTilde: "≈",
4011
+ times: "×",
4012
+ timesb: "⊠",
4013
+ timesbar: "⨱",
4014
+ timesd: "⨰",
4015
+ tint: "∭",
4016
+ toea: "⤨",
4017
+ top: "⊤",
4018
+ topbot: "⌶",
4019
+ topcir: "⫱",
4020
+ Topf: "𝕋",
4021
+ topf: "𝕥",
4022
+ topfork: "⫚",
4023
+ tosa: "⤩",
4024
+ tprime: "‴",
4025
+ TRADE: "™",
4026
+ trade: "™",
4027
+ triangle: "▵",
4028
+ triangledown: "▿",
4029
+ triangleleft: "◃",
4030
+ trianglelefteq: "⊴",
4031
+ triangleq: "≜",
4032
+ triangleright: "▹",
4033
+ trianglerighteq: "⊵",
4034
+ tridot: "◬",
4035
+ trie: "≜",
4036
+ triminus: "⨺",
4037
+ TripleDot: "⃛",
4038
+ triplus: "⨹",
4039
+ trisb: "⧍",
4040
+ tritime: "⨻",
4041
+ trpezium: "⏢",
4042
+ Tscr: "𝒯",
4043
+ tscr: "𝓉",
4044
+ TScy: "Ц",
4045
+ tscy: "ц",
4046
+ TSHcy: "Ћ",
4047
+ tshcy: "ћ",
4048
+ Tstrok: "Ŧ",
4049
+ tstrok: "ŧ",
4050
+ twixt: "≬",
4051
+ twoheadleftarrow: "↞",
4052
+ twoheadrightarrow: "↠",
4053
+ Uacute: "Ú",
4054
+ uacute: "ú",
4055
+ Uarr: "↟",
4056
+ uArr: "⇑",
4057
+ uarr: "↑",
4058
+ Uarrocir: "⥉",
4059
+ Ubrcy: "Ў",
4060
+ ubrcy: "ў",
4061
+ Ubreve: "Ŭ",
4062
+ ubreve: "ŭ",
4063
+ Ucirc: "Û",
4064
+ ucirc: "û",
4065
+ Ucy: "У",
4066
+ ucy: "у",
4067
+ udarr: "⇅",
4068
+ Udblac: "Ű",
4069
+ udblac: "ű",
4070
+ udhar: "⥮",
4071
+ ufisht: "⥾",
4072
+ Ufr: "𝔘",
4073
+ ufr: "𝔲",
4074
+ Ugrave: "Ù",
4075
+ ugrave: "ù",
4076
+ uHar: "⥣",
4077
+ uharl: "↿",
4078
+ uharr: "↾",
4079
+ uhblk: "▀",
4080
+ ulcorn: "⌜",
4081
+ ulcorner: "⌜",
4082
+ ulcrop: "⌏",
4083
+ ultri: "◸",
4084
+ Umacr: "Ū",
4085
+ umacr: "ū",
4086
+ uml: "¨",
4087
+ UnderBar: "_",
4088
+ UnderBrace: "⏟",
4089
+ UnderBracket: "⎵",
4090
+ UnderParenthesis: "⏝",
4091
+ Union: "⋃",
4092
+ UnionPlus: "⊎",
4093
+ Uogon: "Ų",
4094
+ uogon: "ų",
4095
+ Uopf: "𝕌",
4096
+ uopf: "𝕦",
4097
+ UpArrow: "↑",
4098
+ Uparrow: "⇑",
4099
+ uparrow: "↑",
4100
+ UpArrowBar: "⤒",
4101
+ UpArrowDownArrow: "⇅",
4102
+ UpDownArrow: "↕",
4103
+ Updownarrow: "⇕",
4104
+ updownarrow: "↕",
4105
+ UpEquilibrium: "⥮",
4106
+ upharpoonleft: "↿",
4107
+ upharpoonright: "↾",
4108
+ uplus: "⊎",
4109
+ UpperLeftArrow: "↖",
4110
+ UpperRightArrow: "↗",
4111
+ Upsi: "ϒ",
4112
+ upsi: "υ",
4113
+ upsih: "ϒ",
4114
+ Upsilon: "Υ",
4115
+ upsilon: "υ",
4116
+ UpTee: "⊥",
4117
+ UpTeeArrow: "↥",
4118
+ upuparrows: "⇈",
4119
+ urcorn: "⌝",
4120
+ urcorner: "⌝",
4121
+ urcrop: "⌎",
4122
+ Uring: "Ů",
4123
+ uring: "ů",
4124
+ urtri: "◹",
4125
+ Uscr: "𝒰",
4126
+ uscr: "𝓊",
4127
+ utdot: "⋰",
4128
+ Utilde: "Ũ",
4129
+ utilde: "ũ",
4130
+ utri: "▵",
4131
+ utrif: "▴",
4132
+ uuarr: "⇈",
4133
+ Uuml: "Ü",
4134
+ uuml: "ü",
4135
+ uwangle: "⦧",
4136
+ vangrt: "⦜",
4137
+ varepsilon: "ϵ",
4138
+ varkappa: "ϰ",
4139
+ varnothing: "∅",
4140
+ varphi: "ϕ",
4141
+ varpi: "ϖ",
4142
+ varpropto: "∝",
4143
+ vArr: "⇕",
4144
+ varr: "↕",
4145
+ varrho: "ϱ",
4146
+ varsigma: "ς",
4147
+ varsubsetneq: "⊊︀",
4148
+ varsubsetneqq: "⫋︀",
4149
+ varsupsetneq: "⊋︀",
4150
+ varsupsetneqq: "⫌︀",
4151
+ vartheta: "ϑ",
4152
+ vartriangleleft: "⊲",
4153
+ vartriangleright: "⊳",
4154
+ Vbar: "⫫",
4155
+ vBar: "⫨",
4156
+ vBarv: "⫩",
4157
+ Vcy: "В",
4158
+ vcy: "в",
4159
+ VDash: "⊫",
4160
+ Vdash: "⊩",
4161
+ vDash: "⊨",
4162
+ vdash: "⊢",
4163
+ Vdashl: "⫦",
4164
+ Vee: "⋁",
4165
+ vee: "∨",
4166
+ veebar: "⊻",
4167
+ veeeq: "≚",
4168
+ vellip: "⋮",
4169
+ Verbar: "‖",
4170
+ verbar: "|",
4171
+ Vert: "‖",
4172
+ vert: "|",
4173
+ VerticalBar: "∣",
4174
+ VerticalLine: "|",
4175
+ VerticalSeparator: "❘",
4176
+ VerticalTilde: "≀",
4177
+ VeryThinSpace: " ",
4178
+ Vfr: "𝔙",
4179
+ vfr: "𝔳",
4180
+ vltri: "⊲",
4181
+ vnsub: "⊂⃒",
4182
+ vnsup: "⊃⃒",
4183
+ Vopf: "𝕍",
4184
+ vopf: "𝕧",
4185
+ vprop: "∝",
4186
+ vrtri: "⊳",
4187
+ Vscr: "𝒱",
4188
+ vscr: "𝓋",
4189
+ vsubnE: "⫋︀",
4190
+ vsubne: "⊊︀",
4191
+ vsupnE: "⫌︀",
4192
+ vsupne: "⊋︀",
4193
+ Vvdash: "⊪",
4194
+ vzigzag: "⦚",
4195
+ Wcirc: "Ŵ",
4196
+ wcirc: "ŵ",
4197
+ wedbar: "⩟",
4198
+ Wedge: "⋀",
4199
+ wedge: "∧",
4200
+ wedgeq: "≙",
4201
+ weierp: "℘",
4202
+ Wfr: "𝔚",
4203
+ wfr: "𝔴",
4204
+ Wopf: "𝕎",
4205
+ wopf: "𝕨",
4206
+ wp: "℘",
4207
+ wr: "≀",
4208
+ wreath: "≀",
4209
+ Wscr: "𝒲",
4210
+ wscr: "𝓌",
4211
+ xcap: "⋂",
4212
+ xcirc: "◯",
4213
+ xcup: "⋃",
4214
+ xdtri: "▽",
4215
+ Xfr: "𝔛",
4216
+ xfr: "𝔵",
4217
+ xhArr: "⟺",
4218
+ xharr: "⟷",
4219
+ Xi: "Ξ",
4220
+ xi: "ξ",
4221
+ xlArr: "⟸",
4222
+ xlarr: "⟵",
4223
+ xmap: "⟼",
4224
+ xnis: "⋻",
4225
+ xodot: "⨀",
4226
+ Xopf: "𝕏",
4227
+ xopf: "𝕩",
4228
+ xoplus: "⨁",
4229
+ xotime: "⨂",
4230
+ xrArr: "⟹",
4231
+ xrarr: "⟶",
4232
+ Xscr: "𝒳",
4233
+ xscr: "𝓍",
4234
+ xsqcup: "⨆",
4235
+ xuplus: "⨄",
4236
+ xutri: "△",
4237
+ xvee: "⋁",
4238
+ xwedge: "⋀",
4239
+ Yacute: "Ý",
4240
+ yacute: "ý",
4241
+ YAcy: "Я",
4242
+ yacy: "я",
4243
+ Ycirc: "Ŷ",
4244
+ ycirc: "ŷ",
4245
+ Ycy: "Ы",
4246
+ ycy: "ы",
4247
+ yen: "¥",
4248
+ Yfr: "𝔜",
4249
+ yfr: "𝔶",
4250
+ YIcy: "Ї",
4251
+ yicy: "ї",
4252
+ Yopf: "𝕐",
4253
+ yopf: "𝕪",
4254
+ Yscr: "𝒴",
4255
+ yscr: "𝓎",
4256
+ YUcy: "Ю",
4257
+ yucy: "ю",
4258
+ Yuml: "Ÿ",
4259
+ yuml: "ÿ",
4260
+ Zacute: "Ź",
4261
+ zacute: "ź",
4262
+ Zcaron: "Ž",
4263
+ zcaron: "ž",
4264
+ Zcy: "З",
4265
+ zcy: "з",
4266
+ Zdot: "Ż",
4267
+ zdot: "ż",
4268
+ zeetrf: "ℨ",
4269
+ ZeroWidthSpace: "​",
4270
+ Zeta: "Ζ",
4271
+ zeta: "ζ",
4272
+ Zfr: "ℨ",
4273
+ zfr: "𝔷",
4274
+ ZHcy: "Ж",
4275
+ zhcy: "ж",
4276
+ zigrarr: "⇝",
4277
+ Zopf: "ℤ",
4278
+ zopf: "𝕫",
4279
+ Zscr: "𝒵",
4280
+ zscr: "𝓏",
4281
+ zwj: "‍",
4282
+ zwnj: "‌"
4283
+ }), e.entityMap = e.HTML_ENTITIES;
4284
+ })(nt)), nt;
4285
+ }
4286
+ var He = {}, kt;
4287
+ function Hu() {
4288
+ if (kt) return He;
4289
+ kt = 1;
4290
+ var e = $e().NAMESPACE, r = /[A-Z_a-z\xC0-\xD6\xD8-\xF6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/, t = new RegExp("[\\-\\.0-9" + r.source.slice(1, -1) + "\\u00B7\\u0300-\\u036F\\u203F-\\u2040]"), i = new RegExp("^" + r.source + t.source + "*(?::" + r.source + t.source + "*)?$"), o = 0, s = 1, l = 2, c = 3, p = 4, g = 5, D = 6, d = 7;
4291
+ function E(h, v) {
4292
+ this.message = h, this.locator = v, Error.captureStackTrace && Error.captureStackTrace(this, E);
4293
+ }
4294
+ E.prototype = new Error(), E.prototype.name = E.name;
4295
+ function S() {
4296
+ }
4297
+ S.prototype = {
4298
+ parse: function(h, v, T) {
4299
+ var b = this.domBuilder;
4300
+ b.startDocument(), y(v, v = {}), C(
4301
+ h,
4302
+ v,
4303
+ T,
4304
+ b,
4305
+ this.errorHandler
4306
+ ), b.endDocument();
4307
+ }
4308
+ };
4309
+ function C(h, v, T, b, B) {
4310
+ function U(H) {
4311
+ if (H > 65535) {
4312
+ H -= 65536;
4313
+ var Q = 55296 + (H >> 10), he = 56320 + (H & 1023);
4314
+ return String.fromCharCode(Q, he);
4315
+ } else
4316
+ return String.fromCharCode(H);
4317
+ }
4318
+ function M(H) {
4319
+ var Q = H.slice(1, -1);
4320
+ return Q in T ? T[Q] : Q.charAt(0) === "#" ? U(parseInt(Q.substr(1).replace("x", "0x"))) : (B.error("entity not found:" + H), H);
4321
+ }
4322
+ function z(H) {
4323
+ if (H > W) {
4324
+ var Q = h.substring(W, H).replace(/&#?\w+;/g, M);
4325
+ F && I(W), b.characters(Q, 0, H - W), W = H;
4326
+ }
4327
+ }
4328
+ function I(H, Q) {
4329
+ for (; H >= _ && (Q = $.exec(h)); )
4330
+ O = Q.index, _ = O + Q[0].length, F.lineNumber++;
4331
+ F.columnNumber = H - O + 1;
4332
+ }
4333
+ for (var O = 0, _ = 0, $ = /.*(?:\r\n?|\n)|.*$/g, F = b.locator, ue = [{ currentNSMap: v }], se = {}, W = 0; ; ) {
4334
+ try {
4335
+ var Y = h.indexOf("<", W);
4336
+ if (Y < 0) {
4337
+ if (!h.substr(W).match(/^\s*$/)) {
4338
+ var Fe = b.doc, ve = Fe.createTextNode(h.substr(W));
4339
+ Fe.appendChild(ve), b.currentElement = ve;
4340
+ }
4341
+ return;
4342
+ }
4343
+ switch (Y > W && z(Y), h.charAt(Y + 1)) {
4344
+ case "/":
4345
+ var K = h.indexOf(">", Y + 3), te = h.substring(Y + 2, K).replace(/[ \t\n\r]+$/g, ""), oe = ue.pop();
4346
+ K < 0 ? (te = h.substring(Y + 2).replace(/[\s<].*/, ""), B.error("end tag name: " + te + " is not complete:" + oe.tagName), K = Y + 1 + te.length) : te.match(/\s</) && (te = te.replace(/[\s<].*/, ""), B.error("end tag name: " + te + " maybe not complete"), K = Y + 1 + te.length);
4347
+ var Se = oe.localNSMap, ne = oe.tagName == te, ie = ne || oe.tagName && oe.tagName.toLowerCase() == te.toLowerCase();
4348
+ if (ie) {
4349
+ if (b.endElement(oe.uri, oe.localName, te), Se)
4350
+ for (var Ce in Se)
4351
+ Object.prototype.hasOwnProperty.call(Se, Ce) && b.endPrefixMapping(Ce);
4352
+ ne || B.fatalError("end tag name: " + te + " is not match the current start tagName:" + oe.tagName);
4353
+ } else
4354
+ ue.push(oe);
4355
+ K++;
4356
+ break;
4357
+ // end elment
4358
+ case "?":
4359
+ F && I(Y), K = j(h, Y, b);
4360
+ break;
4361
+ case "!":
4362
+ F && I(Y), K = q(h, Y, b, B);
4363
+ break;
4364
+ default:
4365
+ F && I(Y);
4366
+ var J = new L(), be = ue[ue.length - 1].currentNSMap, K = N(h, Y, J, be, M, B), Le = J.length;
4367
+ if (!J.closed && w(h, K, J.tagName, se) && (J.closed = !0, T.nbsp || B.warning("unclosed xml attribute")), F && Le) {
4368
+ for (var Oe = m(F, {}), fe = 0; fe < Le; fe++) {
4369
+ var _e = J[fe];
4370
+ I(_e.offset), _e.locator = m(F, {});
4371
+ }
4372
+ b.locator = Oe, P(J, b, be) && ue.push(J), b.locator = F;
4373
+ } else
4374
+ P(J, b, be) && ue.push(J);
4375
+ e.isHTML(J.uri) && !J.closed ? K = R(h, K, J.tagName, M, b) : K++;
4376
+ }
4377
+ } catch (H) {
4378
+ if (H instanceof E)
4379
+ throw H;
4380
+ B.error("element parse error: " + H), K = -1;
4381
+ }
4382
+ K > W ? W = K : z(Math.max(Y, W) + 1);
4383
+ }
4384
+ }
4385
+ function m(h, v) {
4386
+ return v.lineNumber = h.lineNumber, v.columnNumber = h.columnNumber, v;
4387
+ }
4388
+ function N(h, v, T, b, B, U) {
4389
+ function M(F, ue, se) {
4390
+ T.attributeNames.hasOwnProperty(F) && U.fatalError("Attribute " + F + " redefined"), T.addValue(F, ue, se);
4391
+ }
4392
+ for (var z, I, O = ++v, _ = o; ; ) {
4393
+ var $ = h.charAt(O);
4394
+ switch ($) {
4395
+ case "=":
4396
+ if (_ === s)
4397
+ z = h.slice(v, O), _ = c;
4398
+ else if (_ === l)
4399
+ _ = c;
4400
+ else
4401
+ throw new Error("attribute equal must after attrName");
4402
+ break;
4403
+ case "'":
4404
+ case '"':
4405
+ if (_ === c || _ === s)
4406
+ if (_ === s && (U.warning('attribute value must after "="'), z = h.slice(v, O)), v = O + 1, O = h.indexOf($, v), O > 0)
4407
+ I = h.slice(v, O).replace(/&#?\w+;/g, B), M(z, I, v - 1), _ = g;
4408
+ else
4409
+ throw new Error("attribute value no end '" + $ + "' match");
4410
+ else if (_ == p)
4411
+ I = h.slice(v, O).replace(/&#?\w+;/g, B), M(z, I, v), U.warning('attribute "' + z + '" missed start quot(' + $ + ")!!"), v = O + 1, _ = g;
4412
+ else
4413
+ throw new Error('attribute value must after "="');
4414
+ break;
4415
+ case "/":
4416
+ switch (_) {
4417
+ case o:
4418
+ T.setTagName(h.slice(v, O));
4419
+ case g:
4420
+ case D:
4421
+ case d:
4422
+ _ = d, T.closed = !0;
4423
+ case p:
4424
+ case s:
4425
+ break;
4426
+ case l:
4427
+ T.closed = !0;
4428
+ break;
4429
+ //case S_EQ:
4430
+ default:
4431
+ throw new Error("attribute invalid close char('/')");
4432
+ }
4433
+ break;
4434
+ case "":
4435
+ return U.error("unexpected end of input"), _ == o && T.setTagName(h.slice(v, O)), O;
4436
+ case ">":
4437
+ switch (_) {
4438
+ case o:
4439
+ T.setTagName(h.slice(v, O));
4440
+ case g:
4441
+ case D:
4442
+ case d:
4443
+ break;
4444
+ //normal
4445
+ case p:
4446
+ //Compatible state
4447
+ case s:
4448
+ I = h.slice(v, O), I.slice(-1) === "/" && (T.closed = !0, I = I.slice(0, -1));
4449
+ case l:
4450
+ _ === l && (I = z), _ == p ? (U.warning('attribute "' + I + '" missed quot(")!'), M(z, I.replace(/&#?\w+;/g, B), v)) : ((!e.isHTML(b[""]) || !I.match(/^(?:disabled|checked|selected)$/i)) && U.warning('attribute "' + I + '" missed value!! "' + I + '" instead!!'), M(I, I, v));
4451
+ break;
4452
+ case c:
4453
+ throw new Error("attribute value missed!!");
4454
+ }
4455
+ return O;
4456
+ /*xml space '\x20' | #x9 | #xD | #xA; */
4457
+ case "€":
4458
+ $ = " ";
4459
+ default:
4460
+ if ($ <= " ")
4461
+ switch (_) {
4462
+ case o:
4463
+ T.setTagName(h.slice(v, O)), _ = D;
4464
+ break;
4465
+ case s:
4466
+ z = h.slice(v, O), _ = l;
4467
+ break;
4468
+ case p:
4469
+ var I = h.slice(v, O).replace(/&#?\w+;/g, B);
4470
+ U.warning('attribute "' + I + '" missed quot(")!!'), M(z, I, v);
4471
+ case g:
4472
+ _ = D;
4473
+ break;
4474
+ }
4475
+ else
4476
+ switch (_) {
4477
+ //case S_TAG:void();break;
4478
+ //case S_ATTR:void();break;
4479
+ //case S_ATTR_NOQUOT_VALUE:void();break;
4480
+ case l:
4481
+ T.tagName, (!e.isHTML(b[""]) || !z.match(/^(?:disabled|checked|selected)$/i)) && U.warning('attribute "' + z + '" missed value!! "' + z + '" instead2!!'), M(z, z, v), v = O, _ = s;
4482
+ break;
4483
+ case g:
4484
+ U.warning('attribute space is required"' + z + '"!!');
4485
+ case D:
4486
+ _ = s, v = O;
4487
+ break;
4488
+ case c:
4489
+ _ = p, v = O;
4490
+ break;
4491
+ case d:
4492
+ throw new Error("elements closed character '/' and '>' must be connected to");
4493
+ }
4494
+ }
4495
+ O++;
4496
+ }
4497
+ }
4498
+ function P(h, v, T) {
4499
+ for (var b = h.tagName, B = null, $ = h.length; $--; ) {
4500
+ var U = h[$], M = U.qName, z = U.value, F = M.indexOf(":");
4501
+ if (F > 0)
4502
+ var I = U.prefix = M.slice(0, F), O = M.slice(F + 1), _ = I === "xmlns" && O;
4503
+ else
4504
+ O = M, I = null, _ = M === "xmlns" && "";
4505
+ U.localName = O, _ !== !1 && (B == null && (B = {}, y(T, T = {})), T[_] = B[_] = z, U.uri = e.XMLNS, v.startPrefixMapping(_, z));
4506
+ }
4507
+ for (var $ = h.length; $--; ) {
4508
+ U = h[$];
4509
+ var I = U.prefix;
4510
+ I && (I === "xml" && (U.uri = e.XML), I !== "xmlns" && (U.uri = T[I || ""]));
4511
+ }
4512
+ var F = b.indexOf(":");
4513
+ F > 0 ? (I = h.prefix = b.slice(0, F), O = h.localName = b.slice(F + 1)) : (I = null, O = h.localName = b);
4514
+ var ue = h.uri = T[I || ""];
4515
+ if (v.startElement(ue, O, b, h), h.closed) {
4516
+ if (v.endElement(ue, O, b), B)
4517
+ for (I in B)
4518
+ Object.prototype.hasOwnProperty.call(B, I) && v.endPrefixMapping(I);
4519
+ } else
4520
+ return h.currentNSMap = T, h.localNSMap = B, !0;
4521
+ }
4522
+ function R(h, v, T, b, B) {
4523
+ if (/^(?:script|textarea)$/i.test(T)) {
4524
+ var U = h.indexOf("</" + T + ">", v), M = h.substring(v + 1, U);
4525
+ if (/[&<]/.test(M))
4526
+ return /^script$/i.test(T) ? (B.characters(M, 0, M.length), U) : (M = M.replace(/&#?\w+;/g, b), B.characters(M, 0, M.length), U);
4527
+ }
4528
+ return v + 1;
4529
+ }
4530
+ function w(h, v, T, b) {
4531
+ var B = b[T];
4532
+ return B == null && (B = h.lastIndexOf("</" + T + ">"), B < v && (B = h.lastIndexOf("</" + T)), b[T] = B), B < v;
4533
+ }
4534
+ function y(h, v) {
4535
+ for (var T in h)
4536
+ Object.prototype.hasOwnProperty.call(h, T) && (v[T] = h[T]);
4537
+ }
4538
+ function q(h, v, T, b) {
4539
+ var B = h.charAt(v + 2);
4540
+ switch (B) {
4541
+ case "-":
4542
+ if (h.charAt(v + 3) === "-") {
4543
+ var U = h.indexOf("-->", v + 4);
4544
+ return U > v ? (T.comment(h, v + 4, U - v - 4), U + 3) : (b.error("Unclosed comment"), -1);
4545
+ } else
4546
+ return -1;
4547
+ default:
4548
+ if (h.substr(v + 3, 6) == "CDATA[") {
4549
+ var U = h.indexOf("]]>", v + 9);
4550
+ return T.startCDATA(), T.characters(h, v + 9, U - v - 9), T.endCDATA(), U + 3;
4551
+ }
4552
+ var M = G(h, v), z = M.length;
4553
+ if (z > 1 && /!doctype/i.test(M[0][0])) {
4554
+ var I = M[1][0], O = !1, _ = !1;
4555
+ z > 3 && (/^public$/i.test(M[2][0]) ? (O = M[3][0], _ = z > 4 && M[4][0]) : /^system$/i.test(M[2][0]) && (_ = M[3][0]));
4556
+ var $ = M[z - 1];
4557
+ return T.startDTD(I, O, _), T.endDTD(), $.index + $[0].length;
4558
+ }
4559
+ }
4560
+ return -1;
4561
+ }
4562
+ function j(h, v, T) {
4563
+ var b = h.indexOf("?>", v);
4564
+ if (b) {
4565
+ var B = h.substring(v, b).match(/^<\?(\S*)\s*([\s\S]*?)\s*$/);
4566
+ return B ? (B[0].length, T.processingInstruction(B[1], B[2]), b + 2) : -1;
4567
+ }
4568
+ return -1;
4569
+ }
4570
+ function L() {
4571
+ this.attributeNames = {};
4572
+ }
4573
+ L.prototype = {
4574
+ setTagName: function(h) {
4575
+ if (!i.test(h))
4576
+ throw new Error("invalid tagName:" + h);
4577
+ this.tagName = h;
4578
+ },
4579
+ addValue: function(h, v, T) {
4580
+ if (!i.test(h))
4581
+ throw new Error("invalid attribute:" + h);
4582
+ this.attributeNames[h] = this.length, this[this.length++] = { qName: h, value: v, offset: T };
4583
+ },
4584
+ length: 0,
4585
+ getLocalName: function(h) {
4586
+ return this[h].localName;
4587
+ },
4588
+ getLocator: function(h) {
4589
+ return this[h].locator;
4590
+ },
4591
+ getQName: function(h) {
4592
+ return this[h].qName;
4593
+ },
4594
+ getURI: function(h) {
4595
+ return this[h].uri;
4596
+ },
4597
+ getValue: function(h) {
4598
+ return this[h].value;
4599
+ }
4600
+ // ,getIndex:function(uri, localName)){
4601
+ // if(localName){
4602
+ //
4603
+ // }else{
4604
+ // var qName = uri
4605
+ // }
4606
+ // },
4607
+ // getValue:function(){return this.getValue(this.getIndex.apply(this,arguments))},
4608
+ // getType:function(uri,localName){}
4609
+ // getType:function(i){},
4610
+ };
4611
+ function G(h, v) {
4612
+ var T, b = [], B = /'[^']+'|"[^"]+"|[^\s<>\/=]+=?|(\/?\s*>|<)/g;
4613
+ for (B.lastIndex = v, B.exec(h); T = B.exec(h); )
4614
+ if (b.push(T), T[1]) return b;
4615
+ }
4616
+ return He.XMLReader = S, He.ParseError = E, He;
4617
+ }
4618
+ var It;
4619
+ function Zu() {
4620
+ if (It) return Te;
4621
+ It = 1;
4622
+ var e = $e(), r = Wt(), t = zu(), i = Hu(), o = r.DOMImplementation, s = e.NAMESPACE, l = i.ParseError, c = i.XMLReader;
4623
+ function p(m) {
4624
+ this.options = m || { locator: {} };
4625
+ }
4626
+ p.prototype.parseFromString = function(m, N) {
4627
+ var P = this.options, R = new c(), w = P.domBuilder || new D(), y = P.errorHandler, q = P.locator, j = P.xmlns || {}, L = /\/x?html?$/.test(N), G = L ? t.HTML_ENTITIES : t.XML_ENTITIES;
4628
+ return q && w.setDocumentLocator(q), R.errorHandler = g(y, w, q), R.domBuilder = P.domBuilder || w, L && (j[""] = s.HTML), j.xml = j.xml || s.XML, m && typeof m == "string" ? R.parse(m, j, G) : R.errorHandler.error("invalid doc source"), w.doc;
4629
+ };
4630
+ function g(m, N, P) {
4631
+ if (!m) {
4632
+ if (N instanceof D)
4633
+ return N;
4634
+ m = N;
4635
+ }
4636
+ var R = {}, w = m instanceof Function;
4637
+ P = P || {};
4638
+ function y(q) {
4639
+ var j = m[q];
4640
+ !j && w && (j = m.length == 2 ? function(L) {
4641
+ m(q, L);
4642
+ } : m), R[q] = j && function(L) {
4643
+ j("[xmldom " + q + "] " + L + E(P));
4644
+ } || function() {
4645
+ };
4646
+ }
4647
+ return y("warning"), y("error"), y("fatalError"), R;
4648
+ }
4649
+ function D() {
4650
+ this.cdata = !1;
4651
+ }
4652
+ function d(m, N) {
4653
+ N.lineNumber = m.lineNumber, N.columnNumber = m.columnNumber;
4654
+ }
4655
+ D.prototype = {
4656
+ startDocument: function() {
4657
+ this.doc = new o().createDocument(null, null, null), this.locator && (this.doc.documentURI = this.locator.systemId);
4658
+ },
4659
+ startElement: function(m, N, P, R) {
4660
+ var w = this.doc, y = w.createElementNS(m, P || N), q = R.length;
4661
+ C(this, y), this.currentElement = y, this.locator && d(this.locator, y);
4662
+ for (var j = 0; j < q; j++) {
4663
+ var m = R.getURI(j), L = R.getValue(j), P = R.getQName(j), G = w.createAttributeNS(m, P);
4664
+ this.locator && d(R.getLocator(j), G), G.value = G.nodeValue = L, y.setAttributeNode(G);
4665
+ }
4666
+ },
4667
+ endElement: function(m, N, P) {
4668
+ var R = this.currentElement;
4669
+ R.tagName, this.currentElement = R.parentNode;
4670
+ },
4671
+ startPrefixMapping: function(m, N) {
4672
+ },
4673
+ endPrefixMapping: function(m) {
4674
+ },
4675
+ processingInstruction: function(m, N) {
4676
+ var P = this.doc.createProcessingInstruction(m, N);
4677
+ this.locator && d(this.locator, P), C(this, P);
4678
+ },
4679
+ ignorableWhitespace: function(m, N, P) {
4680
+ },
4681
+ characters: function(m, N, P) {
4682
+ if (m = S.apply(this, arguments), m) {
4683
+ if (this.cdata)
4684
+ var R = this.doc.createCDATASection(m);
4685
+ else
4686
+ var R = this.doc.createTextNode(m);
4687
+ this.currentElement ? this.currentElement.appendChild(R) : /^\s*$/.test(m) && this.doc.appendChild(R), this.locator && d(this.locator, R);
4688
+ }
4689
+ },
4690
+ skippedEntity: function(m) {
4691
+ },
4692
+ endDocument: function() {
4693
+ this.doc.normalize();
4694
+ },
4695
+ setDocumentLocator: function(m) {
4696
+ (this.locator = m) && (m.lineNumber = 0);
4697
+ },
4698
+ //LexicalHandler
4699
+ comment: function(m, N, P) {
4700
+ m = S.apply(this, arguments);
4701
+ var R = this.doc.createComment(m);
4702
+ this.locator && d(this.locator, R), C(this, R);
4703
+ },
4704
+ startCDATA: function() {
4705
+ this.cdata = !0;
4706
+ },
4707
+ endCDATA: function() {
4708
+ this.cdata = !1;
4709
+ },
4710
+ startDTD: function(m, N, P) {
4711
+ var R = this.doc.implementation;
4712
+ if (R && R.createDocumentType) {
4713
+ var w = R.createDocumentType(m, N, P);
4714
+ this.locator && d(this.locator, w), C(this, w), this.doc.doctype = w;
4715
+ }
4716
+ },
4717
+ /**
4718
+ * @see org.xml.sax.ErrorHandler
4719
+ * @link http://www.saxproject.org/apidoc/org/xml/sax/ErrorHandler.html
4720
+ */
4721
+ warning: function(m) {
4722
+ console.warn("[xmldom warning] " + m, E(this.locator));
4723
+ },
4724
+ error: function(m) {
4725
+ console.error("[xmldom error] " + m, E(this.locator));
4726
+ },
4727
+ fatalError: function(m) {
4728
+ throw new l(m, this.locator);
4729
+ }
4730
+ };
4731
+ function E(m) {
4732
+ if (m)
4733
+ return `
4734
+ @` + (m.systemId || "") + "#[line:" + m.lineNumber + ",col:" + m.columnNumber + "]";
4735
+ }
4736
+ function S(m, N, P) {
4737
+ return typeof m == "string" ? m.substr(N, P) : m.length >= N + P || N ? new java.lang.String(m, N, P) + "" : m;
4738
+ }
4739
+ "endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl".replace(/\w+/g, function(m) {
4740
+ D.prototype[m] = function() {
4741
+ return null;
4742
+ };
4743
+ });
4744
+ function C(m, N) {
4745
+ m.currentElement ? m.currentElement.appendChild(N) : m.doc.appendChild(N);
4746
+ }
4747
+ return Te.__DOMHandler = D, Te.DOMParser = p, Te.DOMImplementation = r.DOMImplementation, Te.XMLSerializer = r.XMLSerializer, Te;
4748
+ }
4749
+ var Rt;
4750
+ function Xu() {
4751
+ if (Rt) return ke;
4752
+ Rt = 1;
4753
+ var e = Wt();
4754
+ return ke.DOMImplementation = e.DOMImplementation, ke.XMLSerializer = e.XMLSerializer, ke.DOMParser = Zu().DOMParser, ke;
4755
+ }
4756
+ var ft = Xu();
4757
+ const $u = "4.4.3", Wu = `<?xml version="1.0" encoding="UTF-8"?>
4758
+ <gpx`, Yu = {
4759
+ dataType: null,
4760
+ batchType: null,
4761
+ name: "GPX (GPS exchange format)",
4762
+ id: "gpx",
4763
+ module: "kml",
4764
+ version: $u,
4765
+ extensions: ["gpx"],
4766
+ mimeTypes: ["application/gpx+xml"],
4767
+ text: !0,
4768
+ tests: [Wu],
4769
+ parse: async (e, r) => qt(new TextDecoder().decode(e), r),
4770
+ parseTextSync: qt,
4771
+ options: {
4772
+ gpx: { shape: "geojson-table" },
4773
+ gis: {}
4774
+ }
4775
+ };
4776
+ function qt(e, r) {
4777
+ const t = new ft.DOMParser().parseFromString(e, "text/xml"), i = Bu(t), o = { ...Yu.options.gpx, ...r == null ? void 0 : r.gpx };
4778
+ switch (o.shape) {
4779
+ case "object-row-table":
4780
+ return {
4781
+ shape: "object-row-table",
4782
+ data: i.features
4783
+ };
4784
+ case "geojson-table":
4785
+ return {
4786
+ shape: "geojson-table",
4787
+ type: "FeatureCollection",
4788
+ features: i.features
4789
+ };
4790
+ case "binary":
4791
+ return Gt(i.features);
4792
+ default:
4793
+ throw new Error(o.shape);
4794
+ }
4795
+ }
4796
+ const Ku = "4.4.3", Qu = `<?xml version="1.0" encoding="UTF-8"?>
4797
+ <kml xmlns="http://www.opengis.net/kml/2.2">`, Ju = {
4798
+ dataType: null,
4799
+ batchType: null,
4800
+ name: "KML (Keyhole Markup Language)",
4801
+ id: "kml",
4802
+ module: "kml",
4803
+ version: Ku,
4804
+ extensions: ["kml"],
4805
+ mimeTypes: ["application/vnd.google-earth.kml+xml"],
4806
+ text: !0,
4807
+ tests: [Qu],
4808
+ parse: async (e, r) => Lt(new TextDecoder().decode(e), r),
4809
+ parseTextSync: Lt,
4810
+ options: {
4811
+ kml: { shape: "geojson-table" },
4812
+ gis: {}
4813
+ }
4814
+ };
4815
+ function Lt(e, r) {
4816
+ const t = new ft.DOMParser().parseFromString(e, "text/xml"), i = ju(t), o = { ...Ju.options.kml, ...r == null ? void 0 : r.kml };
4817
+ switch (o.shape) {
4818
+ case "geojson-table":
4819
+ return {
4820
+ shape: "geojson-table",
4821
+ type: "FeatureCollection",
4822
+ features: i.features
4823
+ };
4824
+ // case 'geojson':
4825
+ // return geojson;
4826
+ // case 'binary':
4827
+ // return geojsonToBinary(geojson.features);
4828
+ // case 'raw':
4829
+ // return doc;
4830
+ case "object-row-table":
4831
+ return {
4832
+ shape: "object-row-table",
4833
+ data: i.features
4834
+ };
4835
+ default:
4836
+ throw new Error(o.shape);
4837
+ }
4838
+ }
4839
+ const er = "4.4.3", tr = `<?xml version="1.0" encoding="UTF-8"?>
4840
+ <TrainingCenterDatabase`, ur = {
4841
+ dataType: null,
4842
+ batchType: null,
4843
+ name: "TCX (Training Center XML)",
4844
+ id: "tcx",
4845
+ module: "kml",
4846
+ version: er,
4847
+ extensions: ["tcx"],
4848
+ mimeTypes: ["application/vnd.garmin.tcx+xml"],
4849
+ text: !0,
4850
+ tests: [tr],
4851
+ parse: async (e, r) => Ot(new TextDecoder().decode(e), r),
4852
+ parseTextSync: Ot,
4853
+ options: {
4854
+ tcx: { shape: "geojson-table" },
4855
+ gis: {}
4856
+ }
4857
+ };
4858
+ function Ot(e, r) {
4859
+ const t = new ft.DOMParser().parseFromString(e, "text/xml"), i = Lu(t), o = { ...ur.options.tcx, ...r == null ? void 0 : r.tcx };
4860
+ switch (o.shape) {
4861
+ case "object-row-table":
4862
+ return {
4863
+ shape: "object-row-table",
4864
+ data: i.features
4865
+ };
4866
+ case "geojson-table":
4867
+ return {
4868
+ shape: "geojson-table",
4869
+ type: "FeatureCollection",
4870
+ schema: { metadata: {}, fields: [] },
4871
+ features: i.features
4872
+ };
4873
+ case "binary":
4874
+ return Gt(i.features);
4875
+ default:
4876
+ throw new Error(o.shape);
4877
+ }
4878
+ }
4879
+ export {
4880
+ Yu as GPXLoader,
4881
+ Ju as KMLLoader,
4882
+ ur as TCXLoader
4883
+ };