@jxsuite/parser 5.0.0 → 5.0.2
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.
- package/dist/content-loader.js +1800 -822
- package/dist/markdown.js +3295 -2188
- package/dist/serialize.js +1784 -806
- package/package.json +8 -8
package/dist/content-loader.js
CHANGED
|
@@ -929,7 +929,7 @@ var init_lib = __esm(() => {
|
|
|
929
929
|
options.ruleId = origin.slice(index + 1);
|
|
930
930
|
}
|
|
931
931
|
}
|
|
932
|
-
if (!options.place && options.ancestors
|
|
932
|
+
if (!options.place && options.ancestors) {
|
|
933
933
|
const parent = options.ancestors[options.ancestors.length - 1];
|
|
934
934
|
if (parent) {
|
|
935
935
|
options.place = parent.position;
|
|
@@ -955,19 +955,21 @@ var init_lib = __esm(() => {
|
|
|
955
955
|
this.url = undefined;
|
|
956
956
|
}
|
|
957
957
|
};
|
|
958
|
-
VFileMessage.prototype
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
958
|
+
Object.defineProperties(VFileMessage.prototype, {
|
|
959
|
+
file: { configurable: true, enumerable: true, value: "", writable: true },
|
|
960
|
+
name: { configurable: true, enumerable: true, value: "", writable: true },
|
|
961
|
+
reason: { configurable: true, enumerable: true, value: "", writable: true },
|
|
962
|
+
message: { configurable: true, enumerable: true, value: "", writable: true },
|
|
963
|
+
stack: { configurable: true, enumerable: true, value: "", writable: true },
|
|
964
|
+
column: { configurable: true, enumerable: true, writable: true },
|
|
965
|
+
line: { configurable: true, enumerable: true, writable: true },
|
|
966
|
+
ancestors: { configurable: true, enumerable: true, writable: true },
|
|
967
|
+
cause: { configurable: true, enumerable: true, writable: true },
|
|
968
|
+
fatal: { configurable: true, enumerable: true, writable: true },
|
|
969
|
+
place: { configurable: true, enumerable: true, writable: true },
|
|
970
|
+
ruleId: { configurable: true, enumerable: true, writable: true },
|
|
971
|
+
source: { configurable: true, enumerable: true, writable: true }
|
|
972
|
+
});
|
|
971
973
|
});
|
|
972
974
|
|
|
973
975
|
// ../../node_modules/vfile-message/index.js
|
|
@@ -17970,7 +17972,7 @@ function gfmAutolinkLiteralToMarkdown() {
|
|
|
17970
17972
|
};
|
|
17971
17973
|
}
|
|
17972
17974
|
function enterLiteralAutolink(token) {
|
|
17973
|
-
this.enter({ type: "link", title: null, url: "", children: [] }, token);
|
|
17975
|
+
this.enter({ type: "link", title: null, url: "", children: [], position: undefined }, token);
|
|
17974
17976
|
}
|
|
17975
17977
|
function enterLiteralAutolinkValue(token) {
|
|
17976
17978
|
this.config.enter.autolinkProtocol.call(this, token);
|
|
@@ -17992,62 +17994,107 @@ function exitLiteralAutolink(token) {
|
|
|
17992
17994
|
}
|
|
17993
17995
|
function transformGfmAutolinkLiterals(tree) {
|
|
17994
17996
|
findAndReplace(tree, [
|
|
17995
|
-
[
|
|
17996
|
-
|
|
17997
|
+
[
|
|
17998
|
+
/(?<![\da-z])(https?:\/\/|www(?=\.))([\w-]*\.[\w\-.]*)([^\t\n\r ]*)/gi,
|
|
17999
|
+
findUrl
|
|
18000
|
+
],
|
|
18001
|
+
[
|
|
18002
|
+
/(?<![\w+\-.@])xmpp:([\w+\-.]+)@([\w-]+(?:\.[\w-]+)+)(\/(?:[\w\-/]|\.(?=[\dA-Za-z]))*)?/g,
|
|
18003
|
+
findXmpp
|
|
18004
|
+
],
|
|
18005
|
+
[/(?<![\w+\-.@])mailto:([\w+\-.]+)@([\w-]+(?:\.[\w-]+)+)/g, findMailto],
|
|
18006
|
+
[
|
|
18007
|
+
/(?<![\w+\-.]|(?:^|[^\d@A-Za-z])(?:mailto|xmpp):)([\w+\-.]+)@([\w-]+(?:\.[\w-]+)+)/g,
|
|
18008
|
+
findEmail
|
|
18009
|
+
]
|
|
17997
18010
|
], { ignore: ["link", "linkReference"] });
|
|
17998
18011
|
}
|
|
17999
18012
|
function findUrl(_, protocol, domain, path, match) {
|
|
18000
|
-
let prefix = "";
|
|
18001
18013
|
if (!previous2(match)) {
|
|
18002
18014
|
return false;
|
|
18003
18015
|
}
|
|
18016
|
+
let prefix = "";
|
|
18004
18017
|
if (/^w/i.test(protocol)) {
|
|
18005
18018
|
domain = protocol + domain;
|
|
18006
18019
|
protocol = "";
|
|
18007
18020
|
prefix = "http://";
|
|
18008
18021
|
}
|
|
18009
|
-
if (!isCorrectDomain(domain)) {
|
|
18022
|
+
if (unicodePunctuation(domain.charCodeAt(0)) || !isCorrectDomain(domain)) {
|
|
18010
18023
|
return false;
|
|
18011
18024
|
}
|
|
18012
18025
|
const parts = splitUrl(domain + path);
|
|
18013
|
-
if (!parts[0])
|
|
18014
|
-
return false;
|
|
18015
18026
|
const result = {
|
|
18016
18027
|
type: "link",
|
|
18017
18028
|
title: null,
|
|
18018
18029
|
url: prefix + protocol + parts[0],
|
|
18019
|
-
children: [{ type: "text", value: protocol + parts[0] }]
|
|
18030
|
+
children: [{ type: "text", value: protocol + parts[0], position: undefined }],
|
|
18031
|
+
position: undefined
|
|
18020
18032
|
};
|
|
18021
18033
|
if (parts[1]) {
|
|
18022
|
-
return [result, { type: "text", value: parts[1] }];
|
|
18034
|
+
return [result, { type: "text", value: parts[1], position: undefined }];
|
|
18023
18035
|
}
|
|
18024
18036
|
return result;
|
|
18025
18037
|
}
|
|
18026
|
-
function findEmail(_, atext, label
|
|
18027
|
-
if (
|
|
18038
|
+
function findEmail(_, atext, label) {
|
|
18039
|
+
if (/[\d\-_]$/.test(label)) {
|
|
18028
18040
|
return false;
|
|
18029
18041
|
}
|
|
18030
18042
|
return {
|
|
18031
18043
|
type: "link",
|
|
18032
18044
|
title: null,
|
|
18033
18045
|
url: "mailto:" + atext + "@" + label,
|
|
18034
|
-
children: [{ type: "text", value: atext + "@" + label }]
|
|
18046
|
+
children: [{ type: "text", value: atext + "@" + label, position: undefined }],
|
|
18047
|
+
position: undefined
|
|
18048
|
+
};
|
|
18049
|
+
}
|
|
18050
|
+
function findMailto(_, atext, label) {
|
|
18051
|
+
if (/[\d\-_]$/.test(label)) {
|
|
18052
|
+
return false;
|
|
18053
|
+
}
|
|
18054
|
+
const value = "mailto:" + atext + "@" + label;
|
|
18055
|
+
return {
|
|
18056
|
+
type: "link",
|
|
18057
|
+
title: null,
|
|
18058
|
+
url: value,
|
|
18059
|
+
children: [{ type: "text", value, position: undefined }],
|
|
18060
|
+
position: undefined
|
|
18061
|
+
};
|
|
18062
|
+
}
|
|
18063
|
+
function findXmpp(matchValue, atext, label, resource, match) {
|
|
18064
|
+
if (/[\d\-_]$/.test(label) || resource && (!/[A-Za-z]$/.test(resource) || match.input.charAt(match.index + matchValue.length) === "@")) {
|
|
18065
|
+
return false;
|
|
18066
|
+
}
|
|
18067
|
+
const value = "xmpp:" + atext + "@" + label + (resource || "");
|
|
18068
|
+
return {
|
|
18069
|
+
type: "link",
|
|
18070
|
+
title: null,
|
|
18071
|
+
url: value,
|
|
18072
|
+
children: [{ type: "text", value, position: undefined }],
|
|
18073
|
+
position: undefined
|
|
18035
18074
|
};
|
|
18036
18075
|
}
|
|
18037
18076
|
function isCorrectDomain(domain) {
|
|
18038
18077
|
const parts = domain.split(".");
|
|
18039
|
-
if (parts.length < 2 || parts[parts.length - 1] && (/_/.test(parts[parts.length - 1]) || !/[
|
|
18078
|
+
if (parts.length < 2 || parts[parts.length - 1] && (/_/.test(parts[parts.length - 1]) || !/[\dA-Za-z]/.test(parts[parts.length - 1])) || parts[parts.length - 2] && (/_/.test(parts[parts.length - 2]) || !/[\dA-Za-z]/.test(parts[parts.length - 2]))) {
|
|
18040
18079
|
return false;
|
|
18041
18080
|
}
|
|
18042
18081
|
return true;
|
|
18043
18082
|
}
|
|
18044
18083
|
function splitUrl(url) {
|
|
18045
|
-
|
|
18046
|
-
|
|
18084
|
+
let index = url.length;
|
|
18085
|
+
while (index > 0) {
|
|
18086
|
+
const code = url.charCodeAt(index - 1);
|
|
18087
|
+
if (code === 33 || code === 34 || code === 38 || code === 39 || code === 41 || code === 44 || code === 46 || code === 58 || code === 59 || code === 60 || code === 62 || code === 63 || code === 93 || code === 125) {
|
|
18088
|
+
index--;
|
|
18089
|
+
} else {
|
|
18090
|
+
break;
|
|
18091
|
+
}
|
|
18092
|
+
}
|
|
18093
|
+
if (index === url.length) {
|
|
18047
18094
|
return [url, undefined];
|
|
18048
18095
|
}
|
|
18049
|
-
|
|
18050
|
-
|
|
18096
|
+
let trail = url.slice(index);
|
|
18097
|
+
url = url.slice(0, index);
|
|
18051
18098
|
let closingParenIndex = trail.indexOf(")");
|
|
18052
18099
|
const openingParens = ccount(url, "(");
|
|
18053
18100
|
let closingParens = ccount(url, ")");
|
|
@@ -18059,9 +18106,9 @@ function splitUrl(url) {
|
|
|
18059
18106
|
}
|
|
18060
18107
|
return [url, trail];
|
|
18061
18108
|
}
|
|
18062
|
-
function previous2(match
|
|
18109
|
+
function previous2(match) {
|
|
18063
18110
|
const code = match.input.charCodeAt(match.index - 1);
|
|
18064
|
-
return
|
|
18111
|
+
return match.index === 0 || unicodeWhitespace(code) || unicodePunctuation(code);
|
|
18065
18112
|
}
|
|
18066
18113
|
var inConstruct = "phrasing", notInConstruct;
|
|
18067
18114
|
var init_lib11 = __esm(() => {
|
|
@@ -18326,9 +18373,10 @@ function markdownTable(table, options) {
|
|
|
18326
18373
|
while (++rowIndex < cellMatrix.length) {
|
|
18327
18374
|
const row = cellMatrix[rowIndex];
|
|
18328
18375
|
const sizes = sizeMatrix[rowIndex];
|
|
18376
|
+
const cellsInRow = settings.fillRows === false ? Math.max(1, cellMatrix[rowIndex === 1 ? 0 : rowIndex].length) : mostCellsPerRow;
|
|
18329
18377
|
columnIndex = -1;
|
|
18330
18378
|
const line = [];
|
|
18331
|
-
while (++columnIndex <
|
|
18379
|
+
while (++columnIndex < cellsInRow) {
|
|
18332
18380
|
const cell = row[columnIndex] || "";
|
|
18333
18381
|
let before = "";
|
|
18334
18382
|
let after = "";
|
|
@@ -18338,11 +18386,12 @@ function markdownTable(table, options) {
|
|
|
18338
18386
|
if (code === 114) {
|
|
18339
18387
|
before = " ".repeat(size);
|
|
18340
18388
|
} else if (code === 99) {
|
|
18389
|
+
const half = size / 2;
|
|
18341
18390
|
if (size % 2) {
|
|
18342
|
-
before = " ".repeat(
|
|
18343
|
-
after = " ".repeat(
|
|
18391
|
+
before = " ".repeat(half + 0.5);
|
|
18392
|
+
after = " ".repeat(half - 0.5);
|
|
18344
18393
|
} else {
|
|
18345
|
-
before = " ".repeat(
|
|
18394
|
+
before = " ".repeat(half);
|
|
18346
18395
|
after = before;
|
|
18347
18396
|
}
|
|
18348
18397
|
} else {
|
|
@@ -18365,7 +18414,7 @@ function markdownTable(table, options) {
|
|
|
18365
18414
|
if (settings.padding !== false) {
|
|
18366
18415
|
line.push(" ");
|
|
18367
18416
|
}
|
|
18368
|
-
if (settings.delimiterEnd !== false || columnIndex !==
|
|
18417
|
+
if (settings.delimiterEnd !== false || columnIndex !== cellsInRow - 1) {
|
|
18369
18418
|
line.push("|");
|
|
18370
18419
|
}
|
|
18371
18420
|
}
|
|
@@ -18966,6 +19015,8 @@ function phrasing2(parent, state, info) {
|
|
|
18966
19015
|
const handle = state.handle.handlers[child.type];
|
|
18967
19016
|
if (handle && handle.attention) {
|
|
18968
19017
|
const item = attentionItem(child, handle.attention, state, tracker);
|
|
19018
|
+
if (!item)
|
|
19019
|
+
continue;
|
|
18969
19020
|
results.push(item);
|
|
18970
19021
|
before = lastCharacter(item.sequences[0]);
|
|
18971
19022
|
} else {
|
|
@@ -18989,17 +19040,54 @@ function attentionItem(node, attention, state, tracker) {
|
|
|
18989
19040
|
const sequences = attentionSequences(node.type, markers, sizes);
|
|
18990
19041
|
const sequence = sequences[0];
|
|
18991
19042
|
const exit = state.enter(construct);
|
|
18992
|
-
tracker.
|
|
19043
|
+
const inside = state.createTracker(tracker.current());
|
|
19044
|
+
inside.move(sequence);
|
|
18993
19045
|
const children = phrasing2(node, state, {
|
|
18994
|
-
...
|
|
19046
|
+
...inside.current(),
|
|
18995
19047
|
before: sequence,
|
|
18996
19048
|
after: sequence
|
|
18997
19049
|
});
|
|
19050
|
+
exit();
|
|
19051
|
+
if (children.length === 0)
|
|
19052
|
+
return;
|
|
19053
|
+
tracker.move(sequence);
|
|
18998
19054
|
tracker.move(serialize2(children, sequence, sequence));
|
|
18999
19055
|
tracker.move(sequence);
|
|
19000
|
-
exit();
|
|
19001
19056
|
return { children, sequences };
|
|
19002
19057
|
}
|
|
19058
|
+
function fix(items, chosen, before, after) {
|
|
19059
|
+
let tokens = render(items, chosen, before, after);
|
|
19060
|
+
let mistake = check(tokens, before, after);
|
|
19061
|
+
while (mistake) {
|
|
19062
|
+
const next = improve(items, chosen, mistake, before, after);
|
|
19063
|
+
if (!next)
|
|
19064
|
+
return;
|
|
19065
|
+
chosen = next.chosen;
|
|
19066
|
+
tokens = next.tokens;
|
|
19067
|
+
mistake = next.mistake;
|
|
19068
|
+
}
|
|
19069
|
+
return tokens;
|
|
19070
|
+
}
|
|
19071
|
+
function guess(items, chosen, before, after) {
|
|
19072
|
+
let previous = before;
|
|
19073
|
+
let index = -1;
|
|
19074
|
+
while (++index < items.length) {
|
|
19075
|
+
const item = items[index];
|
|
19076
|
+
if (typeof item === "string") {
|
|
19077
|
+
previous = "";
|
|
19078
|
+
continue;
|
|
19079
|
+
}
|
|
19080
|
+
const next = index === items.length - 1 ? after : "";
|
|
19081
|
+
const sequence = item.sequences.find(function(value) {
|
|
19082
|
+
const marker = value.charAt(0);
|
|
19083
|
+
return marker !== previous.charAt(0) && marker !== next.charAt(0) || items.length === 1 && builtins.has(marker) && value.length > before.length;
|
|
19084
|
+
}) || item.sequences[0];
|
|
19085
|
+
if (sequence !== item.sequences[0])
|
|
19086
|
+
chosen.set(item, sequence);
|
|
19087
|
+
guess(item.children, chosen, sequence, sequence);
|
|
19088
|
+
previous = sequence;
|
|
19089
|
+
}
|
|
19090
|
+
}
|
|
19003
19091
|
function render(items, chosen, before, after) {
|
|
19004
19092
|
const tokens = [];
|
|
19005
19093
|
let encodeAfter;
|
|
@@ -19024,11 +19112,11 @@ function render(items, chosen, before, after) {
|
|
|
19024
19112
|
const outsideBefore = previous;
|
|
19025
19113
|
const outsideAfter = firstCharacter(next === undefined ? after : typeof next === "string" ? next : chosen.get(next) || next.sequences[0]);
|
|
19026
19114
|
const inside = render(item.children, chosen, sequence, sequence);
|
|
19027
|
-
const head = inside
|
|
19115
|
+
const head = inside[0].value;
|
|
19028
19116
|
const open = encodeInfo(outsideBefore.charCodeAt(outsideBefore.length - 1), head.charCodeAt(0), marker);
|
|
19029
19117
|
if (open.inside)
|
|
19030
19118
|
encode(inside, true);
|
|
19031
|
-
const tail =
|
|
19119
|
+
const tail = lastCharacter(inside[inside.length - 1].value);
|
|
19032
19120
|
const close = encodeInfo(outsideAfter.charCodeAt(0), tail.charCodeAt(tail.length - 1), marker);
|
|
19033
19121
|
if (close.inside)
|
|
19034
19122
|
encode(inside, false);
|
|
@@ -19047,20 +19135,9 @@ function render(items, chosen, before, after) {
|
|
|
19047
19135
|
return tokens;
|
|
19048
19136
|
}
|
|
19049
19137
|
function serialize2(items, before, after) {
|
|
19050
|
-
|
|
19051
|
-
|
|
19052
|
-
|
|
19053
|
-
let mistake = check(tokens, before, after);
|
|
19054
|
-
while (mistake) {
|
|
19055
|
-
const next = improve(items, chosen, mistake, before, after);
|
|
19056
|
-
if (!next) {
|
|
19057
|
-
tokens = initial;
|
|
19058
|
-
break;
|
|
19059
|
-
}
|
|
19060
|
-
chosen = next.chosen;
|
|
19061
|
-
tokens = next.tokens;
|
|
19062
|
-
mistake = next.mistake;
|
|
19063
|
-
}
|
|
19138
|
+
const guessed = new Map;
|
|
19139
|
+
guess(items, guessed, before, after);
|
|
19140
|
+
const tokens = (guessed.size > 0 ? fix(items, guessed, before, after) : undefined) || fix(items, new Map, before, after) || render(items, new Map, before, after);
|
|
19064
19141
|
let result = "";
|
|
19065
19142
|
for (const token of tokens)
|
|
19066
19143
|
result += token.value;
|
|
@@ -19082,7 +19159,7 @@ var init_container_phrasing = __esm(() => {
|
|
|
19082
19159
|
function emphasis(node, _, state, info) {
|
|
19083
19160
|
const exit = state.enter("phrasing");
|
|
19084
19161
|
const item = attentionItem(node, attention2, state, state.createTracker(info));
|
|
19085
|
-
const value = serialize2([item], info.before, info.after);
|
|
19162
|
+
const value = item ? serialize2([item], info.before, info.after) : "";
|
|
19086
19163
|
exit();
|
|
19087
19164
|
return value;
|
|
19088
19165
|
}
|
|
@@ -19743,7 +19820,7 @@ function checkStrong(state) {
|
|
|
19743
19820
|
function strong(node, _, state, info) {
|
|
19744
19821
|
const exit = state.enter("phrasing");
|
|
19745
19822
|
const item = attentionItem(node, attention3, state, state.createTracker(info));
|
|
19746
|
-
const value = serialize2([item], info.before, info.after);
|
|
19823
|
+
const value = item ? serialize2([item], info.before, info.after) : "";
|
|
19747
19824
|
exit();
|
|
19748
19825
|
return value;
|
|
19749
19826
|
}
|
|
@@ -20127,8 +20204,8 @@ function safe(state, input, config) {
|
|
|
20127
20204
|
const subject = value.slice(from, pattern.afterNode ? end : undefined);
|
|
20128
20205
|
let match;
|
|
20129
20206
|
while (match = expression.exec(subject)) {
|
|
20130
|
-
const before =
|
|
20131
|
-
const after =
|
|
20207
|
+
const before = Boolean(pattern.before || pattern.atBreak);
|
|
20208
|
+
const after = Boolean(pattern.after);
|
|
20132
20209
|
const position = from + match.index + (before ? match[1].length : 0);
|
|
20133
20210
|
if (own7.call(infos, position)) {
|
|
20134
20211
|
if (infos[position].before && !before) {
|
|
@@ -20356,7 +20433,8 @@ function enterTable(token) {
|
|
|
20356
20433
|
align: align.map(function(d) {
|
|
20357
20434
|
return d === "none" ? null : d;
|
|
20358
20435
|
}),
|
|
20359
|
-
children: []
|
|
20436
|
+
children: [],
|
|
20437
|
+
position: undefined
|
|
20360
20438
|
}, token);
|
|
20361
20439
|
this.data.inTable = true;
|
|
20362
20440
|
}
|
|
@@ -20365,13 +20443,13 @@ function exitTable(token) {
|
|
|
20365
20443
|
this.data.inTable = undefined;
|
|
20366
20444
|
}
|
|
20367
20445
|
function enterRow(token) {
|
|
20368
|
-
this.enter({ type: "tableRow", children: [] }, token);
|
|
20446
|
+
this.enter({ type: "tableRow", children: [], position: undefined }, token);
|
|
20369
20447
|
}
|
|
20370
20448
|
function exit2(token) {
|
|
20371
20449
|
this.exit(token);
|
|
20372
20450
|
}
|
|
20373
20451
|
function enterCell(token) {
|
|
20374
|
-
this.enter({ type: "tableCell", children: [] }, token);
|
|
20452
|
+
this.enter({ type: "tableCell", children: [], position: undefined }, token);
|
|
20375
20453
|
}
|
|
20376
20454
|
function exitCodeText(token) {
|
|
20377
20455
|
let value = this.resume();
|
|
@@ -20388,11 +20466,20 @@ function replace($0, $1) {
|
|
|
20388
20466
|
}
|
|
20389
20467
|
function gfmTableToMarkdown(options) {
|
|
20390
20468
|
const settings = options || {};
|
|
20391
|
-
const
|
|
20392
|
-
|
|
20393
|
-
|
|
20469
|
+
const {
|
|
20470
|
+
tableCellPadding: padding,
|
|
20471
|
+
tablePipeAlign: alignDelimiters,
|
|
20472
|
+
stringLength
|
|
20473
|
+
} = settings;
|
|
20394
20474
|
const around = padding ? " " : "|";
|
|
20395
20475
|
return {
|
|
20476
|
+
handlers: {
|
|
20477
|
+
inlineCode: inlineCodeWithTable,
|
|
20478
|
+
table: handleTable,
|
|
20479
|
+
tableCell: handleTableCell,
|
|
20480
|
+
tableRow: handleTableRow
|
|
20481
|
+
},
|
|
20482
|
+
join: [joinTable],
|
|
20396
20483
|
unsafe: [
|
|
20397
20484
|
{ character: "\r", inConstruct: "tableCell" },
|
|
20398
20485
|
{ character: `
|
|
@@ -20401,16 +20488,24 @@ function gfmTableToMarkdown(options) {
|
|
|
20401
20488
|
{ character: "|", inConstruct: "tableCell" },
|
|
20402
20489
|
{ atBreak: true, character: ":", after: "-" },
|
|
20403
20490
|
{ atBreak: true, character: "-", after: "[:|-]" }
|
|
20404
|
-
]
|
|
20405
|
-
handlers: {
|
|
20406
|
-
inlineCode: inlineCodeWithTable,
|
|
20407
|
-
table: handleTable,
|
|
20408
|
-
tableCell: handleTableCell,
|
|
20409
|
-
tableRow: handleTableRow
|
|
20410
|
-
}
|
|
20491
|
+
]
|
|
20411
20492
|
};
|
|
20412
20493
|
function handleTable(node, _, state, info) {
|
|
20413
|
-
|
|
20494
|
+
const matrix = handleTableAsData(node, state, info);
|
|
20495
|
+
const head = matrix[0];
|
|
20496
|
+
if (head) {
|
|
20497
|
+
let columns = node.align ? node.align.length : 0;
|
|
20498
|
+
let index = -1;
|
|
20499
|
+
if (!columns) {
|
|
20500
|
+
while (++index < matrix.length) {
|
|
20501
|
+
if (matrix[index].length > columns)
|
|
20502
|
+
columns = matrix[index].length;
|
|
20503
|
+
}
|
|
20504
|
+
}
|
|
20505
|
+
while (head.length < columns)
|
|
20506
|
+
head.push("");
|
|
20507
|
+
}
|
|
20508
|
+
return serializeData(matrix, node.align);
|
|
20414
20509
|
}
|
|
20415
20510
|
function handleTableRow(node, _, state, info) {
|
|
20416
20511
|
const row = handleTableRowAsData(node, state, info);
|
|
@@ -20434,12 +20529,13 @@ function gfmTableToMarkdown(options) {
|
|
|
20434
20529
|
return markdownTable(matrix, {
|
|
20435
20530
|
align,
|
|
20436
20531
|
alignDelimiters,
|
|
20532
|
+
fillRows: false,
|
|
20437
20533
|
padding,
|
|
20438
20534
|
stringLength
|
|
20439
20535
|
});
|
|
20440
20536
|
}
|
|
20441
20537
|
function handleTableAsData(node, state, info) {
|
|
20442
|
-
const children = node
|
|
20538
|
+
const { children } = node;
|
|
20443
20539
|
let index = -1;
|
|
20444
20540
|
const result = [];
|
|
20445
20541
|
const subexit = state.enter("table");
|
|
@@ -20450,7 +20546,7 @@ function gfmTableToMarkdown(options) {
|
|
|
20450
20546
|
return result;
|
|
20451
20547
|
}
|
|
20452
20548
|
function handleTableRowAsData(node, state, info) {
|
|
20453
|
-
const children = node
|
|
20549
|
+
const { children } = node;
|
|
20454
20550
|
let index = -1;
|
|
20455
20551
|
const result = [];
|
|
20456
20552
|
const subexit = state.enter("tableRow");
|
|
@@ -20461,16 +20557,47 @@ function gfmTableToMarkdown(options) {
|
|
|
20461
20557
|
return result;
|
|
20462
20558
|
}
|
|
20463
20559
|
function inlineCodeWithTable(node, parent, state) {
|
|
20464
|
-
|
|
20465
|
-
if (state.stack.includes("tableCell"))
|
|
20466
|
-
|
|
20560
|
+
const value = handle.inlineCode(node, parent, state);
|
|
20561
|
+
if (!state.stack.includes("tableCell"))
|
|
20562
|
+
return value;
|
|
20563
|
+
const result = [];
|
|
20564
|
+
let start = 0;
|
|
20565
|
+
let index = value.indexOf("|");
|
|
20566
|
+
while (index !== -1) {
|
|
20567
|
+
let before = index;
|
|
20568
|
+
while (before > start && value.charCodeAt(before - 1) === 92) {
|
|
20569
|
+
before--;
|
|
20570
|
+
}
|
|
20571
|
+
result.push(value.slice(start, index));
|
|
20572
|
+
if ((index - before) % 2 === 0)
|
|
20573
|
+
result.push("\\");
|
|
20574
|
+
start = index;
|
|
20575
|
+
index = value.indexOf("|", index + 1);
|
|
20467
20576
|
}
|
|
20468
|
-
|
|
20577
|
+
result.push(value.slice(start));
|
|
20578
|
+
return result.join("");
|
|
20469
20579
|
}
|
|
20470
20580
|
}
|
|
20581
|
+
function joinTable(left, right, parent, state) {
|
|
20582
|
+
if (left.type === "table" && parent.type === "listItem" && parent.spread === false && (right.type === "definition" || right.type === "heading" && formatHeadingAsSetext2(right, state) || right.type === "paragraph" || right.type === "table")) {
|
|
20583
|
+
return 1;
|
|
20584
|
+
}
|
|
20585
|
+
}
|
|
20586
|
+
function formatHeadingAsSetext2(node, state) {
|
|
20587
|
+
let literalWithBreak = false;
|
|
20588
|
+
visit(node, function(node) {
|
|
20589
|
+
if (node.type === "break" || "value" in node && /\r?\n|\r/.test(node.value)) {
|
|
20590
|
+
literalWithBreak = true;
|
|
20591
|
+
return EXIT2;
|
|
20592
|
+
}
|
|
20593
|
+
});
|
|
20594
|
+
return Boolean((!node.depth || node.depth < 3) && toString(node) && (state.options.setext || literalWithBreak));
|
|
20595
|
+
}
|
|
20471
20596
|
var init_lib18 = __esm(() => {
|
|
20472
20597
|
init_development();
|
|
20473
20598
|
init_mdast_util_to_markdown();
|
|
20599
|
+
init_mdast_util_to_string();
|
|
20600
|
+
init_unist_util_visit();
|
|
20474
20601
|
});
|
|
20475
20602
|
|
|
20476
20603
|
// ../../node_modules/mdast-util-gfm-table/index.js
|
|
@@ -20490,8 +20617,8 @@ function gfmTaskListItemFromMarkdown() {
|
|
|
20490
20617
|
}
|
|
20491
20618
|
function gfmTaskListItemToMarkdown() {
|
|
20492
20619
|
return {
|
|
20493
|
-
|
|
20494
|
-
|
|
20620
|
+
handlers: { paragraph: paragraphWithTaskListItem },
|
|
20621
|
+
join: [joinDefinitionsBeforeTaskListItemParagraph]
|
|
20495
20622
|
};
|
|
20496
20623
|
}
|
|
20497
20624
|
function exitCheck(token) {
|
|
@@ -20508,46 +20635,58 @@ function exitParagraphWithTaskListItem(token) {
|
|
|
20508
20635
|
if (head && head.type === "text") {
|
|
20509
20636
|
const siblings = parent.children;
|
|
20510
20637
|
let index = -1;
|
|
20511
|
-
let
|
|
20638
|
+
let firstParagraph;
|
|
20512
20639
|
while (++index < siblings.length) {
|
|
20513
20640
|
const sibling = siblings[index];
|
|
20514
20641
|
if (sibling.type === "paragraph") {
|
|
20515
|
-
|
|
20642
|
+
firstParagraph = sibling;
|
|
20516
20643
|
break;
|
|
20517
20644
|
}
|
|
20518
20645
|
}
|
|
20519
|
-
if (
|
|
20646
|
+
if (firstParagraph === node) {
|
|
20520
20647
|
head.value = head.value.slice(1);
|
|
20521
20648
|
if (head.value.length === 0) {
|
|
20522
20649
|
node.children.shift();
|
|
20523
20650
|
} else if (node.position && head.position && typeof head.position.start.offset === "number") {
|
|
20524
20651
|
head.position.start.column++;
|
|
20525
20652
|
head.position.start.offset++;
|
|
20526
|
-
node.position.start =
|
|
20653
|
+
node.position.start = { ...head.position.start };
|
|
20527
20654
|
}
|
|
20528
20655
|
}
|
|
20529
20656
|
}
|
|
20530
20657
|
}
|
|
20531
20658
|
this.exit(token);
|
|
20532
20659
|
}
|
|
20533
|
-
function
|
|
20534
|
-
|
|
20535
|
-
|
|
20536
|
-
|
|
20660
|
+
function paragraphWithTaskListItem(node, parent, state, info) {
|
|
20661
|
+
if (!parent || parent.type !== "listItem" || taskListItemParagraph(parent) !== node) {
|
|
20662
|
+
return handle.paragraph(node, parent, state, info);
|
|
20663
|
+
}
|
|
20664
|
+
const checkbox = "[" + (parent.checked ? "x" : " ") + "] ";
|
|
20537
20665
|
const tracker = state.createTracker(info);
|
|
20538
|
-
|
|
20539
|
-
|
|
20666
|
+
tracker.move(checkbox);
|
|
20667
|
+
const value = handle.paragraph(node.children.length > 0 ? node : { type: "paragraph", children: [{ type: "text", value: " " }] }, parent, state, { ...info, ...tracker.current() });
|
|
20668
|
+
return checkbox + value;
|
|
20669
|
+
}
|
|
20670
|
+
function joinDefinitionsBeforeTaskListItemParagraph(left, _, parent) {
|
|
20671
|
+
if (!(left.type === "definition" && parent.type === "listItem")) {
|
|
20672
|
+
return;
|
|
20540
20673
|
}
|
|
20541
|
-
|
|
20542
|
-
|
|
20543
|
-
|
|
20544
|
-
});
|
|
20545
|
-
if (checkable) {
|
|
20546
|
-
value = value.replace(/^(?:[*+-]|\d+\.)([\r\n]| {1,3})/, check);
|
|
20674
|
+
const paragraph = taskListItemParagraph(parent);
|
|
20675
|
+
if (paragraph && parent.children.indexOf(left) < parent.children.indexOf(paragraph)) {
|
|
20676
|
+
return 0;
|
|
20547
20677
|
}
|
|
20548
|
-
|
|
20549
|
-
|
|
20550
|
-
|
|
20678
|
+
}
|
|
20679
|
+
function taskListItemParagraph(node) {
|
|
20680
|
+
if (typeof node.checked !== "boolean") {
|
|
20681
|
+
return;
|
|
20682
|
+
}
|
|
20683
|
+
for (const child of node.children) {
|
|
20684
|
+
if (child.type === "paragraph") {
|
|
20685
|
+
return child;
|
|
20686
|
+
}
|
|
20687
|
+
if (child.type !== "definition") {
|
|
20688
|
+
return;
|
|
20689
|
+
}
|
|
20551
20690
|
}
|
|
20552
20691
|
}
|
|
20553
20692
|
var init_lib19 = __esm(() => {
|
|
@@ -25240,37 +25379,50 @@ var init_hastscript = __esm(() => {
|
|
|
25240
25379
|
function location(file) {
|
|
25241
25380
|
const value = String(file);
|
|
25242
25381
|
const indices = [];
|
|
25382
|
+
let cr = -1;
|
|
25383
|
+
let lf = -1;
|
|
25243
25384
|
return { toOffset, toPoint };
|
|
25385
|
+
function grow() {
|
|
25386
|
+
const from = indices.at(-1) ?? 0;
|
|
25387
|
+
if (cr < from) {
|
|
25388
|
+
cr = value.indexOf("\r", from);
|
|
25389
|
+
if (cr === -1)
|
|
25390
|
+
cr = Infinity;
|
|
25391
|
+
}
|
|
25392
|
+
if (lf < from) {
|
|
25393
|
+
lf = value.indexOf(`
|
|
25394
|
+
`, from);
|
|
25395
|
+
if (lf === -1)
|
|
25396
|
+
lf = Infinity;
|
|
25397
|
+
}
|
|
25398
|
+
const eol = cr + 1 === lf ? lf : Math.min(cr, lf);
|
|
25399
|
+
indices.push((eol === Infinity ? value.length : eol) + 1);
|
|
25400
|
+
}
|
|
25244
25401
|
function toPoint(offset) {
|
|
25245
25402
|
if (typeof offset === "number" && offset > -1 && offset <= value.length) {
|
|
25246
|
-
|
|
25247
|
-
|
|
25248
|
-
|
|
25249
|
-
|
|
25250
|
-
|
|
25251
|
-
|
|
25252
|
-
|
|
25253
|
-
|
|
25254
|
-
|
|
25255
|
-
|
|
25256
|
-
line: index + 1,
|
|
25257
|
-
column: offset - (index > 0 ? indices[index - 1] : 0) + 1,
|
|
25258
|
-
offset
|
|
25259
|
-
};
|
|
25403
|
+
while ((indices.at(-1) ?? 0) <= offset)
|
|
25404
|
+
grow();
|
|
25405
|
+
let low = 0;
|
|
25406
|
+
let high = indices.length - 1;
|
|
25407
|
+
while (low < high) {
|
|
25408
|
+
const middle = Math.floor((low + high) / 2);
|
|
25409
|
+
if (indices[middle] > offset) {
|
|
25410
|
+
high = middle;
|
|
25411
|
+
} else {
|
|
25412
|
+
low = middle + 1;
|
|
25260
25413
|
}
|
|
25261
|
-
index++;
|
|
25262
25414
|
}
|
|
25415
|
+
return {
|
|
25416
|
+
line: low + 1,
|
|
25417
|
+
column: offset - (low > 0 ? indices[low - 1] : 0) + 1,
|
|
25418
|
+
offset
|
|
25419
|
+
};
|
|
25263
25420
|
}
|
|
25264
25421
|
}
|
|
25265
25422
|
function toOffset(point) {
|
|
25266
|
-
if (point && typeof point.line === "number" && typeof point.column === "number" && !Number.isNaN(point.line) &&
|
|
25267
|
-
while (indices.length < point.line) {
|
|
25268
|
-
|
|
25269
|
-
const eol = next(value, from);
|
|
25270
|
-
const end = eol === -1 ? value.length + 1 : eol + 1;
|
|
25271
|
-
if (from === end)
|
|
25272
|
-
break;
|
|
25273
|
-
indices.push(end);
|
|
25423
|
+
if (point && typeof point.line === "number" && typeof point.column === "number" && !Number.isNaN(point.line) && point.column > 0) {
|
|
25424
|
+
while (indices.length < point.line && (indices.at(-1) ?? 0) <= value.length) {
|
|
25425
|
+
grow();
|
|
25274
25426
|
}
|
|
25275
25427
|
const offset = (point.line > 1 ? indices[point.line - 2] : 0) + point.column - 1;
|
|
25276
25428
|
if (offset < indices[point.line - 1])
|
|
@@ -25278,16 +25430,6 @@ function location(file) {
|
|
|
25278
25430
|
}
|
|
25279
25431
|
}
|
|
25280
25432
|
}
|
|
25281
|
-
function next(value, from) {
|
|
25282
|
-
const cr = value.indexOf("\r", from);
|
|
25283
|
-
const lf = value.indexOf(`
|
|
25284
|
-
`, from);
|
|
25285
|
-
if (lf === -1)
|
|
25286
|
-
return cr;
|
|
25287
|
-
if (cr === -1 || cr + 1 === lf)
|
|
25288
|
-
return lf;
|
|
25289
|
-
return cr < lf ? cr : lf;
|
|
25290
|
-
}
|
|
25291
25433
|
|
|
25292
25434
|
// ../../node_modules/vfile-location/index.js
|
|
25293
25435
|
var init_vfile_location = () => {};
|
|
@@ -25656,8 +25798,11 @@ class Preprocessor {
|
|
|
25656
25798
|
get col() {
|
|
25657
25799
|
return this.pos - this.lineStartPos + Number(this.lastGapPos !== this.pos);
|
|
25658
25800
|
}
|
|
25801
|
+
get codePointStart() {
|
|
25802
|
+
return this.pos - Number(this.lastGapPos === this.pos);
|
|
25803
|
+
}
|
|
25659
25804
|
get offset() {
|
|
25660
|
-
return this.droppedBufferSize + this.
|
|
25805
|
+
return this.droppedBufferSize + this.codePointStart;
|
|
25661
25806
|
}
|
|
25662
25807
|
getError(code, cpOffset) {
|
|
25663
25808
|
const { line, col, offset } = this;
|
|
@@ -25686,7 +25831,7 @@ class Preprocessor {
|
|
|
25686
25831
|
_processSurrogate(cp) {
|
|
25687
25832
|
if (this.pos !== this.html.length - 1) {
|
|
25688
25833
|
const nextCp = this.html.charCodeAt(this.pos + 1);
|
|
25689
|
-
if (isSurrogatePair(nextCp)) {
|
|
25834
|
+
if (!isSurrogatePair(cp) && isSurrogatePair(nextCp)) {
|
|
25690
25835
|
this.pos++;
|
|
25691
25836
|
this._addGap();
|
|
25692
25837
|
return getSurrogatePairCodePoint(cp, nextCp);
|
|
@@ -25701,14 +25846,17 @@ class Preprocessor {
|
|
|
25701
25846
|
willDropParsedChunk() {
|
|
25702
25847
|
return this.pos > this.bufferWaterline;
|
|
25703
25848
|
}
|
|
25704
|
-
dropParsedChunk() {
|
|
25849
|
+
dropParsedChunk(keep = 0) {
|
|
25705
25850
|
if (this.willDropParsedChunk()) {
|
|
25706
|
-
|
|
25707
|
-
this.
|
|
25708
|
-
this.
|
|
25709
|
-
this.
|
|
25851
|
+
const droppedSize = this.offset - this.droppedBufferSize - keep;
|
|
25852
|
+
this.html = this.html.substring(droppedSize);
|
|
25853
|
+
this.lineStartPos -= droppedSize;
|
|
25854
|
+
this.droppedBufferSize += droppedSize;
|
|
25855
|
+
this.pos -= droppedSize;
|
|
25710
25856
|
this.lastGapPos = -2;
|
|
25711
25857
|
this.gapStack.length = 0;
|
|
25858
|
+
if (this.pos > keep)
|
|
25859
|
+
this._addGap();
|
|
25712
25860
|
}
|
|
25713
25861
|
}
|
|
25714
25862
|
write(chunk, isLastChunk) {
|
|
@@ -25832,332 +25980,569 @@ var init_token = __esm(() => {
|
|
|
25832
25980
|
})(TokenType || (TokenType = {}));
|
|
25833
25981
|
});
|
|
25834
25982
|
|
|
25835
|
-
// ../../node_modules/parse5/node_modules/entities/dist/
|
|
25836
|
-
|
|
25837
|
-
|
|
25838
|
-
htmlDecodeTree = /* @__PURE__ */ new Uint16Array(/* @__PURE__ */ "ᵁ<Õıʊҝջאٵ۞ޢߖࠏઑඡ༉༦ረዡᐕᒝᓃᓟᔥ\x00\x00\x00\x00\x00\x00ᕫᛍᦍᰒᷝ↰⊍⏀⏻⑂⠤⤒ⴈ⹈⿎〖㊺㘹㞬㣾㨨㩱㫠㬮ࠀEMabcfglmnoprstu\\bfms¦³¹ÈÏlig耻Æ䃆P耻&䀦cute耻Á䃁reve;䄂Āiyx}rc耻Â䃂;䐐r;쀀\uD835\uDD04rave耻À䃀pha;䎑acr;䄀d;橓Āgp¡on;䄄f;쀀\uD835\uDD38plyFunction;恡ing耻Å䃅Ācs¾Ãr;쀀\uD835\uDC9Cign;扔ilde耻Ã䃃ml耻Ä䃄ЀaceforsuåûþėĜĢħĪĀcrêòkslash;或Ŷöø;櫧ed;挆y;䐑ƀcrtąċĔause;戵noullis;愬a;䎒r;쀀\uD835\uDD05pf;쀀\uD835\uDD39eve;䋘còēmpeq;扎܀HOacdefhilorsuōőŖƀƞƢƵƷƺǜȕɳɸɾcy;䐧PY耻©䂩ƀcpyŝŢźute;䄆Ā;iŧŨ拒talDifferentialD;慅leys;愭ȀaeioƉƎƔƘron;䄌dil耻Ç䃇rc;䄈nint;戰ot;䄊ĀdnƧƭilla;䂸terDot;䂷òſi;䎧rcleȀDMPTLJNjǑǖot;抙inus;抖lus;投imes;抗oĀcsǢǸkwiseContourIntegral;戲eCurlyĀDQȃȏoubleQuote;思uote;怙ȀlnpuȞȨɇɕonĀ;eȥȦ户;橴ƀgitȯȶȺruent;扡nt;戯ourIntegral;戮ĀfrɌɎ;愂oduct;成nterClockwiseContourIntegral;戳oss;樯cr;쀀\uD835\uDC9EpĀ;Cʄʅ拓ap;才րDJSZacefiosʠʬʰʴʸˋ˗ˡ˦̳ҍĀ;oŹʥtrahd;椑cy;䐂cy;䐅cy;䐏ƀgrsʿ˄ˇger;怡r;憡hv;櫤Āayː˕ron;䄎;䐔lĀ;t˝˞戇a;䎔r;쀀\uD835\uDD07Āaf˫̧Ācm˰̢riticalȀADGT̖̜̀̆cute;䂴oŴ̋̍;䋙bleAcute;䋝rave;䁠ilde;䋜ond;拄ferentialD;慆Ѱ̽\x00\x00\x00͔͂\x00Ѕf;쀀\uD835\uDD3Bƀ;DE͈͉͍䂨ot;惜qual;扐blèCDLRUVͣͲϏϢϸontourIntegraìȹoɴ\x00\x00ͻ»͉nArrow;懓Āeo·ΤftƀARTΐΖΡrrow;懐ightArrow;懔eåˊngĀLRΫτeftĀARγιrrow;柸ightArrow;柺ightArrow;柹ightĀATϘϞrrow;懒ee;抨pɁϩ\x00\x00ϯrrow;懑ownArrow;懕erticalBar;戥ǹABLRTaВЪаўѿͼrrowƀ;BUНОТ憓ar;椓pArrow;懵reve;䌑eft˒к\x00ц\x00ѐightVector;楐eeVector;楞ectorĀ;Bљњ憽ar;楖ightǔѧ\x00ѱeeVector;楟ectorĀ;BѺѻ懁ar;楗eeĀ;A҆҇护rrow;憧ĀctҒҗr;쀀\uD835\uDC9Frok;䄐ࠀNTacdfglmopqstuxҽӀӄӋӞӢӧӮӵԡԯԶՒ՝ՠեG;䅊H耻Ð䃐cute耻É䃉ƀaiyӒӗӜron;䄚rc耻Ê䃊;䐭ot;䄖r;쀀\uD835\uDD08rave耻È䃈ement;戈ĀapӺӾcr;䄒tyɓԆ\x00\x00ԒmallSquare;旻erySmallSquare;斫ĀgpԦԪon;䄘f;쀀\uD835\uDD3Csilon;䎕uĀaiԼՉlĀ;TՂՃ橵ilde;扂librium;懌Āci՚r;愰m;橳a;䎗ml耻Ë䃋Āipժկsts;戃onentialE;慇ʀcfiosօֈ֍ֲy;䐤r;쀀\uD835\uDD09lledɓ֗\x00\x00֣mallSquare;旼erySmallSquare;斪Ͱֺ\x00ֿ\x00\x00ׄf;쀀\uD835\uDD3DAll;戀riertrf;愱còJTabcdfgorstרׯؒؖ؛؝أ٬ٲcy;䐃耻>䀾mmaĀ;d䎓;䏜reve;䄞ƀeiy؇،ؐdil;䄢rc;䄜;䐓ot;䄠r;쀀\uD835\uDD0A;拙pf;쀀\uD835\uDD3Eeater̀EFGLSTصلَٖٛ٦qualĀ;Lؾؿ扥ess;招ullEqual;执reater;檢ess;扷lantEqual;橾ilde;扳cr;쀀\uD835\uDCA2;扫ЀAacfiosuڅڋږڛڞڪھۊRDcy;䐪Āctڐڔek;䋇;䁞irc;䄤r;愌lbertSpace;愋ǰگ\x00ڲf;愍izontalLine;攀Āctۃۅòکrok;䄦mpńېۘownHumðįqual;扏܀EJOacdfgmnostuۺ۾܃܇ܚܞܡܨ݄ݸދޏޕcy;䐕lig;䄲cy;䐁cute耻Í䃍Āiyܓܘrc耻Î䃎;䐘ot;䄰r;愑rave耻Ì䃌ƀ;apܠܯܿĀcgܴܷr;䄪inaryI;慈lieóϝǴ݉\x00ݢĀ;eݍݎ戬Āgrݓݘral;戫section;拂isibleĀCTݬݲomma;恣imes;恢ƀgptݿރވon;䄮f;쀀\uD835\uDD40a;䎙cr;愐ilde;䄨ǫޚ\x00ޞcy;䐆l耻Ï䃏ʀcfosuެ߂ߐĀiyޱrc;䄴;䐙r;쀀\uD835\uDD0Dpf;쀀\uD835\uDD41ǣ߇\x00ߌr;쀀\uD835\uDCA5rcy;䐈kcy;䐄HJacfosߤߨ߽߬߱ࠂࠈcy;䐥cy;䐌ppa;䎚Āey߶dil;䄶;䐚r;쀀\uD835\uDD0Epf;쀀\uD835\uDD42cr;쀀\uD835\uDCA6րJTaceflmostࠥࠩࠬࡐࡣসে্ੇcy;䐉耻<䀼ʀcmnpr࠷࠼ࡁࡄࡍute;䄹bda;䎛g;柪lacetrf;愒r;憞ƀaeyࡗࡡron;䄽dil;䄻;䐛Āfsࡨ॰tԀACDFRTUVarࡾࢩࢱࣦ࣠ࣼयज़ΐ४ĀnrࢃgleBracket;柨rowƀ;BR࢙࢚࢞憐ar;懤ightArrow;懆eiling;挈oǵࢷ\x00ࣃbleBracket;柦nǔࣈ\x00࣒eeVector;楡ectorĀ;Bࣛࣜ懃ar;楙loor;挊ightĀAV࣯ࣵrrow;憔ector;楎Āerँगeƀ;AVउऊऐ抣rrow;憤ector;楚iangleƀ;BEतथऩ抲ar;槏qual;抴pƀDTVषूौownVector;楑eeVector;楠ectorĀ;Bॖॗ憿ar;楘ectorĀ;B॥०憼ar;楒ightáΜs̀EFGLSTॾঋকঝঢভqualGreater;拚ullEqual;扦reater;扶ess;檡lantEqual;橽ilde;扲r;쀀\uD835\uDD0FĀ;eঽা拘ftarrow;懚idot;䄿ƀnpwਖਛgȀLRlr৷ਂਐeftĀAR০৬rrow;柵ightArrow;柷ightArrow;柶eftĀarγਊightáοightáϊf;쀀\uD835\uDD43erĀLRਢਬeftArrow;憙ightArrow;憘ƀchtਾੀੂòࡌ;憰rok;䅁;扪Ѐacefiosuਗ਼અઋp;椅y;䐜Ādl੯iumSpace;恟lintrf;愳r;쀀\uD835\uDD10nusPlus;戓pf;쀀\uD835\uDD44cò੶;䎜ҀJacefostuણધભીଔଙඑඞcy;䐊cute;䅃ƀaeyહાron;䅇dil;䅅;䐝ƀgswે૰ativeƀMTV૨ediumSpace;怋hiĀcn૦ëeryThiîtedĀGLଆreaterGreateòٳessLesóੈLine;䀊r;쀀\uD835\uDD11ȀBnptଢନଷreak;恠BreakingSpace;䂠f;愕ڀ;CDEGHLNPRSTV୕ୖ୪௫ఄ಄ದൡඅ櫬Āoungruent;扢pCap;扭oubleVerticalBar;戦ƀlqxஃஊement;戉ualĀ;Tஒஓ扠ilde;쀀≂̸ists;戄reater;EFGLSTஶஷ扯qual;扱ullEqual;쀀≧̸reater;쀀≫̸ess;批lantEqual;쀀⩾̸ilde;扵umpń௲ownHump;쀀≎̸qual;쀀≏̸eĀfsఊధtTriangleƀ;BEచఛడ拪ar;쀀⧏̸qual;括s̀;EGLSTవశ఼ౄోౘ扮qual;扰reater;扸ess;쀀≪̸lantEqual;쀀⩽̸ilde;扴estedĀGL౨౹reaterGreater;쀀⪢̸essLess;쀀⪡̸recedesƀ;ESಒಓಛ技qual;쀀⪯̸lantEqual;拠ĀeiಫಹverseElement;戌ghtTriangleƀ;BEೋೌ拫ar;쀀⧐̸qual;拭ĀquೝഌuareSuĀbp೨setĀ;Eೳ쀀⊏̸qual;拢ersetĀ;Eഃആ쀀⊐̸qual;拣ƀbcpഓതൎsetĀ;Eഛഞ쀀⊂⃒qual;抈ceedsȀ;ESTലള഻െ抁qual;쀀⪰̸lantEqual;拡ilde;쀀≿̸ersetĀ;E൘൛쀀⊃⃒qual;抉ildeȀ;EFT൮൯൵ൿ扁qual;扄ullEqual;扇ilde;扉erticalBar;戤cr;쀀\uD835\uDCA9ilde耻Ñ䃑;䎝܀Eacdfgmoprstuvලෂෛ෧ขภยา฿ไlig;䅒cute耻Ó䃓Āiyීrc耻Ô䃔;䐞blac;䅐r;쀀\uD835\uDD12rave耻Ò䃒ƀaei෮ෲcr;䅌ga;䎩cron;䎟pf;쀀\uD835\uDD46enCurlyĀDQฎบoubleQuote;怜uote;怘;橔Āclวฬr;쀀\uD835\uDCAAash耻Ø䃘iŬืde耻Õ䃕es;樷ml耻Ö䃖erĀBP๋Āar๐๓r;怾acĀek๚;揞et;掴arenthesis;揜ҀacfhilorsງຊຏຒດຝະrtialD;戂y;䐟r;쀀\uD835\uDD13i;䎦;䎠usMinus;䂱Āipຢອncareplanåڝf;愙Ȁ;eio຺ູ檻cedesȀ;EST່້扺qual;檯lantEqual;扼ilde;找me;怳Ādpuct;戏ortionĀ;aȥl;戝Āci༁༆r;쀀\uD835\uDCAB;䎨ȀUfos༑༖༛༟OT耻\"䀢r;쀀\uD835\uDD14pf;愚cr;쀀\uD835\uDCACBEacefhiorsu༾གྷཇའཱིྦྷྪྭ႖ႩႴႾarr;椐G耻®䂮ƀcnrཎནབute;䅔g;柫rĀ;tཛྷཝ憠l;椖ƀaeyཧཬཱron;䅘dil;䅖;䐠Ā;vླྀཹ愜erseĀEUྂྙĀlq྇ྎement;戋uilibrium;懋pEquilibrium;楯r»ཹo;䎡ghtЀACDFTUVa࿁ဢဨၛႇϘĀnr࿆࿒gleBracket;柩rowƀ;BL憒ar;懥eftArrow;懄eiling;按oǵ\x00စbleBracket;柧nǔည\x00နeeVector;楝ectorĀ;Bဝသ懂ar;楕loor;挋Āerိ၃eƀ;AVဵံြ抢rrow;憦ector;楛iangleƀ;BEၐၑၕ抳ar;槐qual;抵pƀDTVၣၮၸownVector;楏eeVector;楜ectorĀ;Bႂႃ憾ar;楔ectorĀ;B႑႒懀ar;楓Āpuႛ႞f;愝ndImplies;楰ightarrow;懛ĀchႹႼr;愛;憱leDelayed;槴ڀHOacfhimoqstuფჱჷჽᄙᄞᅑᅖᅡᅧᆵᆻᆿĀCcჩხHcy;䐩y;䐨FTcy;䐬cute;䅚ʀ;aeiyᄈᄉᄎᄓᄗ檼ron;䅠dil;䅞rc;䅜;䐡r;쀀\uD835\uDD16ortȀDLRUᄪᄴᄾᅉownArrow»ОeftArrow»࢚ightArrow»pArrow;憑gma;䎣allCircle;战pf;쀀\uD835\uDD4Aɲᅭ\x00\x00ᅰt;戚areȀ;ISUᅻᅼᆉᆯ斡ntersection;抓uĀbpᆏᆞsetĀ;Eᆗᆘ抏qual;抑ersetĀ;Eᆨᆩ抐qual;抒nion;抔cr;쀀\uD835\uDCAEar;拆ȀbcmpᇈᇛሉላĀ;sᇍᇎ拐etĀ;Eᇍᇕqual;抆ĀchᇠህeedsȀ;ESTᇭᇮᇴᇿ扻qual;檰lantEqual;扽ilde;承Tháྌ;我ƀ;esሒሓሣ拑rsetĀ;Eሜም抃qual;抇et»ሓրHRSacfhiorsሾቄቕቱቶኟዂወዑORN耻Þ䃞ADE;愢ĀHcቒcy;䐋y;䐦Ābuቚቜ;䀉;䎤ƀaeyብቪቯron;䅤dil;䅢;䐢r;쀀\uD835\uDD17ĀeiቻDzኀ\x00ኇefore;戴a;䎘ĀcnኘkSpace;쀀 Space;怉ldeȀ;EFTካኬኲኼ戼qual;扃ullEqual;扅ilde;扈pf;쀀\uD835\uDD4BipleDot;惛Āctዖዛr;쀀\uD835\uDCAFrok;䅦ૡዷጎጚጦ\x00ጬጱ\x00\x00\x00\x00\x00ጸጽ፷ᎅ\x00ᐄᐊᐐĀcrዻጁute耻Ú䃚rĀ;oጇገ憟cir;楉rǣጓ\x00y;䐎ve;䅬Āiyጞጣrc耻Û䃛;䐣blac;䅰r;쀀\uD835\uDD18rave耻Ù䃙acr;䅪Ādiፁ፩erĀBPፈ፝Āarፍፐr;䁟acĀekፗፙ;揟et;掵arenthesis;揝onĀ;P፰፱拃lus;抎Āgp፻on;䅲f;쀀\uD835\uDD4CЀADETadps᎕ᎮᎸᏄϨᏒᏗᏳrrowƀ;BDᅐᎠᎤar;椒ownArrow;懅ownArrow;憕quilibrium;楮eeĀ;AᏋᏌ报rrow;憥ownáϳerĀLRᏞᏨeftArrow;憖ightArrow;憗iĀ;lᏹᏺ䏒on;䎥ing;䅮cr;쀀\uD835\uDCB0ilde;䅨ml耻Ü䃜ҀDbcdefosvᐧᐬᐰᐳᐾᒅᒊᒐᒖash;披ar;櫫y;䐒ashĀ;lᐻᐼ抩;櫦Āerᑃᑅ;拁ƀbtyᑌᑐᑺar;怖Ā;iᑏᑕcalȀBLSTᑡᑥᑪᑴar;戣ine;䁼eparator;杘ilde;所ThinSpace;怊r;쀀\uD835\uDD19pf;쀀\uD835\uDD4Dcr;쀀\uD835\uDCB1dash;抪ʀcefosᒧᒬᒱᒶᒼirc;䅴dge;拀r;쀀\uD835\uDD1Apf;쀀\uD835\uDD4Ecr;쀀\uD835\uDCB2Ȁfiosᓋᓐᓒᓘr;쀀\uD835\uDD1B;䎞pf;쀀\uD835\uDD4Fcr;쀀\uD835\uDCB3ҀAIUacfosuᓱᓵᓹᓽᔄᔏᔔᔚᔠcy;䐯cy;䐇cy;䐮cute耻Ý䃝Āiyᔉᔍrc;䅶;䐫r;쀀\uD835\uDD1Cpf;쀀\uD835\uDD50cr;쀀\uD835\uDCB4ml;䅸ЀHacdefosᔵᔹᔿᕋᕏᕝᕠᕤcy;䐖cute;䅹Āayᕄᕉron;䅽;䐗ot;䅻Dzᕔ\x00ᕛoWidtèa;䎖r;愨pf;愤cr;쀀\uD835\uDCB5ᖃᖊᖐ\x00ᖰᖶᖿ\x00\x00\x00\x00ᗆᗛᗫᙟ᙭\x00ᚕ᚛ᚲᚹ\x00ᚾcute耻á䃡reve;䄃̀;Ediuyᖜᖝᖡᖣᖨᖭ戾;쀀∾̳;房rc耻â䃢te肻´̆;䐰lig耻æ䃦Ā;r²ᖺ;쀀\uD835\uDD1Erave耻à䃠ĀepᗊᗖĀfpᗏᗔsym;愵èᗓha;䎱ĀapᗟcĀclᗤᗧr;䄁g;樿ɤᗰ\x00\x00ᘊʀ;adsvᗺᗻᗿᘁᘇ戧nd;橕;橜lope;橘;橚;elmrszᘘᘙᘛᘞᘿᙏᙙ戠;榤e»ᘙsdĀ;aᘥᘦ戡ѡᘰᘲᘴᘶᘸᘺᘼᘾ;榨;榩;榪;榫;榬;榭;榮;榯tĀ;vᙅᙆ戟bĀ;dᙌᙍ抾;榝Āptᙔᙗh;戢»¹arr;捼Āgpᙣᙧon;䄅f;쀀\uD835\uDD52;Eaeiopᙻᙽᚂᚄᚇᚊ;橰cir;橯;扊d;手s;䀧roxĀ;eᚒñᚃing耻å䃥ƀctyᚡᚦᚨr;쀀\uD835\uDCB6;䀪mpĀ;eᚯñʈilde耻ã䃣ml耻ä䃤Āciᛂᛈoninôɲnt;樑ࠀNabcdefiklnoprsu᛭ᛱᜰᝃᝈ០៦ᠹᡐᜍ᥈ᥰot;櫭ĀcrᛶkȀcepsᜀᜅᜍᜓong;扌psilon;䏶rime;怵imĀ;e戽q;拍Ŷᜢᜦee;抽edĀ;gᜬᜭ挅e»ᜭrkĀ;tbrk;掶Āoyᜁᝁ;䐱quo;怞ʀcmprtᝓᝡᝤᝨausĀ;eĊĉptyv;榰séᜌnoõēƀahwᝯᝳ;䎲;愶een;扬r;쀀\uD835\uDD1Fgcostuvwឍឝឳេ៕៛ƀaiuបពរðݠrc;旯p»፱ƀdptឤឨឭot;樀lus;樁imes;樂ɱឹ\x00\x00ើcup;樆ar;昅riangleĀdu៍្own;施p;斳plus;樄eåᑄåᒭarow;植ƀakoᠦᠵĀcn៲ᠣkƀlst֫᠂ozenge;槫riangleȀ;dlr᠒᠓᠘斴own;斾eft;旂ight;斸k;搣Ʊᠫ\x00ᠳƲᠯ\x00ᠱ;斒;斑4;斓ck;斈ĀeoᠾᡍĀ;qᡃᡆ쀀=⃥uiv;쀀≡⃥t;挐Ȁptwxᡙᡞᡧᡬf;쀀\uD835\uDD53Ā;tᏋᡣom»Ꮜtie;拈DHUVbdhmptuvᢅᢖᢪᢻᣗᣛᣬᤅᤊᤐᤡȀLRlrᢎᢐᢒᢔ;敗;敔;敖;敓ʀ;DUduᢡᢢᢤᢦᢨ敐;敦;敩;敤;敧ȀLRlrᢳᢵᢷᢹ;敝;敚;敜;教;HLRhlrᣊᣋᣍᣏᣑᣓᣕ救;敬;散;敠;敫;敢;敟ox;槉ȀLRlrᣤᣦᣨᣪ;敕;敒;攐;攌ʀ;DUduڽ;敥;敨;攬;攴inus;抟lus;択imes;抠ȀLRlrᤙᤛᤝ;敛;敘;攘;攔;HLRhlrᤰᤱᤳᤵᤷ᤻᤹攂;敪;敡;敞;攼;攤;攜Āevģbar耻¦䂦Ȁceioᥑᥖᥚᥠr;쀀\uD835\uDCB7mi;恏mĀ;elƀ;bhᥨᥩᥫ䁜;槅sub;柈ŬᥴlĀ;e怢t»pƀ;Eeįᦅᦇ;檮Ā;qۜۛೡᦧ\x00᧨ᨑᨕᨲ\x00ᨷᩐ\x00\x00᪴\x00\x00᫁\x00\x00ᬡᬮ᭒\x00᯽\x00ᰌƀcprᦲute;䄇̀;abcdsᦿᧀᧄ᧕᧙戩nd;橄rcup;橉Āau᧒p;橋p;橇ot;橀;쀀∩︀Āeo᧢᧥t;恁îړȀaeiu᧰᧻ᨁᨅǰ᧵\x00᧸s;橍on;䄍dil耻ç䃧rc;䄉psĀ;sᨌᨍ橌m;橐ot;䄋ƀdmnᨛᨠᨦil肻¸ƭptyv;榲t脀¢;eᨭᨮ䂢räƲr;쀀\uD835\uDD20ƀceiᨽᩀᩍy;䑇ckĀ;mᩇᩈ朓ark»ᩈ;䏇r;Ecefms᩠ᩢᩫ᪤᪪旋;槃ƀ;elᩩᩪᩭ䋆q;扗eɡᩴ\x00\x00᪈rrowĀlr᩼᪁eft;憺ight;憻ʀRSacd᪒᪔᪖»ཇ;擈st;抛irc;抚ash;抝nint;樐id;櫯cir;槂ubsĀ;u᪻᪼晣it»᪼ˬ᫇\x00ᬊonĀ;eᫍᫎ䀺Ā;qÇÆɭ\x00\x00aĀ;t䀬;䁀ƀ;fl戁îᅠeĀmxent»eóɍǧ\x00ᬇĀ;dኻᬂot;橭nôɆƀfryᬐᬔᬗ;쀀\uD835\uDD54oäɔ脀©;sŕᬝr;愗Āaoᬥᬩrr;憵ss;朗Ācuᬲᬷr;쀀\uD835\uDCB8Ābpᬼ᭄Ā;eᭁᭂ櫏;櫑Ā;eᭉᭊ櫐;櫒dot;拯delprvw᭠᭬᭷ᮂᮬᯔarrĀlr᭨᭪;椸;椵ɰ᭲\x00\x00᭵r;拞c;拟arrĀ;pᮀ憶;椽̀;bcdosᮏᮐᮖᮡᮥᮨ截rcap;橈Āauᮛᮞp;橆p;橊ot;抍r;橅;쀀∪︀Ȁalrv᮵ᮿᯞᯣrrĀ;mᮼᮽ憷;椼yƀevwᯇᯔᯘqɰᯎ\x00\x00ᯒreã᭳uã᭵ee;拎edge;拏en耻¤䂤earrowĀlrᯮ᯳eft»ᮀight»ᮽeäᯝĀciᰁᰇoninôǷnt;戱lcty;挭ঀAHabcdefhijlorstuwz᰻᰿ᱝᱩᱵᲞᲬᲷᴍᵻᶑᶫᶻ᷆᷍ròar;楥Ȁglrs᱈ᱍ᱒᱔ger;怠eth;愸òᄳhĀ;vᱚᱛ怐»ऊūᱡᱧarow;椏aã̕Āayᱮᱳron;䄏;䐴ƀ;ao̲ᱼᲄĀgrʿᲁr;懊tseq;橷ƀglmᲑᲔᲘ耻°䂰ta;䎴ptyv;榱ĀirᲣᲨsht;楿;쀀\uD835\uDD21arĀlrᲳᲵ»ࣜ»သʀaegsv᳂᳖᳜᳠mƀ;oș᳔ndĀ;ș᳑uit;晦amma;䏝in;拲ƀ;io᳧᳨᳸䃷de脀÷;o᳧ᳰntimes;拇nø᳷cy;䑒cɯᴆ\x00\x00ᴊrn;挞op;挍ʀlptuwᴘᴝᴢᵉᵕlar;䀤f;쀀\uD835\uDD55ʀ;emps̋ᴭᴷᴽᵂqĀ;d͒ᴳot;扑inus;戸lus;戔quare;抡blebarwedgåúnƀadhᄮᵝᵧownarrowóᲃarpoonĀlrᵲᵶefôᲴighôᲶŢᵿᶅkaro÷གɯᶊ\x00\x00ᶎrn;挟op;挌ƀcotᶘᶣᶦĀryᶝᶡ;쀀\uD835\uDCB9;䑕l;槶rok;䄑Ādrᶰᶴot;拱iĀ;fᶺ᠖斿Āah᷀᷃ròЩaòྦangle;榦Āci᷒ᷕy;䑟grarr;柿ऀDacdefglmnopqrstuxḁḉḙḸոḼṉṡṾấắẽỡἪἷὄĀDoḆᴴoôĀcsḎḔute耻é䃩ter;橮ȀaioyḢḧḱḶron;䄛rĀ;cḭḮ扖耻ê䃪lon;払;䑍ot;䄗ĀDrṁṅot;扒;쀀\uD835\uDD22ƀ;rsṐṑṗ檚ave耻è䃨Ā;dṜṝ檖ot;檘Ȁ;ilsṪṫṲṴ檙nters;揧;愓Ā;dṹṺ檕ot;檗ƀapsẅẉẗcr;䄓tyƀ;svẒẓẕ戅et»ẓpĀ1;ẝẤijạả;怄;怅怃ĀgsẪẬ;䅋p;怂ĀgpẴẸon;䄙f;쀀\uD835\uDD56ƀalsỄỎỒrĀ;sỊị拕l;槣us;橱iƀ;lvỚớở䎵on»ớ;䏵ȀcsuvỪỳἋἣĀioữḱrc»Ḯɩỹ\x00\x00ỻíՈantĀglἂἆtr»ṝess»ṺƀaeiἒἚls;䀽st;扟vĀ;DȵἠD;橸parsl;槥ĀDaἯἳot;打rr;楱ƀcdiἾὁỸr;愯oô͒ĀahὉὋ;䎷耻ð䃰Āmrὓὗl耻ë䃫o;悬ƀcipὡὤὧl;䀡sôծĀeoὬὴctatioîՙnentialåչৡᾒ\x00ᾞ\x00ᾡᾧ\x00\x00ῆῌ\x00ΐ\x00ῦῪ \x00 ⁚llingdotseñṄy;䑄male;晀ƀilrᾭᾳ῁lig;耀ffiɩᾹ\x00\x00᾽g;耀ffig;耀ffl;쀀\uD835\uDD23lig;耀filig;쀀fjƀaltῙῡt;晭ig;耀flns;斱of;䆒ǰ΅\x00ῳf;쀀\uD835\uDD57ĀakֿῷĀ;vῼ´拔;櫙artint;樍Āao⁕Ācs‑⁒ႉ‸⁅⁈\x00⁐β•‥‧\x00耻½䂽;慓耻¼䂼;慕;慙;慛Ƴ‴\x00‶;慔;慖ʴ‾⁁\x00\x00⁃耻¾䂾;慗;慜5;慘ƶ⁌\x00⁎;慚;慝8;慞l;恄wn;挢cr;쀀\uD835\uDCBBࢀEabcdefgijlnorstv₂₉₥₰₴⃰℃ℒℸ̗ℾ⅒↞Ā;lٍ₇;檌ƀcmpₐₕute;䇵maĀ;dₜ᳚䎳;檆reve;䄟Āiy₪₮rc;䄝;䐳ot;䄡Ȁ;lqsؾق₽ƀ;qsؾٌlanô٥Ȁ;cdl٥⃒⃥⃕c;檩otĀ;o⃜⃝檀Ā;l⃢⃣檂;檄Ā;e⃪⃭쀀⋛︀s;檔r;쀀\uD835\uDD24Ā;gٳ؛mel;愷cy;䑓Ȁ;Eajٚℌℎℐ;檒;檥;檤ȀEaesℛℝ℩ℴ;扩pĀ;p℣ℤ檊rox»ℤĀ;q℮ℯ檈Ā;q℮ℛim;拧pf;쀀\uD835\uDD58Āci⅃ⅆr;愊mƀ;el٫ⅎ⅐;檎;檐茀>;cdlqrⅠⅪⅮⅳⅹĀciⅥⅧ;檧r;橺ot;拗Par;榕uest;橼ʀadelsↄⅪ←ٖ↛ǰ↉\x00proør;楸qĀlqؿ↖lesó₈ií٫Āen↣↭rtneqq;쀀≩︀Å↪ԀAabcefkosy⇄⇇⇱⇵⇺∘∝∯≨≽ròΠȀilmr⇐⇔⇗⇛rsðᒄf»․ilôکĀdr⇠⇤cy;䑊ƀ;cwࣴ⇫⇯ir;楈;憭ar;意irc;䄥ƀalr∁∎∓rtsĀ;u∉∊晥it»∊lip;怦con;抹r;쀀\uD835\uDD25sĀew∣∩arow;椥arow;椦ʀamopr∺∾≃≞≣rr;懿tht;戻kĀlr≉≓eftarrow;憩ightarrow;憪f;쀀\uD835\uDD59bar;怕ƀclt≯≴≸r;쀀\uD835\uDCBDasè⇴rok;䄧Ābp⊂⊇ull;恃hen»ᱛૡ⊣\x00⊪\x00⊸⋅⋎\x00⋕⋳\x00\x00⋸⌢⍧⍢⍿\x00⎆⎪⎴cute耻í䃭ƀ;iyݱ⊰⊵rc耻î䃮;䐸Ācx⊼⊿y;䐵cl耻¡䂡ĀfrΟ⋉;쀀\uD835\uDD26rave耻ì䃬Ȁ;inoܾ⋝⋩⋮Āin⋢⋦nt;樌t;戭fin;槜ta;愩lig;䄳ƀaop⋾⌚⌝ƀcgt⌅⌈⌗r;䄫ƀelpܟ⌏⌓inåގarôܠh;䄱f;抷ed;䆵ʀ;cfotӴ⌬⌱⌽⍁are;愅inĀ;t⌸⌹戞ie;槝doô⌙ʀ;celpݗ⍌⍐⍛⍡al;抺Āgr⍕⍙eróᕣã⍍arhk;樗rod;樼Ȁcgpt⍯⍲⍶⍻y;䑑on;䄯f;쀀\uD835\uDD5Aa;䎹uest耻¿䂿Āci⎊⎏r;쀀\uD835\uDCBEnʀ;EdsvӴ⎛⎝⎡ӳ;拹ot;拵Ā;v⎦⎧拴;拳Ā;iݷ⎮lde;䄩ǫ⎸\x00⎼cy;䑖l耻ï䃯̀cfmosu⏌⏗⏜⏡⏧⏵Āiy⏑⏕rc;䄵;䐹r;쀀\uD835\uDD27ath;䈷pf;쀀\uD835\uDD5Bǣ⏬\x00⏱r;쀀\uD835\uDCBFrcy;䑘kcy;䑔Ѐacfghjos␋␖␢ppaĀ;v␓␔䎺;䏰Āey␛␠dil;䄷;䐺r;쀀\uD835\uDD28reen;䄸cy;䑅cy;䑜pf;쀀\uD835\uDD5Ccr;쀀\uD835\uDCC0ABEHabcdefghjlmnoprstuv⑰⒁⒆⒍⒑┎┽╚▀♎♞♥♹♽⚚⚲⛘❝❨➋⟀⠁⠒ƀart⑷⑺⑼ròòΕail;椛arr;椎Ā;gঔ⒋;檋ar;楢ॣ⒥\x00⒪\x00⒱\x00\x00\x00\x00\x00⒵Ⓔ\x00ⓆⓈⓍ\x00⓹ute;䄺mptyv;榴raîࡌbda;䎻gƀ;dlࢎⓁⓃ;榑åࢎ;檅uo耻«䂫rЀ;bfhlpst࢙ⓞⓦⓩ⓫⓮⓱⓵Ā;f࢝ⓣs;椟s;椝ë≒p;憫l;椹im;楳l;憢ƀ;ae⓿─┄檫il;椙Ā;s┉┊檭;쀀⪭︀ƀabr┕┙┝rr;椌rk;杲Āak┢┬cĀek┨┪;䁻;䁛Āes┱┳;榋lĀdu┹┻;榏;榍Ȁaeuy╆╋╖╘ron;䄾Ādi═╔il;䄼ìࢰâ┩;䐻Ȁcqrs╣╦╭╽a;椶uoĀ;rนᝆĀdu╲╷har;楧shar;楋h;憲ʀ;fgqs▋▌উ◳◿扤tʀahlrt▘▤▷◂◨rrowĀ;t࢙□aé⓶arpoonĀdu▯▴own»њp»०eftarrows;懇ightƀahs◍◖◞rrowĀ;sࣴࢧarpoonóquigarro÷⇰hreetimes;拋ƀ;qs▋ও◺lanôবʀ;cdgsব☊☍☝☨c;檨otĀ;o☔☕橿Ā;r☚☛檁;檃Ā;e☢☥쀀⋚︀s;檓ʀadegs☳☹☽♉♋pproøⓆot;拖qĀgq♃♅ôউgtò⒌ôছiíলƀilr♕࣡♚sht;楼;쀀\uD835\uDD29Ā;Eজ♣;檑š♩♶rĀdu▲♮Ā;l॥♳;楪lk;斄cy;䑙ʀ;achtੈ⚈⚋⚑⚖rò◁orneòᴈard;楫ri;旺Āio⚟⚤dot;䅀ustĀ;a⚬⚭掰che»⚭ȀEaes⚻⚽⛉⛔;扨pĀ;p⛃⛄檉rox»⛄Ā;q⛎⛏檇Ā;q⛎⚻im;拦Ѐabnoptwz⛩⛴⛷✚✯❁❇❐Ānr⛮⛱g;柬r;懽rëࣁgƀlmr⛿✍✔eftĀar০✇ightá৲apsto;柼ightá৽parrowĀlr✥✩efô⓭ight;憬ƀafl✶✹✽r;榅;쀀\uD835\uDD5Dus;樭imes;樴š❋❏st;戗áፎƀ;ef❗❘᠀旊nge»❘arĀ;l❤❥䀨t;榓ʀachmt❳❶❼➅➇ròࢨorneòᶌarĀ;d➃;業;怎ri;抿̀achiqt➘➝ੀ➢➮➻quo;怹r;쀀\uD835\uDCC1mƀ;egল➪➬;檍;檏Ābu┪➳oĀ;rฟ➹;怚rok;䅂萀<;cdhilqrࠫ⟒☹⟜⟠⟥⟪⟰Āci⟗⟙;檦r;橹reå◲mes;拉arr;楶uest;橻ĀPi⟵⟹ar;榖ƀ;ef⠀भ旃rĀdu⠇⠍shar;楊har;楦Āen⠗⠡rtneqq;쀀≨︀Å⠞܀Dacdefhilnopsu⡀⡅⢂⢎⢓⢠⢥⢨⣚⣢⣤ઃ⣳⤂Dot;戺Ȁclpr⡎⡒⡣⡽r耻¯䂯Āet⡗⡙;時Ā;e⡞⡟朠se»⡟Ā;sျ⡨toȀ;dluျ⡳⡷⡻owîҌefôएðᏑker;斮Āoy⢇⢌mma;権;䐼ash;怔asuredangle»ᘦr;쀀\uD835\uDD2Ao;愧ƀcdn⢯⢴⣉ro耻µ䂵Ȁ;acdᑤ⢽⣀⣄sôᚧir;櫰ot肻·Ƶusƀ;bd⣒ᤃ⣓戒Ā;uᴼ⣘;横ţ⣞⣡p;櫛ò−ðઁĀdp⣩⣮els;抧f;쀀\uD835\uDD5EĀct⣸⣽r;쀀\uD835\uDCC2pos»ᖝƀ;lm⤉⤊⤍䎼timap;抸ఀGLRVabcdefghijlmoprstuvw⥂⥓⥾⦉⦘⧚⧩⨕⨚⩘⩝⪃⪕⪤⪨⬄⬇⭄⭿⮮ⰴⱧⱼ⳩Āgt⥇⥋;쀀⋙̸Ā;v⥐쀀≫⃒ƀelt⥚⥲⥶ftĀar⥡⥧rrow;懍ightarrow;懎;쀀⋘̸Ā;v⥻ే쀀≪⃒ightarrow;懏ĀDd⦎⦓ash;抯ash;抮ʀbcnpt⦣⦧⦬⦱⧌la»˞ute;䅄g;쀀∠⃒ʀ;Eiop⦼⧀⧅⧈;쀀⩰̸d;쀀≋̸s;䅉roøurĀ;a⧓⧔普lĀ;s⧓ସdz⧟\x00⧣p肻 ଷmpĀ;e௹ఀʀaeouy⧴⧾⨃⨐⨓ǰ⧹\x00⧻;橃on;䅈dil;䅆ngĀ;dൾ⨊ot;쀀⩭̸p;橂;䐽ash;怓;Aadqsxஒ⨩⨭⨻⩁⩅⩐rr;懗rĀhr⨳⨶k;椤Ā;oᏲᏰot;쀀≐̸uiöୣĀei⩊⩎ar;椨íistĀ;sடr;쀀\uD835\uDD2BȀEest⩦⩹⩼ƀ;qs⩭ƀ;qs⩴lanôií௪Ā;rஶ⪁»ஷƀAap⪊⪍⪑rò⥱rr;憮ar;櫲ƀ;svྍ⪜ྌĀ;d⪡⪢拼;拺cy;䑚AEadest⪷⪺⪾⫂⫅⫶⫹rò⥦;쀀≦̸rr;憚r;急Ȁ;fqs⫎⫣⫯tĀar⫔⫙rro÷⫁ightarro÷⪐ƀ;qs⪺⫪lanôౕĀ;sౕ⫴»శiíౝĀ;rవ⫾iĀ;eచథiäඐĀpt⬌⬑f;쀀\uD835\uDD5F膀¬;in⬙⬚⬶䂬nȀ;Edvஉ⬤⬨⬮;쀀⋹̸ot;쀀⋵̸ǡஉ⬳⬵;拷;拶iĀ;vಸ⬼ǡಸ⭁⭃;拾;拽ƀaor⭋⭣⭩rȀ;ast⭕⭚⭟lleìl;쀀⫽⃥;쀀∂̸lint;樔ƀ;ceಒ⭰⭳uåಥĀ;cಘ⭸Ā;eಒ⭽ñಘȀAait⮈⮋⮝⮧rò⦈rrƀ;cw⮔⮕⮙憛;쀀⤳̸;쀀↝̸ghtarrow»⮕riĀ;eೋೖchimpqu⮽⯍⯙⬄⯤⯯Ȁ;cerല⯆ഷ⯉uå;쀀\uD835\uDCC3ortɭ⬅\x00\x00⯖ará⭖mĀ;e൮⯟Ā;q൴൳suĀbp⯫⯭ååഋƀbcp⯶ⰑⰙȀ;Ees⯿ⰀഢⰄ抄;쀀⫅̸etĀ;eഛⰋqĀ;qണⰀcĀ;eലⰗñസȀ;EesⰢⰣൟⰧ抅;쀀⫆̸etĀ;e൘ⰮqĀ;qൠⰣȀgilrⰽⰿⱅⱇìௗlde耻ñ䃱çృiangleĀlrⱒⱜeftĀ;eచⱚñదightĀ;eೋⱥñĀ;mⱬⱭ䎽ƀ;esⱴⱵⱹ䀣ro;愖p;怇ҀDHadgilrsⲏⲔⲙⲞⲣⲰⲶⳓⳣash;抭arr;椄p;쀀≍⃒ash;抬ĀetⲨⲬ;쀀≥⃒;쀀>⃒nfin;槞ƀAetⲽⳁⳅrr;椂;쀀≤⃒Ā;rⳊⳍ쀀<⃒ie;쀀⊴⃒ĀAtⳘⳜrr;椃rie;쀀⊵⃒im;쀀∼⃒ƀAan⳰ⴂrr;懖rĀhr⳺⳽k;椣Ā;oᏧᏥear;椧ቓ᪕\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00ⴭ\x00ⴸⵈⵠⵥⶄᬇ\x00\x00ⶍⶫ\x00ⷈⷎ\x00ⷜ⸙⸫⸾⹃Ācsⴱ᪗ute耻ó䃳ĀiyⴼⵅrĀ;cⵂ耻ô䃴;䐾ʀabios᪠ⵒⵗLjⵚlac;䅑v;樸old;榼lig;䅓Ācrir;榿;쀀\uD835\uDD2Cͯ\x00\x00\x00ⶂn;䋛ave耻ò䃲;槁Ābmⶈ෴ar;榵Ȁacitⶕⶥⶨrò᪀Āirⶠr;榾oss;榻nå๒;槀ƀaeiⶱⶵⶹcr;䅍ga;䏉ƀcdnⷀⷅǍron;䎿;榶pf;쀀\uD835\uDD60ƀaelⷔǒr;榷rp;榹;adiosvⷪⷫⷮ⸈⸍⸐⸖戨rò᪆Ȁ;efmⷷⷸ⸂⸅橝rĀ;oⷾⷿ愴f»ⷿ耻ª䂪耻º䂺gof;抶r;橖lope;橗;橛ƀclo⸟⸡⸧ò⸁ash耻ø䃸l;折iŬⸯ⸴de耻õ䃵esĀ;aǛ⸺s;樶ml耻ö䃶bar;挽ૡ\x00\x00⺀⺝\x00⺢⺹\x00\x00⻋ຜ\x00⼓\x00\x00⼫⾼\x00⿈rȀ;astЃ脀¶;l䂶leìЃɩ\x00\x00m;櫳;櫽y;䐿rʀcimpt⺋⺏⺓ᡥ⺗nt;䀥od;䀮il;怰enk;怱r;쀀\uD835\uDD2Dƀimo⺨⺰⺴Ā;v⺭⺮䏆;䏕maô੶ne;明ƀ;tv⺿⻀⻈䏀chfork»´;䏖Āau⻏⻟nĀck⻕⻝kĀ;h⇴⻛;愎ö⇴sҀ;abcdemst⻳ᤈ⼄⼆⼊⼎䀫cir;樣ir;樢Āouᵀ⼂;樥;橲n肻±ຝim;樦wo;樧ƀipu⼙⼠⼥ntint;樕f;쀀\uD835\uDD61nd耻£䂣Ԁ;Eaceinosu່⼿⽁⽄⽇⾁⾉⾒⽾⾶;檳p;檷uå໙Ā;c໎⽌̀;acens່⽙⽟⽦⽨⽾pproø⽃urlyeñ໙ñ໎ƀaes⽯⽶⽺pprox;檹qq;檵im;拨iíໟmeĀ;s⾈ຮ怲ƀEas⽸⾐⽺ð⽵ƀdfp⾙⾯ƀals⾠⾥⾪lar;挮ine;挒urf;挓Ā;t⾴ïrel;抰Āci⿀⿅r;쀀\uD835\uDCC5;䏈ncsp;怈̀fiopsu⋢⿱r;쀀\uD835\uDD2Epf;쀀\uD835\uDD62rime;恗cr;쀀\uD835\uDCC6ƀaeo⿸〉〓tĀei々rnionóڰnt;樖stĀ;e【】䀿ñἙô༔ABHabcdefhilmnoprstuxけさすムㄎㄫㅇㅢㅲㆎ㈆㈕㈤㈩㉘㉮㉲㊐㊰㊷ƀartぇおがròႳòϝail;検aròᱥar;楤cdenqrtとふへみわゔヌĀeuねぱ;쀀∽̱te;䅕iãᅮmptyv;榳gȀ;del࿑らるろ;榒;榥å࿑uo耻»䂻rր;abcfhlpstwガクシスゼゾダッデナp;極Ā;fゴs;椠;椳s;椞ë≝ð✮l;楅im;楴l;憣;憝Āaiパフil;椚oĀ;nホボ戶aló༞ƀabrョリヮrò៥rk;杳ĀakンヽcĀekヹ・;䁽;䁝Āes;榌lĀduㄊㄌ;榎;榐Ȁaeuyㄗㄜㄧㄩron;䅙Ādiㄡㄥil;䅗ìâヺ;䑀Ȁclqsㄴㄷㄽㅄa;椷dhar;楩uoĀ;rȎȍh;憳ƀacgㅎㅟངlȀ;ipsླྀㅘㅛႜnåႻarôྩt;断ƀilrㅩဣㅮsht;楽;쀀\uD835\uDD2FĀaoㅷㆆrĀduㅽㅿ»ѻĀ;l႑ㆄ;楬Ā;vㆋㆌ䏁;䏱ƀgns㆕ㇹㇼht̀ahlrstㆤㆰ㇂㇘rrowĀ;tㆭaéトarpoonĀduㆻㆿowîㅾp»႒eftĀah㇊㇐rrowóarpoonóՑightarrows;應quigarro÷ニhreetimes;拌g;䋚ingdotseñἲƀahm㈍㈐㈓ròaòՑ;怏oustĀ;a㈞掱che»mid;櫮Ȁabpt㈲㈽㉀㉒Ānr㈷㈺g;柭r;懾rëဃƀafl㉇㉊㉎r;榆;쀀\uD835\uDD63us;樮imes;樵Āap㉝㉧rĀ;g㉣㉤䀩t;榔olint;樒arò㇣Ȁachq㉻㊀Ⴜ㊅quo;怺r;쀀\uD835\uDCC7Ābu・㊊oĀ;rȔȓƀhir㊗㊛㊠reåㇸmes;拊iȀ;efl㊪ၙᠡ㊫方tri;槎luhar;楨;愞ൡ㋕㋛㋟㌬㌸㍱\x00㍺㎤\x00\x00㏬㏰\x00㐨㑈㑚㒭㒱㓊㓱\x00㘖\x00\x00㘳cute;䅛quï➺Ԁ;Eaceinpsyᇭ㋳㋵㋿㌂㌋㌏㌟㌦㌩;檴ǰ㋺\x00㋼;檸on;䅡uåᇾĀ;dᇳ㌇il;䅟rc;䅝ƀEas㌖㌘㌛;檶p;檺im;择olint;樓iíሄ;䑁otƀ;be㌴ᵇ㌵担;橦Aacmstx㍆㍊㍗㍛㍞㍣㍭rr;懘rĀhr㍐㍒ë∨Ā;oਸ਼t耻§䂧i;䀻war;椩mĀin㍩ðnuóñt;朶rĀ;o㍶⁕쀀\uD835\uDD30Ȁacoy㎂㎆㎑㎠rp;景Āhy㎋㎏cy;䑉;䑈rtɭ㎙\x00\x00㎜iäᑤaraì耻䂭Āgm㎨㎴maƀ;fv㎱㎲㎲䏃;䏂Ѐ;deglnprካ㏅㏉㏎㏖㏞㏡㏦ot;橪Ā;qኰĀ;E㏓㏔檞;檠Ā;E㏛㏜檝;檟e;扆lus;樤arr;楲aròᄽȀaeit㏸㐈㐏㐗Āls㏽㐄lsetmé㍪hp;樳parsl;槤Ādlᑣ㐔e;挣Ā;e㐜㐝檪Ā;s㐢㐣檬;쀀⪬︀ƀflp㐮㐳㑂tcy;䑌Ā;b㐸㐹䀯Ā;a㐾㐿槄r;挿f;쀀\uD835\uDD64aĀdr㑍ЂesĀ;u㑔㑕晠it»㑕ƀcsu㑠㑹㒟Āau㑥㑯pĀ;sᆈ㑫;쀀⊓︀pĀ;sᆴ㑵;쀀⊔︀uĀbp㑿㒏ƀ;esᆗᆜ㒆etĀ;eᆗ㒍ñᆝƀ;esᆨᆭ㒖etĀ;eᆨ㒝ñᆮƀ;afᅻ㒦ְrť㒫ֱ»ᅼaròᅈȀcemt㒹㒾㓂㓅r;쀀\uD835\uDCC8tmîñiì㐕aræᆾĀar㓎㓕rĀ;f㓔ឿ昆Āan㓚㓭ightĀep㓣㓪psiloîỠhé⺯s»⡒ʀbcmnp㓻㕞ሉ㖋㖎Ҁ;Edemnprs㔎㔏㔑㔕㔞㔣㔬㔱㔶抂;櫅ot;檽Ā;dᇚ㔚ot;櫃ult;櫁ĀEe㔨㔪;櫋;把lus;檿arr;楹ƀeiu㔽㕒㕕tƀ;en㔎㕅㕋qĀ;qᇚ㔏eqĀ;q㔫㔨m;櫇Ābp㕚㕜;櫕;櫓c̀;acensᇭ㕬㕲㕹㕻㌦pproø㋺urlyeñᇾñᇳƀaes㖂㖈㌛pproø㌚qñ㌗g;晪ڀ123;Edehlmnps㖩㖬㖯ሜ㖲㖴㗀㗉㗕㗚㗟㗨㗭耻¹䂹耻²䂲耻³䂳;櫆Āos㖹㖼t;檾ub;櫘Ā;dሢ㗅ot;櫄sĀou㗏㗒l;柉b;櫗arr;楻ult;櫂ĀEe㗤㗦;櫌;抋lus;櫀ƀeiu㗴㘉㘌tƀ;enሜ㗼㘂qĀ;qሢ㖲eqĀ;q㗧㗤m;櫈Ābp㘑㘓;櫔;櫖ƀAan㘜㘠㘭rr;懙rĀhr㘦㘨ë∮Ā;oਫwar;椪lig耻ß䃟㙑㙝㙠ዎ㙳㙹\x00㙾㛂\x00\x00\x00\x00\x00㛛㜃\x00㜉㝬\x00\x00\x00㞇ɲ㙖\x00\x00㙛get;挖;䏄rëƀaey㙦㙫㙰ron;䅥dil;䅣;䑂lrec;挕r;쀀\uD835\uDD31Ȁeiko㚆㚝㚵㚼Dz㚋\x00㚑eĀ4fኄኁaƀ;sv㚘㚙㚛䎸ym;䏑Ācn㚢㚲kĀas㚨㚮pproøim»ኬsðኞĀas㚺㚮ðrn耻þ䃾Ǭ̟㛆⋧es膀×;bd㛏㛐㛘䃗Ā;aᤏ㛕r;樱;樰ƀeps㛡㛣㜀á⩍Ȁ;bcf҆㛬㛰㛴ot;挶ir;櫱Ā;o㛹㛼쀀\uD835\uDD65rk;櫚á㍢rime;怴ƀaip㜏㜒㝤dåቈadempst㜡㝍㝀㝑㝗㝜㝟ngleʀ;dlqr㜰㜱㜶㝀㝂斵own»ᶻeftĀ;e⠀㜾ñम;扜ightĀ;e㊪㝋ñၚot;旬inus;樺lus;樹b;槍ime;樻ezium;揢ƀcht㝲㝽㞁Āry㝷㝻;쀀\uD835\uDCC9;䑆cy;䑛rok;䅧Āio㞋㞎xôheadĀlr㞗㞠eftarro÷ࡏightarrow»ཝऀAHabcdfghlmoprstuw㟐㟓㟗㟤㟰㟼㠎㠜㠣㠴㡑㡝㡫㢩㣌㣒㣪㣶ròϭar;楣Ācr㟜㟢ute耻ú䃺òᅐrǣ㟪\x00㟭y;䑞ve;䅭Āiy㟵㟺rc耻û䃻;䑃ƀabh㠃㠆㠋ròᎭlac;䅱aòᏃĀir㠓㠘sht;楾;쀀\uD835\uDD32rave耻ù䃹š㠧㠱rĀlr㠬㠮»ॗ»ႃlk;斀Āct㠹㡍ɯ㠿\x00\x00㡊rnĀ;e㡅㡆挜r»㡆op;挏ri;旸Āal㡖㡚cr;䅫肻¨͉Āgp㡢㡦on;䅳f;쀀\uD835\uDD66̀adhlsuᅋ㡸㡽፲㢑㢠ownáᎳarpoonĀlr㢈㢌efô㠭ighô㠯iƀ;hl㢙㢚㢜䏅»ᏺon»㢚parrows;懈ƀcit㢰㣄㣈ɯ㢶\x00\x00㣁rnĀ;e㢼㢽挝r»㢽op;挎ng;䅯ri;旹cr;쀀\uD835\uDCCAƀdir㣙㣝㣢ot;拰lde;䅩iĀ;f㜰㣨»᠓Āam㣯㣲rò㢨l耻ü䃼angle;榧ހABDacdeflnoprsz㤜㤟㤩㤭㦵㦸㦽㧟㧤㧨㧳㧹㧽㨁㨠ròϷarĀ;v㤦㤧櫨;櫩asèϡĀnr㤲㤷grt;榜eknprst㓣㥆㥋㥒㥝㥤㦖appá␕othinçẖƀhir㓫⻈㥙opô⾵Ā;hᎷ㥢ïㆍĀiu㥩㥭gmá㎳Ābp㥲㦄setneqĀ;q㥽㦀쀀⊊︀;쀀⫋︀setneqĀ;q㦏㦒쀀⊋︀;쀀⫌︀Āhr㦛㦟etá㚜iangleĀlr㦪㦯eft»थight»ၑy;䐲ash»ံƀelr㧄㧒㧗ƀ;beⷪ㧋㧏ar;抻q;扚lip;拮Ābt㧜ᑨaòᑩr;쀀\uD835\uDD33tré㦮suĀbp㧯㧱»ജ»൙pf;쀀\uD835\uDD67roðtré㦴Ācu㨆㨋r;쀀\uD835\uDCCBĀbp㨐㨘nĀEe㦀㨖»㥾nĀEe㦒㨞»㦐igzag;榚cefoprs㨶㨻㩖㩛㩔㩡㩪irc;䅵Ādi㩀㩑Ābg㩅㩉ar;機eĀ;qᗺ㩏;扙erp;愘r;쀀\uD835\uDD34pf;쀀\uD835\uDD68Ā;eᑹ㩦atèᑹcr;쀀\uD835\uDCCCૣណ㪇\x00㪋\x00㪐㪛\x00\x00㪝㪨㪫㪯\x00\x00㫃㫎\x00㫘ៜtré៑r;쀀\uD835\uDD35ĀAa㪔㪗ròσrò৶;䎾ĀAa㪡㪤ròθrò৫að✓is;拻ƀdptឤ㪵㪾Āfl㪺ឩ;쀀\uD835\uDD69imåឲĀAa㫇㫊ròώròਁĀcq㫒ីr;쀀\uD835\uDCCDĀpt៖㫜ré។Ѐacefiosu㫰㫽㬈㬌㬑㬕㬛㬡cĀuy㫶㫻te耻ý䃽;䑏Āiy㬂㬆rc;䅷;䑋n耻¥䂥r;쀀\uD835\uDD36cy;䑗pf;쀀\uD835\uDD6Acr;쀀\uD835\uDCCEĀcm㬦㬩y;䑎l耻ÿ䃿Ԁacdefhiosw㭂㭈㭔㭘㭤㭩㭭㭴㭺㮀cute;䅺Āay㭍㭒ron;䅾;䐷ot;䅼Āet㭝㭡træᕟa;䎶r;쀀\uD835\uDD37cy;䐶grarr;懝pf;쀀\uD835\uDD6Bcr;쀀\uD835\uDCCFĀjn㮅㮇;怍j;怌".split("").map((c) => c.charCodeAt(0)));
|
|
25839
|
-
});
|
|
25840
|
-
|
|
25841
|
-
// ../../node_modules/parse5/node_modules/entities/dist/esm/decode-codepoint.js
|
|
25983
|
+
// ../../node_modules/parse5/node_modules/entities/dist/decode-codepoint.js
|
|
25984
|
+
function isInvalidCodePoint(codePoint) {
|
|
25985
|
+
return codePoint === 0 || codePoint >= 55296 && codePoint <= 57343 || codePoint > 1114111;
|
|
25986
|
+
}
|
|
25842
25987
|
function replaceCodePoint(codePoint) {
|
|
25843
|
-
|
|
25844
|
-
if (codePoint >= 55296 && codePoint <= 57343 || codePoint > 1114111) {
|
|
25988
|
+
if (isInvalidCodePoint(codePoint)) {
|
|
25845
25989
|
return 65533;
|
|
25846
25990
|
}
|
|
25847
|
-
|
|
25991
|
+
if (codePoint >= 128 && codePoint <= 159) {
|
|
25992
|
+
return c1[codePoint - 128] || codePoint;
|
|
25993
|
+
}
|
|
25994
|
+
return codePoint;
|
|
25848
25995
|
}
|
|
25849
|
-
var
|
|
25996
|
+
var c1;
|
|
25850
25997
|
var init_decode_codepoint = __esm(() => {
|
|
25851
|
-
|
|
25852
|
-
|
|
25853
|
-
|
|
25854
|
-
|
|
25855
|
-
|
|
25856
|
-
|
|
25857
|
-
|
|
25858
|
-
|
|
25859
|
-
|
|
25860
|
-
|
|
25861
|
-
|
|
25862
|
-
|
|
25863
|
-
|
|
25864
|
-
|
|
25865
|
-
|
|
25866
|
-
|
|
25867
|
-
|
|
25868
|
-
|
|
25869
|
-
|
|
25870
|
-
|
|
25871
|
-
|
|
25872
|
-
|
|
25873
|
-
|
|
25874
|
-
|
|
25875
|
-
|
|
25876
|
-
|
|
25877
|
-
|
|
25878
|
-
|
|
25879
|
-
|
|
25880
|
-
|
|
25881
|
-
|
|
25882
|
-
|
|
25883
|
-
|
|
25884
|
-
|
|
25885
|
-
|
|
25886
|
-
|
|
25887
|
-
|
|
25888
|
-
|
|
25889
|
-
|
|
25998
|
+
c1 = [
|
|
25999
|
+
8364,
|
|
26000
|
+
0,
|
|
26001
|
+
8218,
|
|
26002
|
+
402,
|
|
26003
|
+
8222,
|
|
26004
|
+
8230,
|
|
26005
|
+
8224,
|
|
26006
|
+
8225,
|
|
26007
|
+
710,
|
|
26008
|
+
8240,
|
|
26009
|
+
352,
|
|
26010
|
+
8249,
|
|
26011
|
+
338,
|
|
26012
|
+
0,
|
|
26013
|
+
381,
|
|
26014
|
+
0,
|
|
26015
|
+
0,
|
|
26016
|
+
8216,
|
|
26017
|
+
8217,
|
|
26018
|
+
8220,
|
|
26019
|
+
8221,
|
|
26020
|
+
8226,
|
|
26021
|
+
8211,
|
|
26022
|
+
8212,
|
|
26023
|
+
732,
|
|
26024
|
+
8482,
|
|
26025
|
+
353,
|
|
26026
|
+
8250,
|
|
26027
|
+
339,
|
|
26028
|
+
0,
|
|
26029
|
+
382,
|
|
26030
|
+
376
|
|
26031
|
+
];
|
|
26032
|
+
});
|
|
26033
|
+
|
|
26034
|
+
// ../../node_modules/parse5/node_modules/entities/dist/generated/decode-data-html.js
|
|
26035
|
+
var htmlDecodeData;
|
|
26036
|
+
var init_decode_data_html = __esm(() => {
|
|
26037
|
+
htmlDecodeData = ["Q=¨`p0AEligMPacutebrevecircyfrgravelphamacrndogonpfpplyFunctionringscrsigntildeumlBackslashrvwedcyecausernoullistafropfrevescrumpeqCHcyOPYacutepitalDifferentialDyleyscaronedilirconintdotedillanterDotfrhiircleDotMinusPlusTimeslockwiseContourIntegralseCurlyDoubleQuoteQuoteolonengruentinttourIntegralpfroductunterClockwiseContourIntegralrossscrupCapDDotrahdJcyScyZcyaggerrrshvcaronyeltafriacriticalAcuteDotubleAcuteGraveTildemondfferentialDopftDotEqualubleContourIntegralDotwnArrowLeftArrowRightArrowTeeongLeftArrowRightArrowRightArrowRightArrowTeeUpArrowDownArrowVerticalBarwnArrowBarUpArrowBreveLeftRightVectorTeeVectorVectorBarRightTeeVectorVectorBarTeeArrowarrowscrtrokENGTHacutecaronircydotfrgravelementmacrptySmallSquareVerySmallSquareogonpfpsilonqualTildeilibriumscrimtaumlxistsponentialEFcyfrilledSmallSquareVerySmallSquareopfrAlluriertrfscrGJcyTammadbrevecedilircydotfrgopfreaterEqualLessFullEqualGreaterLessSlantEqualTildescrtHARDcyacektcircfrilbertSpaceopfrizontalLinescrtrokumpDownHumpEqualIEcyJligOcyacutecircydotfrgravemacrginaryIpliesntegralrsectionvisibleCommaTimesogonpftascrtildeukcymlJcircyfropfscrercyukcyKHcyJcyappacedilyfropfscrLJcyTacutembdangplacetrfrrcaronedilyeftAngleBracketrrowBarRightArrowCeilingDoubleBracketwnTeeVectorVectorBarFloorRightArrowVectorTeeArrowVectorriangleBarEqualUpDownVectorTeeVectorVectorBarVectorBararrowrightarrowssEqualGreaterFullEqualGreaterLessSlantEqualTildefrleftarrowmidotongLeftArrowRightArrowRightArrowleftarrowrightarrowrightarrowpfwerLeftArrowRightArrowscrhtroktMapcyediumSpacellintrffrinusPlusopfscruNJcyacutecaronedilyegativeMediumSpaceThickSpacenSpaceVeryThinSpacestedGreaterGreaterLessLesswLinefroBreaknBreakingSpacepftCongruentupCapDoubleVerticalBarElementqualTildexistsGreaterEqualFullEqualGreaterLessSlantEqualTildeHumpDownHumpEqualLeftTriangleBarEqualssEqualGreaterLessSlantEqualTildeNestedGreaterGreaterLessLessPrecedesEqualSlantEqualReverseElementightTriangleBarEqualSquareSubsetEqualpersetEqualubsetEqualcceedsEqualSlantEqualTildepersetEqualTildeEqualFullEqualTildeVerticalBarscrtildeuOEligacutecircydblacfrgravemacregaicronopfpenCurlyDoubleQuoteQuoterscrlashtildemesumlverBarraceketParenthesisPartialDcyfrhiilusMinusoincareplanepfrecedesEqualSlantEqualTildeimeoductportionalscriQUOTfropfscrRBarrEGacutengrrtlcaronedilyeverseElementquilibriumUpEquilibriumfrhoightAngleBracketrrowBarLeftArrowCeilingDoubleBracketwnTeeVectorVectorBarFloorTeeArrowVectorriangleBarEqualUpDownVectorTeeVectorVectorBarVectorBararrowopfundImpliesrightarrowscrhuleDelayedSHCHcycyOFTcyacutecaronedilircyfrhortDownArrowLeftArrowRightArrowUpArrowigmamallCircleopfqrtuareIntersectionSubsetEqualpersetEqualUnionscrtarubsetEqualcceedsEqualSlantEqualTildehThatmpersetEqualsetTHORNRADESHcycyabucaronedilyfrhereforetaickSpacenSpaceildeEqualFullEqualTildeopfripleDotscrtrokUacuterrocirbrcyevecircydblacfrgravemacrnderBarraceketParenthesisionPlusogonpfpArrowBarDownArrowDownArrowEquilibriumTeeArrowarrowdownarrowperLeftArrowRightArrowsilonringscrtildeumlVDashbarcydashleerbarticalBarLineSeparatorTildeyThinSpacefropfscrvdashWcircedgefropfscrXfriopfscrYAcyIcyUcyacutecircyfropfscrumlZHcyacutecaronydoteroWidthSpacetafropfscraacutebrevecEdircuteyeligfrgravelefsymphphamacrlgpndanddslopevgelemsdaabcdefghrtvbdsphtzarrogonpfpEacireidosproxeqringscrtympeqtildeumlwconintintbNotackcongepsilonprimesimeqrveewedgebrktbrkcongydquoecausemptyvpsirnoutahweenfrigcapircupodotplustimessqcuptartriangledownupuplusveewedgekarowlacklozengesquaretriangledownleftrightnkk12434ocknequivotopfttomwtiexDLRlrHDUduULRlrVHLRhlrboxdLRlrhDUduminusplustimesuLRlrvHLRhlrprimerevevbarscremiimeolbhsubulletmpEeqcacutepandbrcupcapupdotsretoncapsronedilircupssmdotedilmptyvnterdotfrhcyeckmarkiirEceqlearrowleftrightdRSastcircdashefnintmidscirlubsuitoloneqmmatpfnlementxesngdotintpfrodysrrarrossscrubepetdotudarrlreprsclarrppbrcapcapupdotorsrarrmlyeqprecsuccveewedgerenvearrowleftrightveewedwconintintylctydArrHaraggerlethrrshvbkarowlaccaronydaggerrrotseqegltamptyvfishtrharlriamondsuitsegammasinvideontimesonxjcylcornropollarpfteqdotminusplussquareublebarwedgewnarrowdownarrowsharpoonleftrightrbkarowcornropscryoltroktdotrifuarrharwanglezcyigrarreDDototacutestercaronircolonydotefDotrgravesdotlinterslsdotmacrptysetvsp134ngspogonpfparsllussilonvqcircolonsimlantgtrlessualsestivDDvparslrDotarrscrdotimtahumlroxclistpectationonentialefallingdotseqcyemalefiligligligriligjliglatligtnsnofopfrallkvpartintrac123456823534584556878slownscrgElacutemmadpbrevecircydotelqqslantsccdotollesfrggimeljcylEajnEapproxeqqsimopfravescrimeltccirdotlParquestrapproxrrdoteqlessqlesslesssimvertneqqnEhArrairsplfmiltrdcyrcirwbarcirceartsuitlliprconfrksearowwarowoarrmthtokleftarrowrightarrowpfrbarscrlashtrokybullpheniacutecircyecyxclffrgraveiiintntnfinotajligmacrgelinepartthofpedncarefintieodottcalegersrcallarhkprodocygonpftaprodquestscrinEdotsvvtildeukcymljcircyfrmathopfscrercyukcykappavcedilyfrgreenhcyjcyopfscrlAarrrrtailBarrEgHaracuteemptyvgranmbdangdlepquorrbfsfshklpplsimtltailesbarrbrkracekkeslducaronedililubydcaquorrdharusharsheftarrowtailharpoondownupleftarrowsrightarrowsharpoonssquigarrowthreetimesgqqslantsccdotorgessapproxdoteqgtrqgtrgtrsimfishtloorrgEhardulblkjcylarrcornerhardtrimidotoustachenEapproxeqqsimoangrrbrkngleftarrowrightarrowmapstorightarrowoparrowleftrightparflustimeswastbarzengefparltrarrcornerhardmtrisaquocrhimegqbuortroktccirdothreeimeslarrquestrPariefurdsharuharvertneqqnEmDDotacrletesepstodownleftuprkercommaydasheasuredanglefrhoicrodastcirdotnusbdulcpdrnplusodelspfpscrtposultimapmapnGgtvLeftarrowrightarrowltvRightarrowVDashdashablacutengpEidosproxturalsbspumpecapronedilongdotupydasheArrarhkrowdotquivsearimxistsfrgEeqqslantssimtrhArrarrparisdvjcylArrEarrdreftarrowrightarrowqqslantsssimtriemidopftinEdotvabcnivabcparallelsltolintrcueeceqrArrarrcwightarrowtriesccueerhortmidparallelimeqmidparqsubepeubEeseteqqcceqpEeseteqqtglildelgrianglelefteqrightequmerospvDashHarrapdashgetinfinlArretrierArrtriesimwArrarhkrownearoSacutestcircydashblacivotsoldeligfcirrgonravethbarmintlarrcirrossinetmacregaicrondnusopfparerplusrarrderoffmigoforslopevscrlasholtildemesasumlvbarparallelsimltcyercntiodmilptenkfrhivmmatoneitchforkvlanckhkvusacirbcirdouemnsimtwomointintpfundrEapcueecapproxcurlyeqeqnapproxeqqsimsimimesnEapsimodfalarlinesurfptosimurelscriuncspqfrintopfprimescruaternionsintesteqotrAarrrrtailBarrHaraceutedicemptyvngdelequorrapbfscfshklpplsimtlwtailionalsbarrbrkracekkeslducaronedililubydcaldharquorshealinepartsctgfishtloorrhardulovightarrowtailharpoondownupleftarrowsharpoonsrightarrowssquigarrowthreetimesngsingdotseqlarrharmmoustachenmidoangrrbrkparflustimespargtpolintrarrsaquocrhqbuorthreeimesriefltriuluharxsacutebquocEaproncueedilircnEapsimpolintsimydotbeeArrarhkrowctmiswartminusnxtfrownharpchcyyortmidparallelyigmafvmdoteqgElEneplusrarrlarrmallsetminusshpeparslidletesoftcylbarpfpadesuitrqcapsupssubeseteqpesetequareffrarrscretmnmiletarftarfraightepsilonphinsubEdotedotmultnEeplusrarrseteqqneqqimubpccapproxcurlyeqeqnapproxeqqsimsimmngp123EdotsubedothsolublarrmultnEeplusseteqqneqqimubpwArrarhkrownwarzligtargetubrkcaronedilydotelrecfrhere4foretasymvickapproxsimnspkapsimornildemesbardntoeapbotcirforksaprimeradeiangledownlefteqqrighteqdoteminusplussbtimepeziumscryhcytrokwixtoheadleftarrowrightarrowuArrHaracuterrbrcyevecircydarrblacharfishtrgraveharlrblklcornerroptrimacrlogonpfparrowdownarrowharpoonleftrightlussihlonuparrowsrcornerropingtriscrtdotilderifuarrmlwanglevArrBarvDashangrtrepsilonkappanothingphiiroptorhosigmaubsetneqqpsetneqqthetariangleleftrightcydasheebareqlliprbartfrltrinsubpopfproprtriscrubnEepnEezigzagwcircedbargeqierpfropfpreathscrxcapircupdtrifrhArrarrilArrarrmapnisodotpflustimerArrarrscrqcupuplustriveewedgeyacuteycircyenfricyopfscrucymlzacutecaronydoteetrftafrhcyigrarropfscrwjnjC(D%D($(D'%$$ED($'$'$%$'%E$/D'$F%'D(D&#,%%&&$%$)%+%%$E$F$'$&$(#'D&$(%$&4%($(E'%&%($&$)%*$%$%$+)()')($:&5-($'($%*&&&/%%&)%@$'$F$%&&#%%)$&$&$&$(%%%&$(%$$%&%$E$2.&0,.(.(&'%.$F%$&&&(%6)&+*),---&*/1---)-.&)*+,).%*,&,*'('2+,+)1&'1,)2&'&*('($F%'#&D%D($(E&%$$&$ED($)$'%1(2$'%E$)$'((&+$&%%$%D&$(%-#&$E$3)2$F%'%+$&#'D$$'($$($(%&%$$&$E$$$F$./'*,***'*-*($F$$#)$'%$$'$%$.$&%/$&%'$.'(#'$'$&D(D'%$$&$%D($$%&&*%($%&('+%/,($'%E%%$&$($'E%#(%$$E$F$F%'$'#'$&$'$(%$$E$F$F#'D$$(%'%%%+%%$(%'%$$2(',&,-'*'0).+)1&'('-,)'&*(*)(*/&/('/),))/&')-&'('-%1','*'''-'($E$$%+$($/+-'-',+-'-%E%/(-$&%$%'$$#&$%$-%*$E$+$F$&$$#'$($(%'%$$5+-.)+0%5)+%($E$)%1%%%$&,'(&4&*''+H'(&*-(-L-J-'-M-(&O*H&/2F2((%*(***G*M*(&W,K&+.H.-&1'/3F3(&O2(.I4('H,(().H.-.H(I.(&(+(+,+(&.$FD($$#(D(D'%$$($ED($'%&%($F$6,($$$FE'D(&&D&$)('+&'.#+$%$E$%$$$+$/%%$$%)+(+-+(%&%(&*-%$F%$C'$E$&$F#(D%$(%%%%'%$(%'%$$$%/+-*0$%$%$3)'-&-,(*(0*.,)2&(((&+(+))*0&0((/*,*)0&().&(($&%-$-$&%$$-#)%%$($($$%'%'%&%$$E$0(,(-(*$'$-$F$&%')/))/(+)1()($F$&$%&&)(%)+(+-+(&(%$%$&(+(&&C($'$'%%$%%$$(%'%$$E$+&%%K&)$'(((,(($F$+$F%'C)%%''$'&&D'%$$($ED($'$*)',&(.%&('$'%E$)*&*,%,%.%&((%(%,%/(-%%'&$'$F$(D&#($&$%$'($$%%'&$'*+'+,+(&-$E$F$F$(#($'$E$F$F#F$$$F$F#'$&$&D($'%$$E$F$F$&#'$($(%$$&$0%%$%$&$FC)$($$%D%$E&E&%$D'$$%DD($)&%%&$'&%E$$%&&&$&(&$%$&$&%&&)%*$*$*$*$*$*$*$&%(%*$&&'$&'$'%E$$%$%'%$%%%%%')%D'$F%$%&(%D(D&$*%&#'$*'*'('&*%%'&&)%$&''$'%$$'$()$%(%&%'%%&$&'$E$('&'%&''''(&('&&/.%&(&&&($($.()(+0'0'0(&%%&'$&%%&$E&G%%$F%$&&%'%&'$'$'$&$'$'$'$'$&%'$'$'$&$'$'$'$'$'$'$&&&%'$'$'$&$'$'$'$'$&(&'&(&%'$'$'$&$'$'$'$'$'$'$$($'E'$F%&%%'$%%'$''$&'%%%'$'$($#)%$&&&(&&'%&&&D%&&%$'&&E'%&%&(%$&D'%(E%'($E$&%&('%$$%&$&$'%'..()%*$*&*'*'&$&(&&&'$'(&$'($)$%&($&$'%'))&%%'&&&%E&&F$'%$'%&$F%%'$&$'$$'$))$%&&%%')$%$&(&&'%&&&%&D%')$&+*'(&((F&&.-(%&%&$*%&$(#'$&$(%'%%%%'$$)%&$(%$$$%(&%%(D%%&%($(%D$''$$&'&*''$%$%(%&%$F&)*&&$&$(&&$(%E%$&%(&&(&'&)%/%*'-'..($*%'&&$F&$%%%'$'%%'$$'%&$)$&%)#(%%D(%'$(%%G$%'%$$&$$$'%D$$E'%$&&$$%)%$%$&&$'%&(&($%%'%($$%%%$'%E$&'%%&%%'&'$$(&'%&&**'%'&&&%(%%)$'%&$&%&%%$%E$D&%%$&%&%,&,#0$%$($(%&&&%D$'$G$&%&%&$&$F%'&$'$$*D(($H$($($($'%($G%($($'%'%($'%&%%&$F#%%$$(%&($%$$($'%$$&$$%$%$&$&(%$&%&&)$*$&D'%$E$$%$$'$&$$%$%$%$$%%%''%$&$'$%&$F$'$&%%'$'$D$%%&%%&%'%(%*'%&&&)((&'&&$K%E#'$(%%%'%'&$'&'$$&$'$()&%'%'$E$*&($'%'%.'-%E%'$F%'%'$(%'C)$$E&%$$&E&$%%DD($$%'&%%'%&$'$'&%''''&%%%%&$$%'%&(&%'%$&&&(''&(&'$&%&%E%%$'D($F%%'$'&'$($'$$$%'$'E%#(%$$E$'$F$F%'$'#(($$(%$$E$($&$&$F$F#(%%%'$'$$%$$&$(%)%'%'%%'$'%%$E&%%'$(%'%'%'%'%'&'%%$&&&$'D$'%&%'($&%'&)$$(%'&%%%%$$&%&($%(&(%%$$%*,''..%'-'-1$,+,-'-%$%$&$&(%$&%&&)$*$&D'%&*'&'()''&'&$(%'%D$$%$$''$($%&$&$$%&%)%'%&$(%')'$%%%''%$&$'$%&$'&%%&%.+-')'-%.,(%&&D&&%(%'&&%$&'&$$&'%$'%)%&($%$%&$(%E%$%%'$'$%%&%($%'D$%%&%%&%'%'%'%(%'&$'$'$$*&'$K%E#(D&%%&$'&%$&&)')')%%'$(%$$'$/$E$%D'%$&&&&F&%&($($)$$&%%$($(%E$$$F%'$$%)%&#F%D&D$,(-%D%D&D$-$(%'$'%'%E%$&D&E&%&'%&(%*$D&%F(D$&&&%'%&(F%%%$$'$$%&%''$(%%F%'%'&E%')$$E$E%$&$'D'H&D%&%$&$$'%&%&$$%$&$%$$&$'%D%&%%%$&*(-&$'D'H&D'$%&%$&%($$&$FE$&%(D(F(%)$)$&%(%)$)$$&'('E'D%(%$&&&D'$(E$'%&(D(D%,%&($$%&&&D&D%*)+%%'$($%&%&%((%%%'D'$'F*%,D&%(E&$'D'$'F*%,D$&E'%%%.0%,(1%$$%$&&&%$(%'%E%'%E&D%(%'&D&D'F%'&G%F$'%''$(%%'#%D(%%$&G$%$$'%'%%%%%'$'$'%D$&E'%$$'%$$&$'%&&'%&%$$'%&%(&$&&$F$&%&%&$$%&%$&%(%F$F$%'%%%(%$$&E'%%D(&&)%D&$'#&F$''&&'$&$$%$(&&&&&$&'$E$%&$%'%&$$%*%$$()$'%%%'''$'&'%($'$G%'&'&$$$*%EE&$$%$%%%&%$&$')'*'%'*(&(&'&%&($%%&%&&%%&(''''&$'%%&%'$F%$$(#F$&$F$($F$-'&%&(%E%#(%%%'$'$&$F&&%&%)%%'$'$'%E&%%'%'$(%'$'%'%'%'%'&'%'$%'&%('$'%&%'($&%'&)$$(%'&%%%%$$&%(%&($%%$&'&'''$%%E$$(%'%D$''$($%$&$$,-'(./%(-,+(.(-(-%%%-$'%&%$$()'$'$'&%%&%&&D&&%($&'%%)$'$(%E%$%%&%($$(%'%%'$'$''$)$$#)$'$$%$%%&&%&%$&&%&%%&%&&%)%&%$$&'$'$$'%''$(%E%%%%'%)'$%%$E&&$'%'&$%)(+E$$'($($%$&&&$'$&$'$&$'$&%&'&'$'$/&&%)%%&%%$&$'D$(%$&$'%%E$()&&$$'(D&%(D%&($(&+%'$($(&+%%$&&($&$$'$F%'%'%'$&'$%0+&&%$%&$&&&$'&&'&%'$&'&'&&)%+$)&,$'%'%($%%')'*'%'*(&(&'&%$%%%$F$F$F$&$&&'&&$'&&'(%&'&'&%'$&'&&)%+$)&,$'%'%($$'%''$(%%'D'#)%$$&$(%'%$$&$($E$(('&%(&($%,(&&&%&&&E&$'E&($)%($%%$&%$&&&&&D'&%%$($'%)+'+'/%+$+(0%&&&$&(&'&%&'%)$F&$%&%'$'%1*-#'$&D(%%$'&&D'%$$'%'%&$(%DD($''$%&$()%&&%&$'E$$'%E$)%,%.,(%&%%'$'&%+$()%&&%&%&$F$'%'%%'$$'E%$)#'$&'$$'$(%+&(&*&&'$'(&$'%&('K/D(J/D&('..($%$'$%&&&%%'%'&$$E$'$G'D$F$'$'$F%G(D&F(D$)#($(&%($%'$E$F$$$$%'$F#'%&%%$'$E$'%&$$$'%&$&$&$'%E&&%'$'%&$F%'$(%&$&$(C)&$$'%$D%$E$&$F$F$&E%#)$(%$$&$(%%$E$&$)$F$F$%%%0@0000H8H40H000047P00P@001000@0B0HP@:H9T8P000LB8d@800@I0<110000QQ8400P10030005940@410020000Q02000@0200000@P0101@8000440400000000808000000000@00000000P`0000000040400@0004<000000000008000030000000000P020T400020@0@00000000000000000000000000P0000000400400000400220080000100000000000000000P000000000000P000000@00402000000000@00000000000000000000040000000000000", `Æ&ÁĂÂА\uD835\uDD04ÀΑĀ⩓Ą\uD835\uDD38Å\uD835\uDC9C≔ÃÄ∖⫧⌆Б∵ℬΒ\uD835\uDD05\uD835\uDD39˘ℬ≎Ч©Ć⋒ⅅℭČÇĈ∰Ċ¸·ℭΧ⊙⊖⊕⊗∲”’∷⩴≡∯∮ℂ∐∳⨯\uD835\uDC9E⋓≍ⅅ⤑ЂЅЏ‡↡⫤ĎД∇Δ\uD835\uDD07´˙˝\`˜⋄ⅆ\uD835\uDD3B¨⃜≐∯¨⇓⇐⇔⫤⟸⟺⟹⇒⊨⇑⇕∥↓⤓⇵̑⥐⥞↽⥖⥟⇁⥗⊤↧⇓\uD835\uDC9FĐŊÐÉĚÊЭĖ\uD835\uDD08È∈Ē◻▫Ę\uD835\uDD3CΕ⩵≂⇌ℰ⩳ΗË∃ⅇФ\uD835\uDD09◼▪\uD835\uDD3D∀ℱℱЃ>ΓϜĞĢĜГĠ\uD835\uDD0A⋙\uD835\uDD3E≥⋛≧⪢≷⩾≳\uD835\uDCA2≫Ъˇ^Ĥℌℋℍ─ℋĦ≎≏ЕIJЁÍÎИİℑÌℑĪⅈ⇒∬∫⋂Į\uD835\uDD40ΙℐĨІÏĴЙ\uD835\uDD0D\uD835\uDD41\uD835\uDCA5ЈЄХЌΚĶК\uD835\uDD0E\uD835\uDD42\uD835\uDCA6Љ<ĹΛ⟪ℒ↞ĽĻЛ⟨←⇤⇆⌈⟦⥡⇃⥙⌊↔⥎⊣↤⥚⊲⧏⊴⥑⥠↿⥘↼⥒⇐⇔⋚≦≶⪡⩽≲\uD835\uDD0F⋘⇚Ŀ⟵⟷⟶⟸⟺⟹\uD835\uDD43↙↘ℒ↰Ł≪⤅М ℳ\uD835\uDD10∓\uD835\uDD44ℳΜЊŃŇŅН≫≪
|
|
26038
|
+
\uD835\uDD11 ℕ⫬≢≭∦∉≠≂̸∄≯≱≧̸≫̸≹⩾̸≵≎̸≏̸⋪⧏̸⋬≮≰≸≪̸⩽̸≴⪢̸⪡̸⊀⪯̸⋠∌⋫⧐̸⋭⊏̸⋢⊐̸⋣⊂⃒⊈⊁⪰̸⋡≿̸⊃⃒⊉≁≄≇≉∤\uD835\uDCA9ÑΝŒÓÔОŐ\uD835\uDD12ÒŌΩΟ\uD835\uDD46“‘⩔\uD835\uDCAAØÕ⨷Ö‾⏞⎴⏜∂П\uD835\uDD13ΦΠ±ℌℙ⪻≺⪯≼≾″∏∷∝\uD835\uDCABΨ"\uD835\uDD14ℚ\uD835\uDCAC⤐®Ŕ⟫↠⤖ŘŖРℜ∋⇋⥯ℜΡ⟩→⇥⇄⌉⟧⥝⇂⥕⌋⊢↦⥛⊳⧐⊵⥏⥜↾⥔⇀⥓⇒ℝ⥰⇛ℛ↱⧴ЩШЬŚ⪼ŠŞŜС\uD835\uDD16↓←→↑Σ∘\uD835\uDD4A√□⊓⊏⊑⊐⊒⊔\uD835\uDCAE⋆⋐⋐⊆≻⪰≽≿∋∑⋑⊃⊇⋑Þ™ЋЦ ΤŤŢТ\uD835\uDD17∴Θ ∼≃≅≈\uD835\uDD4B⃛\uD835\uDCAFŦÚ↟⥉ЎŬÛУŰ\uD835\uDD18ÙŪ_⏟⎵⏝⋃⊎Ų\uD835\uDD4C↑⤒⇅↕⥮⊥↥⇑⇕↖↗ϒΥŮ\uD835\uDCB0ŨÜ⊫⫫В⊩⫦⋁‖‖∣|❘≀ \uD835\uDD19\uD835\uDD4D\uD835\uDCB1⊪Ŵ⋀\uD835\uDD1A\uD835\uDD4E\uD835\uDCB2\uD835\uDD1BΞ\uD835\uDD4F\uD835\uDCB3ЯЇЮÝŶЫ\uD835\uDD1C\uD835\uDD50\uD835\uDCB4ŸЖŹŽЗŻΖℨℤ\uD835\uDCB5áă∾∾̳∿â´аæ\uD835\uDD1Eàℵℵαā⨿&∧⩕⩜⩘⩚∠⦤∠∡⦨⦩⦪⦫⦬⦭⦮⦯∟⊾⦝∢Å⍼ą\uD835\uDD52≈⩰⩯≊≋'≈≊å\uD835\uDCB6*≈≍ãä∳⨑⫭≌϶‵∽⋍⊽⌅⌅⎵⎶≌б„∵∵⦰϶ℬβℶ≬\uD835\uDD1F⋂◯⋃⨀⨁⨂⨆★▽△⨄⋁⋀⤍⧫▪▴▾◂▸␣▒░▓█=⃥≡⃥⌐\uD835\uDD53⊥⊥⋈╗╔╖╓═╦╩╤╧╝╚╜╙║╬╣╠╫╢╟⧉╕╒┐┌─╥╨┬┴⊟⊞⊠╛╘┘└│╪╡╞┼┤├‵˘¦\uD835\uDCB7⁏∽⋍\\⧅⟈••≎⪮≏≏ć∩⩄⩉⩋⩇⩀∩︀⁁ˇ⩍čçĉ⩌⩐ċ¸⦲¢·\uD835\uDD20ч✓✓χ○⧃ˆ≗↺↻®Ⓢ⊛⊚⊝≗⨐⫯⧂♣♣:≔≔,@∁∘∁ℂ≅⩭∮\uD835\uDD54∐©℗↵✗\uD835\uDCB8⫏⫑⫐⫒⋯⤸⤵⋞⋟↶⤽∪⩈⩆⩊⊍⩅∪︀↷⤼⋞⋟⋎⋏¤↶↷⋎⋏∲∱⌭⇓⥥†ℸ↓‐⊣⤏˝ďдⅆ‡⇊⩷°δ⦱⥿\uD835\uDD21⇃⇂⋄⋄♦♦¨ϝ⋲÷÷⋇⋇ђ⌞⌍$\uD835\uDD55˙≐≑∸∔⊡⌆↓⇊⇃⇂⤐⌟⌌\uD835\uDCB9ѕ⧶đ⋱▿▾⇵⥯⦦џ⟿⩷≑é⩮ě≖ê≕эėⅇ≒\uD835\uDD22⪚è⪖⪘⪙⏧ℓ⪕⪗ē∅∅∅ ŋ ę\uD835\uDD56⋕⧣⩱εεϵ≖≕≂⪖⪕=≟≡⩸⧥≓⥱ℯ≐≂ηðë€!∃ℰⅇ≒ф♀ffiffffl\uD835\uDD23fifj♭fl▱ƒ\uD835\uDD57∀⋔⫙⨍½⅓¼⅕⅙⅛⅔⅖¾⅗⅜⅘⅚⅝⅞⁄⌢\uD835\uDCBB≧⪌ǵγϝ⪆ğĝгġ≥⋛≥≧⩾⩾⪩⪀⪂⪄⋛︀⪔\uD835\uDD24≫⋙ℷѓ≷⪒⪥⪤≩⪊⪊⪈⪈≩⋧\uD835\uDD58\`ℊ≳⪎⪐>⪧⩺⋗⦕⩼⪆⥸⋗⋛⪌≷≳≩︀≩︀⇔ ½ℋъ↔⥈↭ℏĥ♥♥…⊹\uD835\uDD25⤥⤦⇿∻↩↪\uD835\uDD59―\uD835\uDCBDℏħ⁃‐íîие¡⇔\uD835\uDD26ìⅈ⨌∭⧜℩ijīℑℐℑı⊷Ƶ∈℅∞⧝ı∫⊺ℤ⊺⨗⨼ёį\uD835\uDD5Aι⨼¿\uD835\uDCBE∈⋹⋵⋴⋳∈ĩіïĵй\uD835\uDD27ȷ\uD835\uDD5B\uD835\uDCBFјєκϰķк\uD835\uDD28ĸхќ\uD835\uDD5C\uD835\uDCC0⇚⇐⤛⤎≦⪋⥢ĺ⦴ℒλ⟨⦑⟨⪅«←⇤⤟⤝↩↫⤹⥳↢⪫⤙⪭⪭︀⤌❲{[⦋⦏⦍ľļ⌈{л⤶“„⥧⥋↲≤←↢↽↼⇇↔⇆⇋↭⋋⋚≤≦⩽⩽⪨⩿⪁⪃⋚︀⪓⪅⋖⋚⪋≶≲⥼⌊\uD835\uDD29≶⪑↽↼⥪▄љ≪⇇⌞⥫◺ŀ⎰⎰≨⪉⪉⪇⪇≨⋦⟬⇽⟦⟵⟷⟼⟶↫↬⦅\uD835\uDD5D⨭⨴∗_◊◊⧫(⦓⇆⌟⇋⥭⊿‹\uD835\uDCC1↰≲⪍⪏[‘‚ł<⪦⩹⋖⋋⋉⥶⩻⦖◃⊴◂⥊⥦≨︀≨︀∺¯♂✠✠↦↦↧↤↥▮⨩м—∡\uD835\uDD2A℧µ∣*⫰·−⊟∸⨪⫛…∓⊧\uD835\uDD5E∓\uD835\uDCC2∾μ⊸⊸⋙̸≫⃒≫̸⇍⇎⋘̸≪⃒≪̸⇏⊯⊮∇ń∠⃒≉⩰̸≋̸ʼn≉♮♮ℕ ≎̸≏̸⩃ňņ≇⩭̸⩂н–≠⇗⤤↗↗≐̸≢⤨≂̸∄∄\uD835\uDD2B≧̸≱≱≧̸⩾̸⩾̸≵≯≯⇎↮⫲∋⋼⋺∋њ⇍≦̸↚‥≰↚↮≰≦̸⩽̸⩽̸≮≴≮⋪⋬∤\uD835\uDD5F¬∉⋹̸⋵̸∉⋷⋶∌∌⋾⋽∦∦⫽⃥∂̸⨔⊀⋠⪯̸⊀⪯̸⇏↛⤳̸↝̸↛⋫⋭⊁⋡⪰̸\uD835\uDCC3∤∦≁≄≄∤∦⋢⋣⊄⫅̸⊈⊂⃒⊈⫅̸⊁⪰̸⊅⫆̸⊉⊃⃒⊉⫆̸≹ñ≸⋪⋬⋫⋭ν#№ ⊭⤄≍⃒⊬≥⃒>⃒⧞⤂≤⃒<⃒⊴⃒⤃⊵⃒∼⃒⇖⤣↖↖⤧Ⓢó⊛⊚ôо⊝ő⨸⊙⦼œ⦿\uD835\uDD2C˛ò⧁⦵Ω∮↺⦾⦻‾⧀ōωο⦶⊖\uD835\uDD60⦷⦹⊕∨↻⩝ℴℴªº⊶⩖⩗⩛ℴø⊘õ⊗⨶ö⌽∥¶∥⫳⫽∂п%.‰⊥‱\uD835\uDD2Dφϕℳ☎π⋔ϖℏℎℏ+⨣⊞⨢∔⨥⩲±⨦⨧±⨕\uD835\uDD61£≺⪳⪷≼⪯≺⪷≼⪯⪹⪵⋨≾′ℙ⪵⪹⋨∏⌮⌒⌓∝∝≾⊰\uD835\uDCC5ψ \uD835\uDD2E⨌\uD835\uDD62⁗\uD835\uDCC6ℍ⨖?≟"⇛⇒⤜⤏⥤∽̱ŕ√⦳⟩⦒⦥⟩»→⥵⇥⤠⤳⤞↪↬⥅⥴↣↝⤚∶ℚ⤍❳}]⦌⦎⦐řŗ⌉}р⤷⥩””↳ℜℛℜℝ▭®⥽⌋\uD835\uDD2F⇁⇀⥬ρϱ→↣⇁⇀⇄⇌⇉↝⋌˚≓⇄⇌⎱⎱⫮⟭⇾⟧⦆\uD835\uDD63⨮⨵)⦔⨒⇉›\uD835\uDCC7↱]’’⋌⋊▹⊵▸⧎⥨℞ś‚≻⪴⪸š≽⪰şŝ⪶⪺⋩⨓≿с⋅⊡⩦⇘⤥↘↘§;⤩∖∖✶\uD835\uDD30⌢♯щш∣∥σςς∼⩪≃≃⪞⪠⪝⪟≆⨤⥲←∖⨳⧤∣⌣⪪⪬⪬︀ь/⧄⌿\uD835\uDD64♠♠∥⊓⊓︀⊔⊔︀⊏⊑⊏⊑⊐⊒⊐⊒□□▪▪→\uD835\uDCC8∖⌣⋆☆★ϵϕ¯⊂⫅⪽⊆⫃⫁⫋⊊⪿⥹⊂⊆⫅⊊⫋⫇⫕⫓≻⪸≽⪰⪺⪶⋩≿∑♪⊃¹²³⫆⪾⫘⊇⫄⟉⫗⥻⫂⫌⊋⫀⊃⊇⫆⊋⫌⫈⫔⫖⇙⤦↙↙⤪ß⌖τ⎴ťţт⃛⌕\uD835\uDD31∴∴θϑϑ≈∼ ≈∼þ˜×⊠⨱⨰∭⤨⊤⌶⫱\uD835\uDD65⫚⤩‴™▵▿◃⊴≜▹⊵◬≜⨺⨹⧍⨻⏢\uD835\uDCC9цћŧ≬↞↠⇑⥣ú↑ўŭûу⇅ű⥮⥾\uD835\uDD32ù↿↾▀⌜⌜⌏◸ū¨ų\uD835\uDD66↑↕↿↾⊎υϒυ⇈⌝⌝⌎ů◹\uD835\uDCCA⋰ũ▵▴⇈ü⦧⇕⫨⫩⊨⦜ϵϰ∅ϕϖ∝↕ϱς⊊︀⫋︀⊋︀⫌︀ϑ⊲⊳в⊢∨⊻≚⋮||\uD835\uDD33⊲⊂⃒⊃⃒\uD835\uDD67∝⊳\uD835\uDCCB⫋︀⊊︀⫌︀⊋︀⦚ŵ⩟∧≙℘\uD835\uDD34\uD835\uDD68℘≀≀\uD835\uDCCC⋂◯⋃▽\uD835\uDD35⟺⟷ξ⟸⟵⟼⋻⨀\uD835\uDD69⨁⨂⟹⟶\uD835\uDCCD⨆⨄△⋁⋀ýяŷы¥\uD835\uDD36ї\uD835\uDD6A\uD835\uDCCEюÿźžзżℨζ\uD835\uDD37ж⇝\uD835\uDD6B\uD835\uDCCF`];
|
|
26039
|
+
});
|
|
26040
|
+
|
|
26041
|
+
// ../../node_modules/parse5/node_modules/entities/dist/internal/decode-data-format.js
|
|
26042
|
+
function exactKey(text, nameStart, length) {
|
|
26043
|
+
return text.charCodeAt(nameStart) << 25 | text.charCodeAt(nameStart + 1) << 18 | text.charCodeAt(nameStart + length - 2) << 11 | CHAR_REMAP[text.charCodeAt(nameStart + length - 1)] << 5 | length;
|
|
26044
|
+
}
|
|
26045
|
+
function pairIndex(c0, c1) {
|
|
26046
|
+
return (c0 * 3 << 3 ^ c1) & PAIR_TABLE_SIZE - 1;
|
|
26047
|
+
}
|
|
26048
|
+
function bucketOne(key, buckets) {
|
|
26049
|
+
return (Math.imul(key, BUCKET_HASH_1) >>> 16) * buckets >>> 16;
|
|
26050
|
+
}
|
|
26051
|
+
function bucketTwo(key, buckets) {
|
|
26052
|
+
return (Math.imul(key, BUCKET_HASH_2) >>> 16) * buckets >>> 16;
|
|
26053
|
+
}
|
|
26054
|
+
function initDecodeData(packed) {
|
|
26055
|
+
const [data, values] = packed;
|
|
26056
|
+
const nameCount = data.charCodeAt(0) - HEADER_BIAS << 6 | data.charCodeAt(1) - HEADER_BIAS;
|
|
26057
|
+
const suffixesLength = data.charCodeAt(2) - HEADER_BIAS << 6 | data.charCodeAt(3) - HEADER_BIAS;
|
|
26058
|
+
const buckets = data.charCodeAt(4) - HEADER_BIAS << 6 | data.charCodeAt(5) - HEADER_BIAS;
|
|
26059
|
+
const metaStart = HEADER_LENGTH + suffixesLength;
|
|
26060
|
+
const choicesStart = metaStart + 2 * nameCount;
|
|
26061
|
+
const slotCount = 2 * buckets;
|
|
26062
|
+
const keys = new Int32Array(slotCount);
|
|
26063
|
+
const slotMidOff = new Uint16Array(slotCount);
|
|
26064
|
+
const slotValue = new Uint16Array(slotCount);
|
|
26065
|
+
const lengthBits = new Uint32Array(PAIR_TABLE_SIZE);
|
|
26066
|
+
const middleOffsets = new Map;
|
|
26067
|
+
const middles = [];
|
|
26068
|
+
let name = "";
|
|
26069
|
+
let suffixOffset = HEADER_LENGTH;
|
|
26070
|
+
let valueOffset = 0;
|
|
26071
|
+
for (let index = 0;index < nameCount; index++) {
|
|
26072
|
+
const meta0 = data.charCodeAt(metaStart + 2 * index) - META_BIAS;
|
|
26073
|
+
const meta1 = data.charCodeAt(metaStart + 2 * index + 1) - META_BIAS;
|
|
26074
|
+
const prefixLength = meta0 & 31;
|
|
26075
|
+
const length = prefixLength + (meta1 & 31);
|
|
26076
|
+
const valueLength = (meta1 >> 5) + 1;
|
|
26077
|
+
name = name.slice(0, prefixLength) + data.slice(suffixOffset, suffixOffset + length - prefixLength);
|
|
26078
|
+
suffixOffset += length - prefixLength;
|
|
26079
|
+
const key = exactKey(name, 0, length);
|
|
26080
|
+
const choice = data.charCodeAt(choicesStart + Math.floor(index / CHOICE_BITS_PER_CHAR)) - HEADER_BIAS & 1 << index % CHOICE_BITS_PER_CHAR;
|
|
26081
|
+
let slot = 2 * (choice === 0 ? bucketOne : bucketTwo)(key, buckets);
|
|
26082
|
+
if (keys[slot] !== 0)
|
|
26083
|
+
slot += 1;
|
|
26084
|
+
keys[slot] = key;
|
|
26085
|
+
if (length > 4) {
|
|
26086
|
+
const middle = name.slice(2, length - 2);
|
|
26087
|
+
const existing = middleOffsets.get(middle);
|
|
26088
|
+
if (existing === undefined) {
|
|
26089
|
+
middleOffsets.set(middle, middles.length);
|
|
26090
|
+
slotMidOff[slot] = middles.length;
|
|
26091
|
+
for (let middleIndex = 0;middleIndex < middle.length; middleIndex += 2) {
|
|
26092
|
+
middles.push(middle.charCodeAt(middleIndex) | middle.charCodeAt(middleIndex + 1) << 16);
|
|
26093
|
+
}
|
|
26094
|
+
} else {
|
|
26095
|
+
slotMidOff[slot] = existing;
|
|
26096
|
+
}
|
|
26097
|
+
}
|
|
26098
|
+
const pair = pairIndex(name.charCodeAt(0), name.charCodeAt(1));
|
|
26099
|
+
lengthBits[pair] |= length <= 16 ? 1 << length - 2 : 32768;
|
|
26100
|
+
if ((meta0 & 32) !== 0) {
|
|
26101
|
+
lengthBits[pair] |= 1 << length - 2 + 16;
|
|
26102
|
+
}
|
|
26103
|
+
slotValue[slot] = valueOffset << 2 | valueLength - 1 | (meta0 & 32) >> 4;
|
|
26104
|
+
valueOffset += valueLength;
|
|
26105
|
+
}
|
|
26106
|
+
return {
|
|
26107
|
+
keys,
|
|
26108
|
+
buckets,
|
|
26109
|
+
slotMidOff,
|
|
26110
|
+
slotValue,
|
|
26111
|
+
values,
|
|
26112
|
+
lengthBits,
|
|
26113
|
+
middles: new Uint32Array(middles)
|
|
25890
26114
|
};
|
|
26115
|
+
}
|
|
26116
|
+
var META_BIAS = 35, HEADER_BIAS = 48, HEADER_LENGTH = 6, CHOICE_BITS_PER_CHAR = 6, BUCKET_HASH_1 = 2654435761, BUCKET_HASH_2 = 2246822507, PAIR_TABLE_SIZE = 1024, CHAR_REMAP;
|
|
26117
|
+
var init_decode_data_format = __esm(() => {
|
|
26118
|
+
CHAR_REMAP = (() => {
|
|
26119
|
+
const remap = new Uint8Array(128);
|
|
26120
|
+
for (let code = 48;code <= 57; code++)
|
|
26121
|
+
remap[code] = code - 47;
|
|
26122
|
+
for (let code = 65;code <= 90; code++)
|
|
26123
|
+
remap[code] = code - 54;
|
|
26124
|
+
for (let code = 97;code <= 122; code++)
|
|
26125
|
+
remap[code] = code - 60;
|
|
26126
|
+
return remap;
|
|
26127
|
+
})();
|
|
25891
26128
|
});
|
|
25892
26129
|
|
|
25893
|
-
// ../../node_modules/parse5/node_modules/entities/dist/
|
|
26130
|
+
// ../../node_modules/parse5/node_modules/entities/dist/decode.js
|
|
25894
26131
|
function isNumber2(code) {
|
|
25895
|
-
return code
|
|
26132
|
+
return code - CHAR_ZERO >>> 0 <= 9;
|
|
25896
26133
|
}
|
|
25897
|
-
function
|
|
25898
|
-
return code
|
|
25899
|
-
}
|
|
25900
|
-
function isAsciiAlphaNumeric(code) {
|
|
25901
|
-
return code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_Z || code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_Z || isNumber2(code);
|
|
26134
|
+
function isAlphaNumeric(code) {
|
|
26135
|
+
return isNumber2(code) || (code | TO_LOWER_BIT) - CHAR_LOWER_A >>> 0 <= 25;
|
|
25902
26136
|
}
|
|
25903
26137
|
function isEntityInAttributeInvalidEnd(code) {
|
|
25904
|
-
return code ===
|
|
26138
|
+
return code === CHAR_EQUALS || isAlphaNumeric(code);
|
|
26139
|
+
}
|
|
26140
|
+
function findSlotHtml(text, start, length) {
|
|
26141
|
+
const c0 = text.charCodeAt(start);
|
|
26142
|
+
const c1 = text.charCodeAt(start + 1);
|
|
26143
|
+
const c2 = text.charCodeAt(start + length - 2);
|
|
26144
|
+
const c3 = text.charCodeAt(start + length - 1);
|
|
26145
|
+
if ((c0 | c1 | c2 | c3) > 127)
|
|
26146
|
+
return -1;
|
|
26147
|
+
const key = c0 << 25 | c1 << 18 | c2 << 11 | CHAR_REMAP[c3] << 5 | length;
|
|
26148
|
+
let slot = 2 * ((Math.imul(key, BUCKET_HASH_1) >>> 16) * htmlBuckets >>> 16);
|
|
26149
|
+
for (let attempt = 0;; attempt++) {
|
|
26150
|
+
if (htmlKeys[slot] === key && (length <= 4 || isMidMatchHtml(slot, text, start, length))) {
|
|
26151
|
+
return slot;
|
|
26152
|
+
}
|
|
26153
|
+
if (htmlKeys[slot + 1] === key && (length <= 4 || isMidMatchHtml(slot + 1, text, start, length))) {
|
|
26154
|
+
return slot + 1;
|
|
26155
|
+
}
|
|
26156
|
+
if (attempt === 1)
|
|
26157
|
+
return -1;
|
|
26158
|
+
slot = 2 * ((Math.imul(key, BUCKET_HASH_2) >>> 16) * htmlBuckets >>> 16);
|
|
26159
|
+
}
|
|
25905
26160
|
}
|
|
25906
|
-
|
|
25907
|
-
|
|
25908
|
-
|
|
25909
|
-
|
|
25910
|
-
|
|
25911
|
-
|
|
25912
|
-
|
|
25913
|
-
|
|
25914
|
-
this.result = 0;
|
|
25915
|
-
this.treeIndex = 0;
|
|
25916
|
-
this.excess = 1;
|
|
25917
|
-
this.decodeMode = DecodingMode.Strict;
|
|
26161
|
+
function isMidMatchHtml(slot, text, start, length) {
|
|
26162
|
+
let wordIndex = htmlSlotMidOff[slot];
|
|
26163
|
+
let index = start + 2;
|
|
26164
|
+
const end = start + length - 2;
|
|
26165
|
+
while (index + 1 < end) {
|
|
26166
|
+
if ((text.charCodeAt(index) | text.charCodeAt(index + 1) << 16) !== htmlMiddles[wordIndex++])
|
|
26167
|
+
return false;
|
|
26168
|
+
index += 2;
|
|
25918
26169
|
}
|
|
25919
|
-
|
|
25920
|
-
|
|
25921
|
-
|
|
25922
|
-
|
|
25923
|
-
|
|
25924
|
-
|
|
25925
|
-
|
|
26170
|
+
return index === end || text.charCodeAt(index) === (htmlMiddles[wordIndex] & 65535);
|
|
26171
|
+
}
|
|
26172
|
+
function findLegacySlot(input, start, maxLength) {
|
|
26173
|
+
let legacy = htmlLengthBits[pairIndex(input.charCodeAt(start), input.charCodeAt(start + 1))] >>> 16 & 31;
|
|
26174
|
+
while (legacy !== 0) {
|
|
26175
|
+
const top = 31 - Math.clz32(legacy);
|
|
26176
|
+
legacy ^= 1 << top;
|
|
26177
|
+
if (top + 2 > maxLength)
|
|
26178
|
+
continue;
|
|
26179
|
+
const slot = findSlotHtml(input, start, top + 2);
|
|
26180
|
+
if (slot >= 0 && (htmlSlotValue[slot] & 2) !== 0) {
|
|
26181
|
+
return slot << 3 | top + 2;
|
|
26182
|
+
}
|
|
25926
26183
|
}
|
|
25927
|
-
|
|
25928
|
-
|
|
25929
|
-
|
|
25930
|
-
|
|
25931
|
-
|
|
25932
|
-
|
|
25933
|
-
|
|
25934
|
-
|
|
25935
|
-
|
|
25936
|
-
|
|
25937
|
-
|
|
25938
|
-
|
|
25939
|
-
|
|
25940
|
-
|
|
25941
|
-
|
|
25942
|
-
return this.stateNumericDecimal(input, offset);
|
|
25943
|
-
}
|
|
25944
|
-
case EntityDecoderState.NumericHex: {
|
|
25945
|
-
return this.stateNumericHex(input, offset);
|
|
25946
|
-
}
|
|
25947
|
-
case EntityDecoderState.NamedEntity: {
|
|
25948
|
-
return this.stateNamedEntity(input, offset);
|
|
25949
|
-
}
|
|
26184
|
+
return -1;
|
|
26185
|
+
}
|
|
26186
|
+
function findLongClassMatch(input, start, mode) {
|
|
26187
|
+
const length = input.slice(start, start + 32).indexOf(";");
|
|
26188
|
+
if (length - 2 >>> 0 <= 29) {
|
|
26189
|
+
const slot = findSlotHtml(input, start, length);
|
|
26190
|
+
if (slot >= 0)
|
|
26191
|
+
return slot << 6 | length + 1;
|
|
26192
|
+
}
|
|
26193
|
+
if (mode !== DecodingMode.Strict) {
|
|
26194
|
+
const packed = findLegacySlot(input, start, Math.min(31, input.length - start));
|
|
26195
|
+
if (packed >= 0) {
|
|
26196
|
+
const length = packed & 7;
|
|
26197
|
+
if (mode !== DecodingMode.Attribute || start + length >= input.length || !isEntityInAttributeInvalidEnd(input.charCodeAt(start + length)))
|
|
26198
|
+
return packed >> 3 << 6 | length;
|
|
25950
26199
|
}
|
|
25951
26200
|
}
|
|
26201
|
+
return -1;
|
|
26202
|
+
}
|
|
26203
|
+
|
|
26204
|
+
class EntityDecoderBase {
|
|
26205
|
+
emitCodePoint;
|
|
26206
|
+
errors;
|
|
26207
|
+
state = STATE_ENTITY_START;
|
|
26208
|
+
consumed = 1;
|
|
26209
|
+
result = 0;
|
|
26210
|
+
decodeMode = DecodingMode.Strict;
|
|
26211
|
+
replaceNumericCodePoint = replaceCodePoint;
|
|
26212
|
+
constructor(emitCodePoint, errors) {
|
|
26213
|
+
this.emitCodePoint = emitCodePoint;
|
|
26214
|
+
this.errors = errors;
|
|
26215
|
+
}
|
|
25952
26216
|
stateNumericStart(input, offset) {
|
|
25953
26217
|
if (offset >= input.length) {
|
|
25954
26218
|
return -1;
|
|
25955
26219
|
}
|
|
25956
|
-
if ((input.charCodeAt(offset) | TO_LOWER_BIT) ===
|
|
25957
|
-
this.state =
|
|
26220
|
+
if ((input.charCodeAt(offset) | TO_LOWER_BIT) === CHAR_LOWER_X) {
|
|
26221
|
+
this.state = STATE_NUMERIC_HEX;
|
|
25958
26222
|
this.consumed += 1;
|
|
25959
26223
|
return this.stateNumericHex(input, offset + 1);
|
|
25960
26224
|
}
|
|
25961
|
-
this.state =
|
|
26225
|
+
this.state = STATE_NUMERIC_DECIMAL;
|
|
25962
26226
|
return this.stateNumericDecimal(input, offset);
|
|
25963
26227
|
}
|
|
25964
|
-
addToNumericResult(input, start, end, base) {
|
|
25965
|
-
if (start !== end) {
|
|
25966
|
-
const digitCount = end - start;
|
|
25967
|
-
this.result = this.result * Math.pow(base, digitCount) + Number.parseInt(input.substr(start, digitCount), base);
|
|
25968
|
-
this.consumed += digitCount;
|
|
25969
|
-
}
|
|
25970
|
-
}
|
|
25971
26228
|
stateNumericHex(input, offset) {
|
|
25972
|
-
const
|
|
25973
|
-
|
|
25974
|
-
|
|
25975
|
-
|
|
25976
|
-
|
|
26229
|
+
const inputLength = input.length;
|
|
26230
|
+
let { result, consumed } = this;
|
|
26231
|
+
let index = offset;
|
|
26232
|
+
while (index < inputLength) {
|
|
26233
|
+
const char = input.charCodeAt(index);
|
|
26234
|
+
const digit = numericDigits[char];
|
|
26235
|
+
if (digit <= 15) {
|
|
26236
|
+
result = result * 16 + digit;
|
|
25977
26237
|
} else {
|
|
25978
|
-
this.
|
|
26238
|
+
this.result = result;
|
|
26239
|
+
this.consumed = consumed;
|
|
25979
26240
|
return this.emitNumericEntity(char, 3);
|
|
25980
26241
|
}
|
|
26242
|
+
consumed += 1;
|
|
26243
|
+
index += 1;
|
|
25981
26244
|
}
|
|
25982
|
-
this.
|
|
26245
|
+
this.result = result;
|
|
26246
|
+
this.consumed = consumed;
|
|
25983
26247
|
return -1;
|
|
25984
26248
|
}
|
|
25985
26249
|
stateNumericDecimal(input, offset) {
|
|
25986
|
-
const
|
|
25987
|
-
|
|
25988
|
-
|
|
25989
|
-
|
|
25990
|
-
|
|
25991
|
-
|
|
25992
|
-
this.
|
|
25993
|
-
|
|
25994
|
-
|
|
25995
|
-
|
|
25996
|
-
|
|
26250
|
+
const inputLength = input.length;
|
|
26251
|
+
let { result, consumed } = this;
|
|
26252
|
+
let index = offset;
|
|
26253
|
+
while (index < inputLength) {
|
|
26254
|
+
const digit = input.charCodeAt(index) - CHAR_ZERO;
|
|
26255
|
+
if (digit >>> 0 > 9) {
|
|
26256
|
+
this.result = result;
|
|
26257
|
+
this.consumed = consumed;
|
|
26258
|
+
return this.emitNumericEntity(digit + CHAR_ZERO, 2);
|
|
26259
|
+
}
|
|
26260
|
+
result = result * 10 + digit;
|
|
26261
|
+
consumed += 1;
|
|
26262
|
+
index += 1;
|
|
26263
|
+
}
|
|
26264
|
+
this.result = result;
|
|
26265
|
+
this.consumed = consumed;
|
|
25997
26266
|
return -1;
|
|
25998
26267
|
}
|
|
25999
26268
|
emitNumericEntity(lastCp, expectedLength) {
|
|
26000
|
-
var _a;
|
|
26001
26269
|
if (this.consumed <= expectedLength) {
|
|
26002
|
-
|
|
26270
|
+
this.errors?.absenceOfDigitsInNumericCharacterReference(this.consumed);
|
|
26003
26271
|
return 0;
|
|
26004
26272
|
}
|
|
26005
|
-
if (lastCp ===
|
|
26273
|
+
if (lastCp === CHAR_SEMI) {
|
|
26006
26274
|
this.consumed += 1;
|
|
26007
26275
|
} else if (this.decodeMode === DecodingMode.Strict) {
|
|
26008
26276
|
return 0;
|
|
26009
26277
|
}
|
|
26010
|
-
this.emitCodePoint(
|
|
26278
|
+
this.emitCodePoint(this.replaceNumericCodePoint(this.result), this.consumed);
|
|
26011
26279
|
if (this.errors) {
|
|
26012
|
-
if (lastCp !==
|
|
26280
|
+
if (lastCp !== CHAR_SEMI) {
|
|
26013
26281
|
this.errors.missingSemicolonAfterCharacterReference();
|
|
26014
26282
|
}
|
|
26015
26283
|
this.errors.validateNumericCharacterReference(this.result);
|
|
26016
26284
|
}
|
|
26017
26285
|
return this.consumed;
|
|
26018
26286
|
}
|
|
26019
|
-
|
|
26020
|
-
|
|
26021
|
-
|
|
26022
|
-
|
|
26023
|
-
|
|
26024
|
-
|
|
26025
|
-
|
|
26026
|
-
|
|
26027
|
-
|
|
26028
|
-
|
|
26029
|
-
|
|
26030
|
-
|
|
26031
|
-
|
|
26032
|
-
if (char === CharCodes.SEMI) {
|
|
26033
|
-
return this.emitNamedEntityData(this.treeIndex, valueLength, this.consumed + this.excess);
|
|
26034
|
-
}
|
|
26035
|
-
if (this.decodeMode !== DecodingMode.Strict) {
|
|
26036
|
-
this.result = this.treeIndex;
|
|
26037
|
-
this.consumed += this.excess;
|
|
26038
|
-
this.excess = 0;
|
|
26287
|
+
startEntity(decodeMode) {
|
|
26288
|
+
this.decodeMode = decodeMode;
|
|
26289
|
+
this.state = STATE_ENTITY_START;
|
|
26290
|
+
this.result = 0;
|
|
26291
|
+
this.consumed = 1;
|
|
26292
|
+
}
|
|
26293
|
+
write(input, offset) {
|
|
26294
|
+
switch (this.state) {
|
|
26295
|
+
case STATE_ENTITY_START: {
|
|
26296
|
+
if (input.charCodeAt(offset) === CHAR_NUM) {
|
|
26297
|
+
this.state = STATE_NUMERIC_START;
|
|
26298
|
+
this.consumed += 1;
|
|
26299
|
+
return this.stateNumericStart(input, offset + 1);
|
|
26039
26300
|
}
|
|
26301
|
+
this.state = STATE_NAMED_ENTITY;
|
|
26302
|
+
return this.stateNamedEntity(input, offset);
|
|
26303
|
+
}
|
|
26304
|
+
case STATE_NUMERIC_START: {
|
|
26305
|
+
return this.stateNumericStart(input, offset);
|
|
26306
|
+
}
|
|
26307
|
+
case STATE_NUMERIC_DECIMAL: {
|
|
26308
|
+
return this.stateNumericDecimal(input, offset);
|
|
26309
|
+
}
|
|
26310
|
+
case STATE_NUMERIC_HEX: {
|
|
26311
|
+
return this.stateNumericHex(input, offset);
|
|
26312
|
+
}
|
|
26313
|
+
default: {
|
|
26314
|
+
return this.stateNamedEntity(input, offset);
|
|
26040
26315
|
}
|
|
26041
26316
|
}
|
|
26042
|
-
return -1;
|
|
26043
|
-
}
|
|
26044
|
-
emitNotTerminatedNamedEntity() {
|
|
26045
|
-
var _a;
|
|
26046
|
-
const { result, decodeTree } = this;
|
|
26047
|
-
const valueLength = (decodeTree[result] & BinTrieFlags.VALUE_LENGTH) >> 14;
|
|
26048
|
-
this.emitNamedEntityData(result, valueLength, this.consumed);
|
|
26049
|
-
(_a = this.errors) === null || _a === undefined || _a.missingSemicolonAfterCharacterReference();
|
|
26050
|
-
return this.consumed;
|
|
26051
|
-
}
|
|
26052
|
-
emitNamedEntityData(result, valueLength, consumed) {
|
|
26053
|
-
const { decodeTree } = this;
|
|
26054
|
-
this.emitCodePoint(valueLength === 1 ? decodeTree[result] & ~BinTrieFlags.VALUE_LENGTH : decodeTree[result + 1], consumed);
|
|
26055
|
-
if (valueLength === 3) {
|
|
26056
|
-
this.emitCodePoint(decodeTree[result + 2], consumed);
|
|
26057
|
-
}
|
|
26058
|
-
return consumed;
|
|
26059
26317
|
}
|
|
26060
26318
|
end() {
|
|
26061
|
-
var _a;
|
|
26062
26319
|
switch (this.state) {
|
|
26063
|
-
case
|
|
26064
|
-
return this.
|
|
26320
|
+
case STATE_NAMED_ENTITY: {
|
|
26321
|
+
return this.endNamedEntity();
|
|
26065
26322
|
}
|
|
26066
|
-
case
|
|
26323
|
+
case STATE_NUMERIC_DECIMAL: {
|
|
26067
26324
|
return this.emitNumericEntity(0, 2);
|
|
26068
26325
|
}
|
|
26069
|
-
case
|
|
26326
|
+
case STATE_NUMERIC_HEX: {
|
|
26070
26327
|
return this.emitNumericEntity(0, 3);
|
|
26071
26328
|
}
|
|
26072
|
-
case
|
|
26073
|
-
|
|
26329
|
+
case STATE_NUMERIC_START: {
|
|
26330
|
+
this.errors?.absenceOfDigitsInNumericCharacterReference(this.consumed);
|
|
26074
26331
|
return 0;
|
|
26075
26332
|
}
|
|
26076
|
-
|
|
26333
|
+
default: {
|
|
26077
26334
|
return 0;
|
|
26078
26335
|
}
|
|
26079
26336
|
}
|
|
26080
26337
|
}
|
|
26081
26338
|
}
|
|
26082
|
-
function
|
|
26083
|
-
const
|
|
26084
|
-
|
|
26085
|
-
|
|
26086
|
-
|
|
26339
|
+
function findBufferedHtmlSlot(buffer, length) {
|
|
26340
|
+
const key = buffer[0] << 25 | buffer[1] << 18 | buffer[length - 2] << 11 | CHAR_REMAP[buffer[length - 1]] << 5 | length;
|
|
26341
|
+
let slot = 2 * ((Math.imul(key, BUCKET_HASH_1) >>> 16) * htmlBuckets >>> 16);
|
|
26342
|
+
for (let attempt = 0;; attempt++) {
|
|
26343
|
+
if (htmlKeys[slot] === key && (length <= 4 || isBufferedMiddle(slot, buffer, length)))
|
|
26344
|
+
return slot;
|
|
26345
|
+
if (htmlKeys[slot + 1] === key && (length <= 4 || isBufferedMiddle(slot + 1, buffer, length)))
|
|
26346
|
+
return slot + 1;
|
|
26347
|
+
if (attempt === 1)
|
|
26348
|
+
return -1;
|
|
26349
|
+
slot = 2 * ((Math.imul(key, BUCKET_HASH_2) >>> 16) * htmlBuckets >>> 16);
|
|
26087
26350
|
}
|
|
26088
|
-
|
|
26089
|
-
|
|
26090
|
-
|
|
26351
|
+
}
|
|
26352
|
+
function isBufferedMiddle(slot, buffer, length) {
|
|
26353
|
+
let wordIndex = htmlSlotMidOff[slot];
|
|
26354
|
+
let index = 2;
|
|
26355
|
+
const end = length - 2;
|
|
26356
|
+
while (index + 1 < end) {
|
|
26357
|
+
if ((buffer[index] | buffer[index + 1] << 16) !== htmlMiddles[wordIndex++])
|
|
26358
|
+
return false;
|
|
26359
|
+
index += 2;
|
|
26091
26360
|
}
|
|
26092
|
-
|
|
26093
|
-
|
|
26094
|
-
|
|
26095
|
-
|
|
26096
|
-
|
|
26097
|
-
|
|
26098
|
-
|
|
26099
|
-
|
|
26100
|
-
|
|
26101
|
-
|
|
26102
|
-
|
|
26103
|
-
|
|
26361
|
+
return index === end || buffer[index] === (htmlMiddles[wordIndex] & 65535);
|
|
26362
|
+
}
|
|
26363
|
+
function findBufferedLegacySlot(buffer, length) {
|
|
26364
|
+
let legacy = htmlLengthBits[pairIndex(buffer[0], buffer[1])] >>> 16 & 31;
|
|
26365
|
+
while (legacy !== 0) {
|
|
26366
|
+
const top = 31 - Math.clz32(legacy);
|
|
26367
|
+
legacy ^= 1 << top;
|
|
26368
|
+
if (top + 2 > length)
|
|
26369
|
+
continue;
|
|
26370
|
+
const slot = findBufferedHtmlSlot(buffer, top + 2);
|
|
26371
|
+
if (slot >= 0 && (htmlSlotValue[slot] & 2) !== 0)
|
|
26372
|
+
return slot << 3 | top + 2;
|
|
26104
26373
|
}
|
|
26105
26374
|
return -1;
|
|
26106
26375
|
}
|
|
26107
|
-
var
|
|
26376
|
+
var CHAR_NUM = 35, CHAR_SEMI = 59, CHAR_EQUALS = 61, CHAR_ZERO = 48, CHAR_LOWER_A = 97, CHAR_LOWER_X = 120, CHAR_UPPER_A = 65, TO_LOWER_BIT = 32, DecodingMode, htmlDecode, htmlKeys, htmlBuckets, htmlSlotMidOff, htmlLengthBits, htmlMiddles, htmlSlotValue, htmlValues, numericDigits, STATE_ENTITY_START = 0, STATE_NUMERIC_START = 1, STATE_NUMERIC_DECIMAL = 2, STATE_NUMERIC_HEX = 3, STATE_NAMED_ENTITY = 4, HtmlEntityDecoder;
|
|
26108
26377
|
var init_decode = __esm(() => {
|
|
26109
26378
|
init_decode_codepoint();
|
|
26110
26379
|
init_decode_data_html();
|
|
26111
|
-
(
|
|
26112
|
-
CharCodes[CharCodes["NUM"] = 35] = "NUM";
|
|
26113
|
-
CharCodes[CharCodes["SEMI"] = 59] = "SEMI";
|
|
26114
|
-
CharCodes[CharCodes["EQUALS"] = 61] = "EQUALS";
|
|
26115
|
-
CharCodes[CharCodes["ZERO"] = 48] = "ZERO";
|
|
26116
|
-
CharCodes[CharCodes["NINE"] = 57] = "NINE";
|
|
26117
|
-
CharCodes[CharCodes["LOWER_A"] = 97] = "LOWER_A";
|
|
26118
|
-
CharCodes[CharCodes["LOWER_F"] = 102] = "LOWER_F";
|
|
26119
|
-
CharCodes[CharCodes["LOWER_X"] = 120] = "LOWER_X";
|
|
26120
|
-
CharCodes[CharCodes["LOWER_Z"] = 122] = "LOWER_Z";
|
|
26121
|
-
CharCodes[CharCodes["UPPER_A"] = 65] = "UPPER_A";
|
|
26122
|
-
CharCodes[CharCodes["UPPER_F"] = 70] = "UPPER_F";
|
|
26123
|
-
CharCodes[CharCodes["UPPER_Z"] = 90] = "UPPER_Z";
|
|
26124
|
-
})(CharCodes || (CharCodes = {}));
|
|
26125
|
-
(function(BinTrieFlags) {
|
|
26126
|
-
BinTrieFlags[BinTrieFlags["VALUE_LENGTH"] = 49152] = "VALUE_LENGTH";
|
|
26127
|
-
BinTrieFlags[BinTrieFlags["BRANCH_LENGTH"] = 16256] = "BRANCH_LENGTH";
|
|
26128
|
-
BinTrieFlags[BinTrieFlags["JUMP_TABLE"] = 127] = "JUMP_TABLE";
|
|
26129
|
-
})(BinTrieFlags || (BinTrieFlags = {}));
|
|
26130
|
-
(function(EntityDecoderState) {
|
|
26131
|
-
EntityDecoderState[EntityDecoderState["EntityStart"] = 0] = "EntityStart";
|
|
26132
|
-
EntityDecoderState[EntityDecoderState["NumericStart"] = 1] = "NumericStart";
|
|
26133
|
-
EntityDecoderState[EntityDecoderState["NumericDecimal"] = 2] = "NumericDecimal";
|
|
26134
|
-
EntityDecoderState[EntityDecoderState["NumericHex"] = 3] = "NumericHex";
|
|
26135
|
-
EntityDecoderState[EntityDecoderState["NamedEntity"] = 4] = "NamedEntity";
|
|
26136
|
-
})(EntityDecoderState || (EntityDecoderState = {}));
|
|
26380
|
+
init_decode_data_format();
|
|
26137
26381
|
(function(DecodingMode) {
|
|
26138
26382
|
DecodingMode[DecodingMode["Legacy"] = 0] = "Legacy";
|
|
26139
26383
|
DecodingMode[DecodingMode["Strict"] = 1] = "Strict";
|
|
26140
26384
|
DecodingMode[DecodingMode["Attribute"] = 2] = "Attribute";
|
|
26141
26385
|
})(DecodingMode || (DecodingMode = {}));
|
|
26142
|
-
|
|
26143
|
-
|
|
26144
|
-
|
|
26145
|
-
|
|
26146
|
-
|
|
26147
|
-
|
|
26148
|
-
|
|
26149
|
-
|
|
26150
|
-
|
|
26151
|
-
|
|
26152
|
-
|
|
26153
|
-
|
|
26154
|
-
|
|
26155
|
-
|
|
26156
|
-
|
|
26157
|
-
|
|
26158
|
-
|
|
26159
|
-
|
|
26160
|
-
|
|
26386
|
+
htmlDecode = /* @__PURE__ */ initDecodeData(htmlDecodeData);
|
|
26387
|
+
htmlKeys = /* @__PURE__ */ (() => htmlDecode.keys)();
|
|
26388
|
+
htmlBuckets = /* @__PURE__ */ (() => htmlDecode.buckets)();
|
|
26389
|
+
htmlSlotMidOff = /* @__PURE__ */ (() => htmlDecode.slotMidOff)();
|
|
26390
|
+
htmlLengthBits = /* @__PURE__ */ (() => htmlDecode.lengthBits)();
|
|
26391
|
+
htmlMiddles = /* @__PURE__ */ (() => htmlDecode.middles)();
|
|
26392
|
+
htmlSlotValue = /* @__PURE__ */ (() => htmlDecode.slotValue)();
|
|
26393
|
+
htmlValues = /* @__PURE__ */ (() => htmlDecode.values)();
|
|
26394
|
+
numericDigits = /* @__PURE__ */ (() => {
|
|
26395
|
+
const digits = new Uint8Array(128).fill(255);
|
|
26396
|
+
for (let digit = 0;digit < 10; digit++) {
|
|
26397
|
+
digits[CHAR_ZERO + digit] = digit;
|
|
26398
|
+
}
|
|
26399
|
+
for (let digit = 0;digit < 6; digit++) {
|
|
26400
|
+
digits[CHAR_UPPER_A + digit] = digit + 10;
|
|
26401
|
+
digits[CHAR_LOWER_A + digit] = digit + 10;
|
|
26402
|
+
}
|
|
26403
|
+
return digits;
|
|
26404
|
+
})();
|
|
26405
|
+
HtmlEntityDecoder = class HtmlEntityDecoder extends EntityDecoderBase {
|
|
26406
|
+
runLength = 0;
|
|
26407
|
+
nameBuffer = new Uint8Array(32);
|
|
26408
|
+
emitSlot(slot) {
|
|
26409
|
+
const packed = htmlSlotValue[slot];
|
|
26410
|
+
const off = packed >> 2;
|
|
26411
|
+
this.emitCodePoint(htmlValues.charCodeAt(off), this.consumed);
|
|
26412
|
+
if ((packed & 1) !== 0) {
|
|
26413
|
+
this.emitCodePoint(htmlValues.charCodeAt(off + 1), this.consumed);
|
|
26414
|
+
}
|
|
26415
|
+
}
|
|
26416
|
+
startEntity(decodeMode) {
|
|
26417
|
+
super.startEntity(decodeMode);
|
|
26418
|
+
this.runLength = 0;
|
|
26419
|
+
}
|
|
26420
|
+
stateNamedEntity(input, offset) {
|
|
26421
|
+
const inputLength = input.length;
|
|
26422
|
+
if (this.runLength === 0 && offset + 17 <= inputLength) {
|
|
26423
|
+
const c0 = input.charCodeAt(offset);
|
|
26424
|
+
const pair = pairIndex(c0, input.charCodeAt(offset + 1));
|
|
26425
|
+
const bits = htmlLengthBits[pair];
|
|
26426
|
+
if ((bits & 32768) !== 0 && offset + 32 <= inputLength) {
|
|
26427
|
+
const packed = findLongClassMatch(input, offset, this.decodeMode);
|
|
26428
|
+
if (packed >= 0) {
|
|
26429
|
+
const length = packed & 63;
|
|
26430
|
+
this.consumed = length + 1;
|
|
26431
|
+
this.emitSlot(packed >> 6);
|
|
26432
|
+
if (input.charCodeAt(offset + length - 1) !== CHAR_SEMI) {
|
|
26433
|
+
this.errors?.missingSemicolonAfterCharacterReference();
|
|
26434
|
+
}
|
|
26435
|
+
return this.consumed;
|
|
26436
|
+
}
|
|
26437
|
+
return 0;
|
|
26438
|
+
}
|
|
26439
|
+
let probed = bits & 32767;
|
|
26440
|
+
while (probed !== 0) {
|
|
26441
|
+
const low = probed & -probed;
|
|
26442
|
+
probed ^= low;
|
|
26443
|
+
const length = 33 - Math.clz32(low);
|
|
26444
|
+
if (input.charCodeAt(offset + length) === CHAR_SEMI) {
|
|
26445
|
+
const slot = findSlotHtml(input, offset, length);
|
|
26446
|
+
if (slot >= 0) {
|
|
26447
|
+
this.consumed = length + 2;
|
|
26448
|
+
this.emitSlot(slot);
|
|
26449
|
+
return this.consumed;
|
|
26450
|
+
}
|
|
26451
|
+
}
|
|
26452
|
+
}
|
|
26453
|
+
if ((bits & 32768) === 0) {
|
|
26454
|
+
if (this.decodeMode !== DecodingMode.Strict) {
|
|
26455
|
+
const packed = findLegacySlot(input, offset, 31);
|
|
26456
|
+
if (packed >= 0) {
|
|
26457
|
+
const matchLength = packed & 7;
|
|
26458
|
+
const next = input.charCodeAt(offset + matchLength);
|
|
26459
|
+
if (this.decodeMode === DecodingMode.Attribute && isEntityInAttributeInvalidEnd(next)) {
|
|
26460
|
+
return 0;
|
|
26461
|
+
}
|
|
26462
|
+
this.consumed = matchLength + 1;
|
|
26463
|
+
this.emitSlot(packed >> 3);
|
|
26464
|
+
this.errors?.missingSemicolonAfterCharacterReference();
|
|
26465
|
+
return this.consumed;
|
|
26466
|
+
}
|
|
26467
|
+
}
|
|
26468
|
+
return 0;
|
|
26469
|
+
}
|
|
26470
|
+
}
|
|
26471
|
+
let index = offset;
|
|
26472
|
+
let { runLength } = this;
|
|
26473
|
+
let terminator = -1;
|
|
26474
|
+
const scanEnd = Math.min(inputLength, offset + 32 - runLength);
|
|
26475
|
+
while (index < scanEnd) {
|
|
26476
|
+
const char = input.charCodeAt(index);
|
|
26477
|
+
if (!isAlphaNumeric(char)) {
|
|
26478
|
+
terminator = char;
|
|
26479
|
+
break;
|
|
26480
|
+
}
|
|
26481
|
+
this.nameBuffer[runLength++] = char;
|
|
26482
|
+
index++;
|
|
26483
|
+
}
|
|
26484
|
+
if (terminator < 0 && runLength < 32) {
|
|
26485
|
+
this.runLength = runLength;
|
|
26486
|
+
return -1;
|
|
26487
|
+
}
|
|
26488
|
+
if (terminator === CHAR_SEMI && runLength - 2 >>> 0 <= 29) {
|
|
26489
|
+
const slot = findBufferedHtmlSlot(this.nameBuffer, runLength);
|
|
26490
|
+
if (slot >= 0) {
|
|
26491
|
+
this.consumed = runLength + 2;
|
|
26492
|
+
this.emitSlot(slot);
|
|
26493
|
+
return this.consumed;
|
|
26494
|
+
}
|
|
26495
|
+
}
|
|
26496
|
+
if (this.decodeMode !== DecodingMode.Strict && runLength >= 2) {
|
|
26497
|
+
const packed = findBufferedLegacySlot(this.nameBuffer, runLength);
|
|
26498
|
+
if (packed >= 0) {
|
|
26499
|
+
const length = packed & 7;
|
|
26500
|
+
const next = length < runLength ? this.nameBuffer[length] : terminator;
|
|
26501
|
+
if (this.decodeMode === DecodingMode.Attribute && isEntityInAttributeInvalidEnd(next))
|
|
26502
|
+
return 0;
|
|
26503
|
+
this.consumed = length + 1;
|
|
26504
|
+
this.emitSlot(packed >> 3);
|
|
26505
|
+
this.errors?.missingSemicolonAfterCharacterReference();
|
|
26506
|
+
return this.consumed;
|
|
26507
|
+
}
|
|
26508
|
+
}
|
|
26509
|
+
return 0;
|
|
26510
|
+
}
|
|
26511
|
+
endNamedEntity() {
|
|
26512
|
+
if (this.decodeMode === DecodingMode.Strict || this.runLength < 2) {
|
|
26513
|
+
return 0;
|
|
26514
|
+
}
|
|
26515
|
+
const packed = findBufferedLegacySlot(this.nameBuffer, this.runLength);
|
|
26516
|
+
if (packed < 0)
|
|
26517
|
+
return 0;
|
|
26518
|
+
if (this.decodeMode === DecodingMode.Attribute && (packed & 7) < this.runLength) {
|
|
26519
|
+
return 0;
|
|
26520
|
+
}
|
|
26521
|
+
this.consumed = (packed & 7) + 1;
|
|
26522
|
+
this.emitSlot(packed >> 3);
|
|
26523
|
+
this.errors?.missingSemicolonAfterCharacterReference();
|
|
26524
|
+
return this.consumed;
|
|
26525
|
+
}
|
|
26526
|
+
};
|
|
26527
|
+
});
|
|
26528
|
+
|
|
26529
|
+
// ../../node_modules/parse5/dist/common/html.js
|
|
26530
|
+
function getTagID(tagName) {
|
|
26531
|
+
var _a;
|
|
26532
|
+
return (_a = TAG_NAME_TO_ID.get(tagName)) !== null && _a !== undefined ? _a : TAG_ID.UNKNOWN;
|
|
26533
|
+
}
|
|
26534
|
+
var NS, ATTRS, DOCUMENT_MODE, TAG_NAMES, TAG_ID, TAG_NAME_TO_ID, $, SPECIAL_ELEMENTS, NUMBERED_HEADERS, UNESCAPED_TEXT;
|
|
26535
|
+
var init_html3 = __esm(() => {
|
|
26536
|
+
(function(NS) {
|
|
26537
|
+
NS["HTML"] = "http://www.w3.org/1999/xhtml";
|
|
26538
|
+
NS["MATHML"] = "http://www.w3.org/1998/Math/MathML";
|
|
26539
|
+
NS["SVG"] = "http://www.w3.org/2000/svg";
|
|
26540
|
+
NS["XLINK"] = "http://www.w3.org/1999/xlink";
|
|
26541
|
+
NS["XML"] = "http://www.w3.org/XML/1998/namespace";
|
|
26542
|
+
NS["XMLNS"] = "http://www.w3.org/2000/xmlns/";
|
|
26543
|
+
})(NS || (NS = {}));
|
|
26544
|
+
(function(ATTRS) {
|
|
26545
|
+
ATTRS["TYPE"] = "type";
|
|
26161
26546
|
ATTRS["ACTION"] = "action";
|
|
26162
26547
|
ATTRS["ENCODING"] = "encoding";
|
|
26163
26548
|
ATTRS["PROMPT"] = "prompt";
|
|
@@ -26663,14 +27048,14 @@ function isAsciiLower(cp) {
|
|
|
26663
27048
|
function isAsciiLetter(cp) {
|
|
26664
27049
|
return isAsciiLower(cp) || isAsciiUpper(cp);
|
|
26665
27050
|
}
|
|
26666
|
-
function
|
|
27051
|
+
function isAsciiAlphaNumeric(cp) {
|
|
26667
27052
|
return isAsciiLetter(cp) || isAsciiDigit(cp);
|
|
26668
27053
|
}
|
|
26669
27054
|
function toAsciiLower(cp) {
|
|
26670
27055
|
return cp + 32;
|
|
26671
27056
|
}
|
|
26672
27057
|
function isWhitespace(cp) {
|
|
26673
|
-
return cp === CODE_POINTS.SPACE || cp === CODE_POINTS.LINE_FEED || cp === CODE_POINTS.TABULATION || cp === CODE_POINTS.FORM_FEED;
|
|
27058
|
+
return cp === CODE_POINTS.SPACE || cp === CODE_POINTS.LINE_FEED || cp === CODE_POINTS.TABULATION || cp === CODE_POINTS.FORM_FEED || cp === CODE_POINTS.CARRIAGE_RETURN;
|
|
26674
27059
|
}
|
|
26675
27060
|
function isScriptDataDoubleEscapeSequenceEnd(cp) {
|
|
26676
27061
|
return isWhitespace(cp) || cp === CODE_POINTS.SOLIDUS || cp === CODE_POINTS.GREATER_THAN_SIGN;
|
|
@@ -26706,11 +27091,19 @@ class Tokenizer {
|
|
|
26706
27091
|
this.currentCharacterToken = null;
|
|
26707
27092
|
this.currentToken = null;
|
|
26708
27093
|
this.currentAttr = { name: "", value: "" };
|
|
27094
|
+
this.currentAttrLocation = null;
|
|
27095
|
+
this.currentAttrNames = null;
|
|
27096
|
+
this.runStart = 0;
|
|
27097
|
+
this.runEnd = 0;
|
|
26709
27098
|
this.preprocessor = new Preprocessor(handler);
|
|
26710
27099
|
this.currentLocation = this.getCurrentLocation(-1);
|
|
26711
|
-
this.entityDecoder = new
|
|
27100
|
+
this.entityDecoder = new HtmlEntityDecoder((cp, consumed) => {
|
|
26712
27101
|
this.preprocessor.pos = this.entityStartPos + consumed - 1;
|
|
26713
|
-
this.
|
|
27102
|
+
if (!this._isCharacterReferenceInAttribute()) {
|
|
27103
|
+
this._ensureCharacterToken(isWhitespace(cp) ? TokenType.WHITESPACE_CHARACTER : cp === CODE_POINTS.NULL ? TokenType.NULL_CHARACTER : TokenType.CHARACTER);
|
|
27104
|
+
}
|
|
27105
|
+
this._extendRunWith(String.fromCodePoint(cp), 0);
|
|
27106
|
+
this.entityStartPos = this.preprocessor.pos - consumed + 1;
|
|
26714
27107
|
}, handler.onParseError ? {
|
|
26715
27108
|
missingSemicolonAfterCharacterReference: () => {
|
|
26716
27109
|
this._err(ERR.missingSemicolonAfterCharacterReference, 1);
|
|
@@ -26755,6 +27148,92 @@ class Tokenizer {
|
|
|
26755
27148
|
}
|
|
26756
27149
|
this.inLoop = false;
|
|
26757
27150
|
}
|
|
27151
|
+
flushCharacters() {
|
|
27152
|
+
var _a;
|
|
27153
|
+
if (this.inLoop) {
|
|
27154
|
+
throw new Error("Cannot flush characters from a tokenizer callback");
|
|
27155
|
+
}
|
|
27156
|
+
const location = (_a = this.currentCharacterToken) === null || _a === undefined ? undefined : _a.location;
|
|
27157
|
+
let nextLocation = null;
|
|
27158
|
+
if (location) {
|
|
27159
|
+
nextLocation = this.getCharacterTokenEndLocation(location);
|
|
27160
|
+
this.currentLocation = nextLocation;
|
|
27161
|
+
}
|
|
27162
|
+
this.inLoop = true;
|
|
27163
|
+
try {
|
|
27164
|
+
this._emitCurrentCharacterToken(nextLocation);
|
|
27165
|
+
} finally {
|
|
27166
|
+
this.inLoop = false;
|
|
27167
|
+
}
|
|
27168
|
+
this._runParsingLoop();
|
|
27169
|
+
}
|
|
27170
|
+
getCharacterTokenEndLocation(location) {
|
|
27171
|
+
const endOffset = this.getCharacterTokenEndOffset();
|
|
27172
|
+
const html = this.preprocessor.html.slice(location.startOffset - this.preprocessor.droppedBufferSize, endOffset - this.preprocessor.droppedBufferSize);
|
|
27173
|
+
let line = location.startLine;
|
|
27174
|
+
let lastLineBreak = -1;
|
|
27175
|
+
for (let i = html.indexOf(`
|
|
27176
|
+
`);i !== -1; i = html.indexOf(`
|
|
27177
|
+
`, i + 1)) {
|
|
27178
|
+
line++;
|
|
27179
|
+
lastLineBreak = i;
|
|
27180
|
+
}
|
|
27181
|
+
for (let i = html.indexOf("\r");i !== -1; i = html.indexOf("\r", i + 1)) {
|
|
27182
|
+
if (html.charCodeAt(i + 1) !== CODE_POINTS.LINE_FEED) {
|
|
27183
|
+
line++;
|
|
27184
|
+
lastLineBreak = Math.max(lastLineBreak, i);
|
|
27185
|
+
}
|
|
27186
|
+
}
|
|
27187
|
+
return {
|
|
27188
|
+
startLine: line,
|
|
27189
|
+
startCol: lastLineBreak === -1 ? location.startCol + html.length : html.length - lastLineBreak,
|
|
27190
|
+
startOffset: endOffset,
|
|
27191
|
+
endLine: -1,
|
|
27192
|
+
endCol: -1,
|
|
27193
|
+
endOffset: -1
|
|
27194
|
+
};
|
|
27195
|
+
}
|
|
27196
|
+
getCharacterTokenEndOffset() {
|
|
27197
|
+
var _a;
|
|
27198
|
+
const end = this.preprocessor.droppedBufferSize + this.preprocessor.pos + 1;
|
|
27199
|
+
const tokenLocation = (_a = this.currentToken) === null || _a === undefined ? undefined : _a.location;
|
|
27200
|
+
switch (this.state) {
|
|
27201
|
+
case State.TAG_OPEN:
|
|
27202
|
+
case State.RCDATA_LESS_THAN_SIGN:
|
|
27203
|
+
case State.RAWTEXT_LESS_THAN_SIGN:
|
|
27204
|
+
case State.SCRIPT_DATA_LESS_THAN_SIGN:
|
|
27205
|
+
case State.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN:
|
|
27206
|
+
case State.CDATA_SECTION_BRACKET: {
|
|
27207
|
+
return end - 1;
|
|
27208
|
+
}
|
|
27209
|
+
case State.END_TAG_OPEN:
|
|
27210
|
+
case State.MARKUP_DECLARATION_OPEN:
|
|
27211
|
+
case State.RCDATA_END_TAG_OPEN:
|
|
27212
|
+
case State.RCDATA_END_TAG_NAME:
|
|
27213
|
+
case State.RAWTEXT_END_TAG_OPEN:
|
|
27214
|
+
case State.RAWTEXT_END_TAG_NAME:
|
|
27215
|
+
case State.SCRIPT_DATA_END_TAG_OPEN:
|
|
27216
|
+
case State.SCRIPT_DATA_END_TAG_NAME:
|
|
27217
|
+
case State.SCRIPT_DATA_ESCAPED_END_TAG_OPEN:
|
|
27218
|
+
case State.SCRIPT_DATA_ESCAPED_END_TAG_NAME:
|
|
27219
|
+
case State.CDATA_SECTION_END: {
|
|
27220
|
+
return end - 2;
|
|
27221
|
+
}
|
|
27222
|
+
case State.CHARACTER_REFERENCE: {
|
|
27223
|
+
return this._isCharacterReferenceInAttribute() && tokenLocation ? tokenLocation.startOffset : this.preprocessor.droppedBufferSize + this.entityStartPos;
|
|
27224
|
+
}
|
|
27225
|
+
case State.DOCTYPE:
|
|
27226
|
+
case State.BEFORE_DOCTYPE_NAME: {
|
|
27227
|
+
return this.currentLocation.startOffset;
|
|
27228
|
+
}
|
|
27229
|
+
default: {
|
|
27230
|
+
if (tokenLocation && (this.state === State.TAG_NAME || this.state >= State.BEFORE_ATTRIBUTE_NAME && this.state <= State.BOGUS_COMMENT || this.state >= State.COMMENT_START && this.state <= State.BOGUS_DOCTYPE)) {
|
|
27231
|
+
return tokenLocation.startOffset;
|
|
27232
|
+
}
|
|
27233
|
+
return end;
|
|
27234
|
+
}
|
|
27235
|
+
}
|
|
27236
|
+
}
|
|
26758
27237
|
pause() {
|
|
26759
27238
|
this.paused = true;
|
|
26760
27239
|
}
|
|
@@ -26783,6 +27262,19 @@ class Tokenizer {
|
|
|
26783
27262
|
this.preprocessor.insertHtmlAtCurrentPos(chunk);
|
|
26784
27263
|
this._runParsingLoop();
|
|
26785
27264
|
}
|
|
27265
|
+
flushCurrentCharacterToken() {
|
|
27266
|
+
if (this.paused || this.active || !this.currentCharacterToken || this.currentToken || this.state === State.DOCTYPE || this.state === State.BEFORE_DOCTYPE_NAME || !this.preprocessor.willDropParsedChunk()) {
|
|
27267
|
+
return;
|
|
27268
|
+
}
|
|
27269
|
+
const pending = this.preprocessor.droppedBufferSize + this.preprocessor.pos + 1 - this.getCharacterTokenEndOffset();
|
|
27270
|
+
this.preprocessor.advance();
|
|
27271
|
+
this.currentLocation = this.getCurrentLocation(pending);
|
|
27272
|
+
this.preprocessor.retreat(1);
|
|
27273
|
+
this._emitCurrentCharacterToken(this.currentLocation);
|
|
27274
|
+
this._createCharacterToken(TokenType.CHARACTER);
|
|
27275
|
+
this.preprocessor.dropParsedChunk(Math.max(pending - 1, 0));
|
|
27276
|
+
this.entityStartPos = this.preprocessor.pos + 1 - pending;
|
|
27277
|
+
}
|
|
26786
27278
|
_ensureHibernation() {
|
|
26787
27279
|
if (this.preprocessor.endOfChunkHit) {
|
|
26788
27280
|
this.preprocessor.retreat(this.consumedAfterSnapshot);
|
|
@@ -26810,6 +27302,7 @@ class Tokenizer {
|
|
|
26810
27302
|
return false;
|
|
26811
27303
|
}
|
|
26812
27304
|
_createStartTagToken() {
|
|
27305
|
+
this._flushRun("");
|
|
26813
27306
|
this.currentToken = {
|
|
26814
27307
|
type: TokenType.START_TAG,
|
|
26815
27308
|
tagName: "",
|
|
@@ -26821,6 +27314,7 @@ class Tokenizer {
|
|
|
26821
27314
|
};
|
|
26822
27315
|
}
|
|
26823
27316
|
_createEndTagToken() {
|
|
27317
|
+
this._flushRun("");
|
|
26824
27318
|
this.currentToken = {
|
|
26825
27319
|
type: TokenType.END_TAG,
|
|
26826
27320
|
tagName: "",
|
|
@@ -26832,6 +27326,7 @@ class Tokenizer {
|
|
|
26832
27326
|
};
|
|
26833
27327
|
}
|
|
26834
27328
|
_createCommentToken(offset) {
|
|
27329
|
+
this._flushRun("");
|
|
26835
27330
|
this.currentToken = {
|
|
26836
27331
|
type: TokenType.COMMENT,
|
|
26837
27332
|
data: "",
|
|
@@ -26839,6 +27334,7 @@ class Tokenizer {
|
|
|
26839
27334
|
};
|
|
26840
27335
|
}
|
|
26841
27336
|
_createDoctypeToken(initialName) {
|
|
27337
|
+
this._flushRun("");
|
|
26842
27338
|
this.currentToken = {
|
|
26843
27339
|
type: TokenType.DOCTYPE,
|
|
26844
27340
|
name: initialName,
|
|
@@ -26848,42 +27344,108 @@ class Tokenizer {
|
|
|
26848
27344
|
location: this.currentLocation
|
|
26849
27345
|
};
|
|
26850
27346
|
}
|
|
26851
|
-
_createCharacterToken(type
|
|
27347
|
+
_createCharacterToken(type) {
|
|
27348
|
+
if (this.currentLocation) {
|
|
27349
|
+
const start = this.currentLocation.startOffset - this.preprocessor.droppedBufferSize;
|
|
27350
|
+
if (this.preprocessor.html[start] === `
|
|
27351
|
+
` && this.preprocessor.html[start - 1] === "\r") {
|
|
27352
|
+
this.currentLocation.startOffset++;
|
|
27353
|
+
}
|
|
27354
|
+
}
|
|
26852
27355
|
this.currentCharacterToken = {
|
|
26853
27356
|
type,
|
|
26854
|
-
chars,
|
|
27357
|
+
chars: "",
|
|
26855
27358
|
location: this.currentLocation
|
|
26856
27359
|
};
|
|
26857
27360
|
}
|
|
26858
27361
|
_createAttr(attrNameFirstCh) {
|
|
27362
|
+
this._flushRun("");
|
|
26859
27363
|
this.currentAttr = {
|
|
26860
27364
|
name: attrNameFirstCh,
|
|
26861
27365
|
value: ""
|
|
26862
27366
|
};
|
|
26863
|
-
this.
|
|
27367
|
+
this.currentAttrLocation = this.getCurrentLocation(0);
|
|
26864
27368
|
}
|
|
26865
27369
|
_leaveAttrName() {
|
|
26866
27370
|
var _a;
|
|
26867
27371
|
var _b;
|
|
26868
27372
|
const token = this.currentToken;
|
|
26869
|
-
|
|
27373
|
+
const { name } = this.currentAttr;
|
|
27374
|
+
const names = this.currentAttrNames;
|
|
27375
|
+
let duplicate;
|
|
27376
|
+
if (names === null) {
|
|
27377
|
+
duplicate = getTokenAttr(token, name) !== null;
|
|
27378
|
+
if (!duplicate && token.attrs.length === ATTR_NAME_SET_THRESHOLD) {
|
|
27379
|
+
this.currentAttrNames = new Set(token.attrs.map((attr) => attr.name)).add(name);
|
|
27380
|
+
}
|
|
27381
|
+
} else {
|
|
27382
|
+
duplicate = names.has(name);
|
|
27383
|
+
if (!duplicate)
|
|
27384
|
+
names.add(name);
|
|
27385
|
+
}
|
|
27386
|
+
if (duplicate) {
|
|
27387
|
+
this._err(ERR.duplicateAttribute);
|
|
27388
|
+
} else {
|
|
26870
27389
|
token.attrs.push(this.currentAttr);
|
|
26871
|
-
if (token.location && this.
|
|
27390
|
+
if (token.location && this.currentAttrLocation) {
|
|
26872
27391
|
const attrLocations = (_a = (_b = token.location).attrs) !== null && _a !== undefined ? _a : _b.attrs = Object.create(null);
|
|
26873
|
-
attrLocations[this.currentAttr.name] = this.
|
|
27392
|
+
attrLocations[this.currentAttr.name] = this.currentAttrLocation;
|
|
26874
27393
|
this._leaveAttrValue();
|
|
26875
27394
|
}
|
|
26876
|
-
} else {
|
|
26877
|
-
this._err(ERR.duplicateAttribute);
|
|
26878
27395
|
}
|
|
26879
27396
|
}
|
|
26880
27397
|
_leaveAttrValue() {
|
|
26881
|
-
if (this.
|
|
26882
|
-
this.
|
|
26883
|
-
this.
|
|
26884
|
-
this.
|
|
27398
|
+
if (this.currentAttrLocation) {
|
|
27399
|
+
this.currentAttrLocation.endLine = this.preprocessor.line;
|
|
27400
|
+
this.currentAttrLocation.endCol = this.preprocessor.col;
|
|
27401
|
+
this.currentAttrLocation.endOffset = this.preprocessor.offset;
|
|
26885
27402
|
}
|
|
26886
27403
|
}
|
|
27404
|
+
_flushRun(text) {
|
|
27405
|
+
if (this.runEnd === this.runStart && text.length === 0) {
|
|
27406
|
+
return;
|
|
27407
|
+
}
|
|
27408
|
+
const slice = this.preprocessor.html.slice(this.runStart, this.runEnd);
|
|
27409
|
+
const run = (slice.length < 13 ? slice : ` ${slice}`.slice(1)) + text;
|
|
27410
|
+
const token = this.currentToken;
|
|
27411
|
+
this.runStart = this.runEnd;
|
|
27412
|
+
if (token === null) {
|
|
27413
|
+
this.currentCharacterToken.chars += run;
|
|
27414
|
+
} else if (token.type === TokenType.COMMENT) {
|
|
27415
|
+
token.data += run;
|
|
27416
|
+
} else {
|
|
27417
|
+
this.currentAttr.value += run;
|
|
27418
|
+
}
|
|
27419
|
+
}
|
|
27420
|
+
_extendRun(cp) {
|
|
27421
|
+
const { preprocessor } = this;
|
|
27422
|
+
if (cp === CODE_POINTS.LINE_FEED && preprocessor.html.charCodeAt(preprocessor.pos) !== CODE_POINTS.LINE_FEED) {
|
|
27423
|
+
this._flushRun(`
|
|
27424
|
+
`);
|
|
27425
|
+
this.runStart = preprocessor.pos + 1;
|
|
27426
|
+
} else {
|
|
27427
|
+
const start = preprocessor.pos - Number(cp > 65535);
|
|
27428
|
+
if (start !== this.runEnd) {
|
|
27429
|
+
this._flushRun("");
|
|
27430
|
+
this.runStart = start;
|
|
27431
|
+
}
|
|
27432
|
+
}
|
|
27433
|
+
this.runEnd = preprocessor.pos + 1;
|
|
27434
|
+
}
|
|
27435
|
+
_extendRunWith(text, cpOffset) {
|
|
27436
|
+
const { preprocessor } = this;
|
|
27437
|
+
const start = preprocessor.codePointStart + 1 + cpOffset - text.length;
|
|
27438
|
+
if (start >= 0 && preprocessor.html.startsWith(text, start)) {
|
|
27439
|
+
if (start !== this.runEnd) {
|
|
27440
|
+
this._flushRun("");
|
|
27441
|
+
this.runStart = start;
|
|
27442
|
+
}
|
|
27443
|
+
} else {
|
|
27444
|
+
this._flushRun(text);
|
|
27445
|
+
this.runStart = start + text.length;
|
|
27446
|
+
}
|
|
27447
|
+
this.runEnd = start + text.length;
|
|
27448
|
+
}
|
|
26887
27449
|
prepareToken(ct) {
|
|
26888
27450
|
this._emitCurrentCharacterToken(ct.location);
|
|
26889
27451
|
this.currentToken = null;
|
|
@@ -26896,6 +27458,7 @@ class Tokenizer {
|
|
|
26896
27458
|
}
|
|
26897
27459
|
emitCurrentTagToken() {
|
|
26898
27460
|
const ct = this.currentToken;
|
|
27461
|
+
this.currentAttrNames = null;
|
|
26899
27462
|
this.prepareToken(ct);
|
|
26900
27463
|
ct.tagID = getTagID(ct.tagName);
|
|
26901
27464
|
if (ct.type === TokenType.START_TAG) {
|
|
@@ -26923,6 +27486,7 @@ class Tokenizer {
|
|
|
26923
27486
|
this.preprocessor.dropParsedChunk();
|
|
26924
27487
|
}
|
|
26925
27488
|
_emitCurrentCharacterToken(nextLocation) {
|
|
27489
|
+
this._flushRun("");
|
|
26926
27490
|
if (this.currentCharacterToken) {
|
|
26927
27491
|
if (nextLocation && this.currentCharacterToken.location) {
|
|
26928
27492
|
this.currentCharacterToken.location.endLine = nextLocation.startLine;
|
|
@@ -26947,35 +27511,45 @@ class Tokenizer {
|
|
|
26947
27511
|
}
|
|
26948
27512
|
}
|
|
26949
27513
|
_emitEOFToken() {
|
|
27514
|
+
var _a, _b;
|
|
26950
27515
|
const location = this.getCurrentLocation(0);
|
|
26951
27516
|
if (location) {
|
|
26952
27517
|
location.endLine = location.startLine;
|
|
26953
27518
|
location.endCol = location.startCol;
|
|
26954
27519
|
location.endOffset = location.startOffset;
|
|
26955
27520
|
}
|
|
26956
|
-
this._emitCurrentCharacterToken(location);
|
|
27521
|
+
this._emitCurrentCharacterToken((_b = (_a = this.currentToken) === null || _a === undefined ? undefined : _a.location) !== null && _b !== undefined ? _b : location);
|
|
26957
27522
|
this.handler.onEof({ type: TokenType.EOF, location });
|
|
26958
27523
|
this.active = false;
|
|
26959
27524
|
}
|
|
26960
|
-
|
|
27525
|
+
_ensureCharacterToken(type) {
|
|
26961
27526
|
if (this.currentCharacterToken) {
|
|
26962
27527
|
if (this.currentCharacterToken.type === type) {
|
|
26963
|
-
this.currentCharacterToken.chars += ch;
|
|
26964
27528
|
return;
|
|
26965
|
-
} else {
|
|
26966
|
-
this.currentLocation = this.getCurrentLocation(0);
|
|
26967
|
-
this._emitCurrentCharacterToken(this.currentLocation);
|
|
26968
|
-
this.preprocessor.dropParsedChunk();
|
|
26969
27529
|
}
|
|
27530
|
+
this.currentLocation = this.getCurrentLocation(0);
|
|
27531
|
+
this._emitCurrentCharacterToken(this.currentLocation);
|
|
27532
|
+
this.preprocessor.dropParsedChunk();
|
|
26970
27533
|
}
|
|
26971
|
-
this._createCharacterToken(type
|
|
27534
|
+
this._createCharacterToken(type);
|
|
26972
27535
|
}
|
|
26973
27536
|
_emitCodePoint(cp) {
|
|
26974
27537
|
const type = isWhitespace(cp) ? TokenType.WHITESPACE_CHARACTER : cp === CODE_POINTS.NULL ? TokenType.NULL_CHARACTER : TokenType.CHARACTER;
|
|
26975
|
-
this.
|
|
27538
|
+
const token = this.currentCharacterToken;
|
|
27539
|
+
if (token === null || token.type !== type) {
|
|
27540
|
+
this._ensureCharacterToken(type);
|
|
27541
|
+
}
|
|
27542
|
+
this._extendRun(cp);
|
|
26976
27543
|
}
|
|
26977
|
-
_emitChars(ch) {
|
|
26978
|
-
this.
|
|
27544
|
+
_emitChars(ch, cpOffset = 0) {
|
|
27545
|
+
if (this.options.sourceCodeLocationInfo && cpOffset !== 0 && this.currentCharacterToken && this.currentCharacterToken.type !== TokenType.CHARACTER) {
|
|
27546
|
+
this.currentLocation = this.getCurrentLocation(ch.length - 1 - cpOffset);
|
|
27547
|
+
this._emitCurrentCharacterToken(this.currentLocation);
|
|
27548
|
+
this._createCharacterToken(TokenType.CHARACTER);
|
|
27549
|
+
} else {
|
|
27550
|
+
this._ensureCharacterToken(TokenType.CHARACTER);
|
|
27551
|
+
}
|
|
27552
|
+
this._extendRunWith(ch, cpOffset);
|
|
26979
27553
|
}
|
|
26980
27554
|
_startCharacterReference() {
|
|
26981
27555
|
this.returnState = this.state;
|
|
@@ -26988,7 +27562,7 @@ class Tokenizer {
|
|
|
26988
27562
|
}
|
|
26989
27563
|
_flushCodePointConsumedAsCharacterReference(cp) {
|
|
26990
27564
|
if (this._isCharacterReferenceInAttribute()) {
|
|
26991
|
-
this.
|
|
27565
|
+
this._extendRun(cp);
|
|
26992
27566
|
} else {
|
|
26993
27567
|
this._emitCodePoint(cp);
|
|
26994
27568
|
}
|
|
@@ -27420,13 +27994,13 @@ class Tokenizer {
|
|
|
27420
27994
|
}
|
|
27421
27995
|
case CODE_POINTS.EOF: {
|
|
27422
27996
|
this._err(ERR.eofBeforeTagName);
|
|
27423
|
-
this._emitChars("<");
|
|
27997
|
+
this._emitChars("<", -1);
|
|
27424
27998
|
this._emitEOFToken();
|
|
27425
27999
|
break;
|
|
27426
28000
|
}
|
|
27427
28001
|
default: {
|
|
27428
28002
|
this._err(ERR.invalidFirstCharacterOfTagName);
|
|
27429
|
-
this._emitChars("<");
|
|
28003
|
+
this._emitChars("<", -1);
|
|
27430
28004
|
this.state = State.DATA;
|
|
27431
28005
|
this._stateData(cp);
|
|
27432
28006
|
}
|
|
@@ -27446,7 +28020,7 @@ class Tokenizer {
|
|
|
27446
28020
|
}
|
|
27447
28021
|
case CODE_POINTS.EOF: {
|
|
27448
28022
|
this._err(ERR.eofBeforeTagName);
|
|
27449
|
-
this._emitChars("</");
|
|
28023
|
+
this._emitChars("</", -1);
|
|
27450
28024
|
this._emitEOFToken();
|
|
27451
28025
|
break;
|
|
27452
28026
|
}
|
|
@@ -27496,7 +28070,7 @@ class Tokenizer {
|
|
|
27496
28070
|
if (cp === CODE_POINTS.SOLIDUS) {
|
|
27497
28071
|
this.state = State.RCDATA_END_TAG_OPEN;
|
|
27498
28072
|
} else {
|
|
27499
|
-
this._emitChars("<");
|
|
28073
|
+
this._emitChars("<", -1);
|
|
27500
28074
|
this.state = State.RCDATA;
|
|
27501
28075
|
this._stateRcdata(cp);
|
|
27502
28076
|
}
|
|
@@ -27506,7 +28080,7 @@ class Tokenizer {
|
|
|
27506
28080
|
this.state = State.RCDATA_END_TAG_NAME;
|
|
27507
28081
|
this._stateRcdataEndTagName(cp);
|
|
27508
28082
|
} else {
|
|
27509
|
-
this._emitChars("</");
|
|
28083
|
+
this._emitChars("</", -1);
|
|
27510
28084
|
this.state = State.RCDATA;
|
|
27511
28085
|
this._stateRcdata(cp);
|
|
27512
28086
|
}
|
|
@@ -27540,13 +28114,14 @@ class Tokenizer {
|
|
|
27540
28114
|
return false;
|
|
27541
28115
|
}
|
|
27542
28116
|
default: {
|
|
28117
|
+
this.currentToken = null;
|
|
27543
28118
|
return !this._ensureHibernation();
|
|
27544
28119
|
}
|
|
27545
28120
|
}
|
|
27546
28121
|
}
|
|
27547
28122
|
_stateRcdataEndTagName(cp) {
|
|
27548
28123
|
if (this.handleSpecialEndTag(cp)) {
|
|
27549
|
-
this._emitChars("</");
|
|
28124
|
+
this._emitChars("</", -1);
|
|
27550
28125
|
this.state = State.RCDATA;
|
|
27551
28126
|
this._stateRcdata(cp);
|
|
27552
28127
|
}
|
|
@@ -27555,7 +28130,7 @@ class Tokenizer {
|
|
|
27555
28130
|
if (cp === CODE_POINTS.SOLIDUS) {
|
|
27556
28131
|
this.state = State.RAWTEXT_END_TAG_OPEN;
|
|
27557
28132
|
} else {
|
|
27558
|
-
this._emitChars("<");
|
|
28133
|
+
this._emitChars("<", -1);
|
|
27559
28134
|
this.state = State.RAWTEXT;
|
|
27560
28135
|
this._stateRawtext(cp);
|
|
27561
28136
|
}
|
|
@@ -27565,14 +28140,14 @@ class Tokenizer {
|
|
|
27565
28140
|
this.state = State.RAWTEXT_END_TAG_NAME;
|
|
27566
28141
|
this._stateRawtextEndTagName(cp);
|
|
27567
28142
|
} else {
|
|
27568
|
-
this._emitChars("</");
|
|
28143
|
+
this._emitChars("</", -1);
|
|
27569
28144
|
this.state = State.RAWTEXT;
|
|
27570
28145
|
this._stateRawtext(cp);
|
|
27571
28146
|
}
|
|
27572
28147
|
}
|
|
27573
28148
|
_stateRawtextEndTagName(cp) {
|
|
27574
28149
|
if (this.handleSpecialEndTag(cp)) {
|
|
27575
|
-
this._emitChars("</");
|
|
28150
|
+
this._emitChars("</", -1);
|
|
27576
28151
|
this.state = State.RAWTEXT;
|
|
27577
28152
|
this._stateRawtext(cp);
|
|
27578
28153
|
}
|
|
@@ -27589,7 +28164,7 @@ class Tokenizer {
|
|
|
27589
28164
|
break;
|
|
27590
28165
|
}
|
|
27591
28166
|
default: {
|
|
27592
|
-
this._emitChars("<");
|
|
28167
|
+
this._emitChars("<", -1);
|
|
27593
28168
|
this.state = State.SCRIPT_DATA;
|
|
27594
28169
|
this._stateScriptData(cp);
|
|
27595
28170
|
}
|
|
@@ -27600,14 +28175,14 @@ class Tokenizer {
|
|
|
27600
28175
|
this.state = State.SCRIPT_DATA_END_TAG_NAME;
|
|
27601
28176
|
this._stateScriptDataEndTagName(cp);
|
|
27602
28177
|
} else {
|
|
27603
|
-
this._emitChars("</");
|
|
28178
|
+
this._emitChars("</", -1);
|
|
27604
28179
|
this.state = State.SCRIPT_DATA;
|
|
27605
28180
|
this._stateScriptData(cp);
|
|
27606
28181
|
}
|
|
27607
28182
|
}
|
|
27608
28183
|
_stateScriptDataEndTagName(cp) {
|
|
27609
28184
|
if (this.handleSpecialEndTag(cp)) {
|
|
27610
|
-
this._emitChars("</");
|
|
28185
|
+
this._emitChars("</", -1);
|
|
27611
28186
|
this.state = State.SCRIPT_DATA;
|
|
27612
28187
|
this._stateScriptData(cp);
|
|
27613
28188
|
}
|
|
@@ -27720,11 +28295,11 @@ class Tokenizer {
|
|
|
27720
28295
|
if (cp === CODE_POINTS.SOLIDUS) {
|
|
27721
28296
|
this.state = State.SCRIPT_DATA_ESCAPED_END_TAG_OPEN;
|
|
27722
28297
|
} else if (isAsciiLetter(cp)) {
|
|
27723
|
-
this._emitChars("<");
|
|
28298
|
+
this._emitChars("<", -1);
|
|
27724
28299
|
this.state = State.SCRIPT_DATA_DOUBLE_ESCAPE_START;
|
|
27725
28300
|
this._stateScriptDataDoubleEscapeStart(cp);
|
|
27726
28301
|
} else {
|
|
27727
|
-
this._emitChars("<");
|
|
28302
|
+
this._emitChars("<", -1);
|
|
27728
28303
|
this.state = State.SCRIPT_DATA_ESCAPED;
|
|
27729
28304
|
this._stateScriptDataEscaped(cp);
|
|
27730
28305
|
}
|
|
@@ -27734,14 +28309,14 @@ class Tokenizer {
|
|
|
27734
28309
|
this.state = State.SCRIPT_DATA_ESCAPED_END_TAG_NAME;
|
|
27735
28310
|
this._stateScriptDataEscapedEndTagName(cp);
|
|
27736
28311
|
} else {
|
|
27737
|
-
this._emitChars("</");
|
|
28312
|
+
this._emitChars("</", -1);
|
|
27738
28313
|
this.state = State.SCRIPT_DATA_ESCAPED;
|
|
27739
28314
|
this._stateScriptDataEscaped(cp);
|
|
27740
28315
|
}
|
|
27741
28316
|
}
|
|
27742
28317
|
_stateScriptDataEscapedEndTagName(cp) {
|
|
27743
28318
|
if (this.handleSpecialEndTag(cp)) {
|
|
27744
|
-
this._emitChars("</");
|
|
28319
|
+
this._emitChars("</", -1);
|
|
27745
28320
|
this.state = State.SCRIPT_DATA_ESCAPED;
|
|
27746
28321
|
this._stateScriptDataEscaped(cp);
|
|
27747
28322
|
}
|
|
@@ -28005,7 +28580,7 @@ class Tokenizer {
|
|
|
28005
28580
|
}
|
|
28006
28581
|
case CODE_POINTS.NULL: {
|
|
28007
28582
|
this._err(ERR.unexpectedNullCharacter);
|
|
28008
|
-
this.
|
|
28583
|
+
this._extendRunWith(REPLACEMENT_CHARACTER, 0);
|
|
28009
28584
|
break;
|
|
28010
28585
|
}
|
|
28011
28586
|
case CODE_POINTS.EOF: {
|
|
@@ -28014,7 +28589,7 @@ class Tokenizer {
|
|
|
28014
28589
|
break;
|
|
28015
28590
|
}
|
|
28016
28591
|
default: {
|
|
28017
|
-
this.
|
|
28592
|
+
this._extendRun(cp);
|
|
28018
28593
|
}
|
|
28019
28594
|
}
|
|
28020
28595
|
}
|
|
@@ -28030,7 +28605,7 @@ class Tokenizer {
|
|
|
28030
28605
|
}
|
|
28031
28606
|
case CODE_POINTS.NULL: {
|
|
28032
28607
|
this._err(ERR.unexpectedNullCharacter);
|
|
28033
|
-
this.
|
|
28608
|
+
this._extendRunWith(REPLACEMENT_CHARACTER, 0);
|
|
28034
28609
|
break;
|
|
28035
28610
|
}
|
|
28036
28611
|
case CODE_POINTS.EOF: {
|
|
@@ -28039,7 +28614,7 @@ class Tokenizer {
|
|
|
28039
28614
|
break;
|
|
28040
28615
|
}
|
|
28041
28616
|
default: {
|
|
28042
|
-
this.
|
|
28617
|
+
this._extendRun(cp);
|
|
28043
28618
|
}
|
|
28044
28619
|
}
|
|
28045
28620
|
}
|
|
@@ -28065,7 +28640,7 @@ class Tokenizer {
|
|
|
28065
28640
|
}
|
|
28066
28641
|
case CODE_POINTS.NULL: {
|
|
28067
28642
|
this._err(ERR.unexpectedNullCharacter);
|
|
28068
|
-
this.
|
|
28643
|
+
this._extendRunWith(REPLACEMENT_CHARACTER, 0);
|
|
28069
28644
|
break;
|
|
28070
28645
|
}
|
|
28071
28646
|
case CODE_POINTS.QUOTATION_MARK:
|
|
@@ -28074,7 +28649,7 @@ class Tokenizer {
|
|
|
28074
28649
|
case CODE_POINTS.EQUALS_SIGN:
|
|
28075
28650
|
case CODE_POINTS.GRAVE_ACCENT: {
|
|
28076
28651
|
this._err(ERR.unexpectedCharacterInUnquotedAttributeValue);
|
|
28077
|
-
this.
|
|
28652
|
+
this._extendRun(cp);
|
|
28078
28653
|
break;
|
|
28079
28654
|
}
|
|
28080
28655
|
case CODE_POINTS.EOF: {
|
|
@@ -28083,7 +28658,7 @@ class Tokenizer {
|
|
|
28083
28658
|
break;
|
|
28084
28659
|
}
|
|
28085
28660
|
default: {
|
|
28086
|
-
this.
|
|
28661
|
+
this._extendRun(cp);
|
|
28087
28662
|
}
|
|
28088
28663
|
}
|
|
28089
28664
|
}
|
|
@@ -28115,6 +28690,7 @@ class Tokenizer {
|
|
|
28115
28690
|
}
|
|
28116
28691
|
default: {
|
|
28117
28692
|
this._err(ERR.missingWhitespaceBetweenAttributes);
|
|
28693
|
+
this._leaveAttrValue();
|
|
28118
28694
|
this.state = State.BEFORE_ATTRIBUTE_NAME;
|
|
28119
28695
|
this._stateBeforeAttributeName(cp);
|
|
28120
28696
|
}
|
|
@@ -28156,11 +28732,11 @@ class Tokenizer {
|
|
|
28156
28732
|
}
|
|
28157
28733
|
case CODE_POINTS.NULL: {
|
|
28158
28734
|
this._err(ERR.unexpectedNullCharacter);
|
|
28159
|
-
|
|
28735
|
+
this._extendRunWith(REPLACEMENT_CHARACTER, 0);
|
|
28160
28736
|
break;
|
|
28161
28737
|
}
|
|
28162
28738
|
default: {
|
|
28163
|
-
|
|
28739
|
+
this._extendRun(cp);
|
|
28164
28740
|
}
|
|
28165
28741
|
}
|
|
28166
28742
|
}
|
|
@@ -28226,7 +28802,7 @@ class Tokenizer {
|
|
|
28226
28802
|
break;
|
|
28227
28803
|
}
|
|
28228
28804
|
default: {
|
|
28229
|
-
|
|
28805
|
+
this._extendRunWith("-", -1);
|
|
28230
28806
|
this.state = State.COMMENT;
|
|
28231
28807
|
this._stateComment(cp);
|
|
28232
28808
|
}
|
|
@@ -28240,13 +28816,13 @@ class Tokenizer {
|
|
|
28240
28816
|
break;
|
|
28241
28817
|
}
|
|
28242
28818
|
case CODE_POINTS.LESS_THAN_SIGN: {
|
|
28243
|
-
|
|
28819
|
+
this._extendRunWith("<", 0);
|
|
28244
28820
|
this.state = State.COMMENT_LESS_THAN_SIGN;
|
|
28245
28821
|
break;
|
|
28246
28822
|
}
|
|
28247
28823
|
case CODE_POINTS.NULL: {
|
|
28248
28824
|
this._err(ERR.unexpectedNullCharacter);
|
|
28249
|
-
|
|
28825
|
+
this._extendRunWith(REPLACEMENT_CHARACTER, 0);
|
|
28250
28826
|
break;
|
|
28251
28827
|
}
|
|
28252
28828
|
case CODE_POINTS.EOF: {
|
|
@@ -28256,20 +28832,19 @@ class Tokenizer {
|
|
|
28256
28832
|
break;
|
|
28257
28833
|
}
|
|
28258
28834
|
default: {
|
|
28259
|
-
|
|
28835
|
+
this._extendRun(cp);
|
|
28260
28836
|
}
|
|
28261
28837
|
}
|
|
28262
28838
|
}
|
|
28263
28839
|
_stateCommentLessThanSign(cp) {
|
|
28264
|
-
const token = this.currentToken;
|
|
28265
28840
|
switch (cp) {
|
|
28266
28841
|
case CODE_POINTS.EXCLAMATION_MARK: {
|
|
28267
|
-
|
|
28842
|
+
this._extendRunWith("!", 0);
|
|
28268
28843
|
this.state = State.COMMENT_LESS_THAN_SIGN_BANG;
|
|
28269
28844
|
break;
|
|
28270
28845
|
}
|
|
28271
28846
|
case CODE_POINTS.LESS_THAN_SIGN: {
|
|
28272
|
-
|
|
28847
|
+
this._extendRunWith("<", 0);
|
|
28273
28848
|
break;
|
|
28274
28849
|
}
|
|
28275
28850
|
default: {
|
|
@@ -28315,7 +28890,7 @@ class Tokenizer {
|
|
|
28315
28890
|
break;
|
|
28316
28891
|
}
|
|
28317
28892
|
default: {
|
|
28318
|
-
|
|
28893
|
+
this._extendRunWith("-", -1);
|
|
28319
28894
|
this.state = State.COMMENT;
|
|
28320
28895
|
this._stateComment(cp);
|
|
28321
28896
|
}
|
|
@@ -28334,7 +28909,7 @@ class Tokenizer {
|
|
|
28334
28909
|
break;
|
|
28335
28910
|
}
|
|
28336
28911
|
case CODE_POINTS.HYPHEN_MINUS: {
|
|
28337
|
-
|
|
28912
|
+
this._extendRunWith("-", -2);
|
|
28338
28913
|
break;
|
|
28339
28914
|
}
|
|
28340
28915
|
case CODE_POINTS.EOF: {
|
|
@@ -28344,7 +28919,7 @@ class Tokenizer {
|
|
|
28344
28919
|
break;
|
|
28345
28920
|
}
|
|
28346
28921
|
default: {
|
|
28347
|
-
|
|
28922
|
+
this._extendRunWith("--", -1);
|
|
28348
28923
|
this.state = State.COMMENT;
|
|
28349
28924
|
this._stateComment(cp);
|
|
28350
28925
|
}
|
|
@@ -28354,7 +28929,7 @@ class Tokenizer {
|
|
|
28354
28929
|
const token = this.currentToken;
|
|
28355
28930
|
switch (cp) {
|
|
28356
28931
|
case CODE_POINTS.HYPHEN_MINUS: {
|
|
28357
|
-
|
|
28932
|
+
this._extendRunWith("--!", -1);
|
|
28358
28933
|
this.state = State.COMMENT_END_DASH;
|
|
28359
28934
|
break;
|
|
28360
28935
|
}
|
|
@@ -28371,7 +28946,7 @@ class Tokenizer {
|
|
|
28371
28946
|
break;
|
|
28372
28947
|
}
|
|
28373
28948
|
default: {
|
|
28374
|
-
|
|
28949
|
+
this._extendRunWith("--!", -1);
|
|
28375
28950
|
this.state = State.COMMENT;
|
|
28376
28951
|
this._stateComment(cp);
|
|
28377
28952
|
}
|
|
@@ -28959,7 +29534,7 @@ class Tokenizer {
|
|
|
28959
29534
|
if (cp === CODE_POINTS.RIGHT_SQUARE_BRACKET) {
|
|
28960
29535
|
this.state = State.CDATA_SECTION_END;
|
|
28961
29536
|
} else {
|
|
28962
|
-
this._emitChars("]");
|
|
29537
|
+
this._emitChars("]", -1);
|
|
28963
29538
|
this.state = State.CDATA_SECTION;
|
|
28964
29539
|
this._stateCdataSection(cp);
|
|
28965
29540
|
}
|
|
@@ -28971,11 +29546,11 @@ class Tokenizer {
|
|
|
28971
29546
|
break;
|
|
28972
29547
|
}
|
|
28973
29548
|
case CODE_POINTS.RIGHT_SQUARE_BRACKET: {
|
|
28974
|
-
this._emitChars("]");
|
|
29549
|
+
this._emitChars("]", -2);
|
|
28975
29550
|
break;
|
|
28976
29551
|
}
|
|
28977
29552
|
default: {
|
|
28978
|
-
this._emitChars("]]");
|
|
29553
|
+
this._emitChars("]]", -1);
|
|
28979
29554
|
this.state = State.CDATA_SECTION;
|
|
28980
29555
|
this._stateCdataSection(cp);
|
|
28981
29556
|
}
|
|
@@ -28997,13 +29572,13 @@ class Tokenizer {
|
|
|
28997
29572
|
if (length === 0) {
|
|
28998
29573
|
this.preprocessor.pos = this.entityStartPos;
|
|
28999
29574
|
this._flushCodePointConsumedAsCharacterReference(CODE_POINTS.AMPERSAND);
|
|
29000
|
-
this.state = !this._isCharacterReferenceInAttribute() &&
|
|
29575
|
+
this.state = !this._isCharacterReferenceInAttribute() && isAsciiAlphaNumeric(this.preprocessor.peek(1)) ? State.AMBIGUOUS_AMPERSAND : this.returnState;
|
|
29001
29576
|
} else {
|
|
29002
29577
|
this.state = this.returnState;
|
|
29003
29578
|
}
|
|
29004
29579
|
}
|
|
29005
29580
|
_stateAmbiguousAmpersand(cp) {
|
|
29006
|
-
if (
|
|
29581
|
+
if (isAsciiAlphaNumeric(cp)) {
|
|
29007
29582
|
this._flushCodePointConsumedAsCharacterReference(cp);
|
|
29008
29583
|
} else {
|
|
29009
29584
|
if (cp === CODE_POINTS.SEMICOLON) {
|
|
@@ -29014,7 +29589,7 @@ class Tokenizer {
|
|
|
29014
29589
|
}
|
|
29015
29590
|
}
|
|
29016
29591
|
}
|
|
29017
|
-
var State, TokenizerMode;
|
|
29592
|
+
var ATTR_NAME_SET_THRESHOLD = 64, State, TokenizerMode;
|
|
29018
29593
|
var init_tokenizer = __esm(() => {
|
|
29019
29594
|
init_preprocessor();
|
|
29020
29595
|
init_unicode();
|
|
@@ -29108,6 +29683,25 @@ var init_tokenizer = __esm(() => {
|
|
|
29108
29683
|
});
|
|
29109
29684
|
|
|
29110
29685
|
// ../../node_modules/parse5/dist/parser/open-element-stack.js
|
|
29686
|
+
function tagKey(ns, tagID) {
|
|
29687
|
+
if (tagID === TAG_ID.UNKNOWN)
|
|
29688
|
+
return -1;
|
|
29689
|
+
switch (ns) {
|
|
29690
|
+
case NS.HTML: {
|
|
29691
|
+
return tagID;
|
|
29692
|
+
}
|
|
29693
|
+
case NS.SVG: {
|
|
29694
|
+
return SVG_KEYS + tagID;
|
|
29695
|
+
}
|
|
29696
|
+
case NS.MATHML: {
|
|
29697
|
+
return MATHML_KEYS + tagID;
|
|
29698
|
+
}
|
|
29699
|
+
default: {
|
|
29700
|
+
return -1;
|
|
29701
|
+
}
|
|
29702
|
+
}
|
|
29703
|
+
}
|
|
29704
|
+
|
|
29111
29705
|
class OpenElementStack {
|
|
29112
29706
|
get currentTmplContentOrNode() {
|
|
29113
29707
|
return this._isInTemplate() ? this.treeAdapter.getTemplateContent(this.current) : this.current;
|
|
@@ -29118,13 +29712,41 @@ class OpenElementStack {
|
|
|
29118
29712
|
this.items = [];
|
|
29119
29713
|
this.tagIDs = [];
|
|
29120
29714
|
this.stackTop = -1;
|
|
29715
|
+
this.depth = 0;
|
|
29121
29716
|
this.tmplCount = 0;
|
|
29122
29717
|
this.currentTagId = TAG_ID.UNKNOWN;
|
|
29718
|
+
this.indexed = false;
|
|
29719
|
+
this.below = [];
|
|
29720
|
+
this.above = [];
|
|
29721
|
+
this.keys = [];
|
|
29722
|
+
this.keyPrev = [];
|
|
29723
|
+
this.keyNext = [];
|
|
29724
|
+
this.keyTops = new Int32Array(0);
|
|
29725
|
+
this.specials = [];
|
|
29726
|
+
this.listItemBoundaries = [];
|
|
29727
|
+
this.scopeBoundaries = [];
|
|
29728
|
+
this.htmlSlots = [];
|
|
29729
|
+
this.formattingSlots = new Map;
|
|
29123
29730
|
this.current = document2;
|
|
29124
29731
|
}
|
|
29125
29732
|
_indexOf(element) {
|
|
29733
|
+
if (this.indexed) {
|
|
29734
|
+
const idx = this.formattingSlots.get(element);
|
|
29735
|
+
if (idx !== undefined)
|
|
29736
|
+
return idx;
|
|
29737
|
+
if (FORMATTING_TAGS[getTagID(this.treeAdapter.getTagName(element))])
|
|
29738
|
+
return -1;
|
|
29739
|
+
}
|
|
29126
29740
|
return this.items.lastIndexOf(element, this.stackTop);
|
|
29127
29741
|
}
|
|
29742
|
+
slotBelow(idx) {
|
|
29743
|
+
return this.indexed ? this.below[idx] : idx - 1;
|
|
29744
|
+
}
|
|
29745
|
+
slotAbove(idx) {
|
|
29746
|
+
if (this.indexed)
|
|
29747
|
+
return this.above[idx];
|
|
29748
|
+
return idx === this.stackTop ? -1 : idx + 1;
|
|
29749
|
+
}
|
|
29128
29750
|
_isInTemplate() {
|
|
29129
29751
|
return this.currentTagId === TAG_ID.TEMPLATE && this.treeAdapter.getNamespaceURI(this.current) === NS.HTML;
|
|
29130
29752
|
}
|
|
@@ -29132,60 +29754,274 @@ class OpenElementStack {
|
|
|
29132
29754
|
this.current = this.items[this.stackTop];
|
|
29133
29755
|
this.currentTagId = this.tagIDs[this.stackTop];
|
|
29134
29756
|
}
|
|
29757
|
+
_nameKey(ns, tagName, create) {
|
|
29758
|
+
var _a, _b;
|
|
29759
|
+
const name = `${ns} ${tagName}`;
|
|
29760
|
+
let key = (_a = this.nameKeys) === null || _a === undefined ? undefined : _a.get(name);
|
|
29761
|
+
if (key === undefined && create) {
|
|
29762
|
+
(_b = this.nameKeys) !== null && _b !== undefined || (this.nameKeys = new Map);
|
|
29763
|
+
key = NAME_KEYS + this.nameKeys.size;
|
|
29764
|
+
this.nameKeys.set(name, key);
|
|
29765
|
+
if (key === this.keyTops.length) {
|
|
29766
|
+
const keyTops = new Int32Array(2 * key).fill(-1);
|
|
29767
|
+
keyTops.set(this.keyTops);
|
|
29768
|
+
this.keyTops = keyTops;
|
|
29769
|
+
}
|
|
29770
|
+
}
|
|
29771
|
+
return key !== null && key !== undefined ? key : -1;
|
|
29772
|
+
}
|
|
29773
|
+
_indexAll() {
|
|
29774
|
+
this.indexed = true;
|
|
29775
|
+
this.keyTops = new Int32Array(NAME_KEYS).fill(-1);
|
|
29776
|
+
for (let i = 0;i <= this.stackTop; i++)
|
|
29777
|
+
this._index(i, i - 1);
|
|
29778
|
+
}
|
|
29779
|
+
_index(slot, belowIdx) {
|
|
29780
|
+
const element = this.items[slot];
|
|
29781
|
+
const tagID = this.tagIDs[slot];
|
|
29782
|
+
const ns = this.treeAdapter.getNamespaceURI(element);
|
|
29783
|
+
let key = tagKey(ns, tagID);
|
|
29784
|
+
if (key === -1)
|
|
29785
|
+
key = this._nameKey(ns, this.treeAdapter.getTagName(element), true);
|
|
29786
|
+
const keyPrev = this.keyTops[key];
|
|
29787
|
+
this.keys[slot] = key;
|
|
29788
|
+
this.keyPrev[slot] = keyPrev;
|
|
29789
|
+
this.keyNext[slot] = -1;
|
|
29790
|
+
if (keyPrev !== -1)
|
|
29791
|
+
this.keyNext[keyPrev] = slot;
|
|
29792
|
+
this.keyTops[key] = slot;
|
|
29793
|
+
this.above[slot] = -1;
|
|
29794
|
+
this._link(slot, belowIdx, ns === NS.HTML);
|
|
29795
|
+
if (FORMATTING_TAGS[tagID])
|
|
29796
|
+
this.formattingSlots.set(element, slot);
|
|
29797
|
+
}
|
|
29798
|
+
_link(slot, belowIdx, isHtml) {
|
|
29799
|
+
const key = this.keys[slot];
|
|
29800
|
+
const classes = key < NAME_KEYS ? KEY_CLASSES[key] : 0;
|
|
29801
|
+
this.below[slot] = belowIdx;
|
|
29802
|
+
if (belowIdx === -1) {
|
|
29803
|
+
this.specials[slot] = classes & SPECIAL;
|
|
29804
|
+
this.listItemBoundaries[slot] = (classes & LIST_ITEM_BOUNDARY) >> 1;
|
|
29805
|
+
this.scopeBoundaries[slot] = (classes & SCOPE) >> 2;
|
|
29806
|
+
this.htmlSlots[slot] = isHtml ? slot : -1;
|
|
29807
|
+
} else {
|
|
29808
|
+
this.above[belowIdx] = slot;
|
|
29809
|
+
this.specials[slot] = this.specials[belowIdx] + (classes & SPECIAL);
|
|
29810
|
+
this.listItemBoundaries[slot] = this.listItemBoundaries[belowIdx] + ((classes & LIST_ITEM_BOUNDARY) >> 1);
|
|
29811
|
+
this.scopeBoundaries[slot] = this.scopeBoundaries[belowIdx] + ((classes & SCOPE) >> 2);
|
|
29812
|
+
this.htmlSlots[slot] = isHtml ? slot : this.htmlSlots[belowIdx];
|
|
29813
|
+
}
|
|
29814
|
+
}
|
|
29815
|
+
_unindex(slot) {
|
|
29816
|
+
const key = this.keys[slot];
|
|
29817
|
+
const keyPrev = this.keyPrev[slot];
|
|
29818
|
+
const keyNext = this.keyNext[slot];
|
|
29819
|
+
if (keyPrev !== -1)
|
|
29820
|
+
this.keyNext[keyPrev] = keyNext;
|
|
29821
|
+
if (keyNext === -1)
|
|
29822
|
+
this.keyTops[key] = keyPrev;
|
|
29823
|
+
else
|
|
29824
|
+
this.keyPrev[keyNext] = keyPrev;
|
|
29825
|
+
if (FORMATTING_TAGS[this.tagIDs[slot]])
|
|
29826
|
+
this.formattingSlots.delete(this.items[slot]);
|
|
29827
|
+
}
|
|
29828
|
+
_move(from, to) {
|
|
29829
|
+
const element = this.items[from];
|
|
29830
|
+
const key = this.keys[from];
|
|
29831
|
+
const keyPrev = this.keyPrev[from];
|
|
29832
|
+
const keyNext = this.keyNext[from];
|
|
29833
|
+
this.items[to] = element;
|
|
29834
|
+
this.tagIDs[to] = this.tagIDs[from];
|
|
29835
|
+
this.keys[to] = key;
|
|
29836
|
+
this.keyPrev[to] = keyPrev;
|
|
29837
|
+
this.keyNext[to] = keyNext;
|
|
29838
|
+
if (keyPrev !== -1)
|
|
29839
|
+
this.keyNext[keyPrev] = to;
|
|
29840
|
+
if (keyNext === -1)
|
|
29841
|
+
this.keyTops[key] = to;
|
|
29842
|
+
else
|
|
29843
|
+
this.keyPrev[keyNext] = to;
|
|
29844
|
+
if (FORMATTING_TAGS[this.tagIDs[to]])
|
|
29845
|
+
this.formattingSlots.set(element, to);
|
|
29846
|
+
}
|
|
29847
|
+
indexOfTopmost(tagID) {
|
|
29848
|
+
if (this.indexed)
|
|
29849
|
+
return this.keyTops[tagID];
|
|
29850
|
+
for (let i = this.stackTop;i >= 0; i--) {
|
|
29851
|
+
if (this.tagIDs[i] === tagID && this.treeAdapter.getNamespaceURI(this.items[i]) === NS.HTML)
|
|
29852
|
+
return i;
|
|
29853
|
+
}
|
|
29854
|
+
return -1;
|
|
29855
|
+
}
|
|
29856
|
+
indexOfTopmostOf(tagIDs) {
|
|
29857
|
+
if (this.indexed) {
|
|
29858
|
+
let top = -1;
|
|
29859
|
+
for (const tagID of tagIDs) {
|
|
29860
|
+
if (this.keyTops[tagID] > top)
|
|
29861
|
+
top = this.keyTops[tagID];
|
|
29862
|
+
}
|
|
29863
|
+
return top;
|
|
29864
|
+
}
|
|
29865
|
+
for (let i = this.stackTop;i >= 0; i--) {
|
|
29866
|
+
if (tagIDs.includes(this.tagIDs[i]) && this.treeAdapter.getNamespaceURI(this.items[i]) === NS.HTML)
|
|
29867
|
+
return i;
|
|
29868
|
+
}
|
|
29869
|
+
return -1;
|
|
29870
|
+
}
|
|
29871
|
+
indexOfTopmostByName(ns, tagName) {
|
|
29872
|
+
if (this.indexed) {
|
|
29873
|
+
let key = tagKey(ns, getTagID(tagName));
|
|
29874
|
+
if (key === -1)
|
|
29875
|
+
key = this._nameKey(ns, tagName, false);
|
|
29876
|
+
return key === -1 ? -1 : this.keyTops[key];
|
|
29877
|
+
}
|
|
29878
|
+
for (let i = this.stackTop;i >= 0; i--) {
|
|
29879
|
+
const element = this.items[i];
|
|
29880
|
+
if (this.treeAdapter.getTagName(element) === tagName && this.treeAdapter.getNamespaceURI(element) === ns) {
|
|
29881
|
+
return i;
|
|
29882
|
+
}
|
|
29883
|
+
}
|
|
29884
|
+
return -1;
|
|
29885
|
+
}
|
|
29886
|
+
indexOfTopmostHtmlElement() {
|
|
29887
|
+
if (this.indexed)
|
|
29888
|
+
return this.stackTop === -1 ? -1 : this.htmlSlots[this.stackTop];
|
|
29889
|
+
let i = this.stackTop;
|
|
29890
|
+
while (i >= 0 && this.treeAdapter.getNamespaceURI(this.items[i]) !== NS.HTML)
|
|
29891
|
+
i--;
|
|
29892
|
+
return i;
|
|
29893
|
+
}
|
|
29894
|
+
_hasAbove(idx, classes) {
|
|
29895
|
+
for (let i = this.stackTop;i > idx; i--) {
|
|
29896
|
+
const key = tagKey(this.treeAdapter.getNamespaceURI(this.items[i]), this.tagIDs[i]);
|
|
29897
|
+
if (key !== -1 && KEY_CLASSES[key] & classes)
|
|
29898
|
+
return true;
|
|
29899
|
+
}
|
|
29900
|
+
return false;
|
|
29901
|
+
}
|
|
29902
|
+
hasSpecialElementAbove(idx) {
|
|
29903
|
+
return this.indexed ? this.specials[this.stackTop] !== this.specials[idx] : this._hasAbove(idx, SPECIAL);
|
|
29904
|
+
}
|
|
29905
|
+
hasListItemBoundaryAbove(idx) {
|
|
29906
|
+
return this.indexed ? this.listItemBoundaries[this.stackTop] !== this.listItemBoundaries[idx] : this._hasAbove(idx, LIST_ITEM_BOUNDARY);
|
|
29907
|
+
}
|
|
29135
29908
|
push(element, tagID) {
|
|
29909
|
+
const belowIdx = this.stackTop;
|
|
29136
29910
|
this.stackTop++;
|
|
29911
|
+
this.depth++;
|
|
29137
29912
|
this.items[this.stackTop] = element;
|
|
29138
29913
|
this.current = element;
|
|
29139
29914
|
this.tagIDs[this.stackTop] = tagID;
|
|
29140
29915
|
this.currentTagId = tagID;
|
|
29916
|
+
if (this.indexed)
|
|
29917
|
+
this._index(this.stackTop, belowIdx);
|
|
29918
|
+
else if (this.depth === INDEX_DEPTH)
|
|
29919
|
+
this._indexAll();
|
|
29141
29920
|
if (this._isInTemplate()) {
|
|
29142
29921
|
this.tmplCount++;
|
|
29143
29922
|
}
|
|
29144
29923
|
this.handler.onItemPush(element, tagID, true);
|
|
29145
29924
|
}
|
|
29146
|
-
|
|
29147
|
-
const popped = this.current;
|
|
29925
|
+
_popCurrent() {
|
|
29148
29926
|
if (this.tmplCount > 0 && this._isInTemplate()) {
|
|
29149
29927
|
this.tmplCount--;
|
|
29150
29928
|
}
|
|
29151
|
-
this.
|
|
29929
|
+
if (this.indexed) {
|
|
29930
|
+
this._unindex(this.stackTop);
|
|
29931
|
+
this.stackTop = this.below[this.stackTop];
|
|
29932
|
+
if (this.stackTop !== -1)
|
|
29933
|
+
this.above[this.stackTop] = -1;
|
|
29934
|
+
} else {
|
|
29935
|
+
this.stackTop--;
|
|
29936
|
+
}
|
|
29937
|
+
this.depth--;
|
|
29152
29938
|
this._updateCurrentElement();
|
|
29939
|
+
}
|
|
29940
|
+
pop() {
|
|
29941
|
+
const popped = this.current;
|
|
29942
|
+
this._popCurrent();
|
|
29153
29943
|
this.handler.onItemPop(popped, true);
|
|
29154
29944
|
}
|
|
29155
29945
|
replace(oldElement, newElement) {
|
|
29156
29946
|
const idx = this._indexOf(oldElement);
|
|
29157
29947
|
this.items[idx] = newElement;
|
|
29948
|
+
if (this.indexed && FORMATTING_TAGS[this.tagIDs[idx]]) {
|
|
29949
|
+
this.formattingSlots.delete(oldElement);
|
|
29950
|
+
this.formattingSlots.set(newElement, idx);
|
|
29951
|
+
}
|
|
29158
29952
|
if (idx === this.stackTop) {
|
|
29159
29953
|
this.current = newElement;
|
|
29160
29954
|
}
|
|
29161
29955
|
}
|
|
29162
|
-
|
|
29163
|
-
const
|
|
29164
|
-
this.
|
|
29165
|
-
|
|
29166
|
-
|
|
29167
|
-
|
|
29168
|
-
this.
|
|
29956
|
+
replaceFormattingElement(formattingIdx, furthestBlockIdx, element, tagID) {
|
|
29957
|
+
const formattingElement = this.items[formattingIdx];
|
|
29958
|
+
if (!this.indexed) {
|
|
29959
|
+
this.items.splice(formattingIdx, 1);
|
|
29960
|
+
this.tagIDs.splice(formattingIdx, 1);
|
|
29961
|
+
this.handler.onItemPop(formattingElement, false);
|
|
29962
|
+
this.items.splice(furthestBlockIdx, 0, element);
|
|
29963
|
+
this.tagIDs.splice(furthestBlockIdx, 0, tagID);
|
|
29964
|
+
if (furthestBlockIdx === this.stackTop)
|
|
29965
|
+
this._updateCurrentElement();
|
|
29966
|
+
if (this.current && this.currentTagId !== undefined) {
|
|
29967
|
+
this.handler.onItemPush(this.current, this.currentTagId, furthestBlockIdx === this.stackTop);
|
|
29968
|
+
}
|
|
29969
|
+
return;
|
|
29169
29970
|
}
|
|
29971
|
+
const key = this.keys[formattingIdx];
|
|
29972
|
+
const belowIdx = this.below[formattingIdx];
|
|
29973
|
+
const aboveIdx = this.above[furthestBlockIdx];
|
|
29974
|
+
const kept = [];
|
|
29975
|
+
for (let i = this.above[formattingIdx];i !== furthestBlockIdx; i = this.above[i])
|
|
29976
|
+
kept.push(i);
|
|
29977
|
+
const keyNext = this.keyNext[formattingIdx];
|
|
29978
|
+
this._unindex(formattingIdx);
|
|
29979
|
+
this.items[formattingIdx] = undefined;
|
|
29980
|
+
this.handler.onItemPop(formattingElement, false);
|
|
29981
|
+
let free = furthestBlockIdx - 1;
|
|
29982
|
+
while (kept.length > 0 && kept[kept.length - 1] === free) {
|
|
29983
|
+
kept.pop();
|
|
29984
|
+
free--;
|
|
29985
|
+
}
|
|
29986
|
+
for (let i = free + 1;i <= furthestBlockIdx; i++)
|
|
29987
|
+
this._move(i, i - 1);
|
|
29988
|
+
const keyPrev = keyNext === -1 ? this.keyTops[key] : this.keyPrev[keyNext];
|
|
29989
|
+
this.items[furthestBlockIdx] = element;
|
|
29990
|
+
this.tagIDs[furthestBlockIdx] = tagID;
|
|
29991
|
+
this.keys[furthestBlockIdx] = key;
|
|
29992
|
+
this.keyPrev[furthestBlockIdx] = keyPrev;
|
|
29993
|
+
this.keyNext[furthestBlockIdx] = keyNext;
|
|
29994
|
+
if (keyPrev !== -1)
|
|
29995
|
+
this.keyNext[keyPrev] = furthestBlockIdx;
|
|
29996
|
+
if (keyNext === -1)
|
|
29997
|
+
this.keyTops[key] = furthestBlockIdx;
|
|
29998
|
+
else
|
|
29999
|
+
this.keyPrev[keyNext] = furthestBlockIdx;
|
|
30000
|
+
if (FORMATTING_TAGS[tagID])
|
|
30001
|
+
this.formattingSlots.set(element, furthestBlockIdx);
|
|
30002
|
+
let prev = belowIdx;
|
|
30003
|
+
for (const i of kept) {
|
|
30004
|
+
this._link(i, prev, true);
|
|
30005
|
+
prev = i;
|
|
30006
|
+
}
|
|
30007
|
+
for (let i = free;i < furthestBlockIdx; i++) {
|
|
30008
|
+
this._link(i, prev, true);
|
|
30009
|
+
prev = i;
|
|
30010
|
+
}
|
|
30011
|
+
this._link(furthestBlockIdx, prev, true);
|
|
30012
|
+
if (aboveIdx === -1)
|
|
30013
|
+
this._updateCurrentElement();
|
|
29170
30014
|
if (this.current && this.currentTagId !== undefined) {
|
|
29171
|
-
this.handler.onItemPush(this.current, this.currentTagId,
|
|
30015
|
+
this.handler.onItemPush(this.current, this.currentTagId, aboveIdx === -1);
|
|
29172
30016
|
}
|
|
29173
30017
|
}
|
|
29174
30018
|
popUntilTagNamePopped(tagName) {
|
|
29175
|
-
|
|
29176
|
-
do {
|
|
29177
|
-
targetIdx = this.tagIDs.lastIndexOf(tagName, targetIdx - 1);
|
|
29178
|
-
} while (targetIdx > 0 && this.treeAdapter.getNamespaceURI(this.items[targetIdx]) !== NS.HTML);
|
|
29179
|
-
this.shortenToLength(Math.max(targetIdx, 0));
|
|
30019
|
+
this.shortenToLength(Math.max(this.indexOfTopmost(tagName), 0));
|
|
29180
30020
|
}
|
|
29181
30021
|
shortenToLength(idx) {
|
|
29182
30022
|
while (this.stackTop >= idx) {
|
|
29183
30023
|
const popped = this.current;
|
|
29184
|
-
|
|
29185
|
-
this.tmplCount -= 1;
|
|
29186
|
-
}
|
|
29187
|
-
this.stackTop--;
|
|
29188
|
-
this._updateCurrentElement();
|
|
30024
|
+
this._popCurrent();
|
|
29189
30025
|
this.handler.onItemPop(popped, this.stackTop < idx);
|
|
29190
30026
|
}
|
|
29191
30027
|
}
|
|
@@ -29193,54 +30029,64 @@ class OpenElementStack {
|
|
|
29193
30029
|
const idx = this._indexOf(element);
|
|
29194
30030
|
this.shortenToLength(Math.max(idx, 0));
|
|
29195
30031
|
}
|
|
29196
|
-
popUntilPopped(tagNames, targetNS) {
|
|
29197
|
-
const idx = this._indexOfTagNames(tagNames, targetNS);
|
|
29198
|
-
this.shortenToLength(Math.max(idx, 0));
|
|
29199
|
-
}
|
|
29200
30032
|
popUntilNumberedHeaderPopped() {
|
|
29201
|
-
this.
|
|
30033
|
+
this.shortenToLength(Math.max(this.indexOfTopmostOf(NUMBERED_HEADERS2), 0));
|
|
29202
30034
|
}
|
|
29203
30035
|
popUntilTableCellPopped() {
|
|
29204
|
-
this.
|
|
30036
|
+
this.shortenToLength(Math.max(this.indexOfTopmostOf(TABLE_CELLS), 0));
|
|
29205
30037
|
}
|
|
29206
30038
|
popAllUpToHtmlElement() {
|
|
29207
30039
|
this.tmplCount = 0;
|
|
29208
30040
|
this.shortenToLength(1);
|
|
29209
30041
|
}
|
|
29210
|
-
_indexOfTagNames(tagNames, namespace) {
|
|
29211
|
-
for (let i = this.stackTop;i >= 0; i--) {
|
|
29212
|
-
if (tagNames.has(this.tagIDs[i]) && this.treeAdapter.getNamespaceURI(this.items[i]) === namespace) {
|
|
29213
|
-
return i;
|
|
29214
|
-
}
|
|
29215
|
-
}
|
|
29216
|
-
return -1;
|
|
29217
|
-
}
|
|
29218
|
-
clearBackTo(tagNames, targetNS) {
|
|
29219
|
-
const idx = this._indexOfTagNames(tagNames, targetNS);
|
|
29220
|
-
this.shortenToLength(idx + 1);
|
|
29221
|
-
}
|
|
29222
30042
|
clearBackToTableContext() {
|
|
29223
|
-
this.
|
|
30043
|
+
this.shortenToLength(this.indexOfTopmostOf(TABLE_CONTEXT) + 1);
|
|
29224
30044
|
}
|
|
29225
30045
|
clearBackToTableBodyContext() {
|
|
29226
|
-
this.
|
|
30046
|
+
this.shortenToLength(this.indexOfTopmostOf(TABLE_BODY_CONTEXT) + 1);
|
|
29227
30047
|
}
|
|
29228
30048
|
clearBackToTableRowContext() {
|
|
29229
|
-
this.
|
|
30049
|
+
this.shortenToLength(this.indexOfTopmostOf(TABLE_ROW_CONTEXT) + 1);
|
|
29230
30050
|
}
|
|
29231
30051
|
remove(element) {
|
|
29232
30052
|
const idx = this._indexOf(element);
|
|
29233
|
-
if (idx
|
|
29234
|
-
|
|
29235
|
-
|
|
29236
|
-
|
|
29237
|
-
|
|
29238
|
-
|
|
29239
|
-
|
|
29240
|
-
|
|
29241
|
-
|
|
30053
|
+
if (idx !== -1)
|
|
30054
|
+
this.removeAt(idx);
|
|
30055
|
+
}
|
|
30056
|
+
removeAt(idx) {
|
|
30057
|
+
if (idx === this.stackTop) {
|
|
30058
|
+
this.pop();
|
|
30059
|
+
return;
|
|
30060
|
+
}
|
|
30061
|
+
const element = this.items[idx];
|
|
30062
|
+
this.depth--;
|
|
30063
|
+
if (this.indexed) {
|
|
30064
|
+
const classes = this.keys[idx] < NAME_KEYS ? KEY_CLASSES[this.keys[idx]] : 0;
|
|
30065
|
+
const belowIdx = this.below[idx];
|
|
30066
|
+
const aboveIdx = this.above[idx];
|
|
30067
|
+
this._unindex(idx);
|
|
30068
|
+
this.items[idx] = undefined;
|
|
30069
|
+
this.below[aboveIdx] = belowIdx;
|
|
30070
|
+
if (belowIdx !== -1)
|
|
30071
|
+
this.above[belowIdx] = aboveIdx;
|
|
30072
|
+
if (classes !== 0) {
|
|
30073
|
+
for (let i = aboveIdx;i !== -1; i = this.above[i]) {
|
|
30074
|
+
this.specials[i] -= classes & SPECIAL;
|
|
30075
|
+
this.listItemBoundaries[i] -= (classes & LIST_ITEM_BOUNDARY) >> 1;
|
|
30076
|
+
this.scopeBoundaries[i] -= (classes & SCOPE) >> 2;
|
|
30077
|
+
}
|
|
30078
|
+
}
|
|
30079
|
+
const html = belowIdx === -1 ? -1 : this.htmlSlots[belowIdx];
|
|
30080
|
+
for (let i = aboveIdx;i !== -1 && this.htmlSlots[i] === idx; i = this.above[i]) {
|
|
30081
|
+
this.htmlSlots[i] = html;
|
|
29242
30082
|
}
|
|
30083
|
+
} else {
|
|
30084
|
+
this.items.splice(idx, 1);
|
|
30085
|
+
this.tagIDs.splice(idx, 1);
|
|
30086
|
+
this.stackTop--;
|
|
30087
|
+
this._updateCurrentElement();
|
|
29243
30088
|
}
|
|
30089
|
+
this.handler.onItemPop(element, false);
|
|
29244
30090
|
}
|
|
29245
30091
|
tryPeekProperlyNestedBodyElement() {
|
|
29246
30092
|
return this.stackTop >= 1 && this.tagIDs[1] === TAG_ID.BODY ? this.items[1] : null;
|
|
@@ -29249,109 +30095,66 @@ class OpenElementStack {
|
|
|
29249
30095
|
return this._indexOf(element) > -1;
|
|
29250
30096
|
}
|
|
29251
30097
|
getCommonAncestor(element) {
|
|
29252
|
-
const
|
|
29253
|
-
|
|
30098
|
+
const idx = this._indexOf(element);
|
|
30099
|
+
const belowIdx = idx === -1 ? -1 : this.slotBelow(idx);
|
|
30100
|
+
return belowIdx === -1 ? null : this.items[belowIdx];
|
|
29254
30101
|
}
|
|
29255
30102
|
isRootHtmlElementCurrent() {
|
|
29256
30103
|
return this.stackTop === 0 && this.tagIDs[0] === TAG_ID.HTML;
|
|
29257
30104
|
}
|
|
29258
|
-
|
|
29259
|
-
|
|
29260
|
-
|
|
29261
|
-
|
|
29262
|
-
|
|
29263
|
-
|
|
29264
|
-
|
|
29265
|
-
|
|
29266
|
-
|
|
29267
|
-
|
|
29268
|
-
|
|
29269
|
-
|
|
29270
|
-
|
|
29271
|
-
|
|
29272
|
-
break;
|
|
29273
|
-
}
|
|
29274
|
-
case NS.MATHML: {
|
|
29275
|
-
if (SCOPING_ELEMENTS_MATHML.has(tn))
|
|
29276
|
-
return false;
|
|
29277
|
-
break;
|
|
29278
|
-
}
|
|
30105
|
+
_isInScope(target, scope) {
|
|
30106
|
+
let boundary = -1;
|
|
30107
|
+
switch (scope) {
|
|
30108
|
+
case LIST_ITEM_SCOPE: {
|
|
30109
|
+
boundary = Math.max(this.keyTops[TAG_ID.OL], this.keyTops[TAG_ID.UL]);
|
|
30110
|
+
break;
|
|
30111
|
+
}
|
|
30112
|
+
case BUTTON_SCOPE: {
|
|
30113
|
+
boundary = this.keyTops[TAG_ID.BUTTON];
|
|
30114
|
+
break;
|
|
30115
|
+
}
|
|
30116
|
+
case TABLE_SCOPE: {
|
|
30117
|
+
boundary = Math.max(this.keyTops[TAG_ID.TABLE], this.keyTops[TAG_ID.HTML]);
|
|
30118
|
+
return target === -1 ? boundary === -1 : target >= boundary;
|
|
29279
30119
|
}
|
|
30120
|
+
default:
|
|
30121
|
+
}
|
|
30122
|
+
return target === -1 ? boundary === -1 && (this.stackTop === -1 || this.scopeBoundaries[this.stackTop] === 0) : target >= boundary && this.scopeBoundaries[this.stackTop] === this.scopeBoundaries[target];
|
|
30123
|
+
}
|
|
30124
|
+
_scanScope(tagID, tagIDs, scope, element) {
|
|
30125
|
+
for (let i = this.stackTop;i >= 0; i--) {
|
|
30126
|
+
const key = tagKey(this.treeAdapter.getNamespaceURI(this.items[i]), this.tagIDs[i]);
|
|
30127
|
+
if (key === -1)
|
|
30128
|
+
continue;
|
|
30129
|
+
if ((tagIDs ? tagIDs.includes(key) : key === tagID) && (!element || this.items[i] === element))
|
|
30130
|
+
return true;
|
|
30131
|
+
if (KEY_CLASSES[key] & scope)
|
|
30132
|
+
return false;
|
|
29280
30133
|
}
|
|
29281
30134
|
return true;
|
|
29282
30135
|
}
|
|
29283
|
-
hasInScope(tagName) {
|
|
29284
|
-
|
|
30136
|
+
hasInScope(tagName, element) {
|
|
30137
|
+
if (!this.indexed)
|
|
30138
|
+
return this._scanScope(tagName, null, SCOPE, element);
|
|
30139
|
+
return this._isInScope(element ? this._indexOf(element) : this.keyTops[tagName], SCOPE);
|
|
29285
30140
|
}
|
|
29286
30141
|
hasInListItemScope(tagName) {
|
|
29287
|
-
return this.
|
|
30142
|
+
return this.indexed ? this._isInScope(this.keyTops[tagName], LIST_ITEM_SCOPE) : this._scanScope(tagName, null, LIST_ITEM_SCOPE);
|
|
29288
30143
|
}
|
|
29289
30144
|
hasInButtonScope(tagName) {
|
|
29290
|
-
return this.
|
|
30145
|
+
return this.indexed ? this._isInScope(this.keyTops[tagName], BUTTON_SCOPE) : this._scanScope(tagName, null, BUTTON_SCOPE);
|
|
29291
30146
|
}
|
|
29292
30147
|
hasNumberedHeaderInScope() {
|
|
29293
|
-
|
|
29294
|
-
const tn = this.tagIDs[i];
|
|
29295
|
-
switch (this.treeAdapter.getNamespaceURI(this.items[i])) {
|
|
29296
|
-
case NS.HTML: {
|
|
29297
|
-
if (NUMBERED_HEADERS.has(tn))
|
|
29298
|
-
return true;
|
|
29299
|
-
if (SCOPING_ELEMENTS_HTML.has(tn))
|
|
29300
|
-
return false;
|
|
29301
|
-
break;
|
|
29302
|
-
}
|
|
29303
|
-
case NS.SVG: {
|
|
29304
|
-
if (SCOPING_ELEMENTS_SVG.has(tn))
|
|
29305
|
-
return false;
|
|
29306
|
-
break;
|
|
29307
|
-
}
|
|
29308
|
-
case NS.MATHML: {
|
|
29309
|
-
if (SCOPING_ELEMENTS_MATHML.has(tn))
|
|
29310
|
-
return false;
|
|
29311
|
-
break;
|
|
29312
|
-
}
|
|
29313
|
-
}
|
|
29314
|
-
}
|
|
29315
|
-
return true;
|
|
30148
|
+
return this.indexed ? this._isInScope(this.indexOfTopmostOf(NUMBERED_HEADERS2), SCOPE) : this._scanScope(TAG_ID.UNKNOWN, NUMBERED_HEADERS2, SCOPE);
|
|
29316
30149
|
}
|
|
29317
30150
|
hasInTableScope(tagName) {
|
|
29318
|
-
|
|
29319
|
-
if (this.treeAdapter.getNamespaceURI(this.items[i]) !== NS.HTML) {
|
|
29320
|
-
continue;
|
|
29321
|
-
}
|
|
29322
|
-
switch (this.tagIDs[i]) {
|
|
29323
|
-
case tagName: {
|
|
29324
|
-
return true;
|
|
29325
|
-
}
|
|
29326
|
-
case TAG_ID.TABLE:
|
|
29327
|
-
case TAG_ID.HTML: {
|
|
29328
|
-
return false;
|
|
29329
|
-
}
|
|
29330
|
-
}
|
|
29331
|
-
}
|
|
29332
|
-
return true;
|
|
30151
|
+
return this.indexed ? this._isInScope(this.keyTops[tagName], TABLE_SCOPE) : this._scanScope(tagName, null, TABLE_SCOPE);
|
|
29333
30152
|
}
|
|
29334
30153
|
hasTableBodyContextInTableScope() {
|
|
29335
|
-
|
|
29336
|
-
if (this.treeAdapter.getNamespaceURI(this.items[i]) !== NS.HTML) {
|
|
29337
|
-
continue;
|
|
29338
|
-
}
|
|
29339
|
-
switch (this.tagIDs[i]) {
|
|
29340
|
-
case TAG_ID.TBODY:
|
|
29341
|
-
case TAG_ID.THEAD:
|
|
29342
|
-
case TAG_ID.TFOOT: {
|
|
29343
|
-
return true;
|
|
29344
|
-
}
|
|
29345
|
-
case TAG_ID.TABLE:
|
|
29346
|
-
case TAG_ID.HTML: {
|
|
29347
|
-
return false;
|
|
29348
|
-
}
|
|
29349
|
-
}
|
|
29350
|
-
}
|
|
29351
|
-
return true;
|
|
30154
|
+
return this.indexed ? this._isInScope(this.indexOfTopmostOf(TABLE_BODIES), TABLE_SCOPE) : this._scanScope(TAG_ID.UNKNOWN, TABLE_BODIES, TABLE_SCOPE);
|
|
29352
30155
|
}
|
|
29353
30156
|
hasInSelectScope(tagName) {
|
|
29354
|
-
for (let i = this.stackTop;i >= 0; i
|
|
30157
|
+
for (let i = this.stackTop;i >= 0; i = this.slotBelow(i)) {
|
|
29355
30158
|
if (this.treeAdapter.getNamespaceURI(this.items[i]) !== NS.HTML) {
|
|
29356
30159
|
continue;
|
|
29357
30160
|
}
|
|
@@ -29371,22 +30174,22 @@ class OpenElementStack {
|
|
|
29371
30174
|
return true;
|
|
29372
30175
|
}
|
|
29373
30176
|
generateImpliedEndTags() {
|
|
29374
|
-
while (this.currentTagId !== undefined && IMPLICIT_END_TAG_REQUIRED.has(this.currentTagId)) {
|
|
30177
|
+
while (this.currentTagId !== undefined && IMPLICIT_END_TAG_REQUIRED.has(this.currentTagId) && this.treeAdapter.getNamespaceURI(this.current) === NS.HTML) {
|
|
29375
30178
|
this.pop();
|
|
29376
30179
|
}
|
|
29377
30180
|
}
|
|
29378
30181
|
generateImpliedEndTagsThoroughly() {
|
|
29379
|
-
while (this.currentTagId !== undefined && IMPLICIT_END_TAG_REQUIRED_THOROUGHLY.has(this.currentTagId)) {
|
|
30182
|
+
while (this.currentTagId !== undefined && IMPLICIT_END_TAG_REQUIRED_THOROUGHLY.has(this.currentTagId) && this.treeAdapter.getNamespaceURI(this.current) === NS.HTML) {
|
|
29380
30183
|
this.pop();
|
|
29381
30184
|
}
|
|
29382
30185
|
}
|
|
29383
30186
|
generateImpliedEndTagsWithExclusion(exclusionId) {
|
|
29384
|
-
while (this.currentTagId !== undefined && this.currentTagId !== exclusionId && IMPLICIT_END_TAG_REQUIRED_THOROUGHLY.has(this.currentTagId)) {
|
|
30187
|
+
while (this.currentTagId !== undefined && this.currentTagId !== exclusionId && IMPLICIT_END_TAG_REQUIRED_THOROUGHLY.has(this.currentTagId) && this.treeAdapter.getNamespaceURI(this.current) === NS.HTML) {
|
|
29385
30188
|
this.pop();
|
|
29386
30189
|
}
|
|
29387
30190
|
}
|
|
29388
30191
|
}
|
|
29389
|
-
var IMPLICIT_END_TAG_REQUIRED, IMPLICIT_END_TAG_REQUIRED_THOROUGHLY,
|
|
30192
|
+
var IMPLICIT_END_TAG_REQUIRED, IMPLICIT_END_TAG_REQUIRED_THOROUGHLY, INDEX_DEPTH = 64, SVG_KEYS = 256, MATHML_KEYS = 512, NAME_KEYS = 768, NUMBERED_HEADERS2, TABLE_BODIES, TABLE_ROW_CONTEXT, TABLE_BODY_CONTEXT, TABLE_CONTEXT, TABLE_CELLS, SPECIAL = 1, LIST_ITEM_BOUNDARY = 2, SCOPE = 4, LIST_ITEM_SCOPE = 8, BUTTON_SCOPE = 16, TABLE_SCOPE = 32, KEY_CLASSES, FORMATTING_TAGS;
|
|
29390
30193
|
var init_open_element_stack = __esm(() => {
|
|
29391
30194
|
init_html3();
|
|
29392
30195
|
IMPLICIT_END_TAG_REQUIRED = new Set([TAG_ID.DD, TAG_ID.DT, TAG_ID.LI, TAG_ID.OPTGROUP, TAG_ID.OPTION, TAG_ID.P, TAG_ID.RB, TAG_ID.RP, TAG_ID.RT, TAG_ID.RTC]);
|
|
@@ -29401,7 +30204,23 @@ var init_open_element_stack = __esm(() => {
|
|
|
29401
30204
|
TAG_ID.THEAD,
|
|
29402
30205
|
TAG_ID.TR
|
|
29403
30206
|
]);
|
|
29404
|
-
|
|
30207
|
+
NUMBERED_HEADERS2 = [TAG_ID.H1, TAG_ID.H2, TAG_ID.H3, TAG_ID.H4, TAG_ID.H5, TAG_ID.H6];
|
|
30208
|
+
TABLE_BODIES = [TAG_ID.TBODY, TAG_ID.TFOOT, TAG_ID.THEAD];
|
|
30209
|
+
TABLE_ROW_CONTEXT = [TAG_ID.TR, TAG_ID.TEMPLATE, TAG_ID.HTML];
|
|
30210
|
+
TABLE_BODY_CONTEXT = [...TABLE_BODIES, TAG_ID.TEMPLATE, TAG_ID.HTML];
|
|
30211
|
+
TABLE_CONTEXT = [TAG_ID.TABLE, TAG_ID.TEMPLATE, TAG_ID.HTML];
|
|
30212
|
+
TABLE_CELLS = [TAG_ID.TD, TAG_ID.TH];
|
|
30213
|
+
KEY_CLASSES = new Uint8Array(NAME_KEYS);
|
|
30214
|
+
for (const [ns, offset] of [
|
|
30215
|
+
[NS.HTML, 0],
|
|
30216
|
+
[NS.SVG, SVG_KEYS],
|
|
30217
|
+
[NS.MATHML, MATHML_KEYS]
|
|
30218
|
+
]) {
|
|
30219
|
+
for (const tn of SPECIAL_ELEMENTS[ns]) {
|
|
30220
|
+
KEY_CLASSES[offset + tn] = ns === NS.HTML && (tn === TAG_ID.ADDRESS || tn === TAG_ID.DIV || tn === TAG_ID.P) ? SPECIAL : SPECIAL | LIST_ITEM_BOUNDARY;
|
|
30221
|
+
}
|
|
30222
|
+
}
|
|
30223
|
+
for (const key of [
|
|
29405
30224
|
TAG_ID.APPLET,
|
|
29406
30225
|
TAG_ID.CAPTION,
|
|
29407
30226
|
TAG_ID.HTML,
|
|
@@ -29410,118 +30229,207 @@ var init_open_element_stack = __esm(() => {
|
|
|
29410
30229
|
TAG_ID.TABLE,
|
|
29411
30230
|
TAG_ID.TD,
|
|
29412
30231
|
TAG_ID.TEMPLATE,
|
|
29413
|
-
TAG_ID.TH
|
|
29414
|
-
|
|
29415
|
-
|
|
29416
|
-
|
|
29417
|
-
|
|
29418
|
-
|
|
29419
|
-
|
|
29420
|
-
|
|
29421
|
-
|
|
29422
|
-
|
|
30232
|
+
TAG_ID.TH,
|
|
30233
|
+
SVG_KEYS + TAG_ID.DESC,
|
|
30234
|
+
SVG_KEYS + TAG_ID.FOREIGN_OBJECT,
|
|
30235
|
+
SVG_KEYS + TAG_ID.TITLE,
|
|
30236
|
+
MATHML_KEYS + TAG_ID.ANNOTATION_XML,
|
|
30237
|
+
MATHML_KEYS + TAG_ID.MI,
|
|
30238
|
+
MATHML_KEYS + TAG_ID.MN,
|
|
30239
|
+
MATHML_KEYS + TAG_ID.MO,
|
|
30240
|
+
MATHML_KEYS + TAG_ID.MS,
|
|
30241
|
+
MATHML_KEYS + TAG_ID.MTEXT
|
|
30242
|
+
]) {
|
|
30243
|
+
KEY_CLASSES[key] |= SCOPE | LIST_ITEM_SCOPE | BUTTON_SCOPE;
|
|
30244
|
+
}
|
|
30245
|
+
KEY_CLASSES[TAG_ID.OL] |= LIST_ITEM_SCOPE;
|
|
30246
|
+
KEY_CLASSES[TAG_ID.UL] |= LIST_ITEM_SCOPE;
|
|
30247
|
+
KEY_CLASSES[TAG_ID.BUTTON] |= BUTTON_SCOPE;
|
|
30248
|
+
KEY_CLASSES[TAG_ID.TABLE] |= TABLE_SCOPE;
|
|
30249
|
+
KEY_CLASSES[TAG_ID.HTML] |= TABLE_SCOPE;
|
|
30250
|
+
FORMATTING_TAGS = new Uint8Array(NAME_KEYS);
|
|
30251
|
+
for (const tn of [TAG_ID.A, TAG_ID.B, TAG_ID.BIG, TAG_ID.CODE, TAG_ID.EM, TAG_ID.FONT, TAG_ID.I, TAG_ID.NOBR, TAG_ID.S, TAG_ID.SMALL, TAG_ID.STRIKE, TAG_ID.STRONG, TAG_ID.TT, TAG_ID.U]) {
|
|
30252
|
+
FORMATTING_TAGS[tn] = 1;
|
|
30253
|
+
}
|
|
29423
30254
|
});
|
|
29424
30255
|
|
|
29425
30256
|
// ../../node_modules/parse5/dist/parser/formatting-element-list.js
|
|
29426
30257
|
class FormattingElementList {
|
|
29427
|
-
constructor(
|
|
29428
|
-
this.
|
|
29429
|
-
this.entries = [];
|
|
30258
|
+
constructor() {
|
|
30259
|
+
this.newest = null;
|
|
29430
30260
|
this.bookmark = null;
|
|
30261
|
+
this.index = null;
|
|
30262
|
+
this.elementEntries = new Map;
|
|
29431
30263
|
}
|
|
29432
|
-
|
|
29433
|
-
const
|
|
29434
|
-
const
|
|
29435
|
-
|
|
29436
|
-
|
|
29437
|
-
|
|
29438
|
-
|
|
29439
|
-
|
|
29440
|
-
|
|
29441
|
-
|
|
29442
|
-
|
|
29443
|
-
|
|
29444
|
-
|
|
29445
|
-
|
|
29446
|
-
|
|
29447
|
-
|
|
29448
|
-
|
|
30264
|
+
_insertElementEntry(element, token, older) {
|
|
30265
|
+
const newer = older === null ? null : older.newer;
|
|
30266
|
+
const entry = {
|
|
30267
|
+
type: EntryType.Element,
|
|
30268
|
+
element,
|
|
30269
|
+
token,
|
|
30270
|
+
older,
|
|
30271
|
+
newer,
|
|
30272
|
+
ark: null,
|
|
30273
|
+
olderSameTag: null,
|
|
30274
|
+
newerSameTag: null
|
|
30275
|
+
};
|
|
30276
|
+
if (newer === null) {
|
|
30277
|
+
this.newest = entry;
|
|
30278
|
+
} else {
|
|
30279
|
+
newer.older = entry;
|
|
30280
|
+
}
|
|
30281
|
+
if (older !== null) {
|
|
30282
|
+
older.newer = entry;
|
|
29449
30283
|
}
|
|
29450
|
-
return
|
|
30284
|
+
return this.index === null ? null : this._addToIndex(this.index, entry);
|
|
29451
30285
|
}
|
|
29452
|
-
|
|
29453
|
-
|
|
29454
|
-
|
|
29455
|
-
|
|
29456
|
-
|
|
29457
|
-
|
|
29458
|
-
|
|
29459
|
-
|
|
29460
|
-
|
|
29461
|
-
|
|
29462
|
-
|
|
29463
|
-
|
|
29464
|
-
|
|
29465
|
-
|
|
29466
|
-
|
|
29467
|
-
}
|
|
29468
|
-
}
|
|
30286
|
+
_addToIndex(index, entry) {
|
|
30287
|
+
const { tagName, attrs } = entry.token;
|
|
30288
|
+
const key = tagName + attrs.map(({ name, value }) => `\x00${name}\x00${value}`).sort().join("");
|
|
30289
|
+
let ark = index.arks.get(key);
|
|
30290
|
+
if (ark === undefined) {
|
|
30291
|
+
ark = { entries: [], key };
|
|
30292
|
+
index.arks.set(key, ark);
|
|
30293
|
+
}
|
|
30294
|
+
ark.entries.push(entry);
|
|
30295
|
+
entry.ark = ark;
|
|
30296
|
+
this.elementEntries.set(entry.element, entry);
|
|
30297
|
+
let head = index.tagNames.get(tagName);
|
|
30298
|
+
if (head === undefined) {
|
|
30299
|
+
head = { olderSameTag: null };
|
|
30300
|
+
index.tagNames.set(tagName, head);
|
|
29469
30301
|
}
|
|
30302
|
+
entry.olderSameTag = head.olderSameTag;
|
|
30303
|
+
entry.newerSameTag = head;
|
|
30304
|
+
if (head.olderSameTag !== null) {
|
|
30305
|
+
head.olderSameTag.newerSameTag = entry;
|
|
30306
|
+
}
|
|
30307
|
+
head.olderSameTag = entry;
|
|
30308
|
+
return ark;
|
|
29470
30309
|
}
|
|
29471
30310
|
insertMarker() {
|
|
29472
|
-
this.
|
|
30311
|
+
if (this.index === null) {
|
|
30312
|
+
for (let entry = this.newest;entry !== null && entry.type === EntryType.Element; entry = entry.older) {
|
|
30313
|
+
this.elementEntries.set(entry.element, entry);
|
|
30314
|
+
}
|
|
30315
|
+
}
|
|
30316
|
+
const marker = {
|
|
30317
|
+
type: EntryType.Marker,
|
|
30318
|
+
older: this.newest,
|
|
30319
|
+
newer: null,
|
|
30320
|
+
outerIndex: this.index
|
|
30321
|
+
};
|
|
30322
|
+
if (this.newest !== null) {
|
|
30323
|
+
this.newest.newer = marker;
|
|
30324
|
+
}
|
|
30325
|
+
this.newest = marker;
|
|
30326
|
+
this.index = null;
|
|
29473
30327
|
}
|
|
29474
30328
|
pushElement(element, token) {
|
|
29475
|
-
this.
|
|
29476
|
-
|
|
29477
|
-
|
|
29478
|
-
|
|
29479
|
-
|
|
29480
|
-
|
|
30329
|
+
if (this.index === null) {
|
|
30330
|
+
let oldest = null;
|
|
30331
|
+
let count = 0;
|
|
30332
|
+
for (let entry = this.newest;entry !== null && entry.type === EntryType.Element; entry = entry.older) {
|
|
30333
|
+
oldest = entry;
|
|
30334
|
+
count++;
|
|
30335
|
+
}
|
|
30336
|
+
if (count >= NOAH_ARK_CAPACITY) {
|
|
30337
|
+
this.index = { arks: new Map, tagNames: new Map };
|
|
30338
|
+
for (let entry = oldest;entry !== null && entry.type === EntryType.Element; entry = entry.newer) {
|
|
30339
|
+
this._addToIndex(this.index, entry);
|
|
30340
|
+
}
|
|
30341
|
+
}
|
|
30342
|
+
}
|
|
30343
|
+
const ark = this._insertElementEntry(element, token, this.newest);
|
|
30344
|
+
if (ark !== null && ark.entries.length > NOAH_ARK_CAPACITY) {
|
|
30345
|
+
this.removeEntry(ark.entries[0]);
|
|
30346
|
+
}
|
|
29481
30347
|
}
|
|
29482
30348
|
insertElementAfterBookmark(element, token) {
|
|
29483
|
-
const
|
|
29484
|
-
this.
|
|
29485
|
-
|
|
29486
|
-
element,
|
|
29487
|
-
token
|
|
29488
|
-
});
|
|
30349
|
+
const { bookmark } = this;
|
|
30350
|
+
this.bookmark = null;
|
|
30351
|
+
this._insertElementEntry(element, token, bookmark);
|
|
29489
30352
|
}
|
|
29490
30353
|
removeEntry(entry) {
|
|
29491
|
-
|
|
29492
|
-
if (
|
|
29493
|
-
|
|
30354
|
+
var _a;
|
|
30355
|
+
if (entry.newer === null ? this.newest !== entry : entry.newer.older !== entry) {
|
|
30356
|
+
return;
|
|
30357
|
+
}
|
|
30358
|
+
this.elementEntries.delete(entry.element);
|
|
30359
|
+
if (entry.newer === null) {
|
|
30360
|
+
this.newest = entry.older;
|
|
30361
|
+
} else {
|
|
30362
|
+
entry.newer.older = entry.older;
|
|
29494
30363
|
}
|
|
30364
|
+
if (entry.older !== null) {
|
|
30365
|
+
entry.older.newer = entry.newer;
|
|
30366
|
+
}
|
|
30367
|
+
if (entry.ark !== null) {
|
|
30368
|
+
const { entries, key } = entry.ark;
|
|
30369
|
+
entries.splice(entries.indexOf(entry), 1);
|
|
30370
|
+
if (entries.length === 0)
|
|
30371
|
+
(_a = this.index) === null || _a === undefined || _a.arks.delete(key);
|
|
30372
|
+
}
|
|
30373
|
+
if (entry.newerSameTag !== null) {
|
|
30374
|
+
entry.newerSameTag.olderSameTag = entry.olderSameTag;
|
|
30375
|
+
if (entry.olderSameTag !== null) {
|
|
30376
|
+
entry.olderSameTag.newerSameTag = entry.newerSameTag;
|
|
30377
|
+
}
|
|
30378
|
+
}
|
|
30379
|
+
}
|
|
30380
|
+
replaceElement(entry, element) {
|
|
30381
|
+
if (this.elementEntries.delete(entry.element)) {
|
|
30382
|
+
this.elementEntries.set(element, entry);
|
|
30383
|
+
}
|
|
30384
|
+
entry.element = element;
|
|
29495
30385
|
}
|
|
29496
30386
|
clearToLastMarker() {
|
|
29497
|
-
|
|
29498
|
-
|
|
29499
|
-
this.
|
|
29500
|
-
}
|
|
29501
|
-
|
|
30387
|
+
let marker = this.newest;
|
|
30388
|
+
for (;marker !== null && marker.type === EntryType.Element; marker = marker.older) {
|
|
30389
|
+
this.elementEntries.delete(marker.element);
|
|
30390
|
+
}
|
|
30391
|
+
this.newest = marker === null ? null : marker.older;
|
|
30392
|
+
this.index = marker === null ? null : marker.outerIndex;
|
|
30393
|
+
if (this.newest !== null) {
|
|
30394
|
+
this.newest.newer = null;
|
|
29502
30395
|
}
|
|
29503
30396
|
}
|
|
29504
30397
|
getElementEntryInScopeWithTagName(tagName) {
|
|
29505
|
-
|
|
29506
|
-
|
|
30398
|
+
var _a, _b;
|
|
30399
|
+
if (this.index !== null) {
|
|
30400
|
+
return (_b = (_a = this.index.tagNames.get(tagName)) === null || _a === undefined ? undefined : _a.olderSameTag) !== null && _b !== undefined ? _b : null;
|
|
30401
|
+
}
|
|
30402
|
+
for (let entry = this.newest;entry !== null && entry.type === EntryType.Element; entry = entry.older) {
|
|
30403
|
+
if (entry.token.tagName === tagName) {
|
|
30404
|
+
return entry;
|
|
30405
|
+
}
|
|
30406
|
+
}
|
|
30407
|
+
return null;
|
|
29507
30408
|
}
|
|
29508
30409
|
getElementEntry(element) {
|
|
29509
|
-
|
|
30410
|
+
if (this.index === null) {
|
|
30411
|
+
for (let entry = this.newest;entry !== null && entry.type === EntryType.Element; entry = entry.older) {
|
|
30412
|
+
if (entry.element === element) {
|
|
30413
|
+
return entry;
|
|
30414
|
+
}
|
|
30415
|
+
}
|
|
30416
|
+
}
|
|
30417
|
+
return this.elementEntries.get(element);
|
|
29510
30418
|
}
|
|
29511
30419
|
}
|
|
29512
|
-
var NOAH_ARK_CAPACITY = 3, EntryType
|
|
30420
|
+
var NOAH_ARK_CAPACITY = 3, EntryType;
|
|
29513
30421
|
var init_formatting_element_list = __esm(() => {
|
|
29514
30422
|
(function(EntryType) {
|
|
29515
30423
|
EntryType[EntryType["Marker"] = 0] = "Marker";
|
|
29516
30424
|
EntryType[EntryType["Element"] = 1] = "Element";
|
|
29517
30425
|
})(EntryType || (EntryType = {}));
|
|
29518
|
-
MARKER2 = { type: EntryType.Marker };
|
|
29519
30426
|
});
|
|
29520
30427
|
|
|
29521
30428
|
// ../../node_modules/parse5/dist/tree-adapters/default.js
|
|
29522
|
-
var defaultTreeAdapter;
|
|
30429
|
+
var attrListIndexes, defaultTreeAdapter;
|
|
29523
30430
|
var init_default2 = __esm(() => {
|
|
29524
30431
|
init_html3();
|
|
30432
|
+
attrListIndexes = new WeakMap;
|
|
29525
30433
|
defaultTreeAdapter = {
|
|
29526
30434
|
createDocument() {
|
|
29527
30435
|
return {
|
|
@@ -29565,8 +30473,9 @@ var init_default2 = __esm(() => {
|
|
|
29565
30473
|
newNode.parentNode = parentNode;
|
|
29566
30474
|
},
|
|
29567
30475
|
insertBefore(parentNode, newNode, referenceNode) {
|
|
29568
|
-
const
|
|
29569
|
-
|
|
30476
|
+
const { childNodes } = parentNode;
|
|
30477
|
+
const insertionIdx = childNodes[childNodes.length - 1] === referenceNode ? childNodes.length - 1 : childNodes.indexOf(referenceNode);
|
|
30478
|
+
childNodes.splice(insertionIdx, 0, newNode);
|
|
29570
30479
|
newNode.parentNode = parentNode;
|
|
29571
30480
|
},
|
|
29572
30481
|
setTemplateContent(templateElement, contentElement) {
|
|
@@ -29600,8 +30509,9 @@ var init_default2 = __esm(() => {
|
|
|
29600
30509
|
},
|
|
29601
30510
|
detachNode(node) {
|
|
29602
30511
|
if (node.parentNode) {
|
|
29603
|
-
const
|
|
29604
|
-
node.
|
|
30512
|
+
const { childNodes } = node.parentNode;
|
|
30513
|
+
const idx = childNodes[childNodes.length - 1] === node ? childNodes.length - 1 : childNodes.indexOf(node);
|
|
30514
|
+
childNodes.splice(idx, 1);
|
|
29605
30515
|
node.parentNode = null;
|
|
29606
30516
|
}
|
|
29607
30517
|
},
|
|
@@ -29616,7 +30526,9 @@ var init_default2 = __esm(() => {
|
|
|
29616
30526
|
defaultTreeAdapter.appendChild(parentNode, defaultTreeAdapter.createTextNode(text));
|
|
29617
30527
|
},
|
|
29618
30528
|
insertTextBefore(parentNode, text, referenceNode) {
|
|
29619
|
-
const
|
|
30529
|
+
const { childNodes } = parentNode;
|
|
30530
|
+
const referenceIdx = childNodes[childNodes.length - 1] === referenceNode ? childNodes.length - 1 : childNodes.indexOf(referenceNode);
|
|
30531
|
+
const prevNode = childNodes[referenceIdx - 1];
|
|
29620
30532
|
if (prevNode && defaultTreeAdapter.isTextNode(prevNode)) {
|
|
29621
30533
|
prevNode.value += text;
|
|
29622
30534
|
} else {
|
|
@@ -29624,12 +30536,35 @@ var init_default2 = __esm(() => {
|
|
|
29624
30536
|
}
|
|
29625
30537
|
},
|
|
29626
30538
|
adoptAttributes(recipient, attrs) {
|
|
29627
|
-
|
|
30539
|
+
if (attrs.length === 0 || attrs === recipient.attrs)
|
|
30540
|
+
return;
|
|
30541
|
+
const cached = attrListIndexes.get(recipient.attrs);
|
|
30542
|
+
const isIndexed = (cached === null || cached === undefined ? undefined : cached.size) === recipient.attrs.length && attrs.every(({ name }) => {
|
|
30543
|
+
var _a;
|
|
30544
|
+
const index = cached.get(name);
|
|
30545
|
+
return index === undefined || ((_a = recipient.attrs[index]) === null || _a === undefined ? undefined : _a.name) === name;
|
|
30546
|
+
});
|
|
30547
|
+
const recipientAttrsMap = isIndexed ? cached : new Map;
|
|
30548
|
+
if (!isIndexed) {
|
|
30549
|
+
for (let i = 0;i < recipient.attrs.length; i++) {
|
|
30550
|
+
const attr = recipient.attrs[i];
|
|
30551
|
+
if (attr !== undefined)
|
|
30552
|
+
recipientAttrsMap.set(attr.name, i);
|
|
30553
|
+
}
|
|
30554
|
+
attrListIndexes.set(recipient.attrs, recipientAttrsMap);
|
|
30555
|
+
}
|
|
30556
|
+
const adoptedFrom = recipient.attrs.length;
|
|
29628
30557
|
for (let j = 0;j < attrs.length; j++) {
|
|
29629
30558
|
if (!recipientAttrsMap.has(attrs[j].name)) {
|
|
29630
30559
|
recipient.attrs.push(attrs[j]);
|
|
29631
30560
|
}
|
|
29632
30561
|
}
|
|
30562
|
+
for (let j = adoptedFrom;j < recipient.attrs.length; j++) {
|
|
30563
|
+
recipientAttrsMap.set(recipient.attrs[j].name, j);
|
|
30564
|
+
}
|
|
30565
|
+
if (recipientAttrsMap.size !== recipient.attrs.length) {
|
|
30566
|
+
attrListIndexes.delete(recipient.attrs);
|
|
30567
|
+
}
|
|
29633
30568
|
},
|
|
29634
30569
|
getFirstChild(node) {
|
|
29635
30570
|
return node.childNodes[0];
|
|
@@ -30049,7 +30984,7 @@ class Parser {
|
|
|
30049
30984
|
}
|
|
30050
30985
|
this.document = document2 !== null && document2 !== undefined ? document2 : this.treeAdapter.createDocument();
|
|
30051
30986
|
this.tokenizer = new Tokenizer(this.options, this);
|
|
30052
|
-
this.activeFormattingElements = new FormattingElementList
|
|
30987
|
+
this.activeFormattingElements = new FormattingElementList;
|
|
30053
30988
|
this.fragmentContextID = fragmentContext ? getTagID(this.treeAdapter.getTagName(fragmentContext)) : TAG_ID.UNKNOWN;
|
|
30054
30989
|
this._setContextModes(fragmentContext !== null && fragmentContext !== undefined ? fragmentContext : this.document, this.fragmentContextID);
|
|
30055
30990
|
this.openElements = new OpenElementStack(this.document, this.treeAdapter, this);
|
|
@@ -30068,7 +31003,7 @@ class Parser {
|
|
|
30068
31003
|
const documentMock = opts.treeAdapter.createElement("documentmock", NS.HTML, []);
|
|
30069
31004
|
const parser = new this(opts, documentMock, fragmentContext);
|
|
30070
31005
|
if (parser.fragmentContextID === TAG_ID.TEMPLATE) {
|
|
30071
|
-
parser.tmplInsertionModeStack.
|
|
31006
|
+
parser.tmplInsertionModeStack.push(InsertionMode.IN_TEMPLATE);
|
|
30072
31007
|
}
|
|
30073
31008
|
parser._initTokenizerForFragmentParsing();
|
|
30074
31009
|
parser._insertFakeRootElement();
|
|
@@ -30105,11 +31040,12 @@ class Parser {
|
|
|
30105
31040
|
this._setContextModes(node, tid);
|
|
30106
31041
|
}
|
|
30107
31042
|
onItemPop(node, isTop) {
|
|
30108
|
-
var _a, _b;
|
|
31043
|
+
var _a, _b, _c;
|
|
30109
31044
|
if (this.options.sourceCodeLocationInfo) {
|
|
30110
31045
|
this._setEndLocation(node, this.currentToken);
|
|
30111
31046
|
}
|
|
30112
31047
|
(_b = (_a = this.treeAdapter).onItemPop) === null || _b === undefined || _b.call(_a, node, this.openElements.current);
|
|
31048
|
+
(_c = this.annotationXmlIntegrationPoints) === null || _c === undefined || _c.delete(node);
|
|
30113
31049
|
if (isTop) {
|
|
30114
31050
|
let current;
|
|
30115
31051
|
let currentTagId;
|
|
@@ -30144,7 +31080,7 @@ class Parser {
|
|
|
30144
31080
|
_findFormInFragmentContext() {
|
|
30145
31081
|
let node = this.fragmentContext;
|
|
30146
31082
|
while (node) {
|
|
30147
|
-
if (this.treeAdapter.getTagName(node) === TAG_NAMES.FORM) {
|
|
31083
|
+
if (this.treeAdapter.getTagName(node) === TAG_NAMES.FORM && this.treeAdapter.getNamespaceURI(node) === NS.HTML) {
|
|
30148
31084
|
this.formElement = node;
|
|
30149
31085
|
break;
|
|
30150
31086
|
}
|
|
@@ -30194,7 +31130,7 @@ class Parser {
|
|
|
30194
31130
|
}
|
|
30195
31131
|
}
|
|
30196
31132
|
}
|
|
30197
|
-
_attachElementToTree(element, location) {
|
|
31133
|
+
_attachElementToTree(element, location, insertionLocation) {
|
|
30198
31134
|
if (this.options.sourceCodeLocationInfo) {
|
|
30199
31135
|
const loc = location && {
|
|
30200
31136
|
...location,
|
|
@@ -30202,41 +31138,64 @@ class Parser {
|
|
|
30202
31138
|
};
|
|
30203
31139
|
this.treeAdapter.setNodeSourceCodeLocation(element, loc);
|
|
30204
31140
|
}
|
|
30205
|
-
if (
|
|
30206
|
-
this.
|
|
31141
|
+
if (insertionLocation.beforeElement) {
|
|
31142
|
+
this.treeAdapter.insertBefore(insertionLocation.parent, element, insertionLocation.beforeElement);
|
|
30207
31143
|
} else {
|
|
30208
|
-
|
|
30209
|
-
this.treeAdapter.appendChild(parent !== null && parent !== undefined ? parent : this.document, element);
|
|
31144
|
+
this.treeAdapter.appendChild(insertionLocation.parent, element);
|
|
30210
31145
|
}
|
|
30211
31146
|
}
|
|
31147
|
+
_getInsertionLocation() {
|
|
31148
|
+
var _a;
|
|
31149
|
+
if (this._shouldFosterParentOnInsertion()) {
|
|
31150
|
+
return this._findFosterParentingLocation();
|
|
31151
|
+
}
|
|
31152
|
+
return {
|
|
31153
|
+
parent: (_a = this.openElements.currentTmplContentOrNode) !== null && _a !== undefined ? _a : this.document,
|
|
31154
|
+
beforeElement: null
|
|
31155
|
+
};
|
|
31156
|
+
}
|
|
31157
|
+
_createElement(tagName, namespaceURI, attrs, intendedParent) {
|
|
31158
|
+
var _a, _b;
|
|
31159
|
+
const element = this.treeAdapter.createElement(tagName, namespaceURI, attrs);
|
|
31160
|
+
(_b = (_a = this.treeAdapter).onElementCreated) === null || _b === undefined || _b.call(_a, element, {
|
|
31161
|
+
intendedParent,
|
|
31162
|
+
formElement: this.formElement,
|
|
31163
|
+
isInTemplate: this.openElements.tmplCount > 0
|
|
31164
|
+
});
|
|
31165
|
+
return element;
|
|
31166
|
+
}
|
|
30212
31167
|
_appendElement(token, namespaceURI) {
|
|
30213
|
-
const
|
|
30214
|
-
this.
|
|
31168
|
+
const insertionLocation = this._getInsertionLocation();
|
|
31169
|
+
const element = this._createElement(token.tagName, namespaceURI, token.attrs, insertionLocation.parent);
|
|
31170
|
+
this._attachElementToTree(element, token.location, insertionLocation);
|
|
30215
31171
|
}
|
|
30216
31172
|
_insertElement(token, namespaceURI) {
|
|
30217
|
-
const
|
|
30218
|
-
this.
|
|
31173
|
+
const insertionLocation = this._getInsertionLocation();
|
|
31174
|
+
const element = this._createElement(token.tagName, namespaceURI, token.attrs, insertionLocation.parent);
|
|
31175
|
+
this._attachElementToTree(element, token.location, insertionLocation);
|
|
30219
31176
|
this.openElements.push(element, token.tagID);
|
|
30220
31177
|
}
|
|
30221
31178
|
_insertFakeElement(tagName, tagID) {
|
|
30222
|
-
const
|
|
30223
|
-
this.
|
|
31179
|
+
const insertionLocation = this._getInsertionLocation();
|
|
31180
|
+
const element = this._createElement(tagName, NS.HTML, [], insertionLocation.parent);
|
|
31181
|
+
this._attachElementToTree(element, null, insertionLocation);
|
|
30224
31182
|
this.openElements.push(element, tagID);
|
|
30225
31183
|
}
|
|
30226
31184
|
_insertTemplate(token) {
|
|
30227
|
-
const
|
|
31185
|
+
const insertionLocation = this._getInsertionLocation();
|
|
31186
|
+
const tmpl = this._createElement(token.tagName, NS.HTML, token.attrs, insertionLocation.parent);
|
|
30228
31187
|
const content = this.treeAdapter.createDocumentFragment();
|
|
30229
31188
|
this.treeAdapter.setTemplateContent(tmpl, content);
|
|
30230
|
-
this._attachElementToTree(tmpl, token.location);
|
|
31189
|
+
this._attachElementToTree(tmpl, token.location, insertionLocation);
|
|
30231
31190
|
this.openElements.push(tmpl, token.tagID);
|
|
30232
31191
|
if (this.options.sourceCodeLocationInfo)
|
|
30233
31192
|
this.treeAdapter.setNodeSourceCodeLocation(content, null);
|
|
30234
31193
|
}
|
|
30235
31194
|
_insertFakeRootElement() {
|
|
30236
|
-
const element = this.
|
|
31195
|
+
const element = this._createElement(TAG_NAMES.HTML, NS.HTML, [], this.document);
|
|
30237
31196
|
if (this.options.sourceCodeLocationInfo)
|
|
30238
31197
|
this.treeAdapter.setNodeSourceCodeLocation(element, null);
|
|
30239
|
-
this.treeAdapter.appendChild(this.
|
|
31198
|
+
this.treeAdapter.appendChild(this.document, element);
|
|
30240
31199
|
this.openElements.push(element, TAG_ID.HTML);
|
|
30241
31200
|
}
|
|
30242
31201
|
_appendCommentNode(token, parent) {
|
|
@@ -30274,8 +31233,11 @@ class Parser {
|
|
|
30274
31233
|
}
|
|
30275
31234
|
}
|
|
30276
31235
|
_adoptNodes(donor, recipient) {
|
|
30277
|
-
|
|
30278
|
-
|
|
31236
|
+
const children = [...this.treeAdapter.getChildNodes(donor)];
|
|
31237
|
+
for (let i = children.length - 1;i >= 0; i--) {
|
|
31238
|
+
this.treeAdapter.detachNode(children[i]);
|
|
31239
|
+
}
|
|
31240
|
+
for (const child of children) {
|
|
30279
31241
|
this.treeAdapter.appendChild(recipient, child);
|
|
30280
31242
|
}
|
|
30281
31243
|
}
|
|
@@ -30349,20 +31311,27 @@ class Parser {
|
|
|
30349
31311
|
}
|
|
30350
31312
|
}
|
|
30351
31313
|
_isIntegrationPoint(tid, element, foreignNS) {
|
|
31314
|
+
var _a;
|
|
30352
31315
|
const ns = this.treeAdapter.getNamespaceURI(element);
|
|
30353
|
-
|
|
30354
|
-
|
|
31316
|
+
if (tid === TAG_ID.ANNOTATION_XML && ns === NS.MATHML && foreignNS !== NS.MATHML) {
|
|
31317
|
+
const verdicts = (_a = this.annotationXmlIntegrationPoints) !== null && _a !== undefined ? _a : this.annotationXmlIntegrationPoints = new Map;
|
|
31318
|
+
let isIntegrationPoint2 = verdicts.get(element);
|
|
31319
|
+
if (isIntegrationPoint2 === undefined) {
|
|
31320
|
+
isIntegrationPoint2 = isIntegrationPoint(tid, ns, this.treeAdapter.getAttrList(element));
|
|
31321
|
+
verdicts.set(element, isIntegrationPoint2);
|
|
31322
|
+
}
|
|
31323
|
+
return isIntegrationPoint2;
|
|
31324
|
+
}
|
|
31325
|
+
return isIntegrationPoint(tid, ns, EMPTY_ATTRS, foreignNS);
|
|
30355
31326
|
}
|
|
30356
31327
|
_reconstructActiveFormattingElements() {
|
|
30357
|
-
|
|
30358
|
-
|
|
30359
|
-
|
|
30360
|
-
|
|
30361
|
-
|
|
30362
|
-
|
|
30363
|
-
|
|
30364
|
-
entry.element = this.openElements.current;
|
|
30365
|
-
}
|
|
31328
|
+
let oldest = null;
|
|
31329
|
+
for (let entry = this.activeFormattingElements.newest;entry !== null && entry.type === EntryType.Element && !this.openElements.contains(entry.element); entry = entry.older) {
|
|
31330
|
+
oldest = entry;
|
|
31331
|
+
}
|
|
31332
|
+
for (let entry = oldest;entry !== null && entry.type === EntryType.Element; entry = entry.newer) {
|
|
31333
|
+
this._insertElement(entry.token, this.treeAdapter.getNamespaceURI(entry.element));
|
|
31334
|
+
this.activeFormattingElements.replaceElement(entry, this.openElements.current);
|
|
30366
31335
|
}
|
|
30367
31336
|
}
|
|
30368
31337
|
_closeTableCell() {
|
|
@@ -30376,8 +31345,11 @@ class Parser {
|
|
|
30376
31345
|
this.openElements.popUntilTagNamePopped(TAG_ID.P);
|
|
30377
31346
|
}
|
|
30378
31347
|
_resetInsertionMode() {
|
|
30379
|
-
|
|
30380
|
-
|
|
31348
|
+
const i = this.openElements.indexOfTopmostOf(INSERTION_MODE_TAGS);
|
|
31349
|
+
const tn = i === 0 && this.fragmentContext ? this.fragmentContextID : this.openElements.tagIDs[i];
|
|
31350
|
+
const node = i === 0 && this.fragmentContext ? this.fragmentContext : this.openElements.items[i];
|
|
31351
|
+
if (node !== undefined && this.treeAdapter.getNamespaceURI(node) === NS.HTML) {
|
|
31352
|
+
switch (tn) {
|
|
30381
31353
|
case TAG_ID.TR: {
|
|
30382
31354
|
this.insertionMode = InsertionMode.IN_ROW;
|
|
30383
31355
|
return;
|
|
@@ -30413,7 +31385,7 @@ class Parser {
|
|
|
30413
31385
|
return;
|
|
30414
31386
|
}
|
|
30415
31387
|
case TAG_ID.TEMPLATE: {
|
|
30416
|
-
this.insertionMode = this.tmplInsertionModeStack[
|
|
31388
|
+
this.insertionMode = this.tmplInsertionModeStack[this.tmplInsertionModeStack.length - 1];
|
|
30417
31389
|
return;
|
|
30418
31390
|
}
|
|
30419
31391
|
case TAG_ID.HTML: {
|
|
@@ -30441,14 +31413,10 @@ class Parser {
|
|
|
30441
31413
|
}
|
|
30442
31414
|
_resetInsertionModeForSelect(selectIdx) {
|
|
30443
31415
|
if (selectIdx > 0) {
|
|
30444
|
-
|
|
30445
|
-
|
|
30446
|
-
|
|
30447
|
-
|
|
30448
|
-
} else if (tn === TAG_ID.TABLE) {
|
|
30449
|
-
this.insertionMode = InsertionMode.IN_SELECT_IN_TABLE;
|
|
30450
|
-
return;
|
|
30451
|
-
}
|
|
31416
|
+
const tableIdx = this.openElements.indexOfTopmost(TAG_ID.TABLE);
|
|
31417
|
+
if (tableIdx > 0 && tableIdx > this.openElements.indexOfTopmost(TAG_ID.TEMPLATE)) {
|
|
31418
|
+
this.insertionMode = InsertionMode.IN_SELECT_IN_TABLE;
|
|
31419
|
+
return;
|
|
30452
31420
|
}
|
|
30453
31421
|
}
|
|
30454
31422
|
this.insertionMode = InsertionMode.IN_SELECT;
|
|
@@ -30460,26 +31428,24 @@ class Parser {
|
|
|
30460
31428
|
return this.fosterParentingEnabled && this.openElements.currentTagId !== undefined && this._isElementCausesFosterParenting(this.openElements.currentTagId);
|
|
30461
31429
|
}
|
|
30462
31430
|
_findFosterParentingLocation() {
|
|
30463
|
-
|
|
30464
|
-
|
|
30465
|
-
|
|
30466
|
-
|
|
30467
|
-
|
|
30468
|
-
|
|
30469
|
-
|
|
30470
|
-
|
|
30471
|
-
|
|
30472
|
-
|
|
30473
|
-
|
|
30474
|
-
|
|
30475
|
-
|
|
30476
|
-
|
|
30477
|
-
return { parent: this.openElements.items[i - 1], beforeElement: null };
|
|
30478
|
-
}
|
|
30479
|
-
default:
|
|
31431
|
+
const { openElements } = this;
|
|
31432
|
+
const tableIdx = openElements.indexOfTopmost(TAG_ID.TABLE);
|
|
31433
|
+
const templateIdx = openElements.indexOfTopmost(TAG_ID.TEMPLATE);
|
|
31434
|
+
if (templateIdx > tableIdx) {
|
|
31435
|
+
return {
|
|
31436
|
+
parent: this.treeAdapter.getTemplateContent(openElements.items[templateIdx]),
|
|
31437
|
+
beforeElement: null
|
|
31438
|
+
};
|
|
31439
|
+
}
|
|
31440
|
+
if (tableIdx !== -1) {
|
|
31441
|
+
const table = openElements.items[tableIdx];
|
|
31442
|
+
const parent = this.treeAdapter.getParentNode(table);
|
|
31443
|
+
if (parent) {
|
|
31444
|
+
return { parent, beforeElement: table };
|
|
30480
31445
|
}
|
|
31446
|
+
return { parent: openElements.items[openElements.slotBelow(tableIdx)], beforeElement: null };
|
|
30481
31447
|
}
|
|
30482
|
-
return { parent:
|
|
31448
|
+
return { parent: openElements.items[0], beforeElement: null };
|
|
30483
31449
|
}
|
|
30484
31450
|
_fosterParentElement(element) {
|
|
30485
31451
|
const location = this._findFosterParentingLocation();
|
|
@@ -31011,7 +31977,7 @@ function aaObtainFormattingElementEntry(p, token) {
|
|
|
31011
31977
|
if (!p.openElements.contains(formattingElementEntry.element)) {
|
|
31012
31978
|
p.activeFormattingElements.removeEntry(formattingElementEntry);
|
|
31013
31979
|
formattingElementEntry = null;
|
|
31014
|
-
} else if (!p.openElements.hasInScope(token.tagID)) {
|
|
31980
|
+
} else if (!p.openElements.hasInScope(token.tagID, formattingElementEntry.element)) {
|
|
31015
31981
|
formattingElementEntry = null;
|
|
31016
31982
|
}
|
|
31017
31983
|
} else {
|
|
@@ -31020,28 +31986,25 @@ function aaObtainFormattingElementEntry(p, token) {
|
|
|
31020
31986
|
return formattingElementEntry;
|
|
31021
31987
|
}
|
|
31022
31988
|
function aaObtainFurthestBlock(p, formattingElementEntry) {
|
|
31023
|
-
|
|
31024
|
-
|
|
31025
|
-
for (;idx
|
|
31026
|
-
|
|
31027
|
-
|
|
31028
|
-
break;
|
|
31029
|
-
}
|
|
31030
|
-
if (p._isSpecialElement(element, p.openElements.tagIDs[idx])) {
|
|
31031
|
-
furthestBlock = element;
|
|
31989
|
+
const { openElements } = p;
|
|
31990
|
+
const formattingIdx = openElements._indexOf(formattingElementEntry.element);
|
|
31991
|
+
for (let idx = openElements.slotAbove(formattingIdx);idx !== -1; idx = openElements.slotAbove(idx)) {
|
|
31992
|
+
if (p._isSpecialElement(openElements.items[idx], openElements.tagIDs[idx])) {
|
|
31993
|
+
return idx;
|
|
31032
31994
|
}
|
|
31033
31995
|
}
|
|
31034
|
-
|
|
31035
|
-
|
|
31036
|
-
|
|
31037
|
-
}
|
|
31038
|
-
return furthestBlock;
|
|
31996
|
+
openElements.shortenToLength(formattingIdx);
|
|
31997
|
+
p.activeFormattingElements.removeEntry(formattingElementEntry);
|
|
31998
|
+
return -1;
|
|
31039
31999
|
}
|
|
31040
|
-
function aaInnerLoop(p,
|
|
32000
|
+
function aaInnerLoop(p, furthestBlockIdx, formattingElement) {
|
|
32001
|
+
const furthestBlock = p.openElements.items[furthestBlockIdx];
|
|
31041
32002
|
let lastElement = furthestBlock;
|
|
31042
|
-
let
|
|
31043
|
-
|
|
31044
|
-
|
|
32003
|
+
let nextIdx = p.openElements.slotBelow(furthestBlockIdx);
|
|
32004
|
+
const intendedParent = p.openElements.getCommonAncestor(formattingElement);
|
|
32005
|
+
for (let i = 0, idx = nextIdx;p.openElements.items[idx] !== formattingElement; i++, idx = nextIdx) {
|
|
32006
|
+
let element = p.openElements.items[idx];
|
|
32007
|
+
nextIdx = p.openElements.slotBelow(idx);
|
|
31045
32008
|
const elementEntry = p.activeFormattingElements.getElementEntry(element);
|
|
31046
32009
|
const counterOverflow = elementEntry && i >= AA_INNER_LOOP_ITER;
|
|
31047
32010
|
const shouldRemoveFromOpenElements = !elementEntry || counterOverflow;
|
|
@@ -31049,9 +32012,9 @@ function aaInnerLoop(p, furthestBlock, formattingElement) {
|
|
|
31049
32012
|
if (counterOverflow) {
|
|
31050
32013
|
p.activeFormattingElements.removeEntry(elementEntry);
|
|
31051
32014
|
}
|
|
31052
|
-
p.openElements.
|
|
32015
|
+
p.openElements.removeAt(idx);
|
|
31053
32016
|
} else {
|
|
31054
|
-
element = aaRecreateElementFromEntry(p, elementEntry);
|
|
32017
|
+
element = aaRecreateElementFromEntry(p, elementEntry, intendedParent);
|
|
31055
32018
|
if (lastElement === furthestBlock) {
|
|
31056
32019
|
p.activeFormattingElements.bookmark = elementEntry;
|
|
31057
32020
|
}
|
|
@@ -31062,11 +32025,11 @@ function aaInnerLoop(p, furthestBlock, formattingElement) {
|
|
|
31062
32025
|
}
|
|
31063
32026
|
return lastElement;
|
|
31064
32027
|
}
|
|
31065
|
-
function aaRecreateElementFromEntry(p, elementEntry) {
|
|
32028
|
+
function aaRecreateElementFromEntry(p, elementEntry, intendedParent) {
|
|
31066
32029
|
const ns = p.treeAdapter.getNamespaceURI(elementEntry.element);
|
|
31067
|
-
const newElement = p.
|
|
32030
|
+
const newElement = p._createElement(elementEntry.token.tagName, ns, elementEntry.token.attrs, intendedParent);
|
|
31068
32031
|
p.openElements.replace(elementEntry.element, newElement);
|
|
31069
|
-
elementEntry
|
|
32032
|
+
p.activeFormattingElements.replaceElement(elementEntry, newElement);
|
|
31070
32033
|
return newElement;
|
|
31071
32034
|
}
|
|
31072
32035
|
function aaInsertLastNodeInCommonAncestor(p, commonAncestor, lastElement) {
|
|
@@ -31085,26 +32048,36 @@ function aaInsertLastNodeInCommonAncestor(p, commonAncestor, lastElement) {
|
|
|
31085
32048
|
function aaReplaceFormattingElement(p, furthestBlock, formattingElementEntry) {
|
|
31086
32049
|
const ns = p.treeAdapter.getNamespaceURI(formattingElementEntry.element);
|
|
31087
32050
|
const { token } = formattingElementEntry;
|
|
31088
|
-
const newElement = p.
|
|
32051
|
+
const newElement = p._createElement(token.tagName, ns, token.attrs, furthestBlock);
|
|
31089
32052
|
p._adoptNodes(furthestBlock, newElement);
|
|
31090
32053
|
p.treeAdapter.appendChild(furthestBlock, newElement);
|
|
31091
32054
|
p.activeFormattingElements.insertElementAfterBookmark(newElement, token);
|
|
31092
32055
|
p.activeFormattingElements.removeEntry(formattingElementEntry);
|
|
31093
|
-
p.openElements.
|
|
31094
|
-
p.openElements.
|
|
32056
|
+
const formattingIdx = p.openElements._indexOf(formattingElementEntry.element);
|
|
32057
|
+
let furthestBlockIdx = p.openElements.slotAbove(formattingIdx);
|
|
32058
|
+
while (p.openElements.items[furthestBlockIdx] !== furthestBlock) {
|
|
32059
|
+
furthestBlockIdx = p.openElements.slotAbove(furthestBlockIdx);
|
|
32060
|
+
}
|
|
32061
|
+
p.openElements.replaceFormattingElement(formattingIdx, furthestBlockIdx, newElement, token.tagID);
|
|
31095
32062
|
}
|
|
31096
32063
|
function callAdoptionAgency(p, token) {
|
|
32064
|
+
const { current, currentTagId } = p.openElements;
|
|
32065
|
+
if (currentTagId === token.tagID && p.treeAdapter.getNamespaceURI(current) === NS.HTML && !p.activeFormattingElements.getElementEntry(current)) {
|
|
32066
|
+
p.openElements.pop();
|
|
32067
|
+
return;
|
|
32068
|
+
}
|
|
31097
32069
|
for (let i = 0;i < AA_OUTER_LOOP_ITER; i++) {
|
|
31098
32070
|
const formattingElementEntry = aaObtainFormattingElementEntry(p, token);
|
|
31099
32071
|
if (!formattingElementEntry) {
|
|
31100
32072
|
break;
|
|
31101
32073
|
}
|
|
31102
|
-
const
|
|
31103
|
-
if (
|
|
32074
|
+
const furthestBlockIdx = aaObtainFurthestBlock(p, formattingElementEntry);
|
|
32075
|
+
if (furthestBlockIdx === -1) {
|
|
31104
32076
|
break;
|
|
31105
32077
|
}
|
|
32078
|
+
const furthestBlock = p.openElements.items[furthestBlockIdx];
|
|
31106
32079
|
p.activeFormattingElements.bookmark = formattingElementEntry;
|
|
31107
|
-
const lastElement = aaInnerLoop(p,
|
|
32080
|
+
const lastElement = aaInnerLoop(p, furthestBlockIdx, formattingElementEntry.element);
|
|
31108
32081
|
const commonAncestor = p.openElements.getCommonAncestor(formattingElementEntry.element);
|
|
31109
32082
|
p.treeAdapter.detachNode(lastElement);
|
|
31110
32083
|
if (commonAncestor)
|
|
@@ -31125,7 +32098,7 @@ function stopParsing(p, token) {
|
|
|
31125
32098
|
p.stopped = true;
|
|
31126
32099
|
if (token.location) {
|
|
31127
32100
|
const target = p.fragmentContext ? 0 : 2;
|
|
31128
|
-
for (let i = p.openElements.stackTop;i >= target; i
|
|
32101
|
+
for (let i = p.openElements.stackTop;i >= target; i = p.openElements.slotBelow(i)) {
|
|
31129
32102
|
p._setEndLocation(p.openElements.items[i], token);
|
|
31130
32103
|
}
|
|
31131
32104
|
if (!p.fragmentContext && p.openElements.stackTop >= 0) {
|
|
@@ -31251,7 +32224,7 @@ function startTagInHead(p, token) {
|
|
|
31251
32224
|
p.activeFormattingElements.insertMarker();
|
|
31252
32225
|
p.framesetOk = false;
|
|
31253
32226
|
p.insertionMode = InsertionMode.IN_TEMPLATE;
|
|
31254
|
-
p.tmplInsertionModeStack.
|
|
32227
|
+
p.tmplInsertionModeStack.push(InsertionMode.IN_TEMPLATE);
|
|
31255
32228
|
break;
|
|
31256
32229
|
}
|
|
31257
32230
|
case TAG_ID.HEAD: {
|
|
@@ -31293,7 +32266,7 @@ function templateEndTagInHead(p, token) {
|
|
|
31293
32266
|
}
|
|
31294
32267
|
p.openElements.popUntilTagNamePopped(TAG_ID.TEMPLATE);
|
|
31295
32268
|
p.activeFormattingElements.clearToLastMarker();
|
|
31296
|
-
p.tmplInsertionModeStack.
|
|
32269
|
+
p.tmplInsertionModeStack.pop();
|
|
31297
32270
|
p._resetInsertionMode();
|
|
31298
32271
|
} else {
|
|
31299
32272
|
p._err(token, ERR.endTagWithoutMatchingOpenElement);
|
|
@@ -31512,17 +32485,11 @@ function formStartTagInBody(p, token) {
|
|
|
31512
32485
|
}
|
|
31513
32486
|
function listItemStartTagInBody(p, token) {
|
|
31514
32487
|
p.framesetOk = false;
|
|
31515
|
-
const
|
|
31516
|
-
|
|
31517
|
-
const elementId = p.openElements.tagIDs[
|
|
31518
|
-
|
|
31519
|
-
|
|
31520
|
-
p.openElements.popUntilTagNamePopped(elementId);
|
|
31521
|
-
break;
|
|
31522
|
-
}
|
|
31523
|
-
if (elementId !== TAG_ID.ADDRESS && elementId !== TAG_ID.DIV && elementId !== TAG_ID.P && p._isSpecialElement(p.openElements.items[i], elementId)) {
|
|
31524
|
-
break;
|
|
31525
|
-
}
|
|
32488
|
+
const idx = token.tagID === TAG_ID.LI ? p.openElements.indexOfTopmost(TAG_ID.LI) : Math.max(p.openElements.indexOfTopmost(TAG_ID.DD), p.openElements.indexOfTopmost(TAG_ID.DT));
|
|
32489
|
+
if (idx !== -1 && !p.openElements.hasListItemBoundaryAbove(idx)) {
|
|
32490
|
+
const elementId = p.openElements.tagIDs[idx];
|
|
32491
|
+
p.openElements.generateImpliedEndTagsWithExclusion(elementId);
|
|
32492
|
+
p.openElements.popUntilTagNamePopped(elementId);
|
|
31526
32493
|
}
|
|
31527
32494
|
if (p.openElements.hasInButtonScope(TAG_ID.P)) {
|
|
31528
32495
|
p._closePElement();
|
|
@@ -31988,20 +32955,12 @@ function brEndTagInBody(p) {
|
|
|
31988
32955
|
p.framesetOk = false;
|
|
31989
32956
|
}
|
|
31990
32957
|
function genericEndTagInBody(p, token) {
|
|
31991
|
-
const tn = token.tagName;
|
|
31992
32958
|
const tid = token.tagID;
|
|
31993
|
-
|
|
31994
|
-
|
|
31995
|
-
|
|
31996
|
-
if (
|
|
31997
|
-
p.openElements.
|
|
31998
|
-
if (p.openElements.stackTop >= i)
|
|
31999
|
-
p.openElements.shortenToLength(i);
|
|
32000
|
-
break;
|
|
32001
|
-
}
|
|
32002
|
-
if (p._isSpecialElement(element, elementId)) {
|
|
32003
|
-
break;
|
|
32004
|
-
}
|
|
32959
|
+
const i = tid === TAG_ID.UNKNOWN ? p.openElements.indexOfTopmostByName(NS.HTML, token.tagName) : p.openElements.indexOfTopmost(tid);
|
|
32960
|
+
if (i > 0 && !p.openElements.hasSpecialElementAbove(i)) {
|
|
32961
|
+
p.openElements.generateImpliedEndTagsWithExclusion(tid);
|
|
32962
|
+
if (p.openElements.stackTop >= i)
|
|
32963
|
+
p.openElements.shortenToLength(i);
|
|
32005
32964
|
}
|
|
32006
32965
|
}
|
|
32007
32966
|
function endTagInBody(p, token) {
|
|
@@ -32650,7 +33609,7 @@ function startTagInSelect(p, token) {
|
|
|
32650
33609
|
function endTagInSelect(p, token) {
|
|
32651
33610
|
switch (token.tagID) {
|
|
32652
33611
|
case TAG_ID.OPTGROUP: {
|
|
32653
|
-
if (p.openElements.stackTop > 0 && p.openElements.currentTagId === TAG_ID.OPTION && p.openElements.tagIDs[p.openElements.stackTop
|
|
33612
|
+
if (p.openElements.stackTop > 0 && p.openElements.currentTagId === TAG_ID.OPTION && p.openElements.tagIDs[p.openElements.slotBelow(p.openElements.stackTop)] === TAG_ID.OPTGROUP) {
|
|
32654
33613
|
p.openElements.pop();
|
|
32655
33614
|
}
|
|
32656
33615
|
if (p.openElements.currentTagId === TAG_ID.OPTGROUP) {
|
|
@@ -32720,32 +33679,32 @@ function startTagInTemplate(p, token) {
|
|
|
32720
33679
|
case TAG_ID.TBODY:
|
|
32721
33680
|
case TAG_ID.TFOOT:
|
|
32722
33681
|
case TAG_ID.THEAD: {
|
|
32723
|
-
p.tmplInsertionModeStack[
|
|
33682
|
+
p.tmplInsertionModeStack[p.tmplInsertionModeStack.length - 1] = InsertionMode.IN_TABLE;
|
|
32724
33683
|
p.insertionMode = InsertionMode.IN_TABLE;
|
|
32725
33684
|
startTagInTable(p, token);
|
|
32726
33685
|
break;
|
|
32727
33686
|
}
|
|
32728
33687
|
case TAG_ID.COL: {
|
|
32729
|
-
p.tmplInsertionModeStack[
|
|
33688
|
+
p.tmplInsertionModeStack[p.tmplInsertionModeStack.length - 1] = InsertionMode.IN_COLUMN_GROUP;
|
|
32730
33689
|
p.insertionMode = InsertionMode.IN_COLUMN_GROUP;
|
|
32731
33690
|
startTagInColumnGroup(p, token);
|
|
32732
33691
|
break;
|
|
32733
33692
|
}
|
|
32734
33693
|
case TAG_ID.TR: {
|
|
32735
|
-
p.tmplInsertionModeStack[
|
|
33694
|
+
p.tmplInsertionModeStack[p.tmplInsertionModeStack.length - 1] = InsertionMode.IN_TABLE_BODY;
|
|
32736
33695
|
p.insertionMode = InsertionMode.IN_TABLE_BODY;
|
|
32737
33696
|
startTagInTableBody(p, token);
|
|
32738
33697
|
break;
|
|
32739
33698
|
}
|
|
32740
33699
|
case TAG_ID.TD:
|
|
32741
33700
|
case TAG_ID.TH: {
|
|
32742
|
-
p.tmplInsertionModeStack[
|
|
33701
|
+
p.tmplInsertionModeStack[p.tmplInsertionModeStack.length - 1] = InsertionMode.IN_ROW;
|
|
32743
33702
|
p.insertionMode = InsertionMode.IN_ROW;
|
|
32744
33703
|
startTagInRow(p, token);
|
|
32745
33704
|
break;
|
|
32746
33705
|
}
|
|
32747
33706
|
default: {
|
|
32748
|
-
p.tmplInsertionModeStack[
|
|
33707
|
+
p.tmplInsertionModeStack[p.tmplInsertionModeStack.length - 1] = InsertionMode.IN_BODY;
|
|
32749
33708
|
p.insertionMode = InsertionMode.IN_BODY;
|
|
32750
33709
|
startTagInBody(p, token);
|
|
32751
33710
|
}
|
|
@@ -32758,9 +33717,11 @@ function endTagInTemplate(p, token) {
|
|
|
32758
33717
|
}
|
|
32759
33718
|
function eofInTemplate(p, token) {
|
|
32760
33719
|
if (p.openElements.tmplCount > 0) {
|
|
32761
|
-
|
|
32762
|
-
|
|
32763
|
-
|
|
33720
|
+
do {
|
|
33721
|
+
p.openElements.popUntilTagNamePopped(TAG_ID.TEMPLATE);
|
|
33722
|
+
p.activeFormattingElements.clearToLastMarker();
|
|
33723
|
+
p.tmplInsertionModeStack.pop();
|
|
33724
|
+
} while (p.openElements.tmplCount > 0);
|
|
32764
33725
|
p._resetInsertionMode();
|
|
32765
33726
|
p.onEof(token);
|
|
32766
33727
|
} else {
|
|
@@ -32908,21 +33869,20 @@ function endTagInForeignContent(p, token) {
|
|
|
32908
33869
|
p._endTagOutsideForeignContent(token);
|
|
32909
33870
|
return;
|
|
32910
33871
|
}
|
|
32911
|
-
|
|
32912
|
-
|
|
32913
|
-
|
|
32914
|
-
|
|
32915
|
-
|
|
32916
|
-
|
|
32917
|
-
|
|
32918
|
-
|
|
32919
|
-
|
|
32920
|
-
|
|
32921
|
-
|
|
32922
|
-
}
|
|
33872
|
+
if (p.openElements.stackTop === 0)
|
|
33873
|
+
return;
|
|
33874
|
+
const { tagName } = token;
|
|
33875
|
+
const adjustedTagName = SVG_TAG_NAMES_ADJUSTMENT_MAP.get(tagName);
|
|
33876
|
+
const contextNs = p.fragmentContext ? p.treeAdapter.getNamespaceURI(p.fragmentContext) : NS.HTML;
|
|
33877
|
+
const i = Math.max(p.openElements.indexOfTopmostByName(NS.SVG, tagName), p.openElements.indexOfTopmostByName(NS.MATHML, tagName), adjustedTagName === undefined ? -1 : p.openElements.indexOfTopmostByName(NS.SVG, adjustedTagName), contextNs === NS.HTML || contextNs === NS.SVG || contextNs === NS.MATHML ? -1 : p.openElements.indexOfTopmostByName(contextNs, tagName));
|
|
33878
|
+
if (i > p.openElements.indexOfTopmostHtmlElement()) {
|
|
33879
|
+
token.tagName = p.treeAdapter.getTagName(p.openElements.items[i]);
|
|
33880
|
+
p.openElements.shortenToLength(i);
|
|
33881
|
+
} else {
|
|
33882
|
+
p._endTagOutsideForeignContent(token);
|
|
32923
33883
|
}
|
|
32924
33884
|
}
|
|
32925
|
-
var HIDDEN_INPUT_TYPE = "hidden", AA_OUTER_LOOP_ITER = 8, AA_INNER_LOOP_ITER = 3, InsertionMode, BASE_LOC, TABLE_STRUCTURE_TAGS, defaultParserOptions, TABLE_VOID_ELEMENTS;
|
|
33885
|
+
var INSERTION_MODE_TAGS, HIDDEN_INPUT_TYPE = "hidden", EMPTY_ATTRS, AA_OUTER_LOOP_ITER = 8, AA_INNER_LOOP_ITER = 3, InsertionMode, BASE_LOC, TABLE_STRUCTURE_TAGS, defaultParserOptions, TABLE_VOID_ELEMENTS;
|
|
32926
33886
|
var init_parser = __esm(() => {
|
|
32927
33887
|
init_tokenizer();
|
|
32928
33888
|
init_open_element_stack();
|
|
@@ -32934,6 +33894,24 @@ var init_parser = __esm(() => {
|
|
|
32934
33894
|
init_unicode();
|
|
32935
33895
|
init_html3();
|
|
32936
33896
|
init_token();
|
|
33897
|
+
INSERTION_MODE_TAGS = [
|
|
33898
|
+
TAG_ID.TR,
|
|
33899
|
+
TAG_ID.TBODY,
|
|
33900
|
+
TAG_ID.THEAD,
|
|
33901
|
+
TAG_ID.TFOOT,
|
|
33902
|
+
TAG_ID.CAPTION,
|
|
33903
|
+
TAG_ID.COLGROUP,
|
|
33904
|
+
TAG_ID.TABLE,
|
|
33905
|
+
TAG_ID.FRAMESET,
|
|
33906
|
+
TAG_ID.SELECT,
|
|
33907
|
+
TAG_ID.TEMPLATE,
|
|
33908
|
+
TAG_ID.TD,
|
|
33909
|
+
TAG_ID.TH,
|
|
33910
|
+
TAG_ID.HEAD,
|
|
33911
|
+
TAG_ID.BODY,
|
|
33912
|
+
TAG_ID.HTML
|
|
33913
|
+
];
|
|
33914
|
+
EMPTY_ATTRS = [];
|
|
32937
33915
|
(function(InsertionMode) {
|
|
32938
33916
|
InsertionMode[InsertionMode["INITIAL"] = 0] = "INITIAL";
|
|
32939
33917
|
InsertionMode[InsertionMode["BEFORE_HTML"] = 1] = "BEFORE_HTML";
|
|
@@ -33291,7 +34269,7 @@ var init_errors = __esm(() => {
|
|
|
33291
34269
|
// ../../node_modules/hast-util-from-html/lib/index.js
|
|
33292
34270
|
function fromHtml(value, options) {
|
|
33293
34271
|
const settings = options || emptyOptions5;
|
|
33294
|
-
const onerror = settings
|
|
34272
|
+
const { onerror } = settings;
|
|
33295
34273
|
const file = value instanceof VFile ? value : new VFile(value);
|
|
33296
34274
|
const parseFunction = settings.fragment ? parseFragment : parse4;
|
|
33297
34275
|
const document2 = String(file);
|
|
@@ -33306,10 +34284,10 @@ function fromHtml(value, options) {
|
|
|
33306
34284
|
verbose: settings.verbose
|
|
33307
34285
|
});
|
|
33308
34286
|
function internalOnerror(error) {
|
|
33309
|
-
const code = error
|
|
34287
|
+
const { code } = error;
|
|
33310
34288
|
const name = camelcase2(code);
|
|
33311
34289
|
const setting = settings[name];
|
|
33312
|
-
const config = setting
|
|
34290
|
+
const config = setting ?? true;
|
|
33313
34291
|
const level = typeof config === "number" ? config : config ? 1 : 0;
|
|
33314
34292
|
if (level) {
|
|
33315
34293
|
const info = errors[name];
|
|
@@ -33343,7 +34321,7 @@ function fromHtml(value, options) {
|
|
|
33343
34321
|
function format(value) {
|
|
33344
34322
|
return value.replace(formatCRe, formatC).replace(formatXRe, formatX);
|
|
33345
34323
|
function formatC(_, $1, $2) {
|
|
33346
|
-
const offset = ($2 ? Number
|
|
34324
|
+
const offset = ($2 ? Number($2) : 0) * ($1 === "-" ? -1 : 1);
|
|
33347
34325
|
const char = document2.charAt(error.startOffset + offset);
|
|
33348
34326
|
return visualizeCharacter(char);
|
|
33349
34327
|
}
|
|
@@ -33374,7 +34352,7 @@ var init_lib29 = __esm(() => {
|
|
|
33374
34352
|
init_vfile_message();
|
|
33375
34353
|
init_errors();
|
|
33376
34354
|
dashToCamelRe = /-[a-z]/g;
|
|
33377
|
-
formatCRe = /%c(?:([
|
|
34355
|
+
formatCRe = /%c(?:([+-])(\d+))?/g;
|
|
33378
34356
|
formatXRe = /%x/g;
|
|
33379
34357
|
fatalities = { 2: true, 1: false, 0: null };
|
|
33380
34358
|
emptyOptions5 = {};
|