hexo-adsense 2.0.0 → 2.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/index.cjs +12458 -416
- package/dist/index.cjs.map +1 -0
- package/dist/index.js +12438 -396
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +12438 -396
- package/dist/index.mjs.map +1 -0
- package/dist/source/adblock.js +1 -1
- package/dist/source/article-ads.js +1 -1
- package/dist/source/article-ads.old.js +1 -1
- package/dist/source/https.js +1 -1
- package/package.json +78 -77
- package/readme.md +16 -0
- package/dist/index.d.cts +0 -2
- package/dist/index.d.mts +0 -2
- package/dist/index.d.ts +0 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../hexo-util/dist/cache.js","../../hexo-util/dist/cache_stream.js","../../hexo-util/node_modules/change-case/dist/index.js","../../hexo-util/dist/camel_case_keys.js","../../hexo-util/dist/color.js","../../hexo-util/dist/_punycode.js","../../hexo-util/dist/decode_url.js","../../hexo-util/dist/deep_merge.js","../../hexo-util/dist/encode_url.js","../../hexo-util/dist/escape_diacritic.js","../../hexo-util/dist/escape_html.js","../../hexo-util/dist/escape_regexp.js","../../hexo-util/dist/pretty_urls.js","../../hexo-util/dist/full_url_for.js","../../hexo-util/dist/gravatar.js","../../hexo-util/node_modules/highlight.js/lib/core.js","../../hexo-util/node_modules/highlight.js/es/core.js","../../hexo-util/node_modules/min-indent/index.js","../../hexo-util/node_modules/strip-indent/index.js","../../hexo-util/dist/highlight_alias.js","../../hexo-util/dist/highlight_shared.js","../../hexo-util/dist/highlight.js","../../hexo-util/dist/html_tag.js","../../hexo-util/dist/is_external_link.js","../../hexo-util/dist/pattern.js","../../hexo-util/dist/permalink.js","../../hexo-util/node_modules/prismjs/prism.js","../../hexo-util/node_modules/prismjs/components.js","../../hexo-util/node_modules/prismjs/dependencies.js","../../hexo-util/node_modules/prismjs/components/index.js","../../hexo-util/dist/prism.js","../../hexo-util/dist/relative_url.js","../../hexo-util/dist/slugize.js","../../hexo-util/dist/spawn.js","../../hexo-util/dist/strip_html.js","../../hexo-util/dist/strip_indent.js","../../hexo-util/node_modules/htmlparser2/node_modules/entities/dist/esm/decode-codepoint.js","../../hexo-util/node_modules/htmlparser2/node_modules/entities/dist/esm/internal/decode-shared.js","../../hexo-util/node_modules/htmlparser2/node_modules/entities/dist/esm/generated/decode-data-html.js","../../hexo-util/node_modules/htmlparser2/node_modules/entities/dist/esm/generated/decode-data-xml.js","../../hexo-util/node_modules/htmlparser2/node_modules/entities/dist/esm/internal/bin-trie-flags.js","../../hexo-util/node_modules/htmlparser2/node_modules/entities/dist/esm/decode.js","../../hexo-util/node_modules/htmlparser2/dist/esm/Tokenizer.js","../../hexo-util/node_modules/htmlparser2/dist/esm/Parser.js","../../hexo-util/node_modules/domelementtype/lib/esm/index.js","../../hexo-util/node_modules/domhandler/lib/esm/node.js","../../hexo-util/node_modules/domhandler/lib/esm/index.js","../../hexo-util/node_modules/domutils/lib/esm/stringify.js","../../hexo-util/node_modules/domutils/lib/esm/querying.js","../../hexo-util/dist/toc_obj.js","../../hexo-util/dist/truncate.js","../../hexo-util/dist/unescape_html.js","../../hexo-util/dist/url_for.js","../../hexo-util/dist/word_wrap.js","../../hexo-util/dist/json_stringify_circular.js","../../hexo-is/dist/index.mjs","../src/config.ts","../src/logger.ts","../src/utils.ts","../src/article-ads.ts","../src/index.ts"],"sourcesContent":["import { createRequire } from 'module';\n\ncreateRequire(import.meta.url);\nclass Cache {\n cache;\n constructor() {\n this.cache = /* @__PURE__ */ new Map();\n }\n set(id, value) {\n this.cache.set(id, value);\n }\n has(id) {\n return this.cache.has(id);\n }\n get(id) {\n return this.cache.get(id);\n }\n del(id) {\n this.cache.delete(id);\n }\n apply(id, value) {\n if (this.has(id)) return this.get(id);\n if (typeof value === \"function\") value = value();\n this.set(id, value);\n return value;\n }\n flush() {\n this.cache.clear();\n }\n size() {\n return this.cache.size;\n }\n dump() {\n return Object.fromEntries(this.cache);\n }\n}\nvar cache_default = Cache;\nif (typeof module !== \"undefined\" && typeof module.exports === \"object\" && module.exports !== null) {\n module.exports = Cache;\n module.exports.default = Cache;\n}\n\nexport { cache_default as default };\n//# sourceMappingURL=cache.js.map\n//# sourceMappingURL=cache.js.map","import { createRequire } from 'module';\nimport { Transform } from 'stream';\n\ncreateRequire(import.meta.url);\nclass CacheStream extends Transform {\n _cache;\n constructor() {\n super();\n this._cache = [];\n }\n _transform(chunk, enc, callback) {\n const buf = chunk instanceof Buffer ? chunk : Buffer.from(chunk, enc);\n this._cache.push(buf);\n this.push(buf);\n callback();\n }\n getCache() {\n return Buffer.concat(this._cache);\n }\n}\nvar cache_stream_default = CacheStream;\nif (typeof module !== \"undefined\" && typeof module.exports === \"object\" && module.exports !== null) {\n module.exports = CacheStream;\n module.exports.default = CacheStream;\n}\n\nexport { cache_stream_default as default };\n//# sourceMappingURL=cache_stream.js.map\n//# sourceMappingURL=cache_stream.js.map","// Regexps involved with splitting words in various case formats.\nconst SPLIT_LOWER_UPPER_RE = /([\\p{Ll}\\d])(\\p{Lu})/gu;\nconst SPLIT_UPPER_UPPER_RE = /(\\p{Lu})([\\p{Lu}][\\p{Ll}])/gu;\n// Used to iterate over the initial split result and separate numbers.\nconst SPLIT_SEPARATE_NUMBER_RE = /(\\d)\\p{Ll}|(\\p{L})\\d/u;\n// Regexp involved with stripping non-word characters from the result.\nconst DEFAULT_STRIP_REGEXP = /[^\\p{L}\\d]+/giu;\n// The replacement value for splits.\nconst SPLIT_REPLACE_VALUE = \"$1\\0$2\";\n// The default characters to keep after transforming case.\nconst DEFAULT_PREFIX_SUFFIX_CHARACTERS = \"\";\n/**\n * Split any cased input strings into an array of words.\n */\nexport function split(value) {\n let result = value.trim();\n result = result\n .replace(SPLIT_LOWER_UPPER_RE, SPLIT_REPLACE_VALUE)\n .replace(SPLIT_UPPER_UPPER_RE, SPLIT_REPLACE_VALUE);\n result = result.replace(DEFAULT_STRIP_REGEXP, \"\\0\");\n let start = 0;\n let end = result.length;\n // Trim the delimiter from around the output string.\n while (result.charAt(start) === \"\\0\")\n start++;\n if (start === end)\n return [];\n while (result.charAt(end - 1) === \"\\0\")\n end--;\n return result.slice(start, end).split(/\\0/g);\n}\n/**\n * Split the input string into an array of words, separating numbers.\n */\nexport function splitSeparateNumbers(value) {\n const words = split(value);\n for (let i = 0; i < words.length; i++) {\n const word = words[i];\n const match = SPLIT_SEPARATE_NUMBER_RE.exec(word);\n if (match) {\n const offset = match.index + (match[1] ?? match[2]).length;\n words.splice(i, 1, word.slice(0, offset), word.slice(offset));\n }\n }\n return words;\n}\n/**\n * Convert a string to space separated lower case (`foo bar`).\n */\nexport function noCase(input, options) {\n const [prefix, words, suffix] = splitPrefixSuffix(input, options);\n return (prefix +\n words.map(lowerFactory(options?.locale)).join(options?.delimiter ?? \" \") +\n suffix);\n}\n/**\n * Convert a string to camel case (`fooBar`).\n */\nexport function camelCase(input, options) {\n const [prefix, words, suffix] = splitPrefixSuffix(input, options);\n const lower = lowerFactory(options?.locale);\n const upper = upperFactory(options?.locale);\n const transform = options?.mergeAmbiguousCharacters\n ? capitalCaseTransformFactory(lower, upper)\n : pascalCaseTransformFactory(lower, upper);\n return (prefix +\n words\n .map((word, index) => {\n if (index === 0)\n return lower(word);\n return transform(word, index);\n })\n .join(options?.delimiter ?? \"\") +\n suffix);\n}\n/**\n * Convert a string to pascal case (`FooBar`).\n */\nexport function pascalCase(input, options) {\n const [prefix, words, suffix] = splitPrefixSuffix(input, options);\n const lower = lowerFactory(options?.locale);\n const upper = upperFactory(options?.locale);\n const transform = options?.mergeAmbiguousCharacters\n ? capitalCaseTransformFactory(lower, upper)\n : pascalCaseTransformFactory(lower, upper);\n return prefix + words.map(transform).join(options?.delimiter ?? \"\") + suffix;\n}\n/**\n * Convert a string to pascal snake case (`Foo_Bar`).\n */\nexport function pascalSnakeCase(input, options) {\n return capitalCase(input, { delimiter: \"_\", ...options });\n}\n/**\n * Convert a string to capital case (`Foo Bar`).\n */\nexport function capitalCase(input, options) {\n const [prefix, words, suffix] = splitPrefixSuffix(input, options);\n const lower = lowerFactory(options?.locale);\n const upper = upperFactory(options?.locale);\n return (prefix +\n words\n .map(capitalCaseTransformFactory(lower, upper))\n .join(options?.delimiter ?? \" \") +\n suffix);\n}\n/**\n * Convert a string to constant case (`FOO_BAR`).\n */\nexport function constantCase(input, options) {\n const [prefix, words, suffix] = splitPrefixSuffix(input, options);\n return (prefix +\n words.map(upperFactory(options?.locale)).join(options?.delimiter ?? \"_\") +\n suffix);\n}\n/**\n * Convert a string to dot case (`foo.bar`).\n */\nexport function dotCase(input, options) {\n return noCase(input, { delimiter: \".\", ...options });\n}\n/**\n * Convert a string to kebab case (`foo-bar`).\n */\nexport function kebabCase(input, options) {\n return noCase(input, { delimiter: \"-\", ...options });\n}\n/**\n * Convert a string to path case (`foo/bar`).\n */\nexport function pathCase(input, options) {\n return noCase(input, { delimiter: \"/\", ...options });\n}\n/**\n * Convert a string to path case (`Foo bar`).\n */\nexport function sentenceCase(input, options) {\n const [prefix, words, suffix] = splitPrefixSuffix(input, options);\n const lower = lowerFactory(options?.locale);\n const upper = upperFactory(options?.locale);\n const transform = capitalCaseTransformFactory(lower, upper);\n return (prefix +\n words\n .map((word, index) => {\n if (index === 0)\n return transform(word);\n return lower(word);\n })\n .join(options?.delimiter ?? \" \") +\n suffix);\n}\n/**\n * Convert a string to snake case (`foo_bar`).\n */\nexport function snakeCase(input, options) {\n return noCase(input, { delimiter: \"_\", ...options });\n}\n/**\n * Convert a string to header case (`Foo-Bar`).\n */\nexport function trainCase(input, options) {\n return capitalCase(input, { delimiter: \"-\", ...options });\n}\nfunction lowerFactory(locale) {\n return locale === false\n ? (input) => input.toLowerCase()\n : (input) => input.toLocaleLowerCase(locale);\n}\nfunction upperFactory(locale) {\n return locale === false\n ? (input) => input.toUpperCase()\n : (input) => input.toLocaleUpperCase(locale);\n}\nfunction capitalCaseTransformFactory(lower, upper) {\n return (word) => `${upper(word[0])}${lower(word.slice(1))}`;\n}\nfunction pascalCaseTransformFactory(lower, upper) {\n return (word, index) => {\n const char0 = word[0];\n const initial = index > 0 && char0 >= \"0\" && char0 <= \"9\" ? \"_\" + char0 : upper(char0);\n return initial + lower(word.slice(1));\n };\n}\nfunction splitPrefixSuffix(input, options = {}) {\n const splitFn = options.split ?? (options.separateNumbers ? splitSeparateNumbers : split);\n const prefixCharacters = options.prefixCharacters ?? DEFAULT_PREFIX_SUFFIX_CHARACTERS;\n const suffixCharacters = options.suffixCharacters ?? DEFAULT_PREFIX_SUFFIX_CHARACTERS;\n let prefixIndex = 0;\n let suffixIndex = input.length;\n while (prefixIndex < input.length) {\n const char = input.charAt(prefixIndex);\n if (!prefixCharacters.includes(char))\n break;\n prefixIndex++;\n }\n while (suffixIndex > prefixIndex) {\n const index = suffixIndex - 1;\n const char = input.charAt(index);\n if (!suffixCharacters.includes(char))\n break;\n suffixIndex = index;\n }\n return [\n input.slice(0, prefixIndex),\n splitFn(input.slice(prefixIndex, suffixIndex)),\n input.slice(suffixIndex),\n ];\n}\n//# sourceMappingURL=index.js.map","import { createRequire } from 'module';\nimport * as changeCase from 'change-case';\n\ncreateRequire(import.meta.url);\nconst { camelCase } = changeCase;\nfunction getter(key) {\n return function() {\n return this[key];\n };\n}\nfunction setter(key) {\n return function(value) {\n this[key] = value;\n };\n}\nfunction toCamelCase(str) {\n let prefixLength = -1;\n while (str[++prefixLength] === \"_\") ;\n if (!prefixLength) {\n return camelCase(str);\n }\n return str.substring(0, prefixLength) + camelCase(str.substring(prefixLength));\n}\nfunction camelCaseKeys(obj) {\n if (typeof obj !== \"object\") throw new TypeError(\"obj must be an object!\");\n const keys = Object.keys(obj);\n const result = {};\n for (const oldKey of keys) {\n const newKey = toCamelCase(oldKey);\n result[newKey] = obj[oldKey];\n if (newKey !== oldKey) {\n Object.defineProperty(result, oldKey, {\n get: getter(newKey),\n set: setter(newKey),\n configurable: true,\n enumerable: true\n });\n }\n }\n return result;\n}\nvar camel_case_keys_default = camelCaseKeys;\nif (typeof module !== \"undefined\" && typeof module.exports === \"object\" && module.exports !== null) {\n module.exports = camelCaseKeys;\n module.exports.default = camelCaseKeys;\n}\n\nexport { camelCaseKeys, camel_case_keys_default as default };\n//# sourceMappingURL=camel_case_keys.js.map\n//# sourceMappingURL=camel_case_keys.js.map","import { createRequire } from 'module';\n\ncreateRequire(import.meta.url);\nconst rHex3 = /^#[0-9a-f]{3}$/;\nconst rHex6 = /^#[0-9a-f]{6}$/;\nconst rRGB = /^rgba?\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,?\\s*(0?\\.?\\d+)?\\s*\\)$/;\nconst rHSL = /^hsla?\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})%\\s*,\\s*(\\d{1,3})%\\s*,?\\s*(0?\\.?\\d+)?\\s*\\)$/;\nconst colorNames = {\n aliceblue: { r: 240, g: 248, b: 255, a: 1 },\n antiquewhite: { r: 250, g: 235, b: 215, a: 1 },\n aqua: { r: 0, g: 255, b: 255, a: 1 },\n aquamarine: { r: 127, g: 255, b: 212, a: 1 },\n azure: { r: 240, g: 255, b: 255, a: 1 },\n beige: { r: 245, g: 245, b: 220, a: 1 },\n bisque: { r: 255, g: 228, b: 196, a: 1 },\n black: { r: 0, g: 0, b: 0, a: 1 },\n blanchedalmond: { r: 255, g: 235, b: 205, a: 1 },\n blue: { r: 0, g: 0, b: 255, a: 1 },\n blueviolet: { r: 138, g: 43, b: 226, a: 1 },\n brown: { r: 165, g: 42, b: 42, a: 1 },\n burlywood: { r: 222, g: 184, b: 135, a: 1 },\n cadetblue: { r: 95, g: 158, b: 160, a: 1 },\n chartreuse: { r: 127, g: 255, b: 0, a: 1 },\n chocolate: { r: 210, g: 105, b: 30, a: 1 },\n coral: { r: 255, g: 127, b: 80, a: 1 },\n cornflowerblue: { r: 100, g: 149, b: 237, a: 1 },\n cornsilk: { r: 255, g: 248, b: 220, a: 1 },\n crimson: { r: 220, g: 20, b: 60, a: 1 },\n cyan: { r: 0, g: 255, b: 255, a: 1 },\n darkblue: { r: 0, g: 0, b: 139, a: 1 },\n darkcyan: { r: 0, g: 139, b: 139, a: 1 },\n darkgoldenrod: { r: 184, g: 134, b: 11, a: 1 },\n darkgray: { r: 169, g: 169, b: 169, a: 1 },\n darkgreen: { r: 0, g: 100, b: 0, a: 1 },\n darkgrey: { r: 169, g: 169, b: 169, a: 1 },\n darkkhaki: { r: 189, g: 183, b: 107, a: 1 },\n darkmagenta: { r: 139, g: 0, b: 139, a: 1 },\n darkolivegreen: { r: 85, g: 107, b: 47, a: 1 },\n darkorange: { r: 255, g: 140, b: 0, a: 1 },\n darkorchid: { r: 153, g: 50, b: 204, a: 1 },\n darkred: { r: 139, g: 0, b: 0, a: 1 },\n darksalmon: { r: 233, g: 150, b: 122, a: 1 },\n darkseagreen: { r: 143, g: 188, b: 143, a: 1 },\n darkslateblue: { r: 72, g: 61, b: 139, a: 1 },\n darkslategray: { r: 47, g: 79, b: 79, a: 1 },\n darkslategrey: { r: 47, g: 79, b: 79, a: 1 },\n darkturquoise: { r: 0, g: 206, b: 209, a: 1 },\n darkviolet: { r: 148, g: 0, b: 211, a: 1 },\n deeppink: { r: 255, g: 20, b: 147, a: 1 },\n deepskyblue: { r: 0, g: 191, b: 255, a: 1 },\n dimgray: { r: 105, g: 105, b: 105, a: 1 },\n dimgrey: { r: 105, g: 105, b: 105, a: 1 },\n dodgerblue: { r: 30, g: 144, b: 255, a: 1 },\n firebrick: { r: 178, g: 34, b: 34, a: 1 },\n floralwhite: { r: 255, g: 250, b: 240, a: 1 },\n forestgreen: { r: 34, g: 139, b: 34, a: 1 },\n fuchsia: { r: 255, g: 0, b: 255, a: 1 },\n gainsboro: { r: 220, g: 220, b: 220, a: 1 },\n ghostwhite: { r: 248, g: 248, b: 255, a: 1 },\n gold: { r: 255, g: 215, b: 0, a: 1 },\n goldenrod: { r: 218, g: 165, b: 32, a: 1 },\n gray: { r: 128, g: 128, b: 128, a: 1 },\n green: { r: 0, g: 128, b: 0, a: 1 },\n greenyellow: { r: 173, g: 255, b: 47, a: 1 },\n grey: { r: 128, g: 128, b: 128, a: 1 },\n honeydew: { r: 240, g: 255, b: 240, a: 1 },\n hotpink: { r: 255, g: 105, b: 180, a: 1 },\n indianred: { r: 205, g: 92, b: 92, a: 1 },\n indigo: { r: 75, g: 0, b: 130, a: 1 },\n ivory: { r: 255, g: 255, b: 240, a: 1 },\n khaki: { r: 240, g: 230, b: 140, a: 1 },\n lavender: { r: 230, g: 230, b: 250, a: 1 },\n lavenderblush: { r: 255, g: 240, b: 245, a: 1 },\n lawngreen: { r: 124, g: 252, b: 0, a: 1 },\n lemonchiffon: { r: 255, g: 250, b: 205, a: 1 },\n lightblue: { r: 173, g: 216, b: 230, a: 1 },\n lightcoral: { r: 240, g: 128, b: 128, a: 1 },\n lightcyan: { r: 224, g: 255, b: 255, a: 1 },\n lightgoldenrodyellow: { r: 250, g: 250, b: 210, a: 1 },\n lightgray: { r: 211, g: 211, b: 211, a: 1 },\n lightgreen: { r: 144, g: 238, b: 144, a: 1 },\n lightgrey: { r: 211, g: 211, b: 211, a: 1 },\n lightpink: { r: 255, g: 182, b: 193, a: 1 },\n lightsalmon: { r: 255, g: 160, b: 122, a: 1 },\n lightseagreen: { r: 32, g: 178, b: 170, a: 1 },\n lightskyblue: { r: 135, g: 206, b: 250, a: 1 },\n lightslategray: { r: 119, g: 136, b: 153, a: 1 },\n lightslategrey: { r: 119, g: 136, b: 153, a: 1 },\n lightsteelblue: { r: 176, g: 196, b: 222, a: 1 },\n lightyellow: { r: 255, g: 255, b: 224, a: 1 },\n lime: { r: 0, g: 255, b: 0, a: 1 },\n limegreen: { r: 50, g: 205, b: 50, a: 1 },\n linen: { r: 250, g: 240, b: 230, a: 1 },\n magenta: { r: 255, g: 0, b: 255, a: 1 },\n maroon: { r: 128, g: 0, b: 0, a: 1 },\n mediumaquamarine: { r: 102, g: 205, b: 170, a: 1 },\n mediumblue: { r: 0, g: 0, b: 205, a: 1 },\n mediumorchid: { r: 186, g: 85, b: 211, a: 1 },\n mediumpurple: { r: 147, g: 112, b: 219, a: 1 },\n mediumseagreen: { r: 60, g: 179, b: 113, a: 1 },\n mediumslateblue: { r: 123, g: 104, b: 238, a: 1 },\n mediumspringgreen: { r: 0, g: 250, b: 154, a: 1 },\n mediumturquoise: { r: 72, g: 209, b: 204, a: 1 },\n mediumvioletred: { r: 199, g: 21, b: 133, a: 1 },\n midnightblue: { r: 25, g: 25, b: 112, a: 1 },\n mintcream: { r: 245, g: 255, b: 250, a: 1 },\n mistyrose: { r: 255, g: 228, b: 225, a: 1 },\n moccasin: { r: 255, g: 228, b: 181, a: 1 },\n navajowhite: { r: 255, g: 222, b: 173, a: 1 },\n navy: { r: 0, g: 0, b: 128, a: 1 },\n oldlace: { r: 253, g: 245, b: 230, a: 1 },\n olive: { r: 128, g: 128, b: 0, a: 1 },\n olivedrab: { r: 107, g: 142, b: 35, a: 1 },\n orange: { r: 255, g: 165, b: 0, a: 1 },\n orangered: { r: 255, g: 69, b: 0, a: 1 },\n orchid: { r: 218, g: 112, b: 214, a: 1 },\n palegoldenrod: { r: 238, g: 232, b: 170, a: 1 },\n palegreen: { r: 152, g: 251, b: 152, a: 1 },\n paleturquoise: { r: 175, g: 238, b: 238, a: 1 },\n palevioletred: { r: 219, g: 112, b: 147, a: 1 },\n papayawhip: { r: 255, g: 239, b: 213, a: 1 },\n peachpuff: { r: 255, g: 218, b: 185, a: 1 },\n peru: { r: 205, g: 133, b: 63, a: 1 },\n pink: { r: 255, g: 192, b: 203, a: 1 },\n plum: { r: 221, g: 160, b: 221, a: 1 },\n powderblue: { r: 176, g: 224, b: 230, a: 1 },\n purple: { r: 128, g: 0, b: 128, a: 1 },\n red: { r: 255, g: 0, b: 0, a: 1 },\n rosybrown: { r: 188, g: 143, b: 143, a: 1 },\n royalblue: { r: 65, g: 105, b: 225, a: 1 },\n saddlebrown: { r: 139, g: 69, b: 19, a: 1 },\n salmon: { r: 250, g: 128, b: 114, a: 1 },\n sandybrown: { r: 244, g: 164, b: 96, a: 1 },\n seagreen: { r: 46, g: 139, b: 87, a: 1 },\n seashell: { r: 255, g: 245, b: 238, a: 1 },\n sienna: { r: 160, g: 82, b: 45, a: 1 },\n silver: { r: 192, g: 192, b: 192, a: 1 },\n skyblue: { r: 135, g: 206, b: 235, a: 1 },\n slateblue: { r: 106, g: 90, b: 205, a: 1 },\n slategray: { r: 112, g: 128, b: 144, a: 1 },\n slategrey: { r: 112, g: 128, b: 144, a: 1 },\n snow: { r: 255, g: 250, b: 250, a: 1 },\n springgreen: { r: 0, g: 255, b: 127, a: 1 },\n steelblue: { r: 70, g: 130, b: 180, a: 1 },\n tan: { r: 210, g: 180, b: 140, a: 1 },\n teal: { r: 0, g: 128, b: 128, a: 1 },\n thistle: { r: 216, g: 191, b: 216, a: 1 },\n tomato: { r: 255, g: 99, b: 71, a: 1 },\n turquoise: { r: 64, g: 224, b: 208, a: 1 },\n violet: { r: 238, g: 130, b: 238, a: 1 },\n wheat: { r: 245, g: 222, b: 179, a: 1 },\n white: { r: 255, g: 255, b: 255, a: 1 },\n whitesmoke: { r: 245, g: 245, b: 245, a: 1 },\n yellow: { r: 255, g: 255, b: 0, a: 1 },\n yellowgreen: { r: 154, g: 205, b: 50, a: 1 }\n};\nconst convertHue = (p, q, h) => {\n if (h < 0) h++;\n if (h > 1) h--;\n let color;\n if (h * 6 < 1) {\n color = p + (q - p) * h * 6;\n } else if (h * 2 < 1) {\n color = q;\n } else if (h * 3 < 2) {\n color = p + (q - p) * (2 / 3 - h) * 6;\n } else {\n color = p;\n }\n return Math.round(color * 255);\n};\nconst convertRGB = (value) => {\n const str = value.toString(16);\n if (value < 16) return `0${str}`;\n return str;\n};\nconst mixValue = (a, b, ratio) => a + (b - a) * ratio;\nclass Color {\n r;\n g;\n b;\n a;\n /**\n * @param {string|{ r: number; g: number; b: number; a: number;}} color\n */\n constructor(color) {\n if (typeof color === \"string\") {\n this._parse(color);\n } else if (color != null && typeof color === \"object\") {\n this.r = color.r | 0;\n this.g = color.g | 0;\n this.b = color.b | 0;\n this.a = +color.a;\n } else {\n throw new TypeError(\"color is required!\");\n }\n if (this.r < 0 || this.r > 255 || this.g < 0 || this.g > 255 || this.b < 0 || this.b > 255 || this.a < 0 || this.a > 1) {\n throw new RangeError(`{r: ${this.r}, g: ${this.g}, b: ${this.b}, a: ${this.a}} is invalid.`);\n }\n }\n /**\n * @param {string} color\n */\n _parse(color) {\n color = color.toLowerCase();\n if (Object.prototype.hasOwnProperty.call(colorNames, color)) {\n const obj = colorNames[color];\n this.r = obj.r;\n this.g = obj.g;\n this.b = obj.b;\n this.a = obj.a;\n return;\n }\n if (rHex3.test(color)) {\n const txt = color.substring(1);\n const code = parseInt(txt, 16);\n this.r = ((code & 3840) >> 8) * 17;\n this.g = ((code & 240) >> 4) * 17;\n this.b = (code & 15) * 17;\n this.a = 1;\n return;\n }\n if (rHex6.test(color)) {\n const txt = color.substring(1);\n const code = parseInt(txt, 16);\n this.r = (code & 16711680) >> 16;\n this.g = (code & 65280) >> 8;\n this.b = code & 255;\n this.a = 1;\n return;\n }\n let match = color.match(rRGB);\n if (match) {\n this.r = Number(match[1]) | 0;\n this.g = Number(match[2]) | 0;\n this.b = Number(match[3]) | 0;\n this.a = match[4] ? +match[4] : 1;\n return;\n }\n match = color.match(rHSL);\n if (match) {\n const h = +match[1] / 360;\n const s = +match[2] / 100;\n const l = +match[3] / 100;\n this.a = match[4] ? +match[4] : 1;\n if (!s) {\n this.r = l * 255;\n this.g = this.r;\n this.b = this.r;\n }\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n const p = 2 * l - q;\n const rt = h + 1 / 3;\n const gt = h;\n const bt = h - 1 / 3;\n this.r = convertHue(p, q, rt);\n this.g = convertHue(p, q, gt);\n this.b = convertHue(p, q, bt);\n return;\n }\n throw new Error(`${color} is not a supported color format.`);\n }\n toString() {\n if (this.a === 1) {\n const r = convertRGB(this.r);\n const g = convertRGB(this.g);\n const b = convertRGB(this.b);\n if (this.r % 17 || this.g % 17 || this.b % 17) {\n return `#${r}${g}${b}`;\n }\n return `#${r[0]}${g[0]}${b[0]}`;\n }\n return `rgba(${this.r}, ${this.g}, ${this.b}, ${parseFloat(this.a.toFixed(2))})`;\n }\n /**\n * @param {string|{ r: number; g: number; b: number; a: number;}} color\n * @param {number} ratio\n */\n mix(color, ratio) {\n if (ratio > 1 || ratio < 0) {\n throw new RangeError(\"Valid numbers is only between 0 and 1.\");\n }\n switch (ratio) {\n case 0:\n return new Color(this);\n case 1:\n return new Color(color);\n }\n return new Color({\n r: Math.round(mixValue(this.r, color.r, ratio)),\n g: Math.round(mixValue(this.g, color.g, ratio)),\n b: Math.round(mixValue(this.b, color.b, ratio)),\n a: mixValue(this.a, color.a, ratio)\n });\n }\n}\nvar color_default = Color;\nif (typeof module !== \"undefined\" && typeof module.exports === \"object\" && module.exports !== null) {\n module.exports = Color;\n module.exports.default = Color;\n}\n\nexport { color_default as default };\n//# sourceMappingURL=color.js.map\n//# sourceMappingURL=color.js.map","import { createRequire } from 'module';\n\ncreateRequire(import.meta.url);\nconst maxInt = 2147483647;\nconst base = 36;\nconst tMin = 1;\nconst tMax = 26;\nconst skew = 38;\nconst damp = 700;\nconst initialBias = 72;\nconst initialN = 128;\nconst delimiter = \"-\";\nconst regexPunycode = /^xn--/;\nconst regexNonASCII = /[^\\0-\\x7F]/;\nconst regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g;\nconst errors = {\n overflow: \"Overflow: input needs wider integers to process\",\n \"not-basic\": \"Illegal input >= 0x80 (not a basic code point)\",\n \"invalid-input\": \"Invalid input\"\n};\nconst baseMinusTMin = base - tMin;\nconst floor = Math.floor;\nconst stringFromCharCode = String.fromCharCode;\nfunction error(type) {\n throw new RangeError(errors[type]);\n}\nfunction map(array, callback) {\n const result = [];\n let length = array.length;\n while (length--) {\n result[length] = callback(array[length]);\n }\n return result;\n}\nfunction mapDomain(domain, callback) {\n const parts = domain.split(\"@\");\n let result = \"\";\n if (parts.length > 1) {\n result = parts[0] + \"@\";\n domain = parts[1];\n }\n domain = domain.replace(regexSeparators, \".\");\n const labels = domain.split(\".\");\n const encoded = map(labels, callback).join(\".\");\n return result + encoded;\n}\nfunction ucs2decode(string) {\n const output = [];\n let counter = 0;\n const length = string.length;\n while (counter < length) {\n const value = string.charCodeAt(counter++);\n if (value >= 55296 && value <= 56319 && counter < length) {\n const extra = string.charCodeAt(counter++);\n if ((extra & 64512) === 56320) {\n output.push(((value & 1023) << 10) + (extra & 1023) + 65536);\n } else {\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n return output;\n}\nconst ucs2encode = (codePoints) => String.fromCodePoint(...codePoints);\nconst basicToDigit = function(codePoint) {\n if (codePoint >= 48 && codePoint < 58) {\n return 26 + (codePoint - 48);\n }\n if (codePoint >= 65 && codePoint < 91) {\n return codePoint - 65;\n }\n if (codePoint >= 97 && codePoint < 123) {\n return codePoint - 97;\n }\n return base;\n};\nconst digitToBasic = function(digit, flag) {\n return digit + 22 + 75 * Number(digit < 26) - (Number(flag !== 0) << 5);\n};\nconst adapt = function(delta, numPoints, firstTime) {\n let k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n for (\n ;\n /* no initialization */\n delta > baseMinusTMin * tMax >> 1;\n k += base\n ) {\n delta = floor(delta / baseMinusTMin);\n }\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\nconst decode = function(input) {\n const output = [];\n const inputLength = input.length;\n let i = 0;\n let n = initialN;\n let bias = initialBias;\n let basic = input.lastIndexOf(delimiter);\n if (basic < 0) {\n basic = 0;\n }\n for (let j = 0; j < basic; ++j) {\n if (input.charCodeAt(j) >= 128) {\n error(\"not-basic\");\n }\n output.push(input.charCodeAt(j));\n }\n for (let index = basic > 0 ? basic + 1 : 0; index < inputLength; ) {\n const oldi = i;\n for (let w = 1, k = base; ; k += base) {\n if (index >= inputLength) {\n error(\"invalid-input\");\n }\n const digit = basicToDigit(input.charCodeAt(index++));\n if (digit >= base) {\n error(\"invalid-input\");\n }\n if (digit > floor((maxInt - i) / w)) {\n error(\"overflow\");\n }\n i += digit * w;\n let t;\n if (k <= bias) {\n t = tMin;\n } else if (k >= bias + tMax) {\n t = tMax;\n } else {\n t = k - bias;\n }\n if (digit < t) {\n break;\n }\n const baseMinusT = base - t;\n if (w > floor(maxInt / baseMinusT)) {\n error(\"overflow\");\n }\n w *= baseMinusT;\n }\n const out = output.length + 1;\n bias = adapt(i - oldi, out, oldi === 0);\n if (floor(i / out) > maxInt - n) {\n error(\"overflow\");\n }\n n += floor(i / out);\n i %= out;\n output.splice(i++, 0, n);\n }\n return String.fromCodePoint(...output);\n};\nconst encode = function(input) {\n const output = [];\n const inputArr = ucs2decode(input);\n const inputLength = inputArr.length;\n let n = initialN;\n let delta = 0;\n let bias = initialBias;\n for (const currentValue of inputArr) {\n if (currentValue < 128) {\n output.push(stringFromCharCode(currentValue));\n }\n }\n const basicLength = output.length;\n let handledCPCount = basicLength;\n if (basicLength) {\n output.push(delimiter);\n }\n while (handledCPCount < inputLength) {\n let m = maxInt;\n for (const currentValue of inputArr) {\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n }\n const handledCPCountPlusOne = handledCPCount + 1;\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n error(\"overflow\");\n }\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n for (const currentValue of inputArr) {\n if (currentValue < n && ++delta > maxInt) {\n error(\"overflow\");\n }\n if (currentValue === n) {\n let q = delta;\n for (let k = base; ; k += base) {\n let t;\n if (k <= bias) {\n t = tMin;\n } else if (k >= bias + tMax) {\n t = tMax;\n } else {\n t = k - bias;\n }\n if (q < t) {\n break;\n }\n const qMinusT = q - t;\n const baseMinusT = base - t;\n output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0)));\n q = floor(qMinusT / baseMinusT);\n }\n output.push(stringFromCharCode(digitToBasic(q, 0)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount === basicLength);\n delta = 0;\n ++handledCPCount;\n }\n }\n ++delta;\n ++n;\n }\n return output.join(\"\");\n};\nconst toUnicode = function(input) {\n return mapDomain(input, (string) => {\n return regexPunycode.test(string) ? decode(string.slice(4).toLowerCase()) : string;\n });\n};\nconst toASCII = function(input) {\n return mapDomain(input, (string) => {\n return regexNonASCII.test(string) ? \"xn--\" + encode(string) : string;\n });\n};\nconst punycode = {\n version: \"2.3.1\",\n ucs2: {\n decode: ucs2decode,\n encode: ucs2encode\n },\n decode,\n encode,\n toASCII,\n toUnicode\n};\nif (typeof module !== \"undefined\" && typeof module.exports === \"object\" && module.exports !== null) {\n module.exports.punycode = punycode;\n}\n\nexport { punycode };\n//# sourceMappingURL=_punycode.js.map\n//# sourceMappingURL=_punycode.js.map","import { createRequire } from 'module';\nimport { punycode } from './_punycode.js';\n\ncreateRequire(import.meta.url);\nfunction safeDecodeURIComponent(str) {\n try {\n return decodeURIComponent(str);\n } catch {\n return str;\n }\n}\nconst decodeURL = (str) => {\n if (/^data:/i.test(str)) return str;\n try {\n const url = new URL(str);\n if (url.origin === \"null\") return str;\n const unicodeHost = punycode.toUnicode(url.hostname);\n const pathname = safeDecodeURIComponent(url.pathname);\n let search = \"\";\n if (url.search) {\n const params = new URLSearchParams(url.search);\n const decodedParams = [];\n for (const [key, value] of params.entries()) {\n decodedParams.push(`${safeDecodeURIComponent(key)}=${safeDecodeURIComponent(value)}`);\n }\n search = decodedParams.length ? \"?\" + decodedParams.join(\"&\") : \"\";\n }\n const hash = url.hash ? \"#\" + safeDecodeURIComponent(url.hash.slice(1)) : \"\";\n let result = url.protocol + \"//\";\n if (url.username || url.password) {\n result += url.username;\n if (url.password) result += \":\" + url.password;\n result += \"@\";\n }\n result += unicodeHost;\n if (url.port) result += \":\" + url.port;\n result += pathname + search + hash;\n if (/^file:/i.test(str) && !/\\/$/.test(str)) {\n result = result.replace(/\\/$/, \"\");\n }\n return result;\n } catch {\n if (str.startsWith(\"#\")) {\n return \"#\" + safeDecodeURIComponent(str.slice(1));\n }\n const [path, search = \"\"] = str.split(\"?\");\n const [pathname, hash = \"\"] = search.split(\"#\");\n let decoded = safeDecodeURIComponent(path);\n if (pathname) {\n decoded += \"?\" + safeDecodeURIComponent(pathname);\n }\n if (hash) {\n decoded += \"#\" + safeDecodeURIComponent(hash);\n }\n return decoded;\n }\n};\nvar decode_url_default = decodeURL;\nif (typeof module !== \"undefined\" && typeof module.exports === \"object\" && module.exports !== null) {\n module.exports = decodeURL;\n module.exports.default = decodeURL;\n}\n\nexport { decodeURL, decode_url_default as default };\n//# sourceMappingURL=decode_url.js.map\n//# sourceMappingURL=decode_url.js.map","import { createRequire } from 'module';\n\ncreateRequire(import.meta.url);\nfunction deepClone(param, seen = /* @__PURE__ */ new WeakMap()) {\n if (param === null || typeof param !== \"object\") {\n return param;\n }\n if (param instanceof Date) {\n return new Date(param.getTime());\n }\n if (param instanceof RegExp) {\n return new RegExp(param.source, param.flags);\n }\n if (param instanceof Map) {\n const result = /* @__PURE__ */ new Map();\n seen.set(param, result);\n for (const [k, v] of param) {\n result.set(deepClone(k, seen), deepClone(v, seen));\n }\n return result;\n }\n if (param instanceof Set) {\n const result = /* @__PURE__ */ new Set();\n seen.set(param, result);\n for (const v of param) {\n result.add(deepClone(v, seen));\n }\n return result;\n }\n if (typeof param === \"function\") {\n return param;\n }\n if (seen.has(param)) {\n return seen.get(param);\n }\n if (Array.isArray(param)) {\n const arr = [];\n seen.set(param, arr);\n for (const item of param) {\n arr.push(deepClone(item, seen));\n }\n return arr;\n }\n const newObj = {};\n seen.set(param, newObj);\n for (const key in param) {\n if (Object.prototype.hasOwnProperty.call(param, key)) {\n newObj[key] = deepClone(param[key], seen);\n }\n }\n const symbols = Object.getOwnPropertySymbols(param);\n for (const sym of symbols) {\n newObj[sym] = deepClone(param[sym], seen);\n }\n return newObj;\n}\nfunction isObject(item) {\n return !!item && typeof item === \"object\" && !Array.isArray(item);\n}\nfunction deepMerge(target, source, seen = /* @__PURE__ */ new WeakMap()) {\n if (source === null || typeof source !== \"object\") {\n return deepClone(source);\n }\n if (target === null || typeof target !== \"object\") {\n return deepClone(source);\n }\n if (seen.has(target)) {\n return seen.get(target);\n }\n if (Array.isArray(target) && Array.isArray(source)) {\n const maxLength = Math.max(target.length, source.length);\n const resultArr = [];\n seen.set(target, resultArr);\n for (let i = 0; i < maxLength; i++) {\n const tVal = target[i];\n const sVal = source[i];\n if (i in target && i in source) {\n if (Array.isArray(tVal) && Array.isArray(sVal)) {\n const union = [...tVal];\n for (const v of sVal) {\n if (!union.some((u) => u === v)) {\n union.push(v);\n }\n }\n resultArr[i] = union;\n } else if (Array.isArray(sVal)) {\n resultArr[i] = deepClone(sVal, seen);\n } else if (Array.isArray(tVal)) {\n resultArr[i] = deepClone(tVal, seen);\n } else if (isObject(tVal) && isObject(sVal)) {\n resultArr[i] = deepMerge(tVal, sVal, seen);\n } else if (tVal instanceof Date && sVal instanceof Date) {\n resultArr[i] = new Date(Math.max(tVal.getTime(), sVal.getTime()));\n } else if (tVal instanceof RegExp && sVal instanceof RegExp) {\n resultArr[i] = new RegExp(sVal.source, sVal.flags);\n } else if (tVal instanceof Map && sVal instanceof Map) {\n const merged = new Map(tVal);\n for (const [k, v] of sVal) {\n if (merged.has(k)) {\n merged.set(k, deepMerge(merged.get(k), v, seen));\n } else {\n merged.set(deepClone(k, seen), deepClone(v, seen));\n }\n }\n resultArr[i] = merged;\n } else if (tVal instanceof Set && sVal instanceof Set) {\n const merged = new Set(tVal);\n for (const v of sVal) {\n merged.add(deepClone(v, seen));\n }\n resultArr[i] = merged;\n } else if (typeof tVal === \"function\" && typeof sVal === \"function\") {\n resultArr[i] = sVal;\n } else if (typeof sVal !== \"undefined\") {\n resultArr[i] = deepClone(sVal, seen);\n } else {\n resultArr[i] = deepClone(tVal, seen);\n }\n } else if (i in source) {\n resultArr[i] = deepClone(sVal, seen);\n } else if (i in target) {\n resultArr[i] = deepClone(tVal, seen);\n }\n }\n return resultArr;\n }\n if (isObject(target) && isObject(source)) {\n const resultObj = { ...target };\n seen.set(target, resultObj);\n for (const key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n const tVal = target[key];\n const sVal = source[key];\n if (key in target) {\n if (tVal instanceof Date && sVal instanceof Date) {\n resultObj[key] = new Date(Math.max(tVal.getTime(), sVal.getTime()));\n } else if (tVal instanceof RegExp && sVal instanceof RegExp) {\n resultObj[key] = new RegExp(sVal.source, sVal.flags);\n } else if (tVal instanceof Map && sVal instanceof Map) {\n const merged = new Map(tVal);\n for (const [k, v] of sVal) {\n if (merged.has(k)) {\n merged.set(k, deepMerge(merged.get(k), v, seen));\n } else {\n merged.set(deepClone(k, seen), deepClone(v, seen));\n }\n }\n resultObj[key] = merged;\n } else if (tVal instanceof Set && sVal instanceof Set) {\n const merged = new Set(tVal);\n for (const v of sVal) {\n merged.add(deepClone(v, seen));\n }\n resultObj[key] = merged;\n } else if (typeof tVal === \"function\" && typeof sVal === \"function\") {\n resultObj[key] = sVal;\n } else {\n resultObj[key] = deepMerge(tVal, sVal, seen);\n }\n } else {\n resultObj[key] = deepClone(sVal, seen);\n }\n }\n }\n const sourceSymbols = Object.getOwnPropertySymbols(source);\n for (const sym of sourceSymbols) {\n const tVal = target[sym];\n const sVal = source[sym];\n if (Object.prototype.hasOwnProperty.call(target, sym)) {\n if (tVal instanceof Date && sVal instanceof Date) {\n resultObj[sym] = new Date(Math.max(tVal.getTime(), sVal.getTime()));\n } else if (tVal instanceof RegExp && sVal instanceof RegExp) {\n resultObj[sym] = new RegExp(sVal.source, sVal.flags);\n } else if (tVal instanceof Map && sVal instanceof Map) {\n const merged = new Map(tVal);\n for (const [k, v] of sVal) {\n if (merged.has(k)) {\n merged.set(k, deepMerge(merged.get(k), v, seen));\n } else {\n merged.set(deepClone(k, seen), deepClone(v, seen));\n }\n }\n resultObj[sym] = merged;\n } else if (tVal instanceof Set && sVal instanceof Set) {\n const merged = new Set(tVal);\n for (const v of sVal) {\n merged.add(deepClone(v, seen));\n }\n resultObj[sym] = merged;\n } else if (typeof tVal === \"function\" && typeof sVal === \"function\") {\n resultObj[sym] = sVal;\n } else {\n resultObj[sym] = deepMerge(tVal, sVal, seen);\n }\n } else {\n resultObj[sym] = deepClone(sVal, seen);\n }\n }\n return resultObj;\n }\n return deepClone(source);\n}\nvar deep_merge_default = deepMerge;\nif (typeof module !== \"undefined\" && typeof module.exports === \"object\" && module.exports !== null) {\n module.exports = deepMerge;\n module.exports.default = deepMerge;\n}\n\nexport { deep_merge_default as default };\n//# sourceMappingURL=deep_merge.js.map\n//# sourceMappingURL=deep_merge.js.map","import { createRequire } from 'module';\nimport { punycode } from './_punycode.js';\n\ncreateRequire(import.meta.url);\nfunction safeDecodeURIComponent(str) {\n try {\n return decodeURI(str);\n } catch {\n return str;\n }\n}\nconst encodeURL = (str) => {\n if (/^data:/i.test(str)) return str;\n try {\n const url = new URL(str);\n if (url.origin === \"null\") return str;\n const unicodeHost = punycode.toUnicode(url.hostname);\n const pathname = encodeURI(safeDecodeURIComponent(url.pathname));\n const search = new URLSearchParams(url.search).toString() ? \"?\" + new URLSearchParams(url.search).toString() : \"\";\n const hash = url.hash ? \"#\" + encodeURI(safeDecodeURIComponent(url.hash.slice(1))) : \"\";\n let result = url.protocol + \"//\";\n if (url.username || url.password) {\n result += url.username;\n if (url.password) result += \":\" + url.password;\n result += \"@\";\n }\n result += unicodeHost;\n if (url.port) result += \":\" + url.port;\n result += pathname + search + hash;\n if (/^file:/i.test(str) && !/\\/$/.test(str)) {\n result = result.replace(/\\/$/, \"\");\n }\n return result;\n } catch {\n if (str.startsWith(\"#\")) {\n return \"#\" + encodeURI(safeDecodeURIComponent(str.slice(1)));\n }\n const [path, search = \"\"] = str.split(\"?\");\n const [pathname, hash = \"\"] = search.split(\"#\");\n let encoded = encodeURI(safeDecodeURIComponent(path));\n if (pathname) {\n encoded += \"?\" + encodeURI(safeDecodeURIComponent(pathname));\n }\n if (hash) {\n encoded += \"#\" + encodeURI(safeDecodeURIComponent(hash));\n }\n return encoded;\n }\n};\nvar encode_url_default = encodeURL;\nif (typeof module !== \"undefined\" && typeof module.exports === \"object\" && module.exports !== null) {\n module.exports = encodeURL;\n module.exports.default = encodeURL;\n}\n\nexport { encode_url_default as default, encodeURL };\n//# sourceMappingURL=encode_url.js.map\n//# sourceMappingURL=encode_url.js.map","import { createRequire } from 'module';\n\ncreateRequire(import.meta.url);\nconst defaultDiacriticsRemovalap = [\n { \"base\": \"A\", \"letters\": \"A\\u24B6\\uFF21\\xC0\\xC1\\xC2\\u1EA6\\u1EA4\\u1EAA\\u1EA8\\xC3\\u0100\\u0102\\u1EB0\\u1EAE\\u1EB4\\u1EB2\\u0226\\u01E0\\xC4\\u01DE\\u1EA2\\xC5\\u01FA\\u01CD\\u0200\\u0202\\u1EA0\\u1EAC\\u1EB6\\u1E00\\u0104\\u023A\\u2C6F\" },\n { \"base\": \"AA\", \"letters\": \"\\uA732\" },\n { \"base\": \"AE\", \"letters\": \"\\xC6\\u01FC\\u01E2\" },\n { \"base\": \"AO\", \"letters\": \"\\uA734\" },\n { \"base\": \"AU\", \"letters\": \"\\uA736\" },\n { \"base\": \"AV\", \"letters\": \"\\uA738\\uA73A\" },\n { \"base\": \"AY\", \"letters\": \"\\uA73C\" },\n { \"base\": \"B\", \"letters\": \"B\\u24B7\\uFF22\\u1E02\\u1E04\\u1E06\\u0243\\u0182\\u0181\" },\n { \"base\": \"C\", \"letters\": \"C\\u24B8\\uFF23\\u0106\\u0108\\u010A\\u010C\\xC7\\u1E08\\u0187\\u023B\\uA73E\" },\n { \"base\": \"D\", \"letters\": \"D\\u24B9\\uFF24\\u1E0A\\u010E\\u1E0C\\u1E10\\u1E12\\u1E0E\\u0110\\u018B\\u018A\\u0189\\uA779\" },\n { \"base\": \"DZ\", \"letters\": \"\\u01F1\\u01C4\" },\n { \"base\": \"Dz\", \"letters\": \"\\u01F2\\u01C5\" },\n { \"base\": \"E\", \"letters\": \"E\\u24BA\\uFF25\\xC8\\xC9\\xCA\\u1EC0\\u1EBE\\u1EC4\\u1EC2\\u1EBC\\u0112\\u1E14\\u1E16\\u0114\\u0116\\xCB\\u1EBA\\u011A\\u0204\\u0206\\u1EB8\\u1EC6\\u0228\\u1E1C\\u0118\\u1E18\\u1E1A\\u0190\\u018E\" },\n { \"base\": \"F\", \"letters\": \"F\\u24BB\\uFF26\\u1E1E\\u0191\\uA77B\" },\n { \"base\": \"G\", \"letters\": \"G\\u24BC\\uFF27\\u01F4\\u011C\\u1E20\\u011E\\u0120\\u01E6\\u0122\\u01E4\\u0193\\uA7A0\\uA77D\\uA77E\" },\n { \"base\": \"H\", \"letters\": \"H\\u24BD\\uFF28\\u0124\\u1E22\\u1E26\\u021E\\u1E24\\u1E28\\u1E2A\\u0126\\u2C67\\u2C75\\uA78D\" },\n { \"base\": \"I\", \"letters\": \"I\\u24BE\\uFF29\\xCC\\xCD\\xCE\\u0128\\u012A\\u012C\\u0130\\xCF\\u1E2E\\u1EC8\\u01CF\\u0208\\u020A\\u1ECA\\u012E\\u1E2C\\u0197\" },\n { \"base\": \"J\", \"letters\": \"J\\u24BF\\uFF2A\\u0134\\u0248\" },\n { \"base\": \"K\", \"letters\": \"K\\u24C0\\uFF2B\\u1E30\\u01E8\\u1E32\\u0136\\u1E34\\u0198\\u2C69\\uA740\\uA742\\uA744\\uA7A2\" },\n { \"base\": \"L\", \"letters\": \"L\\u24C1\\uFF2C\\u013F\\u0139\\u013D\\u1E36\\u1E38\\u013B\\u1E3C\\u1E3A\\u0141\\u023D\\u2C62\\u2C60\\uA748\\uA746\\uA780\" },\n { \"base\": \"LJ\", \"letters\": \"\\u01C7\" },\n { \"base\": \"Lj\", \"letters\": \"\\u01C8\" },\n { \"base\": \"M\", \"letters\": \"M\\u24C2\\uFF2D\\u1E3E\\u1E40\\u1E42\\u2C6E\\u019C\" },\n { \"base\": \"N\", \"letters\": \"N\\u24C3\\uFF2E\\u01F8\\u0143\\xD1\\u1E44\\u0147\\u1E46\\u0145\\u1E4A\\u1E48\\u0220\\u019D\\uA790\\uA7A4\" },\n { \"base\": \"NJ\", \"letters\": \"\\u01CA\" },\n { \"base\": \"Nj\", \"letters\": \"\\u01CB\" },\n { \"base\": \"O\", \"letters\": \"O\\u24C4\\uFF2F\\xD2\\xD3\\xD4\\u1ED2\\u1ED0\\u1ED6\\u1ED4\\xD5\\u1E4C\\u022C\\u1E4E\\u014C\\u1E50\\u1E52\\u014E\\u022E\\u0230\\xD6\\u022A\\u1ECE\\u0150\\u01D1\\u020C\\u020E\\u01A0\\u1EDC\\u1EDA\\u1EE0\\u1EDE\\u1EE2\\u1ECC\\u1ED8\\u01EA\\u01EC\\xD8\\u01FE\\u0186\\u019F\\uA74A\\uA74C\" },\n { \"base\": \"OI\", \"letters\": \"\\u01A2\" },\n { \"base\": \"OO\", \"letters\": \"\\uA74E\" },\n { \"base\": \"OU\", \"letters\": \"\\u0222\" },\n { \"base\": \"OE\", \"letters\": \"\\x8C\\u0152\" },\n { \"base\": \"oe\", \"letters\": \"\\x9C\\u0153\" },\n { \"base\": \"P\", \"letters\": \"P\\u24C5\\uFF30\\u1E54\\u1E56\\u01A4\\u2C63\\uA750\\uA752\\uA754\" },\n { \"base\": \"Q\", \"letters\": \"Q\\u24C6\\uFF31\\uA756\\uA758\\u024A\" },\n { \"base\": \"R\", \"letters\": \"R\\u24C7\\uFF32\\u0154\\u1E58\\u0158\\u0210\\u0212\\u1E5A\\u1E5C\\u0156\\u1E5E\\u024C\\u2C64\\uA75A\\uA7A6\\uA782\" },\n { \"base\": \"S\", \"letters\": \"S\\u24C8\\uFF33\\u1E9E\\u015A\\u1E64\\u015C\\u1E60\\u0160\\u1E66\\u1E62\\u1E68\\u0218\\u015E\\u2C7E\\uA7A8\\uA784\" },\n { \"base\": \"T\", \"letters\": \"T\\u24C9\\uFF34\\u1E6A\\u0164\\u1E6C\\u021A\\u0162\\u1E70\\u1E6E\\u0166\\u01AC\\u01AE\\u023E\\uA786\" },\n { \"base\": \"TZ\", \"letters\": \"\\uA728\" },\n { \"base\": \"U\", \"letters\": \"U\\u24CA\\uFF35\\xD9\\xDA\\xDB\\u0168\\u1E78\\u016A\\u1E7A\\u016C\\xDC\\u01DB\\u01D7\\u01D5\\u01D9\\u1EE6\\u016E\\u0170\\u01D3\\u0214\\u0216\\u01AF\\u1EEA\\u1EE8\\u1EEE\\u1EEC\\u1EF0\\u1EE4\\u1E72\\u0172\\u1E76\\u1E74\\u0244\" },\n { \"base\": \"V\", \"letters\": \"V\\u24CB\\uFF36\\u1E7C\\u1E7E\\u01B2\\uA75E\\u0245\" },\n { \"base\": \"VY\", \"letters\": \"\\uA760\" },\n { \"base\": \"W\", \"letters\": \"W\\u24CC\\uFF37\\u1E80\\u1E82\\u0174\\u1E86\\u1E84\\u1E88\\u2C72\" },\n { \"base\": \"X\", \"letters\": \"X\\u24CD\\uFF38\\u1E8A\\u1E8C\" },\n { \"base\": \"Y\", \"letters\": \"Y\\u24CE\\uFF39\\u1EF2\\xDD\\u0176\\u1EF8\\u0232\\u1E8E\\u0178\\u1EF6\\u1EF4\\u01B3\\u024E\\u1EFE\" },\n { \"base\": \"Z\", \"letters\": \"Z\\u24CF\\uFF3A\\u0179\\u1E90\\u017B\\u017D\\u1E92\\u1E94\\u01B5\\u0224\\u2C7F\\u2C6B\\uA762\" },\n { \"base\": \"a\", \"letters\": \"a\\u24D0\\uFF41\\u1E9A\\xE0\\xE1\\xE2\\u1EA7\\u1EA5\\u1EAB\\u1EA9\\xE3\\u0101\\u0103\\u1EB1\\u1EAF\\u1EB5\\u1EB3\\u0227\\u01E1\\xE4\\u01DF\\u1EA3\\xE5\\u01FB\\u01CE\\u0201\\u0203\\u1EA1\\u1EAD\\u1EB7\\u1E01\\u0105\\u2C65\\u0250\" },\n { \"base\": \"aa\", \"letters\": \"\\uA733\" },\n { \"base\": \"ae\", \"letters\": \"\\xE6\\u01FD\\u01E3\" },\n { \"base\": \"ao\", \"letters\": \"\\uA735\" },\n { \"base\": \"au\", \"letters\": \"\\uA737\" },\n { \"base\": \"av\", \"letters\": \"\\uA739\\uA73B\" },\n { \"base\": \"ay\", \"letters\": \"\\uA73D\" },\n { \"base\": \"b\", \"letters\": \"b\\u24D1\\uFF42\\u1E03\\u1E05\\u1E07\\u0180\\u0183\\u0253\" },\n { \"base\": \"c\", \"letters\": \"c\\u24D2\\uFF43\\u0107\\u0109\\u010B\\u010D\\xE7\\u1E09\\u0188\\u023C\\uA73F\\u2184\" },\n { \"base\": \"d\", \"letters\": \"d\\u24D3\\uFF44\\u1E0B\\u010F\\u1E0D\\u1E11\\u1E13\\u1E0F\\u0111\\u018C\\u0256\\u0257\\uA77A\" },\n { \"base\": \"dz\", \"letters\": \"\\u01F3\\u01C6\" },\n { \"base\": \"e\", \"letters\": \"e\\u24D4\\uFF45\\xE8\\xE9\\xEA\\u1EC1\\u1EBF\\u1EC5\\u1EC3\\u1EBD\\u0113\\u1E15\\u1E17\\u0115\\u0117\\xEB\\u1EBB\\u011B\\u0205\\u0207\\u1EB9\\u1EC7\\u0229\\u1E1D\\u0119\\u1E19\\u1E1B\\u0247\\u025B\\u01DD\" },\n { \"base\": \"f\", \"letters\": \"f\\u24D5\\uFF46\\u1E1F\\u0192\\uA77C\" },\n { \"base\": \"g\", \"letters\": \"g\\u24D6\\uFF47\\u01F5\\u011D\\u1E21\\u011F\\u0121\\u01E7\\u0123\\u01E5\\u0260\\uA7A1\\u1D79\\uA77F\" },\n { \"base\": \"h\", \"letters\": \"h\\u24D7\\uFF48\\u0125\\u1E23\\u1E27\\u021F\\u1E25\\u1E29\\u1E2B\\u1E96\\u0127\\u2C68\\u2C76\\u0265\" },\n { \"base\": \"hv\", \"letters\": \"\\u0195\" },\n { \"base\": \"i\", \"letters\": \"i\\u24D8\\uFF49\\xEC\\xED\\xEE\\u0129\\u012B\\u012D\\xEF\\u1E2F\\u1EC9\\u01D0\\u0209\\u020B\\u1ECB\\u012F\\u1E2D\\u0268\\u0131\" },\n { \"base\": \"j\", \"letters\": \"j\\u24D9\\uFF4A\\u0135\\u01F0\\u0249\" },\n { \"base\": \"k\", \"letters\": \"k\\u24DA\\uFF4B\\u1E31\\u01E9\\u1E33\\u0137\\u1E35\\u0199\\u2C6A\\uA741\\uA743\\uA745\\uA7A3\" },\n { \"base\": \"l\", \"letters\": \"l\\u24DB\\uFF4C\\u0140\\u013A\\u013E\\u1E37\\u1E39\\u013C\\u1E3D\\u1E3B\\u017F\\u0142\\u019A\\u026B\\u2C61\\uA749\\uA781\\uA747\" },\n { \"base\": \"lj\", \"letters\": \"\\u01C9\" },\n { \"base\": \"m\", \"letters\": \"m\\u24DC\\uFF4D\\u1E3F\\u1E41\\u1E43\\u0271\\u026F\" },\n { \"base\": \"n\", \"letters\": \"n\\u24DD\\uFF4E\\u01F9\\u0144\\xF1\\u1E45\\u0148\\u1E47\\u0146\\u1E4B\\u1E49\\u019E\\u0272\\u0149\\uA791\\uA7A5\" },\n { \"base\": \"nj\", \"letters\": \"\\u01CC\" },\n { \"base\": \"o\", \"letters\": \"o\\u24DE\\uFF4F\\xF2\\xF3\\xF4\\u1ED3\\u1ED1\\u1ED7\\u1ED5\\xF5\\u1E4D\\u022D\\u1E4F\\u014D\\u1E51\\u1E53\\u014F\\u022F\\u0231\\xF6\\u022B\\u1ECF\\u0151\\u01D2\\u020D\\u020F\\u01A1\\u1EDD\\u1EDB\\u1EE1\\u1EDF\\u1EE3\\u1ECD\\u1ED9\\u01EB\\u01ED\\xF8\\u01FF\\u0254\\uA74B\\uA74D\\u0275\" },\n { \"base\": \"oi\", \"letters\": \"\\u01A3\" },\n { \"base\": \"ou\", \"letters\": \"\\u0223\" },\n { \"base\": \"oo\", \"letters\": \"\\uA74F\" },\n { \"base\": \"p\", \"letters\": \"p\\u24DF\\uFF50\\u1E55\\u1E57\\u01A5\\u1D7D\\uA751\\uA753\\uA755\" },\n { \"base\": \"q\", \"letters\": \"q\\u24E0\\uFF51\\u024B\\uA757\\uA759\" },\n { \"base\": \"r\", \"letters\": \"r\\u24E1\\uFF52\\u0155\\u1E59\\u0159\\u0211\\u0213\\u1E5B\\u1E5D\\u0157\\u1E5F\\u024D\\u027D\\uA75B\\uA7A7\\uA783\" },\n { \"base\": \"s\", \"letters\": \"s\\u24E2\\uFF53\\xDF\\u015B\\u1E65\\u015D\\u1E61\\u0161\\u1E67\\u1E63\\u1E69\\u0219\\u015F\\u023F\\uA7A9\\uA785\\u1E9B\" },\n { \"base\": \"t\", \"letters\": \"t\\u24E3\\uFF54\\u1E6B\\u1E97\\u0165\\u1E6D\\u021B\\u0163\\u1E71\\u1E6F\\u0167\\u01AD\\u0288\\u2C66\\uA787\" },\n { \"base\": \"tz\", \"letters\": \"\\uA729\" },\n { \"base\": \"u\", \"letters\": \"u\\u24E4\\uFF55\\xF9\\xFA\\xFB\\u0169\\u1E79\\u016B\\u1E7B\\u016D\\xFC\\u01DC\\u01D8\\u01D6\\u01DA\\u1EE7\\u016F\\u0171\\u01D4\\u0215\\u0217\\u01B0\\u1EEB\\u1EE9\\u1EEF\\u1EED\\u1EF1\\u1EE5\\u1E73\\u0173\\u1E77\\u1E75\\u0289\" },\n { \"base\": \"v\", \"letters\": \"v\\u24E5\\uFF56\\u1E7D\\u1E7F\\u028B\\uA75F\\u028C\" },\n { \"base\": \"vy\", \"letters\": \"\\uA761\" },\n { \"base\": \"w\", \"letters\": \"w\\u24E6\\uFF57\\u1E81\\u1E83\\u0175\\u1E87\\u1E85\\u1E98\\u1E89\\u2C73\" },\n { \"base\": \"x\", \"letters\": \"x\\u24E7\\uFF58\\u1E8B\\u1E8D\" },\n { \"base\": \"y\", \"letters\": \"y\\u24E8\\uFF59\\u1EF3\\xFD\\u0177\\u1EF9\\u0233\\u1E8F\\xFF\\u1EF7\\u1E99\\u1EF5\\u01B4\\u024F\\u1EFF\" },\n { \"base\": \"z\", \"letters\": \"z\\u24E9\\uFF5A\\u017A\\u1E91\\u017C\\u017E\\u1E93\\u1E95\\u01B6\\u0225\\u0240\\u2C6C\\uA763\" }\n];\nconst diacriticsMap = {};\nfor (const i of defaultDiacriticsRemovalap) {\n const letters = i.letters.split(\"\");\n for (const letter of letters) {\n diacriticsMap[letter] = i.base;\n }\n}\nfunction escapeDiacritic(str) {\n if (typeof str !== \"string\") throw new TypeError(\"str must be a string!\");\n return str.replace(/[^\\u0000-\\u007E]/g, (a) => diacriticsMap[a] || a);\n}\nvar escape_diacritic_default = escapeDiacritic;\nif (typeof module !== \"undefined\" && typeof module.exports === \"object\" && module.exports !== null) {\n module.exports = escapeDiacritic;\n module.exports.default = escapeDiacritic;\n}\n\nexport { escape_diacritic_default as default };\n//# sourceMappingURL=escape_diacritic.js.map\n//# sourceMappingURL=escape_diacritic.js.map","import { createRequire } from 'module';\n\ncreateRequire(import.meta.url);\nconst escapeTestNoEncode = /[<>\"'`/=]|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/;\nconst escapeReplaceNoEncode = new RegExp(escapeTestNoEncode.source, \"g\");\nconst escapeReplacements = {\n \"&\": \"&\",\n \"<\": \"<\",\n \">\": \">\",\n '\"': \""\",\n \"'\": \"'\",\n \"`\": \"`\",\n \"/\": \"/\",\n \"=\": \"=\"\n};\nconst getEscapeReplacement = (ch) => escapeReplacements[ch];\nfunction escapeHTML(str) {\n if (typeof str !== \"string\") throw new TypeError(\"str must be a string!\");\n if (escapeTestNoEncode.test(str)) {\n return str.replace(escapeReplaceNoEncode, getEscapeReplacement);\n }\n return str;\n}\nvar escape_html_default = escapeHTML;\nif (typeof module !== \"undefined\" && typeof module.exports === \"object\" && module.exports !== null) {\n module.exports = escapeHTML;\n module.exports.default = escapeHTML;\n}\n\nexport { escape_html_default as default };\n//# sourceMappingURL=escape_html.js.map\n//# sourceMappingURL=escape_html.js.map","import { createRequire } from 'module';\n\ncreateRequire(import.meta.url);\nfunction escapeRegExp(str) {\n if (typeof str !== \"string\") throw new TypeError(\"str must be a string!\");\n return str.replace(/[-[\\]/{}()*+?.\\\\^$|]/g, \"\\\\$&\");\n}\nvar escape_regexp_default = escapeRegExp;\nif (typeof module !== \"undefined\" && typeof module.exports === \"object\" && module.exports !== null) {\n module.exports = escapeRegExp;\n module.exports.default = escapeRegExp;\n}\n\nexport { escape_regexp_default as default };\n//# sourceMappingURL=escape_regexp.js.map\n//# sourceMappingURL=escape_regexp.js.map","import { createRequire } from 'module';\n\ncreateRequire(import.meta.url);\nfunction prettyUrls(url, options = {}) {\n options = Object.assign({\n trailing_index: true,\n trailing_html: true\n }, options);\n const indexPattern = /index\\.html$/;\n if (options.trailing_index === false) url = url.replace(indexPattern, \"\");\n if (options.trailing_html === false && !indexPattern.test(url)) {\n url = url.replace(/\\.html$/, \"\");\n }\n return url;\n}\nvar pretty_urls_default = prettyUrls;\nif (typeof module !== \"undefined\" && typeof module.exports === \"object\" && module.exports !== null) {\n module.exports = prettyUrls;\n module.exports.default = prettyUrls;\n}\n\nexport { pretty_urls_default as default };\n//# sourceMappingURL=pretty_urls.js.map\n//# sourceMappingURL=pretty_urls.js.map","import { createRequire } from 'module';\nimport encodeURL from './encode_url.js';\nimport prettyUrls from './pretty_urls.js';\nimport Cache from './cache.js';\n\ncreateRequire(import.meta.url);\nconst cache = new Cache();\nfunction fullUrlForHelper(path = \"/\") {\n const { config = {} } = this || {};\n const prettyUrlsOptions = Object.assign({\n trailing_index: true,\n trailing_html: true\n }, config.pretty_urls);\n return cache.apply(`${config.url}-${prettyUrlsOptions.trailing_index}-${prettyUrlsOptions.trailing_html}-${path}`, () => {\n if (/^(\\/\\/|http(s)?:)/.test(path)) return path;\n let sitehost = \"\";\n try {\n sitehost = new URL(config.url).hostname;\n } catch {\n sitehost = config.url;\n }\n const data = new URL(path, `http://${sitehost}`);\n if (data.hostname !== sitehost || data.origin === \"null\") return path;\n path = encodeURL(config.url + `/${path}`.replace(/\\/{2,}/g, \"/\"));\n path = prettyUrls(path, prettyUrlsOptions);\n return path;\n });\n}\nvar full_url_for_default = fullUrlForHelper;\nif (typeof module !== \"undefined\" && typeof module.exports === \"object\" && module.exports !== null) {\n module.exports = fullUrlForHelper;\n module.exports.default = fullUrlForHelper;\n}\n\nexport { full_url_for_default as default, fullUrlForHelper };\n//# sourceMappingURL=full_url_for.js.map\n//# sourceMappingURL=full_url_for.js.map","import { createRequire } from 'module';\nimport { createHash } from 'crypto';\nimport { stringify } from 'querystring';\nimport Cache from './cache.js';\n\ncreateRequire(import.meta.url);\nconst cache = new Cache();\nfunction md5(str) {\n return createHash(\"md5\").update(str).digest(\"hex\");\n}\nfunction gravatarHelper(email, options) {\n if (typeof options === \"number\") {\n options = { s: options };\n }\n const hash = cache.has(email) ? cache.get(email) : md5(email.toLowerCase());\n let str = `https://www.gravatar.com/avatar/${hash}`;\n const qs = stringify(options);\n if (qs) str += `?${qs}`;\n cache.set(\"email\", hash);\n return str;\n}\nvar gravatar_default = gravatarHelper;\nif (typeof module !== \"undefined\" && typeof module.exports === \"object\" && module.exports !== null) {\n module.exports = gravatarHelper;\n module.exports.default = gravatarHelper;\n}\n\nexport { gravatar_default as default, gravatarHelper };\n//# sourceMappingURL=gravatar.js.map\n//# sourceMappingURL=gravatar.js.map","/* eslint-disable no-multi-assign */\n\nfunction deepFreeze(obj) {\n if (obj instanceof Map) {\n obj.clear =\n obj.delete =\n obj.set =\n function () {\n throw new Error('map is read-only');\n };\n } else if (obj instanceof Set) {\n obj.add =\n obj.clear =\n obj.delete =\n function () {\n throw new Error('set is read-only');\n };\n }\n\n // Freeze self\n Object.freeze(obj);\n\n Object.getOwnPropertyNames(obj).forEach((name) => {\n const prop = obj[name];\n const type = typeof prop;\n\n // Freeze prop if it is an object or function and also not already frozen\n if ((type === 'object' || type === 'function') && !Object.isFrozen(prop)) {\n deepFreeze(prop);\n }\n });\n\n return obj;\n}\n\n/** @typedef {import('highlight.js').CallbackResponse} CallbackResponse */\n/** @typedef {import('highlight.js').CompiledMode} CompiledMode */\n/** @implements CallbackResponse */\n\nclass Response {\n /**\n * @param {CompiledMode} mode\n */\n constructor(mode) {\n // eslint-disable-next-line no-undefined\n if (mode.data === undefined) mode.data = {};\n\n this.data = mode.data;\n this.isMatchIgnored = false;\n }\n\n ignoreMatch() {\n this.isMatchIgnored = true;\n }\n}\n\n/**\n * @param {string} value\n * @returns {string}\n */\nfunction escapeHTML(value) {\n return value\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n}\n\n/**\n * performs a shallow merge of multiple objects into one\n *\n * @template T\n * @param {T} original\n * @param {Record<string,any>[]} objects\n * @returns {T} a single new object\n */\nfunction inherit$1(original, ...objects) {\n /** @type Record<string,any> */\n const result = Object.create(null);\n\n for (const key in original) {\n result[key] = original[key];\n }\n objects.forEach(function(obj) {\n for (const key in obj) {\n result[key] = obj[key];\n }\n });\n return /** @type {T} */ (result);\n}\n\n/**\n * @typedef {object} Renderer\n * @property {(text: string) => void} addText\n * @property {(node: Node) => void} openNode\n * @property {(node: Node) => void} closeNode\n * @property {() => string} value\n */\n\n/** @typedef {{scope?: string, language?: string, sublanguage?: boolean}} Node */\n/** @typedef {{walk: (r: Renderer) => void}} Tree */\n/** */\n\nconst SPAN_CLOSE = '</span>';\n\n/**\n * Determines if a node needs to be wrapped in <span>\n *\n * @param {Node} node */\nconst emitsWrappingTags = (node) => {\n // rarely we can have a sublanguage where language is undefined\n // TODO: track down why\n return !!node.scope;\n};\n\n/**\n *\n * @param {string} name\n * @param {{prefix:string}} options\n */\nconst scopeToCSSClass = (name, { prefix }) => {\n // sub-language\n if (name.startsWith(\"language:\")) {\n return name.replace(\"language:\", \"language-\");\n }\n // tiered scope: comment.line\n if (name.includes(\".\")) {\n const pieces = name.split(\".\");\n return [\n `${prefix}${pieces.shift()}`,\n ...(pieces.map((x, i) => `${x}${\"_\".repeat(i + 1)}`))\n ].join(\" \");\n }\n // simple scope\n return `${prefix}${name}`;\n};\n\n/** @type {Renderer} */\nclass HTMLRenderer {\n /**\n * Creates a new HTMLRenderer\n *\n * @param {Tree} parseTree - the parse tree (must support `walk` API)\n * @param {{classPrefix: string}} options\n */\n constructor(parseTree, options) {\n this.buffer = \"\";\n this.classPrefix = options.classPrefix;\n parseTree.walk(this);\n }\n\n /**\n * Adds texts to the output stream\n *\n * @param {string} text */\n addText(text) {\n this.buffer += escapeHTML(text);\n }\n\n /**\n * Adds a node open to the output stream (if needed)\n *\n * @param {Node} node */\n openNode(node) {\n if (!emitsWrappingTags(node)) return;\n\n const className = scopeToCSSClass(node.scope,\n { prefix: this.classPrefix });\n this.span(className);\n }\n\n /**\n * Adds a node close to the output stream (if needed)\n *\n * @param {Node} node */\n closeNode(node) {\n if (!emitsWrappingTags(node)) return;\n\n this.buffer += SPAN_CLOSE;\n }\n\n /**\n * returns the accumulated buffer\n */\n value() {\n return this.buffer;\n }\n\n // helpers\n\n /**\n * Builds a span element\n *\n * @param {string} className */\n span(className) {\n this.buffer += `<span class=\"${className}\">`;\n }\n}\n\n/** @typedef {{scope?: string, language?: string, children: Node[]} | string} Node */\n/** @typedef {{scope?: string, language?: string, children: Node[]} } DataNode */\n/** @typedef {import('highlight.js').Emitter} Emitter */\n/** */\n\n/** @returns {DataNode} */\nconst newNode = (opts = {}) => {\n /** @type DataNode */\n const result = { children: [] };\n Object.assign(result, opts);\n return result;\n};\n\nclass TokenTree {\n constructor() {\n /** @type DataNode */\n this.rootNode = newNode();\n this.stack = [this.rootNode];\n }\n\n get top() {\n return this.stack[this.stack.length - 1];\n }\n\n get root() { return this.rootNode; }\n\n /** @param {Node} node */\n add(node) {\n this.top.children.push(node);\n }\n\n /** @param {string} scope */\n openNode(scope) {\n /** @type Node */\n const node = newNode({ scope });\n this.add(node);\n this.stack.push(node);\n }\n\n closeNode() {\n if (this.stack.length > 1) {\n return this.stack.pop();\n }\n // eslint-disable-next-line no-undefined\n return undefined;\n }\n\n closeAllNodes() {\n while (this.closeNode());\n }\n\n toJSON() {\n return JSON.stringify(this.rootNode, null, 4);\n }\n\n /**\n * @typedef { import(\"./html_renderer\").Renderer } Renderer\n * @param {Renderer} builder\n */\n walk(builder) {\n // this does not\n return this.constructor._walk(builder, this.rootNode);\n // this works\n // return TokenTree._walk(builder, this.rootNode);\n }\n\n /**\n * @param {Renderer} builder\n * @param {Node} node\n */\n static _walk(builder, node) {\n if (typeof node === \"string\") {\n builder.addText(node);\n } else if (node.children) {\n builder.openNode(node);\n node.children.forEach((child) => this._walk(builder, child));\n builder.closeNode(node);\n }\n return builder;\n }\n\n /**\n * @param {Node} node\n */\n static _collapse(node) {\n if (typeof node === \"string\") return;\n if (!node.children) return;\n\n if (node.children.every(el => typeof el === \"string\")) {\n // node.text = node.children.join(\"\");\n // delete node.children;\n node.children = [node.children.join(\"\")];\n } else {\n node.children.forEach((child) => {\n TokenTree._collapse(child);\n });\n }\n }\n}\n\n/**\n Currently this is all private API, but this is the minimal API necessary\n that an Emitter must implement to fully support the parser.\n\n Minimal interface:\n\n - addText(text)\n - __addSublanguage(emitter, subLanguageName)\n - startScope(scope)\n - endScope()\n - finalize()\n - toHTML()\n\n*/\n\n/**\n * @implements {Emitter}\n */\nclass TokenTreeEmitter extends TokenTree {\n /**\n * @param {*} options\n */\n constructor(options) {\n super();\n this.options = options;\n }\n\n /**\n * @param {string} text\n */\n addText(text) {\n if (text === \"\") { return; }\n\n this.add(text);\n }\n\n /** @param {string} scope */\n startScope(scope) {\n this.openNode(scope);\n }\n\n endScope() {\n this.closeNode();\n }\n\n /**\n * @param {Emitter & {root: DataNode}} emitter\n * @param {string} name\n */\n __addSublanguage(emitter, name) {\n /** @type DataNode */\n const node = emitter.root;\n if (name) node.scope = `language:${name}`;\n\n this.add(node);\n }\n\n toHTML() {\n const renderer = new HTMLRenderer(this, this.options);\n return renderer.value();\n }\n\n finalize() {\n this.closeAllNodes();\n return true;\n }\n}\n\n/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction lookahead(re) {\n return concat('(?=', re, ')');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction anyNumberOfTimes(re) {\n return concat('(?:', re, ')*');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction optional(re) {\n return concat('(?:', re, ')?');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/**\n * @param { Array<string | RegExp | Object> } args\n * @returns {object}\n */\nfunction stripOptionsFromArgs(args) {\n const opts = args[args.length - 1];\n\n if (typeof opts === 'object' && opts.constructor === Object) {\n args.splice(args.length - 1, 1);\n return opts;\n } else {\n return {};\n }\n}\n\n/** @typedef { {capture?: boolean} } RegexEitherOptions */\n\n/**\n * Any of the passed expresssions may match\n *\n * Creates a huge this | this | that | that match\n * @param {(RegExp | string)[] | [...(RegExp | string)[], RegexEitherOptions]} args\n * @returns {string}\n */\nfunction either(...args) {\n /** @type { object & {capture?: boolean} } */\n const opts = stripOptionsFromArgs(args);\n const joined = '('\n + (opts.capture ? \"\" : \"?:\")\n + args.map((x) => source(x)).join(\"|\") + \")\";\n return joined;\n}\n\n/**\n * @param {RegExp | string} re\n * @returns {number}\n */\nfunction countMatchGroups(re) {\n return (new RegExp(re.toString() + '|')).exec('').length - 1;\n}\n\n/**\n * Does lexeme start with a regular expression match at the beginning\n * @param {RegExp} re\n * @param {string} lexeme\n */\nfunction startsWith(re, lexeme) {\n const match = re && re.exec(lexeme);\n return match && match.index === 0;\n}\n\n// BACKREF_RE matches an open parenthesis or backreference. To avoid\n// an incorrect parse, it additionally matches the following:\n// - [...] elements, where the meaning of parentheses and escapes change\n// - other escape sequences, so we do not misparse escape sequences as\n// interesting elements\n// - non-matching or lookahead parentheses, which do not capture. These\n// follow the '(' with a '?'.\nconst BACKREF_RE = /\\[(?:[^\\\\\\]]|\\\\.)*\\]|\\(\\??|\\\\([1-9][0-9]*)|\\\\./;\n\n// **INTERNAL** Not intended for outside usage\n// join logically computes regexps.join(separator), but fixes the\n// backreferences so they continue to match.\n// it also places each individual regular expression into it's own\n// match group, keeping track of the sequencing of those match groups\n// is currently an exercise for the caller. :-)\n/**\n * @param {(string | RegExp)[]} regexps\n * @param {{joinWith: string}} opts\n * @returns {string}\n */\nfunction _rewriteBackreferences(regexps, { joinWith }) {\n let numCaptures = 0;\n\n return regexps.map((regex) => {\n numCaptures += 1;\n const offset = numCaptures;\n let re = source(regex);\n let out = '';\n\n while (re.length > 0) {\n const match = BACKREF_RE.exec(re);\n if (!match) {\n out += re;\n break;\n }\n out += re.substring(0, match.index);\n re = re.substring(match.index + match[0].length);\n if (match[0][0] === '\\\\' && match[1]) {\n // Adjust the backreference.\n out += '\\\\' + String(Number(match[1]) + offset);\n } else {\n out += match[0];\n if (match[0] === '(') {\n numCaptures++;\n }\n }\n }\n return out;\n }).map(re => `(${re})`).join(joinWith);\n}\n\n/** @typedef {import('highlight.js').Mode} Mode */\n/** @typedef {import('highlight.js').ModeCallback} ModeCallback */\n\n// Common regexps\nconst MATCH_NOTHING_RE = /\\b\\B/;\nconst IDENT_RE = '[a-zA-Z]\\\\w*';\nconst UNDERSCORE_IDENT_RE = '[a-zA-Z_]\\\\w*';\nconst NUMBER_RE = '\\\\b\\\\d+(\\\\.\\\\d+)?';\nconst C_NUMBER_RE = '(-?)(\\\\b0[xX][a-fA-F0-9]+|(\\\\b\\\\d+(\\\\.\\\\d*)?|\\\\.\\\\d+)([eE][-+]?\\\\d+)?)'; // 0x..., 0..., decimal, float\nconst BINARY_NUMBER_RE = '\\\\b(0b[01]+)'; // 0b...\nconst RE_STARTERS_RE = '!|!=|!==|%|%=|&|&&|&=|\\\\*|\\\\*=|\\\\+|\\\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\\\?|\\\\[|\\\\{|\\\\(|\\\\^|\\\\^=|\\\\||\\\\|=|\\\\|\\\\||~';\n\n/**\n* @param { Partial<Mode> & {binary?: string | RegExp} } opts\n*/\nconst SHEBANG = (opts = {}) => {\n const beginShebang = /^#![ ]*\\//;\n if (opts.binary) {\n opts.begin = concat(\n beginShebang,\n /.*\\b/,\n opts.binary,\n /\\b.*/);\n }\n return inherit$1({\n scope: 'meta',\n begin: beginShebang,\n end: /$/,\n relevance: 0,\n /** @type {ModeCallback} */\n \"on:begin\": (m, resp) => {\n if (m.index !== 0) resp.ignoreMatch();\n }\n }, opts);\n};\n\n// Common modes\nconst BACKSLASH_ESCAPE = {\n begin: '\\\\\\\\[\\\\s\\\\S]', relevance: 0\n};\nconst APOS_STRING_MODE = {\n scope: 'string',\n begin: '\\'',\n end: '\\'',\n illegal: '\\\\n',\n contains: [BACKSLASH_ESCAPE]\n};\nconst QUOTE_STRING_MODE = {\n scope: 'string',\n begin: '\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [BACKSLASH_ESCAPE]\n};\nconst PHRASAL_WORDS_MODE = {\n begin: /\\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\\b/\n};\n/**\n * Creates a comment mode\n *\n * @param {string | RegExp} begin\n * @param {string | RegExp} end\n * @param {Mode | {}} [modeOptions]\n * @returns {Partial<Mode>}\n */\nconst COMMENT = function(begin, end, modeOptions = {}) {\n const mode = inherit$1(\n {\n scope: 'comment',\n begin,\n end,\n contains: []\n },\n modeOptions\n );\n mode.contains.push({\n scope: 'doctag',\n // hack to avoid the space from being included. the space is necessary to\n // match here to prevent the plain text rule below from gobbling up doctags\n begin: '[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)',\n end: /(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,\n excludeBegin: true,\n relevance: 0\n });\n const ENGLISH_WORD = either(\n // list of common 1 and 2 letter words in English\n \"I\",\n \"a\",\n \"is\",\n \"so\",\n \"us\",\n \"to\",\n \"at\",\n \"if\",\n \"in\",\n \"it\",\n \"on\",\n // note: this is not an exhaustive list of contractions, just popular ones\n /[A-Za-z]+['](d|ve|re|ll|t|s|n)/, // contractions - can't we'd they're let's, etc\n /[A-Za-z]+[-][a-z]+/, // `no-way`, etc.\n /[A-Za-z][a-z]{2,}/ // allow capitalized words at beginning of sentences\n );\n // looking like plain text, more likely to be a comment\n mode.contains.push(\n {\n // TODO: how to include \", (, ) without breaking grammars that use these for\n // comment delimiters?\n // begin: /[ ]+([()\"]?([A-Za-z'-]{3,}|is|a|I|so|us|[tT][oO]|at|if|in|it|on)[.]?[()\":]?([.][ ]|[ ]|\\))){3}/\n // ---\n\n // this tries to find sequences of 3 english words in a row (without any\n // \"programming\" type syntax) this gives us a strong signal that we've\n // TRULY found a comment - vs perhaps scanning with the wrong language.\n // It's possible to find something that LOOKS like the start of the\n // comment - but then if there is no readable text - good chance it is a\n // false match and not a comment.\n //\n // for a visual example please see:\n // https://github.com/highlightjs/highlight.js/issues/2827\n\n begin: concat(\n /[ ]+/, // necessary to prevent us gobbling up doctags like /* @author Bob Mcgill */\n '(',\n ENGLISH_WORD,\n /[.]?[:]?([.][ ]|[ ])/,\n '){3}') // look for 3 words in a row\n }\n );\n return mode;\n};\nconst C_LINE_COMMENT_MODE = COMMENT('//', '$');\nconst C_BLOCK_COMMENT_MODE = COMMENT('/\\\\*', '\\\\*/');\nconst HASH_COMMENT_MODE = COMMENT('#', '$');\nconst NUMBER_MODE = {\n scope: 'number',\n begin: NUMBER_RE,\n relevance: 0\n};\nconst C_NUMBER_MODE = {\n scope: 'number',\n begin: C_NUMBER_RE,\n relevance: 0\n};\nconst BINARY_NUMBER_MODE = {\n scope: 'number',\n begin: BINARY_NUMBER_RE,\n relevance: 0\n};\nconst REGEXP_MODE = {\n scope: \"regexp\",\n begin: /\\/(?=[^/\\n]*\\/)/,\n end: /\\/[gimuy]*/,\n contains: [\n BACKSLASH_ESCAPE,\n {\n begin: /\\[/,\n end: /\\]/,\n relevance: 0,\n contains: [BACKSLASH_ESCAPE]\n }\n ]\n};\nconst TITLE_MODE = {\n scope: 'title',\n begin: IDENT_RE,\n relevance: 0\n};\nconst UNDERSCORE_TITLE_MODE = {\n scope: 'title',\n begin: UNDERSCORE_IDENT_RE,\n relevance: 0\n};\nconst METHOD_GUARD = {\n // excludes method names from keyword processing\n begin: '\\\\.\\\\s*' + UNDERSCORE_IDENT_RE,\n relevance: 0\n};\n\n/**\n * Adds end same as begin mechanics to a mode\n *\n * Your mode must include at least a single () match group as that first match\n * group is what is used for comparison\n * @param {Partial<Mode>} mode\n */\nconst END_SAME_AS_BEGIN = function(mode) {\n return Object.assign(mode,\n {\n /** @type {ModeCallback} */\n 'on:begin': (m, resp) => { resp.data._beginMatch = m[1]; },\n /** @type {ModeCallback} */\n 'on:end': (m, resp) => { if (resp.data._beginMatch !== m[1]) resp.ignoreMatch(); }\n });\n};\n\nvar MODES = /*#__PURE__*/Object.freeze({\n __proto__: null,\n APOS_STRING_MODE: APOS_STRING_MODE,\n BACKSLASH_ESCAPE: BACKSLASH_ESCAPE,\n BINARY_NUMBER_MODE: BINARY_NUMBER_MODE,\n BINARY_NUMBER_RE: BINARY_NUMBER_RE,\n COMMENT: COMMENT,\n C_BLOCK_COMMENT_MODE: C_BLOCK_COMMENT_MODE,\n C_LINE_COMMENT_MODE: C_LINE_COMMENT_MODE,\n C_NUMBER_MODE: C_NUMBER_MODE,\n C_NUMBER_RE: C_NUMBER_RE,\n END_SAME_AS_BEGIN: END_SAME_AS_BEGIN,\n HASH_COMMENT_MODE: HASH_COMMENT_MODE,\n IDENT_RE: IDENT_RE,\n MATCH_NOTHING_RE: MATCH_NOTHING_RE,\n METHOD_GUARD: METHOD_GUARD,\n NUMBER_MODE: NUMBER_MODE,\n NUMBER_RE: NUMBER_RE,\n PHRASAL_WORDS_MODE: PHRASAL_WORDS_MODE,\n QUOTE_STRING_MODE: QUOTE_STRING_MODE,\n REGEXP_MODE: REGEXP_MODE,\n RE_STARTERS_RE: RE_STARTERS_RE,\n SHEBANG: SHEBANG,\n TITLE_MODE: TITLE_MODE,\n UNDERSCORE_IDENT_RE: UNDERSCORE_IDENT_RE,\n UNDERSCORE_TITLE_MODE: UNDERSCORE_TITLE_MODE\n});\n\n/**\n@typedef {import('highlight.js').CallbackResponse} CallbackResponse\n@typedef {import('highlight.js').CompilerExt} CompilerExt\n*/\n\n// Grammar extensions / plugins\n// See: https://github.com/highlightjs/highlight.js/issues/2833\n\n// Grammar extensions allow \"syntactic sugar\" to be added to the grammar modes\n// without requiring any underlying changes to the compiler internals.\n\n// `compileMatch` being the perfect small example of now allowing a grammar\n// author to write `match` when they desire to match a single expression rather\n// than being forced to use `begin`. The extension then just moves `match` into\n// `begin` when it runs. Ie, no features have been added, but we've just made\n// the experience of writing (and reading grammars) a little bit nicer.\n\n// ------\n\n// TODO: We need negative look-behind support to do this properly\n/**\n * Skip a match if it has a preceding dot\n *\n * This is used for `beginKeywords` to prevent matching expressions such as\n * `bob.keyword.do()`. The mode compiler automatically wires this up as a\n * special _internal_ 'on:begin' callback for modes with `beginKeywords`\n * @param {RegExpMatchArray} match\n * @param {CallbackResponse} response\n */\nfunction skipIfHasPrecedingDot(match, response) {\n const before = match.input[match.index - 1];\n if (before === \".\") {\n response.ignoreMatch();\n }\n}\n\n/**\n *\n * @type {CompilerExt}\n */\nfunction scopeClassName(mode, _parent) {\n // eslint-disable-next-line no-undefined\n if (mode.className !== undefined) {\n mode.scope = mode.className;\n delete mode.className;\n }\n}\n\n/**\n * `beginKeywords` syntactic sugar\n * @type {CompilerExt}\n */\nfunction beginKeywords(mode, parent) {\n if (!parent) return;\n if (!mode.beginKeywords) return;\n\n // for languages with keywords that include non-word characters checking for\n // a word boundary is not sufficient, so instead we check for a word boundary\n // or whitespace - this does no harm in any case since our keyword engine\n // doesn't allow spaces in keywords anyways and we still check for the boundary\n // first\n mode.begin = '\\\\b(' + mode.beginKeywords.split(' ').join('|') + ')(?!\\\\.)(?=\\\\b|\\\\s)';\n mode.__beforeBegin = skipIfHasPrecedingDot;\n mode.keywords = mode.keywords || mode.beginKeywords;\n delete mode.beginKeywords;\n\n // prevents double relevance, the keywords themselves provide\n // relevance, the mode doesn't need to double it\n // eslint-disable-next-line no-undefined\n if (mode.relevance === undefined) mode.relevance = 0;\n}\n\n/**\n * Allow `illegal` to contain an array of illegal values\n * @type {CompilerExt}\n */\nfunction compileIllegal(mode, _parent) {\n if (!Array.isArray(mode.illegal)) return;\n\n mode.illegal = either(...mode.illegal);\n}\n\n/**\n * `match` to match a single expression for readability\n * @type {CompilerExt}\n */\nfunction compileMatch(mode, _parent) {\n if (!mode.match) return;\n if (mode.begin || mode.end) throw new Error(\"begin & end are not supported with match\");\n\n mode.begin = mode.match;\n delete mode.match;\n}\n\n/**\n * provides the default 1 relevance to all modes\n * @type {CompilerExt}\n */\nfunction compileRelevance(mode, _parent) {\n // eslint-disable-next-line no-undefined\n if (mode.relevance === undefined) mode.relevance = 1;\n}\n\n// allow beforeMatch to act as a \"qualifier\" for the match\n// the full match begin must be [beforeMatch][begin]\nconst beforeMatchExt = (mode, parent) => {\n if (!mode.beforeMatch) return;\n // starts conflicts with endsParent which we need to make sure the child\n // rule is not matched multiple times\n if (mode.starts) throw new Error(\"beforeMatch cannot be used with starts\");\n\n const originalMode = Object.assign({}, mode);\n Object.keys(mode).forEach((key) => { delete mode[key]; });\n\n mode.keywords = originalMode.keywords;\n mode.begin = concat(originalMode.beforeMatch, lookahead(originalMode.begin));\n mode.starts = {\n relevance: 0,\n contains: [\n Object.assign(originalMode, { endsParent: true })\n ]\n };\n mode.relevance = 0;\n\n delete originalMode.beforeMatch;\n};\n\n// keywords that should have no default relevance value\nconst COMMON_KEYWORDS = [\n 'of',\n 'and',\n 'for',\n 'in',\n 'not',\n 'or',\n 'if',\n 'then',\n 'parent', // common variable name\n 'list', // common variable name\n 'value' // common variable name\n];\n\nconst DEFAULT_KEYWORD_SCOPE = \"keyword\";\n\n/**\n * Given raw keywords from a language definition, compile them.\n *\n * @param {string | Record<string,string|string[]> | Array<string>} rawKeywords\n * @param {boolean} caseInsensitive\n */\nfunction compileKeywords(rawKeywords, caseInsensitive, scopeName = DEFAULT_KEYWORD_SCOPE) {\n /** @type {import(\"highlight.js/private\").KeywordDict} */\n const compiledKeywords = Object.create(null);\n\n // input can be a string of keywords, an array of keywords, or a object with\n // named keys representing scopeName (which can then point to a string or array)\n if (typeof rawKeywords === 'string') {\n compileList(scopeName, rawKeywords.split(\" \"));\n } else if (Array.isArray(rawKeywords)) {\n compileList(scopeName, rawKeywords);\n } else {\n Object.keys(rawKeywords).forEach(function(scopeName) {\n // collapse all our objects back into the parent object\n Object.assign(\n compiledKeywords,\n compileKeywords(rawKeywords[scopeName], caseInsensitive, scopeName)\n );\n });\n }\n return compiledKeywords;\n\n // ---\n\n /**\n * Compiles an individual list of keywords\n *\n * Ex: \"for if when while|5\"\n *\n * @param {string} scopeName\n * @param {Array<string>} keywordList\n */\n function compileList(scopeName, keywordList) {\n if (caseInsensitive) {\n keywordList = keywordList.map(x => x.toLowerCase());\n }\n keywordList.forEach(function(keyword) {\n const pair = keyword.split('|');\n compiledKeywords[pair[0]] = [scopeName, scoreForKeyword(pair[0], pair[1])];\n });\n }\n}\n\n/**\n * Returns the proper score for a given keyword\n *\n * Also takes into account comment keywords, which will be scored 0 UNLESS\n * another score has been manually assigned.\n * @param {string} keyword\n * @param {string} [providedScore]\n */\nfunction scoreForKeyword(keyword, providedScore) {\n // manual scores always win over common keywords\n // so you can force a score of 1 if you really insist\n if (providedScore) {\n return Number(providedScore);\n }\n\n return commonKeyword(keyword) ? 0 : 1;\n}\n\n/**\n * Determines if a given keyword is common or not\n *\n * @param {string} keyword */\nfunction commonKeyword(keyword) {\n return COMMON_KEYWORDS.includes(keyword.toLowerCase());\n}\n\n/*\n\nFor the reasoning behind this please see:\nhttps://github.com/highlightjs/highlight.js/issues/2880#issuecomment-747275419\n\n*/\n\n/**\n * @type {Record<string, boolean>}\n */\nconst seenDeprecations = {};\n\n/**\n * @param {string} message\n */\nconst error = (message) => {\n console.error(message);\n};\n\n/**\n * @param {string} message\n * @param {any} args\n */\nconst warn = (message, ...args) => {\n console.log(`WARN: ${message}`, ...args);\n};\n\n/**\n * @param {string} version\n * @param {string} message\n */\nconst deprecated = (version, message) => {\n if (seenDeprecations[`${version}/${message}`]) return;\n\n console.log(`Deprecated as of ${version}. ${message}`);\n seenDeprecations[`${version}/${message}`] = true;\n};\n\n/* eslint-disable no-throw-literal */\n\n/**\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n*/\n\nconst MultiClassError = new Error();\n\n/**\n * Renumbers labeled scope names to account for additional inner match\n * groups that otherwise would break everything.\n *\n * Lets say we 3 match scopes:\n *\n * { 1 => ..., 2 => ..., 3 => ... }\n *\n * So what we need is a clean match like this:\n *\n * (a)(b)(c) => [ \"a\", \"b\", \"c\" ]\n *\n * But this falls apart with inner match groups:\n *\n * (a)(((b)))(c) => [\"a\", \"b\", \"b\", \"b\", \"c\" ]\n *\n * Our scopes are now \"out of alignment\" and we're repeating `b` 3 times.\n * What needs to happen is the numbers are remapped:\n *\n * { 1 => ..., 2 => ..., 5 => ... }\n *\n * We also need to know that the ONLY groups that should be output\n * are 1, 2, and 5. This function handles this behavior.\n *\n * @param {CompiledMode} mode\n * @param {Array<RegExp | string>} regexes\n * @param {{key: \"beginScope\"|\"endScope\"}} opts\n */\nfunction remapScopeNames(mode, regexes, { key }) {\n let offset = 0;\n const scopeNames = mode[key];\n /** @type Record<number,boolean> */\n const emit = {};\n /** @type Record<number,string> */\n const positions = {};\n\n for (let i = 1; i <= regexes.length; i++) {\n positions[i + offset] = scopeNames[i];\n emit[i + offset] = true;\n offset += countMatchGroups(regexes[i - 1]);\n }\n // we use _emit to keep track of which match groups are \"top-level\" to avoid double\n // output from inside match groups\n mode[key] = positions;\n mode[key]._emit = emit;\n mode[key]._multi = true;\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction beginMultiClass(mode) {\n if (!Array.isArray(mode.begin)) return;\n\n if (mode.skip || mode.excludeBegin || mode.returnBegin) {\n error(\"skip, excludeBegin, returnBegin not compatible with beginScope: {}\");\n throw MultiClassError;\n }\n\n if (typeof mode.beginScope !== \"object\" || mode.beginScope === null) {\n error(\"beginScope must be object\");\n throw MultiClassError;\n }\n\n remapScopeNames(mode, mode.begin, { key: \"beginScope\" });\n mode.begin = _rewriteBackreferences(mode.begin, { joinWith: \"\" });\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction endMultiClass(mode) {\n if (!Array.isArray(mode.end)) return;\n\n if (mode.skip || mode.excludeEnd || mode.returnEnd) {\n error(\"skip, excludeEnd, returnEnd not compatible with endScope: {}\");\n throw MultiClassError;\n }\n\n if (typeof mode.endScope !== \"object\" || mode.endScope === null) {\n error(\"endScope must be object\");\n throw MultiClassError;\n }\n\n remapScopeNames(mode, mode.end, { key: \"endScope\" });\n mode.end = _rewriteBackreferences(mode.end, { joinWith: \"\" });\n}\n\n/**\n * this exists only to allow `scope: {}` to be used beside `match:`\n * Otherwise `beginScope` would necessary and that would look weird\n\n {\n match: [ /def/, /\\w+/ ]\n scope: { 1: \"keyword\" , 2: \"title\" }\n }\n\n * @param {CompiledMode} mode\n */\nfunction scopeSugar(mode) {\n if (mode.scope && typeof mode.scope === \"object\" && mode.scope !== null) {\n mode.beginScope = mode.scope;\n delete mode.scope;\n }\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction MultiClass(mode) {\n scopeSugar(mode);\n\n if (typeof mode.beginScope === \"string\") {\n mode.beginScope = { _wrap: mode.beginScope };\n }\n if (typeof mode.endScope === \"string\") {\n mode.endScope = { _wrap: mode.endScope };\n }\n\n beginMultiClass(mode);\n endMultiClass(mode);\n}\n\n/**\n@typedef {import('highlight.js').Mode} Mode\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n@typedef {import('highlight.js').Language} Language\n@typedef {import('highlight.js').HLJSPlugin} HLJSPlugin\n@typedef {import('highlight.js').CompiledLanguage} CompiledLanguage\n*/\n\n// compilation\n\n/**\n * Compiles a language definition result\n *\n * Given the raw result of a language definition (Language), compiles this so\n * that it is ready for highlighting code.\n * @param {Language} language\n * @returns {CompiledLanguage}\n */\nfunction compileLanguage(language) {\n /**\n * Builds a regex with the case sensitivity of the current language\n *\n * @param {RegExp | string} value\n * @param {boolean} [global]\n */\n function langRe(value, global) {\n return new RegExp(\n source(value),\n 'm'\n + (language.case_insensitive ? 'i' : '')\n + (language.unicodeRegex ? 'u' : '')\n + (global ? 'g' : '')\n );\n }\n\n /**\n Stores multiple regular expressions and allows you to quickly search for\n them all in a string simultaneously - returning the first match. It does\n this by creating a huge (a|b|c) regex - each individual item wrapped with ()\n and joined by `|` - using match groups to track position. When a match is\n found checking which position in the array has content allows us to figure\n out which of the original regexes / match groups triggered the match.\n\n The match object itself (the result of `Regex.exec`) is returned but also\n enhanced by merging in any meta-data that was registered with the regex.\n This is how we keep track of which mode matched, and what type of rule\n (`illegal`, `begin`, end, etc).\n */\n class MultiRegex {\n constructor() {\n this.matchIndexes = {};\n // @ts-ignore\n this.regexes = [];\n this.matchAt = 1;\n this.position = 0;\n }\n\n // @ts-ignore\n addRule(re, opts) {\n opts.position = this.position++;\n // @ts-ignore\n this.matchIndexes[this.matchAt] = opts;\n this.regexes.push([opts, re]);\n this.matchAt += countMatchGroups(re) + 1;\n }\n\n compile() {\n if (this.regexes.length === 0) {\n // avoids the need to check length every time exec is called\n // @ts-ignore\n this.exec = () => null;\n }\n const terminators = this.regexes.map(el => el[1]);\n this.matcherRe = langRe(_rewriteBackreferences(terminators, { joinWith: '|' }), true);\n this.lastIndex = 0;\n }\n\n /** @param {string} s */\n exec(s) {\n this.matcherRe.lastIndex = this.lastIndex;\n const match = this.matcherRe.exec(s);\n if (!match) { return null; }\n\n // eslint-disable-next-line no-undefined\n const i = match.findIndex((el, i) => i > 0 && el !== undefined);\n // @ts-ignore\n const matchData = this.matchIndexes[i];\n // trim off any earlier non-relevant match groups (ie, the other regex\n // match groups that make up the multi-matcher)\n match.splice(0, i);\n\n return Object.assign(match, matchData);\n }\n }\n\n /*\n Created to solve the key deficiently with MultiRegex - there is no way to\n test for multiple matches at a single location. Why would we need to do\n that? In the future a more dynamic engine will allow certain matches to be\n ignored. An example: if we matched say the 3rd regex in a large group but\n decided to ignore it - we'd need to started testing again at the 4th\n regex... but MultiRegex itself gives us no real way to do that.\n\n So what this class creates MultiRegexs on the fly for whatever search\n position they are needed.\n\n NOTE: These additional MultiRegex objects are created dynamically. For most\n grammars most of the time we will never actually need anything more than the\n first MultiRegex - so this shouldn't have too much overhead.\n\n Say this is our search group, and we match regex3, but wish to ignore it.\n\n regex1 | regex2 | regex3 | regex4 | regex5 ' ie, startAt = 0\n\n What we need is a new MultiRegex that only includes the remaining\n possibilities:\n\n regex4 | regex5 ' ie, startAt = 3\n\n This class wraps all that complexity up in a simple API... `startAt` decides\n where in the array of expressions to start doing the matching. It\n auto-increments, so if a match is found at position 2, then startAt will be\n set to 3. If the end is reached startAt will return to 0.\n\n MOST of the time the parser will be setting startAt manually to 0.\n */\n class ResumableMultiRegex {\n constructor() {\n // @ts-ignore\n this.rules = [];\n // @ts-ignore\n this.multiRegexes = [];\n this.count = 0;\n\n this.lastIndex = 0;\n this.regexIndex = 0;\n }\n\n // @ts-ignore\n getMatcher(index) {\n if (this.multiRegexes[index]) return this.multiRegexes[index];\n\n const matcher = new MultiRegex();\n this.rules.slice(index).forEach(([re, opts]) => matcher.addRule(re, opts));\n matcher.compile();\n this.multiRegexes[index] = matcher;\n return matcher;\n }\n\n resumingScanAtSamePosition() {\n return this.regexIndex !== 0;\n }\n\n considerAll() {\n this.regexIndex = 0;\n }\n\n // @ts-ignore\n addRule(re, opts) {\n this.rules.push([re, opts]);\n if (opts.type === \"begin\") this.count++;\n }\n\n /** @param {string} s */\n exec(s) {\n const m = this.getMatcher(this.regexIndex);\n m.lastIndex = this.lastIndex;\n let result = m.exec(s);\n\n // The following is because we have no easy way to say \"resume scanning at the\n // existing position but also skip the current rule ONLY\". What happens is\n // all prior rules are also skipped which can result in matching the wrong\n // thing. Example of matching \"booger\":\n\n // our matcher is [string, \"booger\", number]\n //\n // ....booger....\n\n // if \"booger\" is ignored then we'd really need a regex to scan from the\n // SAME position for only: [string, number] but ignoring \"booger\" (if it\n // was the first match), a simple resume would scan ahead who knows how\n // far looking only for \"number\", ignoring potential string matches (or\n // future \"booger\" matches that might be valid.)\n\n // So what we do: We execute two matchers, one resuming at the same\n // position, but the second full matcher starting at the position after:\n\n // /--- resume first regex match here (for [number])\n // |/---- full match here for [string, \"booger\", number]\n // vv\n // ....booger....\n\n // Which ever results in a match first is then used. So this 3-4 step\n // process essentially allows us to say \"match at this position, excluding\n // a prior rule that was ignored\".\n //\n // 1. Match \"booger\" first, ignore. Also proves that [string] does non match.\n // 2. Resume matching for [number]\n // 3. Match at index + 1 for [string, \"booger\", number]\n // 4. If #2 and #3 result in matches, which came first?\n if (this.resumingScanAtSamePosition()) {\n if (result && result.index === this.lastIndex) ; else { // use the second matcher result\n const m2 = this.getMatcher(0);\n m2.lastIndex = this.lastIndex + 1;\n result = m2.exec(s);\n }\n }\n\n if (result) {\n this.regexIndex += result.position + 1;\n if (this.regexIndex === this.count) {\n // wrap-around to considering all matches again\n this.considerAll();\n }\n }\n\n return result;\n }\n }\n\n /**\n * Given a mode, builds a huge ResumableMultiRegex that can be used to walk\n * the content and find matches.\n *\n * @param {CompiledMode} mode\n * @returns {ResumableMultiRegex}\n */\n function buildModeRegex(mode) {\n const mm = new ResumableMultiRegex();\n\n mode.contains.forEach(term => mm.addRule(term.begin, { rule: term, type: \"begin\" }));\n\n if (mode.terminatorEnd) {\n mm.addRule(mode.terminatorEnd, { type: \"end\" });\n }\n if (mode.illegal) {\n mm.addRule(mode.illegal, { type: \"illegal\" });\n }\n\n return mm;\n }\n\n /** skip vs abort vs ignore\n *\n * @skip - The mode is still entered and exited normally (and contains rules apply),\n * but all content is held and added to the parent buffer rather than being\n * output when the mode ends. Mostly used with `sublanguage` to build up\n * a single large buffer than can be parsed by sublanguage.\n *\n * - The mode begin ands ends normally.\n * - Content matched is added to the parent mode buffer.\n * - The parser cursor is moved forward normally.\n *\n * @abort - A hack placeholder until we have ignore. Aborts the mode (as if it\n * never matched) but DOES NOT continue to match subsequent `contains`\n * modes. Abort is bad/suboptimal because it can result in modes\n * farther down not getting applied because an earlier rule eats the\n * content but then aborts.\n *\n * - The mode does not begin.\n * - Content matched by `begin` is added to the mode buffer.\n * - The parser cursor is moved forward accordingly.\n *\n * @ignore - Ignores the mode (as if it never matched) and continues to match any\n * subsequent `contains` modes. Ignore isn't technically possible with\n * the current parser implementation.\n *\n * - The mode does not begin.\n * - Content matched by `begin` is ignored.\n * - The parser cursor is not moved forward.\n */\n\n /**\n * Compiles an individual mode\n *\n * This can raise an error if the mode contains certain detectable known logic\n * issues.\n * @param {Mode} mode\n * @param {CompiledMode | null} [parent]\n * @returns {CompiledMode | never}\n */\n function compileMode(mode, parent) {\n const cmode = /** @type CompiledMode */ (mode);\n if (mode.isCompiled) return cmode;\n\n [\n scopeClassName,\n // do this early so compiler extensions generally don't have to worry about\n // the distinction between match/begin\n compileMatch,\n MultiClass,\n beforeMatchExt\n ].forEach(ext => ext(mode, parent));\n\n language.compilerExtensions.forEach(ext => ext(mode, parent));\n\n // __beforeBegin is considered private API, internal use only\n mode.__beforeBegin = null;\n\n [\n beginKeywords,\n // do this later so compiler extensions that come earlier have access to the\n // raw array if they wanted to perhaps manipulate it, etc.\n compileIllegal,\n // default to 1 relevance if not specified\n compileRelevance\n ].forEach(ext => ext(mode, parent));\n\n mode.isCompiled = true;\n\n let keywordPattern = null;\n if (typeof mode.keywords === \"object\" && mode.keywords.$pattern) {\n // we need a copy because keywords might be compiled multiple times\n // so we can't go deleting $pattern from the original on the first\n // pass\n mode.keywords = Object.assign({}, mode.keywords);\n keywordPattern = mode.keywords.$pattern;\n delete mode.keywords.$pattern;\n }\n keywordPattern = keywordPattern || /\\w+/;\n\n if (mode.keywords) {\n mode.keywords = compileKeywords(mode.keywords, language.case_insensitive);\n }\n\n cmode.keywordPatternRe = langRe(keywordPattern, true);\n\n if (parent) {\n if (!mode.begin) mode.begin = /\\B|\\b/;\n cmode.beginRe = langRe(cmode.begin);\n if (!mode.end && !mode.endsWithParent) mode.end = /\\B|\\b/;\n if (mode.end) cmode.endRe = langRe(cmode.end);\n cmode.terminatorEnd = source(cmode.end) || '';\n if (mode.endsWithParent && parent.terminatorEnd) {\n cmode.terminatorEnd += (mode.end ? '|' : '') + parent.terminatorEnd;\n }\n }\n if (mode.illegal) cmode.illegalRe = langRe(/** @type {RegExp | string} */ (mode.illegal));\n if (!mode.contains) mode.contains = [];\n\n mode.contains = [].concat(...mode.contains.map(function(c) {\n return expandOrCloneMode(c === 'self' ? mode : c);\n }));\n mode.contains.forEach(function(c) { compileMode(/** @type Mode */ (c), cmode); });\n\n if (mode.starts) {\n compileMode(mode.starts, parent);\n }\n\n cmode.matcher = buildModeRegex(cmode);\n return cmode;\n }\n\n if (!language.compilerExtensions) language.compilerExtensions = [];\n\n // self is not valid at the top-level\n if (language.contains && language.contains.includes('self')) {\n throw new Error(\"ERR: contains `self` is not supported at the top-level of a language. See documentation.\");\n }\n\n // we need a null object, which inherit will guarantee\n language.classNameAliases = inherit$1(language.classNameAliases || {});\n\n return compileMode(/** @type Mode */ (language));\n}\n\n/**\n * Determines if a mode has a dependency on it's parent or not\n *\n * If a mode does have a parent dependency then often we need to clone it if\n * it's used in multiple places so that each copy points to the correct parent,\n * where-as modes without a parent can often safely be re-used at the bottom of\n * a mode chain.\n *\n * @param {Mode | null} mode\n * @returns {boolean} - is there a dependency on the parent?\n * */\nfunction dependencyOnParent(mode) {\n if (!mode) return false;\n\n return mode.endsWithParent || dependencyOnParent(mode.starts);\n}\n\n/**\n * Expands a mode or clones it if necessary\n *\n * This is necessary for modes with parental dependenceis (see notes on\n * `dependencyOnParent`) and for nodes that have `variants` - which must then be\n * exploded into their own individual modes at compile time.\n *\n * @param {Mode} mode\n * @returns {Mode | Mode[]}\n * */\nfunction expandOrCloneMode(mode) {\n if (mode.variants && !mode.cachedVariants) {\n mode.cachedVariants = mode.variants.map(function(variant) {\n return inherit$1(mode, { variants: null }, variant);\n });\n }\n\n // EXPAND\n // if we have variants then essentially \"replace\" the mode with the variants\n // this happens in compileMode, where this function is called from\n if (mode.cachedVariants) {\n return mode.cachedVariants;\n }\n\n // CLONE\n // if we have dependencies on parents then we need a unique\n // instance of ourselves, so we can be reused with many\n // different parents without issue\n if (dependencyOnParent(mode)) {\n return inherit$1(mode, { starts: mode.starts ? inherit$1(mode.starts) : null });\n }\n\n if (Object.isFrozen(mode)) {\n return inherit$1(mode);\n }\n\n // no special dependency issues, just return ourselves\n return mode;\n}\n\nvar version = \"11.11.1\";\n\nclass HTMLInjectionError extends Error {\n constructor(reason, html) {\n super(reason);\n this.name = \"HTMLInjectionError\";\n this.html = html;\n }\n}\n\n/*\nSyntax highlighting with language autodetection.\nhttps://highlightjs.org/\n*/\n\n\n\n/**\n@typedef {import('highlight.js').Mode} Mode\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n@typedef {import('highlight.js').CompiledScope} CompiledScope\n@typedef {import('highlight.js').Language} Language\n@typedef {import('highlight.js').HLJSApi} HLJSApi\n@typedef {import('highlight.js').HLJSPlugin} HLJSPlugin\n@typedef {import('highlight.js').PluginEvent} PluginEvent\n@typedef {import('highlight.js').HLJSOptions} HLJSOptions\n@typedef {import('highlight.js').LanguageFn} LanguageFn\n@typedef {import('highlight.js').HighlightedHTMLElement} HighlightedHTMLElement\n@typedef {import('highlight.js').BeforeHighlightContext} BeforeHighlightContext\n@typedef {import('highlight.js/private').MatchType} MatchType\n@typedef {import('highlight.js/private').KeywordData} KeywordData\n@typedef {import('highlight.js/private').EnhancedMatch} EnhancedMatch\n@typedef {import('highlight.js/private').AnnotatedError} AnnotatedError\n@typedef {import('highlight.js').AutoHighlightResult} AutoHighlightResult\n@typedef {import('highlight.js').HighlightOptions} HighlightOptions\n@typedef {import('highlight.js').HighlightResult} HighlightResult\n*/\n\n\nconst escape = escapeHTML;\nconst inherit = inherit$1;\nconst NO_MATCH = Symbol(\"nomatch\");\nconst MAX_KEYWORD_HITS = 7;\n\n/**\n * @param {any} hljs - object that is extended (legacy)\n * @returns {HLJSApi}\n */\nconst HLJS = function(hljs) {\n // Global internal variables used within the highlight.js library.\n /** @type {Record<string, Language>} */\n const languages = Object.create(null);\n /** @type {Record<string, string>} */\n const aliases = Object.create(null);\n /** @type {HLJSPlugin[]} */\n const plugins = [];\n\n // safe/production mode - swallows more errors, tries to keep running\n // even if a single syntax or parse hits a fatal error\n let SAFE_MODE = true;\n const LANGUAGE_NOT_FOUND = \"Could not find the language '{}', did you forget to load/include a language module?\";\n /** @type {Language} */\n const PLAINTEXT_LANGUAGE = { disableAutodetect: true, name: 'Plain text', contains: [] };\n\n // Global options used when within external APIs. This is modified when\n // calling the `hljs.configure` function.\n /** @type HLJSOptions */\n let options = {\n ignoreUnescapedHTML: false,\n throwUnescapedHTML: false,\n noHighlightRe: /^(no-?highlight)$/i,\n languageDetectRe: /\\blang(?:uage)?-([\\w-]+)\\b/i,\n classPrefix: 'hljs-',\n cssSelector: 'pre code',\n languages: null,\n // beta configuration options, subject to change, welcome to discuss\n // https://github.com/highlightjs/highlight.js/issues/1086\n __emitter: TokenTreeEmitter\n };\n\n /* Utility functions */\n\n /**\n * Tests a language name to see if highlighting should be skipped\n * @param {string} languageName\n */\n function shouldNotHighlight(languageName) {\n return options.noHighlightRe.test(languageName);\n }\n\n /**\n * @param {HighlightedHTMLElement} block - the HTML element to determine language for\n */\n function blockLanguage(block) {\n let classes = block.className + ' ';\n\n classes += block.parentNode ? block.parentNode.className : '';\n\n // language-* takes precedence over non-prefixed class names.\n const match = options.languageDetectRe.exec(classes);\n if (match) {\n const language = getLanguage(match[1]);\n if (!language) {\n warn(LANGUAGE_NOT_FOUND.replace(\"{}\", match[1]));\n warn(\"Falling back to no-highlight mode for this block.\", block);\n }\n return language ? match[1] : 'no-highlight';\n }\n\n return classes\n .split(/\\s+/)\n .find((_class) => shouldNotHighlight(_class) || getLanguage(_class));\n }\n\n /**\n * Core highlighting function.\n *\n * OLD API\n * highlight(lang, code, ignoreIllegals, continuation)\n *\n * NEW API\n * highlight(code, {lang, ignoreIllegals})\n *\n * @param {string} codeOrLanguageName - the language to use for highlighting\n * @param {string | HighlightOptions} optionsOrCode - the code to highlight\n * @param {boolean} [ignoreIllegals] - whether to ignore illegal matches, default is to bail\n *\n * @returns {HighlightResult} Result - an object that represents the result\n * @property {string} language - the language name\n * @property {number} relevance - the relevance score\n * @property {string} value - the highlighted HTML code\n * @property {string} code - the original raw code\n * @property {CompiledMode} top - top of the current mode stack\n * @property {boolean} illegal - indicates whether any illegal matches were found\n */\n function highlight(codeOrLanguageName, optionsOrCode, ignoreIllegals) {\n let code = \"\";\n let languageName = \"\";\n if (typeof optionsOrCode === \"object\") {\n code = codeOrLanguageName;\n ignoreIllegals = optionsOrCode.ignoreIllegals;\n languageName = optionsOrCode.language;\n } else {\n // old API\n deprecated(\"10.7.0\", \"highlight(lang, code, ...args) has been deprecated.\");\n deprecated(\"10.7.0\", \"Please use highlight(code, options) instead.\\nhttps://github.com/highlightjs/highlight.js/issues/2277\");\n languageName = codeOrLanguageName;\n code = optionsOrCode;\n }\n\n // https://github.com/highlightjs/highlight.js/issues/3149\n // eslint-disable-next-line no-undefined\n if (ignoreIllegals === undefined) { ignoreIllegals = true; }\n\n /** @type {BeforeHighlightContext} */\n const context = {\n code,\n language: languageName\n };\n // the plugin can change the desired language or the code to be highlighted\n // just be changing the object it was passed\n fire(\"before:highlight\", context);\n\n // a before plugin can usurp the result completely by providing it's own\n // in which case we don't even need to call highlight\n const result = context.result\n ? context.result\n : _highlight(context.language, context.code, ignoreIllegals);\n\n result.code = context.code;\n // the plugin can change anything in result to suite it\n fire(\"after:highlight\", result);\n\n return result;\n }\n\n /**\n * private highlight that's used internally and does not fire callbacks\n *\n * @param {string} languageName - the language to use for highlighting\n * @param {string} codeToHighlight - the code to highlight\n * @param {boolean?} [ignoreIllegals] - whether to ignore illegal matches, default is to bail\n * @param {CompiledMode?} [continuation] - current continuation mode, if any\n * @returns {HighlightResult} - result of the highlight operation\n */\n function _highlight(languageName, codeToHighlight, ignoreIllegals, continuation) {\n const keywordHits = Object.create(null);\n\n /**\n * Return keyword data if a match is a keyword\n * @param {CompiledMode} mode - current mode\n * @param {string} matchText - the textual match\n * @returns {KeywordData | false}\n */\n function keywordData(mode, matchText) {\n return mode.keywords[matchText];\n }\n\n function processKeywords() {\n if (!top.keywords) {\n emitter.addText(modeBuffer);\n return;\n }\n\n let lastIndex = 0;\n top.keywordPatternRe.lastIndex = 0;\n let match = top.keywordPatternRe.exec(modeBuffer);\n let buf = \"\";\n\n while (match) {\n buf += modeBuffer.substring(lastIndex, match.index);\n const word = language.case_insensitive ? match[0].toLowerCase() : match[0];\n const data = keywordData(top, word);\n if (data) {\n const [kind, keywordRelevance] = data;\n emitter.addText(buf);\n buf = \"\";\n\n keywordHits[word] = (keywordHits[word] || 0) + 1;\n if (keywordHits[word] <= MAX_KEYWORD_HITS) relevance += keywordRelevance;\n if (kind.startsWith(\"_\")) {\n // _ implied for relevance only, do not highlight\n // by applying a class name\n buf += match[0];\n } else {\n const cssClass = language.classNameAliases[kind] || kind;\n emitKeyword(match[0], cssClass);\n }\n } else {\n buf += match[0];\n }\n lastIndex = top.keywordPatternRe.lastIndex;\n match = top.keywordPatternRe.exec(modeBuffer);\n }\n buf += modeBuffer.substring(lastIndex);\n emitter.addText(buf);\n }\n\n function processSubLanguage() {\n if (modeBuffer === \"\") return;\n /** @type HighlightResult */\n let result = null;\n\n if (typeof top.subLanguage === 'string') {\n if (!languages[top.subLanguage]) {\n emitter.addText(modeBuffer);\n return;\n }\n result = _highlight(top.subLanguage, modeBuffer, true, continuations[top.subLanguage]);\n continuations[top.subLanguage] = /** @type {CompiledMode} */ (result._top);\n } else {\n result = highlightAuto(modeBuffer, top.subLanguage.length ? top.subLanguage : null);\n }\n\n // Counting embedded language score towards the host language may be disabled\n // with zeroing the containing mode relevance. Use case in point is Markdown that\n // allows XML everywhere and makes every XML snippet to have a much larger Markdown\n // score.\n if (top.relevance > 0) {\n relevance += result.relevance;\n }\n emitter.__addSublanguage(result._emitter, result.language);\n }\n\n function processBuffer() {\n if (top.subLanguage != null) {\n processSubLanguage();\n } else {\n processKeywords();\n }\n modeBuffer = '';\n }\n\n /**\n * @param {string} text\n * @param {string} scope\n */\n function emitKeyword(keyword, scope) {\n if (keyword === \"\") return;\n\n emitter.startScope(scope);\n emitter.addText(keyword);\n emitter.endScope();\n }\n\n /**\n * @param {CompiledScope} scope\n * @param {RegExpMatchArray} match\n */\n function emitMultiClass(scope, match) {\n let i = 1;\n const max = match.length - 1;\n while (i <= max) {\n if (!scope._emit[i]) { i++; continue; }\n const klass = language.classNameAliases[scope[i]] || scope[i];\n const text = match[i];\n if (klass) {\n emitKeyword(text, klass);\n } else {\n modeBuffer = text;\n processKeywords();\n modeBuffer = \"\";\n }\n i++;\n }\n }\n\n /**\n * @param {CompiledMode} mode - new mode to start\n * @param {RegExpMatchArray} match\n */\n function startNewMode(mode, match) {\n if (mode.scope && typeof mode.scope === \"string\") {\n emitter.openNode(language.classNameAliases[mode.scope] || mode.scope);\n }\n if (mode.beginScope) {\n // beginScope just wraps the begin match itself in a scope\n if (mode.beginScope._wrap) {\n emitKeyword(modeBuffer, language.classNameAliases[mode.beginScope._wrap] || mode.beginScope._wrap);\n modeBuffer = \"\";\n } else if (mode.beginScope._multi) {\n // at this point modeBuffer should just be the match\n emitMultiClass(mode.beginScope, match);\n modeBuffer = \"\";\n }\n }\n\n top = Object.create(mode, { parent: { value: top } });\n return top;\n }\n\n /**\n * @param {CompiledMode } mode - the mode to potentially end\n * @param {RegExpMatchArray} match - the latest match\n * @param {string} matchPlusRemainder - match plus remainder of content\n * @returns {CompiledMode | void} - the next mode, or if void continue on in current mode\n */\n function endOfMode(mode, match, matchPlusRemainder) {\n let matched = startsWith(mode.endRe, matchPlusRemainder);\n\n if (matched) {\n if (mode[\"on:end\"]) {\n const resp = new Response(mode);\n mode[\"on:end\"](match, resp);\n if (resp.isMatchIgnored) matched = false;\n }\n\n if (matched) {\n while (mode.endsParent && mode.parent) {\n mode = mode.parent;\n }\n return mode;\n }\n }\n // even if on:end fires an `ignore` it's still possible\n // that we might trigger the end node because of a parent mode\n if (mode.endsWithParent) {\n return endOfMode(mode.parent, match, matchPlusRemainder);\n }\n }\n\n /**\n * Handle matching but then ignoring a sequence of text\n *\n * @param {string} lexeme - string containing full match text\n */\n function doIgnore(lexeme) {\n if (top.matcher.regexIndex === 0) {\n // no more regexes to potentially match here, so we move the cursor forward one\n // space\n modeBuffer += lexeme[0];\n return 1;\n } else {\n // no need to move the cursor, we still have additional regexes to try and\n // match at this very spot\n resumeScanAtSamePosition = true;\n return 0;\n }\n }\n\n /**\n * Handle the start of a new potential mode match\n *\n * @param {EnhancedMatch} match - the current match\n * @returns {number} how far to advance the parse cursor\n */\n function doBeginMatch(match) {\n const lexeme = match[0];\n const newMode = match.rule;\n\n const resp = new Response(newMode);\n // first internal before callbacks, then the public ones\n const beforeCallbacks = [newMode.__beforeBegin, newMode[\"on:begin\"]];\n for (const cb of beforeCallbacks) {\n if (!cb) continue;\n cb(match, resp);\n if (resp.isMatchIgnored) return doIgnore(lexeme);\n }\n\n if (newMode.skip) {\n modeBuffer += lexeme;\n } else {\n if (newMode.excludeBegin) {\n modeBuffer += lexeme;\n }\n processBuffer();\n if (!newMode.returnBegin && !newMode.excludeBegin) {\n modeBuffer = lexeme;\n }\n }\n startNewMode(newMode, match);\n return newMode.returnBegin ? 0 : lexeme.length;\n }\n\n /**\n * Handle the potential end of mode\n *\n * @param {RegExpMatchArray} match - the current match\n */\n function doEndMatch(match) {\n const lexeme = match[0];\n const matchPlusRemainder = codeToHighlight.substring(match.index);\n\n const endMode = endOfMode(top, match, matchPlusRemainder);\n if (!endMode) { return NO_MATCH; }\n\n const origin = top;\n if (top.endScope && top.endScope._wrap) {\n processBuffer();\n emitKeyword(lexeme, top.endScope._wrap);\n } else if (top.endScope && top.endScope._multi) {\n processBuffer();\n emitMultiClass(top.endScope, match);\n } else if (origin.skip) {\n modeBuffer += lexeme;\n } else {\n if (!(origin.returnEnd || origin.excludeEnd)) {\n modeBuffer += lexeme;\n }\n processBuffer();\n if (origin.excludeEnd) {\n modeBuffer = lexeme;\n }\n }\n do {\n if (top.scope) {\n emitter.closeNode();\n }\n if (!top.skip && !top.subLanguage) {\n relevance += top.relevance;\n }\n top = top.parent;\n } while (top !== endMode.parent);\n if (endMode.starts) {\n startNewMode(endMode.starts, match);\n }\n return origin.returnEnd ? 0 : lexeme.length;\n }\n\n function processContinuations() {\n const list = [];\n for (let current = top; current !== language; current = current.parent) {\n if (current.scope) {\n list.unshift(current.scope);\n }\n }\n list.forEach(item => emitter.openNode(item));\n }\n\n /** @type {{type?: MatchType, index?: number, rule?: Mode}}} */\n let lastMatch = {};\n\n /**\n * Process an individual match\n *\n * @param {string} textBeforeMatch - text preceding the match (since the last match)\n * @param {EnhancedMatch} [match] - the match itself\n */\n function processLexeme(textBeforeMatch, match) {\n const lexeme = match && match[0];\n\n // add non-matched text to the current mode buffer\n modeBuffer += textBeforeMatch;\n\n if (lexeme == null) {\n processBuffer();\n return 0;\n }\n\n // we've found a 0 width match and we're stuck, so we need to advance\n // this happens when we have badly behaved rules that have optional matchers to the degree that\n // sometimes they can end up matching nothing at all\n // Ref: https://github.com/highlightjs/highlight.js/issues/2140\n if (lastMatch.type === \"begin\" && match.type === \"end\" && lastMatch.index === match.index && lexeme === \"\") {\n // spit the \"skipped\" character that our regex choked on back into the output sequence\n modeBuffer += codeToHighlight.slice(match.index, match.index + 1);\n if (!SAFE_MODE) {\n /** @type {AnnotatedError} */\n const err = new Error(`0 width match regex (${languageName})`);\n err.languageName = languageName;\n err.badRule = lastMatch.rule;\n throw err;\n }\n return 1;\n }\n lastMatch = match;\n\n if (match.type === \"begin\") {\n return doBeginMatch(match);\n } else if (match.type === \"illegal\" && !ignoreIllegals) {\n // illegal match, we do not continue processing\n /** @type {AnnotatedError} */\n const err = new Error('Illegal lexeme \"' + lexeme + '\" for mode \"' + (top.scope || '<unnamed>') + '\"');\n err.mode = top;\n throw err;\n } else if (match.type === \"end\") {\n const processed = doEndMatch(match);\n if (processed !== NO_MATCH) {\n return processed;\n }\n }\n\n // edge case for when illegal matches $ (end of line) which is technically\n // a 0 width match but not a begin/end match so it's not caught by the\n // first handler (when ignoreIllegals is true)\n if (match.type === \"illegal\" && lexeme === \"\") {\n // advance so we aren't stuck in an infinite loop\n modeBuffer += \"\\n\";\n return 1;\n }\n\n // infinite loops are BAD, this is a last ditch catch all. if we have a\n // decent number of iterations yet our index (cursor position in our\n // parsing) still 3x behind our index then something is very wrong\n // so we bail\n if (iterations > 100000 && iterations > match.index * 3) {\n const err = new Error('potential infinite loop, way more iterations than matches');\n throw err;\n }\n\n /*\n Why might be find ourselves here? An potential end match that was\n triggered but could not be completed. IE, `doEndMatch` returned NO_MATCH.\n (this could be because a callback requests the match be ignored, etc)\n\n This causes no real harm other than stopping a few times too many.\n */\n\n modeBuffer += lexeme;\n return lexeme.length;\n }\n\n const language = getLanguage(languageName);\n if (!language) {\n error(LANGUAGE_NOT_FOUND.replace(\"{}\", languageName));\n throw new Error('Unknown language: \"' + languageName + '\"');\n }\n\n const md = compileLanguage(language);\n let result = '';\n /** @type {CompiledMode} */\n let top = continuation || md;\n /** @type Record<string,CompiledMode> */\n const continuations = {}; // keep continuations for sub-languages\n const emitter = new options.__emitter(options);\n processContinuations();\n let modeBuffer = '';\n let relevance = 0;\n let index = 0;\n let iterations = 0;\n let resumeScanAtSamePosition = false;\n\n try {\n if (!language.__emitTokens) {\n top.matcher.considerAll();\n\n for (;;) {\n iterations++;\n if (resumeScanAtSamePosition) {\n // only regexes not matched previously will now be\n // considered for a potential match\n resumeScanAtSamePosition = false;\n } else {\n top.matcher.considerAll();\n }\n top.matcher.lastIndex = index;\n\n const match = top.matcher.exec(codeToHighlight);\n // console.log(\"match\", match[0], match.rule && match.rule.begin)\n\n if (!match) break;\n\n const beforeMatch = codeToHighlight.substring(index, match.index);\n const processedCount = processLexeme(beforeMatch, match);\n index = match.index + processedCount;\n }\n processLexeme(codeToHighlight.substring(index));\n } else {\n language.__emitTokens(codeToHighlight, emitter);\n }\n\n emitter.finalize();\n result = emitter.toHTML();\n\n return {\n language: languageName,\n value: result,\n relevance,\n illegal: false,\n _emitter: emitter,\n _top: top\n };\n } catch (err) {\n if (err.message && err.message.includes('Illegal')) {\n return {\n language: languageName,\n value: escape(codeToHighlight),\n illegal: true,\n relevance: 0,\n _illegalBy: {\n message: err.message,\n index,\n context: codeToHighlight.slice(index - 100, index + 100),\n mode: err.mode,\n resultSoFar: result\n },\n _emitter: emitter\n };\n } else if (SAFE_MODE) {\n return {\n language: languageName,\n value: escape(codeToHighlight),\n illegal: false,\n relevance: 0,\n errorRaised: err,\n _emitter: emitter,\n _top: top\n };\n } else {\n throw err;\n }\n }\n }\n\n /**\n * returns a valid highlight result, without actually doing any actual work,\n * auto highlight starts with this and it's possible for small snippets that\n * auto-detection may not find a better match\n * @param {string} code\n * @returns {HighlightResult}\n */\n function justTextHighlightResult(code) {\n const result = {\n value: escape(code),\n illegal: false,\n relevance: 0,\n _top: PLAINTEXT_LANGUAGE,\n _emitter: new options.__emitter(options)\n };\n result._emitter.addText(code);\n return result;\n }\n\n /**\n Highlighting with language detection. Accepts a string with the code to\n highlight. Returns an object with the following properties:\n\n - language (detected language)\n - relevance (int)\n - value (an HTML string with highlighting markup)\n - secondBest (object with the same structure for second-best heuristically\n detected language, may be absent)\n\n @param {string} code\n @param {Array<string>} [languageSubset]\n @returns {AutoHighlightResult}\n */\n function highlightAuto(code, languageSubset) {\n languageSubset = languageSubset || options.languages || Object.keys(languages);\n const plaintext = justTextHighlightResult(code);\n\n const results = languageSubset.filter(getLanguage).filter(autoDetection).map(name =>\n _highlight(name, code, false)\n );\n results.unshift(plaintext); // plaintext is always an option\n\n const sorted = results.sort((a, b) => {\n // sort base on relevance\n if (a.relevance !== b.relevance) return b.relevance - a.relevance;\n\n // always award the tie to the base language\n // ie if C++ and Arduino are tied, it's more likely to be C++\n if (a.language && b.language) {\n if (getLanguage(a.language).supersetOf === b.language) {\n return 1;\n } else if (getLanguage(b.language).supersetOf === a.language) {\n return -1;\n }\n }\n\n // otherwise say they are equal, which has the effect of sorting on\n // relevance while preserving the original ordering - which is how ties\n // have historically been settled, ie the language that comes first always\n // wins in the case of a tie\n return 0;\n });\n\n const [best, secondBest] = sorted;\n\n /** @type {AutoHighlightResult} */\n const result = best;\n result.secondBest = secondBest;\n\n return result;\n }\n\n /**\n * Builds new class name for block given the language name\n *\n * @param {HTMLElement} element\n * @param {string} [currentLang]\n * @param {string} [resultLang]\n */\n function updateClassName(element, currentLang, resultLang) {\n const language = (currentLang && aliases[currentLang]) || resultLang;\n\n element.classList.add(\"hljs\");\n element.classList.add(`language-${language}`);\n }\n\n /**\n * Applies highlighting to a DOM node containing code.\n *\n * @param {HighlightedHTMLElement} element - the HTML element to highlight\n */\n function highlightElement(element) {\n /** @type HTMLElement */\n let node = null;\n const language = blockLanguage(element);\n\n if (shouldNotHighlight(language)) return;\n\n fire(\"before:highlightElement\",\n { el: element, language });\n\n if (element.dataset.highlighted) {\n console.log(\"Element previously highlighted. To highlight again, first unset `dataset.highlighted`.\", element);\n return;\n }\n\n // we should be all text, no child nodes (unescaped HTML) - this is possibly\n // an HTML injection attack - it's likely too late if this is already in\n // production (the code has likely already done its damage by the time\n // we're seeing it)... but we yell loudly about this so that hopefully it's\n // more likely to be caught in development before making it to production\n if (element.children.length > 0) {\n if (!options.ignoreUnescapedHTML) {\n console.warn(\"One of your code blocks includes unescaped HTML. This is a potentially serious security risk.\");\n console.warn(\"https://github.com/highlightjs/highlight.js/wiki/security\");\n console.warn(\"The element with unescaped HTML:\");\n console.warn(element);\n }\n if (options.throwUnescapedHTML) {\n const err = new HTMLInjectionError(\n \"One of your code blocks includes unescaped HTML.\",\n element.innerHTML\n );\n throw err;\n }\n }\n\n node = element;\n const text = node.textContent;\n const result = language ? highlight(text, { language, ignoreIllegals: true }) : highlightAuto(text);\n\n element.innerHTML = result.value;\n element.dataset.highlighted = \"yes\";\n updateClassName(element, language, result.language);\n element.result = {\n language: result.language,\n // TODO: remove with version 11.0\n re: result.relevance,\n relevance: result.relevance\n };\n if (result.secondBest) {\n element.secondBest = {\n language: result.secondBest.language,\n relevance: result.secondBest.relevance\n };\n }\n\n fire(\"after:highlightElement\", { el: element, result, text });\n }\n\n /**\n * Updates highlight.js global options with the passed options\n *\n * @param {Partial<HLJSOptions>} userOptions\n */\n function configure(userOptions) {\n options = inherit(options, userOptions);\n }\n\n // TODO: remove v12, deprecated\n const initHighlighting = () => {\n highlightAll();\n deprecated(\"10.6.0\", \"initHighlighting() deprecated. Use highlightAll() now.\");\n };\n\n // TODO: remove v12, deprecated\n function initHighlightingOnLoad() {\n highlightAll();\n deprecated(\"10.6.0\", \"initHighlightingOnLoad() deprecated. Use highlightAll() now.\");\n }\n\n let wantsHighlight = false;\n\n /**\n * auto-highlights all pre>code elements on the page\n */\n function highlightAll() {\n function boot() {\n // if a highlight was requested before DOM was loaded, do now\n highlightAll();\n }\n\n // if we are called too early in the loading process\n if (document.readyState === \"loading\") {\n // make sure the event listener is only added once\n if (!wantsHighlight) {\n window.addEventListener('DOMContentLoaded', boot, false);\n }\n wantsHighlight = true;\n return;\n }\n\n const blocks = document.querySelectorAll(options.cssSelector);\n blocks.forEach(highlightElement);\n }\n\n /**\n * Register a language grammar module\n *\n * @param {string} languageName\n * @param {LanguageFn} languageDefinition\n */\n function registerLanguage(languageName, languageDefinition) {\n let lang = null;\n try {\n lang = languageDefinition(hljs);\n } catch (error$1) {\n error(\"Language definition for '{}' could not be registered.\".replace(\"{}\", languageName));\n // hard or soft error\n if (!SAFE_MODE) { throw error$1; } else { error(error$1); }\n // languages that have serious errors are replaced with essentially a\n // \"plaintext\" stand-in so that the code blocks will still get normal\n // css classes applied to them - and one bad language won't break the\n // entire highlighter\n lang = PLAINTEXT_LANGUAGE;\n }\n // give it a temporary name if it doesn't have one in the meta-data\n if (!lang.name) lang.name = languageName;\n languages[languageName] = lang;\n lang.rawDefinition = languageDefinition.bind(null, hljs);\n\n if (lang.aliases) {\n registerAliases(lang.aliases, { languageName });\n }\n }\n\n /**\n * Remove a language grammar module\n *\n * @param {string} languageName\n */\n function unregisterLanguage(languageName) {\n delete languages[languageName];\n for (const alias of Object.keys(aliases)) {\n if (aliases[alias] === languageName) {\n delete aliases[alias];\n }\n }\n }\n\n /**\n * @returns {string[]} List of language internal names\n */\n function listLanguages() {\n return Object.keys(languages);\n }\n\n /**\n * @param {string} name - name of the language to retrieve\n * @returns {Language | undefined}\n */\n function getLanguage(name) {\n name = (name || '').toLowerCase();\n return languages[name] || languages[aliases[name]];\n }\n\n /**\n *\n * @param {string|string[]} aliasList - single alias or list of aliases\n * @param {{languageName: string}} opts\n */\n function registerAliases(aliasList, { languageName }) {\n if (typeof aliasList === 'string') {\n aliasList = [aliasList];\n }\n aliasList.forEach(alias => { aliases[alias.toLowerCase()] = languageName; });\n }\n\n /**\n * Determines if a given language has auto-detection enabled\n * @param {string} name - name of the language\n */\n function autoDetection(name) {\n const lang = getLanguage(name);\n return lang && !lang.disableAutodetect;\n }\n\n /**\n * Upgrades the old highlightBlock plugins to the new\n * highlightElement API\n * @param {HLJSPlugin} plugin\n */\n function upgradePluginAPI(plugin) {\n // TODO: remove with v12\n if (plugin[\"before:highlightBlock\"] && !plugin[\"before:highlightElement\"]) {\n plugin[\"before:highlightElement\"] = (data) => {\n plugin[\"before:highlightBlock\"](\n Object.assign({ block: data.el }, data)\n );\n };\n }\n if (plugin[\"after:highlightBlock\"] && !plugin[\"after:highlightElement\"]) {\n plugin[\"after:highlightElement\"] = (data) => {\n plugin[\"after:highlightBlock\"](\n Object.assign({ block: data.el }, data)\n );\n };\n }\n }\n\n /**\n * @param {HLJSPlugin} plugin\n */\n function addPlugin(plugin) {\n upgradePluginAPI(plugin);\n plugins.push(plugin);\n }\n\n /**\n * @param {HLJSPlugin} plugin\n */\n function removePlugin(plugin) {\n const index = plugins.indexOf(plugin);\n if (index !== -1) {\n plugins.splice(index, 1);\n }\n }\n\n /**\n *\n * @param {PluginEvent} event\n * @param {any} args\n */\n function fire(event, args) {\n const cb = event;\n plugins.forEach(function(plugin) {\n if (plugin[cb]) {\n plugin[cb](args);\n }\n });\n }\n\n /**\n * DEPRECATED\n * @param {HighlightedHTMLElement} el\n */\n function deprecateHighlightBlock(el) {\n deprecated(\"10.7.0\", \"highlightBlock will be removed entirely in v12.0\");\n deprecated(\"10.7.0\", \"Please use highlightElement now.\");\n\n return highlightElement(el);\n }\n\n /* Interface definition */\n Object.assign(hljs, {\n highlight,\n highlightAuto,\n highlightAll,\n highlightElement,\n // TODO: Remove with v12 API\n highlightBlock: deprecateHighlightBlock,\n configure,\n initHighlighting,\n initHighlightingOnLoad,\n registerLanguage,\n unregisterLanguage,\n listLanguages,\n getLanguage,\n registerAliases,\n autoDetection,\n inherit,\n addPlugin,\n removePlugin\n });\n\n hljs.debugMode = function() { SAFE_MODE = false; };\n hljs.safeMode = function() { SAFE_MODE = true; };\n hljs.versionString = version;\n\n hljs.regex = {\n concat: concat,\n lookahead: lookahead,\n either: either,\n optional: optional,\n anyNumberOfTimes: anyNumberOfTimes\n };\n\n for (const key in MODES) {\n // @ts-ignore\n if (typeof MODES[key] === \"object\") {\n // @ts-ignore\n deepFreeze(MODES[key]);\n }\n }\n\n // merge all the modes/regexes into our main object\n Object.assign(hljs, MODES);\n\n return hljs;\n};\n\n// Other names for the variable may break build script\nconst highlight = HLJS({});\n\n// returns a new instance of the highlighter to be used for extensions\n// check https://github.com/wooorm/lowlight/issues/47\nhighlight.newInstance = () => HLJS({});\n\nmodule.exports = highlight;\nhighlight.HighlightJS = highlight;\nhighlight.default = highlight;\n","// https://nodejs.org/api/packages.html#packages_writing_dual_packages_while_avoiding_or_minimizing_hazards\nimport HighlightJS from '../lib/core.js';\nexport { HighlightJS };\nexport default HighlightJS;\n","'use strict';\nmodule.exports = string => {\n\tconst match = string.match(/^[ \\t]*(?=\\S)/gm);\n\n\tif (!match) {\n\t\treturn 0;\n\t}\n\n\treturn match.reduce((r, a) => Math.min(r, a.length), Infinity);\n};\n","'use strict';\nconst minIndent = require('min-indent');\n\nmodule.exports = string => {\n\tconst indent = minIndent(string);\n\n\tif (indent === 0) {\n\t\treturn string;\n\t}\n\n\tconst regex = new RegExp(`^[ \\\\t]{${indent}}`, 'gm');\n\n\treturn string.replace(regex, '');\n};\n","import { createRequire } from 'module';\n\ncreateRequire(import.meta.url);\nvar highlight_alias_default = {\n \"languages\": [\n \"1c\",\n \"abnf\",\n \"accesslog\",\n \"actionscript\",\n \"ada\",\n \"angelscript\",\n \"apache\",\n \"applescript\",\n \"arcade\",\n \"arduino\",\n \"armasm\",\n \"xml\",\n \"asciidoc\",\n \"aspectj\",\n \"autohotkey\",\n \"autoit\",\n \"avrasm\",\n \"awk\",\n \"axapta\",\n \"bash\",\n \"basic\",\n \"bnf\",\n \"brainfuck\",\n \"c\",\n \"cal\",\n \"capnproto\",\n \"ceylon\",\n \"clean\",\n \"clojure\",\n \"clojure-repl\",\n \"cmake\",\n \"coffeescript\",\n \"coq\",\n \"cos\",\n \"cpp\",\n \"crmsh\",\n \"crystal\",\n \"csharp\",\n \"csp\",\n \"css\",\n \"d\",\n \"markdown\",\n \"dart\",\n \"delphi\",\n \"diff\",\n \"django\",\n \"dns\",\n \"dockerfile\",\n \"dos\",\n \"dsconfig\",\n \"dts\",\n \"dust\",\n \"ebnf\",\n \"elixir\",\n \"elm\",\n \"ruby\",\n \"erb\",\n \"erlang-repl\",\n \"erlang\",\n \"excel\",\n \"fix\",\n \"flix\",\n \"fortran\",\n \"fsharp\",\n \"gams\",\n \"gauss\",\n \"gcode\",\n \"gherkin\",\n \"glsl\",\n \"gml\",\n \"go\",\n \"golo\",\n \"gradle\",\n \"graphql\",\n \"groovy\",\n \"haml\",\n \"handlebars\",\n \"haskell\",\n \"haxe\",\n \"hsp\",\n \"http\",\n \"hy\",\n \"inform7\",\n \"ini\",\n \"irpf90\",\n \"isbl\",\n \"java\",\n \"javascript\",\n \"jboss-cli\",\n \"json\",\n \"julia\",\n \"julia-repl\",\n \"kotlin\",\n \"lasso\",\n \"latex\",\n \"ldif\",\n \"leaf\",\n \"less\",\n \"lisp\",\n \"livecodeserver\",\n \"livescript\",\n \"llvm\",\n \"lsl\",\n \"lua\",\n \"makefile\",\n \"mathematica\",\n \"matlab\",\n \"maxima\",\n \"mel\",\n \"mercury\",\n \"mipsasm\",\n \"mizar\",\n \"perl\",\n \"mojolicious\",\n \"monkey\",\n \"moonscript\",\n \"n1ql\",\n \"nestedtext\",\n \"nginx\",\n \"nim\",\n \"nix\",\n \"node-repl\",\n \"nsis\",\n \"objectivec\",\n \"ocaml\",\n \"openscad\",\n \"oxygene\",\n \"parser3\",\n \"pf\",\n \"pgsql\",\n \"php\",\n \"php-template\",\n \"plaintext\",\n \"pony\",\n \"powershell\",\n \"processing\",\n \"profile\",\n \"prolog\",\n \"properties\",\n \"protobuf\",\n \"puppet\",\n \"purebasic\",\n \"python\",\n \"python-repl\",\n \"q\",\n \"qml\",\n \"r\",\n \"reasonml\",\n \"rib\",\n \"roboconf\",\n \"routeros\",\n \"rsl\",\n \"ruleslanguage\",\n \"rust\",\n \"sas\",\n \"scala\",\n \"scheme\",\n \"scilab\",\n \"scss\",\n \"shell\",\n \"smali\",\n \"smalltalk\",\n \"sml\",\n \"sqf\",\n \"sql\",\n \"stan\",\n \"stata\",\n \"step21\",\n \"stylus\",\n \"subunit\",\n \"swift\",\n \"taggerscript\",\n \"yaml\",\n \"tap\",\n \"tcl\",\n \"thrift\",\n \"tp\",\n \"twig\",\n \"typescript\",\n \"vala\",\n \"vbnet\",\n \"vbscript\",\n \"vbscript-html\",\n \"verilog\",\n \"vhdl\",\n \"vim\",\n \"wasm\",\n \"wren\",\n \"x86asm\",\n \"xl\",\n \"xquery\",\n \"zephir\"\n ],\n \"aliases\": {\n \"1c\": \"1c\",\n \"abnf\": \"abnf\",\n \"accesslog\": \"accesslog\",\n \"actionscript\": \"actionscript\",\n \"as\": \"actionscript\",\n \"ada\": \"ada\",\n \"angelscript\": \"angelscript\",\n \"asc\": \"angelscript\",\n \"apache\": \"apache\",\n \"apacheconf\": \"apache\",\n \"applescript\": \"applescript\",\n \"osascript\": \"applescript\",\n \"arcade\": \"arcade\",\n \"arduino\": \"arduino\",\n \"ino\": \"arduino\",\n \"armasm\": \"armasm\",\n \"arm\": \"armasm\",\n \"xml\": \"xml\",\n \"html\": \"xml\",\n \"xhtml\": \"xml\",\n \"rss\": \"xml\",\n \"atom\": \"xml\",\n \"xjb\": \"xml\",\n \"xsd\": \"xml\",\n \"xsl\": \"xml\",\n \"plist\": \"xml\",\n \"wsf\": \"xml\",\n \"svg\": \"xml\",\n \"asciidoc\": \"asciidoc\",\n \"adoc\": \"asciidoc\",\n \"aspectj\": \"aspectj\",\n \"autohotkey\": \"autohotkey\",\n \"ahk\": \"autohotkey\",\n \"autoit\": \"autoit\",\n \"avrasm\": \"avrasm\",\n \"awk\": \"awk\",\n \"axapta\": \"axapta\",\n \"x++\": \"axapta\",\n \"bash\": \"bash\",\n \"sh\": \"bash\",\n \"zsh\": \"bash\",\n \"basic\": \"basic\",\n \"bnf\": \"bnf\",\n \"brainfuck\": \"brainfuck\",\n \"bf\": \"brainfuck\",\n \"c\": \"c\",\n \"h\": \"c\",\n \"cal\": \"cal\",\n \"capnproto\": \"capnproto\",\n \"capnp\": \"capnproto\",\n \"ceylon\": \"ceylon\",\n \"clean\": \"clean\",\n \"icl\": \"clean\",\n \"dcl\": \"clean\",\n \"clojure\": \"clojure\",\n \"clj\": \"clojure\",\n \"edn\": \"clojure\",\n \"clojure-repl\": \"clojure-repl\",\n \"cmake\": \"cmake\",\n \"cmake.in\": \"cmake\",\n \"coffeescript\": \"coffeescript\",\n \"coffee\": \"coffeescript\",\n \"cson\": \"coffeescript\",\n \"iced\": \"coffeescript\",\n \"coq\": \"coq\",\n \"cos\": \"cos\",\n \"cls\": \"cos\",\n \"cpp\": \"cpp\",\n \"cc\": \"cpp\",\n \"c++\": \"cpp\",\n \"h++\": \"cpp\",\n \"hpp\": \"cpp\",\n \"hh\": \"cpp\",\n \"hxx\": \"cpp\",\n \"cxx\": \"cpp\",\n \"crmsh\": \"crmsh\",\n \"crm\": \"crmsh\",\n \"pcmk\": \"crmsh\",\n \"crystal\": \"crystal\",\n \"cr\": \"crystal\",\n \"csharp\": \"csharp\",\n \"cs\": \"csharp\",\n \"c#\": \"csharp\",\n \"csp\": \"csp\",\n \"css\": \"css\",\n \"d\": \"d\",\n \"markdown\": \"markdown\",\n \"md\": \"markdown\",\n \"mkdown\": \"markdown\",\n \"mkd\": \"markdown\",\n \"dart\": \"dart\",\n \"delphi\": \"delphi\",\n \"dpr\": \"delphi\",\n \"dfm\": \"delphi\",\n \"pas\": \"delphi\",\n \"pascal\": \"delphi\",\n \"diff\": \"diff\",\n \"patch\": \"diff\",\n \"django\": \"django\",\n \"jinja\": \"django\",\n \"dns\": \"dns\",\n \"bind\": \"dns\",\n \"zone\": \"dns\",\n \"dockerfile\": \"dockerfile\",\n \"docker\": \"dockerfile\",\n \"dos\": \"dos\",\n \"bat\": \"dos\",\n \"cmd\": \"dos\",\n \"dsconfig\": \"dsconfig\",\n \"dts\": \"dts\",\n \"dust\": \"dust\",\n \"dst\": \"dust\",\n \"ebnf\": \"ebnf\",\n \"elixir\": \"elixir\",\n \"ex\": \"elixir\",\n \"exs\": \"elixir\",\n \"elm\": \"elm\",\n \"ruby\": \"ruby\",\n \"rb\": \"ruby\",\n \"gemspec\": \"ruby\",\n \"podspec\": \"ruby\",\n \"thor\": \"ruby\",\n \"irb\": \"ruby\",\n \"erb\": \"erb\",\n \"erlang-repl\": \"erlang-repl\",\n \"erlang\": \"erlang\",\n \"erl\": \"erlang\",\n \"excel\": \"excel\",\n \"xlsx\": \"excel\",\n \"xls\": \"excel\",\n \"fix\": \"fix\",\n \"flix\": \"flix\",\n \"fortran\": \"fortran\",\n \"f90\": \"fortran\",\n \"f95\": \"fortran\",\n \"fsharp\": \"fsharp\",\n \"fs\": \"fsharp\",\n \"f#\": \"fsharp\",\n \"gams\": \"gams\",\n \"gms\": \"gams\",\n \"gauss\": \"gauss\",\n \"gss\": \"gauss\",\n \"gcode\": \"gcode\",\n \"nc\": \"gcode\",\n \"gherkin\": \"gherkin\",\n \"feature\": \"gherkin\",\n \"glsl\": \"glsl\",\n \"gml\": \"gml\",\n \"go\": \"go\",\n \"golang\": \"go\",\n \"golo\": \"golo\",\n \"gradle\": \"gradle\",\n \"graphql\": \"graphql\",\n \"gql\": \"graphql\",\n \"groovy\": \"groovy\",\n \"haml\": \"haml\",\n \"handlebars\": \"handlebars\",\n \"hbs\": \"handlebars\",\n \"html.hbs\": \"handlebars\",\n \"html.handlebars\": \"handlebars\",\n \"htmlbars\": \"handlebars\",\n \"haskell\": \"haskell\",\n \"hs\": \"haskell\",\n \"haxe\": \"haxe\",\n \"hx\": \"haxe\",\n \"hsp\": \"hsp\",\n \"http\": \"http\",\n \"https\": \"http\",\n \"hy\": \"hy\",\n \"hylang\": \"hy\",\n \"inform7\": \"inform7\",\n \"i7\": \"inform7\",\n \"ini\": \"ini\",\n \"toml\": \"ini\",\n \"irpf90\": \"irpf90\",\n \"isbl\": \"isbl\",\n \"java\": \"java\",\n \"jsp\": \"java\",\n \"javascript\": \"javascript\",\n \"js\": \"javascript\",\n \"jsx\": \"javascript\",\n \"mjs\": \"javascript\",\n \"cjs\": \"javascript\",\n \"jboss-cli\": \"jboss-cli\",\n \"wildfly-cli\": \"jboss-cli\",\n \"json\": \"json\",\n \"jsonc\": \"json\",\n \"julia\": \"julia\",\n \"julia-repl\": \"julia-repl\",\n \"jldoctest\": \"julia-repl\",\n \"kotlin\": \"kotlin\",\n \"kt\": \"kotlin\",\n \"kts\": \"kotlin\",\n \"lasso\": \"lasso\",\n \"ls\": \"livescript\",\n \"lassoscript\": \"lasso\",\n \"latex\": \"latex\",\n \"tex\": \"latex\",\n \"ldif\": \"ldif\",\n \"leaf\": \"leaf\",\n \"less\": \"less\",\n \"lisp\": \"lisp\",\n \"livecodeserver\": \"livecodeserver\",\n \"livescript\": \"livescript\",\n \"llvm\": \"llvm\",\n \"lsl\": \"lsl\",\n \"lua\": \"lua\",\n \"pluto\": \"lua\",\n \"makefile\": \"makefile\",\n \"mk\": \"makefile\",\n \"mak\": \"makefile\",\n \"make\": \"makefile\",\n \"mathematica\": \"mathematica\",\n \"mma\": \"mathematica\",\n \"wl\": \"mathematica\",\n \"matlab\": \"matlab\",\n \"maxima\": \"maxima\",\n \"mel\": \"mel\",\n \"mercury\": \"mercury\",\n \"m\": \"mercury\",\n \"moo\": \"mercury\",\n \"mipsasm\": \"mipsasm\",\n \"mips\": \"mipsasm\",\n \"mizar\": \"mizar\",\n \"perl\": \"perl\",\n \"pl\": \"perl\",\n \"pm\": \"perl\",\n \"mojolicious\": \"mojolicious\",\n \"monkey\": \"monkey\",\n \"moonscript\": \"moonscript\",\n \"moon\": \"moonscript\",\n \"n1ql\": \"n1ql\",\n \"nestedtext\": \"nestedtext\",\n \"nt\": \"nestedtext\",\n \"nginx\": \"nginx\",\n \"nginxconf\": \"nginx\",\n \"nim\": \"nim\",\n \"nix\": \"nix\",\n \"nixos\": \"nix\",\n \"node-repl\": \"node-repl\",\n \"nsis\": \"nsis\",\n \"objectivec\": \"objectivec\",\n \"mm\": \"objectivec\",\n \"objc\": \"objectivec\",\n \"obj-c\": \"objectivec\",\n \"obj-c++\": \"objectivec\",\n \"objective-c++\": \"objectivec\",\n \"ocaml\": \"ocaml\",\n \"ml\": \"sml\",\n \"openscad\": \"openscad\",\n \"scad\": \"openscad\",\n \"oxygene\": \"oxygene\",\n \"parser3\": \"parser3\",\n \"pf\": \"pf\",\n \"pf.conf\": \"pf\",\n \"pgsql\": \"pgsql\",\n \"postgres\": \"pgsql\",\n \"postgresql\": \"pgsql\",\n \"php\": \"php\",\n \"php-template\": \"php-template\",\n \"plaintext\": \"plaintext\",\n \"text\": \"plaintext\",\n \"txt\": \"plaintext\",\n \"pony\": \"pony\",\n \"powershell\": \"powershell\",\n \"pwsh\": \"powershell\",\n \"ps\": \"powershell\",\n \"ps1\": \"powershell\",\n \"processing\": \"processing\",\n \"pde\": \"processing\",\n \"profile\": \"profile\",\n \"prolog\": \"prolog\",\n \"properties\": \"properties\",\n \"protobuf\": \"protobuf\",\n \"proto\": \"protobuf\",\n \"puppet\": \"puppet\",\n \"pp\": \"puppet\",\n \"purebasic\": \"purebasic\",\n \"pb\": \"purebasic\",\n \"pbi\": \"purebasic\",\n \"python\": \"python\",\n \"py\": \"python\",\n \"gyp\": \"python\",\n \"ipython\": \"python\",\n \"python-repl\": \"python-repl\",\n \"pycon\": \"python-repl\",\n \"q\": \"q\",\n \"k\": \"q\",\n \"kdb\": \"q\",\n \"qml\": \"qml\",\n \"qt\": \"qml\",\n \"r\": \"r\",\n \"reasonml\": \"reasonml\",\n \"re\": \"reasonml\",\n \"rib\": \"rib\",\n \"roboconf\": \"roboconf\",\n \"graph\": \"roboconf\",\n \"instances\": \"roboconf\",\n \"routeros\": \"routeros\",\n \"mikrotik\": \"routeros\",\n \"rsl\": \"rsl\",\n \"ruleslanguage\": \"ruleslanguage\",\n \"rust\": \"rust\",\n \"rs\": \"rust\",\n \"sas\": \"sas\",\n \"scala\": \"scala\",\n \"scheme\": \"scheme\",\n \"scm\": \"scheme\",\n \"scilab\": \"scilab\",\n \"sci\": \"scilab\",\n \"scss\": \"scss\",\n \"shell\": \"shell\",\n \"console\": \"shell\",\n \"shellsession\": \"shell\",\n \"smali\": \"smali\",\n \"smalltalk\": \"smalltalk\",\n \"st\": \"smalltalk\",\n \"sml\": \"sml\",\n \"sqf\": \"sqf\",\n \"sql\": \"sql\",\n \"stan\": \"stan\",\n \"stanfuncs\": \"stan\",\n \"stata\": \"stata\",\n \"do\": \"stata\",\n \"ado\": \"stata\",\n \"step21\": \"step21\",\n \"p21\": \"step21\",\n \"step\": \"step21\",\n \"stp\": \"step21\",\n \"stylus\": \"stylus\",\n \"styl\": \"stylus\",\n \"subunit\": \"subunit\",\n \"swift\": \"swift\",\n \"taggerscript\": \"taggerscript\",\n \"yaml\": \"yaml\",\n \"yml\": \"yaml\",\n \"tap\": \"tap\",\n \"tcl\": \"tcl\",\n \"tk\": \"tcl\",\n \"thrift\": \"thrift\",\n \"tp\": \"tp\",\n \"twig\": \"twig\",\n \"craftcms\": \"twig\",\n \"typescript\": \"typescript\",\n \"ts\": \"typescript\",\n \"tsx\": \"typescript\",\n \"mts\": \"typescript\",\n \"cts\": \"typescript\",\n \"vala\": \"vala\",\n \"vbnet\": \"vbnet\",\n \"vb\": \"vbnet\",\n \"vbscript\": \"vbscript\",\n \"vbs\": \"vbscript\",\n \"vbscript-html\": \"vbscript-html\",\n \"verilog\": \"verilog\",\n \"v\": \"verilog\",\n \"sv\": \"verilog\",\n \"svh\": \"verilog\",\n \"vhdl\": \"vhdl\",\n \"vim\": \"vim\",\n \"wasm\": \"wasm\",\n \"wren\": \"wren\",\n \"x86asm\": \"x86asm\",\n \"xl\": \"xl\",\n \"tao\": \"xl\",\n \"xquery\": \"xquery\",\n \"xpath\": \"xquery\",\n \"xq\": \"xquery\",\n \"xqm\": \"xquery\",\n \"zephir\": \"zephir\",\n \"zep\": \"zephir\"\n }\n};\n\nexport { highlight_alias_default as default };\n//# sourceMappingURL=highlight_alias.js.map\n//# sourceMappingURL=highlight_alias.js.map","import { createRequire } from 'module';\nimport _highlight from 'highlight.js/lib/core';\nimport stripIndent from 'strip-indent';\nimport alias from './highlight_alias.js';\n\nconst require$1 = createRequire(import.meta.url);\nlet hljs;\nfunction highlightUtil(str, options = {}) {\n if (typeof str !== \"string\") throw new TypeError(\"str must be a string!\");\n const useHljs = Object.prototype.hasOwnProperty.call(options, \"hljs\") ? options.hljs : false;\n const {\n gutter = true,\n firstLine = 1,\n caption,\n mark = [],\n languageAttr = false,\n tab,\n stripIndent: enableStripIndent = true\n } = options;\n let { wrap = true } = options;\n if (enableStripIndent) {\n str = stripIndent(str);\n }\n if (!hljs) {\n hljs = _highlight;\n }\n hljs.configure({ classPrefix: useHljs ? \"hljs-\" : \"\" });\n let lang = options.lang || options.language || \"plaintext\";\n const data = highlight(str, options);\n lang = options.lang || data.language || \"\";\n const classNames = (useHljs ? \"hljs\" : \"highlight\") + (lang ? ` ${lang}` : \"\");\n if (gutter && !wrap) wrap = true;\n const before = useHljs ? `<pre><code class=\"${classNames}\"${languageAttr && lang ? ` data-language=\"${lang}\"` : \"\"}>` : \"<pre>\";\n const after = useHljs ? \"</code></pre>\" : \"</pre>\";\n const lines = data.value.split(\"\\n\");\n let numbers = \"\";\n let content = \"\";\n for (let i = 0, len = lines.length; i < len; i++) {\n let line = lines[i];\n if (tab) line = replaceTabs(line, tab);\n numbers += `<span class=\"line\">${Number(firstLine) + i}</span><br>`;\n content += formatLine(line, Number(firstLine) + i, mark, options, wrap);\n }\n let codeCaption = \"\";\n if (caption) {\n codeCaption = wrap ? `<figcaption>${caption}</figcaption>` : `<div class=\"caption\">${caption}</div>`;\n }\n if (!wrap) {\n content = /\\r?\\n$/.test(data.value) ? content.replace(/\\n$/, \"\") : content.trimEnd();\n return `<pre>${codeCaption}<code class=\"${classNames}\"${languageAttr && lang ? ` data-language=\"${lang}\"` : \"\"}>${content}</code></pre>`;\n }\n let result = `<figure class=\"highlight${data.language ? ` ${data.language}` : \"\"}\"${languageAttr && lang ? ` data-language=\"${lang}\"` : \"\"}>`;\n result += codeCaption;\n result += \"<table><tr>\";\n if (gutter) {\n result += `<td class=\"gutter\"><pre>${numbers}</pre></td>`;\n }\n result += `<td class=\"code\">${before}${content}${after}</td>`;\n result += \"</tr></table></figure>\";\n return result;\n}\nfunction formatLine(line, lineno, marked, options, wrap) {\n const useHljs = options.hljs || false || !wrap;\n const br = wrap ? \"<br>\" : \"\\n\";\n let res = useHljs ? \"\" : '<span class=\"line';\n if (marked.includes(lineno)) {\n res += useHljs ? `<mark>${line}</mark>` : ` marked\">${line}</span>`;\n } else {\n res += useHljs ? line : `\">${line}</span>`;\n }\n res += br;\n return res;\n}\nfunction replaceTabs(str, tab) {\n return str.replace(/\\t+/, (match) => tab.repeat(match.length));\n}\nfunction highlight(str, options) {\n let { lang } = options;\n const { autoDetect = false } = options;\n if (!hljs) {\n hljs = _highlight;\n }\n if (lang) {\n lang = lang.toLowerCase();\n } else if (autoDetect) {\n const result = hljs.highlightAuto(str);\n return closeTags(result);\n }\n if (!lang || !alias.aliases[lang] && !hljs.getLanguage(lang)) {\n lang = \"plaintext\";\n }\n if (!hljs.getLanguage(lang)) {\n try {\n const mod = require$1(`highlight.js/lib/languages/${alias.aliases[lang] || lang}`);\n hljs.registerLanguage(lang, mod.default || mod);\n } catch {\n }\n }\n const res = hljs.highlight(str, {\n language: lang,\n ignoreIllegals: true\n });\n return closeTags(res);\n}\nfunction closeTags(res) {\n const tokenStack = [];\n res.value = res.value.split(\"\\n\").map((line) => {\n const prepend = tokenStack.map((token) => `<span class=\"${token}\">`).join(\"\");\n const matches = line.matchAll(/(<span class=\"(.*?)\">|<\\/span>)/g);\n for (const match of matches) {\n if (match[0] === \"</span>\") tokenStack.shift();\n else tokenStack.unshift(match[2]);\n }\n const append = \"</span>\".repeat(tokenStack.length);\n return prepend + line + append;\n }).join(\"\\n\");\n return res;\n}\nvar highlight_shared_default = highlightUtil;\nif (typeof module !== \"undefined\" && typeof module.exports === \"object\" && module.exports !== null) {\n module.exports = highlightUtil;\n module.exports.default = highlightUtil;\n}\n\nexport { highlight_shared_default as default };\n//# sourceMappingURL=highlight_shared.js.map\n//# sourceMappingURL=highlight_shared.js.map","import { createRequire } from 'module';\nimport highlightUtil from './highlight_shared.js';\n\nconst require$1 = createRequire(import.meta.url);\nif (typeof require$1 === \"function\") {\n global._require = require$1;\n}\nvar highlight_default = highlightUtil;\nif (typeof module !== \"undefined\" && typeof module.exports === \"object\" && module.exports !== null) {\n module.exports = highlightUtil;\n module.exports.default = highlightUtil;\n}\n\nexport { highlight_default as default };\n//# sourceMappingURL=highlight.js.map\n//# sourceMappingURL=highlight.js.map","import { createRequire } from 'module';\nimport encodeURL from './encode_url.js';\nimport escapeHTML from './escape_html.js';\n\ncreateRequire(import.meta.url);\nconst regexUrl = /(cite|download|href|src|url)$/i;\nconst regexMeta = /^(og:|twitter:)(audio|image|url|video|player)(:secure_url)?$/i;\nfunction encSrcset(str) {\n str.split(\" \").forEach((subStr) => {\n if (subStr.match(/\\S/)) {\n subStr = subStr.trim();\n str = str.replace(subStr, encodeURL(subStr));\n }\n });\n return str;\n}\nfunction htmlTag(tag, attrs, text, escape = true) {\n if (!tag) throw new TypeError(\"tag is required!\");\n let result = `<${escapeHTML(tag)}`;\n for (const i in attrs) {\n if (attrs[i] == null) result += \"\";\n else {\n if (i.match(regexUrl) || tag === \"meta\" && !String(attrs[i]).match(regexMeta) && String(Object.values(attrs)[0]).match(regexMeta)) {\n result += ` ${escapeHTML(i)}=\"${encodeURL(String(attrs[i]))}\"`;\n } else if (attrs[i] === true || i === attrs[i]) result += ` ${escapeHTML(i)}`;\n else if (i.match(/srcset$/i)) result += ` ${escapeHTML(i)}=\"${encSrcset(String(attrs[i]))}\"`;\n else result += ` ${escapeHTML(i)}=\"${escapeHTML(String(attrs[i]))}\"`;\n }\n }\n if (escape && text && tag !== \"style\") text = escapeHTML(String(text));\n if (text && tag === \"style\") {\n text = text.replace(/url\\(['\"](.*?)['\"]\\)/gi, (urlAttr, url) => {\n return `url(\"${encodeURL(url)}\")`;\n });\n }\n if (text == null) result += \">\";\n else result += `>${text}</${escapeHTML(tag)}>`;\n return result;\n}\nvar html_tag_default = htmlTag;\nif (typeof module !== \"undefined\" && typeof module.exports === \"object\" && module.exports !== null) {\n module.exports = htmlTag;\n module.exports.default = htmlTag;\n}\n\nexport { html_tag_default as default };\n//# sourceMappingURL=html_tag.js.map\n//# sourceMappingURL=html_tag.js.map","import { createRequire } from 'module';\nimport Cache from './cache.js';\n\ncreateRequire(import.meta.url);\nconst cache = new Cache();\nfunction isExternalLink(input, sitehost, exclude) {\n return cache.apply(`${input}-${sitehost}-${exclude}`, () => {\n if (!/^(\\/\\/|http(s)?:)/.test(input)) return false;\n try {\n sitehost = new URL(sitehost).hostname;\n } catch {\n }\n if (!sitehost) return false;\n let data;\n try {\n data = new URL(input, `http://${sitehost}`);\n } catch {\n }\n if (typeof data !== \"object\") return false;\n if (data.origin === \"null\") return false;\n const host = data.hostname;\n if (exclude) {\n exclude = Array.isArray(exclude) ? exclude : [exclude];\n if (exclude && exclude.length) {\n for (const i of exclude) {\n if (host === i) return false;\n }\n }\n }\n if (host !== sitehost) return true;\n return false;\n });\n}\nvar is_external_link_default = isExternalLink;\nif (typeof module !== \"undefined\" && typeof module.exports === \"object\" && module.exports !== null) {\n module.exports = isExternalLink;\n module.exports.default = isExternalLink;\n}\n\nexport { is_external_link_default as default, isExternalLink };\n//# sourceMappingURL=is_external_link.js.map\n//# sourceMappingURL=is_external_link.js.map","import { createRequire } from 'module';\nimport escapeRegExp from './escape_regexp.js';\n\ncreateRequire(import.meta.url);\nconst rParam = /([:*])([\\w?]*)?/g;\nclass Pattern {\n match;\n constructor(rule) {\n if (rule instanceof Pattern) {\n return rule;\n } else if (typeof rule === \"function\") {\n this.match = rule;\n } else if (rule instanceof RegExp) {\n this.match = regexFilter(rule);\n } else if (typeof rule === \"string\") {\n this.match = stringFilter(rule);\n } else {\n throw new TypeError(\"rule must be a function, a string or a regular expression.\");\n }\n }\n test(str) {\n return Boolean(this.match(str));\n }\n}\nfunction regexFilter(rule) {\n return (str) => str.match(rule);\n}\nfunction stringFilter(rule) {\n const params = [];\n const regex = escapeRegExp(rule).replace(/\\\\([*?])/g, \"$1\").replace(rParam, (match, operator, name) => {\n let str = \"\";\n if (operator === \"*\") {\n str = \"(.*)?\";\n } else {\n str = \"([^\\\\/]+)\";\n }\n if (name) {\n if (name[name.length - 1] === \"?\") {\n name = name.slice(0, name.length - 1);\n str += \"?\";\n }\n params.push(name);\n }\n return str;\n });\n return (str) => {\n const match = str.match(regex);\n if (!match) return;\n const result = {};\n for (let i = 0, len = match.length; i < len; i++) {\n const name = params[i - 1];\n result[i] = match[i];\n if (name) result[name] = match[i];\n }\n return result;\n };\n}\nvar pattern_default = Pattern;\nif (typeof module !== \"undefined\" && typeof module.exports === \"object\" && module.exports !== null) {\n module.exports = Pattern;\n module.exports.default = Pattern;\n}\n\nexport { pattern_default as default };\n//# sourceMappingURL=pattern.js.map\n//# sourceMappingURL=pattern.js.map","import { createRequire } from 'module';\nimport escapeRegExp from './escape_regexp.js';\n\ncreateRequire(import.meta.url);\nconst rParam = /:(\\w*[^_\\W])/g;\nclass Permalink {\n rule;\n regex;\n params;\n constructor(rule, options = {}) {\n if (!rule) {\n throw new TypeError(\"rule is required!\");\n }\n const segments = options.segments || {};\n const params = [];\n const regex = escapeRegExp(rule).replace(rParam, (match, name) => {\n params.push(name);\n if (Object.prototype.hasOwnProperty.call(segments, name)) {\n const segment = segments[name];\n if (segment instanceof RegExp) {\n return segment.source;\n }\n return segment;\n }\n return \"(.+?)\";\n });\n this.rule = rule;\n this.regex = new RegExp(`^${regex}$`);\n this.params = params;\n }\n test(str) {\n return this.regex.test(str);\n }\n parse(str) {\n const match = str.match(this.regex);\n const { params } = this;\n const result = {};\n if (!match) {\n return;\n }\n for (let i = 1, len = match.length; i < len; i++) {\n result[params[i - 1]] = match[i];\n }\n return result;\n }\n stringify(data) {\n return this.rule.replace(rParam, (match, name) => {\n const descriptor = Object.getOwnPropertyDescriptor(data, name);\n if (descriptor && typeof descriptor.get === \"function\") {\n throw new Error(\"Invalid permalink setting!\");\n }\n return data[name];\n });\n }\n}\nvar permalink_default = Permalink;\nif (typeof module !== \"undefined\" && typeof module.exports === \"object\" && module.exports !== null) {\n module.exports = Permalink;\n module.exports.default = Permalink;\n}\n\nexport { permalink_default as default };\n//# sourceMappingURL=permalink.js.map\n//# sourceMappingURL=permalink.js.map","\n/* **********************************************\n Begin prism-core.js\n********************************************** */\n\n/// <reference lib=\"WebWorker\"/>\n\nvar _self = (typeof window !== 'undefined')\n\t? window // if in browser\n\t: (\n\t\t(typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope)\n\t\t\t? self // if in worker\n\t\t\t: {} // if in node js\n\t);\n\n/**\n * Prism: Lightweight, robust, elegant syntax highlighting\n *\n * @license MIT <https://opensource.org/licenses/MIT>\n * @author Lea Verou <https://lea.verou.me>\n * @namespace\n * @public\n */\nvar Prism = (function (_self) {\n\n\t// Private helper vars\n\tvar lang = /(?:^|\\s)lang(?:uage)?-([\\w-]+)(?=\\s|$)/i;\n\tvar uniqueId = 0;\n\n\t// The grammar object for plaintext\n\tvar plainTextGrammar = {};\n\n\n\tvar _ = {\n\t\t/**\n\t\t * By default, Prism will attempt to highlight all code elements (by calling {@link Prism.highlightAll}) on the\n\t\t * current page after the page finished loading. This might be a problem if e.g. you wanted to asynchronously load\n\t\t * additional languages or plugins yourself.\n\t\t *\n\t\t * By setting this value to `true`, Prism will not automatically highlight all code elements on the page.\n\t\t *\n\t\t * You obviously have to change this value before the automatic highlighting started. To do this, you can add an\n\t\t * empty Prism object into the global scope before loading the Prism script like this:\n\t\t *\n\t\t * ```js\n\t\t * window.Prism = window.Prism || {};\n\t\t * Prism.manual = true;\n\t\t * // add a new <script> to load Prism's script\n\t\t * ```\n\t\t *\n\t\t * @default false\n\t\t * @type {boolean}\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\tmanual: _self.Prism && _self.Prism.manual,\n\t\t/**\n\t\t * By default, if Prism is in a web worker, it assumes that it is in a worker it created itself, so it uses\n\t\t * `addEventListener` to communicate with its parent instance. However, if you're using Prism manually in your\n\t\t * own worker, you don't want it to do this.\n\t\t *\n\t\t * By setting this value to `true`, Prism will not add its own listeners to the worker.\n\t\t *\n\t\t * You obviously have to change this value before Prism executes. To do this, you can add an\n\t\t * empty Prism object into the global scope before loading the Prism script like this:\n\t\t *\n\t\t * ```js\n\t\t * window.Prism = window.Prism || {};\n\t\t * Prism.disableWorkerMessageHandler = true;\n\t\t * // Load Prism's script\n\t\t * ```\n\t\t *\n\t\t * @default false\n\t\t * @type {boolean}\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\tdisableWorkerMessageHandler: _self.Prism && _self.Prism.disableWorkerMessageHandler,\n\n\t\t/**\n\t\t * A namespace for utility methods.\n\t\t *\n\t\t * All function in this namespace that are not explicitly marked as _public_ are for __internal use only__ and may\n\t\t * change or disappear at any time.\n\t\t *\n\t\t * @namespace\n\t\t * @memberof Prism\n\t\t */\n\t\tutil: {\n\t\t\tencode: function encode(tokens) {\n\t\t\t\tif (tokens instanceof Token) {\n\t\t\t\t\treturn new Token(tokens.type, encode(tokens.content), tokens.alias);\n\t\t\t\t} else if (Array.isArray(tokens)) {\n\t\t\t\t\treturn tokens.map(encode);\n\t\t\t\t} else {\n\t\t\t\t\treturn tokens.replace(/&/g, '&').replace(/</g, '<').replace(/\\u00a0/g, ' ');\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns the name of the type of the given value.\n\t\t\t *\n\t\t\t * @param {any} o\n\t\t\t * @returns {string}\n\t\t\t * @example\n\t\t\t * type(null) === 'Null'\n\t\t\t * type(undefined) === 'Undefined'\n\t\t\t * type(123) === 'Number'\n\t\t\t * type('foo') === 'String'\n\t\t\t * type(true) === 'Boolean'\n\t\t\t * type([1, 2]) === 'Array'\n\t\t\t * type({}) === 'Object'\n\t\t\t * type(String) === 'Function'\n\t\t\t * type(/abc+/) === 'RegExp'\n\t\t\t */\n\t\t\ttype: function (o) {\n\t\t\t\treturn Object.prototype.toString.call(o).slice(8, -1);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns a unique number for the given object. Later calls will still return the same number.\n\t\t\t *\n\t\t\t * @param {Object} obj\n\t\t\t * @returns {number}\n\t\t\t */\n\t\t\tobjId: function (obj) {\n\t\t\t\tif (!obj['__id']) {\n\t\t\t\t\tObject.defineProperty(obj, '__id', { value: ++uniqueId });\n\t\t\t\t}\n\t\t\t\treturn obj['__id'];\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Creates a deep clone of the given object.\n\t\t\t *\n\t\t\t * The main intended use of this function is to clone language definitions.\n\t\t\t *\n\t\t\t * @param {T} o\n\t\t\t * @param {Record<number, any>} [visited]\n\t\t\t * @returns {T}\n\t\t\t * @template T\n\t\t\t */\n\t\t\tclone: function deepClone(o, visited) {\n\t\t\t\tvisited = visited || {};\n\n\t\t\t\tvar clone; var id;\n\t\t\t\tswitch (_.util.type(o)) {\n\t\t\t\t\tcase 'Object':\n\t\t\t\t\t\tid = _.util.objId(o);\n\t\t\t\t\t\tif (visited[id]) {\n\t\t\t\t\t\t\treturn visited[id];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tclone = /** @type {Record<string, any>} */ ({});\n\t\t\t\t\t\tvisited[id] = clone;\n\n\t\t\t\t\t\tfor (var key in o) {\n\t\t\t\t\t\t\tif (o.hasOwnProperty(key)) {\n\t\t\t\t\t\t\t\tclone[key] = deepClone(o[key], visited);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn /** @type {any} */ (clone);\n\n\t\t\t\t\tcase 'Array':\n\t\t\t\t\t\tid = _.util.objId(o);\n\t\t\t\t\t\tif (visited[id]) {\n\t\t\t\t\t\t\treturn visited[id];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t\tvisited[id] = clone;\n\n\t\t\t\t\t\t(/** @type {Array} */(/** @type {any} */(o))).forEach(function (v, i) {\n\t\t\t\t\t\t\tclone[i] = deepClone(v, visited);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\treturn /** @type {any} */ (clone);\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn o;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns the Prism language of the given element set by a `language-xxxx` or `lang-xxxx` class.\n\t\t\t *\n\t\t\t * If no language is set for the element or the element is `null` or `undefined`, `none` will be returned.\n\t\t\t *\n\t\t\t * @param {Element} element\n\t\t\t * @returns {string}\n\t\t\t */\n\t\t\tgetLanguage: function (element) {\n\t\t\t\twhile (element) {\n\t\t\t\t\tvar m = lang.exec(element.className);\n\t\t\t\t\tif (m) {\n\t\t\t\t\t\treturn m[1].toLowerCase();\n\t\t\t\t\t}\n\t\t\t\t\telement = element.parentElement;\n\t\t\t\t}\n\t\t\t\treturn 'none';\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Sets the Prism `language-xxxx` class of the given element.\n\t\t\t *\n\t\t\t * @param {Element} element\n\t\t\t * @param {string} language\n\t\t\t * @returns {void}\n\t\t\t */\n\t\t\tsetLanguage: function (element, language) {\n\t\t\t\t// remove all `language-xxxx` classes\n\t\t\t\t// (this might leave behind a leading space)\n\t\t\t\telement.className = element.className.replace(RegExp(lang, 'gi'), '');\n\n\t\t\t\t// add the new `language-xxxx` class\n\t\t\t\t// (using `classList` will automatically clean up spaces for us)\n\t\t\t\telement.classList.add('language-' + language);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns the script element that is currently executing.\n\t\t\t *\n\t\t\t * This does __not__ work for line script element.\n\t\t\t *\n\t\t\t * @returns {HTMLScriptElement | null}\n\t\t\t */\n\t\t\tcurrentScript: function () {\n\t\t\t\tif (typeof document === 'undefined') {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\tif (document.currentScript && document.currentScript.tagName === 'SCRIPT' && 1 < 2 /* hack to trip TS' flow analysis */) {\n\t\t\t\t\treturn /** @type {any} */ (document.currentScript);\n\t\t\t\t}\n\n\t\t\t\t// IE11 workaround\n\t\t\t\t// we'll get the src of the current script by parsing IE11's error stack trace\n\t\t\t\t// this will not work for inline scripts\n\n\t\t\t\ttry {\n\t\t\t\t\tthrow new Error();\n\t\t\t\t} catch (err) {\n\t\t\t\t\t// Get file src url from stack. Specifically works with the format of stack traces in IE.\n\t\t\t\t\t// A stack will look like this:\n\t\t\t\t\t//\n\t\t\t\t\t// Error\n\t\t\t\t\t// at _.util.currentScript (http://localhost/components/prism-core.js:119:5)\n\t\t\t\t\t// at Global code (http://localhost/components/prism-core.js:606:1)\n\n\t\t\t\t\tvar src = (/at [^(\\r\\n]*\\((.*):[^:]+:[^:]+\\)$/i.exec(err.stack) || [])[1];\n\t\t\t\t\tif (src) {\n\t\t\t\t\t\tvar scripts = document.getElementsByTagName('script');\n\t\t\t\t\t\tfor (var i in scripts) {\n\t\t\t\t\t\t\tif (scripts[i].src == src) {\n\t\t\t\t\t\t\t\treturn scripts[i];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns whether a given class is active for `element`.\n\t\t\t *\n\t\t\t * The class can be activated if `element` or one of its ancestors has the given class and it can be deactivated\n\t\t\t * if `element` or one of its ancestors has the negated version of the given class. The _negated version_ of the\n\t\t\t * given class is just the given class with a `no-` prefix.\n\t\t\t *\n\t\t\t * Whether the class is active is determined by the closest ancestor of `element` (where `element` itself is\n\t\t\t * closest ancestor) that has the given class or the negated version of it. If neither `element` nor any of its\n\t\t\t * ancestors have the given class or the negated version of it, then the default activation will be returned.\n\t\t\t *\n\t\t\t * In the paradoxical situation where the closest ancestor contains __both__ the given class and the negated\n\t\t\t * version of it, the class is considered active.\n\t\t\t *\n\t\t\t * @param {Element} element\n\t\t\t * @param {string} className\n\t\t\t * @param {boolean} [defaultActivation=false]\n\t\t\t * @returns {boolean}\n\t\t\t */\n\t\t\tisActive: function (element, className, defaultActivation) {\n\t\t\t\tvar no = 'no-' + className;\n\n\t\t\t\twhile (element) {\n\t\t\t\t\tvar classList = element.classList;\n\t\t\t\t\tif (classList.contains(className)) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tif (classList.contains(no)) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\telement = element.parentElement;\n\t\t\t\t}\n\t\t\t\treturn !!defaultActivation;\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * This namespace contains all currently loaded languages and the some helper functions to create and modify languages.\n\t\t *\n\t\t * @namespace\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\tlanguages: {\n\t\t\t/**\n\t\t\t * The grammar for plain, unformatted text.\n\t\t\t */\n\t\t\tplain: plainTextGrammar,\n\t\t\tplaintext: plainTextGrammar,\n\t\t\ttext: plainTextGrammar,\n\t\t\ttxt: plainTextGrammar,\n\n\t\t\t/**\n\t\t\t * Creates a deep copy of the language with the given id and appends the given tokens.\n\t\t\t *\n\t\t\t * If a token in `redef` also appears in the copied language, then the existing token in the copied language\n\t\t\t * will be overwritten at its original position.\n\t\t\t *\n\t\t\t * ## Best practices\n\t\t\t *\n\t\t\t * Since the position of overwriting tokens (token in `redef` that overwrite tokens in the copied language)\n\t\t\t * doesn't matter, they can technically be in any order. However, this can be confusing to others that trying to\n\t\t\t * understand the language definition because, normally, the order of tokens matters in Prism grammars.\n\t\t\t *\n\t\t\t * Therefore, it is encouraged to order overwriting tokens according to the positions of the overwritten tokens.\n\t\t\t * Furthermore, all non-overwriting tokens should be placed after the overwriting ones.\n\t\t\t *\n\t\t\t * @param {string} id The id of the language to extend. This has to be a key in `Prism.languages`.\n\t\t\t * @param {Grammar} redef The new tokens to append.\n\t\t\t * @returns {Grammar} The new language created.\n\t\t\t * @public\n\t\t\t * @example\n\t\t\t * Prism.languages['css-with-colors'] = Prism.languages.extend('css', {\n\t\t\t * // Prism.languages.css already has a 'comment' token, so this token will overwrite CSS' 'comment' token\n\t\t\t * // at its original position\n\t\t\t * 'comment': { ... },\n\t\t\t * // CSS doesn't have a 'color' token, so this token will be appended\n\t\t\t * 'color': /\\b(?:red|green|blue)\\b/\n\t\t\t * });\n\t\t\t */\n\t\t\textend: function (id, redef) {\n\t\t\t\tvar lang = _.util.clone(_.languages[id]);\n\n\t\t\t\tfor (var key in redef) {\n\t\t\t\t\tlang[key] = redef[key];\n\t\t\t\t}\n\n\t\t\t\treturn lang;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Inserts tokens _before_ another token in a language definition or any other grammar.\n\t\t\t *\n\t\t\t * ## Usage\n\t\t\t *\n\t\t\t * This helper method makes it easy to modify existing languages. For example, the CSS language definition\n\t\t\t * not only defines CSS highlighting for CSS documents, but also needs to define highlighting for CSS embedded\n\t\t\t * in HTML through `<style>` elements. To do this, it needs to modify `Prism.languages.markup` and add the\n\t\t\t * appropriate tokens. However, `Prism.languages.markup` is a regular JavaScript object literal, so if you do\n\t\t\t * this:\n\t\t\t *\n\t\t\t * ```js\n\t\t\t * Prism.languages.markup.style = {\n\t\t\t * // token\n\t\t\t * };\n\t\t\t * ```\n\t\t\t *\n\t\t\t * then the `style` token will be added (and processed) at the end. `insertBefore` allows you to insert tokens\n\t\t\t * before existing tokens. For the CSS example above, you would use it like this:\n\t\t\t *\n\t\t\t * ```js\n\t\t\t * Prism.languages.insertBefore('markup', 'cdata', {\n\t\t\t * 'style': {\n\t\t\t * // token\n\t\t\t * }\n\t\t\t * });\n\t\t\t * ```\n\t\t\t *\n\t\t\t * ## Special cases\n\t\t\t *\n\t\t\t * If the grammars of `inside` and `insert` have tokens with the same name, the tokens in `inside`'s grammar\n\t\t\t * will be ignored.\n\t\t\t *\n\t\t\t * This behavior can be used to insert tokens after `before`:\n\t\t\t *\n\t\t\t * ```js\n\t\t\t * Prism.languages.insertBefore('markup', 'comment', {\n\t\t\t * 'comment': Prism.languages.markup.comment,\n\t\t\t * // tokens after 'comment'\n\t\t\t * });\n\t\t\t * ```\n\t\t\t *\n\t\t\t * ## Limitations\n\t\t\t *\n\t\t\t * The main problem `insertBefore` has to solve is iteration order. Since ES2015, the iteration order for object\n\t\t\t * properties is guaranteed to be the insertion order (except for integer keys) but some browsers behave\n\t\t\t * differently when keys are deleted and re-inserted. So `insertBefore` can't be implemented by temporarily\n\t\t\t * deleting properties which is necessary to insert at arbitrary positions.\n\t\t\t *\n\t\t\t * To solve this problem, `insertBefore` doesn't actually insert the given tokens into the target object.\n\t\t\t * Instead, it will create a new object and replace all references to the target object with the new one. This\n\t\t\t * can be done without temporarily deleting properties, so the iteration order is well-defined.\n\t\t\t *\n\t\t\t * However, only references that can be reached from `Prism.languages` or `insert` will be replaced. I.e. if\n\t\t\t * you hold the target object in a variable, then the value of the variable will not change.\n\t\t\t *\n\t\t\t * ```js\n\t\t\t * var oldMarkup = Prism.languages.markup;\n\t\t\t * var newMarkup = Prism.languages.insertBefore('markup', 'comment', { ... });\n\t\t\t *\n\t\t\t * assert(oldMarkup !== Prism.languages.markup);\n\t\t\t * assert(newMarkup === Prism.languages.markup);\n\t\t\t * ```\n\t\t\t *\n\t\t\t * @param {string} inside The property of `root` (e.g. a language id in `Prism.languages`) that contains the\n\t\t\t * object to be modified.\n\t\t\t * @param {string} before The key to insert before.\n\t\t\t * @param {Grammar} insert An object containing the key-value pairs to be inserted.\n\t\t\t * @param {Object<string, any>} [root] The object containing `inside`, i.e. the object that contains the\n\t\t\t * object to be modified.\n\t\t\t *\n\t\t\t * Defaults to `Prism.languages`.\n\t\t\t * @returns {Grammar} The new grammar object.\n\t\t\t * @public\n\t\t\t */\n\t\t\tinsertBefore: function (inside, before, insert, root) {\n\t\t\t\troot = root || /** @type {any} */ (_.languages);\n\t\t\t\tvar grammar = root[inside];\n\t\t\t\t/** @type {Grammar} */\n\t\t\t\tvar ret = {};\n\n\t\t\t\tfor (var token in grammar) {\n\t\t\t\t\tif (grammar.hasOwnProperty(token)) {\n\n\t\t\t\t\t\tif (token == before) {\n\t\t\t\t\t\t\tfor (var newToken in insert) {\n\t\t\t\t\t\t\t\tif (insert.hasOwnProperty(newToken)) {\n\t\t\t\t\t\t\t\t\tret[newToken] = insert[newToken];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Do not insert token which also occur in insert. See #1525\n\t\t\t\t\t\tif (!insert.hasOwnProperty(token)) {\n\t\t\t\t\t\t\tret[token] = grammar[token];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tvar old = root[inside];\n\t\t\t\troot[inside] = ret;\n\n\t\t\t\t// Update references in other language definitions\n\t\t\t\t_.languages.DFS(_.languages, function (key, value) {\n\t\t\t\t\tif (value === old && key != inside) {\n\t\t\t\t\t\tthis[key] = ret;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\treturn ret;\n\t\t\t},\n\n\t\t\t// Traverse a language definition with Depth First Search\n\t\t\tDFS: function DFS(o, callback, type, visited) {\n\t\t\t\tvisited = visited || {};\n\n\t\t\t\tvar objId = _.util.objId;\n\n\t\t\t\tfor (var i in o) {\n\t\t\t\t\tif (o.hasOwnProperty(i)) {\n\t\t\t\t\t\tcallback.call(o, i, o[i], type || i);\n\n\t\t\t\t\t\tvar property = o[i];\n\t\t\t\t\t\tvar propertyType = _.util.type(property);\n\n\t\t\t\t\t\tif (propertyType === 'Object' && !visited[objId(property)]) {\n\t\t\t\t\t\t\tvisited[objId(property)] = true;\n\t\t\t\t\t\t\tDFS(property, callback, null, visited);\n\t\t\t\t\t\t} else if (propertyType === 'Array' && !visited[objId(property)]) {\n\t\t\t\t\t\t\tvisited[objId(property)] = true;\n\t\t\t\t\t\t\tDFS(property, callback, i, visited);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tplugins: {},\n\n\t\t/**\n\t\t * This is the most high-level function in Prism’s API.\n\t\t * It fetches all the elements that have a `.language-xxxx` class and then calls {@link Prism.highlightElement} on\n\t\t * each one of them.\n\t\t *\n\t\t * This is equivalent to `Prism.highlightAllUnder(document, async, callback)`.\n\t\t *\n\t\t * @param {boolean} [async=false] Same as in {@link Prism.highlightAllUnder}.\n\t\t * @param {HighlightCallback} [callback] Same as in {@link Prism.highlightAllUnder}.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\thighlightAll: function (async, callback) {\n\t\t\t_.highlightAllUnder(document, async, callback);\n\t\t},\n\n\t\t/**\n\t\t * Fetches all the descendants of `container` that have a `.language-xxxx` class and then calls\n\t\t * {@link Prism.highlightElement} on each one of them.\n\t\t *\n\t\t * The following hooks will be run:\n\t\t * 1. `before-highlightall`\n\t\t * 2. `before-all-elements-highlight`\n\t\t * 3. All hooks of {@link Prism.highlightElement} for each element.\n\t\t *\n\t\t * @param {ParentNode} container The root element, whose descendants that have a `.language-xxxx` class will be highlighted.\n\t\t * @param {boolean} [async=false] Whether each element is to be highlighted asynchronously using Web Workers.\n\t\t * @param {HighlightCallback} [callback] An optional callback to be invoked on each element after its highlighting is done.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\thighlightAllUnder: function (container, async, callback) {\n\t\t\tvar env = {\n\t\t\t\tcallback: callback,\n\t\t\t\tcontainer: container,\n\t\t\t\tselector: 'code[class*=\"language-\"], [class*=\"language-\"] code, code[class*=\"lang-\"], [class*=\"lang-\"] code'\n\t\t\t};\n\n\t\t\t_.hooks.run('before-highlightall', env);\n\n\t\t\tenv.elements = Array.prototype.slice.apply(env.container.querySelectorAll(env.selector));\n\n\t\t\t_.hooks.run('before-all-elements-highlight', env);\n\n\t\t\tfor (var i = 0, element; (element = env.elements[i++]);) {\n\t\t\t\t_.highlightElement(element, async === true, env.callback);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Highlights the code inside a single element.\n\t\t *\n\t\t * The following hooks will be run:\n\t\t * 1. `before-sanity-check`\n\t\t * 2. `before-highlight`\n\t\t * 3. All hooks of {@link Prism.highlight}. These hooks will be run by an asynchronous worker if `async` is `true`.\n\t\t * 4. `before-insert`\n\t\t * 5. `after-highlight`\n\t\t * 6. `complete`\n\t\t *\n\t\t * Some the above hooks will be skipped if the element doesn't contain any text or there is no grammar loaded for\n\t\t * the element's language.\n\t\t *\n\t\t * @param {Element} element The element containing the code.\n\t\t * It must have a class of `language-xxxx` to be processed, where `xxxx` is a valid language identifier.\n\t\t * @param {boolean} [async=false] Whether the element is to be highlighted asynchronously using Web Workers\n\t\t * to improve performance and avoid blocking the UI when highlighting very large chunks of code. This option is\n\t\t * [disabled by default](https://prismjs.com/faq.html#why-is-asynchronous-highlighting-disabled-by-default).\n\t\t *\n\t\t * Note: All language definitions required to highlight the code must be included in the main `prism.js` file for\n\t\t * asynchronous highlighting to work. You can build your own bundle on the\n\t\t * [Download page](https://prismjs.com/download.html).\n\t\t * @param {HighlightCallback} [callback] An optional callback to be invoked after the highlighting is done.\n\t\t * Mostly useful when `async` is `true`, since in that case, the highlighting is done asynchronously.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\thighlightElement: function (element, async, callback) {\n\t\t\t// Find language\n\t\t\tvar language = _.util.getLanguage(element);\n\t\t\tvar grammar = _.languages[language];\n\n\t\t\t// Set language on the element, if not present\n\t\t\t_.util.setLanguage(element, language);\n\n\t\t\t// Set language on the parent, for styling\n\t\t\tvar parent = element.parentElement;\n\t\t\tif (parent && parent.nodeName.toLowerCase() === 'pre') {\n\t\t\t\t_.util.setLanguage(parent, language);\n\t\t\t}\n\n\t\t\tvar code = element.textContent;\n\n\t\t\tvar env = {\n\t\t\t\telement: element,\n\t\t\t\tlanguage: language,\n\t\t\t\tgrammar: grammar,\n\t\t\t\tcode: code\n\t\t\t};\n\n\t\t\tfunction insertHighlightedCode(highlightedCode) {\n\t\t\t\tenv.highlightedCode = highlightedCode;\n\n\t\t\t\t_.hooks.run('before-insert', env);\n\n\t\t\t\tenv.element.innerHTML = env.highlightedCode;\n\n\t\t\t\t_.hooks.run('after-highlight', env);\n\t\t\t\t_.hooks.run('complete', env);\n\t\t\t\tcallback && callback.call(env.element);\n\t\t\t}\n\n\t\t\t_.hooks.run('before-sanity-check', env);\n\n\t\t\t// plugins may change/add the parent/element\n\t\t\tparent = env.element.parentElement;\n\t\t\tif (parent && parent.nodeName.toLowerCase() === 'pre' && !parent.hasAttribute('tabindex')) {\n\t\t\t\tparent.setAttribute('tabindex', '0');\n\t\t\t}\n\n\t\t\tif (!env.code) {\n\t\t\t\t_.hooks.run('complete', env);\n\t\t\t\tcallback && callback.call(env.element);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t_.hooks.run('before-highlight', env);\n\n\t\t\tif (!env.grammar) {\n\t\t\t\tinsertHighlightedCode(_.util.encode(env.code));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (async && _self.Worker) {\n\t\t\t\tvar worker = new Worker(_.filename);\n\n\t\t\t\tworker.onmessage = function (evt) {\n\t\t\t\t\tinsertHighlightedCode(evt.data);\n\t\t\t\t};\n\n\t\t\t\tworker.postMessage(JSON.stringify({\n\t\t\t\t\tlanguage: env.language,\n\t\t\t\t\tcode: env.code,\n\t\t\t\t\timmediateClose: true\n\t\t\t\t}));\n\t\t\t} else {\n\t\t\t\tinsertHighlightedCode(_.highlight(env.code, env.grammar, env.language));\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Low-level function, only use if you know what you’re doing. It accepts a string of text as input\n\t\t * and the language definitions to use, and returns a string with the HTML produced.\n\t\t *\n\t\t * The following hooks will be run:\n\t\t * 1. `before-tokenize`\n\t\t * 2. `after-tokenize`\n\t\t * 3. `wrap`: On each {@link Token}.\n\t\t *\n\t\t * @param {string} text A string with the code to be highlighted.\n\t\t * @param {Grammar} grammar An object containing the tokens to use.\n\t\t *\n\t\t * Usually a language definition like `Prism.languages.markup`.\n\t\t * @param {string} language The name of the language definition passed to `grammar`.\n\t\t * @returns {string} The highlighted HTML.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t * @example\n\t\t * Prism.highlight('var foo = true;', Prism.languages.javascript, 'javascript');\n\t\t */\n\t\thighlight: function (text, grammar, language) {\n\t\t\tvar env = {\n\t\t\t\tcode: text,\n\t\t\t\tgrammar: grammar,\n\t\t\t\tlanguage: language\n\t\t\t};\n\t\t\t_.hooks.run('before-tokenize', env);\n\t\t\tif (!env.grammar) {\n\t\t\t\tthrow new Error('The language \"' + env.language + '\" has no grammar.');\n\t\t\t}\n\t\t\tenv.tokens = _.tokenize(env.code, env.grammar);\n\t\t\t_.hooks.run('after-tokenize', env);\n\t\t\treturn Token.stringify(_.util.encode(env.tokens), env.language);\n\t\t},\n\n\t\t/**\n\t\t * This is the heart of Prism, and the most low-level function you can use. It accepts a string of text as input\n\t\t * and the language definitions to use, and returns an array with the tokenized code.\n\t\t *\n\t\t * When the language definition includes nested tokens, the function is called recursively on each of these tokens.\n\t\t *\n\t\t * This method could be useful in other contexts as well, as a very crude parser.\n\t\t *\n\t\t * @param {string} text A string with the code to be highlighted.\n\t\t * @param {Grammar} grammar An object containing the tokens to use.\n\t\t *\n\t\t * Usually a language definition like `Prism.languages.markup`.\n\t\t * @returns {TokenStream} An array of strings and tokens, a token stream.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t * @example\n\t\t * let code = `var foo = 0;`;\n\t\t * let tokens = Prism.tokenize(code, Prism.languages.javascript);\n\t\t * tokens.forEach(token => {\n\t\t * if (token instanceof Prism.Token && token.type === 'number') {\n\t\t * console.log(`Found numeric literal: ${token.content}`);\n\t\t * }\n\t\t * });\n\t\t */\n\t\ttokenize: function (text, grammar) {\n\t\t\tvar rest = grammar.rest;\n\t\t\tif (rest) {\n\t\t\t\tfor (var token in rest) {\n\t\t\t\t\tgrammar[token] = rest[token];\n\t\t\t\t}\n\n\t\t\t\tdelete grammar.rest;\n\t\t\t}\n\n\t\t\tvar tokenList = new LinkedList();\n\t\t\taddAfter(tokenList, tokenList.head, text);\n\n\t\t\tmatchGrammar(text, tokenList, grammar, tokenList.head, 0);\n\n\t\t\treturn toArray(tokenList);\n\t\t},\n\n\t\t/**\n\t\t * @namespace\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\thooks: {\n\t\t\tall: {},\n\n\t\t\t/**\n\t\t\t * Adds the given callback to the list of callbacks for the given hook.\n\t\t\t *\n\t\t\t * The callback will be invoked when the hook it is registered for is run.\n\t\t\t * Hooks are usually directly run by a highlight function but you can also run hooks yourself.\n\t\t\t *\n\t\t\t * One callback function can be registered to multiple hooks and the same hook multiple times.\n\t\t\t *\n\t\t\t * @param {string} name The name of the hook.\n\t\t\t * @param {HookCallback} callback The callback function which is given environment variables.\n\t\t\t * @public\n\t\t\t */\n\t\t\tadd: function (name, callback) {\n\t\t\t\tvar hooks = _.hooks.all;\n\n\t\t\t\thooks[name] = hooks[name] || [];\n\n\t\t\t\thooks[name].push(callback);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Runs a hook invoking all registered callbacks with the given environment variables.\n\t\t\t *\n\t\t\t * Callbacks will be invoked synchronously and in the order in which they were registered.\n\t\t\t *\n\t\t\t * @param {string} name The name of the hook.\n\t\t\t * @param {Object<string, any>} env The environment variables of the hook passed to all callbacks registered.\n\t\t\t * @public\n\t\t\t */\n\t\t\trun: function (name, env) {\n\t\t\t\tvar callbacks = _.hooks.all[name];\n\n\t\t\t\tif (!callbacks || !callbacks.length) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tfor (var i = 0, callback; (callback = callbacks[i++]);) {\n\t\t\t\t\tcallback(env);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tToken: Token\n\t};\n\t_self.Prism = _;\n\n\n\t// Typescript note:\n\t// The following can be used to import the Token type in JSDoc:\n\t//\n\t// @typedef {InstanceType<import(\"./prism-core\")[\"Token\"]>} Token\n\n\t/**\n\t * Creates a new token.\n\t *\n\t * @param {string} type See {@link Token#type type}\n\t * @param {string | TokenStream} content See {@link Token#content content}\n\t * @param {string|string[]} [alias] The alias(es) of the token.\n\t * @param {string} [matchedStr=\"\"] A copy of the full string this token was created from.\n\t * @class\n\t * @global\n\t * @public\n\t */\n\tfunction Token(type, content, alias, matchedStr) {\n\t\t/**\n\t\t * The type of the token.\n\t\t *\n\t\t * This is usually the key of a pattern in a {@link Grammar}.\n\t\t *\n\t\t * @type {string}\n\t\t * @see GrammarToken\n\t\t * @public\n\t\t */\n\t\tthis.type = type;\n\t\t/**\n\t\t * The strings or tokens contained by this token.\n\t\t *\n\t\t * This will be a token stream if the pattern matched also defined an `inside` grammar.\n\t\t *\n\t\t * @type {string | TokenStream}\n\t\t * @public\n\t\t */\n\t\tthis.content = content;\n\t\t/**\n\t\t * The alias(es) of the token.\n\t\t *\n\t\t * @type {string|string[]}\n\t\t * @see GrammarToken\n\t\t * @public\n\t\t */\n\t\tthis.alias = alias;\n\t\t// Copy of the full string this token was created from\n\t\tthis.length = (matchedStr || '').length | 0;\n\t}\n\n\t/**\n\t * A token stream is an array of strings and {@link Token Token} objects.\n\t *\n\t * Token streams have to fulfill a few properties that are assumed by most functions (mostly internal ones) that process\n\t * them.\n\t *\n\t * 1. No adjacent strings.\n\t * 2. No empty strings.\n\t *\n\t * The only exception here is the token stream that only contains the empty string and nothing else.\n\t *\n\t * @typedef {Array<string | Token>} TokenStream\n\t * @global\n\t * @public\n\t */\n\n\t/**\n\t * Converts the given token or token stream to an HTML representation.\n\t *\n\t * The following hooks will be run:\n\t * 1. `wrap`: On each {@link Token}.\n\t *\n\t * @param {string | Token | TokenStream} o The token or token stream to be converted.\n\t * @param {string} language The name of current language.\n\t * @returns {string} The HTML representation of the token or token stream.\n\t * @memberof Token\n\t * @static\n\t */\n\tToken.stringify = function stringify(o, language) {\n\t\tif (typeof o == 'string') {\n\t\t\treturn o;\n\t\t}\n\t\tif (Array.isArray(o)) {\n\t\t\tvar s = '';\n\t\t\to.forEach(function (e) {\n\t\t\t\ts += stringify(e, language);\n\t\t\t});\n\t\t\treturn s;\n\t\t}\n\n\t\tvar env = {\n\t\t\ttype: o.type,\n\t\t\tcontent: stringify(o.content, language),\n\t\t\ttag: 'span',\n\t\t\tclasses: ['token', o.type],\n\t\t\tattributes: {},\n\t\t\tlanguage: language\n\t\t};\n\n\t\tvar aliases = o.alias;\n\t\tif (aliases) {\n\t\t\tif (Array.isArray(aliases)) {\n\t\t\t\tArray.prototype.push.apply(env.classes, aliases);\n\t\t\t} else {\n\t\t\t\tenv.classes.push(aliases);\n\t\t\t}\n\t\t}\n\n\t\t_.hooks.run('wrap', env);\n\n\t\tvar attributes = '';\n\t\tfor (var name in env.attributes) {\n\t\t\tattributes += ' ' + name + '=\"' + (env.attributes[name] || '').replace(/\"/g, '"') + '\"';\n\t\t}\n\n\t\treturn '<' + env.tag + ' class=\"' + env.classes.join(' ') + '\"' + attributes + '>' + env.content + '</' + env.tag + '>';\n\t};\n\n\t/**\n\t * @param {RegExp} pattern\n\t * @param {number} pos\n\t * @param {string} text\n\t * @param {boolean} lookbehind\n\t * @returns {RegExpExecArray | null}\n\t */\n\tfunction matchPattern(pattern, pos, text, lookbehind) {\n\t\tpattern.lastIndex = pos;\n\t\tvar match = pattern.exec(text);\n\t\tif (match && lookbehind && match[1]) {\n\t\t\t// change the match to remove the text matched by the Prism lookbehind group\n\t\t\tvar lookbehindLength = match[1].length;\n\t\t\tmatch.index += lookbehindLength;\n\t\t\tmatch[0] = match[0].slice(lookbehindLength);\n\t\t}\n\t\treturn match;\n\t}\n\n\t/**\n\t * @param {string} text\n\t * @param {LinkedList<string | Token>} tokenList\n\t * @param {any} grammar\n\t * @param {LinkedListNode<string | Token>} startNode\n\t * @param {number} startPos\n\t * @param {RematchOptions} [rematch]\n\t * @returns {void}\n\t * @private\n\t *\n\t * @typedef RematchOptions\n\t * @property {string} cause\n\t * @property {number} reach\n\t */\n\tfunction matchGrammar(text, tokenList, grammar, startNode, startPos, rematch) {\n\t\tfor (var token in grammar) {\n\t\t\tif (!grammar.hasOwnProperty(token) || !grammar[token]) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tvar patterns = grammar[token];\n\t\t\tpatterns = Array.isArray(patterns) ? patterns : [patterns];\n\n\t\t\tfor (var j = 0; j < patterns.length; ++j) {\n\t\t\t\tif (rematch && rematch.cause == token + ',' + j) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar patternObj = patterns[j];\n\t\t\t\tvar inside = patternObj.inside;\n\t\t\t\tvar lookbehind = !!patternObj.lookbehind;\n\t\t\t\tvar greedy = !!patternObj.greedy;\n\t\t\t\tvar alias = patternObj.alias;\n\n\t\t\t\tif (greedy && !patternObj.pattern.global) {\n\t\t\t\t\t// Without the global flag, lastIndex won't work\n\t\t\t\t\tvar flags = patternObj.pattern.toString().match(/[imsuy]*$/)[0];\n\t\t\t\t\tpatternObj.pattern = RegExp(patternObj.pattern.source, flags + 'g');\n\t\t\t\t}\n\n\t\t\t\t/** @type {RegExp} */\n\t\t\t\tvar pattern = patternObj.pattern || patternObj;\n\n\t\t\t\tfor ( // iterate the token list and keep track of the current token/string position\n\t\t\t\t\tvar currentNode = startNode.next, pos = startPos;\n\t\t\t\t\tcurrentNode !== tokenList.tail;\n\t\t\t\t\tpos += currentNode.value.length, currentNode = currentNode.next\n\t\t\t\t) {\n\n\t\t\t\t\tif (rematch && pos >= rematch.reach) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar str = currentNode.value;\n\n\t\t\t\t\tif (tokenList.length > text.length) {\n\t\t\t\t\t\t// Something went terribly wrong, ABORT, ABORT!\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (str instanceof Token) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar removeCount = 1; // this is the to parameter of removeBetween\n\t\t\t\t\tvar match;\n\n\t\t\t\t\tif (greedy) {\n\t\t\t\t\t\tmatch = matchPattern(pattern, pos, text, lookbehind);\n\t\t\t\t\t\tif (!match || match.index >= text.length) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar from = match.index;\n\t\t\t\t\t\tvar to = match.index + match[0].length;\n\t\t\t\t\t\tvar p = pos;\n\n\t\t\t\t\t\t// find the node that contains the match\n\t\t\t\t\t\tp += currentNode.value.length;\n\t\t\t\t\t\twhile (from >= p) {\n\t\t\t\t\t\t\tcurrentNode = currentNode.next;\n\t\t\t\t\t\t\tp += currentNode.value.length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// adjust pos (and p)\n\t\t\t\t\t\tp -= currentNode.value.length;\n\t\t\t\t\t\tpos = p;\n\n\t\t\t\t\t\t// the current node is a Token, then the match starts inside another Token, which is invalid\n\t\t\t\t\t\tif (currentNode.value instanceof Token) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// find the last node which is affected by this match\n\t\t\t\t\t\tfor (\n\t\t\t\t\t\t\tvar k = currentNode;\n\t\t\t\t\t\t\tk !== tokenList.tail && (p < to || typeof k.value === 'string');\n\t\t\t\t\t\t\tk = k.next\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tremoveCount++;\n\t\t\t\t\t\t\tp += k.value.length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tremoveCount--;\n\n\t\t\t\t\t\t// replace with the new match\n\t\t\t\t\t\tstr = text.slice(pos, p);\n\t\t\t\t\t\tmatch.index -= pos;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmatch = matchPattern(pattern, 0, str, lookbehind);\n\t\t\t\t\t\tif (!match) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// eslint-disable-next-line no-redeclare\n\t\t\t\t\tvar from = match.index;\n\t\t\t\t\tvar matchStr = match[0];\n\t\t\t\t\tvar before = str.slice(0, from);\n\t\t\t\t\tvar after = str.slice(from + matchStr.length);\n\n\t\t\t\t\tvar reach = pos + str.length;\n\t\t\t\t\tif (rematch && reach > rematch.reach) {\n\t\t\t\t\t\trematch.reach = reach;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar removeFrom = currentNode.prev;\n\n\t\t\t\t\tif (before) {\n\t\t\t\t\t\tremoveFrom = addAfter(tokenList, removeFrom, before);\n\t\t\t\t\t\tpos += before.length;\n\t\t\t\t\t}\n\n\t\t\t\t\tremoveRange(tokenList, removeFrom, removeCount);\n\n\t\t\t\t\tvar wrapped = new Token(token, inside ? _.tokenize(matchStr, inside) : matchStr, alias, matchStr);\n\t\t\t\t\tcurrentNode = addAfter(tokenList, removeFrom, wrapped);\n\n\t\t\t\t\tif (after) {\n\t\t\t\t\t\taddAfter(tokenList, currentNode, after);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (removeCount > 1) {\n\t\t\t\t\t\t// at least one Token object was removed, so we have to do some rematching\n\t\t\t\t\t\t// this can only happen if the current pattern is greedy\n\n\t\t\t\t\t\t/** @type {RematchOptions} */\n\t\t\t\t\t\tvar nestedRematch = {\n\t\t\t\t\t\t\tcause: token + ',' + j,\n\t\t\t\t\t\t\treach: reach\n\t\t\t\t\t\t};\n\t\t\t\t\t\tmatchGrammar(text, tokenList, grammar, currentNode.prev, pos, nestedRematch);\n\n\t\t\t\t\t\t// the reach might have been extended because of the rematching\n\t\t\t\t\t\tif (rematch && nestedRematch.reach > rematch.reach) {\n\t\t\t\t\t\t\trematch.reach = nestedRematch.reach;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * @typedef LinkedListNode\n\t * @property {T} value\n\t * @property {LinkedListNode<T> | null} prev The previous node.\n\t * @property {LinkedListNode<T> | null} next The next node.\n\t * @template T\n\t * @private\n\t */\n\n\t/**\n\t * @template T\n\t * @private\n\t */\n\tfunction LinkedList() {\n\t\t/** @type {LinkedListNode<T>} */\n\t\tvar head = { value: null, prev: null, next: null };\n\t\t/** @type {LinkedListNode<T>} */\n\t\tvar tail = { value: null, prev: head, next: null };\n\t\thead.next = tail;\n\n\t\t/** @type {LinkedListNode<T>} */\n\t\tthis.head = head;\n\t\t/** @type {LinkedListNode<T>} */\n\t\tthis.tail = tail;\n\t\tthis.length = 0;\n\t}\n\n\t/**\n\t * Adds a new node with the given value to the list.\n\t *\n\t * @param {LinkedList<T>} list\n\t * @param {LinkedListNode<T>} node\n\t * @param {T} value\n\t * @returns {LinkedListNode<T>} The added node.\n\t * @template T\n\t */\n\tfunction addAfter(list, node, value) {\n\t\t// assumes that node != list.tail && values.length >= 0\n\t\tvar next = node.next;\n\n\t\tvar newNode = { value: value, prev: node, next: next };\n\t\tnode.next = newNode;\n\t\tnext.prev = newNode;\n\t\tlist.length++;\n\n\t\treturn newNode;\n\t}\n\t/**\n\t * Removes `count` nodes after the given node. The given node will not be removed.\n\t *\n\t * @param {LinkedList<T>} list\n\t * @param {LinkedListNode<T>} node\n\t * @param {number} count\n\t * @template T\n\t */\n\tfunction removeRange(list, node, count) {\n\t\tvar next = node.next;\n\t\tfor (var i = 0; i < count && next !== list.tail; i++) {\n\t\t\tnext = next.next;\n\t\t}\n\t\tnode.next = next;\n\t\tnext.prev = node;\n\t\tlist.length -= i;\n\t}\n\t/**\n\t * @param {LinkedList<T>} list\n\t * @returns {T[]}\n\t * @template T\n\t */\n\tfunction toArray(list) {\n\t\tvar array = [];\n\t\tvar node = list.head.next;\n\t\twhile (node !== list.tail) {\n\t\t\tarray.push(node.value);\n\t\t\tnode = node.next;\n\t\t}\n\t\treturn array;\n\t}\n\n\n\tif (!_self.document) {\n\t\tif (!_self.addEventListener) {\n\t\t\t// in Node.js\n\t\t\treturn _;\n\t\t}\n\n\t\tif (!_.disableWorkerMessageHandler) {\n\t\t\t// In worker\n\t\t\t_self.addEventListener('message', function (evt) {\n\t\t\t\tvar message = JSON.parse(evt.data);\n\t\t\t\tvar lang = message.language;\n\t\t\t\tvar code = message.code;\n\t\t\t\tvar immediateClose = message.immediateClose;\n\n\t\t\t\t_self.postMessage(_.highlight(code, _.languages[lang], lang));\n\t\t\t\tif (immediateClose) {\n\t\t\t\t\t_self.close();\n\t\t\t\t}\n\t\t\t}, false);\n\t\t}\n\n\t\treturn _;\n\t}\n\n\t// Get current script and highlight\n\tvar script = _.util.currentScript();\n\n\tif (script) {\n\t\t_.filename = script.src;\n\n\t\tif (script.hasAttribute('data-manual')) {\n\t\t\t_.manual = true;\n\t\t}\n\t}\n\n\tfunction highlightAutomaticallyCallback() {\n\t\tif (!_.manual) {\n\t\t\t_.highlightAll();\n\t\t}\n\t}\n\n\tif (!_.manual) {\n\t\t// If the document state is \"loading\", then we'll use DOMContentLoaded.\n\t\t// If the document state is \"interactive\" and the prism.js script is deferred, then we'll also use the\n\t\t// DOMContentLoaded event because there might be some plugins or languages which have also been deferred and they\n\t\t// might take longer one animation frame to execute which can create a race condition where only some plugins have\n\t\t// been loaded when Prism.highlightAll() is executed, depending on how fast resources are loaded.\n\t\t// See https://github.com/PrismJS/prism/issues/2102\n\t\tvar readyState = document.readyState;\n\t\tif (readyState === 'loading' || readyState === 'interactive' && script && script.defer) {\n\t\t\tdocument.addEventListener('DOMContentLoaded', highlightAutomaticallyCallback);\n\t\t} else {\n\t\t\tif (window.requestAnimationFrame) {\n\t\t\t\twindow.requestAnimationFrame(highlightAutomaticallyCallback);\n\t\t\t} else {\n\t\t\t\twindow.setTimeout(highlightAutomaticallyCallback, 16);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn _;\n\n}(_self));\n\nif (typeof module !== 'undefined' && module.exports) {\n\tmodule.exports = Prism;\n}\n\n// hack for components to work correctly in node.js\nif (typeof global !== 'undefined') {\n\tglobal.Prism = Prism;\n}\n\n// some additional documentation/types\n\n/**\n * The expansion of a simple `RegExp` literal to support additional properties.\n *\n * @typedef GrammarToken\n * @property {RegExp} pattern The regular expression of the token.\n * @property {boolean} [lookbehind=false] If `true`, then the first capturing group of `pattern` will (effectively)\n * behave as a lookbehind group meaning that the captured text will not be part of the matched text of the new token.\n * @property {boolean} [greedy=false] Whether the token is greedy.\n * @property {string|string[]} [alias] An optional alias or list of aliases.\n * @property {Grammar} [inside] The nested grammar of this token.\n *\n * The `inside` grammar will be used to tokenize the text value of each token of this kind.\n *\n * This can be used to make nested and even recursive language definitions.\n *\n * Note: This can cause infinite recursion. Be careful when you embed different languages or even the same language into\n * each another.\n * @global\n * @public\n */\n\n/**\n * @typedef Grammar\n * @type {Object<string, RegExp | GrammarToken | Array<RegExp | GrammarToken>>}\n * @property {Grammar} [rest] An optional grammar object that will be appended to this grammar.\n * @global\n * @public\n */\n\n/**\n * A function which will invoked after an element was successfully highlighted.\n *\n * @callback HighlightCallback\n * @param {Element} element The element successfully highlighted.\n * @returns {void}\n * @global\n * @public\n */\n\n/**\n * @callback HookCallback\n * @param {Object<string, any>} env The environment variables of the hook.\n * @returns {void}\n * @global\n * @public\n */\n\n\n/* **********************************************\n Begin prism-markup.js\n********************************************** */\n\nPrism.languages.markup = {\n\t'comment': {\n\t\tpattern: /<!--(?:(?!<!--)[\\s\\S])*?-->/,\n\t\tgreedy: true\n\t},\n\t'prolog': {\n\t\tpattern: /<\\?[\\s\\S]+?\\?>/,\n\t\tgreedy: true\n\t},\n\t'doctype': {\n\t\t// https://www.w3.org/TR/xml/#NT-doctypedecl\n\t\tpattern: /<!DOCTYPE(?:[^>\"'[\\]]|\"[^\"]*\"|'[^']*')+(?:\\[(?:[^<\"'\\]]|\"[^\"]*\"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\\]\\s*)?>/i,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'internal-subset': {\n\t\t\t\tpattern: /(^[^\\[]*\\[)[\\s\\S]+(?=\\]>$)/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: null // see below\n\t\t\t},\n\t\t\t'string': {\n\t\t\t\tpattern: /\"[^\"]*\"|'[^']*'/,\n\t\t\t\tgreedy: true\n\t\t\t},\n\t\t\t'punctuation': /^<!|>$|[[\\]]/,\n\t\t\t'doctype-tag': /^DOCTYPE/i,\n\t\t\t'name': /[^\\s<>'\"]+/\n\t\t}\n\t},\n\t'cdata': {\n\t\tpattern: /<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/i,\n\t\tgreedy: true\n\t},\n\t'tag': {\n\t\tpattern: /<\\/?(?!\\d)[^\\s>\\/=$<%]+(?:\\s(?:\\s*[^\\s>\\/=]+(?:\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))|(?=[\\s/>])))+)?\\s*\\/?>/,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'tag': {\n\t\t\t\tpattern: /^<\\/?[^\\s>\\/]+/,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': /^<\\/?/,\n\t\t\t\t\t'namespace': /^[^\\s>\\/:]+:/\n\t\t\t\t}\n\t\t\t},\n\t\t\t'special-attr': [],\n\t\t\t'attr-value': {\n\t\t\t\tpattern: /=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+)/,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tpattern: /^=/,\n\t\t\t\t\t\t\talias: 'attr-equals'\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tpattern: /^(\\s*)[\"']|[\"']$/,\n\t\t\t\t\t\t\tlookbehind: true\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t},\n\t\t\t'punctuation': /\\/?>/,\n\t\t\t'attr-name': {\n\t\t\t\tpattern: /[^\\s>\\/]+/,\n\t\t\t\tinside: {\n\t\t\t\t\t'namespace': /^[^\\s>\\/:]+:/\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t},\n\t'entity': [\n\t\t{\n\t\t\tpattern: /&[\\da-z]{1,8};/i,\n\t\t\talias: 'named-entity'\n\t\t},\n\t\t/&#x?[\\da-f]{1,8};/i\n\t]\n};\n\nPrism.languages.markup['tag'].inside['attr-value'].inside['entity'] =\n\tPrism.languages.markup['entity'];\nPrism.languages.markup['doctype'].inside['internal-subset'].inside = Prism.languages.markup;\n\n// Plugin to make entity title show the real entity, idea by Roman Komarov\nPrism.hooks.add('wrap', function (env) {\n\n\tif (env.type === 'entity') {\n\t\tenv.attributes['title'] = env.content.replace(/&/, '&');\n\t}\n});\n\nObject.defineProperty(Prism.languages.markup.tag, 'addInlined', {\n\t/**\n\t * Adds an inlined language to markup.\n\t *\n\t * An example of an inlined language is CSS with `<style>` tags.\n\t *\n\t * @param {string} tagName The name of the tag that contains the inlined language. This name will be treated as\n\t * case insensitive.\n\t * @param {string} lang The language key.\n\t * @example\n\t * addInlined('style', 'css');\n\t */\n\tvalue: function addInlined(tagName, lang) {\n\t\tvar includedCdataInside = {};\n\t\tincludedCdataInside['language-' + lang] = {\n\t\t\tpattern: /(^<!\\[CDATA\\[)[\\s\\S]+?(?=\\]\\]>$)/i,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages[lang]\n\t\t};\n\t\tincludedCdataInside['cdata'] = /^<!\\[CDATA\\[|\\]\\]>$/i;\n\n\t\tvar inside = {\n\t\t\t'included-cdata': {\n\t\t\t\tpattern: /<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/i,\n\t\t\t\tinside: includedCdataInside\n\t\t\t}\n\t\t};\n\t\tinside['language-' + lang] = {\n\t\t\tpattern: /[\\s\\S]+/,\n\t\t\tinside: Prism.languages[lang]\n\t\t};\n\n\t\tvar def = {};\n\t\tdef[tagName] = {\n\t\t\tpattern: RegExp(/(<__[^>]*>)(?:<!\\[CDATA\\[(?:[^\\]]|\\](?!\\]>))*\\]\\]>|(?!<!\\[CDATA\\[)[\\s\\S])*?(?=<\\/__>)/.source.replace(/__/g, function () { return tagName; }), 'i'),\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true,\n\t\t\tinside: inside\n\t\t};\n\n\t\tPrism.languages.insertBefore('markup', 'cdata', def);\n\t}\n});\nObject.defineProperty(Prism.languages.markup.tag, 'addAttribute', {\n\t/**\n\t * Adds an pattern to highlight languages embedded in HTML attributes.\n\t *\n\t * An example of an inlined language is CSS with `style` attributes.\n\t *\n\t * @param {string} attrName The name of the tag that contains the inlined language. This name will be treated as\n\t * case insensitive.\n\t * @param {string} lang The language key.\n\t * @example\n\t * addAttribute('style', 'css');\n\t */\n\tvalue: function (attrName, lang) {\n\t\tPrism.languages.markup.tag.inside['special-attr'].push({\n\t\t\tpattern: RegExp(\n\t\t\t\t/(^|[\"'\\s])/.source + '(?:' + attrName + ')' + /\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))/.source,\n\t\t\t\t'i'\n\t\t\t),\n\t\t\tlookbehind: true,\n\t\t\tinside: {\n\t\t\t\t'attr-name': /^[^\\s=]+/,\n\t\t\t\t'attr-value': {\n\t\t\t\t\tpattern: /=[\\s\\S]+/,\n\t\t\t\t\tinside: {\n\t\t\t\t\t\t'value': {\n\t\t\t\t\t\t\tpattern: /(^=\\s*([\"']|(?![\"'])))\\S[\\s\\S]*(?=\\2$)/,\n\t\t\t\t\t\t\tlookbehind: true,\n\t\t\t\t\t\t\talias: [lang, 'language-' + lang],\n\t\t\t\t\t\t\tinside: Prism.languages[lang]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t'punctuation': [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tpattern: /^=/,\n\t\t\t\t\t\t\t\talias: 'attr-equals'\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t/\"|'/\n\t\t\t\t\t\t]\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n});\n\nPrism.languages.html = Prism.languages.markup;\nPrism.languages.mathml = Prism.languages.markup;\nPrism.languages.svg = Prism.languages.markup;\n\nPrism.languages.xml = Prism.languages.extend('markup', {});\nPrism.languages.ssml = Prism.languages.xml;\nPrism.languages.atom = Prism.languages.xml;\nPrism.languages.rss = Prism.languages.xml;\n\n\n/* **********************************************\n Begin prism-css.js\n********************************************** */\n\n(function (Prism) {\n\n\tvar string = /(?:\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"|'(?:\\\\(?:\\r\\n|[\\s\\S])|[^'\\\\\\r\\n])*')/;\n\n\tPrism.languages.css = {\n\t\t'comment': /\\/\\*[\\s\\S]*?\\*\\//,\n\t\t'atrule': {\n\t\t\tpattern: RegExp('@[\\\\w-](?:' + /[^;{\\s\"']|\\s+(?!\\s)/.source + '|' + string.source + ')*?' + /(?:;|(?=\\s*\\{))/.source),\n\t\t\tinside: {\n\t\t\t\t'rule': /^@[\\w-]+/,\n\t\t\t\t'selector-function-argument': {\n\t\t\t\t\tpattern: /(\\bselector\\s*\\(\\s*(?![\\s)]))(?:[^()\\s]|\\s+(?![\\s)])|\\((?:[^()]|\\([^()]*\\))*\\))+(?=\\s*\\))/,\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\talias: 'selector'\n\t\t\t\t},\n\t\t\t\t'keyword': {\n\t\t\t\t\tpattern: /(^|[^\\w-])(?:and|not|only|or)(?![\\w-])/,\n\t\t\t\t\tlookbehind: true\n\t\t\t\t}\n\t\t\t\t// See rest below\n\t\t\t}\n\t\t},\n\t\t'url': {\n\t\t\t// https://drafts.csswg.org/css-values-3/#urls\n\t\t\tpattern: RegExp('\\\\burl\\\\((?:' + string.source + '|' + /(?:[^\\\\\\r\\n()\"']|\\\\[\\s\\S])*/.source + ')\\\\)', 'i'),\n\t\t\tgreedy: true,\n\t\t\tinside: {\n\t\t\t\t'function': /^url/i,\n\t\t\t\t'punctuation': /^\\(|\\)$/,\n\t\t\t\t'string': {\n\t\t\t\t\tpattern: RegExp('^' + string.source + '$'),\n\t\t\t\t\talias: 'url'\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t'selector': {\n\t\t\tpattern: RegExp('(^|[{}\\\\s])[^{}\\\\s](?:[^{};\"\\'\\\\s]|\\\\s+(?![\\\\s{])|' + string.source + ')*(?=\\\\s*\\\\{)'),\n\t\t\tlookbehind: true\n\t\t},\n\t\t'string': {\n\t\t\tpattern: string,\n\t\t\tgreedy: true\n\t\t},\n\t\t'property': {\n\t\t\tpattern: /(^|[^-\\w\\xA0-\\uFFFF])(?!\\s)[-_a-z\\xA0-\\uFFFF](?:(?!\\s)[-\\w\\xA0-\\uFFFF])*(?=\\s*:)/i,\n\t\t\tlookbehind: true\n\t\t},\n\t\t'important': /!important\\b/i,\n\t\t'function': {\n\t\t\tpattern: /(^|[^-a-z0-9])[-a-z0-9]+(?=\\()/i,\n\t\t\tlookbehind: true\n\t\t},\n\t\t'punctuation': /[(){};:,]/\n\t};\n\n\tPrism.languages.css['atrule'].inside.rest = Prism.languages.css;\n\n\tvar markup = Prism.languages.markup;\n\tif (markup) {\n\t\tmarkup.tag.addInlined('style', 'css');\n\t\tmarkup.tag.addAttribute('style', 'css');\n\t}\n\n}(Prism));\n\n\n/* **********************************************\n Begin prism-clike.js\n********************************************** */\n\nPrism.languages.clike = {\n\t'comment': [\n\t\t{\n\t\t\tpattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true\n\t\t},\n\t\t{\n\t\t\tpattern: /(^|[^\\\\:])\\/\\/.*/,\n\t\t\tlookbehind: true,\n\t\t\tgreedy: true\n\t\t}\n\t],\n\t'string': {\n\t\tpattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n\t\tgreedy: true\n\t},\n\t'class-name': {\n\t\tpattern: /(\\b(?:class|extends|implements|instanceof|interface|new|trait)\\s+|\\bcatch\\s+\\()[\\w.\\\\]+/i,\n\t\tlookbehind: true,\n\t\tinside: {\n\t\t\t'punctuation': /[.\\\\]/\n\t\t}\n\t},\n\t'keyword': /\\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\\b/,\n\t'boolean': /\\b(?:false|true)\\b/,\n\t'function': /\\b\\w+(?=\\()/,\n\t'number': /\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,\n\t'operator': /[<>]=?|[!=]=?=?|--?|\\+\\+?|&&?|\\|\\|?|[?*/~^%]/,\n\t'punctuation': /[{}[\\];(),.:]/\n};\n\n\n/* **********************************************\n Begin prism-javascript.js\n********************************************** */\n\nPrism.languages.javascript = Prism.languages.extend('clike', {\n\t'class-name': [\n\t\tPrism.languages.clike['class-name'],\n\t\t{\n\t\t\tpattern: /(^|[^$\\w\\xA0-\\uFFFF])(?!\\s)[_$A-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\.(?:constructor|prototype))/,\n\t\t\tlookbehind: true\n\t\t}\n\t],\n\t'keyword': [\n\t\t{\n\t\t\tpattern: /((?:^|\\})\\s*)catch\\b/,\n\t\t\tlookbehind: true\n\t\t},\n\t\t{\n\t\t\tpattern: /(^|[^.]|\\.\\.\\.\\s*)\\b(?:as|assert(?=\\s*\\{)|async(?=\\s*(?:function\\b|\\(|[$\\w\\xA0-\\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\\s*(?:\\{|$))|for|from(?=\\s*(?:['\"]|$))|function|(?:get|set)(?=\\s*(?:[#\\[$\\w\\xA0-\\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\\b/,\n\t\t\tlookbehind: true\n\t\t},\n\t],\n\t// Allow for all non-ASCII characters (See http://stackoverflow.com/a/2008444)\n\t'function': /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*(?:\\.\\s*(?:apply|bind|call)\\s*)?\\()/,\n\t'number': {\n\t\tpattern: RegExp(\n\t\t\t/(^|[^\\w$])/.source +\n\t\t\t'(?:' +\n\t\t\t(\n\t\t\t\t// constant\n\t\t\t\t/NaN|Infinity/.source +\n\t\t\t\t'|' +\n\t\t\t\t// binary integer\n\t\t\t\t/0[bB][01]+(?:_[01]+)*n?/.source +\n\t\t\t\t'|' +\n\t\t\t\t// octal integer\n\t\t\t\t/0[oO][0-7]+(?:_[0-7]+)*n?/.source +\n\t\t\t\t'|' +\n\t\t\t\t// hexadecimal integer\n\t\t\t\t/0[xX][\\dA-Fa-f]+(?:_[\\dA-Fa-f]+)*n?/.source +\n\t\t\t\t'|' +\n\t\t\t\t// decimal bigint\n\t\t\t\t/\\d+(?:_\\d+)*n/.source +\n\t\t\t\t'|' +\n\t\t\t\t// decimal number (integer or float) but no bigint\n\t\t\t\t/(?:\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\.\\d+(?:_\\d+)*)(?:[Ee][+-]?\\d+(?:_\\d+)*)?/.source\n\t\t\t) +\n\t\t\t')' +\n\t\t\t/(?![\\w$])/.source\n\t\t),\n\t\tlookbehind: true\n\t},\n\t'operator': /--|\\+\\+|\\*\\*=?|=>|&&=?|\\|\\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\\.{3}|\\?\\?=?|\\?\\.?|[~:]/\n});\n\nPrism.languages.javascript['class-name'][0].pattern = /(\\b(?:class|extends|implements|instanceof|interface|new)\\s+)[\\w.\\\\]+/;\n\nPrism.languages.insertBefore('javascript', 'keyword', {\n\t'regex': {\n\t\tpattern: RegExp(\n\t\t\t// lookbehind\n\t\t\t// eslint-disable-next-line regexp/no-dupe-characters-character-class\n\t\t\t/((?:^|[^$\\w\\xA0-\\uFFFF.\"'\\])\\s]|\\b(?:return|yield))\\s*)/.source +\n\t\t\t// Regex pattern:\n\t\t\t// There are 2 regex patterns here. The RegExp set notation proposal added support for nested character\n\t\t\t// classes if the `v` flag is present. Unfortunately, nested CCs are both context-free and incompatible\n\t\t\t// with the only syntax, so we have to define 2 different regex patterns.\n\t\t\t/\\//.source +\n\t\t\t'(?:' +\n\t\t\t/(?:\\[(?:[^\\]\\\\\\r\\n]|\\\\.)*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[dgimyus]{0,7}/.source +\n\t\t\t'|' +\n\t\t\t// `v` flag syntax. This supports 3 levels of nested character classes.\n\t\t\t/(?:\\[(?:[^[\\]\\\\\\r\\n]|\\\\.|\\[(?:[^[\\]\\\\\\r\\n]|\\\\.|\\[(?:[^[\\]\\\\\\r\\n]|\\\\.)*\\])*\\])*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source +\n\t\t\t')' +\n\t\t\t// lookahead\n\t\t\t/(?=(?:\\s|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*(?:$|[\\r\\n,.;:})\\]]|\\/\\/))/.source\n\t\t),\n\t\tlookbehind: true,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'regex-source': {\n\t\t\t\tpattern: /^(\\/)[\\s\\S]+(?=\\/[a-z]*$)/,\n\t\t\t\tlookbehind: true,\n\t\t\t\talias: 'language-regex',\n\t\t\t\tinside: Prism.languages.regex\n\t\t\t},\n\t\t\t'regex-delimiter': /^\\/|\\/$/,\n\t\t\t'regex-flags': /^[a-z]+$/,\n\t\t}\n\t},\n\t// This must be declared before keyword because we use \"function\" inside the look-forward\n\t'function-variable': {\n\t\tpattern: /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*[=:]\\s*(?:async\\s*)?(?:\\bfunction\\b|(?:\\((?:[^()]|\\([^()]*\\))*\\)|(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)\\s*=>))/,\n\t\talias: 'function'\n\t},\n\t'parameter': [\n\t\t{\n\t\t\tpattern: /(function(?:\\s+(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)?\\s*\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\))/,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages.javascript\n\t\t},\n\t\t{\n\t\t\tpattern: /(^|[^$\\w\\xA0-\\uFFFF])(?!\\s)[_$a-z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*=>)/i,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages.javascript\n\t\t},\n\t\t{\n\t\t\tpattern: /(\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\)\\s*=>)/,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages.javascript\n\t\t},\n\t\t{\n\t\t\tpattern: /((?:\\b|\\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\\w\\xA0-\\uFFFF]))(?:(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*\\s*)\\(\\s*|\\]\\s*\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\)\\s*\\{)/,\n\t\t\tlookbehind: true,\n\t\t\tinside: Prism.languages.javascript\n\t\t}\n\t],\n\t'constant': /\\b[A-Z](?:[A-Z_]|\\dx?)*\\b/\n});\n\nPrism.languages.insertBefore('javascript', 'string', {\n\t'hashbang': {\n\t\tpattern: /^#!.*/,\n\t\tgreedy: true,\n\t\talias: 'comment'\n\t},\n\t'template-string': {\n\t\tpattern: /`(?:\\\\[\\s\\S]|\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}|(?!\\$\\{)[^\\\\`])*`/,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'template-punctuation': {\n\t\t\t\tpattern: /^`|`$/,\n\t\t\t\talias: 'string'\n\t\t\t},\n\t\t\t'interpolation': {\n\t\t\t\tpattern: /((?:^|[^\\\\])(?:\\\\{2})*)\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}/,\n\t\t\t\tlookbehind: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'interpolation-punctuation': {\n\t\t\t\t\t\tpattern: /^\\$\\{|\\}$/,\n\t\t\t\t\t\talias: 'punctuation'\n\t\t\t\t\t},\n\t\t\t\t\trest: Prism.languages.javascript\n\t\t\t\t}\n\t\t\t},\n\t\t\t'string': /[\\s\\S]+/\n\t\t}\n\t},\n\t'string-property': {\n\t\tpattern: /((?:^|[,{])[ \\t]*)([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\2)[^\\\\\\r\\n])*\\2(?=\\s*:)/m,\n\t\tlookbehind: true,\n\t\tgreedy: true,\n\t\talias: 'property'\n\t}\n});\n\nPrism.languages.insertBefore('javascript', 'operator', {\n\t'literal-property': {\n\t\tpattern: /((?:^|[,{])[ \\t]*)(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*:)/m,\n\t\tlookbehind: true,\n\t\talias: 'property'\n\t},\n});\n\nif (Prism.languages.markup) {\n\tPrism.languages.markup.tag.addInlined('script', 'javascript');\n\n\t// add attribute support for all DOM events.\n\t// https://developer.mozilla.org/en-US/docs/Web/Events#Standard_events\n\tPrism.languages.markup.tag.addAttribute(\n\t\t/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,\n\t\t'javascript'\n\t);\n}\n\nPrism.languages.js = Prism.languages.javascript;\n\n\n/* **********************************************\n Begin prism-file-highlight.js\n********************************************** */\n\n(function () {\n\n\tif (typeof Prism === 'undefined' || typeof document === 'undefined') {\n\t\treturn;\n\t}\n\n\t// https://developer.mozilla.org/en-US/docs/Web/API/Element/matches#Polyfill\n\tif (!Element.prototype.matches) {\n\t\tElement.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\n\t}\n\n\tvar LOADING_MESSAGE = 'Loading…';\n\tvar FAILURE_MESSAGE = function (status, message) {\n\t\treturn '✖ Error ' + status + ' while fetching file: ' + message;\n\t};\n\tvar FAILURE_EMPTY_MESSAGE = '✖ Error: File does not exist or is empty';\n\n\tvar EXTENSIONS = {\n\t\t'js': 'javascript',\n\t\t'py': 'python',\n\t\t'rb': 'ruby',\n\t\t'ps1': 'powershell',\n\t\t'psm1': 'powershell',\n\t\t'sh': 'bash',\n\t\t'bat': 'batch',\n\t\t'h': 'c',\n\t\t'tex': 'latex'\n\t};\n\n\tvar STATUS_ATTR = 'data-src-status';\n\tvar STATUS_LOADING = 'loading';\n\tvar STATUS_LOADED = 'loaded';\n\tvar STATUS_FAILED = 'failed';\n\n\tvar SELECTOR = 'pre[data-src]:not([' + STATUS_ATTR + '=\"' + STATUS_LOADED + '\"])'\n\t\t+ ':not([' + STATUS_ATTR + '=\"' + STATUS_LOADING + '\"])';\n\n\t/**\n\t * Loads the given file.\n\t *\n\t * @param {string} src The URL or path of the source file to load.\n\t * @param {(result: string) => void} success\n\t * @param {(reason: string) => void} error\n\t */\n\tfunction loadFile(src, success, error) {\n\t\tvar xhr = new XMLHttpRequest();\n\t\txhr.open('GET', src, true);\n\t\txhr.onreadystatechange = function () {\n\t\t\tif (xhr.readyState == 4) {\n\t\t\t\tif (xhr.status < 400 && xhr.responseText) {\n\t\t\t\t\tsuccess(xhr.responseText);\n\t\t\t\t} else {\n\t\t\t\t\tif (xhr.status >= 400) {\n\t\t\t\t\t\terror(FAILURE_MESSAGE(xhr.status, xhr.statusText));\n\t\t\t\t\t} else {\n\t\t\t\t\t\terror(FAILURE_EMPTY_MESSAGE);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\txhr.send(null);\n\t}\n\n\t/**\n\t * Parses the given range.\n\t *\n\t * This returns a range with inclusive ends.\n\t *\n\t * @param {string | null | undefined} range\n\t * @returns {[number, number | undefined] | undefined}\n\t */\n\tfunction parseRange(range) {\n\t\tvar m = /^\\s*(\\d+)\\s*(?:(,)\\s*(?:(\\d+)\\s*)?)?$/.exec(range || '');\n\t\tif (m) {\n\t\t\tvar start = Number(m[1]);\n\t\t\tvar comma = m[2];\n\t\t\tvar end = m[3];\n\n\t\t\tif (!comma) {\n\t\t\t\treturn [start, start];\n\t\t\t}\n\t\t\tif (!end) {\n\t\t\t\treturn [start, undefined];\n\t\t\t}\n\t\t\treturn [start, Number(end)];\n\t\t}\n\t\treturn undefined;\n\t}\n\n\tPrism.hooks.add('before-highlightall', function (env) {\n\t\tenv.selector += ', ' + SELECTOR;\n\t});\n\n\tPrism.hooks.add('before-sanity-check', function (env) {\n\t\tvar pre = /** @type {HTMLPreElement} */ (env.element);\n\t\tif (pre.matches(SELECTOR)) {\n\t\t\tenv.code = ''; // fast-path the whole thing and go to complete\n\n\t\t\tpre.setAttribute(STATUS_ATTR, STATUS_LOADING); // mark as loading\n\n\t\t\t// add code element with loading message\n\t\t\tvar code = pre.appendChild(document.createElement('CODE'));\n\t\t\tcode.textContent = LOADING_MESSAGE;\n\n\t\t\tvar src = pre.getAttribute('data-src');\n\n\t\t\tvar language = env.language;\n\t\t\tif (language === 'none') {\n\t\t\t\t// the language might be 'none' because there is no language set;\n\t\t\t\t// in this case, we want to use the extension as the language\n\t\t\t\tvar extension = (/\\.(\\w+)$/.exec(src) || [, 'none'])[1];\n\t\t\t\tlanguage = EXTENSIONS[extension] || extension;\n\t\t\t}\n\n\t\t\t// set language classes\n\t\t\tPrism.util.setLanguage(code, language);\n\t\t\tPrism.util.setLanguage(pre, language);\n\n\t\t\t// preload the language\n\t\t\tvar autoloader = Prism.plugins.autoloader;\n\t\t\tif (autoloader) {\n\t\t\t\tautoloader.loadLanguages(language);\n\t\t\t}\n\n\t\t\t// load file\n\t\t\tloadFile(\n\t\t\t\tsrc,\n\t\t\t\tfunction (text) {\n\t\t\t\t\t// mark as loaded\n\t\t\t\t\tpre.setAttribute(STATUS_ATTR, STATUS_LOADED);\n\n\t\t\t\t\t// handle data-range\n\t\t\t\t\tvar range = parseRange(pre.getAttribute('data-range'));\n\t\t\t\t\tif (range) {\n\t\t\t\t\t\tvar lines = text.split(/\\r\\n?|\\n/g);\n\n\t\t\t\t\t\t// the range is one-based and inclusive on both ends\n\t\t\t\t\t\tvar start = range[0];\n\t\t\t\t\t\tvar end = range[1] == null ? lines.length : range[1];\n\n\t\t\t\t\t\tif (start < 0) { start += lines.length; }\n\t\t\t\t\t\tstart = Math.max(0, Math.min(start - 1, lines.length));\n\t\t\t\t\t\tif (end < 0) { end += lines.length; }\n\t\t\t\t\t\tend = Math.max(0, Math.min(end, lines.length));\n\n\t\t\t\t\t\ttext = lines.slice(start, end).join('\\n');\n\n\t\t\t\t\t\t// add data-start for line numbers\n\t\t\t\t\t\tif (!pre.hasAttribute('data-start')) {\n\t\t\t\t\t\t\tpre.setAttribute('data-start', String(start + 1));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// highlight code\n\t\t\t\t\tcode.textContent = text;\n\t\t\t\t\tPrism.highlightElement(code);\n\t\t\t\t},\n\t\t\t\tfunction (error) {\n\t\t\t\t\t// mark as failed\n\t\t\t\t\tpre.setAttribute(STATUS_ATTR, STATUS_FAILED);\n\n\t\t\t\t\tcode.textContent = error;\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t});\n\n\tPrism.plugins.fileHighlight = {\n\t\t/**\n\t\t * Executes the File Highlight plugin for all matching `pre` elements under the given container.\n\t\t *\n\t\t * Note: Elements which are already loaded or currently loading will not be touched by this method.\n\t\t *\n\t\t * @param {ParentNode} [container=document]\n\t\t */\n\t\thighlight: function highlight(container) {\n\t\t\tvar elements = (container || document).querySelectorAll(SELECTOR);\n\n\t\t\tfor (var i = 0, element; (element = elements[i++]);) {\n\t\t\t\tPrism.highlightElement(element);\n\t\t\t}\n\t\t}\n\t};\n\n\tvar logged = false;\n\t/** @deprecated Use `Prism.plugins.fileHighlight.highlight` instead. */\n\tPrism.fileHighlight = function () {\n\t\tif (!logged) {\n\t\t\tconsole.warn('Prism.fileHighlight is deprecated. Use `Prism.plugins.fileHighlight.highlight` instead.');\n\t\t\tlogged = true;\n\t\t}\n\t\tPrism.plugins.fileHighlight.highlight.apply(this, arguments);\n\t};\n\n}());\n","var components = {\"core\":{\"meta\":{\"path\":\"components/prism-core.js\",\"option\":\"mandatory\"},\"core\":\"Core\"},\"themes\":{\"meta\":{\"path\":\"themes/{id}.css\",\"link\":\"index.html?theme={id}\",\"exclusive\":true},\"prism\":{\"title\":\"Default\",\"option\":\"default\"},\"prism-dark\":\"Dark\",\"prism-funky\":\"Funky\",\"prism-okaidia\":{\"title\":\"Okaidia\",\"owner\":\"ocodia\"},\"prism-twilight\":{\"title\":\"Twilight\",\"owner\":\"remybach\"},\"prism-coy\":{\"title\":\"Coy\",\"owner\":\"tshedor\"},\"prism-solarizedlight\":{\"title\":\"Solarized Light\",\"owner\":\"hectormatos2011 \"},\"prism-tomorrow\":{\"title\":\"Tomorrow Night\",\"owner\":\"Rosey\"}},\"languages\":{\"meta\":{\"path\":\"components/prism-{id}\",\"noCSS\":true,\"examplesPath\":\"examples/prism-{id}\",\"addCheckAll\":true},\"markup\":{\"title\":\"Markup\",\"alias\":[\"html\",\"xml\",\"svg\",\"mathml\",\"ssml\",\"atom\",\"rss\"],\"aliasTitles\":{\"html\":\"HTML\",\"xml\":\"XML\",\"svg\":\"SVG\",\"mathml\":\"MathML\",\"ssml\":\"SSML\",\"atom\":\"Atom\",\"rss\":\"RSS\"},\"option\":\"default\"},\"css\":{\"title\":\"CSS\",\"option\":\"default\",\"modify\":\"markup\"},\"clike\":{\"title\":\"C-like\",\"option\":\"default\"},\"javascript\":{\"title\":\"JavaScript\",\"require\":\"clike\",\"modify\":\"markup\",\"optional\":\"regex\",\"alias\":\"js\",\"option\":\"default\"},\"abap\":{\"title\":\"ABAP\",\"owner\":\"dellagustin\"},\"abnf\":{\"title\":\"ABNF\",\"owner\":\"RunDevelopment\"},\"actionscript\":{\"title\":\"ActionScript\",\"require\":\"javascript\",\"modify\":\"markup\",\"owner\":\"Golmote\"},\"ada\":{\"title\":\"Ada\",\"owner\":\"Lucretia\"},\"agda\":{\"title\":\"Agda\",\"owner\":\"xy-ren\"},\"al\":{\"title\":\"AL\",\"owner\":\"RunDevelopment\"},\"antlr4\":{\"title\":\"ANTLR4\",\"alias\":\"g4\",\"owner\":\"RunDevelopment\"},\"apacheconf\":{\"title\":\"Apache Configuration\",\"owner\":\"GuiTeK\"},\"apex\":{\"title\":\"Apex\",\"require\":[\"clike\",\"sql\"],\"owner\":\"RunDevelopment\"},\"apl\":{\"title\":\"APL\",\"owner\":\"ngn\"},\"applescript\":{\"title\":\"AppleScript\",\"owner\":\"Golmote\"},\"aql\":{\"title\":\"AQL\",\"owner\":\"RunDevelopment\"},\"arduino\":{\"title\":\"Arduino\",\"require\":\"cpp\",\"alias\":\"ino\",\"owner\":\"dkern\"},\"arff\":{\"title\":\"ARFF\",\"owner\":\"Golmote\"},\"armasm\":{\"title\":\"ARM Assembly\",\"alias\":\"arm-asm\",\"owner\":\"RunDevelopment\"},\"arturo\":{\"title\":\"Arturo\",\"alias\":\"art\",\"optional\":[\"bash\",\"css\",\"javascript\",\"markup\",\"markdown\",\"sql\"],\"owner\":\"drkameleon\"},\"asciidoc\":{\"alias\":\"adoc\",\"title\":\"AsciiDoc\",\"owner\":\"Golmote\"},\"aspnet\":{\"title\":\"ASP.NET (C#)\",\"require\":[\"markup\",\"csharp\"],\"owner\":\"nauzilus\"},\"asm6502\":{\"title\":\"6502 Assembly\",\"owner\":\"kzurawel\"},\"asmatmel\":{\"title\":\"Atmel AVR Assembly\",\"owner\":\"cerkit\"},\"autohotkey\":{\"title\":\"AutoHotkey\",\"owner\":\"aviaryan\"},\"autoit\":{\"title\":\"AutoIt\",\"owner\":\"Golmote\"},\"avisynth\":{\"title\":\"AviSynth\",\"alias\":\"avs\",\"owner\":\"Zinfidel\"},\"avro-idl\":{\"title\":\"Avro IDL\",\"alias\":\"avdl\",\"owner\":\"RunDevelopment\"},\"awk\":{\"title\":\"AWK\",\"alias\":\"gawk\",\"aliasTitles\":{\"gawk\":\"GAWK\"},\"owner\":\"RunDevelopment\"},\"bash\":{\"title\":\"Bash\",\"alias\":[\"sh\",\"shell\"],\"aliasTitles\":{\"sh\":\"Shell\",\"shell\":\"Shell\"},\"owner\":\"zeitgeist87\"},\"basic\":{\"title\":\"BASIC\",\"owner\":\"Golmote\"},\"batch\":{\"title\":\"Batch\",\"owner\":\"Golmote\"},\"bbcode\":{\"title\":\"BBcode\",\"alias\":\"shortcode\",\"aliasTitles\":{\"shortcode\":\"Shortcode\"},\"owner\":\"RunDevelopment\"},\"bbj\":{\"title\":\"BBj\",\"owner\":\"hyyan\"},\"bicep\":{\"title\":\"Bicep\",\"owner\":\"johnnyreilly\"},\"birb\":{\"title\":\"Birb\",\"require\":\"clike\",\"owner\":\"Calamity210\"},\"bison\":{\"title\":\"Bison\",\"require\":\"c\",\"owner\":\"Golmote\"},\"bnf\":{\"title\":\"BNF\",\"alias\":\"rbnf\",\"aliasTitles\":{\"rbnf\":\"RBNF\"},\"owner\":\"RunDevelopment\"},\"bqn\":{\"title\":\"BQN\",\"owner\":\"yewscion\"},\"brainfuck\":{\"title\":\"Brainfuck\",\"owner\":\"Golmote\"},\"brightscript\":{\"title\":\"BrightScript\",\"owner\":\"RunDevelopment\"},\"bro\":{\"title\":\"Bro\",\"owner\":\"wayward710\"},\"bsl\":{\"title\":\"BSL (1C:Enterprise)\",\"alias\":\"oscript\",\"aliasTitles\":{\"oscript\":\"OneScript\"},\"owner\":\"Diversus23\"},\"c\":{\"title\":\"C\",\"require\":\"clike\",\"owner\":\"zeitgeist87\"},\"csharp\":{\"title\":\"C#\",\"require\":\"clike\",\"alias\":[\"cs\",\"dotnet\"],\"owner\":\"mvalipour\"},\"cpp\":{\"title\":\"C++\",\"require\":\"c\",\"owner\":\"zeitgeist87\"},\"cfscript\":{\"title\":\"CFScript\",\"require\":\"clike\",\"alias\":\"cfc\",\"owner\":\"mjclemente\"},\"chaiscript\":{\"title\":\"ChaiScript\",\"require\":[\"clike\",\"cpp\"],\"owner\":\"RunDevelopment\"},\"cil\":{\"title\":\"CIL\",\"owner\":\"sbrl\"},\"cilkc\":{\"title\":\"Cilk/C\",\"require\":\"c\",\"alias\":\"cilk-c\",\"owner\":\"OpenCilk\"},\"cilkcpp\":{\"title\":\"Cilk/C++\",\"require\":\"cpp\",\"alias\":[\"cilk-cpp\",\"cilk\"],\"owner\":\"OpenCilk\"},\"clojure\":{\"title\":\"Clojure\",\"owner\":\"troglotit\"},\"cmake\":{\"title\":\"CMake\",\"owner\":\"mjrogozinski\"},\"cobol\":{\"title\":\"COBOL\",\"owner\":\"RunDevelopment\"},\"coffeescript\":{\"title\":\"CoffeeScript\",\"require\":\"javascript\",\"alias\":\"coffee\",\"owner\":\"R-osey\"},\"concurnas\":{\"title\":\"Concurnas\",\"alias\":\"conc\",\"owner\":\"jasontatton\"},\"csp\":{\"title\":\"Content-Security-Policy\",\"owner\":\"ScottHelme\"},\"cooklang\":{\"title\":\"Cooklang\",\"owner\":\"ahue\"},\"coq\":{\"title\":\"Coq\",\"owner\":\"RunDevelopment\"},\"crystal\":{\"title\":\"Crystal\",\"require\":\"ruby\",\"owner\":\"MakeNowJust\"},\"css-extras\":{\"title\":\"CSS Extras\",\"require\":\"css\",\"modify\":\"css\",\"owner\":\"milesj\"},\"csv\":{\"title\":\"CSV\",\"owner\":\"RunDevelopment\"},\"cue\":{\"title\":\"CUE\",\"owner\":\"RunDevelopment\"},\"cypher\":{\"title\":\"Cypher\",\"owner\":\"RunDevelopment\"},\"d\":{\"title\":\"D\",\"require\":\"clike\",\"owner\":\"Golmote\"},\"dart\":{\"title\":\"Dart\",\"require\":\"clike\",\"owner\":\"Golmote\"},\"dataweave\":{\"title\":\"DataWeave\",\"owner\":\"machaval\"},\"dax\":{\"title\":\"DAX\",\"owner\":\"peterbud\"},\"dhall\":{\"title\":\"Dhall\",\"owner\":\"RunDevelopment\"},\"diff\":{\"title\":\"Diff\",\"owner\":\"uranusjr\"},\"django\":{\"title\":\"Django/Jinja2\",\"require\":\"markup-templating\",\"alias\":\"jinja2\",\"owner\":\"romanvm\"},\"dns-zone-file\":{\"title\":\"DNS zone file\",\"owner\":\"RunDevelopment\",\"alias\":\"dns-zone\"},\"docker\":{\"title\":\"Docker\",\"alias\":\"dockerfile\",\"owner\":\"JustinBeckwith\"},\"dot\":{\"title\":\"DOT (Graphviz)\",\"alias\":\"gv\",\"optional\":\"markup\",\"owner\":\"RunDevelopment\"},\"ebnf\":{\"title\":\"EBNF\",\"owner\":\"RunDevelopment\"},\"editorconfig\":{\"title\":\"EditorConfig\",\"owner\":\"osipxd\"},\"eiffel\":{\"title\":\"Eiffel\",\"owner\":\"Conaclos\"},\"ejs\":{\"title\":\"EJS\",\"require\":[\"javascript\",\"markup-templating\"],\"owner\":\"RunDevelopment\",\"alias\":\"eta\",\"aliasTitles\":{\"eta\":\"Eta\"}},\"elixir\":{\"title\":\"Elixir\",\"owner\":\"Golmote\"},\"elm\":{\"title\":\"Elm\",\"owner\":\"zwilias\"},\"etlua\":{\"title\":\"Embedded Lua templating\",\"require\":[\"lua\",\"markup-templating\"],\"owner\":\"RunDevelopment\"},\"erb\":{\"title\":\"ERB\",\"require\":[\"ruby\",\"markup-templating\"],\"owner\":\"Golmote\"},\"erlang\":{\"title\":\"Erlang\",\"owner\":\"Golmote\"},\"excel-formula\":{\"title\":\"Excel Formula\",\"alias\":[\"xlsx\",\"xls\"],\"owner\":\"RunDevelopment\"},\"fsharp\":{\"title\":\"F#\",\"require\":\"clike\",\"owner\":\"simonreynolds7\"},\"factor\":{\"title\":\"Factor\",\"owner\":\"catb0t\"},\"false\":{\"title\":\"False\",\"owner\":\"edukisto\"},\"firestore-security-rules\":{\"title\":\"Firestore security rules\",\"require\":\"clike\",\"owner\":\"RunDevelopment\"},\"flow\":{\"title\":\"Flow\",\"require\":\"javascript\",\"owner\":\"Golmote\"},\"fortran\":{\"title\":\"Fortran\",\"owner\":\"Golmote\"},\"ftl\":{\"title\":\"FreeMarker Template Language\",\"require\":\"markup-templating\",\"owner\":\"RunDevelopment\"},\"gml\":{\"title\":\"GameMaker Language\",\"alias\":\"gamemakerlanguage\",\"require\":\"clike\",\"owner\":\"LiarOnce\"},\"gap\":{\"title\":\"GAP (CAS)\",\"owner\":\"RunDevelopment\"},\"gcode\":{\"title\":\"G-code\",\"owner\":\"RunDevelopment\"},\"gdscript\":{\"title\":\"GDScript\",\"owner\":\"RunDevelopment\"},\"gedcom\":{\"title\":\"GEDCOM\",\"owner\":\"Golmote\"},\"gettext\":{\"title\":\"gettext\",\"alias\":\"po\",\"owner\":\"RunDevelopment\"},\"gherkin\":{\"title\":\"Gherkin\",\"owner\":\"hason\"},\"git\":{\"title\":\"Git\",\"owner\":\"lgiraudel\"},\"glsl\":{\"title\":\"GLSL\",\"require\":\"c\",\"owner\":\"Golmote\"},\"gn\":{\"title\":\"GN\",\"alias\":\"gni\",\"owner\":\"RunDevelopment\"},\"linker-script\":{\"title\":\"GNU Linker Script\",\"alias\":\"ld\",\"owner\":\"RunDevelopment\"},\"go\":{\"title\":\"Go\",\"require\":\"clike\",\"owner\":\"arnehormann\"},\"go-module\":{\"title\":\"Go module\",\"alias\":\"go-mod\",\"owner\":\"RunDevelopment\"},\"gradle\":{\"title\":\"Gradle\",\"require\":\"clike\",\"owner\":\"zeabdelkhalek-badido18\"},\"graphql\":{\"title\":\"GraphQL\",\"optional\":\"markdown\",\"owner\":\"Golmote\"},\"groovy\":{\"title\":\"Groovy\",\"require\":\"clike\",\"owner\":\"robfletcher\"},\"haml\":{\"title\":\"Haml\",\"require\":\"ruby\",\"optional\":[\"css\",\"css-extras\",\"coffeescript\",\"erb\",\"javascript\",\"less\",\"markdown\",\"scss\",\"textile\"],\"owner\":\"Golmote\"},\"handlebars\":{\"title\":\"Handlebars\",\"require\":\"markup-templating\",\"alias\":[\"hbs\",\"mustache\"],\"aliasTitles\":{\"mustache\":\"Mustache\"},\"owner\":\"Golmote\"},\"haskell\":{\"title\":\"Haskell\",\"alias\":\"hs\",\"owner\":\"bholst\"},\"haxe\":{\"title\":\"Haxe\",\"require\":\"clike\",\"optional\":\"regex\",\"owner\":\"Golmote\"},\"hcl\":{\"title\":\"HCL\",\"owner\":\"outsideris\"},\"hlsl\":{\"title\":\"HLSL\",\"require\":\"c\",\"owner\":\"RunDevelopment\"},\"hoon\":{\"title\":\"Hoon\",\"owner\":\"matildepark\"},\"http\":{\"title\":\"HTTP\",\"optional\":[\"csp\",\"css\",\"hpkp\",\"hsts\",\"javascript\",\"json\",\"markup\",\"uri\"],\"owner\":\"danielgtaylor\"},\"hpkp\":{\"title\":\"HTTP Public-Key-Pins\",\"owner\":\"ScottHelme\"},\"hsts\":{\"title\":\"HTTP Strict-Transport-Security\",\"owner\":\"ScottHelme\"},\"ichigojam\":{\"title\":\"IchigoJam\",\"owner\":\"BlueCocoa\"},\"icon\":{\"title\":\"Icon\",\"owner\":\"Golmote\"},\"icu-message-format\":{\"title\":\"ICU Message Format\",\"owner\":\"RunDevelopment\"},\"idris\":{\"title\":\"Idris\",\"alias\":\"idr\",\"owner\":\"KeenS\",\"require\":\"haskell\"},\"ignore\":{\"title\":\".ignore\",\"owner\":\"osipxd\",\"alias\":[\"gitignore\",\"hgignore\",\"npmignore\"],\"aliasTitles\":{\"gitignore\":\".gitignore\",\"hgignore\":\".hgignore\",\"npmignore\":\".npmignore\"}},\"inform7\":{\"title\":\"Inform 7\",\"owner\":\"Golmote\"},\"ini\":{\"title\":\"Ini\",\"owner\":\"aviaryan\"},\"io\":{\"title\":\"Io\",\"owner\":\"AlesTsurko\"},\"j\":{\"title\":\"J\",\"owner\":\"Golmote\"},\"java\":{\"title\":\"Java\",\"require\":\"clike\",\"owner\":\"sherblot\"},\"javadoc\":{\"title\":\"JavaDoc\",\"require\":[\"markup\",\"java\",\"javadoclike\"],\"modify\":\"java\",\"optional\":\"scala\",\"owner\":\"RunDevelopment\"},\"javadoclike\":{\"title\":\"JavaDoc-like\",\"modify\":[\"java\",\"javascript\",\"php\"],\"owner\":\"RunDevelopment\"},\"javastacktrace\":{\"title\":\"Java stack trace\",\"owner\":\"RunDevelopment\"},\"jexl\":{\"title\":\"Jexl\",\"owner\":\"czosel\"},\"jolie\":{\"title\":\"Jolie\",\"require\":\"clike\",\"owner\":\"thesave\"},\"jq\":{\"title\":\"JQ\",\"owner\":\"RunDevelopment\"},\"jsdoc\":{\"title\":\"JSDoc\",\"require\":[\"javascript\",\"javadoclike\",\"typescript\"],\"modify\":\"javascript\",\"optional\":[\"actionscript\",\"coffeescript\"],\"owner\":\"RunDevelopment\"},\"js-extras\":{\"title\":\"JS Extras\",\"require\":\"javascript\",\"modify\":\"javascript\",\"optional\":[\"actionscript\",\"coffeescript\",\"flow\",\"n4js\",\"typescript\"],\"owner\":\"RunDevelopment\"},\"json\":{\"title\":\"JSON\",\"alias\":\"webmanifest\",\"aliasTitles\":{\"webmanifest\":\"Web App Manifest\"},\"owner\":\"CupOfTea696\"},\"json5\":{\"title\":\"JSON5\",\"require\":\"json\",\"owner\":\"RunDevelopment\"},\"jsonp\":{\"title\":\"JSONP\",\"require\":\"json\",\"owner\":\"RunDevelopment\"},\"jsstacktrace\":{\"title\":\"JS stack trace\",\"owner\":\"sbrl\"},\"js-templates\":{\"title\":\"JS Templates\",\"require\":\"javascript\",\"modify\":\"javascript\",\"optional\":[\"css\",\"css-extras\",\"graphql\",\"markdown\",\"markup\",\"sql\"],\"owner\":\"RunDevelopment\"},\"julia\":{\"title\":\"Julia\",\"owner\":\"cdagnino\"},\"keepalived\":{\"title\":\"Keepalived Configure\",\"owner\":\"dev-itsheng\"},\"keyman\":{\"title\":\"Keyman\",\"owner\":\"mcdurdin\"},\"kotlin\":{\"title\":\"Kotlin\",\"alias\":[\"kt\",\"kts\"],\"aliasTitles\":{\"kts\":\"Kotlin Script\"},\"require\":\"clike\",\"owner\":\"Golmote\"},\"kumir\":{\"title\":\"KuMir (КуМир)\",\"alias\":\"kum\",\"owner\":\"edukisto\"},\"kusto\":{\"title\":\"Kusto\",\"owner\":\"RunDevelopment\"},\"latex\":{\"title\":\"LaTeX\",\"alias\":[\"tex\",\"context\"],\"aliasTitles\":{\"tex\":\"TeX\",\"context\":\"ConTeXt\"},\"owner\":\"japborst\"},\"latte\":{\"title\":\"Latte\",\"require\":[\"clike\",\"markup-templating\",\"php\"],\"owner\":\"nette\"},\"less\":{\"title\":\"Less\",\"require\":\"css\",\"optional\":\"css-extras\",\"owner\":\"Golmote\"},\"lilypond\":{\"title\":\"LilyPond\",\"require\":\"scheme\",\"alias\":\"ly\",\"owner\":\"RunDevelopment\"},\"liquid\":{\"title\":\"Liquid\",\"require\":\"markup-templating\",\"owner\":\"cinhtau\"},\"lisp\":{\"title\":\"Lisp\",\"alias\":[\"emacs\",\"elisp\",\"emacs-lisp\"],\"owner\":\"JuanCaicedo\"},\"livescript\":{\"title\":\"LiveScript\",\"owner\":\"Golmote\"},\"llvm\":{\"title\":\"LLVM IR\",\"owner\":\"porglezomp\"},\"log\":{\"title\":\"Log file\",\"optional\":\"javastacktrace\",\"owner\":\"RunDevelopment\"},\"lolcode\":{\"title\":\"LOLCODE\",\"owner\":\"Golmote\"},\"lua\":{\"title\":\"Lua\",\"owner\":\"Golmote\"},\"magma\":{\"title\":\"Magma (CAS)\",\"owner\":\"RunDevelopment\"},\"makefile\":{\"title\":\"Makefile\",\"owner\":\"Golmote\"},\"markdown\":{\"title\":\"Markdown\",\"require\":\"markup\",\"optional\":\"yaml\",\"alias\":\"md\",\"owner\":\"Golmote\"},\"markup-templating\":{\"title\":\"Markup templating\",\"require\":\"markup\",\"owner\":\"Golmote\"},\"mata\":{\"title\":\"Mata\",\"owner\":\"RunDevelopment\"},\"matlab\":{\"title\":\"MATLAB\",\"owner\":\"Golmote\"},\"maxscript\":{\"title\":\"MAXScript\",\"owner\":\"RunDevelopment\"},\"mel\":{\"title\":\"MEL\",\"owner\":\"Golmote\"},\"mermaid\":{\"title\":\"Mermaid\",\"owner\":\"RunDevelopment\"},\"metafont\":{\"title\":\"METAFONT\",\"owner\":\"LaeriExNihilo\"},\"mizar\":{\"title\":\"Mizar\",\"owner\":\"Golmote\"},\"mongodb\":{\"title\":\"MongoDB\",\"owner\":\"airs0urce\",\"require\":\"javascript\"},\"monkey\":{\"title\":\"Monkey\",\"owner\":\"Golmote\"},\"moonscript\":{\"title\":\"MoonScript\",\"alias\":\"moon\",\"owner\":\"RunDevelopment\"},\"n1ql\":{\"title\":\"N1QL\",\"owner\":\"TMWilds\"},\"n4js\":{\"title\":\"N4JS\",\"require\":\"javascript\",\"optional\":\"jsdoc\",\"alias\":\"n4jsd\",\"owner\":\"bsmith-n4\"},\"nand2tetris-hdl\":{\"title\":\"Nand To Tetris HDL\",\"owner\":\"stephanmax\"},\"naniscript\":{\"title\":\"Naninovel Script\",\"owner\":\"Elringus\",\"alias\":\"nani\"},\"nasm\":{\"title\":\"NASM\",\"owner\":\"rbmj\"},\"neon\":{\"title\":\"NEON\",\"owner\":\"nette\"},\"nevod\":{\"title\":\"Nevod\",\"owner\":\"nezaboodka\"},\"nginx\":{\"title\":\"nginx\",\"owner\":\"volado\"},\"nim\":{\"title\":\"Nim\",\"owner\":\"Golmote\"},\"nix\":{\"title\":\"Nix\",\"owner\":\"Golmote\"},\"nsis\":{\"title\":\"NSIS\",\"owner\":\"idleberg\"},\"objectivec\":{\"title\":\"Objective-C\",\"require\":\"c\",\"alias\":\"objc\",\"owner\":\"uranusjr\"},\"ocaml\":{\"title\":\"OCaml\",\"owner\":\"Golmote\"},\"odin\":{\"title\":\"Odin\",\"owner\":\"edukisto\"},\"opencl\":{\"title\":\"OpenCL\",\"require\":\"c\",\"modify\":[\"c\",\"cpp\"],\"owner\":\"Milania1\"},\"openqasm\":{\"title\":\"OpenQasm\",\"alias\":\"qasm\",\"owner\":\"RunDevelopment\"},\"oz\":{\"title\":\"Oz\",\"owner\":\"Golmote\"},\"parigp\":{\"title\":\"PARI/GP\",\"owner\":\"Golmote\"},\"parser\":{\"title\":\"Parser\",\"require\":\"markup\",\"owner\":\"Golmote\"},\"pascal\":{\"title\":\"Pascal\",\"alias\":\"objectpascal\",\"aliasTitles\":{\"objectpascal\":\"Object Pascal\"},\"owner\":\"Golmote\"},\"pascaligo\":{\"title\":\"Pascaligo\",\"owner\":\"DefinitelyNotAGoat\"},\"psl\":{\"title\":\"PATROL Scripting Language\",\"owner\":\"bertysentry\"},\"pcaxis\":{\"title\":\"PC-Axis\",\"alias\":\"px\",\"owner\":\"RunDevelopment\"},\"peoplecode\":{\"title\":\"PeopleCode\",\"alias\":\"pcode\",\"owner\":\"RunDevelopment\"},\"perl\":{\"title\":\"Perl\",\"owner\":\"Golmote\"},\"php\":{\"title\":\"PHP\",\"require\":\"markup-templating\",\"owner\":\"milesj\"},\"phpdoc\":{\"title\":\"PHPDoc\",\"require\":[\"php\",\"javadoclike\"],\"modify\":\"php\",\"owner\":\"RunDevelopment\"},\"php-extras\":{\"title\":\"PHP Extras\",\"require\":\"php\",\"modify\":\"php\",\"owner\":\"milesj\"},\"plant-uml\":{\"title\":\"PlantUML\",\"alias\":\"plantuml\",\"owner\":\"RunDevelopment\"},\"plsql\":{\"title\":\"PL/SQL\",\"require\":\"sql\",\"owner\":\"Golmote\"},\"powerquery\":{\"title\":\"PowerQuery\",\"alias\":[\"pq\",\"mscript\"],\"owner\":\"peterbud\"},\"powershell\":{\"title\":\"PowerShell\",\"owner\":\"nauzilus\"},\"processing\":{\"title\":\"Processing\",\"require\":\"clike\",\"owner\":\"Golmote\"},\"prolog\":{\"title\":\"Prolog\",\"owner\":\"Golmote\"},\"promql\":{\"title\":\"PromQL\",\"owner\":\"arendjr\"},\"properties\":{\"title\":\".properties\",\"owner\":\"Golmote\"},\"protobuf\":{\"title\":\"Protocol Buffers\",\"require\":\"clike\",\"owner\":\"just-boris\"},\"pug\":{\"title\":\"Pug\",\"require\":[\"markup\",\"javascript\"],\"optional\":[\"coffeescript\",\"ejs\",\"handlebars\",\"less\",\"livescript\",\"markdown\",\"scss\",\"stylus\",\"twig\"],\"owner\":\"Golmote\"},\"puppet\":{\"title\":\"Puppet\",\"owner\":\"Golmote\"},\"pure\":{\"title\":\"Pure\",\"optional\":[\"c\",\"cpp\",\"fortran\"],\"owner\":\"Golmote\"},\"purebasic\":{\"title\":\"PureBasic\",\"require\":\"clike\",\"alias\":\"pbfasm\",\"owner\":\"HeX0R101\"},\"purescript\":{\"title\":\"PureScript\",\"require\":\"haskell\",\"alias\":\"purs\",\"owner\":\"sriharshachilakapati\"},\"python\":{\"title\":\"Python\",\"alias\":\"py\",\"owner\":\"multipetros\"},\"qsharp\":{\"title\":\"Q#\",\"require\":\"clike\",\"alias\":\"qs\",\"owner\":\"fedonman\"},\"q\":{\"title\":\"Q (kdb+ database)\",\"owner\":\"Golmote\"},\"qml\":{\"title\":\"QML\",\"require\":\"javascript\",\"owner\":\"RunDevelopment\"},\"qore\":{\"title\":\"Qore\",\"require\":\"clike\",\"owner\":\"temnroegg\"},\"r\":{\"title\":\"R\",\"owner\":\"Golmote\"},\"racket\":{\"title\":\"Racket\",\"require\":\"scheme\",\"alias\":\"rkt\",\"owner\":\"RunDevelopment\"},\"cshtml\":{\"title\":\"Razor C#\",\"alias\":\"razor\",\"require\":[\"markup\",\"csharp\"],\"optional\":[\"css\",\"css-extras\",\"javascript\",\"js-extras\"],\"owner\":\"RunDevelopment\"},\"jsx\":{\"title\":\"React JSX\",\"require\":[\"markup\",\"javascript\"],\"optional\":[\"jsdoc\",\"js-extras\",\"js-templates\"],\"owner\":\"vkbansal\"},\"tsx\":{\"title\":\"React TSX\",\"require\":[\"jsx\",\"typescript\"]},\"reason\":{\"title\":\"Reason\",\"require\":\"clike\",\"owner\":\"Golmote\"},\"regex\":{\"title\":\"Regex\",\"owner\":\"RunDevelopment\"},\"rego\":{\"title\":\"Rego\",\"owner\":\"JordanSh\"},\"renpy\":{\"title\":\"Ren'py\",\"alias\":\"rpy\",\"owner\":\"HyuchiaDiego\"},\"rescript\":{\"title\":\"ReScript\",\"alias\":\"res\",\"owner\":\"vmarcosp\"},\"rest\":{\"title\":\"reST (reStructuredText)\",\"owner\":\"Golmote\"},\"rip\":{\"title\":\"Rip\",\"owner\":\"ravinggenius\"},\"roboconf\":{\"title\":\"Roboconf\",\"owner\":\"Golmote\"},\"robotframework\":{\"title\":\"Robot Framework\",\"alias\":\"robot\",\"owner\":\"RunDevelopment\"},\"ruby\":{\"title\":\"Ruby\",\"require\":\"clike\",\"alias\":\"rb\",\"owner\":\"samflores\"},\"rust\":{\"title\":\"Rust\",\"owner\":\"Golmote\"},\"sas\":{\"title\":\"SAS\",\"optional\":[\"groovy\",\"lua\",\"sql\"],\"owner\":\"Golmote\"},\"sass\":{\"title\":\"Sass (Sass)\",\"require\":\"css\",\"optional\":\"css-extras\",\"owner\":\"Golmote\"},\"scss\":{\"title\":\"Sass (SCSS)\",\"require\":\"css\",\"optional\":\"css-extras\",\"owner\":\"MoOx\"},\"scala\":{\"title\":\"Scala\",\"require\":\"java\",\"owner\":\"jozic\"},\"scheme\":{\"title\":\"Scheme\",\"owner\":\"bacchus123\"},\"shell-session\":{\"title\":\"Shell session\",\"require\":\"bash\",\"alias\":[\"sh-session\",\"shellsession\"],\"owner\":\"RunDevelopment\"},\"smali\":{\"title\":\"Smali\",\"owner\":\"RunDevelopment\"},\"smalltalk\":{\"title\":\"Smalltalk\",\"owner\":\"Golmote\"},\"smarty\":{\"title\":\"Smarty\",\"require\":\"markup-templating\",\"optional\":\"php\",\"owner\":\"Golmote\"},\"sml\":{\"title\":\"SML\",\"alias\":\"smlnj\",\"aliasTitles\":{\"smlnj\":\"SML/NJ\"},\"owner\":\"RunDevelopment\"},\"solidity\":{\"title\":\"Solidity (Ethereum)\",\"alias\":\"sol\",\"require\":\"clike\",\"owner\":\"glachaud\"},\"solution-file\":{\"title\":\"Solution file\",\"alias\":\"sln\",\"owner\":\"RunDevelopment\"},\"soy\":{\"title\":\"Soy (Closure Template)\",\"require\":\"markup-templating\",\"owner\":\"Golmote\"},\"sparql\":{\"title\":\"SPARQL\",\"require\":\"turtle\",\"owner\":\"Triply-Dev\",\"alias\":\"rq\"},\"splunk-spl\":{\"title\":\"Splunk SPL\",\"owner\":\"RunDevelopment\"},\"sqf\":{\"title\":\"SQF: Status Quo Function (Arma 3)\",\"require\":\"clike\",\"owner\":\"RunDevelopment\"},\"sql\":{\"title\":\"SQL\",\"owner\":\"multipetros\"},\"squirrel\":{\"title\":\"Squirrel\",\"require\":\"clike\",\"owner\":\"RunDevelopment\"},\"stan\":{\"title\":\"Stan\",\"owner\":\"RunDevelopment\"},\"stata\":{\"title\":\"Stata Ado\",\"require\":[\"mata\",\"java\",\"python\"],\"owner\":\"RunDevelopment\"},\"iecst\":{\"title\":\"Structured Text (IEC 61131-3)\",\"owner\":\"serhioromano\"},\"stylus\":{\"title\":\"Stylus\",\"owner\":\"vkbansal\"},\"supercollider\":{\"title\":\"SuperCollider\",\"alias\":\"sclang\",\"owner\":\"RunDevelopment\"},\"swift\":{\"title\":\"Swift\",\"owner\":\"chrischares\"},\"systemd\":{\"title\":\"Systemd configuration file\",\"owner\":\"RunDevelopment\"},\"t4-templating\":{\"title\":\"T4 templating\",\"owner\":\"RunDevelopment\"},\"t4-cs\":{\"title\":\"T4 Text Templates (C#)\",\"require\":[\"t4-templating\",\"csharp\"],\"alias\":\"t4\",\"owner\":\"RunDevelopment\"},\"t4-vb\":{\"title\":\"T4 Text Templates (VB)\",\"require\":[\"t4-templating\",\"vbnet\"],\"owner\":\"RunDevelopment\"},\"tap\":{\"title\":\"TAP\",\"owner\":\"isaacs\",\"require\":\"yaml\"},\"tcl\":{\"title\":\"Tcl\",\"owner\":\"PeterChaplin\"},\"tt2\":{\"title\":\"Template Toolkit 2\",\"require\":[\"clike\",\"markup-templating\"],\"owner\":\"gflohr\"},\"textile\":{\"title\":\"Textile\",\"require\":\"markup\",\"optional\":\"css\",\"owner\":\"Golmote\"},\"toml\":{\"title\":\"TOML\",\"owner\":\"RunDevelopment\"},\"tremor\":{\"title\":\"Tremor\",\"alias\":[\"trickle\",\"troy\"],\"owner\":\"darach\",\"aliasTitles\":{\"trickle\":\"trickle\",\"troy\":\"troy\"}},\"turtle\":{\"title\":\"Turtle\",\"alias\":\"trig\",\"aliasTitles\":{\"trig\":\"TriG\"},\"owner\":\"jakubklimek\"},\"twig\":{\"title\":\"Twig\",\"require\":\"markup-templating\",\"owner\":\"brandonkelly\"},\"typescript\":{\"title\":\"TypeScript\",\"require\":\"javascript\",\"optional\":\"js-templates\",\"alias\":\"ts\",\"owner\":\"vkbansal\"},\"typoscript\":{\"title\":\"TypoScript\",\"alias\":\"tsconfig\",\"aliasTitles\":{\"tsconfig\":\"TSConfig\"},\"owner\":\"dkern\"},\"unrealscript\":{\"title\":\"UnrealScript\",\"alias\":[\"uscript\",\"uc\"],\"owner\":\"RunDevelopment\"},\"uorazor\":{\"title\":\"UO Razor Script\",\"owner\":\"jaseowns\"},\"uri\":{\"title\":\"URI\",\"alias\":\"url\",\"aliasTitles\":{\"url\":\"URL\"},\"owner\":\"RunDevelopment\"},\"v\":{\"title\":\"V\",\"require\":\"clike\",\"owner\":\"taggon\"},\"vala\":{\"title\":\"Vala\",\"require\":\"clike\",\"optional\":\"regex\",\"owner\":\"TemplarVolk\"},\"vbnet\":{\"title\":\"VB.Net\",\"require\":\"basic\",\"owner\":\"Bigsby\"},\"velocity\":{\"title\":\"Velocity\",\"require\":\"markup\",\"owner\":\"Golmote\"},\"verilog\":{\"title\":\"Verilog\",\"owner\":\"a-rey\"},\"vhdl\":{\"title\":\"VHDL\",\"owner\":\"a-rey\"},\"vim\":{\"title\":\"vim\",\"owner\":\"westonganger\"},\"visual-basic\":{\"title\":\"Visual Basic\",\"alias\":[\"vb\",\"vba\"],\"aliasTitles\":{\"vba\":\"VBA\"},\"owner\":\"Golmote\"},\"warpscript\":{\"title\":\"WarpScript\",\"owner\":\"RunDevelopment\"},\"wasm\":{\"title\":\"WebAssembly\",\"owner\":\"Golmote\"},\"web-idl\":{\"title\":\"Web IDL\",\"alias\":\"webidl\",\"owner\":\"RunDevelopment\"},\"wgsl\":{\"title\":\"WGSL\",\"owner\":\"Dr4gonthree\"},\"wiki\":{\"title\":\"Wiki markup\",\"require\":\"markup\",\"owner\":\"Golmote\"},\"wolfram\":{\"title\":\"Wolfram language\",\"alias\":[\"mathematica\",\"nb\",\"wl\"],\"aliasTitles\":{\"mathematica\":\"Mathematica\",\"nb\":\"Mathematica Notebook\"},\"owner\":\"msollami\"},\"wren\":{\"title\":\"Wren\",\"owner\":\"clsource\"},\"xeora\":{\"title\":\"Xeora\",\"require\":\"markup\",\"alias\":\"xeoracube\",\"aliasTitles\":{\"xeoracube\":\"XeoraCube\"},\"owner\":\"freakmaxi\"},\"xml-doc\":{\"title\":\"XML doc (.net)\",\"require\":\"markup\",\"modify\":[\"csharp\",\"fsharp\",\"vbnet\"],\"owner\":\"RunDevelopment\"},\"xojo\":{\"title\":\"Xojo (REALbasic)\",\"owner\":\"Golmote\"},\"xquery\":{\"title\":\"XQuery\",\"require\":\"markup\",\"owner\":\"Golmote\"},\"yaml\":{\"title\":\"YAML\",\"alias\":\"yml\",\"owner\":\"hason\"},\"yang\":{\"title\":\"YANG\",\"owner\":\"RunDevelopment\"},\"zig\":{\"title\":\"Zig\",\"owner\":\"RunDevelopment\"}},\"plugins\":{\"meta\":{\"path\":\"plugins/{id}/prism-{id}\",\"link\":\"plugins/{id}/\"},\"line-highlight\":{\"title\":\"Line Highlight\",\"description\":\"Highlights specific lines and/or line ranges.\"},\"line-numbers\":{\"title\":\"Line Numbers\",\"description\":\"Line number at the beginning of code lines.\",\"owner\":\"kuba-kubula\"},\"show-invisibles\":{\"title\":\"Show Invisibles\",\"description\":\"Show hidden characters such as tabs and line breaks.\",\"optional\":[\"autolinker\",\"data-uri-highlight\"]},\"autolinker\":{\"title\":\"Autolinker\",\"description\":\"Converts URLs and emails in code to clickable links. Parses Markdown links in comments.\"},\"wpd\":{\"title\":\"WebPlatform Docs\",\"description\":\"Makes tokens link to <a href=\\\"https://webplatform.github.io/docs/\\\">WebPlatform.org documentation</a>. The links open in a new tab.\"},\"custom-class\":{\"title\":\"Custom Class\",\"description\":\"This plugin allows you to prefix Prism's default classes (<code>.comment</code> can become <code>.namespace--comment</code>) or replace them with your defined ones (like <code>.editor__comment</code>). You can even add new classes.\",\"owner\":\"dvkndn\",\"noCSS\":true},\"file-highlight\":{\"title\":\"File Highlight\",\"description\":\"Fetch external files and highlight them with Prism. Used on the Prism website itself.\",\"noCSS\":true},\"show-language\":{\"title\":\"Show Language\",\"description\":\"Display the highlighted language in code blocks (inline code does not show the label).\",\"owner\":\"nauzilus\",\"noCSS\":true,\"require\":\"toolbar\"},\"jsonp-highlight\":{\"title\":\"JSONP Highlight\",\"description\":\"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).\",\"noCSS\":true,\"owner\":\"nauzilus\"},\"highlight-keywords\":{\"title\":\"Highlight Keywords\",\"description\":\"Adds special CSS classes for each keyword for fine-grained highlighting.\",\"owner\":\"vkbansal\",\"noCSS\":true},\"remove-initial-line-feed\":{\"title\":\"Remove initial line feed\",\"description\":\"Removes the initial line feed in code blocks.\",\"owner\":\"Golmote\",\"noCSS\":true},\"inline-color\":{\"title\":\"Inline color\",\"description\":\"Adds a small inline preview for colors in style sheets.\",\"require\":\"css-extras\",\"owner\":\"RunDevelopment\"},\"previewers\":{\"title\":\"Previewers\",\"description\":\"Previewers for angles, colors, gradients, easing and time.\",\"require\":\"css-extras\",\"owner\":\"Golmote\"},\"autoloader\":{\"title\":\"Autoloader\",\"description\":\"Automatically loads the needed languages to highlight the code blocks.\",\"owner\":\"Golmote\",\"noCSS\":true},\"keep-markup\":{\"title\":\"Keep Markup\",\"description\":\"Prevents custom markup from being dropped out during highlighting.\",\"owner\":\"Golmote\",\"optional\":\"normalize-whitespace\",\"noCSS\":true},\"command-line\":{\"title\":\"Command Line\",\"description\":\"Display a command line with a prompt and, optionally, the output/response from the commands.\",\"owner\":\"chriswells0\"},\"unescaped-markup\":{\"title\":\"Unescaped Markup\",\"description\":\"Write markup without having to escape anything.\"},\"normalize-whitespace\":{\"title\":\"Normalize Whitespace\",\"description\":\"Supports multiple operations to normalize whitespace in code blocks.\",\"owner\":\"zeitgeist87\",\"optional\":\"unescaped-markup\",\"noCSS\":true},\"data-uri-highlight\":{\"title\":\"Data-URI Highlight\",\"description\":\"Highlights data-URI contents.\",\"owner\":\"Golmote\",\"noCSS\":true},\"toolbar\":{\"title\":\"Toolbar\",\"description\":\"Attach a toolbar for plugins to easily register buttons on the top of a code block.\",\"owner\":\"mAAdhaTTah\"},\"copy-to-clipboard\":{\"title\":\"Copy to Clipboard Button\",\"description\":\"Add a button that copies the code block to the clipboard when clicked.\",\"owner\":\"mAAdhaTTah\",\"require\":\"toolbar\",\"noCSS\":true},\"download-button\":{\"title\":\"Download Button\",\"description\":\"A button in the toolbar of a code block adding a convenient way to download a code file.\",\"owner\":\"Golmote\",\"require\":\"toolbar\",\"noCSS\":true},\"match-braces\":{\"title\":\"Match braces\",\"description\":\"Highlights matching braces.\",\"owner\":\"RunDevelopment\"},\"diff-highlight\":{\"title\":\"Diff Highlight\",\"description\":\"Highlights the code inside diff blocks.\",\"owner\":\"RunDevelopment\",\"require\":\"diff\"},\"filter-highlight-all\":{\"title\":\"Filter highlightAll\",\"description\":\"Filters the elements the <code>highlightAll</code> and <code>highlightAllUnder</code> methods actually highlight.\",\"owner\":\"RunDevelopment\",\"noCSS\":true},\"treeview\":{\"title\":\"Treeview\",\"description\":\"A language with special styles to highlight file system tree structures.\",\"owner\":\"Golmote\"}}};\nif (typeof module !== 'undefined' && module.exports) { module.exports = components; }","'use strict';\n\n/**\n * @typedef {Object<string, ComponentCategory>} Components\n * @typedef {Object<string, ComponentEntry | string>} ComponentCategory\n *\n * @typedef ComponentEntry\n * @property {string} [title] The title of the component.\n * @property {string} [owner] The GitHub user name of the owner.\n * @property {boolean} [noCSS=false] Whether the component doesn't have style sheets which should also be loaded.\n * @property {string | string[]} [alias] An optional list of aliases for the id of the component.\n * @property {Object<string, string>} [aliasTitles] An optional map from an alias to its title.\n *\n * Aliases which are not in this map will the get title of the component.\n * @property {string | string[]} [optional]\n * @property {string | string[]} [require]\n * @property {string | string[]} [modify]\n */\n\nvar getLoader = (function () {\n\n\t/**\n\t * A function which does absolutely nothing.\n\t *\n\t * @type {any}\n\t */\n\tvar noop = function () { };\n\n\t/**\n\t * Invokes the given callback for all elements of the given value.\n\t *\n\t * If the given value is an array, the callback will be invokes for all elements. If the given value is `null` or\n\t * `undefined`, the callback will not be invoked. In all other cases, the callback will be invoked with the given\n\t * value as parameter.\n\t *\n\t * @param {null | undefined | T | T[]} value\n\t * @param {(value: T, index: number) => void} callbackFn\n\t * @returns {void}\n\t * @template T\n\t */\n\tfunction forEach(value, callbackFn) {\n\t\tif (Array.isArray(value)) {\n\t\t\tvalue.forEach(callbackFn);\n\t\t} else if (value != null) {\n\t\t\tcallbackFn(value, 0);\n\t\t}\n\t}\n\n\t/**\n\t * Returns a new set for the given string array.\n\t *\n\t * @param {string[]} array\n\t * @returns {StringSet}\n\t *\n\t * @typedef {Object<string, true>} StringSet\n\t */\n\tfunction toSet(array) {\n\t\t/** @type {StringSet} */\n\t\tvar set = {};\n\t\tfor (var i = 0, l = array.length; i < l; i++) {\n\t\t\tset[array[i]] = true;\n\t\t}\n\t\treturn set;\n\t}\n\n\t/**\n\t * Creates a map of every components id to its entry.\n\t *\n\t * @param {Components} components\n\t * @returns {EntryMap}\n\t *\n\t * @typedef {{ readonly [id: string]: Readonly<ComponentEntry> | undefined }} EntryMap\n\t */\n\tfunction createEntryMap(components) {\n\t\t/** @type {Object<string, Readonly<ComponentEntry>>} */\n\t\tvar map = {};\n\n\t\tfor (var categoryName in components) {\n\t\t\tvar category = components[categoryName];\n\t\t\tfor (var id in category) {\n\t\t\t\tif (id != 'meta') {\n\t\t\t\t\t/** @type {ComponentEntry | string} */\n\t\t\t\t\tvar entry = category[id];\n\t\t\t\t\tmap[id] = typeof entry == 'string' ? { title: entry } : entry;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn map;\n\t}\n\n\t/**\n\t * Creates a full dependencies map which includes all types of dependencies and their transitive dependencies.\n\t *\n\t * @param {EntryMap} entryMap\n\t * @returns {DependencyResolver}\n\t *\n\t * @typedef {(id: string) => StringSet} DependencyResolver\n\t */\n\tfunction createDependencyResolver(entryMap) {\n\t\t/** @type {Object<string, StringSet>} */\n\t\tvar map = {};\n\t\tvar _stackArray = [];\n\n\t\t/**\n\t\t * Adds the dependencies of the given component to the dependency map.\n\t\t *\n\t\t * @param {string} id\n\t\t * @param {string[]} stack\n\t\t */\n\t\tfunction addToMap(id, stack) {\n\t\t\tif (id in map) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tstack.push(id);\n\n\t\t\t// check for circular dependencies\n\t\t\tvar firstIndex = stack.indexOf(id);\n\t\t\tif (firstIndex < stack.length - 1) {\n\t\t\t\tthrow new Error('Circular dependency: ' + stack.slice(firstIndex).join(' -> '));\n\t\t\t}\n\n\t\t\t/** @type {StringSet} */\n\t\t\tvar dependencies = {};\n\n\t\t\tvar entry = entryMap[id];\n\t\t\tif (entry) {\n\t\t\t\t/**\n\t\t\t\t * This will add the direct dependency and all of its transitive dependencies to the set of\n\t\t\t\t * dependencies of `entry`.\n\t\t\t\t *\n\t\t\t\t * @param {string} depId\n\t\t\t\t * @returns {void}\n\t\t\t\t */\n\t\t\t\tfunction handleDirectDependency(depId) {\n\t\t\t\t\tif (!(depId in entryMap)) {\n\t\t\t\t\t\tthrow new Error(id + ' depends on an unknown component ' + depId);\n\t\t\t\t\t}\n\t\t\t\t\tif (depId in dependencies) {\n\t\t\t\t\t\t// if the given dependency is already in the set of deps, then so are its transitive deps\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\taddToMap(depId, stack);\n\t\t\t\t\tdependencies[depId] = true;\n\t\t\t\t\tfor (var transitiveDepId in map[depId]) {\n\t\t\t\t\t\tdependencies[transitiveDepId] = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tforEach(entry.require, handleDirectDependency);\n\t\t\t\tforEach(entry.optional, handleDirectDependency);\n\t\t\t\tforEach(entry.modify, handleDirectDependency);\n\t\t\t}\n\n\t\t\tmap[id] = dependencies;\n\n\t\t\tstack.pop();\n\t\t}\n\n\t\treturn function (id) {\n\t\t\tvar deps = map[id];\n\t\t\tif (!deps) {\n\t\t\t\taddToMap(id, _stackArray);\n\t\t\t\tdeps = map[id];\n\t\t\t}\n\t\t\treturn deps;\n\t\t};\n\t}\n\n\t/**\n\t * Returns a function which resolves the aliases of its given id of alias.\n\t *\n\t * @param {EntryMap} entryMap\n\t * @returns {(idOrAlias: string) => string}\n\t */\n\tfunction createAliasResolver(entryMap) {\n\t\t/** @type {Object<string, string> | undefined} */\n\t\tvar map;\n\n\t\treturn function (idOrAlias) {\n\t\t\tif (idOrAlias in entryMap) {\n\t\t\t\treturn idOrAlias;\n\t\t\t} else {\n\t\t\t\t// only create the alias map if necessary\n\t\t\t\tif (!map) {\n\t\t\t\t\tmap = {};\n\n\t\t\t\t\tfor (var id in entryMap) {\n\t\t\t\t\t\tvar entry = entryMap[id];\n\t\t\t\t\t\tforEach(entry && entry.alias, function (alias) {\n\t\t\t\t\t\t\tif (alias in map) {\n\t\t\t\t\t\t\t\tthrow new Error(alias + ' cannot be alias for both ' + id + ' and ' + map[alias]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (alias in entryMap) {\n\t\t\t\t\t\t\t\tthrow new Error(alias + ' cannot be alias of ' + id + ' because it is a component.');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tmap[alias] = id;\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn map[idOrAlias] || idOrAlias;\n\t\t\t}\n\t\t};\n\t}\n\n\t/**\n\t * @typedef LoadChainer\n\t * @property {(before: T, after: () => T) => T} series\n\t * @property {(values: T[]) => T} parallel\n\t * @template T\n\t */\n\n\t/**\n\t * Creates an implicit DAG from the given components and dependencies and call the given `loadComponent` for each\n\t * component in topological order.\n\t *\n\t * @param {DependencyResolver} dependencyResolver\n\t * @param {StringSet} ids\n\t * @param {(id: string) => T} loadComponent\n\t * @param {LoadChainer<T>} [chainer]\n\t * @returns {T}\n\t * @template T\n\t */\n\tfunction loadComponentsInOrder(dependencyResolver, ids, loadComponent, chainer) {\n\t\tvar series = chainer ? chainer.series : undefined;\n\t\tvar parallel = chainer ? chainer.parallel : noop;\n\n\t\t/** @type {Object<string, T>} */\n\t\tvar cache = {};\n\n\t\t/**\n\t\t * A set of ids of nodes which are not depended upon by any other node in the graph.\n\t\t *\n\t\t * @type {StringSet}\n\t\t */\n\t\tvar ends = {};\n\n\t\t/**\n\t\t * Loads the given component and its dependencies or returns the cached value.\n\t\t *\n\t\t * @param {string} id\n\t\t * @returns {T}\n\t\t */\n\t\tfunction handleId(id) {\n\t\t\tif (id in cache) {\n\t\t\t\treturn cache[id];\n\t\t\t}\n\n\t\t\t// assume that it's an end\n\t\t\t// if it isn't, it will be removed later\n\t\t\tends[id] = true;\n\n\t\t\t// all dependencies of the component in the given ids\n\t\t\tvar dependsOn = [];\n\t\t\tfor (var depId in dependencyResolver(id)) {\n\t\t\t\tif (depId in ids) {\n\t\t\t\t\tdependsOn.push(depId);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * The value to be returned.\n\t\t\t *\n\t\t\t * @type {T}\n\t\t\t */\n\t\t\tvar value;\n\n\t\t\tif (dependsOn.length === 0) {\n\t\t\t\tvalue = loadComponent(id);\n\t\t\t} else {\n\t\t\t\tvar depsValue = parallel(dependsOn.map(function (depId) {\n\t\t\t\t\tvar value = handleId(depId);\n\t\t\t\t\t// none of the dependencies can be ends\n\t\t\t\t\tdelete ends[depId];\n\t\t\t\t\treturn value;\n\t\t\t\t}));\n\t\t\t\tif (series) {\n\t\t\t\t\t// the chainer will be responsibly for calling the function calling loadComponent\n\t\t\t\t\tvalue = series(depsValue, function () { return loadComponent(id); });\n\t\t\t\t} else {\n\t\t\t\t\t// we don't have a chainer, so we call loadComponent ourselves\n\t\t\t\t\tloadComponent(id);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// cache and return\n\t\t\treturn cache[id] = value;\n\t\t}\n\n\t\tfor (var id in ids) {\n\t\t\thandleId(id);\n\t\t}\n\n\t\t/** @type {T[]} */\n\t\tvar endValues = [];\n\t\tfor (var endId in ends) {\n\t\t\tendValues.push(cache[endId]);\n\t\t}\n\t\treturn parallel(endValues);\n\t}\n\n\t/**\n\t * Returns whether the given object has any keys.\n\t *\n\t * @param {object} obj\n\t */\n\tfunction hasKeys(obj) {\n\t\tfor (var key in obj) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\t/**\n\t * Returns an object which provides methods to get the ids of the components which have to be loaded (`getIds`) and\n\t * a way to efficiently load them in synchronously and asynchronous contexts (`load`).\n\t *\n\t * The set of ids to be loaded is a superset of `load`. If some of these ids are in `loaded`, the corresponding\n\t * components will have to reloaded.\n\t *\n\t * The ids in `load` and `loaded` may be in any order and can contain duplicates.\n\t *\n\t * @param {Components} components\n\t * @param {string[]} load\n\t * @param {string[]} [loaded=[]] A list of already loaded components.\n\t *\n\t * If a component is in this list, then all of its requirements will also be assumed to be in the list.\n\t * @returns {Loader}\n\t *\n\t * @typedef Loader\n\t * @property {() => string[]} getIds A function to get all ids of the components to load.\n\t *\n\t * The returned ids will be duplicate-free, alias-free and in load order.\n\t * @property {LoadFunction} load A functional interface to load components.\n\t *\n\t * @typedef {<T> (loadComponent: (id: string) => T, chainer?: LoadChainer<T>) => T} LoadFunction\n\t * A functional interface to load components.\n\t *\n\t * The `loadComponent` function will be called for every component in the order in which they have to be loaded.\n\t *\n\t * The `chainer` is useful for asynchronous loading and its `series` and `parallel` functions can be thought of as\n\t * `Promise#then` and `Promise.all`.\n\t *\n\t * @example\n\t * load(id => { loadComponent(id); }); // returns undefined\n\t *\n\t * await load(\n\t * id => loadComponentAsync(id), // returns a Promise for each id\n\t * {\n\t * series: async (before, after) => {\n\t * await before;\n\t * await after();\n\t * },\n\t * parallel: async (values) => {\n\t * await Promise.all(values);\n\t * }\n\t * }\n\t * );\n\t */\n\tfunction getLoader(components, load, loaded) {\n\t\tvar entryMap = createEntryMap(components);\n\t\tvar resolveAlias = createAliasResolver(entryMap);\n\n\t\tload = load.map(resolveAlias);\n\t\tloaded = (loaded || []).map(resolveAlias);\n\n\t\tvar loadSet = toSet(load);\n\t\tvar loadedSet = toSet(loaded);\n\n\t\t// add requirements\n\n\t\tload.forEach(addRequirements);\n\t\tfunction addRequirements(id) {\n\t\t\tvar entry = entryMap[id];\n\t\t\tforEach(entry && entry.require, function (reqId) {\n\t\t\t\tif (!(reqId in loadedSet)) {\n\t\t\t\t\tloadSet[reqId] = true;\n\t\t\t\t\taddRequirements(reqId);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t// add components to reload\n\n\t\t// A component x in `loaded` has to be reloaded if\n\t\t// 1) a component in `load` modifies x.\n\t\t// 2) x depends on a component in `load`.\n\t\t// The above two condition have to be applied until nothing changes anymore.\n\n\t\tvar dependencyResolver = createDependencyResolver(entryMap);\n\n\t\t/** @type {StringSet} */\n\t\tvar loadAdditions = loadSet;\n\t\t/** @type {StringSet} */\n\t\tvar newIds;\n\t\twhile (hasKeys(loadAdditions)) {\n\t\t\tnewIds = {};\n\n\t\t\t// condition 1)\n\t\t\tfor (var loadId in loadAdditions) {\n\t\t\t\tvar entry = entryMap[loadId];\n\t\t\t\tforEach(entry && entry.modify, function (modId) {\n\t\t\t\t\tif (modId in loadedSet) {\n\t\t\t\t\t\tnewIds[modId] = true;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// condition 2)\n\t\t\tfor (var loadedId in loadedSet) {\n\t\t\t\tif (!(loadedId in loadSet)) {\n\t\t\t\t\tfor (var depId in dependencyResolver(loadedId)) {\n\t\t\t\t\t\tif (depId in loadSet) {\n\t\t\t\t\t\t\tnewIds[loadedId] = true;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tloadAdditions = newIds;\n\t\t\tfor (var newId in loadAdditions) {\n\t\t\t\tloadSet[newId] = true;\n\t\t\t}\n\t\t}\n\n\t\t/** @type {Loader} */\n\t\tvar loader = {\n\t\t\tgetIds: function () {\n\t\t\t\tvar ids = [];\n\t\t\t\tloader.load(function (id) {\n\t\t\t\t\tids.push(id);\n\t\t\t\t});\n\t\t\t\treturn ids;\n\t\t\t},\n\t\t\tload: function (loadComponent, chainer) {\n\t\t\t\treturn loadComponentsInOrder(dependencyResolver, loadSet, loadComponent, chainer);\n\t\t\t}\n\t\t};\n\n\t\treturn loader;\n\t}\n\n\treturn getLoader;\n\n}());\n\nif (typeof module !== 'undefined') {\n\tmodule.exports = getLoader;\n}\n","const components = require('../components.js');\nconst getLoader = require('../dependencies');\n\n\n/**\n * The set of all languages which have been loaded using the below function.\n *\n * @type {Set<string>}\n */\nconst loadedLanguages = new Set();\n\n/**\n * Loads the given languages and adds them to the current Prism instance.\n *\n * If no languages are provided, __all__ Prism languages will be loaded.\n *\n * @param {string|string[]} [languages]\n * @returns {void}\n */\nfunction loadLanguages(languages) {\n\tif (languages === undefined) {\n\t\tlanguages = Object.keys(components.languages).filter(l => l != 'meta');\n\t} else if (!Array.isArray(languages)) {\n\t\tlanguages = [languages];\n\t}\n\n\t// the user might have loaded languages via some other way or used `prism.js` which already includes some\n\t// we don't need to validate the ids because `getLoader` will ignore invalid ones\n\tconst loaded = [...loadedLanguages, ...Object.keys(Prism.languages)];\n\n\tgetLoader(components, languages, loaded).load(lang => {\n\t\tif (!(lang in components.languages)) {\n\t\t\tif (!loadLanguages.silent) {\n\t\t\t\tconsole.warn('Language does not exist: ' + lang);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tconst pathToLanguage = './prism-' + lang;\n\n\t\t// remove from require cache and from Prism\n\t\tdelete require.cache[require.resolve(pathToLanguage)];\n\t\tdelete Prism.languages[lang];\n\n\t\trequire(pathToLanguage);\n\n\t\tloadedLanguages.add(lang);\n\t});\n}\n\n/**\n * Set this to `true` to prevent all warning messages `loadLanguages` logs.\n */\nloadLanguages.silent = false;\n\nmodule.exports = loadLanguages;\n","import { createRequire } from 'module';\nimport PrismCore from 'prismjs';\nimport prismLoadLanguages from 'prismjs/components/index.js';\nimport stripIndent from 'strip-indent';\nimport escapeHTML from './escape_html.js';\n\ncreateRequire(import.meta.url);\nlet Prism;\nconst prismAlias = Object.entries(PrismCore.languages).reduce(\n (acc, [key, value]) => {\n if (value && typeof value === \"object\" && \"alias\" in value) {\n const alias = value.alias;\n if (alias) {\n if (Array.isArray(alias)) {\n alias.forEach((a) => acc[a] = key);\n } else if (typeof alias === \"string\") {\n acc[alias] = key;\n }\n }\n }\n return acc;\n },\n {}\n);\nconst prismSupportedLanguages = Object.keys(PrismCore.languages).concat(Object.keys(prismAlias));\nfunction prismHighlight(code, language) {\n if (!Prism) Prism = PrismCore;\n if (!Prism.languages[language] && prismSupportedLanguages.includes(language)) prismLoadLanguages(language);\n if (Prism.languages[language]) {\n return Prism.highlight(code, Prism.languages[language], language);\n }\n return escapeHTML(code);\n}\nfunction lineNumberUtil(code) {\n const matched = code.match(/\\n(?!$)/g);\n const num = matched ? matched.length + 1 : 1;\n const lines = new Array(num + 1).join(\"<span></span>\");\n return `<span aria-hidden=\"true\" class=\"line-numbers-rows\">${lines}</span>`;\n}\nfunction replaceTabs(str, tab) {\n return str.replace(/^\\t+/gm, (match) => tab.repeat(match.length));\n}\nfunction PrismUtil(str, options = {}) {\n if (typeof str !== \"string\") throw new TypeError(\"str must be a string!\");\n const {\n lineNumber = true,\n lang = \"none\",\n tab,\n mark,\n firstLine,\n isPreprocess = true,\n caption,\n stripIndent: enableStripIndent = true\n } = options;\n if (enableStripIndent) {\n str = stripIndent(str);\n }\n let language = lang === \"plaintext\" || lang === \"none\" ? \"none\" : lang;\n const manualAlias = {\n js: \"javascript\",\n ts: \"typescript\",\n py: \"python\",\n rb: \"ruby\",\n sh: \"bash\",\n html: \"markup\",\n md: \"markdown\",\n csharp: \"cs\",\n shell: \"bash\",\n yml: \"yaml\",\n vue: \"markup\",\n plaintext: \"none\",\n none: \"none\"\n };\n if (manualAlias[language]) language = manualAlias[language];\n if (prismAlias[language]) language = prismAlias[language];\n if (language !== \"none\" && PrismCore && !PrismCore.languages[language]) {\n try {\n prismLoadLanguages(language);\n } catch {\n }\n }\n const preTagClassArr = [];\n const preTagAttrArr = [];\n let preTagAttr = \"\";\n if (lineNumber) preTagClassArr.push(\"line-numbers\");\n preTagClassArr.push(`language-${language}`);\n if (language !== \"none\") preTagAttrArr.push(`data-language=\"${language}\"`);\n if (!isPreprocess) {\n if (lineNumber && firstLine) preTagAttrArr.push(`data-start=\"${firstLine}\"`);\n if (mark) preTagAttrArr.push(`data-line=\"${mark}\"`);\n if (firstLine && mark) preTagAttrArr.push(`data-line-offset=\"${firstLine - 1}\"`);\n }\n if (preTagAttrArr.length) preTagAttr = \" \" + preTagAttrArr.join(\" \");\n if (tab) str = replaceTabs(str, tab);\n const codeCaption = caption ? `<div class=\"caption\">${caption}</div>` : \"\";\n const startTag = `<pre class=\"${preTagClassArr.join(\" \")}\"${preTagAttr}>${codeCaption}<code class=\"language-${language}\">`;\n const endTag = \"</code></pre>\";\n let parsedCode = \"\";\n if (language !== \"none\" && isPreprocess && PrismCore.languages[language]) {\n parsedCode = prismHighlight(str, language);\n } else if (language !== \"none\" && isPreprocess && Prism && Prism.languages[language]) {\n parsedCode = prismHighlight(str, language);\n } else if (language !== \"none\" && isPreprocess) {\n try {\n prismLoadLanguages(language);\n if (PrismCore.languages[language]) {\n parsedCode = prismHighlight(str, language);\n } else {\n parsedCode = escapeHTML(str);\n }\n } catch {\n parsedCode = escapeHTML(str);\n }\n } else {\n parsedCode = escapeHTML(str);\n }\n if (lineNumber && isPreprocess) {\n parsedCode += lineNumberUtil(parsedCode);\n }\n return startTag + parsedCode + endTag;\n}\nvar prism_default = PrismUtil;\nif (typeof module !== \"undefined\" && typeof module.exports === \"object\" && module.exports !== null) {\n module.exports = PrismUtil;\n module.exports.default = PrismUtil;\n}\n\nexport { prism_default as default };\n//# sourceMappingURL=prism.js.map\n//# sourceMappingURL=prism.js.map","import { createRequire } from 'module';\nimport encodeURL from './encode_url.js';\nimport Cache from './cache.js';\n\ncreateRequire(import.meta.url);\nconst cache = new Cache();\nfunction relativeUrlHelper(from = \"\", to = \"\") {\n return cache.apply(`${from}-${to}`, () => {\n const fromParts = from.split(\"/\");\n const toParts = to.split(\"/\");\n const length = Math.min(fromParts.length, toParts.length);\n let i = 0;\n for (; i < length; i++) {\n if (fromParts[i] !== toParts[i]) break;\n }\n let out = toParts.slice(i);\n for (let j = fromParts.length - i - 1; j > 0; j--) {\n out.unshift(\"..\");\n }\n const outLength = out.length;\n if (outLength > 1 && !out[outLength - 1] && !out[outLength - 2]) {\n out = out.slice(0, outLength - 2).concat(\"index.html\");\n }\n return encodeURL(out.join(\"/\").replace(/\\/{2,}/g, \"/\"));\n });\n}\nvar relative_url_default = relativeUrlHelper;\nif (typeof module !== \"undefined\" && typeof module.exports === \"object\" && module.exports !== null) {\n module.exports = relativeUrlHelper;\n module.exports.default = relativeUrlHelper;\n}\n\nexport { relative_url_default as default, relativeUrlHelper };\n//# sourceMappingURL=relative_url.js.map\n//# sourceMappingURL=relative_url.js.map","import { createRequire } from 'module';\nimport escapeDiacritic from './escape_diacritic.js';\nimport escapeRegExp from './escape_regexp.js';\n\ncreateRequire(import.meta.url);\nconst rControl = /[\\u0000-\\u001f]/g;\nconst rSpecial = /[\\s~`!@#$%^&*()\\-_+=[\\]{}|\\\\;:\"'<>,.?/]+/g;\nfunction slugize(str, options = {}) {\n if (typeof str !== \"string\") throw new TypeError(\"str must be a string!\");\n const separator = options.separator || \"-\";\n const escapedSep = escapeRegExp(separator);\n const result = escapeDiacritic(str).replace(rControl, \"\").replace(rSpecial, separator).replace(new RegExp(`${escapedSep}{2,}`, \"g\"), separator).replace(new RegExp(`^${escapedSep}+|${escapedSep}+$`, \"g\"), \"\");\n switch (options.transform) {\n case 1:\n return result.toLowerCase();\n case 2:\n return result.toUpperCase();\n default:\n return result;\n }\n}\nvar slugize_default = slugize;\nif (typeof module !== \"undefined\" && typeof module.exports === \"object\" && module.exports !== null) {\n module.exports = slugize;\n module.exports.default = slugize;\n}\n\nexport { slugize_default as default, slugize };\n//# sourceMappingURL=slugize.js.map\n//# sourceMappingURL=slugize.js.map","import { createRequire } from 'module';\nimport spawn from 'cross-spawn';\nimport CacheStream from './cache_stream.js';\n\ncreateRequire(import.meta.url);\nclass StatusError extends Error {\n code;\n}\nfunction promiseSpawn(command, args = [], options = {}) {\n if (!command) throw new TypeError(\"command is required!\");\n if (typeof args === \"string\") args = [args];\n if (!Array.isArray(args)) {\n options = args;\n args = [];\n }\n return new Promise((resolve, reject) => {\n const task = spawn(command, args, options);\n const verbose = options.verbose;\n const { encoding = \"utf8\" } = options;\n const stdoutCache = new CacheStream();\n const stderrCache = new CacheStream();\n if (task.stdout) {\n const stdout = task.stdout.pipe(stdoutCache);\n if (verbose) stdout.pipe(process.stdout);\n }\n if (task.stderr) {\n const stderr = task.stderr.pipe(stderrCache);\n if (verbose) stderr.pipe(process.stderr);\n }\n task.on(\"close\", (code) => {\n if (code) {\n const e = new StatusError(getCache(stderrCache, encoding));\n e.code = code;\n return reject(e);\n }\n resolve(getCache(stdoutCache, encoding));\n });\n task.on(\"error\", reject);\n if (!task.stdout && !task.stderr) {\n task.on(\"exit\", (code) => {\n if (code) {\n const e = new StatusError(\"Spawn failed\");\n e.code = code;\n return reject(e);\n }\n resolve();\n });\n }\n });\n}\nfunction getCache(stream, encoding) {\n const buf = stream.getCache();\n stream.destroy();\n if (!encoding) return buf;\n return buf.toString(encoding);\n}\nvar spawn_default = promiseSpawn;\nif (typeof module !== \"undefined\" && typeof module.exports === \"object\" && module.exports !== null) {\n module.exports = promiseSpawn;\n module.exports.default = promiseSpawn;\n}\n\nexport { spawn_default as default, promiseSpawn };\n//# sourceMappingURL=spawn.js.map\n//# sourceMappingURL=spawn.js.map","import { createRequire } from 'module';\n\ncreateRequire(import.meta.url);\nconst STATE_PLAINTEXT = 0;\nconst STATE_HTML = 1;\nconst STATE_COMMENT = 2;\nconst CHAR_LT = 60;\nconst CHAR_GT = 62;\nconst CHAR_QUOTE = 34;\nconst CHAR_APOS = 39;\nconst CHAR_DASH = 45;\nconst CHAR_SPACE = 32;\nconst CHAR_NEWLINE = 10;\nconst CHAR_EXCLAIM = 33;\nfunction striptags(html = \"\") {\n if (typeof html !== \"string\") {\n return \"\";\n }\n let state = STATE_PLAINTEXT;\n let depth = 0;\n let in_quote_char = 0;\n let output = \"\";\n let tag_start = -1;\n let plain_text_start = 0;\n const { length } = html;\n for (let idx = 0; idx < length; idx++) {\n const charCode = html.charCodeAt(idx);\n if (state === STATE_PLAINTEXT) {\n if (charCode === CHAR_LT) {\n output += html.slice(plain_text_start, idx);\n state = STATE_HTML;\n tag_start = idx;\n }\n } else if (state === STATE_HTML) {\n if (charCode === CHAR_LT) {\n if (!in_quote_char) depth++;\n } else if (charCode === CHAR_GT) {\n if (!in_quote_char) {\n if (depth) {\n depth--;\n } else {\n in_quote_char = 0;\n state = STATE_PLAINTEXT;\n tag_start = -1;\n plain_text_start = idx + 1;\n }\n }\n } else if (charCode === CHAR_QUOTE || charCode === CHAR_APOS) {\n if (charCode === in_quote_char) {\n in_quote_char = 0;\n } else {\n in_quote_char = in_quote_char || charCode;\n }\n } else if (charCode === CHAR_DASH) {\n if (idx - tag_start === 3 && html.charCodeAt(tag_start + 1) === CHAR_EXCLAIM && html.charCodeAt(tag_start + 2) === CHAR_DASH) {\n state = STATE_COMMENT;\n }\n } else if (charCode === CHAR_SPACE || charCode === CHAR_NEWLINE) {\n if (idx - tag_start === 1) {\n state = STATE_PLAINTEXT;\n output += \"< \";\n tag_start = -1;\n plain_text_start = idx + 1;\n }\n }\n } else if (state === STATE_COMMENT) {\n if (charCode === CHAR_GT) {\n if (idx >= 2 && html.charCodeAt(idx - 1) === CHAR_DASH && html.charCodeAt(idx - 2) === CHAR_DASH) {\n state = STATE_PLAINTEXT;\n plain_text_start = idx + 1;\n }\n tag_start = -1;\n }\n }\n }\n if (state === STATE_PLAINTEXT && plain_text_start < length) {\n output += html.slice(plain_text_start);\n }\n return output;\n}\nvar strip_html_default = striptags;\nif (typeof module !== \"undefined\" && typeof module.exports === \"object\" && module.exports !== null) {\n module.exports = striptags;\n module.exports.default = striptags;\n}\n\nexport { strip_html_default as default };\n//# sourceMappingURL=strip_html.js.map\n//# sourceMappingURL=strip_html.js.map","import { createRequire } from 'module';\nimport stripIndent from 'strip-indent';\n\ncreateRequire(import.meta.url);\nvar strip_indent_default = stripIndent;\nif (typeof module !== \"undefined\" && typeof module.exports === \"object\" && module.exports !== null) {\n module.exports = stripIndent;\n module.exports.default = stripIndent;\n}\n\nexport { strip_indent_default as default };\n//# sourceMappingURL=strip_indent.js.map\n//# sourceMappingURL=strip_indent.js.map","// Adapted from https://github.com/mathiasbynens/he/blob/36afe179392226cf1b6ccdb16ebbb7a5a844d93a/src/he.js#L106-L134\nvar _a;\nconst decodeMap = new Map([\n [0, 65533],\n // C1 Unicode control character reference replacements\n [128, 8364],\n [130, 8218],\n [131, 402],\n [132, 8222],\n [133, 8230],\n [134, 8224],\n [135, 8225],\n [136, 710],\n [137, 8240],\n [138, 352],\n [139, 8249],\n [140, 338],\n [142, 381],\n [145, 8216],\n [146, 8217],\n [147, 8220],\n [148, 8221],\n [149, 8226],\n [150, 8211],\n [151, 8212],\n [152, 732],\n [153, 8482],\n [154, 353],\n [155, 8250],\n [156, 339],\n [158, 382],\n [159, 376],\n]);\n/**\n * Polyfill for `String.fromCodePoint`. It is used to create a string from a Unicode code point.\n */\nexport const fromCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, n/no-unsupported-features/es-builtins\n(_a = String.fromCodePoint) !== null && _a !== void 0 ? _a : ((codePoint) => {\n let output = \"\";\n if (codePoint > 65535) {\n codePoint -= 65536;\n output += String.fromCharCode(((codePoint >>> 10) & 1023) | 55296);\n codePoint = 56320 | (codePoint & 1023);\n }\n output += String.fromCharCode(codePoint);\n return output;\n});\n/**\n * Replace the given code point with a replacement character if it is a\n * surrogate or is outside the valid range. Otherwise return the code\n * point unchanged.\n */\nexport function replaceCodePoint(codePoint) {\n var _a;\n if ((codePoint >= 55296 && codePoint <= 57343) ||\n codePoint > 1114111) {\n return 65533;\n }\n return (_a = decodeMap.get(codePoint)) !== null && _a !== void 0 ? _a : codePoint;\n}\n/**\n * Replace the code point if relevant, then convert it to a string.\n *\n * @deprecated Use `fromCodePoint(replaceCodePoint(codePoint))` instead.\n * @param codePoint The code point to decode.\n * @returns The decoded code point.\n */\nexport function decodeCodePoint(codePoint) {\n return fromCodePoint(replaceCodePoint(codePoint));\n}\n//# sourceMappingURL=decode-codepoint.js.map","/*\n * Shared base64 decode helper for generated decode data.\n * Assumes global atob is available.\n */\nexport function decodeBase64(input) {\n const binary = \n // eslint-disable-next-line n/no-unsupported-features/node-builtins\n typeof atob === \"function\"\n ? // Browser (and Node >=16)\n // eslint-disable-next-line n/no-unsupported-features/node-builtins\n atob(input)\n : // Older Node versions (<16)\n // eslint-disable-next-line n/no-unsupported-features/node-builtins\n typeof Buffer.from === \"function\"\n ? // eslint-disable-next-line n/no-unsupported-features/node-builtins\n Buffer.from(input, \"base64\").toString(\"binary\")\n : // eslint-disable-next-line unicorn/no-new-buffer, n/no-deprecated-api\n new Buffer(input, \"base64\").toString(\"binary\");\n const evenLength = binary.length & ~1; // Round down to even length\n const out = new Uint16Array(evenLength / 2);\n for (let index = 0, outIndex = 0; index < evenLength; index += 2) {\n const lo = binary.charCodeAt(index);\n const hi = binary.charCodeAt(index + 1);\n out[outIndex++] = lo | (hi << 8);\n }\n return out;\n}\n//# sourceMappingURL=decode-shared.js.map","// Generated using scripts/write-decode-map.ts\nimport { decodeBase64 } from \"../internal/decode-shared.js\";\nexport const htmlDecodeTree = /* #__PURE__ */ decodeBase64(\"QR08ALkAAgH6AYsDNQR2BO0EPgXZBQEGLAbdBxMISQrvCmQLfQurDKQNLw4fD4YPpA+6D/IPAAAAAAAAAAAAAAAAKhBMEY8TmxUWF2EYLBkxGuAa3RsJHDscWR8YIC8jSCSIJcMl6ie3Ku8rEC0CLjoupS7kLgAIRU1hYmNmZ2xtbm9wcnN0dVQAWgBeAGUAaQBzAHcAfgCBAIQAhwCSAJoAoACsALMAbABpAGcAO4DGAMZAUAA7gCYAJkBjAHUAdABlADuAwQDBQHIiZXZlAAJhAAFpeW0AcgByAGMAO4DCAMJAEGRyAADgNdgE3XIAYQB2AGUAO4DAAMBA8CFoYZFj4SFjcgBhZAAAoFMqAAFncIsAjgBvAG4ABGFmAADgNdg43fAlbHlGdW5jdGlvbgCgYSBpAG4AZwA7gMUAxUAAAWNzpACoAHIAAOA12Jzc6SFnbgCgVCJpAGwAZABlADuAwwDDQG0AbAA7gMQAxEAABGFjZWZvcnN1xQDYANoA7QDxAPYA+QD8AAABY3LJAM8AayNzbGFzaAAAoBYidgHTANUAAKDnKmUAZAAAoAYjeQARZIABY3J0AOAA5QDrAGEidXNlAACgNSLuI291bGxpcwCgLCFhAJJjcgAA4DXYBd1wAGYAAOA12Dnd5SF2ZdhiYwDyAOoAbSJwZXEAAKBOIgAHSE9hY2RlZmhpbG9yc3UXARoBHwE6AVIBVQFiAWQBZgGCAakB6QHtAfIBYwB5ACdkUABZADuAqQCpQIABY3B5ACUBKAE1AfUhdGUGYWmg0iJ0KGFsRGlmZmVyZW50aWFsRAAAoEUhbCJleXMAAKAtIQACYWVpb0EBRAFKAU0B8iFvbgxhZABpAGwAO4DHAMdAcgBjAAhhbiJpbnQAAKAwIm8AdAAKYQABZG5ZAV0BaSJsbGEAuGB0I2VyRG90ALdg8gA5AWkAp2NyImNsZQAAAkRNUFRwAXQBeQF9AW8AdAAAoJkiaSJudXMAAKCWIuwhdXMAoJUiaSJtZXMAAKCXIm8AAAFjc4cBlAFrKndpc2VDb250b3VySW50ZWdyYWwAAKAyImUjQ3VybHkAAAFEUZwBpAFvJXVibGVRdW90ZQAAoB0gdSJvdGUAAKAZIAACbG5wdbABtgHNAdgBbwBuAGWgNyIAoHQqgAFnaXQAvAHBAcUB8iJ1ZW50AKBhIm4AdAAAoC8i7yV1ckludGVncmFsAKAuIgABZnLRAdMBAKACIe8iZHVjdACgECJuLnRlckNsb2Nrd2lzZUNvbnRvdXJJbnRlZ3JhbAAAoDMi7yFzcwCgLypjAHIAAOA12J7ccABDoNMiYQBwAACgTSKABURKU1phY2VmaW9zAAsCEgIVAhgCGwIsAjQCOQI9AnMCfwNvoEUh9CJyYWhkAKARKWMAeQACZGMAeQAFZGMAeQAPZIABZ3JzACECJQIoAuchZXIAoCEgcgAAoKEhaAB2AACg5CoAAWF5MAIzAvIhb24OYRRkbAB0oAciYQCUY3IAAOA12AfdAAFhZkECawIAAWNtRQJnAvIjaXRpY2FsAAJBREdUUAJUAl8CYwJjInV0ZQC0YG8AdAFZAloC2WJiJGxlQWN1dGUA3WJyImF2ZQBgYGkibGRlANxi7yFuZACgxCJmJWVyZW50aWFsRAAAoEYhcAR9AgAAAAAAAIECjgIAABoDZgAA4DXYO91EoagAhQKJAm8AdAAAoNwgcSJ1YWwAAKBQIuIhbGUAA0NETFJVVpkCqAK1Au8C/wIRA28AbgB0AG8AdQByAEkAbgB0AGUAZwByAGEA7ADEAW8AdAKvAgAAAACwAqhgbiNBcnJvdwAAoNMhAAFlb7kC0AJmAHQAgAFBUlQAwQLGAs0CciJyb3cAAKDQIekkZ2h0QXJyb3cAoNQhZQDlACsCbgBnAAABTFLWAugC5SFmdAABQVLcAuECciJyb3cAAKD4J+kkZ2h0QXJyb3cAoPon6SRnaHRBcnJvdwCg+SdpImdodAAAAUFU9gL7AnIicm93AACg0iFlAGUAAKCoInAAQQIGAwAAAAALA3Iicm93AACg0SFvJHduQXJyb3cAAKDVIWUlcnRpY2FsQmFyAACgJSJuAAADQUJMUlRhJAM2AzoDWgNxA3oDciJyb3cAAKGTIUJVLAMwA2EAcgAAoBMpcCNBcnJvdwAAoPUhciJldmUAEWPlIWZ00gJDAwAASwMAAFIDaSVnaHRWZWN0b3IAAKBQKWUkZVZlY3RvcgAAoF4p5SJjdG9yQqC9IWEAcgAAoFYpaSJnaHQA1AFiAwAAaQNlJGVWZWN0b3IAAKBfKeUiY3RvckKgwSFhAHIAAKBXKWUAZQBBoKQiciJyb3cAAKCnIXIAcgBvAPcAtAIAAWN0gwOHA3IA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YwAAoN8i4SFycnCgtiEAoD0pgKIqImJjZG9zACsVMBU6FT4VQRVyImNhcAAAoEgqAAFhdTQVNxVwAACgRipwAACgSipvAHQAAKCNInIAAKBFKgDgKiIA/gACYWxydksVURVuFXMVcgByAG2gtyEAoDwpeQCAAWV2dwBYFWUVaRVxAHACXxUAAAAAYxVyAGUA4wAXFXUA4wAZFWUAZQAAoM4iZSJkZ2UAAKDPImUAbgA7gKQApEBlI2Fycm93AAABbHJ7FX8V5SFmdACgtiFpImdodAAAoLchZQDkAG0VAAFjaYsVkRVvAG4AaQBuAPQAkwFuAHQAAKAxImwiY3R5AACgLSOACUFIYWJjZGVmaGlqbG9yc3R1d3oAuBW7Fb8V1RXgFegV+RUKFhUWHxZUFlcWZRbFFtsW7xb7FgUXChdyAPIAtAJhAHIAAKBlKQACZ2xyc8YVyhXOFdAV5yFlcgCgICDlIXRoAKA4IfIA9QxoAHagECAAoKMiawHZFd4VYSJyb3cAAKAPKWEA4wBfAgABYXnkFecV8iFvbg9hNGQAoUYhYW/tFfQVAAFnciEC8RVyAACgyiF0InNlcQAAoHcqgAFnbG0A/xUCFgUWO4CwALBAdABhALRjcCJ0eXYAAKCxKQABaXIOFhIW8yFodACgfykA4DXYId1hAHIAAAFschsWHRYAoMMhAKDCIYACYWVnc3YAKBauAjYWOhY+Fm0AAKHEIm9zLhY0Fm4AZABzoMQi9SFpdACgZiZhIm1tYQDdY2kAbgAAoPIiAKH3AGlvQxZRFmQAZQAAgfcAO29KFksW90BuI3RpbWVzAACgxyJuAPgAUBZjAHkAUmRjAG8CXhYAAAAAYhZyAG4AAKAeI28AcAAAoA0jgAJscHR1dwBuFnEWdRaSFp4W7CFhciRgZgAA4DXYVd0AotkCZW1wc30WhBaJFo0WcQBkoFAibwB0AACgUSJpIm51cwAAoDgi7CF1cwCgFCLxInVhcmUAoKEiYgBsAGUAYgBhAHIAdwBlAGQAZwDlANcAbgCAAWFkaAClFqoWtBZyAHIAbwD3APUMbwB3AG4AYQByAHIAbwB3APMA8xVhI3Jwb29uAAABbHK8FsAWZQBmAPQAHBZpAGcAaAD0AB4WYgHJFs8WawBhAHIAbwD3AJILbwLUFgAAAADYFnIAbgAAoB8jbwBwAACgDCOAAWNvdADhFukW7BYAAXJ55RboFgDgNdi53FVkbAAAoPYp8iFvaxFhAAFkcvMW9xZvAHQAAKDxImkA5qC/JVsSAAFhaP8WAhdyAPIANQNhAPIA1wvhIm5nbGUAoKYpAAFjaQ4XEBd5AF9k5yJyYXJyAKD/JwAJRGFjZGVmZ2xtbm9wcXJzdHV4MRc4F0YXWxcyBF4XaRd5F40XrBe0F78X2RcVGCEYLRg1GEAYAAFEbzUXgRZvAPQA+BUAAWNzPBdCF3UAdABlADuA6QDpQPQhZXIAoG4qAAJhaW95TRdQF1YXWhfyIW9uG2FyAGOgViI7gOoA6kDsIW9uAKBVIk1kbwB0ABdhAAFEcmIXZhdvAHQAAKBSIgDgNdgi3XKhmipuF3QXYQB2AGUAO4DoAOhAZKCWKm8AdAAAoJgqgKGZKmlscwCAF4UXhxfuInRlcnMAoOcjAKATIWSglSpvAHQAAKCXKoABYXBzAJMXlheiF2MAcgATYXQAeQBzogUinxcAAAAAoRdlAHQAAKAFInAAMaADIDMBqRerFwCgBCAAoAUgAAFnc7AXsRdLYXAAAKACIAABZ3C4F7sXbwBuABlhZgAA4DXYVt2AAWFscwDFF8sXzxdyAHOg1SJsAACg4yl1AHMAAKBxKmkAAKG1A2x21RfYF28AbgC1Y/VjAAJjc3V24BfoF/0XEBgAAWlv5BdWF3IAYwAAoFYiaQLuFwAAAADwF+0ADQThIW50AAFnbPUX+Rd0AHIAAKCWKuUhc3MAoJUqgAFhZWkAAxgGGAoYbABzAD1gcwB0AACgXyJ2AESgYSJEAACgeCrwImFyc2wAoOUpAAFEYRkYHRhvAHQAAKBTInIAcgAAoHEpgAFjZGkAJxgqGO0XcgAAoC8hbwD0AIwCAAFhaDEYMhi3YzuA8ADwQAABbXI5GD0YbAA7gOsA60BvAACgrCCAAWNpcABGGEgYSxhsACFgcwD0ACwEAAFlb08YVxhjAHQAYQB0AGkAbwDuABoEbgBlAG4AdABpAGEAbADlADME4Ql1GAAAgRgAAIMYiBgAAAAAoRilGAAAqhgAALsYvhjRGAAA1xgnGWwAbABpAG4AZwBkAG8AdABzAGUA8QBlF3kARGRtImFsZQAAoEAmgAFpbHIAjRiRGJ0Y7CFpZwCgA/tpApcYAAAAAJoYZwAAoAD7aQBnAACgBPsA4DXYI93sIWlnAKAB++whaWcA4GYAagCAAWFsdACvGLIYthh0AACgbSZpAGcAAKAC+24AcwAAoLElbwBmAJJh8AHCGAAAxhhmAADgNdhX3QABYWvJGMwYbADsAGsEdqDUIgCg2SphI3J0aW50AACgDSoAAWFv2hgiGQABY3PeGB8ZsQPnGP0YBRkSGRUZAAAdGbID7xjyGPQY9xj5GAAA+xg7gL0AvUAAoFMhO4C8ALxAAKBVIQCgWSEAoFshswEBGQAAAxkAoFQhAKBWIbQCCxkOGQAAAAAQGTuAvgC+QACgVyEAoFwhNQAAoFghtgEZGQAAGxkAoFohAKBdITgAAKBeIWwAAKBEIHcAbgAAoCIjYwByAADgNdi73IAIRWFiY2RlZmdpamxub3JzdHYARhlKGVoZXhlmGWkZkhmWGZkZnRmgGa0ZxhnLGc8Z4BkjGmygZyIAoIwqgAFjbXAAUBlTGVgZ9SF0ZfVhbQBhAOSgswM6FgCghipyImV2ZQAfYQABaXliGWUZcgBjAB1hM2RvAHQAIWGAoWUibHFzAMYEcBl6GfGhZSLOBAAAdhlsAGEAbgD0AN8EgKF+KmNkbACBGYQZjBljAACgqSpvAHQAb6CAKmyggioAoIQqZeDbIgD+cwAAoJQqcgAA4DXYJN3noGsirATtIWVsAKA3IWMAeQBTZIChdyJFYWoApxmpGasZAKCSKgCgpSoAoKQqAAJFYWVztBm2Gb0ZwhkAoGkicABwoIoq8iFveACgiipxoIgq8aCIKrUZaQBtAACg5yJwAGYAAOA12FjdYQB2AOUAYwIAAWNp0xnWGXIAAKAKIW0AAKFzImVs3BneGQCgjioAoJAqAIM+ADtjZGxxco0E6xn0GfgZ/BkBGgABY2nvGfEZAKCnKnIAAKB6Km8AdAAAoNci0CFhcgCglSl1ImVzdAAAoHwqgAJhZGVscwAKGvQZFhrVBCAa8AEPGgAAFBpwAHIAbwD4AFkZcgAAoHgpcQAAAWxxxAQbGmwAZQBzAPMASRlpAO0A5AQAAWVuJxouGnIjdG5lcXEAAOBpIgD+xQAsGgAFQWFiY2Vma29zeUAaQxpmGmoabRqDGocalhrCGtMacgDyAMwCAAJpbG1yShpOGlAaVBpyAHMA8ABxD2YAvWBpAGwA9AASBQABZHJYGlsaYwB5AEpkAKGUIWN3YBpkGmkAcgAAoEgpAKCtIWEAcgAAoA8h6SFyYyVhgAFhbHIAcxp7Gn8a8iF0c3WgZSZpAHQAAKBlJuwhaXAAoCYg4yFvbgCguSJyAADgNdgl3XMAAAFld4wakRphInJvdwAAoCUpYSJyb3cAAKAmKYACYW1vcHIAnxqjGqcauhq+GnIAcgAAoP8h9CFodACgOyJrAAABbHKsGrMaZSRmdGFycm93AACgqSHpJGdodGFycm93AKCqIWYAAOA12Fnd4iFhcgCgFSCAAWNsdADIGswa0BpyAADgNdi93GEAcwDoAGka8iFvaydhAAFicNca2xr1IWxsAKBDIOghZW4AoBAg4Qr2GgAA/RoAAAgbExsaGwAAIRs7GwAAAAA+G2IbmRuVG6sbAACyG80b0htjAHUAdABlADuA7QDtQAChYyBpeQEbBhtyAGMAO4DuAO5AOGQAAWN4CxsNG3kANWRjAGwAO4ChAKFAAAFmcssCFhsA4DXYJt1yAGEAdgBlADuA7ADsQIChSCFpbm8AJxsyGzYbAAFpbisbLxtuAHQAAKAMKnQAAKAtIuYhaW4AoNwpdABhAACgKSHsIWlnM2GAAWFvcABDG1sbXhuAAWNndABJG0sbWRtyACthgAFlbHAAcQVRG1UbaQBuAOUAyAVhAHIA9AByBWgAMWFmAACgtyJlAGQAtWEAoggiY2ZvdGkbbRt1G3kb4SFyZQCgBSFpAG4AdKAeImkAZQAAoN0pZABvAPQAWxsAoisiY2VscIEbhRuPG5QbYQBsAACguiIAAWdyiRuNG2UAcgDzACMQ4wCCG2EicmhrAACgFyryIW9kAKA8KgACY2dwdJ8boRukG6gbeQBRZG8AbgAvYWYAAOA12FrdYQC5Y3UAZQBzAHQAO4C/AL9AAAFjabUbuRtyAADgNdi+3G4AAKIIIkVkc3bCG8QbyBvQAwCg+SJvAHQAAKD1Inag9CIAoPMiaaBiIOwhZGUpYesB1hsAANkbYwB5AFZkbAA7gO8A70AAA2NmbW9zdeYb7hvyG/Ub+hsFHAABaXnqG+0bcgBjADVhOWRyAADgNdgn3eEhdGg3YnAAZgAA4DXYW93jAf8bAAADHHIAAOA12L/c8iFjeVhk6yFjeVRkAARhY2ZnaGpvcxUcGhwiHCYcKhwtHDAcNRzwIXBhdqC6A/BjAAFleR4cIRzkIWls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ZmdobG1vcHJzdHV3CiwNLBEsHSwnLDEsQCxLLFIsYix6LIQsjyzLLOgs7Sz/LAotcgDyAAkDYQByAACgYykAAWNyFSwbLHUAdABlADuA+gD6QPIACQ1yAOMBIywAACUseQBeZHYAZQBtYQABaXkrLDAscgBjADuA+wD7QENkgAFhYmgANyw6LD0scgDyANEO7CFhY3FhYQDyAOAOAAFpckQsSCzzIWh0AKB+KQDgNdgy3XIAYQB2AGUAO4D5APlAYQFWLF8scgAAAWxyWixcLACgvyEAoL4hbABrAACggCUAAWN0Zix2LG8CbCwAAAAAcyxyAG4AZaAcI3IAAKAcI28AcAAAoA8jcgBpAACg+CUAAWFsfiyBLGMAcgBrYTuAqACoQAABZ3CILIssbwBuAHNhZgAA4DXYZt0AA2FkaGxzdZksniynLLgsuyzFLHIAcgBvAPcACQ1vAHcAbgBhAHIAcgBvAPcA2A5hI3Jwb29uAAABbHKvLLMsZQBmAPQAWyxpAGcAaAD0AF0sdQDzAKYOaQAAocUDaGzBLMIs0mNvAG4AxWPwI2Fycm93cwCgyCGAAWNpdADRLOEs5CxvAtcsAAAAAN4scgBuAGWgHSNyAACgHSNvAHAAAKAOI24AZwBvYXIAaQAAoPklYwByAADgNdjK3IABZGlyAPMs9yz6LG8AdAAAoPAi7CFkZWlhaQBmoLUlAKC0JQABYW0DLQYtcgDyAMosbAA7gPwA/EDhIm5nbGUAoKcpgAdBQkRhY2RlZmxub3Byc3oAJy0qLTAtNC2bLZ0toS2/LcMtxy3TLdgt3C3gLfwtcgDyABADYQByAHag6CoAoOkqYQBzAOgA/gIAAW5yOC08LechcnQAoJwpgANla25wcnN0AJkpSC1NLVQtXi1iLYItYQBwAHAA4QAaHG8AdABoAGkAbgDnAKEXgAFoaXIAoSmzJFotbwBwAPQAdCVooJUh7wD4JgABaXVmLWotZwBtAOEAuygAAWJwbi14LXMjZXRuZXEAceCKIgD+AODLKgD+cyNldG5lcQBx4IsiAP4A4MwqAP4AAWhyhi2KLWUAdADhABIraSNhbmdsZQAAAWxyki2WLeUhZnQAoLIiaSJnaHQAAKCzInkAMmThIXNoAKCiIoABZWxyAKcttC24LWKiKCKuLQAAAACyLWEAcgAAoLsicQAAoFoi7CFpcACg7iIAAWJ0vC1eD2EA8gBfD3IAAOA12DPddAByAOkAlS1zAHUAAAFicM0t0C0A4IIi0iAA4IMi0iBwAGYAAOA12GfdcgBvAPAAWQt0AHIA6QCaLQABY3XkLegtcgAA4DXYy9wAAWJw7C30LW4AAAFFZXUt8S0A4IoiAP5uAAABRWV/LfktAOCLIgD+6SJnemFnAKCaKYADY2Vmb3BycwANLhAuJS4pLiMuLi40LukhcmN1YQABZGkULiEuAAFiZxguHC5hAHIAAKBfKmUAcaAnIgCgWSLlIXJwAKAYIXIAAOA12DTdcABmAADgNdho3WWgQCJhAHQA6ABqD2MAcgAA4DXYzNzjCuQRUC4AAFQuAABYLmIuAAAAAGMubS5wLnQuAAAAAIguki4AAJouJxIqEnQAcgDpAB0ScgAA4DXYNd0AAUFhWy5eLnIA8gDnAnIA8gCTB75jAAFBYWYuaS5yAPIA4AJyAPIAjAdhAPAAeh5pAHMAAKD7IoABZHB0APgReS6DLgABZmx9LoAuAOA12GnddQDzAP8RaQBtAOUABBIAAUFhiy6OLnIA8gDuAnIA8gCaBwABY3GVLgoScgAA4DXYzdwAAXB0nS6hLmwAdQDzACUScgDpACASAARhY2VmaW9zdbEuvC7ELsguzC7PLtQu2S5jAAABdXm2LrsudABlADuA/QD9QE9kAAFpecAuwy5yAGMAd2FLZG4AO4ClAKVAcgAA4DXYNt1jAHkAV2RwAGYAAOA12GrdYwByAADgNdjO3AABY23dLt8ueQBOZGwAO4D/AP9AAAVhY2RlZmhpb3N38y73Lv8uAi8MLxAvEy8YLx0vIi9jInV0ZQB6YQABYXn7Lv4u8iFvbn5hN2RvAHQAfGEAAWV0Bi8KL3QAcgDmAB8QYQC2Y3IAAOA12DfdYwB5ADZk5yJyYXJyAKDdIXAAZgAA4DXYa91jAHIAAOA12M/cAAFqbiYvKC8AoA0gagAAoAwg\");\n//# sourceMappingURL=decode-data-html.js.map","// Generated using scripts/write-decode-map.ts\nimport { decodeBase64 } from \"../internal/decode-shared.js\";\nexport const xmlDecodeTree = /* #__PURE__ */ decodeBase64(\"AAJhZ2xxBwARABMAFQBtAg0AAAAAAA8AcAAmYG8AcwAnYHQAPmB0ADxg9SFvdCJg\");\n//# sourceMappingURL=decode-data-xml.js.map","/**\n * Bit flags & masks for the binary trie encoding used for entity decoding.\n *\n * Bit layout (16 bits total):\n * 15..14 VALUE_LENGTH (+1 encoding; 0 => no value)\n * 13 FLAG13. If valueLength>0: semicolon required flag (implicit ';').\n * If valueLength==0: compact run flag.\n * 12..7 BRANCH_LENGTH Branch length (0 => single branch in 6..0 if jumpOffset==char) OR run length (when compact run)\n * 6..0 JUMP_TABLE Jump offset (jump table) OR single-branch char code OR first run char\n */\nexport var BinTrieFlags;\n(function (BinTrieFlags) {\n BinTrieFlags[BinTrieFlags[\"VALUE_LENGTH\"] = 49152] = \"VALUE_LENGTH\";\n BinTrieFlags[BinTrieFlags[\"FLAG13\"] = 8192] = \"FLAG13\";\n BinTrieFlags[BinTrieFlags[\"BRANCH_LENGTH\"] = 8064] = \"BRANCH_LENGTH\";\n BinTrieFlags[BinTrieFlags[\"JUMP_TABLE\"] = 127] = \"JUMP_TABLE\";\n})(BinTrieFlags || (BinTrieFlags = {}));\n//# sourceMappingURL=bin-trie-flags.js.map","import { fromCodePoint, replaceCodePoint } from \"./decode-codepoint.js\";\nimport { htmlDecodeTree } from \"./generated/decode-data-html.js\";\nimport { xmlDecodeTree } from \"./generated/decode-data-xml.js\";\nimport { BinTrieFlags } from \"./internal/bin-trie-flags.js\";\nvar CharCodes;\n(function (CharCodes) {\n CharCodes[CharCodes[\"NUM\"] = 35] = \"NUM\";\n CharCodes[CharCodes[\"SEMI\"] = 59] = \"SEMI\";\n CharCodes[CharCodes[\"EQUALS\"] = 61] = \"EQUALS\";\n CharCodes[CharCodes[\"ZERO\"] = 48] = \"ZERO\";\n CharCodes[CharCodes[\"NINE\"] = 57] = \"NINE\";\n CharCodes[CharCodes[\"LOWER_A\"] = 97] = \"LOWER_A\";\n CharCodes[CharCodes[\"LOWER_F\"] = 102] = \"LOWER_F\";\n CharCodes[CharCodes[\"LOWER_X\"] = 120] = \"LOWER_X\";\n CharCodes[CharCodes[\"LOWER_Z\"] = 122] = \"LOWER_Z\";\n CharCodes[CharCodes[\"UPPER_A\"] = 65] = \"UPPER_A\";\n CharCodes[CharCodes[\"UPPER_F\"] = 70] = \"UPPER_F\";\n CharCodes[CharCodes[\"UPPER_Z\"] = 90] = \"UPPER_Z\";\n})(CharCodes || (CharCodes = {}));\n/** Bit that needs to be set to convert an upper case ASCII character to lower case */\nconst TO_LOWER_BIT = 32;\nfunction isNumber(code) {\n return code >= CharCodes.ZERO && code <= CharCodes.NINE;\n}\nfunction isHexadecimalCharacter(code) {\n return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_F) ||\n (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_F));\n}\nfunction isAsciiAlphaNumeric(code) {\n return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_Z) ||\n (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_Z) ||\n isNumber(code));\n}\n/**\n * Checks if the given character is a valid end character for an entity in an attribute.\n *\n * Attribute values that aren't terminated properly aren't parsed, and shouldn't lead to a parser error.\n * See the example in https://html.spec.whatwg.org/multipage/parsing.html#named-character-reference-state\n */\nfunction isEntityInAttributeInvalidEnd(code) {\n return code === CharCodes.EQUALS || isAsciiAlphaNumeric(code);\n}\nvar EntityDecoderState;\n(function (EntityDecoderState) {\n EntityDecoderState[EntityDecoderState[\"EntityStart\"] = 0] = \"EntityStart\";\n EntityDecoderState[EntityDecoderState[\"NumericStart\"] = 1] = \"NumericStart\";\n EntityDecoderState[EntityDecoderState[\"NumericDecimal\"] = 2] = \"NumericDecimal\";\n EntityDecoderState[EntityDecoderState[\"NumericHex\"] = 3] = \"NumericHex\";\n EntityDecoderState[EntityDecoderState[\"NamedEntity\"] = 4] = \"NamedEntity\";\n})(EntityDecoderState || (EntityDecoderState = {}));\nexport var DecodingMode;\n(function (DecodingMode) {\n /** Entities in text nodes that can end with any character. */\n DecodingMode[DecodingMode[\"Legacy\"] = 0] = \"Legacy\";\n /** Only allow entities terminated with a semicolon. */\n DecodingMode[DecodingMode[\"Strict\"] = 1] = \"Strict\";\n /** Entities in attributes have limitations on ending characters. */\n DecodingMode[DecodingMode[\"Attribute\"] = 2] = \"Attribute\";\n})(DecodingMode || (DecodingMode = {}));\n/**\n * Token decoder with support of writing partial entities.\n */\nexport class EntityDecoder {\n constructor(\n /** The tree used to decode entities. */\n // biome-ignore lint/correctness/noUnusedPrivateClassMembers: False positive\n decodeTree, \n /**\n * The function that is called when a codepoint is decoded.\n *\n * For multi-byte named entities, this will be called multiple times,\n * with the second codepoint, and the same `consumed` value.\n *\n * @param codepoint The decoded codepoint.\n * @param consumed The number of bytes consumed by the decoder.\n */\n emitCodePoint, \n /** An object that is used to produce errors. */\n errors) {\n this.decodeTree = decodeTree;\n this.emitCodePoint = emitCodePoint;\n this.errors = errors;\n /** The current state of the decoder. */\n this.state = EntityDecoderState.EntityStart;\n /** Characters that were consumed while parsing an entity. */\n this.consumed = 1;\n /**\n * The result of the entity.\n *\n * Either the result index of a numeric entity, or the codepoint of a\n * numeric entity.\n */\n this.result = 0;\n /** The current index in the decode tree. */\n this.treeIndex = 0;\n /** The number of characters that were consumed in excess. */\n this.excess = 1;\n /** The mode in which the decoder is operating. */\n this.decodeMode = DecodingMode.Strict;\n /** The number of characters that have been consumed in the current run. */\n this.runConsumed = 0;\n }\n /** Resets the instance to make it reusable. */\n startEntity(decodeMode) {\n this.decodeMode = decodeMode;\n this.state = EntityDecoderState.EntityStart;\n this.result = 0;\n this.treeIndex = 0;\n this.excess = 1;\n this.consumed = 1;\n this.runConsumed = 0;\n }\n /**\n * Write an entity to the decoder. This can be called multiple times with partial entities.\n * If the entity is incomplete, the decoder will return -1.\n *\n * Mirrors the implementation of `getDecoder`, but with the ability to stop decoding if the\n * entity is incomplete, and resume when the next string is written.\n *\n * @param input The string containing the entity (or a continuation of the entity).\n * @param offset The offset at which the entity begins. Should be 0 if this is not the first call.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n write(input, offset) {\n switch (this.state) {\n case EntityDecoderState.EntityStart: {\n if (input.charCodeAt(offset) === CharCodes.NUM) {\n this.state = EntityDecoderState.NumericStart;\n this.consumed += 1;\n return this.stateNumericStart(input, offset + 1);\n }\n this.state = EntityDecoderState.NamedEntity;\n return this.stateNamedEntity(input, offset);\n }\n case EntityDecoderState.NumericStart: {\n return this.stateNumericStart(input, offset);\n }\n case EntityDecoderState.NumericDecimal: {\n return this.stateNumericDecimal(input, offset);\n }\n case EntityDecoderState.NumericHex: {\n return this.stateNumericHex(input, offset);\n }\n case EntityDecoderState.NamedEntity: {\n return this.stateNamedEntity(input, offset);\n }\n }\n }\n /**\n * Switches between the numeric decimal and hexadecimal states.\n *\n * Equivalent to the `Numeric character reference state` in the HTML spec.\n *\n * @param input The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n stateNumericStart(input, offset) {\n if (offset >= input.length) {\n return -1;\n }\n if ((input.charCodeAt(offset) | TO_LOWER_BIT) === CharCodes.LOWER_X) {\n this.state = EntityDecoderState.NumericHex;\n this.consumed += 1;\n return this.stateNumericHex(input, offset + 1);\n }\n this.state = EntityDecoderState.NumericDecimal;\n return this.stateNumericDecimal(input, offset);\n }\n /**\n * Parses a hexadecimal numeric entity.\n *\n * Equivalent to the `Hexademical character reference state` in the HTML spec.\n *\n * @param input The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n stateNumericHex(input, offset) {\n while (offset < input.length) {\n const char = input.charCodeAt(offset);\n if (isNumber(char) || isHexadecimalCharacter(char)) {\n // Convert hex digit to value (0-15); 'a'/'A' -> 10.\n const digit = char <= CharCodes.NINE\n ? char - CharCodes.ZERO\n : (char | TO_LOWER_BIT) - CharCodes.LOWER_A + 10;\n this.result = this.result * 16 + digit;\n this.consumed++;\n offset++;\n }\n else {\n return this.emitNumericEntity(char, 3);\n }\n }\n return -1; // Incomplete entity\n }\n /**\n * Parses a decimal numeric entity.\n *\n * Equivalent to the `Decimal character reference state` in the HTML spec.\n *\n * @param input The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n stateNumericDecimal(input, offset) {\n while (offset < input.length) {\n const char = input.charCodeAt(offset);\n if (isNumber(char)) {\n this.result = this.result * 10 + (char - CharCodes.ZERO);\n this.consumed++;\n offset++;\n }\n else {\n return this.emitNumericEntity(char, 2);\n }\n }\n return -1; // Incomplete entity\n }\n /**\n * Validate and emit a numeric entity.\n *\n * Implements the logic from the `Hexademical character reference start\n * state` and `Numeric character reference end state` in the HTML spec.\n *\n * @param lastCp The last code point of the entity. Used to see if the\n * entity was terminated with a semicolon.\n * @param expectedLength The minimum number of characters that should be\n * consumed. Used to validate that at least one digit\n * was consumed.\n * @returns The number of characters that were consumed.\n */\n emitNumericEntity(lastCp, expectedLength) {\n var _a;\n // Ensure we consumed at least one digit.\n if (this.consumed <= expectedLength) {\n (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed);\n return 0;\n }\n // Figure out if this is a legit end of the entity\n if (lastCp === CharCodes.SEMI) {\n this.consumed += 1;\n }\n else if (this.decodeMode === DecodingMode.Strict) {\n return 0;\n }\n this.emitCodePoint(replaceCodePoint(this.result), this.consumed);\n if (this.errors) {\n if (lastCp !== CharCodes.SEMI) {\n this.errors.missingSemicolonAfterCharacterReference();\n }\n this.errors.validateNumericCharacterReference(this.result);\n }\n return this.consumed;\n }\n /**\n * Parses a named entity.\n *\n * Equivalent to the `Named character reference state` in the HTML spec.\n *\n * @param input The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n stateNamedEntity(input, offset) {\n const { decodeTree } = this;\n let current = decodeTree[this.treeIndex];\n // The length is the number of bytes of the value, including the current byte.\n let valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\n while (offset < input.length) {\n // Handle compact runs (possibly inline): valueLength == 0 and SEMI_REQUIRED bit set.\n if (valueLength === 0 && (current & BinTrieFlags.FLAG13) !== 0) {\n const runLength = (current & BinTrieFlags.BRANCH_LENGTH) >> 7; /* 2..63 */\n // If we are starting a run, check the first char.\n if (this.runConsumed === 0) {\n const firstChar = current & BinTrieFlags.JUMP_TABLE;\n if (input.charCodeAt(offset) !== firstChar) {\n return this.result === 0\n ? 0\n : this.emitNotTerminatedNamedEntity();\n }\n offset++;\n this.excess++;\n this.runConsumed++;\n }\n // Check remaining characters in the run.\n while (this.runConsumed < runLength) {\n if (offset >= input.length) {\n return -1;\n }\n const charIndexInPacked = this.runConsumed - 1;\n const packedWord = decodeTree[this.treeIndex + 1 + (charIndexInPacked >> 1)];\n const expectedChar = charIndexInPacked % 2 === 0\n ? packedWord & 0xff\n : (packedWord >> 8) & 0xff;\n if (input.charCodeAt(offset) !== expectedChar) {\n this.runConsumed = 0;\n return this.result === 0\n ? 0\n : this.emitNotTerminatedNamedEntity();\n }\n offset++;\n this.excess++;\n this.runConsumed++;\n }\n this.runConsumed = 0;\n this.treeIndex += 1 + (runLength >> 1);\n current = decodeTree[this.treeIndex];\n valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\n }\n if (offset >= input.length)\n break;\n const char = input.charCodeAt(offset);\n /*\n * Implicit semicolon handling for nodes that require a semicolon but\n * don't have an explicit ';' branch stored in the trie. If we have\n * a value on the current node, it requires a semicolon, and the\n * current input character is a semicolon, emit the entity using the\n * current node (without descending further).\n */\n if (char === CharCodes.SEMI &&\n valueLength !== 0 &&\n (current & BinTrieFlags.FLAG13) !== 0) {\n return this.emitNamedEntityData(this.treeIndex, valueLength, this.consumed + this.excess);\n }\n this.treeIndex = determineBranch(decodeTree, current, this.treeIndex + Math.max(1, valueLength), char);\n if (this.treeIndex < 0) {\n return this.result === 0 ||\n // If we are parsing an attribute\n (this.decodeMode === DecodingMode.Attribute &&\n // We shouldn't have consumed any characters after the entity,\n (valueLength === 0 ||\n // And there should be no invalid characters.\n isEntityInAttributeInvalidEnd(char)))\n ? 0\n : this.emitNotTerminatedNamedEntity();\n }\n current = decodeTree[this.treeIndex];\n valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\n // If the branch is a value, store it and continue\n if (valueLength !== 0) {\n // If the entity is terminated by a semicolon, we are done.\n if (char === CharCodes.SEMI) {\n return this.emitNamedEntityData(this.treeIndex, valueLength, this.consumed + this.excess);\n }\n // If we encounter a non-terminated (legacy) entity while parsing strictly, then ignore it.\n if (this.decodeMode !== DecodingMode.Strict &&\n (current & BinTrieFlags.FLAG13) === 0) {\n this.result = this.treeIndex;\n this.consumed += this.excess;\n this.excess = 0;\n }\n }\n // Increment offset & excess for next iteration\n offset++;\n this.excess++;\n }\n return -1;\n }\n /**\n * Emit a named entity that was not terminated with a semicolon.\n *\n * @returns The number of characters consumed.\n */\n emitNotTerminatedNamedEntity() {\n var _a;\n const { result, decodeTree } = this;\n const valueLength = (decodeTree[result] & BinTrieFlags.VALUE_LENGTH) >> 14;\n this.emitNamedEntityData(result, valueLength, this.consumed);\n (_a = this.errors) === null || _a === void 0 ? void 0 : _a.missingSemicolonAfterCharacterReference();\n return this.consumed;\n }\n /**\n * Emit a named entity.\n *\n * @param result The index of the entity in the decode tree.\n * @param valueLength The number of bytes in the entity.\n * @param consumed The number of characters consumed.\n *\n * @returns The number of characters consumed.\n */\n emitNamedEntityData(result, valueLength, consumed) {\n const { decodeTree } = this;\n this.emitCodePoint(valueLength === 1\n ? decodeTree[result] &\n ~(BinTrieFlags.VALUE_LENGTH | BinTrieFlags.FLAG13)\n : decodeTree[result + 1], consumed);\n if (valueLength === 3) {\n // For multi-byte values, we need to emit the second byte.\n this.emitCodePoint(decodeTree[result + 2], consumed);\n }\n return consumed;\n }\n /**\n * Signal to the parser that the end of the input was reached.\n *\n * Remaining data will be emitted and relevant errors will be produced.\n *\n * @returns The number of characters consumed.\n */\n end() {\n var _a;\n switch (this.state) {\n case EntityDecoderState.NamedEntity: {\n // Emit a named entity if we have one.\n return this.result !== 0 &&\n (this.decodeMode !== DecodingMode.Attribute ||\n this.result === this.treeIndex)\n ? this.emitNotTerminatedNamedEntity()\n : 0;\n }\n // Otherwise, emit a numeric entity if we have one.\n case EntityDecoderState.NumericDecimal: {\n return this.emitNumericEntity(0, 2);\n }\n case EntityDecoderState.NumericHex: {\n return this.emitNumericEntity(0, 3);\n }\n case EntityDecoderState.NumericStart: {\n (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed);\n return 0;\n }\n case EntityDecoderState.EntityStart: {\n // Return 0 if we have no entity.\n return 0;\n }\n }\n }\n}\n/**\n * Creates a function that decodes entities in a string.\n *\n * @param decodeTree The decode tree.\n * @returns A function that decodes entities in a string.\n */\nfunction getDecoder(decodeTree) {\n let returnValue = \"\";\n const decoder = new EntityDecoder(decodeTree, (data) => (returnValue += fromCodePoint(data)));\n return function decodeWithTrie(input, decodeMode) {\n let lastIndex = 0;\n let offset = 0;\n while ((offset = input.indexOf(\"&\", offset)) >= 0) {\n returnValue += input.slice(lastIndex, offset);\n decoder.startEntity(decodeMode);\n const length = decoder.write(input, \n // Skip the \"&\"\n offset + 1);\n if (length < 0) {\n lastIndex = offset + decoder.end();\n break;\n }\n lastIndex = offset + length;\n // If `length` is 0, skip the current `&` and continue.\n offset = length === 0 ? lastIndex + 1 : lastIndex;\n }\n const result = returnValue + input.slice(lastIndex);\n // Make sure we don't keep a reference to the final string.\n returnValue = \"\";\n return result;\n };\n}\n/**\n * Determines the branch of the current node that is taken given the current\n * character. This function is used to traverse the trie.\n *\n * @param decodeTree The trie.\n * @param current The current node.\n * @param nodeIdx The index right after the current node and its value.\n * @param char The current character.\n * @returns The index of the next node, or -1 if no branch is taken.\n */\nexport function determineBranch(decodeTree, current, nodeIndex, char) {\n const branchCount = (current & BinTrieFlags.BRANCH_LENGTH) >> 7;\n const jumpOffset = current & BinTrieFlags.JUMP_TABLE;\n // Case 1: Single branch encoded in jump offset\n if (branchCount === 0) {\n return jumpOffset !== 0 && char === jumpOffset ? nodeIndex : -1;\n }\n // Case 2: Multiple branches encoded in jump table\n if (jumpOffset) {\n const value = char - jumpOffset;\n return value < 0 || value >= branchCount\n ? -1\n : decodeTree[nodeIndex + value] - 1;\n }\n // Case 3: Multiple branches encoded in packed dictionary (two keys per uint16)\n const packedKeySlots = (branchCount + 1) >> 1;\n /*\n * Treat packed keys as a virtual sorted array of length `branchCount`.\n * Key(i) = low byte for even i, high byte for odd i in slot i>>1.\n */\n let lo = 0;\n let hi = branchCount - 1;\n while (lo <= hi) {\n const mid = (lo + hi) >>> 1;\n const slot = mid >> 1;\n const packed = decodeTree[nodeIndex + slot];\n const midKey = (packed >> ((mid & 1) * 8)) & 0xff;\n if (midKey < char) {\n lo = mid + 1;\n }\n else if (midKey > char) {\n hi = mid - 1;\n }\n else {\n return decodeTree[nodeIndex + packedKeySlots + mid];\n }\n }\n return -1;\n}\nconst htmlDecoder = /* #__PURE__ */ getDecoder(htmlDecodeTree);\nconst xmlDecoder = /* #__PURE__ */ getDecoder(xmlDecodeTree);\n/**\n * Decodes an HTML string.\n *\n * @param htmlString The string to decode.\n * @param mode The decoding mode.\n * @returns The decoded string.\n */\nexport function decodeHTML(htmlString, mode = DecodingMode.Legacy) {\n return htmlDecoder(htmlString, mode);\n}\n/**\n * Decodes an HTML string in an attribute.\n *\n * @param htmlAttribute The string to decode.\n * @returns The decoded string.\n */\nexport function decodeHTMLAttribute(htmlAttribute) {\n return htmlDecoder(htmlAttribute, DecodingMode.Attribute);\n}\n/**\n * Decodes an HTML string, requiring all entities to be terminated by a semicolon.\n *\n * @param htmlString The string to decode.\n * @returns The decoded string.\n */\nexport function decodeHTMLStrict(htmlString) {\n return htmlDecoder(htmlString, DecodingMode.Strict);\n}\n/**\n * Decodes an XML string, requiring all entities to be terminated by a semicolon.\n *\n * @param xmlString The string to decode.\n * @returns The decoded string.\n */\nexport function decodeXML(xmlString) {\n return xmlDecoder(xmlString, DecodingMode.Strict);\n}\nexport { decodeCodePoint, fromCodePoint, replaceCodePoint, } from \"./decode-codepoint.js\";\n// Re-export for use by eg. htmlparser2\nexport { htmlDecodeTree } from \"./generated/decode-data-html.js\";\nexport { xmlDecodeTree } from \"./generated/decode-data-xml.js\";\n//# sourceMappingURL=decode.js.map","import { EntityDecoder, DecodingMode, htmlDecodeTree, xmlDecodeTree, } from \"entities/decode\";\nvar CharCodes;\n(function (CharCodes) {\n CharCodes[CharCodes[\"Tab\"] = 9] = \"Tab\";\n CharCodes[CharCodes[\"NewLine\"] = 10] = \"NewLine\";\n CharCodes[CharCodes[\"FormFeed\"] = 12] = \"FormFeed\";\n CharCodes[CharCodes[\"CarriageReturn\"] = 13] = \"CarriageReturn\";\n CharCodes[CharCodes[\"Space\"] = 32] = \"Space\";\n CharCodes[CharCodes[\"ExclamationMark\"] = 33] = \"ExclamationMark\";\n CharCodes[CharCodes[\"Number\"] = 35] = \"Number\";\n CharCodes[CharCodes[\"Amp\"] = 38] = \"Amp\";\n CharCodes[CharCodes[\"SingleQuote\"] = 39] = \"SingleQuote\";\n CharCodes[CharCodes[\"DoubleQuote\"] = 34] = \"DoubleQuote\";\n CharCodes[CharCodes[\"Dash\"] = 45] = \"Dash\";\n CharCodes[CharCodes[\"Slash\"] = 47] = \"Slash\";\n CharCodes[CharCodes[\"Zero\"] = 48] = \"Zero\";\n CharCodes[CharCodes[\"Nine\"] = 57] = \"Nine\";\n CharCodes[CharCodes[\"Semi\"] = 59] = \"Semi\";\n CharCodes[CharCodes[\"Lt\"] = 60] = \"Lt\";\n CharCodes[CharCodes[\"Eq\"] = 61] = \"Eq\";\n CharCodes[CharCodes[\"Gt\"] = 62] = \"Gt\";\n CharCodes[CharCodes[\"Questionmark\"] = 63] = \"Questionmark\";\n CharCodes[CharCodes[\"UpperA\"] = 65] = \"UpperA\";\n CharCodes[CharCodes[\"LowerA\"] = 97] = \"LowerA\";\n CharCodes[CharCodes[\"UpperF\"] = 70] = \"UpperF\";\n CharCodes[CharCodes[\"LowerF\"] = 102] = \"LowerF\";\n CharCodes[CharCodes[\"UpperZ\"] = 90] = \"UpperZ\";\n CharCodes[CharCodes[\"LowerZ\"] = 122] = \"LowerZ\";\n CharCodes[CharCodes[\"LowerX\"] = 120] = \"LowerX\";\n CharCodes[CharCodes[\"OpeningSquareBracket\"] = 91] = \"OpeningSquareBracket\";\n})(CharCodes || (CharCodes = {}));\n/** All the states the tokenizer can be in. */\nvar State;\n(function (State) {\n State[State[\"Text\"] = 1] = \"Text\";\n State[State[\"BeforeTagName\"] = 2] = \"BeforeTagName\";\n State[State[\"InTagName\"] = 3] = \"InTagName\";\n State[State[\"InSelfClosingTag\"] = 4] = \"InSelfClosingTag\";\n State[State[\"BeforeClosingTagName\"] = 5] = \"BeforeClosingTagName\";\n State[State[\"InClosingTagName\"] = 6] = \"InClosingTagName\";\n State[State[\"AfterClosingTagName\"] = 7] = \"AfterClosingTagName\";\n // Attributes\n State[State[\"BeforeAttributeName\"] = 8] = \"BeforeAttributeName\";\n State[State[\"InAttributeName\"] = 9] = \"InAttributeName\";\n State[State[\"AfterAttributeName\"] = 10] = \"AfterAttributeName\";\n State[State[\"BeforeAttributeValue\"] = 11] = \"BeforeAttributeValue\";\n State[State[\"InAttributeValueDq\"] = 12] = \"InAttributeValueDq\";\n State[State[\"InAttributeValueSq\"] = 13] = \"InAttributeValueSq\";\n State[State[\"InAttributeValueNq\"] = 14] = \"InAttributeValueNq\";\n // Declarations\n State[State[\"BeforeDeclaration\"] = 15] = \"BeforeDeclaration\";\n State[State[\"InDeclaration\"] = 16] = \"InDeclaration\";\n // Processing instructions\n State[State[\"InProcessingInstruction\"] = 17] = \"InProcessingInstruction\";\n // Comments & CDATA\n State[State[\"BeforeComment\"] = 18] = \"BeforeComment\";\n State[State[\"CDATASequence\"] = 19] = \"CDATASequence\";\n State[State[\"InSpecialComment\"] = 20] = \"InSpecialComment\";\n State[State[\"InCommentLike\"] = 21] = \"InCommentLike\";\n // Special tags\n State[State[\"BeforeSpecialS\"] = 22] = \"BeforeSpecialS\";\n State[State[\"BeforeSpecialT\"] = 23] = \"BeforeSpecialT\";\n State[State[\"SpecialStartSequence\"] = 24] = \"SpecialStartSequence\";\n State[State[\"InSpecialTag\"] = 25] = \"InSpecialTag\";\n State[State[\"InEntity\"] = 26] = \"InEntity\";\n})(State || (State = {}));\nfunction isWhitespace(c) {\n return (c === CharCodes.Space ||\n c === CharCodes.NewLine ||\n c === CharCodes.Tab ||\n c === CharCodes.FormFeed ||\n c === CharCodes.CarriageReturn);\n}\nfunction isEndOfTagSection(c) {\n return c === CharCodes.Slash || c === CharCodes.Gt || isWhitespace(c);\n}\nfunction isASCIIAlpha(c) {\n return ((c >= CharCodes.LowerA && c <= CharCodes.LowerZ) ||\n (c >= CharCodes.UpperA && c <= CharCodes.UpperZ));\n}\nexport var QuoteType;\n(function (QuoteType) {\n QuoteType[QuoteType[\"NoValue\"] = 0] = \"NoValue\";\n QuoteType[QuoteType[\"Unquoted\"] = 1] = \"Unquoted\";\n QuoteType[QuoteType[\"Single\"] = 2] = \"Single\";\n QuoteType[QuoteType[\"Double\"] = 3] = \"Double\";\n})(QuoteType || (QuoteType = {}));\n/**\n * Sequences used to match longer strings.\n *\n * We don't have `Script`, `Style`, or `Title` here. Instead, we re-use the *End\n * sequences with an increased offset.\n */\nconst Sequences = {\n Cdata: new Uint8Array([0x43, 0x44, 0x41, 0x54, 0x41, 0x5b]), // CDATA[\n CdataEnd: new Uint8Array([0x5d, 0x5d, 0x3e]), // ]]>\n CommentEnd: new Uint8Array([0x2d, 0x2d, 0x3e]), // `-->`\n ScriptEnd: new Uint8Array([0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74]), // `</script`\n StyleEnd: new Uint8Array([0x3c, 0x2f, 0x73, 0x74, 0x79, 0x6c, 0x65]), // `</style`\n TitleEnd: new Uint8Array([0x3c, 0x2f, 0x74, 0x69, 0x74, 0x6c, 0x65]), // `</title`\n TextareaEnd: new Uint8Array([\n 0x3c, 0x2f, 0x74, 0x65, 0x78, 0x74, 0x61, 0x72, 0x65, 0x61,\n ]), // `</textarea`\n XmpEnd: new Uint8Array([0x3c, 0x2f, 0x78, 0x6d, 0x70]), // `</xmp`\n};\nexport default class Tokenizer {\n constructor({ xmlMode = false, decodeEntities = true, }, cbs) {\n this.cbs = cbs;\n /** The current state the tokenizer is in. */\n this.state = State.Text;\n /** The read buffer. */\n this.buffer = \"\";\n /** The beginning of the section that is currently being read. */\n this.sectionStart = 0;\n /** The index within the buffer that we are currently looking at. */\n this.index = 0;\n /** The start of the last entity. */\n this.entityStart = 0;\n /** Some behavior, eg. when decoding entities, is done while we are in another state. This keeps track of the other state type. */\n this.baseState = State.Text;\n /** For special parsing behavior inside of script and style tags. */\n this.isSpecial = false;\n /** Indicates whether the tokenizer has been paused. */\n this.running = true;\n /** The offset of the current buffer. */\n this.offset = 0;\n this.currentSequence = undefined;\n this.sequenceIndex = 0;\n this.xmlMode = xmlMode;\n this.decodeEntities = decodeEntities;\n this.entityDecoder = new EntityDecoder(xmlMode ? xmlDecodeTree : htmlDecodeTree, (cp, consumed) => this.emitCodePoint(cp, consumed));\n }\n reset() {\n this.state = State.Text;\n this.buffer = \"\";\n this.sectionStart = 0;\n this.index = 0;\n this.baseState = State.Text;\n this.currentSequence = undefined;\n this.running = true;\n this.offset = 0;\n }\n write(chunk) {\n this.offset += this.buffer.length;\n this.buffer = chunk;\n this.parse();\n }\n end() {\n if (this.running)\n this.finish();\n }\n pause() {\n this.running = false;\n }\n resume() {\n this.running = true;\n if (this.index < this.buffer.length + this.offset) {\n this.parse();\n }\n }\n stateText(c) {\n if (c === CharCodes.Lt ||\n (!this.decodeEntities && this.fastForwardTo(CharCodes.Lt))) {\n if (this.index > this.sectionStart) {\n this.cbs.ontext(this.sectionStart, this.index);\n }\n this.state = State.BeforeTagName;\n this.sectionStart = this.index;\n }\n else if (this.decodeEntities && c === CharCodes.Amp) {\n this.startEntity();\n }\n }\n stateSpecialStartSequence(c) {\n const isEnd = this.sequenceIndex === this.currentSequence.length;\n const isMatch = isEnd\n ? // If we are at the end of the sequence, make sure the tag name has ended\n isEndOfTagSection(c)\n : // Otherwise, do a case-insensitive comparison\n (c | 0x20) === this.currentSequence[this.sequenceIndex];\n if (!isMatch) {\n this.isSpecial = false;\n }\n else if (!isEnd) {\n this.sequenceIndex++;\n return;\n }\n this.sequenceIndex = 0;\n this.state = State.InTagName;\n this.stateInTagName(c);\n }\n /** Look for an end tag. For <title> tags, also decode entities. */\n stateInSpecialTag(c) {\n if (this.sequenceIndex === this.currentSequence.length) {\n if (c === CharCodes.Gt || isWhitespace(c)) {\n const endOfText = this.index - this.currentSequence.length;\n if (this.sectionStart < endOfText) {\n // Spoof the index so that reported locations match up.\n const actualIndex = this.index;\n this.index = endOfText;\n this.cbs.ontext(this.sectionStart, endOfText);\n this.index = actualIndex;\n }\n this.isSpecial = false;\n this.sectionStart = endOfText + 2; // Skip over the `</`\n this.stateInClosingTagName(c);\n return; // We are done; skip the rest of the function.\n }\n this.sequenceIndex = 0;\n }\n if ((c | 0x20) === this.currentSequence[this.sequenceIndex]) {\n this.sequenceIndex += 1;\n }\n else if (this.sequenceIndex === 0) {\n if (this.currentSequence === Sequences.TitleEnd) {\n // We have to parse entities in <title> tags.\n if (this.decodeEntities && c === CharCodes.Amp) {\n this.startEntity();\n }\n }\n else if (this.fastForwardTo(CharCodes.Lt)) {\n // Outside of <title> tags, we can fast-forward.\n this.sequenceIndex = 1;\n }\n }\n else {\n // If we see a `<`, set the sequence index to 1; useful for eg. `<</script>`.\n this.sequenceIndex = Number(c === CharCodes.Lt);\n }\n }\n stateCDATASequence(c) {\n if (c === Sequences.Cdata[this.sequenceIndex]) {\n if (++this.sequenceIndex === Sequences.Cdata.length) {\n this.state = State.InCommentLike;\n this.currentSequence = Sequences.CdataEnd;\n this.sequenceIndex = 0;\n this.sectionStart = this.index + 1;\n }\n }\n else {\n this.sequenceIndex = 0;\n this.state = State.InDeclaration;\n this.stateInDeclaration(c); // Reconsume the character\n }\n }\n /**\n * When we wait for one specific character, we can speed things up\n * by skipping through the buffer until we find it.\n *\n * @returns Whether the character was found.\n */\n fastForwardTo(c) {\n while (++this.index < this.buffer.length + this.offset) {\n if (this.buffer.charCodeAt(this.index - this.offset) === c) {\n return true;\n }\n }\n /*\n * We increment the index at the end of the `parse` loop,\n * so set it to `buffer.length - 1` here.\n *\n * TODO: Refactor `parse` to increment index before calling states.\n */\n this.index = this.buffer.length + this.offset - 1;\n return false;\n }\n /**\n * Comments and CDATA end with `-->` and `]]>`.\n *\n * Their common qualities are:\n * - Their end sequences have a distinct character they start with.\n * - That character is then repeated, so we have to check multiple repeats.\n * - All characters but the start character of the sequence can be skipped.\n */\n stateInCommentLike(c) {\n if (c === this.currentSequence[this.sequenceIndex]) {\n if (++this.sequenceIndex === this.currentSequence.length) {\n if (this.currentSequence === Sequences.CdataEnd) {\n this.cbs.oncdata(this.sectionStart, this.index, 2);\n }\n else {\n this.cbs.oncomment(this.sectionStart, this.index, 2);\n }\n this.sequenceIndex = 0;\n this.sectionStart = this.index + 1;\n this.state = State.Text;\n }\n }\n else if (this.sequenceIndex === 0) {\n // Fast-forward to the first character of the sequence\n if (this.fastForwardTo(this.currentSequence[0])) {\n this.sequenceIndex = 1;\n }\n }\n else if (c !== this.currentSequence[this.sequenceIndex - 1]) {\n // Allow long sequences, eg. --->, ]]]>\n this.sequenceIndex = 0;\n }\n }\n /**\n * HTML only allows ASCII alpha characters (a-z and A-Z) at the beginning of a tag name.\n *\n * XML allows a lot more characters here (@see https://www.w3.org/TR/REC-xml/#NT-NameStartChar).\n * We allow anything that wouldn't end the tag.\n */\n isTagStartChar(c) {\n return this.xmlMode ? !isEndOfTagSection(c) : isASCIIAlpha(c);\n }\n startSpecial(sequence, offset) {\n this.isSpecial = true;\n this.currentSequence = sequence;\n this.sequenceIndex = offset;\n this.state = State.SpecialStartSequence;\n }\n stateBeforeTagName(c) {\n if (c === CharCodes.ExclamationMark) {\n this.state = State.BeforeDeclaration;\n this.sectionStart = this.index + 1;\n }\n else if (c === CharCodes.Questionmark) {\n this.state = State.InProcessingInstruction;\n this.sectionStart = this.index + 1;\n }\n else if (this.isTagStartChar(c)) {\n const lower = c | 0x20;\n this.sectionStart = this.index;\n if (this.xmlMode) {\n this.state = State.InTagName;\n }\n else if (lower === Sequences.ScriptEnd[2]) {\n this.state = State.BeforeSpecialS;\n }\n else if (lower === Sequences.TitleEnd[2] ||\n lower === Sequences.XmpEnd[2]) {\n this.state = State.BeforeSpecialT;\n }\n else {\n this.state = State.InTagName;\n }\n }\n else if (c === CharCodes.Slash) {\n this.state = State.BeforeClosingTagName;\n }\n else {\n this.state = State.Text;\n this.stateText(c);\n }\n }\n stateInTagName(c) {\n if (isEndOfTagSection(c)) {\n this.cbs.onopentagname(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n }\n stateBeforeClosingTagName(c) {\n if (isWhitespace(c)) {\n // Ignore\n }\n else if (c === CharCodes.Gt) {\n this.state = State.Text;\n }\n else {\n this.state = this.isTagStartChar(c)\n ? State.InClosingTagName\n : State.InSpecialComment;\n this.sectionStart = this.index;\n }\n }\n stateInClosingTagName(c) {\n if (c === CharCodes.Gt || isWhitespace(c)) {\n this.cbs.onclosetag(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = State.AfterClosingTagName;\n this.stateAfterClosingTagName(c);\n }\n }\n stateAfterClosingTagName(c) {\n // Skip everything until \">\"\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n }\n stateBeforeAttributeName(c) {\n if (c === CharCodes.Gt) {\n this.cbs.onopentagend(this.index);\n if (this.isSpecial) {\n this.state = State.InSpecialTag;\n this.sequenceIndex = 0;\n }\n else {\n this.state = State.Text;\n }\n this.sectionStart = this.index + 1;\n }\n else if (c === CharCodes.Slash) {\n this.state = State.InSelfClosingTag;\n }\n else if (!isWhitespace(c)) {\n this.state = State.InAttributeName;\n this.sectionStart = this.index;\n }\n }\n stateInSelfClosingTag(c) {\n if (c === CharCodes.Gt) {\n this.cbs.onselfclosingtag(this.index);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n this.isSpecial = false; // Reset special state, in case of self-closing special tags\n }\n else if (!isWhitespace(c)) {\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n }\n stateInAttributeName(c) {\n if (c === CharCodes.Eq || isEndOfTagSection(c)) {\n this.cbs.onattribname(this.sectionStart, this.index);\n this.sectionStart = this.index;\n this.state = State.AfterAttributeName;\n this.stateAfterAttributeName(c);\n }\n }\n stateAfterAttributeName(c) {\n if (c === CharCodes.Eq) {\n this.state = State.BeforeAttributeValue;\n }\n else if (c === CharCodes.Slash || c === CharCodes.Gt) {\n this.cbs.onattribend(QuoteType.NoValue, this.sectionStart);\n this.sectionStart = -1;\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n else if (!isWhitespace(c)) {\n this.cbs.onattribend(QuoteType.NoValue, this.sectionStart);\n this.state = State.InAttributeName;\n this.sectionStart = this.index;\n }\n }\n stateBeforeAttributeValue(c) {\n if (c === CharCodes.DoubleQuote) {\n this.state = State.InAttributeValueDq;\n this.sectionStart = this.index + 1;\n }\n else if (c === CharCodes.SingleQuote) {\n this.state = State.InAttributeValueSq;\n this.sectionStart = this.index + 1;\n }\n else if (!isWhitespace(c)) {\n this.sectionStart = this.index;\n this.state = State.InAttributeValueNq;\n this.stateInAttributeValueNoQuotes(c); // Reconsume token\n }\n }\n handleInAttributeValue(c, quote) {\n if (c === quote ||\n (!this.decodeEntities && this.fastForwardTo(quote))) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.cbs.onattribend(quote === CharCodes.DoubleQuote\n ? QuoteType.Double\n : QuoteType.Single, this.index + 1);\n this.state = State.BeforeAttributeName;\n }\n else if (this.decodeEntities && c === CharCodes.Amp) {\n this.startEntity();\n }\n }\n stateInAttributeValueDoubleQuotes(c) {\n this.handleInAttributeValue(c, CharCodes.DoubleQuote);\n }\n stateInAttributeValueSingleQuotes(c) {\n this.handleInAttributeValue(c, CharCodes.SingleQuote);\n }\n stateInAttributeValueNoQuotes(c) {\n if (isWhitespace(c) || c === CharCodes.Gt) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.cbs.onattribend(QuoteType.Unquoted, this.index);\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n else if (this.decodeEntities && c === CharCodes.Amp) {\n this.startEntity();\n }\n }\n stateBeforeDeclaration(c) {\n if (c === CharCodes.OpeningSquareBracket) {\n this.state = State.CDATASequence;\n this.sequenceIndex = 0;\n }\n else {\n this.state =\n c === CharCodes.Dash\n ? State.BeforeComment\n : State.InDeclaration;\n }\n }\n stateInDeclaration(c) {\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.cbs.ondeclaration(this.sectionStart, this.index);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n }\n stateInProcessingInstruction(c) {\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.cbs.onprocessinginstruction(this.sectionStart, this.index);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n }\n stateBeforeComment(c) {\n if (c === CharCodes.Dash) {\n this.state = State.InCommentLike;\n this.currentSequence = Sequences.CommentEnd;\n // Allow short comments (eg. <!-->)\n this.sequenceIndex = 2;\n this.sectionStart = this.index + 1;\n }\n else {\n this.state = State.InDeclaration;\n }\n }\n stateInSpecialComment(c) {\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.cbs.oncomment(this.sectionStart, this.index, 0);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n }\n stateBeforeSpecialS(c) {\n const lower = c | 0x20;\n if (lower === Sequences.ScriptEnd[3]) {\n this.startSpecial(Sequences.ScriptEnd, 4);\n }\n else if (lower === Sequences.StyleEnd[3]) {\n this.startSpecial(Sequences.StyleEnd, 4);\n }\n else {\n this.state = State.InTagName;\n this.stateInTagName(c); // Consume the token again\n }\n }\n stateBeforeSpecialT(c) {\n const lower = c | 0x20;\n switch (lower) {\n case Sequences.TitleEnd[3]: {\n this.startSpecial(Sequences.TitleEnd, 4);\n break;\n }\n case Sequences.TextareaEnd[3]: {\n this.startSpecial(Sequences.TextareaEnd, 4);\n break;\n }\n case Sequences.XmpEnd[3]: {\n this.startSpecial(Sequences.XmpEnd, 4);\n break;\n }\n default: {\n this.state = State.InTagName;\n this.stateInTagName(c); // Consume the token again\n }\n }\n }\n startEntity() {\n this.baseState = this.state;\n this.state = State.InEntity;\n this.entityStart = this.index;\n this.entityDecoder.startEntity(this.xmlMode\n ? DecodingMode.Strict\n : this.baseState === State.Text ||\n this.baseState === State.InSpecialTag\n ? DecodingMode.Legacy\n : DecodingMode.Attribute);\n }\n stateInEntity() {\n const indexInBuffer = this.index - this.offset;\n const length = this.entityDecoder.write(this.buffer, indexInBuffer);\n // If `length` is positive, we are done with the entity.\n if (length >= 0) {\n this.state = this.baseState;\n if (length === 0) {\n this.index -= 1;\n }\n }\n else {\n if (indexInBuffer < this.buffer.length &&\n this.buffer.charCodeAt(indexInBuffer) === CharCodes.Amp) {\n this.state = this.baseState;\n this.index -= 1;\n return;\n }\n // Mark buffer as consumed.\n this.index = this.offset + this.buffer.length - 1;\n }\n }\n /**\n * Remove data that has already been consumed from the buffer.\n */\n cleanup() {\n // If we are inside of text or attributes, emit what we already have.\n if (this.running && this.sectionStart !== this.index) {\n if (this.state === State.Text ||\n (this.state === State.InSpecialTag && this.sequenceIndex === 0)) {\n this.cbs.ontext(this.sectionStart, this.index);\n this.sectionStart = this.index;\n }\n else if (this.state === State.InAttributeValueDq ||\n this.state === State.InAttributeValueSq ||\n this.state === State.InAttributeValueNq) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = this.index;\n }\n }\n }\n shouldContinue() {\n return this.index < this.buffer.length + this.offset && this.running;\n }\n /**\n * Iterates through the buffer, calling the function corresponding to the current state.\n *\n * States that are more likely to be hit are higher up, as a performance improvement.\n */\n parse() {\n while (this.shouldContinue()) {\n const c = this.buffer.charCodeAt(this.index - this.offset);\n switch (this.state) {\n case State.Text: {\n this.stateText(c);\n break;\n }\n case State.SpecialStartSequence: {\n this.stateSpecialStartSequence(c);\n break;\n }\n case State.InSpecialTag: {\n this.stateInSpecialTag(c);\n break;\n }\n case State.CDATASequence: {\n this.stateCDATASequence(c);\n break;\n }\n case State.InAttributeValueDq: {\n this.stateInAttributeValueDoubleQuotes(c);\n break;\n }\n case State.InAttributeName: {\n this.stateInAttributeName(c);\n break;\n }\n case State.InCommentLike: {\n this.stateInCommentLike(c);\n break;\n }\n case State.InSpecialComment: {\n this.stateInSpecialComment(c);\n break;\n }\n case State.BeforeAttributeName: {\n this.stateBeforeAttributeName(c);\n break;\n }\n case State.InTagName: {\n this.stateInTagName(c);\n break;\n }\n case State.InClosingTagName: {\n this.stateInClosingTagName(c);\n break;\n }\n case State.BeforeTagName: {\n this.stateBeforeTagName(c);\n break;\n }\n case State.AfterAttributeName: {\n this.stateAfterAttributeName(c);\n break;\n }\n case State.InAttributeValueSq: {\n this.stateInAttributeValueSingleQuotes(c);\n break;\n }\n case State.BeforeAttributeValue: {\n this.stateBeforeAttributeValue(c);\n break;\n }\n case State.BeforeClosingTagName: {\n this.stateBeforeClosingTagName(c);\n break;\n }\n case State.AfterClosingTagName: {\n this.stateAfterClosingTagName(c);\n break;\n }\n case State.BeforeSpecialS: {\n this.stateBeforeSpecialS(c);\n break;\n }\n case State.BeforeSpecialT: {\n this.stateBeforeSpecialT(c);\n break;\n }\n case State.InAttributeValueNq: {\n this.stateInAttributeValueNoQuotes(c);\n break;\n }\n case State.InSelfClosingTag: {\n this.stateInSelfClosingTag(c);\n break;\n }\n case State.InDeclaration: {\n this.stateInDeclaration(c);\n break;\n }\n case State.BeforeDeclaration: {\n this.stateBeforeDeclaration(c);\n break;\n }\n case State.BeforeComment: {\n this.stateBeforeComment(c);\n break;\n }\n case State.InProcessingInstruction: {\n this.stateInProcessingInstruction(c);\n break;\n }\n case State.InEntity: {\n this.stateInEntity();\n break;\n }\n }\n this.index++;\n }\n this.cleanup();\n }\n finish() {\n if (this.state === State.InEntity) {\n this.entityDecoder.end();\n this.state = this.baseState;\n }\n this.handleTrailingData();\n this.cbs.onend();\n }\n /** Handle any trailing data. */\n handleTrailingData() {\n const endIndex = this.buffer.length + this.offset;\n // If there is no remaining data, we are done.\n if (this.sectionStart >= endIndex) {\n return;\n }\n if (this.state === State.InCommentLike) {\n if (this.currentSequence === Sequences.CdataEnd) {\n this.cbs.oncdata(this.sectionStart, endIndex, 0);\n }\n else {\n this.cbs.oncomment(this.sectionStart, endIndex, 0);\n }\n }\n else if (this.state === State.InTagName ||\n this.state === State.BeforeAttributeName ||\n this.state === State.BeforeAttributeValue ||\n this.state === State.AfterAttributeName ||\n this.state === State.InAttributeName ||\n this.state === State.InAttributeValueSq ||\n this.state === State.InAttributeValueDq ||\n this.state === State.InAttributeValueNq ||\n this.state === State.InClosingTagName) {\n /*\n * If we are currently in an opening or closing tag, us not calling the\n * respective callback signals that the tag should be ignored.\n */\n }\n else {\n this.cbs.ontext(this.sectionStart, endIndex);\n }\n }\n emitCodePoint(cp, consumed) {\n if (this.baseState !== State.Text &&\n this.baseState !== State.InSpecialTag) {\n if (this.sectionStart < this.entityStart) {\n this.cbs.onattribdata(this.sectionStart, this.entityStart);\n }\n this.sectionStart = this.entityStart + consumed;\n this.index = this.sectionStart - 1;\n this.cbs.onattribentity(cp);\n }\n else {\n if (this.sectionStart < this.entityStart) {\n this.cbs.ontext(this.sectionStart, this.entityStart);\n }\n this.sectionStart = this.entityStart + consumed;\n this.index = this.sectionStart - 1;\n this.cbs.ontextentity(cp, this.sectionStart);\n }\n }\n}\n//# sourceMappingURL=Tokenizer.js.map","import Tokenizer, { QuoteType } from \"./Tokenizer.js\";\nimport { fromCodePoint } from \"entities/decode\";\nconst formTags = new Set([\n \"input\",\n \"option\",\n \"optgroup\",\n \"select\",\n \"button\",\n \"datalist\",\n \"textarea\",\n]);\nconst pTag = new Set([\"p\"]);\nconst tableSectionTags = new Set([\"thead\", \"tbody\"]);\nconst ddtTags = new Set([\"dd\", \"dt\"]);\nconst rtpTags = new Set([\"rt\", \"rp\"]);\nconst openImpliesClose = new Map([\n [\"tr\", new Set([\"tr\", \"th\", \"td\"])],\n [\"th\", new Set([\"th\"])],\n [\"td\", new Set([\"thead\", \"th\", \"td\"])],\n [\"body\", new Set([\"head\", \"link\", \"script\"])],\n [\"li\", new Set([\"li\"])],\n [\"p\", pTag],\n [\"h1\", pTag],\n [\"h2\", pTag],\n [\"h3\", pTag],\n [\"h4\", pTag],\n [\"h5\", pTag],\n [\"h6\", pTag],\n [\"select\", formTags],\n [\"input\", formTags],\n [\"output\", formTags],\n [\"button\", formTags],\n [\"datalist\", formTags],\n [\"textarea\", formTags],\n [\"option\", new Set([\"option\"])],\n [\"optgroup\", new Set([\"optgroup\", \"option\"])],\n [\"dd\", ddtTags],\n [\"dt\", ddtTags],\n [\"address\", pTag],\n [\"article\", pTag],\n [\"aside\", pTag],\n [\"blockquote\", pTag],\n [\"details\", pTag],\n [\"div\", pTag],\n [\"dl\", pTag],\n [\"fieldset\", pTag],\n [\"figcaption\", pTag],\n [\"figure\", pTag],\n [\"footer\", pTag],\n [\"form\", pTag],\n [\"header\", pTag],\n [\"hr\", pTag],\n [\"main\", pTag],\n [\"nav\", pTag],\n [\"ol\", pTag],\n [\"pre\", pTag],\n [\"section\", pTag],\n [\"table\", pTag],\n [\"ul\", pTag],\n [\"rt\", rtpTags],\n [\"rp\", rtpTags],\n [\"tbody\", tableSectionTags],\n [\"tfoot\", tableSectionTags],\n]);\nconst voidElements = new Set([\n \"area\",\n \"base\",\n \"basefont\",\n \"br\",\n \"col\",\n \"command\",\n \"embed\",\n \"frame\",\n \"hr\",\n \"img\",\n \"input\",\n \"isindex\",\n \"keygen\",\n \"link\",\n \"meta\",\n \"param\",\n \"source\",\n \"track\",\n \"wbr\",\n]);\nconst foreignContextElements = new Set([\"math\", \"svg\"]);\nconst htmlIntegrationElements = new Set([\n \"mi\",\n \"mo\",\n \"mn\",\n \"ms\",\n \"mtext\",\n \"annotation-xml\",\n \"foreignobject\",\n \"desc\",\n \"title\",\n]);\nconst reNameEnd = /\\s|\\//;\nexport class Parser {\n constructor(cbs, options = {}) {\n var _a, _b, _c, _d, _e, _f;\n this.options = options;\n /** The start index of the last event. */\n this.startIndex = 0;\n /** The end index of the last event. */\n this.endIndex = 0;\n /**\n * Store the start index of the current open tag,\n * so we can update the start index for attributes.\n */\n this.openTagStart = 0;\n this.tagname = \"\";\n this.attribname = \"\";\n this.attribvalue = \"\";\n this.attribs = null;\n this.stack = [];\n this.buffers = [];\n this.bufferOffset = 0;\n /** The index of the last written buffer. Used when resuming after a `pause()`. */\n this.writeIndex = 0;\n /** Indicates whether the parser has finished running / `.end` has been called. */\n this.ended = false;\n this.cbs = cbs !== null && cbs !== void 0 ? cbs : {};\n this.htmlMode = !this.options.xmlMode;\n this.lowerCaseTagNames = (_a = options.lowerCaseTags) !== null && _a !== void 0 ? _a : this.htmlMode;\n this.lowerCaseAttributeNames =\n (_b = options.lowerCaseAttributeNames) !== null && _b !== void 0 ? _b : this.htmlMode;\n this.recognizeSelfClosing =\n (_c = options.recognizeSelfClosing) !== null && _c !== void 0 ? _c : !this.htmlMode;\n this.tokenizer = new ((_d = options.Tokenizer) !== null && _d !== void 0 ? _d : Tokenizer)(this.options, this);\n this.foreignContext = [!this.htmlMode];\n (_f = (_e = this.cbs).onparserinit) === null || _f === void 0 ? void 0 : _f.call(_e, this);\n }\n // Tokenizer event handlers\n /** @internal */\n ontext(start, endIndex) {\n var _a, _b;\n const data = this.getSlice(start, endIndex);\n this.endIndex = endIndex - 1;\n (_b = (_a = this.cbs).ontext) === null || _b === void 0 ? void 0 : _b.call(_a, data);\n this.startIndex = endIndex;\n }\n /** @internal */\n ontextentity(cp, endIndex) {\n var _a, _b;\n this.endIndex = endIndex - 1;\n (_b = (_a = this.cbs).ontext) === null || _b === void 0 ? void 0 : _b.call(_a, fromCodePoint(cp));\n this.startIndex = endIndex;\n }\n /**\n * Checks if the current tag is a void element. Override this if you want\n * to specify your own additional void elements.\n */\n isVoidElement(name) {\n return this.htmlMode && voidElements.has(name);\n }\n /** @internal */\n onopentagname(start, endIndex) {\n this.endIndex = endIndex;\n let name = this.getSlice(start, endIndex);\n if (this.lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n this.emitOpenTag(name);\n }\n emitOpenTag(name) {\n var _a, _b, _c, _d;\n this.openTagStart = this.startIndex;\n this.tagname = name;\n const impliesClose = this.htmlMode && openImpliesClose.get(name);\n if (impliesClose) {\n while (this.stack.length > 0 && impliesClose.has(this.stack[0])) {\n const element = this.stack.shift();\n (_b = (_a = this.cbs).onclosetag) === null || _b === void 0 ? void 0 : _b.call(_a, element, true);\n }\n }\n if (!this.isVoidElement(name)) {\n this.stack.unshift(name);\n if (this.htmlMode) {\n if (foreignContextElements.has(name)) {\n this.foreignContext.unshift(true);\n }\n else if (htmlIntegrationElements.has(name)) {\n this.foreignContext.unshift(false);\n }\n }\n }\n (_d = (_c = this.cbs).onopentagname) === null || _d === void 0 ? void 0 : _d.call(_c, name);\n if (this.cbs.onopentag)\n this.attribs = {};\n }\n endOpenTag(isImplied) {\n var _a, _b;\n this.startIndex = this.openTagStart;\n if (this.attribs) {\n (_b = (_a = this.cbs).onopentag) === null || _b === void 0 ? void 0 : _b.call(_a, this.tagname, this.attribs, isImplied);\n this.attribs = null;\n }\n if (this.cbs.onclosetag && this.isVoidElement(this.tagname)) {\n this.cbs.onclosetag(this.tagname, true);\n }\n this.tagname = \"\";\n }\n /** @internal */\n onopentagend(endIndex) {\n this.endIndex = endIndex;\n this.endOpenTag(false);\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n /** @internal */\n onclosetag(start, endIndex) {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n this.endIndex = endIndex;\n let name = this.getSlice(start, endIndex);\n if (this.lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n if (this.htmlMode &&\n (foreignContextElements.has(name) ||\n htmlIntegrationElements.has(name))) {\n this.foreignContext.shift();\n }\n if (!this.isVoidElement(name)) {\n const pos = this.stack.indexOf(name);\n if (pos !== -1) {\n for (let index = 0; index <= pos; index++) {\n const element = this.stack.shift();\n // We know the stack has sufficient elements.\n (_b = (_a = this.cbs).onclosetag) === null || _b === void 0 ? void 0 : _b.call(_a, element, index !== pos);\n }\n }\n else if (this.htmlMode && name === \"p\") {\n // Implicit open before close\n this.emitOpenTag(\"p\");\n this.closeCurrentTag(true);\n }\n }\n else if (this.htmlMode && name === \"br\") {\n // We can't use `emitOpenTag` for implicit open, as `br` would be implicitly closed.\n (_d = (_c = this.cbs).onopentagname) === null || _d === void 0 ? void 0 : _d.call(_c, \"br\");\n (_f = (_e = this.cbs).onopentag) === null || _f === void 0 ? void 0 : _f.call(_e, \"br\", {}, true);\n (_h = (_g = this.cbs).onclosetag) === null || _h === void 0 ? void 0 : _h.call(_g, \"br\", false);\n }\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n /** @internal */\n onselfclosingtag(endIndex) {\n this.endIndex = endIndex;\n if (this.recognizeSelfClosing || this.foreignContext[0]) {\n this.closeCurrentTag(false);\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n else {\n // Ignore the fact that the tag is self-closing.\n this.onopentagend(endIndex);\n }\n }\n closeCurrentTag(isOpenImplied) {\n var _a, _b;\n const name = this.tagname;\n this.endOpenTag(isOpenImplied);\n // Self-closing tags will be on the top of the stack\n if (this.stack[0] === name) {\n // If the opening tag isn't implied, the closing tag has to be implied.\n (_b = (_a = this.cbs).onclosetag) === null || _b === void 0 ? void 0 : _b.call(_a, name, !isOpenImplied);\n this.stack.shift();\n }\n }\n /** @internal */\n onattribname(start, endIndex) {\n this.startIndex = start;\n const name = this.getSlice(start, endIndex);\n this.attribname = this.lowerCaseAttributeNames\n ? name.toLowerCase()\n : name;\n }\n /** @internal */\n onattribdata(start, endIndex) {\n this.attribvalue += this.getSlice(start, endIndex);\n }\n /** @internal */\n onattribentity(cp) {\n this.attribvalue += fromCodePoint(cp);\n }\n /** @internal */\n onattribend(quote, endIndex) {\n var _a, _b;\n this.endIndex = endIndex;\n (_b = (_a = this.cbs).onattribute) === null || _b === void 0 ? void 0 : _b.call(_a, this.attribname, this.attribvalue, quote === QuoteType.Double\n ? '\"'\n : quote === QuoteType.Single\n ? \"'\"\n : quote === QuoteType.NoValue\n ? undefined\n : null);\n if (this.attribs &&\n !Object.prototype.hasOwnProperty.call(this.attribs, this.attribname)) {\n this.attribs[this.attribname] = this.attribvalue;\n }\n this.attribvalue = \"\";\n }\n getInstructionName(value) {\n const index = value.search(reNameEnd);\n let name = index < 0 ? value : value.substr(0, index);\n if (this.lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n return name;\n }\n /** @internal */\n ondeclaration(start, endIndex) {\n this.endIndex = endIndex;\n const value = this.getSlice(start, endIndex);\n if (this.cbs.onprocessinginstruction) {\n const name = this.getInstructionName(value);\n this.cbs.onprocessinginstruction(`!${name}`, `!${value}`);\n }\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n /** @internal */\n onprocessinginstruction(start, endIndex) {\n this.endIndex = endIndex;\n const value = this.getSlice(start, endIndex);\n if (this.cbs.onprocessinginstruction) {\n const name = this.getInstructionName(value);\n this.cbs.onprocessinginstruction(`?${name}`, `?${value}`);\n }\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n /** @internal */\n oncomment(start, endIndex, offset) {\n var _a, _b, _c, _d;\n this.endIndex = endIndex;\n (_b = (_a = this.cbs).oncomment) === null || _b === void 0 ? void 0 : _b.call(_a, this.getSlice(start, endIndex - offset));\n (_d = (_c = this.cbs).oncommentend) === null || _d === void 0 ? void 0 : _d.call(_c);\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n /** @internal */\n oncdata(start, endIndex, offset) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\n this.endIndex = endIndex;\n const value = this.getSlice(start, endIndex - offset);\n if (!this.htmlMode || this.options.recognizeCDATA) {\n (_b = (_a = this.cbs).oncdatastart) === null || _b === void 0 ? void 0 : _b.call(_a);\n (_d = (_c = this.cbs).ontext) === null || _d === void 0 ? void 0 : _d.call(_c, value);\n (_f = (_e = this.cbs).oncdataend) === null || _f === void 0 ? void 0 : _f.call(_e);\n }\n else {\n (_h = (_g = this.cbs).oncomment) === null || _h === void 0 ? void 0 : _h.call(_g, `[CDATA[${value}]]`);\n (_k = (_j = this.cbs).oncommentend) === null || _k === void 0 ? void 0 : _k.call(_j);\n }\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n /** @internal */\n onend() {\n var _a, _b;\n if (this.cbs.onclosetag) {\n // Set the end index for all remaining tags\n this.endIndex = this.startIndex;\n for (let index = 0; index < this.stack.length; index++) {\n this.cbs.onclosetag(this.stack[index], true);\n }\n }\n (_b = (_a = this.cbs).onend) === null || _b === void 0 ? void 0 : _b.call(_a);\n }\n /**\n * Resets the parser to a blank state, ready to parse a new HTML document\n */\n reset() {\n var _a, _b, _c, _d;\n (_b = (_a = this.cbs).onreset) === null || _b === void 0 ? void 0 : _b.call(_a);\n this.tokenizer.reset();\n this.tagname = \"\";\n this.attribname = \"\";\n this.attribs = null;\n this.stack.length = 0;\n this.startIndex = 0;\n this.endIndex = 0;\n (_d = (_c = this.cbs).onparserinit) === null || _d === void 0 ? void 0 : _d.call(_c, this);\n this.buffers.length = 0;\n this.foreignContext.length = 0;\n this.foreignContext.unshift(!this.htmlMode);\n this.bufferOffset = 0;\n this.writeIndex = 0;\n this.ended = false;\n }\n /**\n * Resets the parser, then parses a complete document and\n * pushes it to the handler.\n *\n * @param data Document to parse.\n */\n parseComplete(data) {\n this.reset();\n this.end(data);\n }\n getSlice(start, end) {\n while (start - this.bufferOffset >= this.buffers[0].length) {\n this.shiftBuffer();\n }\n let slice = this.buffers[0].slice(start - this.bufferOffset, end - this.bufferOffset);\n while (end - this.bufferOffset > this.buffers[0].length) {\n this.shiftBuffer();\n slice += this.buffers[0].slice(0, end - this.bufferOffset);\n }\n return slice;\n }\n shiftBuffer() {\n this.bufferOffset += this.buffers[0].length;\n this.writeIndex--;\n this.buffers.shift();\n }\n /**\n * Parses a chunk of data and calls the corresponding callbacks.\n *\n * @param chunk Chunk to parse.\n */\n write(chunk) {\n var _a, _b;\n if (this.ended) {\n (_b = (_a = this.cbs).onerror) === null || _b === void 0 ? void 0 : _b.call(_a, new Error(\".write() after done!\"));\n return;\n }\n this.buffers.push(chunk);\n if (this.tokenizer.running) {\n this.tokenizer.write(chunk);\n this.writeIndex++;\n }\n }\n /**\n * Parses the end of the buffer and clears the stack, calls onend.\n *\n * @param chunk Optional final chunk to parse.\n */\n end(chunk) {\n var _a, _b;\n if (this.ended) {\n (_b = (_a = this.cbs).onerror) === null || _b === void 0 ? void 0 : _b.call(_a, new Error(\".end() after done!\"));\n return;\n }\n if (chunk)\n this.write(chunk);\n this.ended = true;\n this.tokenizer.end();\n }\n /**\n * Pauses parsing. The parser won't emit events until `resume` is called.\n */\n pause() {\n this.tokenizer.pause();\n }\n /**\n * Resumes parsing after `pause` was called.\n */\n resume() {\n this.tokenizer.resume();\n while (this.tokenizer.running &&\n this.writeIndex < this.buffers.length) {\n this.tokenizer.write(this.buffers[this.writeIndex++]);\n }\n if (this.ended)\n this.tokenizer.end();\n }\n /**\n * Alias of `write`, for backwards compatibility.\n *\n * @param chunk Chunk to parse.\n * @deprecated\n */\n parseChunk(chunk) {\n this.write(chunk);\n }\n /**\n * Alias of `end`, for backwards compatibility.\n *\n * @param chunk Optional final chunk to parse.\n * @deprecated\n */\n done(chunk) {\n this.end(chunk);\n }\n}\n//# sourceMappingURL=Parser.js.map","/** Types of elements found in htmlparser2's DOM */\nexport var ElementType;\n(function (ElementType) {\n /** Type for the root element of a document */\n ElementType[\"Root\"] = \"root\";\n /** Type for Text */\n ElementType[\"Text\"] = \"text\";\n /** Type for <? ... ?> */\n ElementType[\"Directive\"] = \"directive\";\n /** Type for <!-- ... --> */\n ElementType[\"Comment\"] = \"comment\";\n /** Type for <script> tags */\n ElementType[\"Script\"] = \"script\";\n /** Type for <style> tags */\n ElementType[\"Style\"] = \"style\";\n /** Type for Any tag */\n ElementType[\"Tag\"] = \"tag\";\n /** Type for <![CDATA[ ... ]]> */\n ElementType[\"CDATA\"] = \"cdata\";\n /** Type for <!doctype ...> */\n ElementType[\"Doctype\"] = \"doctype\";\n})(ElementType || (ElementType = {}));\n/**\n * Tests whether an element is a tag or not.\n *\n * @param elem Element to test\n */\nexport function isTag(elem) {\n return (elem.type === ElementType.Tag ||\n elem.type === ElementType.Script ||\n elem.type === ElementType.Style);\n}\n// Exports for backwards compatibility\n/** Type for the root element of a document */\nexport const Root = ElementType.Root;\n/** Type for Text */\nexport const Text = ElementType.Text;\n/** Type for <? ... ?> */\nexport const Directive = ElementType.Directive;\n/** Type for <!-- ... --> */\nexport const Comment = ElementType.Comment;\n/** Type for <script> tags */\nexport const Script = ElementType.Script;\n/** Type for <style> tags */\nexport const Style = ElementType.Style;\n/** Type for Any tag */\nexport const Tag = ElementType.Tag;\n/** Type for <![CDATA[ ... ]]> */\nexport const CDATA = ElementType.CDATA;\n/** Type for <!doctype ...> */\nexport const Doctype = ElementType.Doctype;\n","import { ElementType, isTag as isTagRaw } from \"domelementtype\";\n/**\n * This object will be used as the prototype for Nodes when creating a\n * DOM-Level-1-compliant structure.\n */\nexport class Node {\n constructor() {\n /** Parent of the node */\n this.parent = null;\n /** Previous sibling */\n this.prev = null;\n /** Next sibling */\n this.next = null;\n /** The start index of the node. Requires `withStartIndices` on the handler to be `true. */\n this.startIndex = null;\n /** The end index of the node. Requires `withEndIndices` on the handler to be `true. */\n this.endIndex = null;\n }\n // Read-write aliases for properties\n /**\n * Same as {@link parent}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get parentNode() {\n return this.parent;\n }\n set parentNode(parent) {\n this.parent = parent;\n }\n /**\n * Same as {@link prev}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get previousSibling() {\n return this.prev;\n }\n set previousSibling(prev) {\n this.prev = prev;\n }\n /**\n * Same as {@link next}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get nextSibling() {\n return this.next;\n }\n set nextSibling(next) {\n this.next = next;\n }\n /**\n * Clone this node, and optionally its children.\n *\n * @param recursive Clone child nodes as well.\n * @returns A clone of the node.\n */\n cloneNode(recursive = false) {\n return cloneNode(this, recursive);\n }\n}\n/**\n * A node that contains some data.\n */\nexport class DataNode extends Node {\n /**\n * @param data The content of the data node\n */\n constructor(data) {\n super();\n this.data = data;\n }\n /**\n * Same as {@link data}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get nodeValue() {\n return this.data;\n }\n set nodeValue(data) {\n this.data = data;\n }\n}\n/**\n * Text within the document.\n */\nexport class Text extends DataNode {\n constructor() {\n super(...arguments);\n this.type = ElementType.Text;\n }\n get nodeType() {\n return 3;\n }\n}\n/**\n * Comments within the document.\n */\nexport class Comment extends DataNode {\n constructor() {\n super(...arguments);\n this.type = ElementType.Comment;\n }\n get nodeType() {\n return 8;\n }\n}\n/**\n * Processing instructions, including doc types.\n */\nexport class ProcessingInstruction extends DataNode {\n constructor(name, data) {\n super(data);\n this.name = name;\n this.type = ElementType.Directive;\n }\n get nodeType() {\n return 1;\n }\n}\n/**\n * A `Node` that can have children.\n */\nexport class NodeWithChildren extends Node {\n /**\n * @param children Children of the node. Only certain node types can have children.\n */\n constructor(children) {\n super();\n this.children = children;\n }\n // Aliases\n /** First child of the node. */\n get firstChild() {\n var _a;\n return (_a = this.children[0]) !== null && _a !== void 0 ? _a : null;\n }\n /** Last child of the node. */\n get lastChild() {\n return this.children.length > 0\n ? this.children[this.children.length - 1]\n : null;\n }\n /**\n * Same as {@link children}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get childNodes() {\n return this.children;\n }\n set childNodes(children) {\n this.children = children;\n }\n}\nexport class CDATA extends NodeWithChildren {\n constructor() {\n super(...arguments);\n this.type = ElementType.CDATA;\n }\n get nodeType() {\n return 4;\n }\n}\n/**\n * The root node of the document.\n */\nexport class Document extends NodeWithChildren {\n constructor() {\n super(...arguments);\n this.type = ElementType.Root;\n }\n get nodeType() {\n return 9;\n }\n}\n/**\n * An element within the DOM.\n */\nexport class Element extends NodeWithChildren {\n /**\n * @param name Name of the tag, eg. `div`, `span`.\n * @param attribs Object mapping attribute names to attribute values.\n * @param children Children of the node.\n */\n constructor(name, attribs, children = [], type = name === \"script\"\n ? ElementType.Script\n : name === \"style\"\n ? ElementType.Style\n : ElementType.Tag) {\n super(children);\n this.name = name;\n this.attribs = attribs;\n this.type = type;\n }\n get nodeType() {\n return 1;\n }\n // DOM Level 1 aliases\n /**\n * Same as {@link name}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get tagName() {\n return this.name;\n }\n set tagName(name) {\n this.name = name;\n }\n get attributes() {\n return Object.keys(this.attribs).map((name) => {\n var _a, _b;\n return ({\n name,\n value: this.attribs[name],\n namespace: (_a = this[\"x-attribsNamespace\"]) === null || _a === void 0 ? void 0 : _a[name],\n prefix: (_b = this[\"x-attribsPrefix\"]) === null || _b === void 0 ? void 0 : _b[name],\n });\n });\n }\n}\n/**\n * @param node Node to check.\n * @returns `true` if the node is a `Element`, `false` otherwise.\n */\nexport function isTag(node) {\n return isTagRaw(node);\n}\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `CDATA`, `false` otherwise.\n */\nexport function isCDATA(node) {\n return node.type === ElementType.CDATA;\n}\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `Text`, `false` otherwise.\n */\nexport function isText(node) {\n return node.type === ElementType.Text;\n}\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `Comment`, `false` otherwise.\n */\nexport function isComment(node) {\n return node.type === ElementType.Comment;\n}\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `ProcessingInstruction`, `false` otherwise.\n */\nexport function isDirective(node) {\n return node.type === ElementType.Directive;\n}\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `ProcessingInstruction`, `false` otherwise.\n */\nexport function isDocument(node) {\n return node.type === ElementType.Root;\n}\n/**\n * @param node Node to check.\n * @returns `true` if the node has children, `false` otherwise.\n */\nexport function hasChildren(node) {\n return Object.prototype.hasOwnProperty.call(node, \"children\");\n}\n/**\n * Clone a node, and optionally its children.\n *\n * @param recursive Clone child nodes as well.\n * @returns A clone of the node.\n */\nexport function cloneNode(node, recursive = false) {\n let result;\n if (isText(node)) {\n result = new Text(node.data);\n }\n else if (isComment(node)) {\n result = new Comment(node.data);\n }\n else if (isTag(node)) {\n const children = recursive ? cloneChildren(node.children) : [];\n const clone = new Element(node.name, { ...node.attribs }, children);\n children.forEach((child) => (child.parent = clone));\n if (node.namespace != null) {\n clone.namespace = node.namespace;\n }\n if (node[\"x-attribsNamespace\"]) {\n clone[\"x-attribsNamespace\"] = { ...node[\"x-attribsNamespace\"] };\n }\n if (node[\"x-attribsPrefix\"]) {\n clone[\"x-attribsPrefix\"] = { ...node[\"x-attribsPrefix\"] };\n }\n result = clone;\n }\n else if (isCDATA(node)) {\n const children = recursive ? cloneChildren(node.children) : [];\n const clone = new CDATA(children);\n children.forEach((child) => (child.parent = clone));\n result = clone;\n }\n else if (isDocument(node)) {\n const children = recursive ? cloneChildren(node.children) : [];\n const clone = new Document(children);\n children.forEach((child) => (child.parent = clone));\n if (node[\"x-mode\"]) {\n clone[\"x-mode\"] = node[\"x-mode\"];\n }\n result = clone;\n }\n else if (isDirective(node)) {\n const instruction = new ProcessingInstruction(node.name, node.data);\n if (node[\"x-name\"] != null) {\n instruction[\"x-name\"] = node[\"x-name\"];\n instruction[\"x-publicId\"] = node[\"x-publicId\"];\n instruction[\"x-systemId\"] = node[\"x-systemId\"];\n }\n result = instruction;\n }\n else {\n throw new Error(`Not implemented yet: ${node.type}`);\n }\n result.startIndex = node.startIndex;\n result.endIndex = node.endIndex;\n if (node.sourceCodeLocation != null) {\n result.sourceCodeLocation = node.sourceCodeLocation;\n }\n return result;\n}\nfunction cloneChildren(childs) {\n const children = childs.map((child) => cloneNode(child, true));\n for (let i = 1; i < children.length; i++) {\n children[i].prev = children[i - 1];\n children[i - 1].next = children[i];\n }\n return children;\n}\n","import { ElementType } from \"domelementtype\";\nimport { Element, Text, Comment, CDATA, Document, ProcessingInstruction, } from \"./node.js\";\nexport * from \"./node.js\";\n// Default options\nconst defaultOpts = {\n withStartIndices: false,\n withEndIndices: false,\n xmlMode: false,\n};\nexport class DomHandler {\n /**\n * @param callback Called once parsing has completed.\n * @param options Settings for the handler.\n * @param elementCB Callback whenever a tag is closed.\n */\n constructor(callback, options, elementCB) {\n /** The elements of the DOM */\n this.dom = [];\n /** The root element for the DOM */\n this.root = new Document(this.dom);\n /** Indicated whether parsing has been completed. */\n this.done = false;\n /** Stack of open tags. */\n this.tagStack = [this.root];\n /** A data node that is still being written to. */\n this.lastNode = null;\n /** Reference to the parser instance. Used for location information. */\n this.parser = null;\n // Make it possible to skip arguments, for backwards-compatibility\n if (typeof options === \"function\") {\n elementCB = options;\n options = defaultOpts;\n }\n if (typeof callback === \"object\") {\n options = callback;\n callback = undefined;\n }\n this.callback = callback !== null && callback !== void 0 ? callback : null;\n this.options = options !== null && options !== void 0 ? options : defaultOpts;\n this.elementCB = elementCB !== null && elementCB !== void 0 ? elementCB : null;\n }\n onparserinit(parser) {\n this.parser = parser;\n }\n // Resets the handler back to starting state\n onreset() {\n this.dom = [];\n this.root = new Document(this.dom);\n this.done = false;\n this.tagStack = [this.root];\n this.lastNode = null;\n this.parser = null;\n }\n // Signals the handler that parsing is done\n onend() {\n if (this.done)\n return;\n this.done = true;\n this.parser = null;\n this.handleCallback(null);\n }\n onerror(error) {\n this.handleCallback(error);\n }\n onclosetag() {\n this.lastNode = null;\n const elem = this.tagStack.pop();\n if (this.options.withEndIndices) {\n elem.endIndex = this.parser.endIndex;\n }\n if (this.elementCB)\n this.elementCB(elem);\n }\n onopentag(name, attribs) {\n const type = this.options.xmlMode ? ElementType.Tag : undefined;\n const element = new Element(name, attribs, undefined, type);\n this.addNode(element);\n this.tagStack.push(element);\n }\n ontext(data) {\n const { lastNode } = this;\n if (lastNode && lastNode.type === ElementType.Text) {\n lastNode.data += data;\n if (this.options.withEndIndices) {\n lastNode.endIndex = this.parser.endIndex;\n }\n }\n else {\n const node = new Text(data);\n this.addNode(node);\n this.lastNode = node;\n }\n }\n oncomment(data) {\n if (this.lastNode && this.lastNode.type === ElementType.Comment) {\n this.lastNode.data += data;\n return;\n }\n const node = new Comment(data);\n this.addNode(node);\n this.lastNode = node;\n }\n oncommentend() {\n this.lastNode = null;\n }\n oncdatastart() {\n const text = new Text(\"\");\n const node = new CDATA([text]);\n this.addNode(node);\n text.parent = node;\n this.lastNode = text;\n }\n oncdataend() {\n this.lastNode = null;\n }\n onprocessinginstruction(name, data) {\n const node = new ProcessingInstruction(name, data);\n this.addNode(node);\n }\n handleCallback(error) {\n if (typeof this.callback === \"function\") {\n this.callback(error, this.dom);\n }\n else if (error) {\n throw error;\n }\n }\n addNode(node) {\n const parent = this.tagStack[this.tagStack.length - 1];\n const previousSibling = parent.children[parent.children.length - 1];\n if (this.options.withStartIndices) {\n node.startIndex = this.parser.startIndex;\n }\n if (this.options.withEndIndices) {\n node.endIndex = this.parser.endIndex;\n }\n parent.children.push(node);\n if (previousSibling) {\n node.prev = previousSibling;\n previousSibling.next = node;\n }\n node.parent = parent;\n this.lastNode = null;\n }\n}\nexport default DomHandler;\n","import { isTag, isCDATA, isText, hasChildren, isComment, } from \"domhandler\";\nimport renderHTML from \"dom-serializer\";\nimport { ElementType } from \"domelementtype\";\n/**\n * @category Stringify\n * @deprecated Use the `dom-serializer` module directly.\n * @param node Node to get the outer HTML of.\n * @param options Options for serialization.\n * @returns `node`'s outer HTML.\n */\nexport function getOuterHTML(node, options) {\n return renderHTML(node, options);\n}\n/**\n * @category Stringify\n * @deprecated Use the `dom-serializer` module directly.\n * @param node Node to get the inner HTML of.\n * @param options Options for serialization.\n * @returns `node`'s inner HTML.\n */\nexport function getInnerHTML(node, options) {\n return hasChildren(node)\n ? node.children.map((node) => getOuterHTML(node, options)).join(\"\")\n : \"\";\n}\n/**\n * Get a node's inner text. Same as `textContent`, but inserts newlines for `<br>` tags. Ignores comments.\n *\n * @category Stringify\n * @deprecated Use `textContent` instead.\n * @param node Node to get the inner text of.\n * @returns `node`'s inner text.\n */\nexport function getText(node) {\n if (Array.isArray(node))\n return node.map(getText).join(\"\");\n if (isTag(node))\n return node.name === \"br\" ? \"\\n\" : getText(node.children);\n if (isCDATA(node))\n return getText(node.children);\n if (isText(node))\n return node.data;\n return \"\";\n}\n/**\n * Get a node's text content. Ignores comments.\n *\n * @category Stringify\n * @param node Node to get the text content of.\n * @returns `node`'s text content.\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent}\n */\nexport function textContent(node) {\n if (Array.isArray(node))\n return node.map(textContent).join(\"\");\n if (hasChildren(node) && !isComment(node)) {\n return textContent(node.children);\n }\n if (isText(node))\n return node.data;\n return \"\";\n}\n/**\n * Get a node's inner text, ignoring `<script>` and `<style>` tags. Ignores comments.\n *\n * @category Stringify\n * @param node Node to get the inner text of.\n * @returns `node`'s inner text.\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Node/innerText}\n */\nexport function innerText(node) {\n if (Array.isArray(node))\n return node.map(innerText).join(\"\");\n if (hasChildren(node) && (node.type === ElementType.Tag || isCDATA(node))) {\n return innerText(node.children);\n }\n if (isText(node))\n return node.data;\n return \"\";\n}\n//# sourceMappingURL=stringify.js.map","import { isTag, hasChildren } from \"domhandler\";\n/**\n * Search a node and its children for nodes passing a test function. If `node` is not an array, it will be wrapped in one.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param node Node to search. Will be included in the result set if it matches.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes passing `test`.\n */\nexport function filter(test, node, recurse = true, limit = Infinity) {\n return find(test, Array.isArray(node) ? node : [node], recurse, limit);\n}\n/**\n * Search an array of nodes and their children for nodes passing a test function.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes passing `test`.\n */\nexport function find(test, nodes, recurse, limit) {\n const result = [];\n /** Stack of the arrays we are looking at. */\n const nodeStack = [Array.isArray(nodes) ? nodes : [nodes]];\n /** Stack of the indices within the arrays. */\n const indexStack = [0];\n for (;;) {\n // First, check if the current array has any more elements to look at.\n if (indexStack[0] >= nodeStack[0].length) {\n // If we have no more arrays to look at, we are done.\n if (indexStack.length === 1) {\n return result;\n }\n // Otherwise, remove the current array from the stack.\n nodeStack.shift();\n indexStack.shift();\n // Loop back to the start to continue with the next array.\n continue;\n }\n const elem = nodeStack[0][indexStack[0]++];\n if (test(elem)) {\n result.push(elem);\n if (--limit <= 0)\n return result;\n }\n if (recurse && hasChildren(elem) && elem.children.length > 0) {\n /*\n * Add the children to the stack. We are depth-first, so this is\n * the next array we look at.\n */\n indexStack.unshift(0);\n nodeStack.unshift(elem.children);\n }\n }\n}\n/**\n * Finds the first element inside of an array that matches a test function. This is an alias for `Array.prototype.find`.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @returns The first node in the array that passes `test`.\n * @deprecated Use `Array.prototype.find` directly.\n */\nexport function findOneChild(test, nodes) {\n return nodes.find(test);\n}\n/**\n * Finds one element in a tree that passes a test.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Node or array of nodes to search.\n * @param recurse Also consider child nodes.\n * @returns The first node that passes `test`.\n */\nexport function findOne(test, nodes, recurse = true) {\n const searchedNodes = Array.isArray(nodes) ? nodes : [nodes];\n for (let i = 0; i < searchedNodes.length; i++) {\n const node = searchedNodes[i];\n if (isTag(node) && test(node)) {\n return node;\n }\n if (recurse && hasChildren(node) && node.children.length > 0) {\n const found = findOne(test, node.children, true);\n if (found)\n return found;\n }\n }\n return null;\n}\n/**\n * Checks if a tree of nodes contains at least one node passing a test.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @returns Whether a tree of nodes contains at least one node passing the test.\n */\nexport function existsOne(test, nodes) {\n return (Array.isArray(nodes) ? nodes : [nodes]).some((node) => (isTag(node) && test(node)) ||\n (hasChildren(node) && existsOne(test, node.children)));\n}\n/**\n * Search an array of nodes and their children for elements passing a test function.\n *\n * Same as `find`, but limited to elements and with less options, leading to reduced complexity.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @returns All nodes passing `test`.\n */\nexport function findAll(test, nodes) {\n const result = [];\n const nodeStack = [Array.isArray(nodes) ? nodes : [nodes]];\n const indexStack = [0];\n for (;;) {\n if (indexStack[0] >= nodeStack[0].length) {\n if (nodeStack.length === 1) {\n return result;\n }\n // Otherwise, remove the current array from the stack.\n nodeStack.shift();\n indexStack.shift();\n // Loop back to the start to continue with the next array.\n continue;\n }\n const elem = nodeStack[0][indexStack[0]++];\n if (isTag(elem) && test(elem))\n result.push(elem);\n if (hasChildren(elem) && elem.children.length > 0) {\n indexStack.unshift(0);\n nodeStack.unshift(elem.children);\n }\n }\n}\n//# sourceMappingURL=querying.js.map","import { createRequire } from 'module';\nimport * as htmlparser2 from 'htmlparser2';\nimport escapeHTML from './escape_html.js';\n\ncreateRequire(import.meta.url);\nconst nonWord = /^\\s*[^a-zA-Z0-9]\\s*$/;\nconst parseHtml = (html) => {\n const handler = new htmlparser2.DomHandler(null, {});\n new htmlparser2.Parser(handler, {}).end(html);\n return handler.dom;\n};\nconst getId = ({ attribs = {}, parent }) => {\n return attribs.id || (!parent ? \"\" : getId(parent));\n};\nconst isUnnumbered = ({ attribs = {} }) => {\n return attribs[\"data-toc-unnumbered\"] === \"true\";\n};\nfunction tocObj(str, options = {}) {\n const { min_depth, max_depth } = Object.assign({\n min_depth: 1,\n max_depth: 6\n }, options);\n const headingsSelector = [\"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\"].slice(min_depth - 1, max_depth);\n const headings = htmlparser2.DomUtils.find(\n (element) => \"tagName\" in element && headingsSelector.includes(element.tagName),\n parseHtml(str),\n true,\n Infinity\n );\n const headingsLen = headings.length;\n if (!headingsLen) return [];\n const result = [];\n for (let i = 0; i < headingsLen; i++) {\n const el = headings[i];\n const level = +el.name[1];\n const id = getId(el);\n const unnumbered = isUnnumbered(el);\n let text = \"\";\n for (const element of el.children) {\n const elText = htmlparser2.DomUtils.textContent(element);\n if (!(\"name\" in element) || element.name !== \"a\" || !nonWord.test(elText)) {\n text += escapeHTML(elText);\n }\n }\n if (!text) text = escapeHTML(htmlparser2.DomUtils.textContent(el));\n const res = { text, id, level };\n if (unnumbered) res.unnumbered = true;\n result.push(res);\n }\n return result;\n}\nvar toc_obj_default = tocObj;\nif (typeof module !== \"undefined\" && typeof module.exports === \"object\" && module.exports !== null) {\n module.exports = tocObj;\n module.exports.default = tocObj;\n}\n\nexport { toc_obj_default as default, tocObj };\n//# sourceMappingURL=toc_obj.js.map\n//# sourceMappingURL=toc_obj.js.map","import { createRequire } from 'module';\n\ncreateRequire(import.meta.url);\nfunction truncate(str, options = {}) {\n if (typeof str !== \"string\") throw new TypeError(\"str must be a string!\");\n const length = options.length || 30;\n const omission = options.omission || \"...\";\n const { separator } = options;\n const omissionLength = omission.length;\n if (str.length < length) return str;\n if (separator) {\n const words = str.split(separator);\n let result = \"\";\n let resultLength = 0;\n for (const word of words) {\n if (resultLength + word.length + omissionLength < length) {\n result += word + separator;\n resultLength = result.length;\n } else {\n return result.substring(0, resultLength - 1) + omission;\n }\n }\n } else {\n return str.substring(0, length - omissionLength) + omission;\n }\n}\nvar truncate_default = truncate;\nif (typeof module !== \"undefined\" && typeof module.exports === \"object\" && module.exports !== null) {\n module.exports = truncate;\n module.exports.default = truncate;\n}\n\nexport { truncate_default as default, truncate };\n//# sourceMappingURL=truncate.js.map\n//# sourceMappingURL=truncate.js.map","import { createRequire } from 'module';\n\ncreateRequire(import.meta.url);\nconst htmlEntityMap = {\n \"&\": \"&\",\n \"<\": \"<\",\n \">\": \">\",\n \""\": '\"',\n \"'\": \"'\",\n \"`\": \"`\",\n \"/\": \"/\",\n \"=\": \"=\"\n};\nconst regexHtml = new RegExp(Object.keys(htmlEntityMap).join(\"|\"), \"g\");\nconst unescapeHTML = (str) => {\n if (typeof str !== \"string\") throw new TypeError(\"str must be a string!\");\n return str.replace(regexHtml, (a) => htmlEntityMap[a]);\n};\nvar unescape_html_default = unescapeHTML;\nif (typeof module !== \"undefined\" && typeof module.exports === \"object\" && module.exports !== null) {\n module.exports = unescapeHTML;\n module.exports.default = unescapeHTML;\n}\n\nexport { unescape_html_default as default };\n//# sourceMappingURL=unescape_html.js.map\n//# sourceMappingURL=unescape_html.js.map","import { createRequire } from 'module';\nimport encodeURL from './encode_url.js';\nimport relative_url from './relative_url.js';\nimport prettyUrls from './pretty_urls.js';\nimport Cache from './cache.js';\n\ncreateRequire(import.meta.url);\nconst cache = new Cache();\nfunction urlForHelper(path = \"/\", options = {}) {\n if (/^(#|\\/\\/|http(s)?:)/.test(path)) return path;\n const { config = {} } = this || {};\n options = Object.assign(\n {\n relative: config.relative_link\n },\n // fallback empty object when options filled with NULL\n options || {}\n );\n if (options.relative) {\n return relative_url(this.path, path);\n }\n const { root } = config;\n const prettyUrlsOptions = Object.assign(\n {\n trailing_index: true,\n trailing_html: true\n },\n config.pretty_urls\n );\n return cache.apply(\n `${config.url}-${root}-${prettyUrlsOptions.trailing_index}-${prettyUrlsOptions.trailing_html}-${path}`,\n () => {\n const urlString = typeof config.url === \"string\" ? config.url : \"\";\n let sitehost = \"\";\n try {\n sitehost = new URL(urlString).hostname;\n } catch {\n sitehost = urlString;\n }\n let data;\n try {\n data = new URL(path, `http://${sitehost}`);\n } catch {\n return path;\n }\n if (data.hostname !== sitehost || data.origin === \"null\") {\n return path;\n }\n path = encodeURL((root + path).replace(/\\/{2,}/g, \"/\"));\n path = prettyUrls(path, prettyUrlsOptions);\n return path;\n }\n );\n}\nvar url_for_default = urlForHelper;\nif (typeof module !== \"undefined\" && typeof module.exports === \"object\" && module.exports !== null) {\n module.exports = urlForHelper;\n module.exports.default = urlForHelper;\n}\n\nexport { url_for_default as default };\n//# sourceMappingURL=url_for.js.map\n//# sourceMappingURL=url_for.js.map","import { createRequire } from 'module';\n\ncreateRequire(import.meta.url);\nfunction wordWrap(str, options = {}) {\n if (typeof str !== \"string\") throw new TypeError(\"str must be a string!\");\n const width = options.width || 80;\n const regex = new RegExp(`(.{1,${width}})(\\\\s+|$)`, \"g\");\n const lines = str.split(\"\\n\");\n for (let i = 0, len = lines.length; i < len; i++) {\n const line = lines[i];\n if (line.length > width) {\n lines[i] = line.replace(regex, \"$1\\n\").trim();\n }\n }\n return lines.join(\"\\n\");\n}\nvar word_wrap_default = wordWrap;\nif (typeof module !== \"undefined\" && typeof module.exports === \"object\" && module.exports !== null) {\n module.exports = wordWrap;\n module.exports.default = wordWrap;\n}\n\nexport { word_wrap_default as default };\n//# sourceMappingURL=word_wrap.js.map\n//# sourceMappingURL=word_wrap.js.map","import { createRequire } from 'module';\n\ncreateRequire(import.meta.url);\nconst { parse: $parse, stringify: $stringify } = JSON;\nconst { keys } = Object;\nconst isObject = (value) => typeof value === \"object\" && value !== null;\nconst ignore = {};\nconst noop = (_, value) => value;\nconst revive = (input, parsed, output, $) => {\n const lazy = [];\n for (let ke = keys(output), { length } = ke, y = 0; y < length; y++) {\n const k = ke[y];\n const value = output[k];\n if (typeof value === \"string\" && /^\\d+$/.test(value)) {\n const tmp = input[Number(value)];\n if (isObject(tmp) && !parsed.has(tmp)) {\n parsed.add(tmp);\n output[k] = ignore;\n lazy.push({ k, a: [input, parsed, tmp, $] });\n } else output[k] = $.call(output, k, tmp);\n } else if (output[k] !== ignore) output[k] = $.call(output, k, value);\n }\n for (let { length } = lazy, i = 0; i < length; i++) {\n const { k, a } = lazy[i];\n output[k] = $.call(output, k, revive.apply(null, a));\n }\n return output;\n};\nconst set = (known, input, value) => {\n const index = String(input.push(value) - 1);\n known.set(value, index);\n return index;\n};\nconst parse = (text, reviver) => {\n const input = $parse(text);\n const value = input[0];\n const $ = reviver || noop;\n const tmp = isObject(value) ? revive(input, /* @__PURE__ */ new Set(), value, $) : value;\n return $.call({ \"\": tmp }, \"\", tmp);\n};\nconst stringify = (value, replacer, space) => {\n const isCallable = typeof replacer === \"function\";\n let $;\n if (isCallable) {\n $ = replacer;\n } else if (typeof replacer === \"object\") {\n $ = (k, v) => {\n if (k === \"\" || replacer.indexOf(k) !== -1) return v;\n return void 0;\n };\n } else {\n $ = noop;\n }\n const known = /* @__PURE__ */ new Map();\n const input = [];\n const output = [];\n let i = +set(known, input, $.call({ \"\": value }, \"\", value));\n let firstRun = !i;\n while (i < input.length) {\n firstRun = true;\n output[i] = $stringify(input[i++], replace, space);\n }\n return \"[\" + output.join(\",\") + \"]\";\n function replace(key, value2) {\n if (firstRun) {\n firstRun = false;\n return value2;\n }\n const after = $.call(this, key, value2);\n if (isObject(after)) {\n if (after === null) return after;\n return known.get(after) || set(known, input, after);\n }\n return after;\n }\n};\nconst toJSON = (anyData) => $parse(stringify(anyData));\nconst fromJSON = (anyData) => parse($stringify(anyData));\nfunction jsonStringifyWithCircular(data) {\n return stringify(data);\n}\nfunction jsonParseWithCircular(data) {\n return parse(data);\n}\nif (typeof module !== \"undefined\" && typeof module.exports === \"object\" && module.exports !== null) {\n module.exports = {\n parse,\n stringify,\n jsonStringifyWithCircular,\n jsonStringify: jsonStringifyWithCircular,\n jsonParseWithCircular,\n jsonParse: jsonParseWithCircular,\n toJSON,\n fromJSON\n };\n}\n\nexport { fromJSON, jsonParseWithCircular as jsonParse, jsonStringifyWithCircular as jsonStringify, parse, stringify, toJSON };\n//# sourceMappingURL=json_stringify_circular.js.map\n//# sourceMappingURL=json_stringify_circular.js.map","import * as fs from 'fs';\nimport { logger } from 'hexo-log';\nimport path from 'path';\nimport util from 'util';\n\nvar name = \"hexo-is\";\nvar pkg = {\n\tname: name};\n\nfunction isCurrentHelper(postPath = '/', strict) {\n if (typeof this.path !== 'string') return false;\n const currentPath = this.path.replace(/^[^/].*/, '/$&');\n if (strict) {\n if (postPath.endsWith('/')) postPath += 'index.html';\n postPath = postPath.replace(/^[^/].*/, '/$&');\n return currentPath === postPath;\n }\n postPath = postPath.replace(/\\/index\\.html$/, '/');\n if (postPath === '/') return currentPath === '/index.html';\n postPath = postPath.replace(/^[^/].*/, '/$&');\n return currentPath.startsWith(postPath);\n}\nfunction isHomeHelper() {\n var _this$page;\n return Boolean((_this$page = this.page) === null || _this$page === void 0 ? void 0 : _this$page.__index);\n}\nfunction isPostHelper() {\n const page = this.page || {};\n const src = page.full_source || '';\n const layout = page.layout || '';\n if (layout.startsWith('post')) return true;\n if (layout.startsWith('page')) return false;\n if (src) return Boolean(page.__post) && src.includes('_posts');\n return Boolean(page.__post);\n}\nfunction isPageHelper() {\n const page = this.page || {};\n const src = page.full_source || '';\n const layout = page.layout || '';\n if (layout.startsWith('post')) return false;\n if (layout.startsWith('page')) return true;\n if (src) return Boolean(page.__post) && !src.includes('_posts');\n return Boolean(page.__page);\n}\nfunction isArchiveHelper() {\n var _this$page2;\n return Boolean((_this$page2 = this.page) === null || _this$page2 === void 0 ? void 0 : _this$page2.archive);\n}\nfunction isYearHelper(year) {\n const page = this.page;\n if (!(page !== null && page !== void 0 && page.archive)) return false;\n if (year) return page.year === year;\n return Boolean(page.year);\n}\nfunction isMonthHelper(year, month) {\n const page = this.page;\n if (!(page !== null && page !== void 0 && page.archive)) return false;\n if (year) {\n if (month) return page.year === year && page.month === month;\n return page.month === year;\n }\n return Boolean(page.year && page.month);\n}\nfunction isCategoryHelper(category) {\n const page = this.page;\n if (category) return (page === null || page === void 0 ? void 0 : page.category) === category;\n return Boolean(page === null || page === void 0 ? void 0 : page.category);\n}\nfunction isTagHelper(tag) {\n const page = this.page;\n if (tag) return (page === null || page === void 0 ? void 0 : page.tag) === tag;\n return Boolean(page === null || page === void 0 ? void 0 : page.tag);\n}\nfunction internalIs(hexo) {\n const obj = {\n current: false,\n home: false,\n post: false,\n page: false,\n archive: false,\n year: false,\n month: false,\n category: false,\n tag: false,\n message: 'try using second argument'\n };\n if (!hexo || typeof hexo.page === 'undefined') return obj;\n return {\n current: isCurrentHelper.call(hexo),\n home: isHomeHelper.call(hexo),\n post: isPostHelper.call(hexo),\n page: isPageHelper.call(hexo),\n archive: isArchiveHelper.call(hexo),\n year: isYearHelper.call(hexo),\n month: isMonthHelper.call(hexo),\n category: isCategoryHelper.call(hexo),\n tag: isTagHelper.call(hexo)\n };\n}\n\n/**\n * Extract Page Data\n * @param data\n * @returns\n */\nfunction getPageData(data) {\n const is = hexoIs.call(this, data);\n if (data['page']) {\n const page = data['page'];\n page.is = is;\n return page;\n }\n}\n\nconst log = typeof hexo !== 'undefined' ? hexo.log : logger({\n debug: false,\n silent: false\n});\n/**\n * @example\n * // run inside plugin or theme event\n * import hexoIs from 'hexo-is';\n * const hexo = this;\n * console.log(hexoIs(hexo)); // object or string\n * @param hexoData\n * @returns\n */\nconst hexoIs = function (hexoData) {\n if (typeof hexoData === 'undefined') return;\n if (typeof hexoData['page'] != 'undefined') return internalIs(hexoData);\n if (typeof hexoData['type'] != 'undefined') {\n const lib = internalIs(hexoData);\n if (typeof lib[hexoData['type']] != 'undefined') lib[hexoData['type']] = true;\n return lib;\n }\n};\n/**\n * Dump variable to file\n * @param toDump\n */\nfunction hexoIsDump(toDump, name = '') {\n if (name.length > 0) name = '-' + name;\n const dump = util.inspect(toDump, {\n showHidden: true,\n depth: null\n });\n const loc = path.join('tmp/hexo-is/dump' + name + '.txt');\n if (!fs.existsSync(path.dirname(loc))) {\n fs.mkdirSync(path.dirname(loc), {\n recursive: true\n });\n }\n fs.writeFileSync(loc, dump);\n log.log(`${pkg.name}: dump saved to: ${path.resolve(loc)}`);\n}\n\nexport { hexoIs as default, getPageData, hexoIs, hexoIsDump };\n","import Hexo from 'hexo';\nimport minimist from 'minimist';\nimport assign from 'object-assign';\nimport { memoize } from 'underscore';\nconst argv = minimist(process.argv.slice(2));\n\ntype Environment = 'development' | 'production' | null;\n\n/**\n * Check if the environment is production or development\n * @param inHexo Hexo instance\n * @returns Environment\n */\nconst getEnv = memoize((inHexo: Hexo | null): Environment => {\n const DEV: Environment = 'development';\n const PRD: Environment = 'production';\n\n // Check if --development flag is set\n const arg = typeof argv['development'] === 'boolean' && argv['development'];\n\n // Check if NODE_ENV is set to \"development\"\n const env = process.env.NODE_ENV?.toLowerCase() === 'development';\n\n // Determine if environment is development\n const isDev = arg || env;\n\n if (inHexo) {\n if (isDev) return DEV;\n if (typeof inHexo.env.args.development === 'boolean' && inHexo.env.args.development) return DEV;\n if (inHexo.env.args._ && inHexo.env.args._.length > 0) {\n for (const arg of inHexo.env.args._) {\n if (arg === 's' || arg === 'server') return DEV;\n if (arg === 'd' || arg === 'deploy') return PRD;\n if (arg === 'g' || arg === 'generate') return PRD;\n }\n }\n }\n\n return null;\n});\n\n/**\n * Determine if the environment is development\n * @param hexo Hexo instance\n * @returns boolean\n */\nexport const isDev = memoize((hexo: Hexo | null): boolean => getEnv(hexo) === 'development');\n\n/**\n * Determine if the environment is production\n * @param hexo Hexo instance\n * @returns boolean\n */\nexport const isProd = memoize((hexo: Hexo | null): boolean => getEnv(hexo) === 'production');\nexport const env = (inHexo: Hexo | null): Environment => getEnv(inHexo);\n\nexport type DefaultConfig = {\n [key: string]: any;\n\n /**\n * Enable adsense\n */\n enable: boolean;\n article_ads: string[] | string | boolean;\n /**\n * Adsense ca-pub\n */\n pub: string;\n /**\n * site = adsense will available for all site pages\n * post = adsense will only available for posts only\n */\n field: 'site' | 'post';\n /**\n * amp = amp output\n * javascript = html and javascript output\n */\n type: 'amp' | 'javascript';\n /**\n * Development indicator by process.env.NODE_ENV\n */\n development: boolean;\n};\n\nconst defaultConfig: DefaultConfig = {\n enable: true,\n article_ads: [''].filter((v) => typeof v === 'string' && v.length > 0),\n pub: '',\n adblock: false,\n https: false,\n field: 'site',\n type: 'javascript',\n exclude: ['.gitignore'],\n development: false\n};\n\n/**\n * hexo-adsense config\n * @param hexo\n * @returns\n */\nexport function getHexoAdsenseConfig(hexo: Hexo): DefaultConfig {\n if (typeof hexo.config.adsense !== 'undefined') {\n if (typeof hexo.config.adsense === 'boolean') {\n // fix when adsense: false\n hexo.config.adsense = {};\n hexo.config.adsense.enable = hexo.config.adsense;\n }\n const config = assign(defaultConfig, hexo.config.adsense);\n config.development = defaultConfig.development = isDev(hexo);\n return config;\n }\n return defaultConfig;\n}\n\nexport default getHexoAdsenseConfig;\n","import ansiColors from 'ansi-colors';\nimport hexoLog from 'hexo-log';\nimport { debug } from 'sbg-utility';\n\ntype LoggerFunction = (...args: any[]) => void;\n\nexport const logname = ansiColors.magentaBright('hexo-adsense');\n\nconst once = (function (...fn: LoggerFunction[]) {\n let executed = false;\n return function () {\n if (!executed) {\n executed = true;\n // Do something\n if (typeof fn[0] === 'function') return fn[0]();\n console.log(fn);\n }\n };\n})();\n\nfunction stack(msg: string): void {\n const logLineDetails = new Error().stack?.split('at ')[3].trim();\n console.log('DEBUG', new Date().toUTCString(), logLineDetails, msg);\n}\n\nconst defaultLogger = typeof hexo !== 'undefined' ? hexo.log : hexoLog({ silent: false, debug: true });\nconst logger = {\n stack,\n once\n};\n\nexport const debugLog = function (...args: any[]) {\n (debug('hexo-adsense') as (...a: any[]) => void)(...args);\n defaultLogger.debug(logname, ...args);\n};\n\nexport default Object.assign(defaultLogger, logger);\n","import Bluebird from 'bluebird';\nimport fs from 'fs';\nimport { minimatch } from 'minimatch';\nimport path from 'path';\nimport { md5FileSync, normalizePath, normalizePathUnix, writefile } from 'sbg-utility';\nimport { fileURLToPath } from 'url';\nimport * as util from 'util';\n\nconst md5Cache: Record<string, string> = {};\nconst fileCache: Record<string, any> = {};\n\n// ESM-compatible __dirname replacement\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\n\n/**\n * @param path0\n * @param exclude\n * @param hexo\n * @returns boolean\n */\nconst isIgnore = (path0: string, exclude: string | string[], hexo: any): boolean => {\n if (exclude && !Array.isArray(exclude)) exclude = [exclude];\n\n if (path0 && exclude && exclude.length) {\n for (let i = 0, len = exclude.length; i < len; i++) {\n const excludePattern = exclude[i];\n if (hexo) {\n const fromBase = normalizePathUnix(hexo.base_dir, excludePattern);\n const fromSource = normalizePathUnix(hexo.source_dir, excludePattern);\n if (minimatch(path0, fromSource)) return true;\n if (minimatch(path0, fromBase)) return true;\n }\n if (minimatch(path0, excludePattern)) return true;\n }\n }\n return false;\n};\n\nfunction streamToString(stream: NodeJS.ReadWriteStream): Promise<string> {\n return new Bluebird((resolve, reject) => {\n const chunks: string[] = [];\n stream.on('data', (chunk) => chunks.push(chunk.toString()));\n stream.on('end', () => resolve(chunks.join('')));\n stream.on('error', reject);\n });\n}\n\nasync function isFileChanged(filePath: string): Promise<boolean> {\n try {\n const hash1 = md5FileSync(filePath);\n const hash = md5Cache[filePath];\n md5Cache[filePath] = hash1;\n return !hash || hash !== hash1;\n } catch {\n return true;\n }\n}\n\nfunction getFileCache(filePath: string, defaultData: any): any {\n return fileCache[filePath] || defaultData;\n}\n\nfunction setFileCache(filePath: string, newData: any): void {\n fileCache[filePath] = newData;\n}\n\nfunction randomInt(min = 0, max: number): number {\n if (max === undefined) throw new Error('max range number required');\n return Math.floor(Math.random() * (max - min + 1) + min);\n}\n\nconst memoize = (fn: (...args: any[]) => any, debug?: boolean) => {\n const cache: Record<any, any> = {};\n return (...args: any[]) => {\n const n = args[0];\n if (n in cache) {\n if (debug) console.log('Fetching from cache', n);\n return cache[n];\n } else {\n if (debug) console.log('Calculating result', n);\n const result = fn(n);\n cache[n] = result;\n return result;\n }\n };\n};\n\nexport const tmpFolder = normalizePath(typeof hexo !== 'undefined' ? hexo.base_dir : process.cwd(), 'tmp/hexo-adsense');\n\nlet isFirst = true;\nfunction dump(filename: string, ...obj: any[]): void {\n const loc = path.join(tmpFolder, 'dump', filename);\n if (!fs.existsSync(path.dirname(loc))) {\n fs.mkdirSync(path.dirname(loc));\n } else if (isFirst) {\n isFirst = false;\n writefile(loc, '');\n }\n writefile(loc, util.inspect(obj));\n console.log(`Dump results saved to ${loc}`);\n}\n\nexport { dump, getFileCache, isFileChanged, isIgnore, memoize, randomInt as randInt, setFileCache, streamToString };\n","import { globSync } from 'glob';\nimport Hexo from 'hexo';\nimport fs from 'hexo-fs';\nimport { default as hexoIs } from 'hexo-is';\nimport * as hexoUtil from 'hexo-util';\nimport { HexoLocalsData } from 'hexo/dist/hexo/locals-d';\nimport path from 'path';\nimport { md5FileSync } from 'sbg-utility';\nimport { memoize } from 'underscore';\nimport { fileURLToPath } from 'url';\nimport Config from './config';\nimport { debugLog } from './logger';\nimport * as utils from './utils';\n\n// ESM-compatible __dirname replacement\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\n\nconst adsContent = `<div hexo-adsense=\"ads-content\">ADS_CODE_HERE</div>`;\n\ndeclare global {\n interface String {\n /**\n * join string with `require('path').join()`\n * @param path to join with\n */\n joinpath(path: string): string;\n }\n}\n\nString.prototype.joinpath = function (str: string): string {\n return path.join(this.toString(), str);\n};\n\nfunction parseConfig(hexo: Hexo | null) {\n return Config(hexo);\n}\n\nfunction articleAds(files: string[], hexo: Hexo): string[] {\n const base_dir = hexo.base_dir;\n const source_dir = hexo.source_dir;\n const isDevelopment = parseConfig(hexo).development;\n\n const result: string[] = [];\n files.forEach((file) => {\n let html = '';\n let tes = base_dir.joinpath(file);\n if (fs.existsSync(tes)) {\n html = fs.readFileSync(tes).toString();\n } else {\n tes = source_dir.joinpath(file);\n if (fs.existsSync(tes)) {\n html = fs.readFileSync(tes).toString();\n }\n }\n if (html.length > 0) {\n if (isDevelopment) {\n html = html.replace(/><\\/ins>/gm, ` data-adtest=\"on\"></ins>`);\n }\n html = html.replace(/\\(adsbygoogle?\\s*=?\\s*window\\.adsbygoogle?\\s*\\|\\|?\\s*\\[\\]\\)\\.push\\({}\\);/gm, '');\n html = html.replace(/<script?.*src?.*adsbygoogle\\b[^>]*>([\\s\\S]*?)<\\/script>/gm, '');\n result.push(adsContent.replace('ADS_CODE_HERE', html));\n }\n });\n\n return result;\n}\n\nfunction filter_adshtml(hexo: Hexo): string[] {\n const options = parseConfig(hexo);\n\n let adshtml: string[] = [];\n if (Array.isArray(options.article_ads)) {\n // array of file paths\n adshtml = options.article_ads;\n } else if (typeof options.article_ads === 'string') {\n // single file path\n adshtml = [options.article_ads];\n } else if (typeof options.article_ads === 'boolean') {\n // scan source_dir/_data/hexo-adsense/*.html\n adshtml = globSync(\n [`${hexo.config.source_dir}/ads/**/*.html`, `${hexo.config.source_dir}/_data/hexo-adsense/**/*.html`],\n {\n cwd: hexo.base_dir\n }\n );\n }\n\n if (adshtml.length > 0) {\n adshtml = adshtml.filter((ads) => typeof ads === 'string' && ads.trim().length > 0);\n if (adshtml.length > 0) {\n adshtml = articleAds(adshtml, hexo);\n }\n }\n\n return adshtml;\n}\n\nfunction filter_patterns(content: string, source_path: string, hexo: Hexo): { content: string; excluded: boolean } {\n const options = parseConfig(hexo);\n const excluded = utils.isIgnore(source_path, options.exclude, hexo);\n\n if (excluded) {\n content = content.replace(\n /<script?.*src?.*adsbygoogle?\\b[^>]*>([\\s\\S]*?)<\\/script>/gm,\n '<!--hexo-adsense disabled on this page-->'\n );\n }\n\n return {\n content,\n excluded\n };\n}\n\nexport function after_post_render(this: Hexo, data: any): any {\n const hexo = this;\n const options = parseConfig(hexo);\n\n const filterPattern = filter_patterns(data.content, getPageSource(data), hexo);\n data.content = filterPattern.content;\n if (filterPattern.excluded) return data;\n\n const adshtml = filter_adshtml(hexo);\n if (adshtml.length < 1) return data;\n\n if (typeof data.adsense === 'boolean' && data.adsense) {\n data.content = processAdsHtml(data.content, adshtml, hexo);\n } else if (options.enable) {\n data.content = processAdsHtml(data.content, adshtml, hexo);\n }\n\n return data;\n}\n\nfunction processAdsHtml(content: string, adshtml: string[], hexo: Hexo): string {\n const options = parseConfig(hexo);\n const replacement = memoize((adshtml: string[]) => {\n const jsHash = md5FileSync(path.join(__dirname, 'source/article-ads.js'));\n const cssHash = md5FileSync(path.join(__dirname, 'source/article-ads.css'));\n let replacement = `<div id=\"hexo-adsense-hidden\" style=\"display:none\">${adshtml.join('')}</div>`;\n replacement += `<script src='${hexoUtil.url_for.call(hexo, '/hexo-adsense/article-ads.js')}?hash=${jsHash}'></script>`;\n replacement += `<link rel=\"stylesheet\" href='${hexoUtil.url_for.call(hexo, '/hexo-adsense/article-ads.css')}?hash=${cssHash}'>`;\n return replacement;\n });\n\n const caller = new Error().stack?.split('at ')[2].replace(/^Hexo./g, '');\n const isFieldPost = caller?.startsWith('after_post_render');\n\n if (isFieldPost) {\n content += replacement(adshtml);\n } else {\n if (!options.enable) {\n content = content.replace(\n /<\\/head>/gm,\n `<script async src=\"//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=${options.pub}\" crossorigin=\"anonymous\"></script>`\n );\n }\n content = content.replace(/<\\/body>/gm, `${replacement(adshtml)}</body>`);\n }\n return content;\n}\n\nfunction getPageSource(page: any): string | undefined {\n return page.full_source || page.source || page.path || page.canonical_path;\n}\n\nexport function after_render_html(this: Hexo, content: string, data: HexoLocalsData): string {\n const hexo = this;\n const options = parseConfig(hexo);\n const where = hexoIs(data);\n\n const page = data.post ?? data.page;\n const isPageAdsenseEnabled = typeof page.adsense === 'boolean' ? page.adsense : options.enable;\n\n if (options.field === 'post') {\n if (where.category || where.archive || where.home || where.tag) {\n debugLog(`config field for post, skipping ${data.path || '<empty path>'}`);\n return content;\n }\n }\n\n debugLog(page.path, 'is adsense enabled', isPageAdsenseEnabled);\n\n if (isPageAdsenseEnabled) {\n const filterPattern = filter_patterns(content, getPageSource(page), hexo);\n if (filterPattern.excluded) return filterPattern.content;\n\n const adshtml = filter_adshtml(hexo);\n if (adshtml.length < 1) return content;\n\n if (page.adsense || options.enable) {\n content = processAdsHtml(content, adshtml, hexo);\n }\n\n const pageAd = `<script async src=\"//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=${options.pub}\" crossorigin=\"anonymous\"></script>`;\n content = content.replace(/<\\/head>/, pageAd + '</head>');\n }\n\n return content;\n}\n\nexport default {\n endbodycode: articleAds\n};\n","/* global hexo */\n'use strict';\n\nimport fs from 'fs-extra';\nimport Hexo from 'hexo';\nimport { HexoLocalsData } from 'hexo/dist/hexo/locals-d';\nimport { StoreFunction } from 'hexo/dist/types';\nimport assign from 'object-assign';\nimport path from 'path';\nimport * as prettier from 'prettier';\nimport { fileURLToPath } from 'url';\n// import injector2 from '../packages/hexo-extend-injector2/index';\nimport * as hexoUtil from 'hexo-util';\nimport { after_post_render, after_render_html } from './article-ads';\nimport getConfig from './config';\nimport logger, { debugLog, logname } from './logger';\nimport { tmpFolder } from './utils';\n\n// ESM-compatible __dirname replacement\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\n\nif (typeof hexo !== 'undefined' && typeof hexo.config.adsense !== 'undefined') {\n // const injector = injector2(hexo); // Create injector plugin\n const config = getConfig(hexo);\n const isDevelopment = config.development;\n\n // clean temp folder on `hexo clean`\n hexo.extend.filter.register('after_clean', function () {\n // remove some other temporary files\n hexo.log.debug(logname + '(clean)', 'cleaning temp folder');\n if (fs.existsSync(tmpFolder)) fs.rmSync(tmpFolder, { recursive: true, force: true });\n });\n\n if (config.pub.length < 1) {\n logger.error(logname + '(config)', `adsense ca-pub (adsense.pub) not configured in _config.yml`);\n } else {\n if (config.enable) {\n // Router register\n const routeOptions = [\n {\n route: '/hexo-adsense/article-ads.js',\n src: path.join(__dirname, 'source/article-ads.js'),\n type: 'text/javascript'\n },\n {\n route: '/hexo-adsense/article-ads.css',\n src: path.join(__dirname, 'source/article-ads.css'),\n type: 'text/css'\n }\n ];\n routeOptions.forEach((item) => {\n const routePath = item.route;\n const sourcePath = item.src;\n const contentType = item.type;\n hexo.extend.generator.register(hexoUtil.url_for.call(hexo, routePath), () => {\n return {\n path: routePath,\n data: () => fs.createReadStream(sourcePath)\n };\n });\n hexo.extend.filter.register('server_middleware', function (app: import('connect').Server) {\n app.use(routePath, function (_req, res) {\n res.setHeader('content-type', contentType);\n res.end(fs.readFileSync(sourcePath).toString());\n });\n });\n });\n\n hexo.extend.filter.register('after_render:html', function (content: string, _data: HexoLocalsData) {\n const lastBodyRegex = /<\\/body>(?=[^<]*$)/;\n const firstHeadRegex = /<\\/head>/;\n\n const adsenseConfigObject = JSON.stringify(\n assign(config, hexo.env, { adsense: hexo.config.adsense }),\n null,\n isDevelopment ? 2 : undefined\n );\n const script = `<script id=\"hexo-adsense-config\" type=\"application/json\">${adsenseConfigObject}</script>`;\n\n // Apply functions only in production\n if (!isDevelopment) {\n // Redirect to HTTPS if configured\n if (typeof config.https === 'boolean' && config.https) {\n const https_js = fs.readFileSync(path.join(__dirname, 'source/https.js'), 'utf-8');\n content = content.replace(lastBodyRegex, `<script>${https_js}</script></body>`);\n }\n\n // Add adblock blocker if configured\n if (typeof config.adblock === 'boolean' && config.adblock) {\n const adblock_css = fs.readFileSync(path.join(__dirname, 'source/adblock.css'), 'utf-8');\n const adblock_js = fs.readFileSync(path.join(__dirname, 'source/adblock.js'), 'utf-8');\n content = content.replace(\n lastBodyRegex,\n `<style>${adblock_css}</style><script>${adblock_js}</script></body>`\n );\n }\n }\n\n return content.replace(firstHeadRegex, script + '</head>');\n } as StoreFunction);\n\n // Handle article ads if configured\n if (typeof config.article_ads !== 'undefined') {\n if (config.field === 'post') {\n logger.info(logname, 'apply adsense only for posts');\n // Apply to posts\n hexo.extend.filter.register('after_post_render', after_post_render as StoreFunction);\n } else {\n logger.info(logname, 'apply adsense for all sites pages and posts');\n // Apply to entire HTML\n hexo.extend.filter.register('after_render:html', after_render_html as StoreFunction);\n }\n }\n\n // Prettify on development\n if (hexo.env.cmd === 'server' && isDevelopment) {\n hexo.extend.filter.register('after_render:html', async function (\n this: Hexo,\n content: string,\n _page: HexoLocalsData\n ) {\n const format = await prettier.format(content, { parser: 'html' });\n debugLog(`Prettier formatted html result of ${_page.path}`);\n return format;\n } as StoreFunction);\n }\n }\n }\n}\n"],"names":["Cache","cache","constructor","Map","set","id","value","has","get","del","delete","apply","flush","clear","size","dump","Object","fromEntries","cache_default","module","exports","default","CacheStream","Transform","_cache","_transform","chunk","enc","callback","buf","Buffer","from","push","getCache","concat","cache_stream_default","SPLIT_LOWER_UPPER_RE","SPLIT_UPPER_UPPER_RE","SPLIT_SEPARATE_NUMBER_RE","DEFAULT_STRIP_REGEXP","SPLIT_REPLACE_VALUE","DEFAULT_PREFIX_SUFFIX_CHARACTERS","split","result","trim","replace","start","end","length","charAt","slice","splitSeparateNumbers","words","i","word","match","exec","offset","index","splice","camelCase","input","options","prefix","suffix","splitPrefixSuffix","lower","lowerFactory","locale","upper","upperFactory","transform","pascalCaseTransformFactory","map","join","toLocaleLowerCase","toLocaleUpperCase","char0","initial","splitFn","separateNumbers","prefixCharacters","suffixCharacters","prefixIndex","suffixIndex","char","includes","changeCase","getter","key","setter","toCamelCase","str","prefixLength","substring","camelCaseKeys","obj","TypeError","keys","oldKey","newKey","defineProperty","configurable","enumerable","rHex3","rHex6","rRGB","rHSL","colorNames","aliceblue","r","g","b","a","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","convertHue","p","q","h","color","Math","round","convertRGB","toString","mixValue","ratio","Color","_parse","RangeError","toLowerCase","prototype","hasOwnProperty","call","test","txt","code","parseInt","Number","s","l","rt","gt","bt","Error","parseFloat","toFixed","mix","maxInt","base","tMin","tMax","skew","damp","initialBias","initialN","delimiter","regexPunycode","regexNonASCII","regexSeparators","errors","overflow","baseMinusTMin","floor","stringFromCharCode","String","fromCharCode","error","type","array","mapDomain","domain","parts","labels","encoded","ucs2decode","string","output","counter","charCodeAt","extra","ucs2encode","codePoints","fromCodePoint","basicToDigit","codePoint","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","k","decode","inputLength","n","bias","basic","lastIndexOf","j","oldi","w","t","baseMinusT","out","encode","inputArr","currentValue","basicLength","handledCPCount","m","handledCPCountPlusOne","qMinusT","toUnicode","toASCII","punycode","version","ucs2","safeDecodeURIComponent","decodeURIComponent","decodeURL","url","URL","origin","unicodeHost","hostname","pathname","search","params","URLSearchParams","decodedParams","entries","hash","protocol","username","password","port","startsWith","path","decoded","deepClone","param","seen","WeakMap","Date","getTime","RegExp","source","flags","v","Set","add","Array","isArray","arr","item","newObj","symbols","getOwnPropertySymbols","sym","isObject","deepMerge","target","maxLength","max","resultArr","tVal","sVal","union","some","u","merged","resultObj","sourceSymbols","decodeURI","encodeURL","encodeURI","encode_url_default","defaultDiacriticsRemovalap","diacriticsMap","letters","letter","escapeDiacritic","escape_diacritic_default","escapeTestNoEncode","escapeReplaceNoEncode","escapeReplacements","getEscapeReplacement","ch","escapeHTML","escape_html_default","escapeRegExp","escape_regexp_default","prettyUrls","assign","trailing_index","trailing_html","indexPattern","pretty_urls_default","fullUrlForHelper","config","prettyUrlsOptions","pretty_urls","sitehost","data","md5","createHash","update","digest","gravatarHelper","email","qs","stringify","deepFreeze","freeze","getOwnPropertyNames","forEach","name","prop","isFrozen","Response","mode","undefined","isMatchIgnored","ignoreMatch","inherit$1","original","objects","create","SPAN_CLOSE","emitsWrappingTags","node","scope","scopeToCSSClass","pieces","shift","x","repeat","HTMLRenderer","parseTree","buffer","classPrefix","walk","addText","text","openNode","className","span","closeNode","newNode","opts","children","TokenTree","rootNode","stack","top","root","pop","closeAllNodes","toJSON","JSON","builder","_walk","child","_collapse","every","el","TokenTreeEmitter","startScope","endScope","__addSublanguage","emitter","toHTML","renderer","finalize","re","lookahead","anyNumberOfTimes","optional","args","joined","stripOptionsFromArgs","either","capture","countMatchGroups","lexeme","BACKREF_RE","_rewriteBackreferences","regexps","joinWith","numCaptures","regex","MATCH_NOTHING_RE","IDENT_RE","UNDERSCORE_IDENT_RE","NUMBER_RE","C_NUMBER_RE","BINARY_NUMBER_RE","RE_STARTERS_RE","SHEBANG","beginShebang","binary","begin","relevance","on:begin","resp","BACKSLASH_ESCAPE","APOS_STRING_MODE","illegal","contains","QUOTE_STRING_MODE","PHRASAL_WORDS_MODE","COMMENT","modeOptions","excludeBegin","ENGLISH_WORD","C_LINE_COMMENT_MODE","C_BLOCK_COMMENT_MODE","HASH_COMMENT_MODE","NUMBER_MODE","C_NUMBER_MODE","BINARY_NUMBER_MODE","REGEXP_MODE","TITLE_MODE","UNDERSCORE_TITLE_MODE","METHOD_GUARD","END_SAME_AS_BEGIN","_beginMatch","on:end","MODES","__proto__","skipIfHasPrecedingDot","response","before","scopeClassName","_parent","beginKeywords","parent","__beforeBegin","keywords","compileIllegal","compileMatch","compileRelevance","beforeMatchExt","beforeMatch","starts","originalMode","endsParent","COMMON_KEYWORDS","DEFAULT_KEYWORD_SCOPE","compileKeywords","rawKeywords","caseInsensitive","scopeName","compiledKeywords","compileList","keywordList","keyword","pair","scoreForKeyword","providedScore","commonKeyword","seenDeprecations","message","console","warn","log","deprecated","MultiClassError","remapScopeNames","regexes","scopeNames","emit","positions","_emit","_multi","beginMultiClass","skip","returnBegin","beginScope","endMultiClass","excludeEnd","returnEnd","scopeSugar","MultiClass","_wrap","compileLanguage","language","langRe","global","case_insensitive","unicodeRegex","MultiRegex","matchIndexes","matchAt","position","addRule","compile","terminators","matcherRe","lastIndex","findIndex","matchData","ResumableMultiRegex","rules","multiRegexes","count","regexIndex","getMatcher","matcher","resumingScanAtSamePosition","considerAll","m2","buildModeRegex","mm","term","rule","terminatorEnd","compileMode","cmode","isCompiled","ext","compilerExtensions","keywordPattern","$pattern","keywordPatternRe","beginRe","endsWithParent","endRe","illegalRe","c","expandOrCloneMode","classNameAliases","dependencyOnParent","variants","cachedVariants","variant","HTMLInjectionError","reason","html","escape","inherit","NO_MATCH","Symbol","MAX_KEYWORD_HITS","HLJS","hljs","languages","aliases","plugins","SAFE_MODE","LANGUAGE_NOT_FOUND","PLAINTEXT_LANGUAGE","disableAutodetect","ignoreUnescapedHTML","throwUnescapedHTML","noHighlightRe","languageDetectRe","cssSelector","__emitter","shouldNotHighlight","languageName","blockLanguage","block","classes","parentNode","getLanguage","find","_class","highlight","codeOrLanguageName","optionsOrCode","ignoreIllegals","context","fire","_highlight","codeToHighlight","continuation","keywordHits","keywordData","matchText","processKeywords","modeBuffer","kind","keywordRelevance","cssClass","emitKeyword","processSubLanguage","subLanguage","continuations","_top","highlightAuto","_emitter","processBuffer","emitMultiClass","klass","startNewMode","endOfMode","matchPlusRemainder","matched","doIgnore","resumeScanAtSamePosition","doBeginMatch","newMode","beforeCallbacks","cb","doEndMatch","endMode","processContinuations","list","current","unshift","lastMatch","processLexeme","textBeforeMatch","err","badRule","processed","iterations","md","__emitTokens","processedCount","_illegalBy","resultSoFar","errorRaised","justTextHighlightResult","languageSubset","plaintext","results","filter","autoDetection","sorted","sort","supersetOf","best","secondBest","updateClassName","element","currentLang","resultLang","classList","highlightElement","dataset","highlighted","innerHTML","textContent","configure","userOptions","initHighlighting","highlightAll","initHighlightingOnLoad","wantsHighlight","boot","document","readyState","window","addEventListener","blocks","querySelectorAll","registerLanguage","languageDefinition","lang","error$1","rawDefinition","bind","registerAliases","unregisterLanguage","alias","listLanguages","aliasList","upgradePluginAPI","plugin","addPlugin","removePlugin","indexOf","event","deprecateHighlightBlock","highlightBlock","debugMode","safeMode","versionString","newInstance","core","HighlightJS","minIndent","reduce","min","Infinity","require$$0","stripIndent","indent","highlight_alias_default","highlightUtil","useHljs","gutter","firstLine","caption","mark","languageAttr","tab","enableStripIndent","wrap","classNames","after","lines","numbers","content","len","line","replaceTabs","formatLine","codeCaption","trimEnd","lineno","marked","br","res","autoDetect","closeTags","mod","require$1","tokenStack","prepend","token","matches","matchAll","append","highlight_shared_default","_require","regexUrl","regexMeta","encSrcset","subStr","htmlTag","tag","attrs","values","urlAttr","isExternalLink","exclude","host","rParam","Pattern","regexFilter","stringFilter","Boolean","operator","Permalink","segments","segment","parse","descriptor","getOwnPropertyDescriptor","_self","WorkerGlobalScope","self","Prism","uniqueId","plainTextGrammar","_","manual","disableWorkerMessageHandler","util","tokens","Token","o","objId","clone","visited","parentElement","setLanguage","currentScript","tagName","src","scripts","getElementsByTagName","isActive","defaultActivation","no","plain","extend","redef","insertBefore","inside","insert","grammar","ret","newToken","old","DFS","property","propertyType","async","highlightAllUnder","container","env","selector","hooks","run","elements","nodeName","insertHighlightedCode","highlightedCode","hasAttribute","setAttribute","Worker","worker","filename","onmessage","evt","postMessage","immediateClose","tokenize","rest","tokenList","LinkedList","addAfter","head","matchGrammar","toArray","all","callbacks","matchedStr","e","attributes","matchPattern","pattern","pos","lookbehind","lookbehindLength","startNode","startPos","rematch","patterns","cause","patternObj","greedy","currentNode","next","tail","reach","removeCount","to","matchStr","removeFrom","prev","removeRange","wrapped","nestedRematch","close","script","highlightAutomaticallyCallback","defer","requestAnimationFrame","setTimeout","markup","addInlined","includedCdataInside","def","attrName","mathml","svg","xml","ssml","atom","rss","css","addAttribute","clike","javascript","js","Element","msMatchesSelector","webkitMatchesSelector","LOADING_MESSAGE","FAILURE_MESSAGE","status","FAILURE_EMPTY_MESSAGE","EXTENSIONS","STATUS_ATTR","STATUS_LOADING","STATUS_LOADED","STATUS_FAILED","SELECTOR","loadFile","success","xhr","XMLHttpRequest","open","onreadystatechange","responseText","statusText","send","parseRange","range","comma","pre","appendChild","createElement","getAttribute","extension","autoloader","loadLanguages","fileHighlight","logged","arguments","components","getLoader","noop","callbackFn","toSet","createEntryMap","categoryName","category","entry","title","createDependencyResolver","entryMap","_stackArray","addToMap","firstIndex","dependencies","handleDirectDependency","depId","transitiveDepId","require","modify","deps","createAliasResolver","idOrAlias","loadComponentsInOrder","dependencyResolver","ids","loadComponent","chainer","series","parallel","ends","handleId","dependsOn","depsValue","endValues","endId","hasKeys","load","loaded","resolveAlias","loadSet","loadedSet","addRequirements","reqId","loadAdditions","newIds","loadId","modId","loadedId","newId","loader","getIds","require$$1","loadedLanguages","silent","pathToLanguage","resolve","components_1","prismAlias","PrismCore","acc","prismSupportedLanguages","prismHighlight","prismLoadLanguages","lineNumberUtil","num","PrismUtil","lineNumber","isPreprocess","manualAlias","ts","py","rb","sh","csharp","shell","yml","vue","none","preTagClassArr","preTagAttrArr","preTagAttr","startTag","endTag","parsedCode","relativeUrlHelper","fromParts","toParts","outLength","relative_url_default","rControl","rSpecial","slugize","separator","escapedSep","toUpperCase","StatusError","promiseSpawn","command","Promise","reject","task","spawn","verbose","encoding","stdoutCache","stderrCache","stdout","pipe","process","stderr","on","stream","destroy","STATE_PLAINTEXT","STATE_HTML","STATE_COMMENT","CHAR_LT","CHAR_GT","CHAR_QUOTE","CHAR_APOS","CHAR_DASH","CHAR_SPACE","CHAR_NEWLINE","CHAR_EXCLAIM","striptags","state","depth","in_quote_char","tag_start","plain_text_start","idx","charCode","decodeMap","_a","replaceCodePoint","decodeBase64","atob","evenLength","Uint16Array","outIndex","lo","hi","htmlDecodeTree","xmlDecodeTree","BinTrieFlags","CharCodes","TO_LOWER_BIT","isNumber","ZERO","NINE","isHexadecimalCharacter","UPPER_A","UPPER_F","LOWER_A","LOWER_F","isAsciiAlphaNumeric","UPPER_Z","LOWER_Z","isEntityInAttributeInvalidEnd","EQUALS","EntityDecoderState","DecodingMode","EntityDecoder","decodeTree","emitCodePoint","EntityStart","consumed","treeIndex","excess","decodeMode","Strict","runConsumed","startEntity","write","NUM","NumericStart","stateNumericStart","NamedEntity","stateNamedEntity","NumericDecimal","stateNumericDecimal","NumericHex","stateNumericHex","LOWER_X","emitNumericEntity","lastCp","expectedLength","absenceOfDigitsInNumericCharacterReference","SEMI","missingSemicolonAfterCharacterReference","validateNumericCharacterReference","valueLength","VALUE_LENGTH","FLAG13","runLength","BRANCH_LENGTH","firstChar","JUMP_TABLE","emitNotTerminatedNamedEntity","charIndexInPacked","packedWord","expectedChar","emitNamedEntityData","determineBranch","Attribute","nodeIndex","branchCount","jumpOffset","packedKeySlots","mid","slot","packed","midKey","State","isWhitespace","Space","NewLine","Tab","FormFeed","CarriageReturn","isEndOfTagSection","Slash","Gt","isASCIIAlpha","LowerA","LowerZ","UpperA","UpperZ","QuoteType","Sequences","Cdata","Uint8Array","CdataEnd","CommentEnd","ScriptEnd","StyleEnd","TitleEnd","TextareaEnd","XmpEnd","Tokenizer","xmlMode","decodeEntities","cbs","Text","sectionStart","entityStart","baseState","isSpecial","running","currentSequence","sequenceIndex","entityDecoder","cp","reset","finish","pause","resume","stateText","Lt","fastForwardTo","ontext","BeforeTagName","Amp","stateSpecialStartSequence","isEnd","isMatch","InTagName","stateInTagName","stateInSpecialTag","endOfText","actualIndex","stateInClosingTagName","stateCDATASequence","InCommentLike","InDeclaration","stateInDeclaration","stateInCommentLike","oncdata","oncomment","isTagStartChar","startSpecial","sequence","SpecialStartSequence","stateBeforeTagName","ExclamationMark","BeforeDeclaration","Questionmark","InProcessingInstruction","BeforeSpecialS","BeforeSpecialT","BeforeClosingTagName","onopentagname","BeforeAttributeName","stateBeforeAttributeName","stateBeforeClosingTagName","InClosingTagName","InSpecialComment","onclosetag","AfterClosingTagName","stateAfterClosingTagName","onopentagend","InSpecialTag","InSelfClosingTag","InAttributeName","stateInSelfClosingTag","onselfclosingtag","stateInAttributeName","Eq","onattribname","AfterAttributeName","stateAfterAttributeName","BeforeAttributeValue","onattribend","NoValue","stateBeforeAttributeValue","DoubleQuote","InAttributeValueDq","SingleQuote","InAttributeValueSq","InAttributeValueNq","stateInAttributeValueNoQuotes","handleInAttributeValue","quote","onattribdata","Double","Single","stateInAttributeValueDoubleQuotes","stateInAttributeValueSingleQuotes","Unquoted","stateBeforeDeclaration","OpeningSquareBracket","CDATASequence","Dash","BeforeComment","ondeclaration","stateInProcessingInstruction","onprocessinginstruction","stateBeforeComment","stateInSpecialComment","stateBeforeSpecialS","stateBeforeSpecialT","InEntity","Legacy","stateInEntity","indexInBuffer","cleanup","shouldContinue","handleTrailingData","onend","endIndex","onattribentity","ontextentity","formTags","pTag","tableSectionTags","ddtTags","rtpTags","openImpliesClose","voidElements","foreignContextElements","htmlIntegrationElements","reNameEnd","Parser","startIndex","openTagStart","tagname","attribname","attribvalue","attribs","buffers","bufferOffset","writeIndex","ended","htmlMode","lowerCaseTagNames","lowerCaseTags","lowerCaseAttributeNames","_b","recognizeSelfClosing","_c","tokenizer","_d","foreignContext","_f","_e","onparserinit","getSlice","isVoidElement","emitOpenTag","impliesClose","onopentag","endOpenTag","isImplied","closeCurrentTag","_h","_g","isOpenImplied","onattribute","getInstructionName","substr","oncommentend","recognizeCDATA","oncdatastart","oncdataend","_k","_j","onreset","parseComplete","shiftBuffer","onerror","parseChunk","done","ElementType","isTag","elem","Tag","Script","Style","Root","Directive","Comment","CDATA","Doctype","Node","previousSibling","nextSibling","cloneNode","recursive","DataNode","nodeValue","nodeType","ProcessingInstruction","NodeWithChildren","firstChild","lastChild","childNodes","Document","namespace","isTagRaw","isCDATA","isText","isComment","isDirective","isDocument","hasChildren","cloneChildren","instruction","sourceCodeLocation","childs","defaultOpts","withStartIndices","withEndIndices","DomHandler","elementCB","dom","tagStack","lastNode","parser","handleCallback","addNode","nodes","recurse","limit","nodeStack","indexStack","nonWord","parseHtml","handler","htmlparser2","getId","isUnnumbered","tocObj","min_depth","max_depth","headingsSelector","headings","headingsLen","level","unnumbered","elText","truncate","omission","omissionLength","resultLength","htmlEntityMap","regexHtml","unescapeHTML","urlForHelper","relative","relative_link","relative_url","urlString","url_for_default","wordWrap","width","$parse","$stringify","ignore","revive","parsed","$","lazy","ke","y","tmp","known","reviver","replacer","space","isCallable","firstRun","value2","anyData","fromJSON","jsonStringifyWithCircular","jsonParseWithCircular","jsonStringify","jsonParse","isCurrentHelper","postPath","strict","currentPath","endsWith","isHomeHelper","_this$page","page","__index","isPostHelper","full_source","layout","__post","isPageHelper","__page","isArchiveHelper","_this$page2","archive","isYearHelper","year","isMonthHelper","month","isCategoryHelper","isTagHelper","internalIs","hexo","home","post","logger","debug","hexoIs","hexoData","lib","__dirname","Config","utils.isIgnore","hexoUtil.url_for","getConfig","fs"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,MAAMA,KAAA,CAAS;EACbC,KAAA;AAEAC,EAAAA,WAAAA,GAAc;IACZ,IAAA,CAAKD,KAAA,kBAAA,IAAYE,GAAA,EAAI;AACvB,EAAA;EAEAC,GAAAA,CAAIC,EAAA,EAAYC,KAAA,EAAU;AACxB,IAAA,IAAA,CAAKL,KAAA,CAAMG,GAAA,CAAIC,EAAA,EAAIC,KAAK,CAAA;AAC1B,EAAA;AAEAC,EAAAA,GAAAA,CAAIF,EAAA,EAAY;AACd,IAAA,OAAO,IAAA,CAAKJ,KAAA,CAAMM,GAAA,CAAIF,EAAE,CAAA;AAC1B,EAAA;AAEAG,EAAAA,GAAAA,CAAIH,EAAA,EAAY;AACd,IAAA,OAAO,IAAA,CAAKJ,KAAA,CAAMO,GAAA,CAAIH,EAAE,CAAA;AAC1B,EAAA;AAEAI,EAAAA,GAAAA,CAAIJ,EAAA,EAAY;AACd,IAAA,IAAA,CAAKJ,KAAA,CAAMS,MAAA,CAAOL,EAAE,CAAA;AACtB,EAAA;EAEAM,KAAAA,CAAMN,EAAA,EAAYC,KAAA,EAAU;IAC1B,IAAI,IAAA,CAAKC,GAAA,CAAIF,EAAE,GAAG,OAAO,IAAA,CAAKG,GAAA,CAAIH,EAAE,CAAA;AAEpC,IAAA,IAAI,OAAOC,KAAA,KAAU,YAAYA,KAAA,GAAQA,KAAA,EAAM;AAE/C,IAAA,IAAA,CAAKF,GAAA,CAAIC,EAAA,EAAIC,KAAK,CAAA;AAClB,IAAA,OAAOA,KAAA;AACT,EAAA;AAEAM,EAAAA,KAAAA,GAAQ;IACN,IAAA,CAAKX,KAAA,CAAMY,KAAA,EAAM;AACnB,EAAA;AAEAC,EAAAA,IAAAA,GAAO;IACL,OAAO,IAAA,CAAKb,KAAA,CAAMa,IAAA;AACpB,EAAA;AAEAC,EAAAA,IAAAA,GAAO;AACL,IAAA,OAAOC,MAAA,CAAOC,WAAA,CAAY,KAAKhB,KAAK,CAAA;AACtC,EAAA;AACF;AAIA,IAAOiB,aAAA,GAAQlB,KAAA;AAEf,IAAI,OAAOmB,MAAA,KAAW,WAAA,IAAe,OAAOA,MAAA,CAAOC,OAAA,KAAY,QAAA,IAAYD,MAAA,CAAOC,OAAA,KAAY,IAAA,EAAM;EAClGD,MAAA,CAAOC,OAAA,GAAUpB,KAAA;AAEjBmB,EAAAA,MAAA,CAAOC,OAAA,CAAQC,OAAA,GAAUrB,KAAA;AAC3B;;;ACnDA,MAAMsB,WAAA,SAAoBC,SAAA,CAAU;EAClCC,MAAA;AAEAtB,EAAAA,WAAAA,GAAc;IACZ,KAAA,EAAM;IAEN,IAAA,CAAKsB,MAAA,GAAS,EAAC;AACjB,EAAA;AAEAC,EAAAA,UAAAA,CAAWC,KAAA,EAAOC,GAAA,EAAKC,QAAA,EAAU;AAC/B,IAAA,MAAMC,GAAA,GAAMH,KAAA,YAAiBI,MAAA,GAASJ,KAAA,GAAQI,MAAA,CAAOC,IAAA,CAAKL,KAAA,EAAOC,GAAG,CAAA;AACpE,IAAA,IAAA,CAAKH,MAAA,CAAOQ,IAAA,CAAKH,GAAG,CAAA;IACpB,IAAA,CAAKG,IAAA,CAAKH,GAAG,CAAA;AACbD,IAAAA,QAAA,EAAS;AACX,EAAA;AAEAK,EAAAA,QAAAA,GAAW;AACT,IAAA,OAAOH,MAAA,CAAOI,MAAA,CAAO,KAAKV,MAAM,CAAA;AAClC,EAAA;AACF;AAIA,IAAOW,oBAAA,GAAQb,WAAA;AAEf,IAAI,OAAOH,MAAA,KAAW,WAAA,IAAe,OAAOA,MAAA,CAAOC,OAAA,KAAY,QAAA,IAAYD,MAAA,CAAOC,OAAA,KAAY,IAAA,EAAM;EAClGD,MAAA,CAAOC,OAAA,GAAUE,WAAA;AAEjBH,EAAAA,MAAA,CAAOC,OAAA,CAAQC,OAAA,GAAUC,WAAA;AAC3B;;AC/BA;AACA,MAAMc,oBAAoB,GAAG,wBAAwB;AACrD,MAAMC,oBAAoB,GAAG,8BAA8B;AAE3D;AACA,MAAMC,wBAAwB,GAAG,uBAAuB;AAExD;AACA,MAAMC,oBAAoB,GAAG,gBAAgB;AAE7C;AACA,MAAMC,mBAAmB,GAAG,QAAQ;AAEpC;AACA,MAAMC,gCAAgC,GAAG,EAAE;AA4B3C;;;AAGM,SAAUC,KAAKA,CAACpC,KAAa,EAAA;AACjC,EAAA,IAAIqC,MAAM,GAAGrC,KAAK,CAACsC,IAAI,EAAE;AAEzBD,EAAAA,MAAM,GAAGA,MAAM,CACZE,OAAO,CAACT,oBAAoB,EAAEI,mBAAmB,CAAC,CAClDK,OAAO,CAACR,oBAAoB,EAAEG,mBAAmB,CAAC;EAErDG,MAAM,GAAGA,MAAM,CAACE,OAAO,CAACN,oBAAoB,EAAE,IAAI,CAAC;EAEnD,IAAIO,KAAK,GAAG,CAAC;AACb,EAAA,IAAIC,GAAG,GAAGJ,MAAM,CAACK,MAAM;AAEvB;EACA,OAAOL,MAAM,CAACM,MAAM,CAACH,KAAK,CAAC,KAAK,IAAI,EAAEA,KAAK,EAAE;AAC7C,EAAA,IAAIA,KAAK,KAAKC,GAAG,EAAE,OAAO,EAAE;AAC5B,EAAA,OAAOJ,MAAM,CAACM,MAAM,CAACF,GAAG,GAAG,CAAC,CAAC,KAAK,IAAI,EAAEA,GAAG,EAAE;AAE7C,EAAA,OAAOJ,MAAM,CAACO,KAAK,CAACJ,KAAK,EAAEC,GAAG,CAAC,CAACL,KAAK,CAAC,KAAK,CAAC;AAC9C;AAEA;;;AAGM,SAAUS,oBAAoBA,CAAC7C,KAAa,EAAA;AAChD,EAAA,MAAM8C,KAAK,GAAGV,KAAK,CAACpC,KAAK,CAAC;AAC1B,EAAA,KAAK,IAAI+C,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,KAAK,CAACJ,MAAM,EAAEK,CAAC,EAAE,EAAE;AACrC,IAAA,MAAMC,IAAI,GAAGF,KAAK,CAACC,CAAC,CAAC;AACrB,IAAA,MAAME,KAAK,GAAGjB,wBAAwB,CAACkB,IAAI,CAACF,IAAI,CAAC;AACjD,IAAA,IAAIC,KAAK,EAAE;AACT,MAAA,MAAME,MAAM,GAAGF,KAAK,CAACG,KAAK,GAAG,CAACH,KAAK,CAAC,CAAC,CAAC,IAAIA,KAAK,CAAC,CAAC,CAAC,EAAEP,MAAM;MAC1DI,KAAK,CAACO,MAAM,CAACN,CAAC,EAAE,CAAC,EAAEC,IAAI,CAACJ,KAAK,CAAC,CAAC,EAAEO,MAAM,CAAC,EAAEH,IAAI,CAACJ,KAAK,CAACO,MAAM,CAAC,CAAC;;;AAGjE,EAAA,OAAOL,KAAK;AACd;AAcA;;;AAGM,SAAUQ,WAASA,CAACC,KAAa,EAAEC,OAA2B,EAAA;AAClE,EAAA,MAAM,CAACC,MAAM,EAAEX,KAAK,EAAEY,MAAM,CAAC,GAAGC,iBAAiB,CAACJ,KAAK,EAAEC,OAAO,CAAC;AACjE,EAAA,MAAMI,KAAK,GAAGC,YAAY,CAACL,OAAO,EAAEM,MAAM,CAAC;AAC3C,EAAA,MAAMC,KAAK,GAAGC,YAAY,CAACR,OAAO,EAAEM,MAAM,CAAC;AAC3C,EAAA,MAAMG,SAAS,GAEXC,0BAA0B,CAACN,KAAK,EAAEG,KAAK,CAAC;EAC5C,OACEN,MAAM,GACNX,KAAK,CACFqB,GAAG,CAAC,CAACnB,IAAI,EAAEI,KAAK,KAAI;IACnB,IAAIA,KAAK,KAAK,CAAC,EAAE,OAAOQ,KAAK,CAACZ,IAAI,CAAC;AACnC,IAAA,OAAOiB,SAAS,CAACjB,IAAI,EAAEI,KAAK,CAAC;EAC/B,CAAC,CAAC,CACDgB,IAAI,CAAuB,EAAE,CAAC,GACjCV,MAAM;AAEV;AAyGA,SAASG,YAAYA,CAACC,MAAc,EAAA;AAClC,EAAA,OAEKP,KAAa,IAAKA,KAAK,CAACc,iBAAiB,CAACP,MAAM,CAAC;AACxD;AAEA,SAASE,YAAYA,CAACF,MAAc,EAAA;AAClC,EAAA,OAEKP,KAAa,IAAKA,KAAK,CAACe,iBAAiB,CAACR,MAAM,CAAC;AACxD;AASA,SAASI,0BAA0BA,CACjCN,KAAgC,EAChCG,KAAgC,EAAA;AAEhC,EAAA,OAAO,CAACf,IAAY,EAAEI,KAAa,KAAI;AACrC,IAAA,MAAMmB,KAAK,GAAGvB,IAAI,CAAC,CAAC,CAAC;IACrB,MAAMwB,OAAO,GACXpB,KAAK,GAAG,CAAC,IAAImB,KAAK,IAAI,GAAG,IAAIA,KAAK,IAAI,GAAG,GAAG,GAAG,GAAGA,KAAK,GAAGR,KAAK,CAACQ,KAAK,CAAC;IACxE,OAAOC,OAAO,GAAGZ,KAAK,CAACZ,IAAI,CAACJ,KAAK,CAAC,CAAC,CAAC,CAAC;EACvC,CAAC;AACH;AAEA,SAASe,iBAAiBA,CACxBJ,KAAa,EACbC,OAAA,GAAmB,EAAE,EAAA;AAErB,EAAA,MAAMiB,OAAO,GACXjB,OAAO,CAACpB,KAAK,KAAKoB,OAAO,CAACkB,eAAe,GAAG7B,oBAAoB,GAAGT,KAAK,CAAC;AAC3E,EAAA,MAAMuC,gBAAgB,GACpBnB,OAAO,CAACmB,gBAAgB,IAAIxC,gCAAgC;AAC9D,EAAA,MAAMyC,gBAAgB,GACpBpB,OAAO,CAACoB,gBAAgB,IAAIzC,gCAAgC;EAC9D,IAAI0C,WAAW,GAAG,CAAC;AACnB,EAAA,IAAIC,WAAW,GAAGvB,KAAK,CAACb,MAAM;AAE9B,EAAA,OAAOmC,WAAW,GAAGtB,KAAK,CAACb,MAAM,EAAE;AACjC,IAAA,MAAMqC,IAAI,GAAGxB,KAAK,CAACZ,MAAM,CAACkC,WAAW,CAAC;AACtC,IAAA,IAAI,CAACF,gBAAgB,CAACK,QAAQ,CAACD,IAAI,CAAC,EAAE;AACtCF,IAAAA,WAAW,EAAE;;EAGf,OAAOC,WAAW,GAAGD,WAAW,EAAE;AAChC,IAAA,MAAMzB,KAAK,GAAG0B,WAAW,GAAG,CAAC;AAC7B,IAAA,MAAMC,IAAI,GAAGxB,KAAK,CAACZ,MAAM,CAACS,KAAK,CAAC;AAChC,IAAA,IAAI,CAACwB,gBAAgB,CAACI,QAAQ,CAACD,IAAI,CAAC,EAAE;AACtCD,IAAAA,WAAW,GAAG1B,KAAK;;AAGrB,EAAA,OAAO,CACLG,KAAK,CAACX,KAAK,CAAC,CAAC,EAAEiC,WAAW,CAAC,EAC3BJ,OAAO,CAAClB,KAAK,CAACX,KAAK,CAACiC,WAAW,EAAEC,WAAW,CAAC,CAAC,EAC9CvB,KAAK,CAACX,KAAK,CAACkC,WAAW,CAAC,CACzB;AACH;;;;;;;;;;ACtRA,MAAM;AAAExB,EAAAA;AAAA,CAAU,GAAI2B,UAAA;AAEtB,SAASC,MAAAA,CAAOC,GAAA,EAAa;AAC3B,EAAA,OAAO,YAAW;AAChB,IAAA,OAAO,KAAKA,GAAG,CAAA;AACjB,EAAA,CAAA;AACF;AAEA,SAASC,MAAAA,CAAOD,GAAA,EAAa;EAC3B,OAAO,UAASnF,KAAA,EAAgB;IAC9B,IAAA,CAAKmF,GAAG,IAAInF,KAAA;AACd,EAAA,CAAA;AACF;AAEA,SAASqF,WAAAA,CAAYC,GAAA,EAAa;AAChC,EAAA,IAAIC,YAAA,GAAe,EAAA;AAEnB,EAAA,OAAOD,GAAA,CAAI,EAAEC,YAAY,MAAM,GAAA,CAAI;EAEnC,IAAI,CAACA,YAAA,EAAc;IACjB,OAAOjC,SAAA,CAAUgC,GAAG,CAAA;AACtB,EAAA;AACA,EAAA,OAAOA,GAAA,CAAIE,SAAA,CAAU,GAAGD,YAAY,CAAA,GAAIjC,SAAA,CAAUgC,GAAA,CAAIE,SAAA,CAAUD,YAAY,CAAC,CAAA;AAC/E;AAEO,SAASE,aAAAA,CAAcC,GAAA,EAAa;EACzC,IAAI,OAAOA,GAAA,KAAQ,QAAA,EAAU,MAAM,IAAIC,SAAA,CAAU,wBAAwB,CAAA;AAEzE,EAAA,MAAMC,IAAA,GAAOlF,MAAA,CAAOkF,IAAA,CAAKF,GAAG,CAAA;EAC5B,MAAMrD,MAAA,GAAkC,EAAC;EAEzC,KAAA,MAAWwD,MAAA,IAAUD,IAAA,EAAM;AACzB,IAAA,MAAME,MAAA,GAAST,WAAA,CAAYQ,MAAM,CAAA;AAEjCxD,IAAAA,MAAA,CAAOyD,MAAM,CAAA,GAAIJ,GAAA,CAAIG,MAAM,CAAA;IAE3B,IAAIC,MAAA,KAAWD,MAAA,EAAQ;AACrBnF,MAAAA,MAAA,CAAOqF,cAAA,CAAe1D,MAAA,EAAQwD,MAAA,EAAQ;QACpC3F,GAAA,EAAKgF,MAAA,CAAOY,MAAM,CAAA;QAClBhG,GAAA,EAAKsF,MAAA,CAAOU,MAAM,CAAA;AAClBE,QAAAA,YAAA,EAAc,IAAA;AACdC,QAAAA,UAAA,EAAY;OACb,CAAA;AACH,IAAA;AACF,EAAA;AAEA,EAAA,OAAO5D,MAAA;AACT;AAKA,IAAI,OAAOxB,MAAA,KAAW,WAAA,IAAe,OAAOA,MAAA,CAAOC,OAAA,KAAY,QAAA,IAAYD,MAAA,CAAOC,OAAA,KAAY,IAAA,EAAM;EAClGD,MAAA,CAAOC,OAAA,GAAU2E,aAAA;AAEjB5E,EAAAA,MAAA,CAAOC,OAAA,CAAQC,OAAA,GAAU0E,aAAA;AAC3B;;;ACzDA,MAAMS,KAAA,GAAQ,gBAAA;AACd,MAAMC,KAAA,GAAQ,gBAAA;AACd,MAAMC,IAAA,GAAO,+EAAA;AACb,MAAMC,IAAA,GAAO,iFAAA;AAGb,MAAMC,UAAA,GAAa;AACjBC,EAAAA,SAAA,EAAW;AAACC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACxCC,EAAAA,YAAA,EAAc;AAACJ,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AAC3CE,EAAAA,IAAA,EAAM;AAACL,IAAAA,CAAA,EAAG,CAAA;AAAGC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACjCG,EAAAA,UAAA,EAAY;AAACN,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACzCI,EAAAA,KAAA,EAAO;AAACP,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACpCK,EAAAA,KAAA,EAAO;AAACR,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACpCM,EAAAA,MAAA,EAAQ;AAACT,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACrCO,EAAAA,KAAA,EAAO;AAACV,IAAAA,CAAA,EAAG,CAAA;AAAGC,IAAAA,CAAA,EAAG,CAAA;AAAGC,IAAAA,CAAA,EAAG,CAAA;AAAGC,IAAAA,CAAA,EAAG;GAAC;AAC9BQ,EAAAA,cAAA,EAAgB;AAACX,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AAC7CS,EAAAA,IAAA,EAAM;AAACZ,IAAAA,CAAA,EAAG,CAAA;AAAGC,IAAAA,CAAA,EAAG,CAAA;AAAGC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AAC/BU,EAAAA,UAAA,EAAY;AAACb,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,EAAA;AAAIC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACxCW,EAAAA,KAAA,EAAO;AAACd,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,EAAA;AAAIC,IAAAA,CAAA,EAAG,EAAA;AAAIC,IAAAA,CAAA,EAAG;GAAC;AAClCY,EAAAA,SAAA,EAAW;AAACf,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACxCa,EAAAA,SAAA,EAAW;AAAChB,IAAAA,CAAA,EAAG,EAAA;AAAIC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACvCc,EAAAA,UAAA,EAAY;AAACjB,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,CAAA;AAAGC,IAAAA,CAAA,EAAG;GAAC;AACvCe,EAAAA,SAAA,EAAW;AAAClB,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,EAAA;AAAIC,IAAAA,CAAA,EAAG;GAAC;AACvCgB,EAAAA,KAAA,EAAO;AAACnB,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,EAAA;AAAIC,IAAAA,CAAA,EAAG;GAAC;AACnCiB,EAAAA,cAAA,EAAgB;AAACpB,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AAC7CkB,EAAAA,QAAA,EAAU;AAACrB,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACvCmB,EAAAA,OAAA,EAAS;AAACtB,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,EAAA;AAAIC,IAAAA,CAAA,EAAG,EAAA;AAAIC,IAAAA,CAAA,EAAG;GAAC;AACpCoB,EAAAA,IAAA,EAAM;AAACvB,IAAAA,CAAA,EAAG,CAAA;AAAGC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACjCqB,EAAAA,QAAA,EAAU;AAACxB,IAAAA,CAAA,EAAG,CAAA;AAAGC,IAAAA,CAAA,EAAG,CAAA;AAAGC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACnCsB,EAAAA,QAAA,EAAU;AAACzB,IAAAA,CAAA,EAAG,CAAA;AAAGC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACrCuB,EAAAA,aAAA,EAAe;AAAC1B,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,EAAA;AAAIC,IAAAA,CAAA,EAAG;GAAC;AAC3CwB,EAAAA,QAAA,EAAU;AAAC3B,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACvCyB,EAAAA,SAAA,EAAW;AAAC5B,IAAAA,CAAA,EAAG,CAAA;AAAGC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,CAAA;AAAGC,IAAAA,CAAA,EAAG;GAAC;AACpC0B,EAAAA,QAAA,EAAU;AAAC7B,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACvC2B,EAAAA,SAAA,EAAW;AAAC9B,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACxC4B,EAAAA,WAAA,EAAa;AAAC/B,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,CAAA;AAAGC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACxC6B,EAAAA,cAAA,EAAgB;AAAChC,IAAAA,CAAA,EAAG,EAAA;AAAIC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,EAAA;AAAIC,IAAAA,CAAA,EAAG;GAAC;AAC3C8B,EAAAA,UAAA,EAAY;AAACjC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,CAAA;AAAGC,IAAAA,CAAA,EAAG;GAAC;AACvC+B,EAAAA,UAAA,EAAY;AAAClC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,EAAA;AAAIC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACxCgC,EAAAA,OAAA,EAAS;AAACnC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,CAAA;AAAGC,IAAAA,CAAA,EAAG,CAAA;AAAGC,IAAAA,CAAA,EAAG;GAAC;AAClCiC,EAAAA,UAAA,EAAY;AAACpC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACzCkC,EAAAA,YAAA,EAAc;AAACrC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AAC3CmC,EAAAA,aAAA,EAAe;AAACtC,IAAAA,CAAA,EAAG,EAAA;AAAIC,IAAAA,CAAA,EAAG,EAAA;AAAIC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AAC1CoC,EAAAA,aAAA,EAAe;AAACvC,IAAAA,CAAA,EAAG,EAAA;AAAIC,IAAAA,CAAA,EAAG,EAAA;AAAIC,IAAAA,CAAA,EAAG,EAAA;AAAIC,IAAAA,CAAA,EAAG;GAAC;AACzCqC,EAAAA,aAAA,EAAe;AAACxC,IAAAA,CAAA,EAAG,EAAA;AAAIC,IAAAA,CAAA,EAAG,EAAA;AAAIC,IAAAA,CAAA,EAAG,EAAA;AAAIC,IAAAA,CAAA,EAAG;GAAC;AACzCsC,EAAAA,aAAA,EAAe;AAACzC,IAAAA,CAAA,EAAG,CAAA;AAAGC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AAC1CuC,EAAAA,UAAA,EAAY;AAAC1C,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,CAAA;AAAGC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACvCwC,EAAAA,QAAA,EAAU;AAAC3C,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,EAAA;AAAIC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACtCyC,EAAAA,WAAA,EAAa;AAAC5C,IAAAA,CAAA,EAAG,CAAA;AAAGC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACxC0C,EAAAA,OAAA,EAAS;AAAC7C,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACtC2C,EAAAA,OAAA,EAAS;AAAC9C,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACtC4C,EAAAA,UAAA,EAAY;AAAC/C,IAAAA,CAAA,EAAG,EAAA;AAAIC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACxC6C,EAAAA,SAAA,EAAW;AAAChD,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,EAAA;AAAIC,IAAAA,CAAA,EAAG,EAAA;AAAIC,IAAAA,CAAA,EAAG;GAAC;AACtC8C,EAAAA,WAAA,EAAa;AAACjD,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AAC1C+C,EAAAA,WAAA,EAAa;AAAClD,IAAAA,CAAA,EAAG,EAAA;AAAIC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,EAAA;AAAIC,IAAAA,CAAA,EAAG;GAAC;AACxCgD,EAAAA,OAAA,EAAS;AAACnD,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,CAAA;AAAGC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACpCiD,EAAAA,SAAA,EAAW;AAACpD,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACxCkD,EAAAA,UAAA,EAAY;AAACrD,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACzCmD,EAAAA,IAAA,EAAM;AAACtD,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,CAAA;AAAGC,IAAAA,CAAA,EAAG;GAAC;AACjCoD,EAAAA,SAAA,EAAW;AAACvD,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,EAAA;AAAIC,IAAAA,CAAA,EAAG;GAAC;AACvCqD,EAAAA,IAAA,EAAM;AAACxD,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACnCsD,EAAAA,KAAA,EAAO;AAACzD,IAAAA,CAAA,EAAG,CAAA;AAAGC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,CAAA;AAAGC,IAAAA,CAAA,EAAG;GAAC;AAChCuD,EAAAA,WAAA,EAAa;AAAC1D,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,EAAA;AAAIC,IAAAA,CAAA,EAAG;GAAC;AACzCwD,EAAAA,IAAA,EAAM;AAAC3D,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACnCyD,EAAAA,QAAA,EAAU;AAAC5D,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACvC0D,EAAAA,OAAA,EAAS;AAAC7D,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACtC2D,EAAAA,SAAA,EAAW;AAAC9D,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,EAAA;AAAIC,IAAAA,CAAA,EAAG,EAAA;AAAIC,IAAAA,CAAA,EAAG;GAAC;AACtC4D,EAAAA,MAAA,EAAQ;AAAC/D,IAAAA,CAAA,EAAG,EAAA;AAAIC,IAAAA,CAAA,EAAG,CAAA;AAAGC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AAClC6D,EAAAA,KAAA,EAAO;AAAChE,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACpC8D,EAAAA,KAAA,EAAO;AAACjE,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACpC+D,EAAAA,QAAA,EAAU;AAAClE,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACvCgE,EAAAA,aAAA,EAAe;AAACnE,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AAC5CiE,EAAAA,SAAA,EAAW;AAACpE,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,CAAA;AAAGC,IAAAA,CAAA,EAAG;GAAC;AACtCkE,EAAAA,YAAA,EAAc;AAACrE,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AAC3CmE,EAAAA,SAAA,EAAW;AAACtE,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACxCoE,EAAAA,UAAA,EAAY;AAACvE,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACzCqE,EAAAA,SAAA,EAAW;AAACxE,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACxCsE,EAAAA,oBAAA,EAAsB;AAACzE,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACnDuE,EAAAA,SAAA,EAAW;AAAC1E,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACxCwE,EAAAA,UAAA,EAAY;AAAC3E,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACzCyE,EAAAA,SAAA,EAAW;AAAC5E,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACxC0E,EAAAA,SAAA,EAAW;AAAC7E,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACxC2E,EAAAA,WAAA,EAAa;AAAC9E,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AAC1C4E,EAAAA,aAAA,EAAe;AAAC/E,IAAAA,CAAA,EAAG,EAAA;AAAIC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AAC3C6E,EAAAA,YAAA,EAAc;AAAChF,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AAC3C8E,EAAAA,cAAA,EAAgB;AAACjF,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AAC7C+E,EAAAA,cAAA,EAAgB;AAAClF,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AAC7CgF,EAAAA,cAAA,EAAgB;AAACnF,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AAC7CiF,EAAAA,WAAA,EAAa;AAACpF,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AAC1CkF,EAAAA,IAAA,EAAM;AAACrF,IAAAA,CAAA,EAAG,CAAA;AAAGC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,CAAA;AAAGC,IAAAA,CAAA,EAAG;GAAC;AAC/BmF,EAAAA,SAAA,EAAW;AAACtF,IAAAA,CAAA,EAAG,EAAA;AAAIC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,EAAA;AAAIC,IAAAA,CAAA,EAAG;GAAC;AACtCoF,EAAAA,KAAA,EAAO;AAACvF,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACpCqF,EAAAA,OAAA,EAAS;AAACxF,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,CAAA;AAAGC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACpCsF,EAAAA,MAAA,EAAQ;AAACzF,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,CAAA;AAAGC,IAAAA,CAAA,EAAG,CAAA;AAAGC,IAAAA,CAAA,EAAG;GAAC;AACjCuF,EAAAA,gBAAA,EAAkB;AAAC1F,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AAC/CwF,EAAAA,UAAA,EAAY;AAAC3F,IAAAA,CAAA,EAAG,CAAA;AAAGC,IAAAA,CAAA,EAAG,CAAA;AAAGC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACrCyF,EAAAA,YAAA,EAAc;AAAC5F,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,EAAA;AAAIC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AAC1C0F,EAAAA,YAAA,EAAc;AAAC7F,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AAC3C2F,EAAAA,cAAA,EAAgB;AAAC9F,IAAAA,CAAA,EAAG,EAAA;AAAIC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AAC5C4F,EAAAA,eAAA,EAAiB;AAAC/F,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AAC9C6F,EAAAA,iBAAA,EAAmB;AAAChG,IAAAA,CAAA,EAAG,CAAA;AAAGC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AAC9C8F,EAAAA,eAAA,EAAiB;AAACjG,IAAAA,CAAA,EAAG,EAAA;AAAIC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AAC7C+F,EAAAA,eAAA,EAAiB;AAAClG,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,EAAA;AAAIC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AAC7CgG,EAAAA,YAAA,EAAc;AAACnG,IAAAA,CAAA,EAAG,EAAA;AAAIC,IAAAA,CAAA,EAAG,EAAA;AAAIC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACzCiG,EAAAA,SAAA,EAAW;AAACpG,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACxCkG,EAAAA,SAAA,EAAW;AAACrG,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACxCmG,EAAAA,QAAA,EAAU;AAACtG,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACvCoG,EAAAA,WAAA,EAAa;AAACvG,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AAC1CqG,EAAAA,IAAA,EAAM;AAACxG,IAAAA,CAAA,EAAG,CAAA;AAAGC,IAAAA,CAAA,EAAG,CAAA;AAAGC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AAC/BsG,EAAAA,OAAA,EAAS;AAACzG,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACtCuG,EAAAA,KAAA,EAAO;AAAC1G,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,CAAA;AAAGC,IAAAA,CAAA,EAAG;GAAC;AAClCwG,EAAAA,SAAA,EAAW;AAAC3G,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,EAAA;AAAIC,IAAAA,CAAA,EAAG;GAAC;AACvCyG,EAAAA,MAAA,EAAQ;AAAC5G,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,CAAA;AAAGC,IAAAA,CAAA,EAAG;GAAC;AACnC0G,EAAAA,SAAA,EAAW;AAAC7G,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,EAAA;AAAIC,IAAAA,CAAA,EAAG,CAAA;AAAGC,IAAAA,CAAA,EAAG;GAAC;AACrC2G,EAAAA,MAAA,EAAQ;AAAC9G,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACrC4G,EAAAA,aAAA,EAAe;AAAC/G,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AAC5C6G,EAAAA,SAAA,EAAW;AAAChH,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACxC8G,EAAAA,aAAA,EAAe;AAACjH,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AAC5C+G,EAAAA,aAAA,EAAe;AAAClH,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AAC5CgH,EAAAA,UAAA,EAAY;AAACnH,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACzCiH,EAAAA,SAAA,EAAW;AAACpH,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACxCkH,EAAAA,IAAA,EAAM;AAACrH,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,EAAA;AAAIC,IAAAA,CAAA,EAAG;GAAC;AAClCmH,EAAAA,IAAA,EAAM;AAACtH,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACnCoH,EAAAA,IAAA,EAAM;AAACvH,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACnCqH,EAAAA,UAAA,EAAY;AAACxH,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACzCsH,EAAAA,MAAA,EAAQ;AAACzH,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,CAAA;AAAGC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACnCuH,EAAAA,GAAA,EAAK;AAAC1H,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,CAAA;AAAGC,IAAAA,CAAA,EAAG,CAAA;AAAGC,IAAAA,CAAA,EAAG;GAAC;AAC9BwH,EAAAA,SAAA,EAAW;AAAC3H,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACxCyH,EAAAA,SAAA,EAAW;AAAC5H,IAAAA,CAAA,EAAG,EAAA;AAAIC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACvC0H,EAAAA,WAAA,EAAa;AAAC7H,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,EAAA;AAAIC,IAAAA,CAAA,EAAG,EAAA;AAAIC,IAAAA,CAAA,EAAG;GAAC;AACxC2H,EAAAA,MAAA,EAAQ;AAAC9H,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACrC4H,EAAAA,UAAA,EAAY;AAAC/H,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,EAAA;AAAIC,IAAAA,CAAA,EAAG;GAAC;AACxC6H,EAAAA,QAAA,EAAU;AAAChI,IAAAA,CAAA,EAAG,EAAA;AAAIC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,EAAA;AAAIC,IAAAA,CAAA,EAAG;GAAC;AACrC8H,EAAAA,QAAA,EAAU;AAACjI,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACvC+H,EAAAA,MAAA,EAAQ;AAAClI,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,EAAA;AAAIC,IAAAA,CAAA,EAAG,EAAA;AAAIC,IAAAA,CAAA,EAAG;GAAC;AACnCgI,EAAAA,MAAA,EAAQ;AAACnI,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACrCiI,EAAAA,OAAA,EAAS;AAACpI,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACtCkI,EAAAA,SAAA,EAAW;AAACrI,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,EAAA;AAAIC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACvCmI,EAAAA,SAAA,EAAW;AAACtI,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACxCoI,EAAAA,SAAA,EAAW;AAACvI,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACxCqI,EAAAA,IAAA,EAAM;AAACxI,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACnCsI,EAAAA,WAAA,EAAa;AAACzI,IAAAA,CAAA,EAAG,CAAA;AAAGC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACxCuI,EAAAA,SAAA,EAAW;AAAC1I,IAAAA,CAAA,EAAG,EAAA;AAAIC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACvCwI,EAAAA,GAAA,EAAK;AAAC3I,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AAClCyI,EAAAA,IAAA,EAAM;AAAC5I,IAAAA,CAAA,EAAG,CAAA;AAAGC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACjC0I,EAAAA,OAAA,EAAS;AAAC7I,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACtC2I,EAAAA,MAAA,EAAQ;AAAC9I,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,EAAA;AAAIC,IAAAA,CAAA,EAAG,EAAA;AAAIC,IAAAA,CAAA,EAAG;GAAC;AACnC4I,EAAAA,SAAA,EAAW;AAAC/I,IAAAA,CAAA,EAAG,EAAA;AAAIC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACvC6I,EAAAA,MAAA,EAAQ;AAAChJ,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACrC8I,EAAAA,KAAA,EAAO;AAACjJ,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACpC+I,EAAAA,KAAA,EAAO;AAAClJ,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACpCgJ,EAAAA,UAAA,EAAY;AAACnJ,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG;GAAC;AACzCiJ,EAAAA,MAAA,EAAQ;AAACpJ,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,CAAA;AAAGC,IAAAA,CAAA,EAAG;GAAC;AACnCkJ,EAAAA,WAAA,EAAa;AAACrJ,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,GAAA;AAAKC,IAAAA,CAAA,EAAG,EAAA;AAAIC,IAAAA,CAAA,EAAG;AAAA;AAC1C,CAAA;AAEA,MAAMmJ,UAAA,GAAaA,CAACC,CAAA,EAAWC,CAAA,EAAWC,CAAA,KAAc;EACtD,IAAIA,CAAA,GAAI,CAAA,EAAGA,CAAA,EAAA;EACX,IAAIA,CAAA,GAAI,CAAA,EAAGA,CAAA,EAAA;AAEX,EAAA,IAAIC,KAAA;EAEJ,IAAID,CAAA,GAAI,CAAA,GAAI,CAAA,EAAG;IACbC,KAAA,GAAQH,CAAA,GAAA,CAAMC,CAAA,GAAID,CAAA,IAAKE,CAAA,GAAI,CAAA;EAC7B,CAAA,MAAA,IAAWA,CAAA,GAAI,CAAA,GAAI,CAAA,EAAG;AACpBC,IAAAA,KAAA,GAAQF,CAAA;EACV,CAAA,MAAA,IAAWC,CAAA,GAAI,CAAA,GAAI,CAAA,EAAG;IACpBC,KAAA,GAAQH,CAAA,GAAA,CAAMC,CAAA,GAAID,CAAA,KAAO,CAAA,GAAI,CAAA,GAAKE,CAAA,CAAA,GAAK,CAAA;EACzC,CAAA,MAAO;AACLC,IAAAA,KAAA,GAAQH,CAAA;AACV,EAAA;AAEA,EAAA,OAAOI,IAAA,CAAKC,KAAA,CAAMF,KAAA,GAAQ,GAAG,CAAA;AAC/B,CAAA;AAEA,MAAMG,UAAA,GAAcrQ,KAAA,IAAkB;AACpC,EAAA,MAAMsF,GAAA,GAAMtF,KAAA,CAAMsQ,QAAA,CAAS,EAAE,CAAA;AAC7B,EAAA,IAAItQ,KAAA,GAAQ,EAAA,EAAI,OAAO,IAAIsF,GAAG,CAAA,CAAA;AAE9B,EAAA,OAAOA,GAAA;AACT,CAAA;AAEA,MAAMiL,QAAA,GAAWA,CAAC5J,CAAA,EAAWD,CAAA,EAAW8J,KAAA,KAAkB7J,CAAA,GAAA,CAAMD,CAAA,GAAIC,CAAA,IAAK6J,KAAA;AASzE,MAAMC,KAAA,CAAM;EACVjK,CAAA;EACAC,CAAA;EACAC,CAAA;EACAC,CAAA;AAAA;AAAA;AAAA;AAKA/G,EAAAA,WAAAA,CAAYsQ,KAAA,EAA+B;IACzC,IAAI,OAAOA,KAAA,KAAU,QAAA,EAAU;MAC7B,IAAA,CAAKQ,MAAA,CAAOR,KAAK,CAAA;AACnB,IAAA,CAAA,MAAA,IAAWA,KAAA,IAAS,IAAA,IAAQ,OAAOA,KAAA,KAAU,QAAA,EAAU;AACrD,MAAA,IAAA,CAAK1J,CAAA,GAAI0J,KAAA,CAAM1J,CAAA,GAAI,CAAA;AACnB,MAAA,IAAA,CAAKC,CAAA,GAAIyJ,KAAA,CAAMzJ,CAAA,GAAI,CAAA;AACnB,MAAA,IAAA,CAAKC,CAAA,GAAIwJ,KAAA,CAAMxJ,CAAA,GAAI,CAAA;AACnB,MAAA,IAAA,CAAKC,CAAA,GAAI,CAACuJ,KAAA,CAAMvJ,CAAA;IAClB,CAAA,MAAO;MACL,MAAM,IAAIhB,SAAA,CAAU,oBAAoB,CAAA;AAC1C,IAAA;AAEA,IAAA,IAAI,IAAA,CAAKa,CAAA,GAAI,CAAA,IAAK,IAAA,CAAKA,CAAA,GAAI,GAAA,IACtB,IAAA,CAAKC,CAAA,GAAI,CAAA,IAAK,KAAKA,CAAA,GAAI,GAAA,IACvB,IAAA,CAAKC,CAAA,GAAI,CAAA,IAAK,IAAA,CAAKA,CAAA,GAAI,GAAA,IACvB,IAAA,CAAKC,CAAA,GAAI,CAAA,IAAK,IAAA,CAAKA,CAAA,GAAI,CAAA,EAAG;AAC7B,MAAA,MAAM,IAAIgK,UAAA,CAAW,CAAA,IAAA,EAAO,KAAKnK,CAAC,CAAA,KAAA,EAAQ,IAAA,CAAKC,CAAC,QAAQ,IAAA,CAAKC,CAAC,CAAA,KAAA,EAAQ,IAAA,CAAKC,CAAC,CAAA,aAAA,CAAe,CAAA;AAC7F,IAAA;AACF,EAAA;AAAA;AAAA;AAAA;AAKA+J,EAAAA,MAAAA,CAAOR,KAAA,EAAe;AACpBA,IAAAA,KAAA,GAAQA,KAAA,CAAMU,WAAA,EAAY;IAE1B,IAAIlQ,MAAA,CAAOmQ,SAAA,CAAUC,cAAA,CAAeC,IAAA,CAAKzK,UAAA,EAAY4J,KAAK,CAAA,EAAG;AAC3D,MAAA,MAAMxK,GAAA,GAAMY,UAAA,CAAW4J,KAAK,CAAA;AAE5B,MAAA,IAAA,CAAK1J,CAAA,GAAId,GAAA,CAAIc,CAAA;AACb,MAAA,IAAA,CAAKC,CAAA,GAAIf,GAAA,CAAIe,CAAA;AACb,MAAA,IAAA,CAAKC,CAAA,GAAIhB,GAAA,CAAIgB,CAAA;AACb,MAAA,IAAA,CAAKC,CAAA,GAAIjB,GAAA,CAAIiB,CAAA;AAEb,MAAA;AACF,IAAA;AAEA,IAAA,IAAIT,KAAA,CAAM8K,IAAA,CAAKd,KAAK,CAAA,EAAG;AACrB,MAAA,MAAMe,GAAA,GAAMf,KAAA,CAAM1K,SAAA,CAAU,CAAC,CAAA;AAC7B,MAAA,MAAM0L,IAAA,GAAOC,QAAA,CAASF,GAAA,EAAK,EAAE,CAAA;AAE7B,MAAA,IAAA,CAAKzK,CAAA,GAAA,CAAA,CAAM0K,IAAA,GAAO,SAAU,CAAA,IAAK,EAAA;AACjC,MAAA,IAAA,CAAKzK,CAAA,GAAA,CAAA,CAAMyK,IAAA,GAAO,QAAS,CAAA,IAAK,EAAA;AAChC,MAAA,IAAA,CAAKxK,CAAA,GAAA,CAAKwK,IAAA,GAAO,EAAA,IAAO,EAAA;AACxB,MAAA,IAAA,CAAKvK,CAAA,GAAI,CAAA;AAET,MAAA;AACF,IAAA;AAEA,IAAA,IAAIR,KAAA,CAAM6K,IAAA,CAAKd,KAAK,CAAA,EAAG;AACrB,MAAA,MAAMe,GAAA,GAAMf,KAAA,CAAM1K,SAAA,CAAU,CAAC,CAAA;AAC7B,MAAA,MAAM0L,IAAA,GAAOC,QAAA,CAASF,GAAA,EAAK,EAAE,CAAA;AAE7B,MAAA,IAAA,CAAKzK,CAAA,GAAA,CAAK0K,IAAA,GAAO,QAAA,KAAa,EAAA;AAC9B,MAAA,IAAA,CAAKzK,CAAA,GAAA,CAAKyK,IAAA,GAAO,KAAA,KAAW,CAAA;MAC5B,IAAA,CAAKxK,CAAA,GAAIwK,IAAA,GAAO,GAAA;AAChB,MAAA,IAAA,CAAKvK,CAAA,GAAI,CAAA;AAET,MAAA;AACF,IAAA;AAEA,IAAA,IAAI1D,KAAA,GAAQiN,KAAA,CAAMjN,KAAA,CAAMmD,IAAI,CAAA;AAE5B,IAAA,IAAInD,KAAA,EAAO;MACT,IAAA,CAAKuD,CAAA,GAAI4K,MAAA,CAAOnO,KAAA,CAAM,CAAC,CAAC,CAAA,GAAI,CAAA;MAC5B,IAAA,CAAKwD,CAAA,GAAI2K,MAAA,CAAOnO,KAAA,CAAM,CAAC,CAAC,CAAA,GAAI,CAAA;MAC5B,IAAA,CAAKyD,CAAA,GAAI0K,MAAA,CAAOnO,KAAA,CAAM,CAAC,CAAC,CAAA,GAAI,CAAA;MAC5B,IAAA,CAAK0D,CAAA,GAAI1D,KAAA,CAAM,CAAC,IAAI,CAACA,KAAA,CAAM,CAAC,CAAA,GAAI,CAAA;AAEhC,MAAA;AACF,IAAA;AAEAA,IAAAA,KAAA,GAAQiN,KAAA,CAAMjN,KAAA,CAAMoD,IAAI,CAAA;AAExB,IAAA,IAAIpD,KAAA,EAAO;AACT,MAAA,MAAMgN,CAAA,GAAI,CAAChN,KAAA,CAAM,CAAC,CAAA,GAAI,GAAA;AACtB,MAAA,MAAMoO,CAAA,GAAI,CAACpO,KAAA,CAAM,CAAC,CAAA,GAAI,GAAA;AACtB,MAAA,MAAMqO,CAAA,GAAI,CAACrO,KAAA,CAAM,CAAC,CAAA,GAAI,GAAA;MAEtB,IAAA,CAAK0D,CAAA,GAAI1D,KAAA,CAAM,CAAC,IAAI,CAACA,KAAA,CAAM,CAAC,CAAA,GAAI,CAAA;MAEhC,IAAI,CAACoO,CAAA,EAAG;QACN,IAAA,CAAK7K,CAAA,GAAI8K,CAAA,GAAI,GAAA;QACb,IAAA,CAAK7K,CAAA,GAAI,IAAA,CAAKD,CAAA;QACd,IAAA,CAAKE,CAAA,GAAI,IAAA,CAAKF,CAAA;AAChB,MAAA;AAEA,MAAA,MAAMwJ,CAAA,GAAIsB,CAAA,GAAI,GAAA,GAAMA,CAAA,IAAK,CAAA,GAAID,CAAA,CAAA,GAAKC,CAAA,GAAID,CAAA,GAAKC,CAAA,GAAID,CAAA;AAC/C,MAAA,MAAMtB,CAAA,GAAK,CAAA,GAAIuB,CAAA,GAAKtB,CAAA;AAEpB,MAAA,MAAMuB,EAAA,GAAKtB,CAAA,GAAK,CAAA,GAAI,CAAA;MACpB,MAAMuB,EAAA,GAAKvB,CAAA;AACX,MAAA,MAAMwB,EAAA,GAAKxB,CAAA,GAAK,CAAA,GAAI,CAAA;MAEpB,IAAA,CAAKzJ,CAAA,GAAIsJ,UAAA,CAAWC,CAAA,EAAGC,CAAA,EAAGuB,EAAE,CAAA;MAC5B,IAAA,CAAK9K,CAAA,GAAIqJ,UAAA,CAAWC,CAAA,EAAGC,CAAA,EAAGwB,EAAE,CAAA;MAC5B,IAAA,CAAK9K,CAAA,GAAIoJ,UAAA,CAAWC,CAAA,EAAGC,CAAA,EAAGyB,EAAE,CAAA;AAE5B,MAAA;AACF,IAAA;AAEA,IAAA,MAAM,IAAIC,KAAA,CAAM,CAAA,EAAGxB,KAAK,CAAA,iCAAA,CAAmC,CAAA;AAC7D,EAAA;AAEAI,EAAAA,QAAAA,GAAW;IACT,IAAI,IAAA,CAAK3J,CAAA,KAAM,CAAA,EAAG;AAChB,MAAA,MAAMH,CAAA,GAAI6J,UAAA,CAAW,KAAK7J,CAAC,CAAA;AAC3B,MAAA,MAAMC,CAAA,GAAI4J,UAAA,CAAW,KAAK5J,CAAC,CAAA;AAC3B,MAAA,MAAMC,CAAA,GAAI2J,UAAA,CAAW,KAAK3J,CAAC,CAAA;MAE3B,IAAI,IAAA,CAAKF,CAAA,GAAI,EAAA,IAAM,IAAA,CAAKC,CAAA,GAAI,EAAA,IAAM,IAAA,CAAKC,CAAA,GAAI,EAAA,EAAI;AAC7C,QAAA,OAAO,CAAA,CAAA,EAAIF,CAAC,CAAA,EAAGC,CAAC,GAAGC,CAAC,CAAA,CAAA;AACtB,MAAA;AAEA,MAAA,OAAO,CAAA,CAAA,EAAIF,CAAA,CAAE,CAAC,CAAC,CAAA,EAAGC,CAAA,CAAE,CAAC,CAAC,CAAA,EAAGC,CAAA,CAAE,CAAC,CAAC,CAAA,CAAA;AAC/B,IAAA;AAEA,IAAA,OAAO,QAAQ,IAAA,CAAKF,CAAC,KAAK,IAAA,CAAKC,CAAC,KAAK,IAAA,CAAKC,CAAC,KAAKiL,UAAA,CAAW,KAAKhL,CAAA,CAAEiL,OAAA,CAAQ,CAAC,CAAC,CAAC,CAAA,CAAA,CAAA;AAC/E,EAAA;AAAA;AAAA;AAAA;AAAA;EAMAC,GAAAA,CAAI3B,KAAA,EAAaM,KAAA,EAAe;AAC9B,IAAA,IAAIA,KAAA,GAAQ,CAAA,IAAKA,KAAA,GAAQ,CAAA,EAAG;MAC1B,MAAM,IAAIG,UAAA,CAAW,wCAAwC,CAAA;AAC/D,IAAA;AACA,IAAA,QAAQH,KAAA;MACN,KAAK,CAAA;QACH,OAAO,IAAIC,KAAA,CAAM,IAAI,CAAA;MAEvB,KAAK,CAAA;QACH,OAAO,IAAIA,KAAA,CAAMP,KAAK,CAAA;AAAA;IAG1B,OAAO,IAAIO,KAAA,CAAM;AACfjK,MAAAA,CAAA,EAAG2J,IAAA,CAAKC,KAAA,CAAMG,QAAA,CAAS,IAAA,CAAK/J,CAAA,EAAG0J,KAAA,CAAM1J,CAAA,EAAGgK,KAAK,CAAC,CAAA;AAC9C/J,MAAAA,CAAA,EAAG0J,IAAA,CAAKC,KAAA,CAAMG,QAAA,CAAS,IAAA,CAAK9J,CAAA,EAAGyJ,KAAA,CAAMzJ,CAAA,EAAG+J,KAAK,CAAC,CAAA;AAC9C9J,MAAAA,CAAA,EAAGyJ,IAAA,CAAKC,KAAA,CAAMG,QAAA,CAAS,IAAA,CAAK7J,CAAA,EAAGwJ,KAAA,CAAMxJ,CAAA,EAAG8J,KAAK,CAAC,CAAA;MAC9C7J,CAAA,EAAG4J,QAAA,CAAS,IAAA,CAAK5J,CAAA,EAAGuJ,KAAA,CAAMvJ,CAAA,EAAG6J,KAAK;KACnC,CAAA;AACH,EAAA;AACF;AAKA,IAAI,OAAO3P,MAAA,KAAW,WAAA,IAAe,OAAOA,MAAA,CAAOC,OAAA,KAAY,QAAA,IAAYD,MAAA,CAAOC,OAAA,KAAY,IAAA,EAAM;EAClGD,MAAA,CAAOC,OAAA,GAAU2P,KAAA;AAEjB5P,EAAAA,MAAA,CAAOC,OAAA,CAAQC,OAAA,GAAU0P,KAAA;AAC3B;;;AChWA,MAAMqB,MAAA,GAAiB,UAAA;AAGvB,MAAMC,IAAA,GAAe,EAAA;AACrB,MAAMC,IAAA,GAAe,CAAA;AACrB,MAAMC,IAAA,GAAe,EAAA;AACrB,MAAMC,IAAA,GAAe,EAAA;AACrB,MAAMC,IAAA,GAAe,GAAA;AACrB,MAAMC,WAAA,GAAsB,EAAA;AAC5B,MAAMC,QAAA,GAAmB,GAAA;AACzB,MAAMC,SAAA,GAAoB,GAAA;AAG1B,MAAMC,aAAA,GAAwB,OAAA;AAC9B,MAAMC,aAAA,GAAwB,YAAA;AAC9B,MAAMC,eAAA,GAA0B,2BAAA;AAGhC,MAAMC,MAAA,GAAiC;AACrCC,EAAAA,QAAA,EAAU,iDAAA;EACV,WAAA,EAAa,gDAAA;EACb,eAAA,EAAiB;AACnB,CAAA;AAGA,MAAMC,aAAA,GAAwBb,IAAA,GAAOC,IAAA;AACrC,MAAMa,KAAA,GAA+B1C,IAAA,CAAK0C,KAAA;AAC1C,MAAMC,kBAAA,GAAqDC,MAAA,CAAOC,YAAA;AAQlE,SAASC,KAAAA,CAAMC,IAAA,EAAqB;AAClC,EAAA,MAAM,IAAIvC,UAAA,CAAW+B,MAAA,CAAOQ,IAAI,CAAC,CAAA;AACnC;AAMA,SAAS/O,GAAAA,CAAUgP,KAAA,EAAY7R,QAAA,EAA+B;EAC5D,MAAMe,MAAA,GAAc,EAAC;AACrB,EAAA,IAAIK,MAAA,GAASyQ,KAAA,CAAMzQ,MAAA;AACnB,EAAA,OAAOA,MAAA,EAAA,EAAU;IACfL,MAAA,CAAOK,MAAM,CAAA,GAAIpB,QAAA,CAAS6R,KAAA,CAAMzQ,MAAM,CAAC,CAAA;AACzC,EAAA;AACA,EAAA,OAAOL,MAAA;AACT;AAOA,SAAS+Q,SAAAA,CAAUC,MAAA,EAAgB/R,QAAA,EAA4C;AAC7E,EAAA,MAAMgS,KAAA,GAAQD,MAAA,CAAOjR,KAAA,CAAM,GAAG,CAAA;AAC9B,EAAA,IAAIC,MAAA,GAAS,EAAA;AACb,EAAA,IAAIiR,KAAA,CAAM5Q,MAAA,GAAS,CAAA,EAAG;AAGpBL,IAAAA,MAAA,GAASiR,KAAA,CAAM,CAAC,CAAA,GAAI,GAAA;IACpBD,MAAA,GAASC,KAAA,CAAM,CAAC,CAAA;AAClB,EAAA;AAEAD,EAAAA,MAAA,GAASA,MAAA,CAAO9Q,OAAA,CAAQkQ,eAAA,EAAiB,GAAM,CAAA;AAC/C,EAAA,MAAMc,MAAA,GAASF,MAAA,CAAOjR,KAAA,CAAM,GAAG,CAAA;EAC/B,MAAMoR,OAAA,GAAUrP,GAAA,CAAIoP,MAAA,EAAQjS,QAAQ,CAAA,CAAE8C,IAAA,CAAK,GAAG,CAAA;EAC9C,OAAO/B,MAAA,GAASmR,OAAA;AAClB;AASA,SAASC,UAAAA,CAAWC,MAAA,EAA0B;EAC5C,MAAMC,MAAA,GAAmB,EAAC;AAC1B,EAAA,IAAIC,OAAA,GAAU,CAAA;AACd,EAAA,MAAMlR,MAAA,GAASgR,MAAA,CAAOhR,MAAA;EACtB,OAAOkR,OAAA,GAAUlR,MAAA,EAAQ;AACvB,IAAA,MAAM1C,KAAA,GAAQ0T,MAAA,CAAOG,UAAA,CAAWD,OAAA,EAAS,CAAA;IACzC,IAAI5T,KAAA,IAAS,KAAA,IAAUA,KAAA,IAAS,KAAA,IAAU4T,OAAA,GAAUlR,MAAA,EAAQ;AAE1D,MAAA,MAAMoR,KAAA,GAAQJ,MAAA,CAAOG,UAAA,CAAWD,OAAA,EAAS,CAAA;MACzC,IAAA,CAAKE,KAAA,GAAQ,KAAA,MAAY,KAAA,EAAQ;QAE/BH,MAAA,CAAOjS,IAAA,CAAA,CAAA,CAAO1B,KAAA,GAAQ,SAAU,EAAA,KAAO8T,KAAA,GAAQ,IAAA,CAAA,GAAS,KAAO,CAAA;MACjE,CAAA,MAAO;QAGLH,MAAA,CAAOjS,IAAA,CAAK1B,KAAK,CAAA;QACjB4T,OAAA,EAAA;AACF,MAAA;IACF,CAAA,MAAO;MACLD,MAAA,CAAOjS,IAAA,CAAK1B,KAAK,CAAA;AACnB,IAAA;AACF,EAAA;AACA,EAAA,OAAO2T,MAAA;AACT;AAKA,MAAMI,UAAA,GAAcC,UAAA,IAAiCjB,MAAA,CAAOkB,aAAA,CAAc,GAAGD,UAAU,CAAA;AAOvF,MAAME,YAAA,GAAe,UAASC,SAAA,EAA2B;AACvD,EAAA,IAAIA,SAAA,IAAa,EAAA,IAAQA,SAAA,GAAY,EAAA,EAAM;IACzC,OAAO,EAAA,IAAMA,SAAA,GAAY,EAAA,CAAA;AAC3B,EAAA;AACA,EAAA,IAAIA,SAAA,IAAa,EAAA,IAAQA,SAAA,GAAY,EAAA,EAAM;AACzC,IAAA,OAAOA,SAAA,GAAY,EAAA;AACrB,EAAA;AACA,EAAA,IAAIA,SAAA,IAAa,EAAA,IAAQA,SAAA,GAAY,GAAA,EAAM;AACzC,IAAA,OAAOA,SAAA,GAAY,EAAA;AACrB,EAAA;AACA,EAAA,OAAOpC,IAAA;AACT,CAAA;AAOA,MAAMqC,YAAA,GAAe,UAASC,KAAA,EAAeC,IAAA,EAAsB;AAGjE,EAAA,OAAOD,KAAA,GAAQ,EAAA,GAAM,EAAA,GAAKjD,MAAA,CAAOiD,KAAA,GAAQ,EAAE,KAAMjD,MAAA,CAAOkD,IAAA,KAAS,CAAC,CAAA,IAAK,CAAA,CAAA;AACzE,CAAA;AAOA,MAAMC,KAAA,GAAQ,UAASC,KAAA,EAAeC,SAAA,EAAmBC,SAAA,EAA4B;AACnF,EAAA,IAAIC,CAAA,GAAI,CAAA;EACRH,KAAA,GAAQE,SAAA,GAAY7B,KAAA,CAAM2B,KAAA,GAAQrC,IAAI,CAAA,GAAIqC,KAAA,IAAS,CAAA;AACnDA,EAAAA,KAAA,IAAS3B,KAAA,CAAM2B,KAAA,GAAQC,SAAS,CAAA;AAChC,EAAA;EAA+BD,KAAA,GAAS5B,aAAA,GAAgBX,IAAA,IAAS,CAAA,EAAG0C,CAAA,IAAK5C,IAAA,EAAM;AAC7EyC,IAAAA,KAAA,GAAQ3B,KAAA,CAAM2B,KAAA,GAAQ5B,aAAa,CAAA;AACrC,EAAA;AACA,EAAA,OAAOC,KAAA,CAAM8B,CAAA,GAAA,CAAO/B,aAAA,GAAgB,CAAA,IAAK4B,KAAA,IAAUA,KAAA,GAAQtC,IAAA,CAAM,CAAA;AACnE,CAAA;AAMA,MAAM0C,MAAA,GAAS,UAASrR,KAAA,EAAuB;EAE7C,MAAMoQ,MAAA,GAAS,EAAC;AAChB,EAAA,MAAMkB,WAAA,GAActR,KAAA,CAAMb,MAAA;AAC1B,EAAA,IAAIK,CAAA,GAAI,CAAA;EACR,IAAI+R,CAAA,GAAIzC,QAAA;EACR,IAAI0C,IAAA,GAAO3C,WAAA;AAMX,EAAA,IAAI4C,KAAA,GAAQzR,KAAA,CAAM0R,WAAA,CAAY3C,SAAS,CAAA;EACvC,IAAI0C,KAAA,GAAQ,CAAA,EAAG;AACbA,IAAAA,KAAA,GAAQ,CAAA;AACV,EAAA;EAEA,KAAA,IAASE,CAAA,GAAI,CAAA,EAAGA,CAAA,GAAIF,KAAA,EAAO,EAAEE,CAAA,EAAG;AAE9B,IAAA,IAAI3R,KAAA,CAAMsQ,UAAA,CAAWqB,CAAC,KAAK,GAAA,EAAM;AAC/BjC,MAAAA,KAAA,CAAM,WAAW,CAAA;AACnB,IAAA;IACAU,MAAA,CAAOjS,IAAA,CAAK6B,KAAA,CAAMsQ,UAAA,CAAWqB,CAAC,CAAC,CAAA;AACjC,EAAA;AAKA,EAAA,KAAA,IAAS9R,KAAA,GAAQ4R,KAAA,GAAQ,CAAA,GAAIA,KAAA,GAAQ,CAAA,GAAI,CAAA,EAAG5R,KAAA,GAAQyR,WAAA,GAAc;IAMhE,MAAMM,IAAA,GAAOpS,CAAA;IACb,KAAA,IAASqS,CAAA,GAAI,CAAA,EAAGT,CAAA,GAAI5C,IAAA,GAAQ4C,CAAA,IAAK5C,IAAA,EAAM;MACrC,IAAI3O,KAAA,IAASyR,WAAA,EAAa;AACxB5B,QAAAA,KAAA,CAAM,eAAe,CAAA;AACvB,MAAA;MAEA,MAAMoB,KAAA,GAAQH,YAAA,CAAa3Q,KAAA,CAAMsQ,UAAA,CAAWzQ,KAAA,EAAO,CAAC,CAAA;MAEpD,IAAIiR,KAAA,IAAStC,IAAA,EAAM;AACjBkB,QAAAA,KAAA,CAAM,eAAe,CAAA;AACvB,MAAA;MACA,IAAIoB,KAAA,GAAQxB,KAAA,CAAA,CAAOf,MAAA,GAAS/O,CAAA,IAAKqS,CAAC,CAAA,EAAG;AACnCnC,QAAAA,KAAA,CAAM,UAAU,CAAA;AAClB,MAAA;MAEAlQ,CAAA,IAAKsR,KAAA,GAAQe,CAAA;AACb,MAAA,IAAIC,CAAA;MACJ,IAAIV,CAAA,IAAKI,IAAA,EAAM;AACbM,QAAAA,CAAA,GAAIrD,IAAA;AACN,MAAA,CAAA,MAAA,IAAW2C,CAAA,IAAKI,IAAA,GAAO9C,IAAA,EAAM;AAC3BoD,QAAAA,CAAA,GAAIpD,IAAA;MACN,CAAA,MAAO;QACLoD,CAAA,GAAIV,CAAA,GAAII,IAAA;AACV,MAAA;MAEA,IAAIV,KAAA,GAAQgB,CAAA,EAAG;AACb,QAAA;AACF,MAAA;AAEA,MAAA,MAAMC,UAAA,GAAavD,IAAA,GAAOsD,CAAA;AAC1B,MAAA,IAAID,CAAA,GAAIvC,KAAA,CAAMf,MAAA,GAASwD,UAAU,CAAA,EAAG;AAClCrC,QAAAA,KAAA,CAAM,UAAU,CAAA;AAClB,MAAA;AAEAmC,MAAAA,CAAA,IAAKE,UAAA;AACP,IAAA;AAEA,IAAA,MAAMC,GAAA,GAAM5B,MAAA,CAAOjR,MAAA,GAAS,CAAA;IAC5BqS,IAAA,GAAOR,KAAA,CAAMxR,CAAA,GAAIoS,IAAA,EAAMI,GAAA,EAAKJ,IAAA,KAAS,CAAC,CAAA;IAItC,IAAItC,KAAA,CAAM9P,CAAA,GAAIwS,GAAG,CAAA,GAAIzD,MAAA,GAASgD,CAAA,EAAG;AAC/B7B,MAAAA,KAAA,CAAM,UAAU,CAAA;AAClB,IAAA;AAEA6B,IAAAA,CAAA,IAAKjC,KAAA,CAAM9P,CAAA,GAAIwS,GAAG,CAAA;AAClBxS,IAAAA,CAAA,IAAKwS,GAAA;AAGL5B,IAAAA,MAAA,CAAOtQ,MAAA,CAAON,CAAA,EAAA,EAAK,GAAG+R,CAAC,CAAA;AACzB,EAAA;AAEA,EAAA,OAAO/B,MAAA,CAAOkB,aAAA,CAAc,GAAGN,MAAM,CAAA;AACvC,CAAA;AAMA,MAAM6B,MAAA,GAAS,UAASjS,KAAA,EAAuB;EAC7C,MAAMoQ,MAAA,GAAS,EAAC;AAGhB,EAAA,MAAM8B,QAAA,GAAWhC,UAAA,CAAWlQ,KAAK,CAAA;AAGjC,EAAA,MAAMsR,WAAA,GAAcY,QAAA,CAAS/S,MAAA;EAG7B,IAAIoS,CAAA,GAAIzC,QAAA;AACR,EAAA,IAAImC,KAAA,GAAQ,CAAA;EACZ,IAAIO,IAAA,GAAO3C,WAAA;EAGX,KAAA,MAAWsD,YAAA,IAAgBD,QAAA,EAAU;IACnC,IAAIC,YAAA,GAAe,GAAA,EAAM;AACvB/B,MAAAA,MAAA,CAAOjS,IAAA,CAAKoR,kBAAA,CAAmB4C,YAAY,CAAC,CAAA;AAC9C,IAAA;AACF,EAAA;AAEA,EAAA,MAAMC,WAAA,GAAchC,MAAA,CAAOjR,MAAA;EAC3B,IAAIkT,cAAA,GAAiBD,WAAA;AAMrB,EAAA,IAAIA,WAAA,EAAa;IACfhC,MAAA,CAAOjS,IAAA,CAAK4Q,SAAS,CAAA;AACvB,EAAA;EAGA,OAAOsD,cAAA,GAAiBf,WAAA,EAAa;IAEnC,IAAIgB,CAAA,GAAI/D,MAAA;IACR,KAAA,MAAW4D,YAAA,IAAgBD,QAAA,EAAU;AACnC,MAAA,IAAIC,YAAA,IAAgBZ,CAAA,IAAKY,YAAA,GAAeG,CAAA,EAAG;AACzCA,QAAAA,CAAA,GAAIH,YAAA;AACN,MAAA;AACF,IAAA;IAGA,MAAMI,qBAAA,GAAwBF,cAAA,GAAiB,CAAA;IAC/C,IAAIC,CAAA,GAAIf,CAAA,GAAIjC,KAAA,CAAA,CAAOf,MAAA,GAAS0C,KAAA,IAASsB,qBAAqB,CAAA,EAAG;AAC3D7C,MAAAA,KAAA,CAAM,UAAU,CAAA;AAClB,IAAA;AAEAuB,IAAAA,KAAA,IAAA,CAAUqB,CAAA,GAAIf,CAAA,IAAKgB,qBAAA;AACnBhB,IAAAA,CAAA,GAAIe,CAAA;IAEJ,KAAA,MAAWH,YAAA,IAAgBD,QAAA,EAAU;MACnC,IAAIC,YAAA,GAAeZ,CAAA,IAAK,EAAEN,KAAA,GAAQ1C,MAAA,EAAQ;AACxCmB,QAAAA,KAAA,CAAM,UAAU,CAAA;AAClB,MAAA;MACA,IAAIyC,YAAA,KAAiBZ,CAAA,EAAG;QAEtB,IAAI9E,CAAA,GAAIwE,KAAA;AACR,QAAA,KAAA,IAASG,CAAA,GAAI5C,IAAA,GAAQ4C,CAAA,IAAK5C,IAAA,EAAM;AAC9B,UAAA,IAAIsD,CAAA;UACJ,IAAIV,CAAA,IAAKI,IAAA,EAAM;AACbM,YAAAA,CAAA,GAAIrD,IAAA;AACN,UAAA,CAAA,MAAA,IAAW2C,CAAA,IAAKI,IAAA,GAAO9C,IAAA,EAAM;AAC3BoD,YAAAA,CAAA,GAAIpD,IAAA;UACN,CAAA,MAAO;YACLoD,CAAA,GAAIV,CAAA,GAAII,IAAA;AACV,UAAA;UACA,IAAI/E,CAAA,GAAIqF,CAAA,EAAG;AACT,YAAA;AACF,UAAA;AACA,UAAA,MAAMU,OAAA,GAAU/F,CAAA,GAAIqF,CAAA;AACpB,UAAA,MAAMC,UAAA,GAAavD,IAAA,GAAOsD,CAAA;AAC1B1B,UAAAA,MAAA,CAAOjS,IAAA,CAAKoR,kBAAA,CAAmBsB,YAAA,CAAaiB,CAAA,GAAKU,OAAA,GAAUT,UAAA,EAAa,CAAC,CAAC,CAAC,CAAA;AAC3EtF,UAAAA,CAAA,GAAI6C,KAAA,CAAMkD,OAAA,GAAUT,UAAU,CAAA;AAChC,QAAA;QAEA3B,MAAA,CAAOjS,IAAA,CAAKoR,kBAAA,CAAmBsB,YAAA,CAAapE,CAAA,EAAG,CAAC,CAAC,CAAC,CAAA;QAClD+E,IAAA,GAAOR,KAAA,CAAMC,KAAA,EAAOsB,qBAAA,EAAuBF,cAAA,KAAmBD,WAAW,CAAA;AACzEnB,QAAAA,KAAA,GAAQ,CAAA;AACR,QAAA,EAAEoB,cAAA;AACJ,MAAA;AACF,IAAA;AAEA,IAAA,EAAEpB,KAAA;AACF,IAAA,EAAEM,CAAA;AACJ,EAAA;AACA,EAAA,OAAOnB,MAAA,CAAOvP,IAAA,CAAK,EAAE,CAAA;AACvB,CAAA;AAQA,MAAM4R,SAAA,GAAY,UAASzS,KAAA,EAAuB;AAChD,EAAA,OAAO6P,SAAA,CAAU7P,KAAA,EAAOmQ,MAAA,IAAU;AAChC,IAAA,OAAOnB,aAAA,CAAcvB,IAAA,CAAK0C,MAAM,IAAIkB,MAAA,CAAOlB,MAAA,CAAO9Q,KAAA,CAAM,CAAC,EAAEgO,WAAA,EAAa,IAAI8C,MAAA;EAC9E,CAAC,CAAA;AACH,CAAA;AAQA,MAAMuC,OAAA,GAAU,UAAS1S,KAAA,EAAuB;AAC9C,EAAA,OAAO6P,SAAA,CAAU7P,KAAA,EAAOmQ,MAAA,IAAU;IAChC,OAAOlB,aAAA,CAAcxB,IAAA,CAAK0C,MAAM,CAAA,GAAI,MAAA,GAAS8B,MAAA,CAAO9B,MAAM,CAAA,GAAIA,MAAA;EAChE,CAAC,CAAA;AACH,CAAA;AAKA,MAAMwC,QAAA,GAUF;AACFC,EAAAA,OAAA,EAAS,OAAA;AACTC,EAAAA,IAAA,EAAM;AACJxB,IAAAA,MAAA,EAAQnB,UAAA;AACR+B,IAAAA,MAAA,EAAQzB;GACV;EACAa,MAAA;EACAY,MAAA;EACAS,OAAA;AACAD,EAAAA;AACF,CAAA;AAIA,IAAI,OAAOnV,MAAA,KAAW,WAAA,IAAe,OAAOA,MAAA,CAAOC,OAAA,KAAY,QAAA,IAAYD,MAAA,CAAOC,OAAA,KAAY,IAAA,EAAM;AAClGD,EAAAA,MAAA,CAAOC,OAAA,CAAQoV,QAAA,GAAWA,QAAA;AAC5B;;;ACzYA,SAASG,wBAAAA,CAAuB/Q,GAAA,EAAa;EAC3C,IAAI;IACF,OAAOgR,kBAAA,CAAmBhR,GAAG,CAAA;EAC/B,CAAA,CAAA,MAAQ;AACN,IAAA,OAAOA,GAAA;AACT,EAAA;AACF;AAEO,MAAMiR,SAAA,GAAajR,GAAA,IAAgB;AAExC,EAAA,IAAI,UAAU0L,IAAA,CAAK1L,GAAG,CAAA,EAAG,OAAOA,GAAA;EAGhC,IAAI;AACF,IAAA,MAAMkR,GAAA,GAAM,IAAIC,GAAA,CAAInR,GAAG,CAAA;AAEvB,IAAA,IAAIkR,GAAA,CAAIE,MAAA,KAAW,MAAA,EAAQ,OAAOpR,GAAA;IAElC,MAAMqR,WAAA,GAAcT,QAAA,CAASF,SAAA,CAAUQ,GAAA,CAAII,QAAQ,CAAA;AAEnD,IAAA,MAAMC,QAAA,GAAWR,wBAAA,CAAuBG,GAAA,CAAIK,QAAQ,CAAA;AAEpD,IAAA,IAAIC,MAAA,GAAS,EAAA;IACb,IAAIN,GAAA,CAAIM,MAAA,EAAQ;AACd,MAAA,MAAMC,MAAA,GAAS,IAAIC,eAAA,CAAgBR,GAAA,CAAIM,MAAM,CAAA;MAC7C,MAAMG,aAAA,GAAgB,EAAC;MACvB,KAAA,MAAW,CAAC9R,GAAA,EAAKnF,KAAK,KAAK+W,MAAA,CAAOG,OAAA,EAAQ,EAAG;AAC3CD,QAAAA,aAAA,CAAcvV,IAAA,CAAK,CAAA,EAAG2U,wBAAA,CAAuBlR,GAAG,CAAC,CAAA,CAAA,EAAIkR,wBAAA,CAAuBrW,KAAK,CAAC,CAAA,CAAE,CAAA;AACtF,MAAA;MACA8W,MAAA,GAASG,aAAA,CAAcvU,MAAA,GAAS,GAAA,GAAMuU,aAAA,CAAc7S,IAAA,CAAK,GAAG,CAAA,GAAI,EAAA;AAClE,IAAA;AAEA,IAAA,MAAM+S,IAAA,GAAOX,GAAA,CAAIW,IAAA,GAAO,GAAA,GAAMd,wBAAA,CAAuBG,GAAA,CAAIW,IAAA,CAAKvU,KAAA,CAAM,CAAC,CAAC,CAAA,GAAI,EAAA;AAE1E,IAAA,IAAIP,MAAA,GAASmU,GAAA,CAAIY,QAAA,GAAW,IAAA;AAC5B,IAAA,IAAIZ,GAAA,CAAIa,QAAA,IAAYb,GAAA,CAAIc,QAAA,EAAU;MAChCjV,MAAA,IAAUmU,GAAA,CAAIa,QAAA;MACd,IAAIb,GAAA,CAAIc,QAAA,EAAUjV,MAAA,IAAU,GAAA,GAAMmU,GAAA,CAAIc,QAAA;AACtCjV,MAAAA,MAAA,IAAU,GAAA;AACZ,IAAA;AACAA,IAAAA,MAAA,IAAUsU,WAAA;IACV,IAAIH,GAAA,CAAIe,IAAA,EAAMlV,MAAA,IAAU,GAAA,GAAMmU,GAAA,CAAIe,IAAA;AAClClV,IAAAA,MAAA,IAAUwU,QAAA,GAAWC,MAAA,GAASK,IAAA;IAE9B,IAAI,SAAA,CAAUnG,IAAA,CAAK1L,GAAG,CAAA,IAAK,CAAC,KAAA,CAAM0L,IAAA,CAAK1L,GAAG,CAAA,EAAG;AAC3CjD,MAAAA,MAAA,GAASA,MAAA,CAAOE,OAAA,CAAQ,OAAO,EAAE,CAAA;AACnC,IAAA;AACA,IAAA,OAAOF,MAAA;EACT,CAAA,CAAA,MAAQ;AAGN,IAAA,IAAIiD,GAAA,CAAIkS,UAAA,CAAW,GAAG,CAAA,EAAG;MACvB,OAAO,GAAA,GAAMnB,wBAAA,CAAuB/Q,GAAA,CAAI1C,KAAA,CAAM,CAAC,CAAC,CAAA;AAClD,IAAA;IAEA,MAAM,CAAC6U,IAAA,EAAMX,MAAA,GAAS,EAAE,CAAA,GAAIxR,GAAA,CAAIlD,KAAA,CAAM,GAAG,CAAA;IACzC,MAAM,CAACyU,QAAA,EAAUM,IAAA,GAAO,EAAE,CAAA,GAAIL,MAAA,CAAO1U,KAAA,CAAM,GAAG,CAAA;AAC9C,IAAA,IAAIsV,OAAA,GAAUrB,wBAAA,CAAuBoB,IAAI,CAAA;AACzC,IAAA,IAAIZ,QAAA,EAAU;AACZa,MAAAA,OAAA,IAAW,GAAA,GAAMrB,wBAAA,CAAuBQ,QAAQ,CAAA;AAClD,IAAA;AACA,IAAA,IAAIM,IAAA,EAAM;AACRO,MAAAA,OAAA,IAAW,GAAA,GAAMrB,wBAAA,CAAuBc,IAAI,CAAA;AAC9C,IAAA;AACA,IAAA,OAAOO,OAAA;AACT,EAAA;AACF,CAAA;AAKA,IAAI,OAAO7W,MAAA,KAAW,WAAA,IAAe,OAAOA,MAAA,CAAOC,OAAA,KAAY,QAAA,IAAYD,MAAA,CAAOC,OAAA,KAAY,IAAA,EAAM;EAClGD,MAAA,CAAOC,OAAA,GAAUyV,SAAA;AAEjB1V,EAAAA,MAAA,CAAOC,OAAA,CAAQC,OAAA,GAAUwV,SAAA;AAC3B;;;AC7DA,SAASoB,SAAAA,CAAaC,KAAA,EAAUC,IAAA,kBAAO,IAAIC,OAAA,EAAQ,EAAM;AACvD,EAAA,IAAIF,KAAA,KAAU,IAAA,IAAQ,OAAOA,KAAA,KAAU,QAAA,EAAU;AAC/C,IAAA,OAAOA,KAAA;AACT,EAAA;EAGA,IAAIA,KAAA,YAAiBG,IAAA,EAAM;AACzB,IAAA,OAAO,IAAIA,IAAA,CAAKH,KAAA,CAAMI,OAAA,EAAS,CAAA;AACjC,EAAA;EACA,IAAIJ,KAAA,YAAiBK,MAAA,EAAQ;IAC3B,OAAO,IAAIA,MAAA,CAAOL,KAAA,CAAMM,MAAA,EAAQN,KAAA,CAAMO,KAAK,CAAA;AAC7C,EAAA;EACA,IAAIP,KAAA,YAAiB/X,GAAA,EAAK;IACxB,MAAMwC,MAAA,kBAAA,IAAaxC,GAAA,EAAI;AACvBgY,IAAAA,IAAA,CAAK/X,GAAA,CAAI8X,KAAA,EAAiBvV,MAAM,CAAA;AAChC,IAAA,KAAA,MAAW,CAACsS,CAAA,EAAGyD,CAAC,CAAA,IAAKR,KAAA,EAA2C;AAC9DvV,MAAAA,MAAA,CAAOvC,GAAA,CAAI6X,SAAA,CAAUhD,CAAA,EAAGkD,IAAI,CAAA,EAAGF,SAAA,CAAUS,CAAA,EAAGP,IAAI,CAAC,CAAA;AACnD,IAAA;AACA,IAAA,OAAOxV,MAAA;AACT,EAAA;EACA,IAAIuV,KAAA,YAAiBS,GAAA,EAAK;IACxB,MAAMhW,MAAA,kBAAA,IAAagW,GAAA,EAAI;AACvBR,IAAAA,IAAA,CAAK/X,GAAA,CAAI8X,KAAA,EAAiBvV,MAAM,CAAA;IAChC,KAAA,MAAW+V,CAAA,IAAKR,KAAA,EAAkC;MAChDvV,MAAA,CAAOiW,GAAA,CAAIX,SAAA,CAAUS,CAAA,EAAGP,IAAI,CAAC,CAAA;AAC/B,IAAA;AACA,IAAA,OAAOxV,MAAA;AACT,EAAA;EACA,IAAI,OAAOuV,KAAA,KAAU,UAAA,EAAY;AAE/B,IAAA,OAAOA,KAAA;AACT,EAAA;AAGA,EAAA,IAAIC,IAAA,CAAK5X,GAAA,CAAI2X,KAAe,CAAA,EAAG;AAC7B,IAAA,OAAOC,IAAA,CAAK3X,GAAA,CAAI0X,KAAe,CAAA;AACjC,EAAA;AAEA,EAAA,IAAIW,KAAA,CAAMC,OAAA,CAAQZ,KAAK,CAAA,EAAG;IACxB,MAAMa,GAAA,GAAiB,EAAC;AACxBZ,IAAAA,IAAA,CAAK/X,GAAA,CAAI8X,KAAA,EAA4Ba,GAAG,CAAA;IACxC,KAAA,MAAWC,IAAA,IAAQd,KAAA,EAA+B;MAChDa,GAAA,CAAI/W,IAAA,CAAKiW,SAAA,CAAUe,IAAA,EAAMb,IAAI,CAAC,CAAA;AAChC,IAAA;AACA,IAAA,OAAOY,GAAA;AACT,EAAA;EAEA,MAAME,MAAA,GAAuC,EAAC;AAC9Cd,EAAAA,IAAA,CAAK/X,GAAA,CAAI8X,KAAA,EAAiBe,MAAM,CAAA;EAEhC,KAAA,MAAWxT,GAAA,IAAOyS,KAAA,EAAO;IACvB,IAAIlX,MAAA,CAAOmQ,SAAA,CAAUC,cAAA,CAAeC,IAAA,CAAK6G,KAAA,EAAOzS,GAAG,CAAA,EAAG;MACpDwT,MAAA,CAAOxT,GAAG,CAAA,GAAIwS,SAAA,CAAWC,KAAA,CAAkCzS,GAAG,CAAA,EAAG0S,IAAI,CAAA;AACvE,IAAA;AACF,EAAA;AAEA,EAAA,MAAMe,OAAA,GAAUlY,MAAA,CAAOmY,qBAAA,CAAsBjB,KAAe,CAAA;EAC5D,KAAA,MAAWkB,GAAA,IAAOF,OAAA,EAAS;IACzBD,MAAA,CAAOG,GAAG,CAAA,GAAInB,SAAA,CAAWC,KAAA,CAAkCkB,GAAG,CAAA,EAAGjB,IAAI,CAAA;AACvE,EAAA;AACA,EAAA,OAAOc,MAAA;AACT;AAQA,SAASI,UAAAA,CAASL,IAAA,EAAgD;AAChE,EAAA,OAAO,CAAC,CAACA,IAAA,IAAQ,OAAOA,IAAA,KAAS,QAAA,IAAY,CAACH,KAAA,CAAMC,OAAA,CAAQE,IAAI,CAAA;AAClE;AAeA,SAASM,SAAAA,CAAaC,MAAA,EAAoBf,MAAA,EAAoBL,IAAA,kBAAO,IAAIC,OAAA,EAAQ,EAAM;AAErF,EAAA,IAAII,MAAA,KAAW,IAAA,IAAQ,OAAOA,MAAA,KAAW,QAAA,EAAU;IACjD,OAAOP,SAAA,CAAUO,MAAM,CAAA;AACzB,EAAA;AAEA,EAAA,IAAIe,MAAA,KAAW,IAAA,IAAQ,OAAOA,MAAA,KAAW,QAAA,EAAU;IACjD,OAAOtB,SAAA,CAAUO,MAAM,CAAA;AACzB,EAAA;AAGA,EAAA,IAAIL,IAAA,CAAK5X,GAAA,CAAIgZ,MAAgB,CAAA,EAAG;AAC9B,IAAA,OAAOpB,IAAA,CAAK3X,GAAA,CAAI+Y,MAAgB,CAAA;AAClC,EAAA;EAGA,IAAIV,KAAA,CAAMC,OAAA,CAAQS,MAAM,CAAA,IAAKV,KAAA,CAAMC,OAAA,CAAQN,MAAM,CAAA,EAAG;AAClD,IAAA,MAAMgB,SAAA,GAAY/I,IAAA,CAAKgJ,GAAA,CAAIF,MAAA,CAAOvW,MAAA,EAAQwV,MAAA,CAAOxV,MAAM,CAAA;IACvD,MAAM0W,SAAA,GAAuB,EAAC;AAC9BvB,IAAAA,IAAA,CAAK/X,GAAA,CAAImZ,MAAA,EAAkBG,SAAS,CAAA;IACpC,KAAA,IAASrW,CAAA,GAAI,CAAA,EAAGA,CAAA,GAAImW,SAAA,EAAWnW,CAAA,EAAA,EAAK;AAClC,MAAA,MAAMsW,IAAA,GAAQJ,MAAA,CAAqBlW,CAAC,CAAA;AACpC,MAAA,MAAMuW,IAAA,GAAQpB,MAAA,CAAqBnV,CAAC,CAAA;AACpC,MAAA,IAAIA,CAAA,IAAKkW,MAAA,IAAUlW,CAAA,IAAKmV,MAAA,EAAQ;QAC9B,IAAIK,KAAA,CAAMC,OAAA,CAAQa,IAAI,CAAA,IAAKd,KAAA,CAAMC,OAAA,CAAQc,IAAI,CAAA,EAAG;AAE9C,UAAA,MAAMC,KAAA,GAAQ,CAAC,GAAIF,IAAkB,CAAA;UACrC,KAAA,MAAWjB,CAAA,IAAKkB,IAAA,EAAmB;YACjC,IAAI,CAACC,KAAA,CAAMC,IAAA,CAAKC,CAAA,IAAKA,CAAA,KAAMrB,CAAC,CAAA,EAAG;cAC7BmB,KAAA,CAAM7X,IAAA,CAAK0W,CAAC,CAAA;AACd,YAAA;AACF,UAAA;UACAgB,SAAA,CAAUrW,CAAC,CAAA,GAAIwW,KAAA;AACjB,QAAA,CAAA,MAAA,IAAWhB,KAAA,CAAMC,OAAA,CAAQc,IAAI,CAAA,EAAG;AAC9BF,UAAAA,SAAA,CAAUrW,CAAC,CAAA,GAAI4U,SAAA,CAAU2B,IAAA,EAAMzB,IAAI,CAAA;AACrC,QAAA,CAAA,MAAA,IAAWU,KAAA,CAAMC,OAAA,CAAQa,IAAI,CAAA,EAAG;AAC9BD,UAAAA,SAAA,CAAUrW,CAAC,CAAA,GAAI4U,SAAA,CAAU0B,IAAA,EAAMxB,IAAI,CAAA;AACrC,QAAA,CAAA,MAAA,IAAWkB,UAAA,CAASM,IAAI,KAAKN,UAAA,CAASO,IAAI,CAAA,EAAG;UAC3CF,SAAA,CAAUrW,CAAC,CAAA,GAAIiW,SAAA,CAAUK,IAAA,EAAMC,IAAA,EAAMzB,IAAI,CAAA;AAC3C,QAAA,CAAA,MAAA,IAAWwB,IAAA,YAAgBtB,IAAA,IAAQuB,IAAA,YAAgBvB,IAAA,EAAM;AACvDqB,UAAAA,SAAA,CAAUrW,CAAC,CAAA,GAAI,IAAIgV,IAAA,CAAK5H,IAAA,CAAKgJ,GAAA,CAAIE,IAAA,CAAKrB,OAAA,EAAQ,EAAGsB,IAAA,CAAKtB,OAAA,EAAS,CAAC,CAAA;AAClE,QAAA,CAAA,MAAA,IAAWqB,IAAA,YAAgBpB,MAAA,IAAUqB,IAAA,YAAgBrB,MAAA,EAAQ;AAE3DmB,UAAAA,SAAA,CAAUrW,CAAC,CAAA,GAAI,IAAIkV,MAAA,CAAOqB,IAAA,CAAKpB,MAAA,EAAQoB,IAAA,CAAKnB,KAAK,CAAA;AACnD,QAAA,CAAA,MAAA,IAAWkB,IAAA,YAAgBxZ,GAAA,IAAOyZ,IAAA,YAAgBzZ,GAAA,EAAK;AAErD,UAAA,MAAM6Z,MAAA,GAAS,IAAI7Z,GAAA,CAAIwZ,IAAI,CAAA;AAC3B,UAAA,KAAA,MAAW,CAAC1E,CAAA,EAAGyD,CAAC,CAAA,IAAKkB,IAAA,EAAM;AACzB,YAAA,IAAII,MAAA,CAAOzZ,GAAA,CAAI0U,CAAC,CAAA,EAAG;AACjB+E,cAAAA,MAAA,CAAO5Z,GAAA,CAAI6U,CAAA,EAAGqE,SAAA,CAAUU,MAAA,CAAOxZ,GAAA,CAAIyU,CAAC,CAAA,EAAGyD,CAAA,EAAGP,IAAI,CAAC,CAAA;YACjD,CAAA,MAAO;AACL6B,cAAAA,MAAA,CAAO5Z,GAAA,CAAI6X,SAAA,CAAUhD,CAAA,EAAGkD,IAAI,CAAA,EAAGF,SAAA,CAAUS,CAAA,EAAGP,IAAI,CAAC,CAAA;AACnD,YAAA;AACF,UAAA;UACAuB,SAAA,CAAUrW,CAAC,CAAA,GAAI2W,MAAA;AACjB,QAAA,CAAA,MAAA,IAAWL,IAAA,YAAgBhB,GAAA,IAAOiB,IAAA,YAAgBjB,GAAA,EAAK;AAErD,UAAA,MAAMqB,MAAA,GAAS,IAAIrB,GAAA,CAAIgB,IAAI,CAAA;UAC3B,KAAA,MAAWjB,CAAA,IAAKkB,IAAA,EAAM;YACpBI,MAAA,CAAOpB,GAAA,CAAIX,SAAA,CAAUS,CAAA,EAAGP,IAAI,CAAC,CAAA;AAC/B,UAAA;UACAuB,SAAA,CAAUrW,CAAC,CAAA,GAAI2W,MAAA;AACjB,QAAA,CAAA,MAAA,IAAW,OAAOL,IAAA,KAAS,cAAc,OAAOC,IAAA,KAAS,UAAA,EAAY;UAEnEF,SAAA,CAAUrW,CAAC,CAAA,GAAIuW,IAAA;QACjB,CAAA,MAAA,IAAW,OAAOA,IAAA,KAAS,WAAA,EAAa;AACtCF,UAAAA,SAAA,CAAUrW,CAAC,CAAA,GAAI4U,SAAA,CAAU2B,IAAA,EAAMzB,IAAI,CAAA;QACrC,CAAA,MAAO;AACLuB,UAAAA,SAAA,CAAUrW,CAAC,CAAA,GAAI4U,SAAA,CAAU0B,IAAA,EAAMxB,IAAI,CAAA;AACrC,QAAA;MACF,CAAA,MAAA,IAAW9U,CAAA,IAAKmV,MAAA,EAAQ;AACtBkB,QAAAA,SAAA,CAAUrW,CAAC,CAAA,GAAI4U,SAAA,CAAU2B,IAAA,EAAMzB,IAAI,CAAA;MACrC,CAAA,MAAA,IAAW9U,CAAA,IAAKkW,MAAA,EAAQ;AACtBG,QAAAA,SAAA,CAAUrW,CAAC,CAAA,GAAI4U,SAAA,CAAU0B,IAAA,EAAMxB,IAAI,CAAA;AACrC,MAAA;AACF,IAAA;AACA,IAAA,OAAOuB,SAAA;AACT,EAAA;AAGA,EAAA,IAAIL,UAAA,CAASE,MAAM,KAAKF,UAAA,CAASb,MAAM,CAAA,EAAG;AACxC,IAAA,MAAMyB,SAAA,GAA0C;MAAE,GAAGV;KAAO;AAC5DpB,IAAAA,IAAA,CAAK/X,GAAA,CAAImZ,MAAA,EAAkBU,SAAS,CAAA;IAEpC,KAAA,MAAWxU,GAAA,IAAO+S,MAAA,EAAQ;MACxB,IAAIxX,MAAA,CAAOmQ,SAAA,CAAUC,cAAA,CAAeC,IAAA,CAAKmH,MAAA,EAAQ/S,GAAG,CAAA,EAAG;AACrD,QAAA,MAAMkU,IAAA,GAAQJ,MAAA,CAAmC9T,GAAG,CAAA;AACpD,QAAA,MAAMmU,IAAA,GAAQpB,MAAA,CAAmC/S,GAAG,CAAA;QACpD,IAAIA,GAAA,IAAO8T,MAAA,EAAQ;AAEjB,UAAA,IAAII,IAAA,YAAgBtB,IAAA,IAAQuB,IAAA,YAAgBvB,IAAA,EAAM;AAChD4B,YAAAA,SAAA,CAAUxU,GAAG,CAAA,GAAI,IAAI4S,IAAA,CAAK5H,IAAA,CAAKgJ,GAAA,CAAIE,IAAA,CAAKrB,OAAA,EAAQ,EAAGsB,IAAA,CAAKtB,OAAA,EAAS,CAAC,CAAA;AACpE,UAAA,CAAA,MAAA,IAAWqB,IAAA,YAAgBpB,MAAA,IAAUqB,IAAA,YAAgBrB,MAAA,EAAQ;AAC3D0B,YAAAA,SAAA,CAAUxU,GAAG,CAAA,GAAI,IAAI8S,MAAA,CAAOqB,IAAA,CAAKpB,MAAA,EAAQoB,IAAA,CAAKnB,KAAK,CAAA;AACrD,UAAA,CAAA,MAAA,IAAWkB,IAAA,YAAgBxZ,GAAA,IAAOyZ,IAAA,YAAgBzZ,GAAA,EAAK;AACrD,YAAA,MAAM6Z,MAAA,GAAS,IAAI7Z,GAAA,CAAIwZ,IAAI,CAAA;AAC3B,YAAA,KAAA,MAAW,CAAC1E,CAAA,EAAGyD,CAAC,CAAA,IAAKkB,IAAA,EAAM;AACzB,cAAA,IAAII,MAAA,CAAOzZ,GAAA,CAAI0U,CAAC,CAAA,EAAG;AACjB+E,gBAAAA,MAAA,CAAO5Z,GAAA,CAAI6U,CAAA,EAAGqE,SAAA,CAAUU,MAAA,CAAOxZ,GAAA,CAAIyU,CAAC,CAAA,EAAGyD,CAAA,EAAGP,IAAI,CAAC,CAAA;cACjD,CAAA,MAAO;AACL6B,gBAAAA,MAAA,CAAO5Z,GAAA,CAAI6X,SAAA,CAAUhD,CAAA,EAAGkD,IAAI,CAAA,EAAGF,SAAA,CAAUS,CAAA,EAAGP,IAAI,CAAC,CAAA;AACnD,cAAA;AACF,YAAA;YACA8B,SAAA,CAAUxU,GAAG,CAAA,GAAIuU,MAAA;AACnB,UAAA,CAAA,MAAA,IAAWL,IAAA,YAAgBhB,GAAA,IAAOiB,IAAA,YAAgBjB,GAAA,EAAK;AACrD,YAAA,MAAMqB,MAAA,GAAS,IAAIrB,GAAA,CAAIgB,IAAI,CAAA;YAC3B,KAAA,MAAWjB,CAAA,IAAKkB,IAAA,EAAM;cACpBI,MAAA,CAAOpB,GAAA,CAAIX,SAAA,CAAUS,CAAA,EAAGP,IAAI,CAAC,CAAA;AAC/B,YAAA;YACA8B,SAAA,CAAUxU,GAAG,CAAA,GAAIuU,MAAA;AACnB,UAAA,CAAA,MAAA,IAAW,OAAOL,IAAA,KAAS,cAAc,OAAOC,IAAA,KAAS,UAAA,EAAY;YACnEK,SAAA,CAAUxU,GAAG,CAAA,GAAImU,IAAA;UACnB,CAAA,MAAO;YAELK,SAAA,CAAUxU,GAAG,CAAA,GAAI6T,SAAA,CAAUK,IAAA,EAA+BC,IAAA,EAA+BzB,IAAI,CAAA;AAC/F,UAAA;QACF,CAAA,MAAO;AACL8B,UAAAA,SAAA,CAAUxU,GAAG,CAAA,GAAIwS,SAAA,CAAU2B,IAAA,EAAMzB,IAAI,CAAA;AACvC,QAAA;AACF,MAAA;AACF,IAAA;AAEA,IAAA,MAAM+B,aAAA,GAAgBlZ,MAAA,CAAOmY,qBAAA,CAAsBX,MAAM,CAAA;IACzD,KAAA,MAAWY,GAAA,IAAOc,aAAA,EAAe;AAE/B,MAAA,MAAMP,IAAA,GAAQJ,MAAA,CAAeH,GAAG,CAAA;AAEhC,MAAA,MAAMQ,IAAA,GAAQpB,MAAA,CAAeY,GAAG,CAAA;MAChC,IAAIpY,MAAA,CAAOmQ,SAAA,CAAUC,cAAA,CAAeC,IAAA,CAAKkI,MAAA,EAAQH,GAAG,CAAA,EAAG;AAErD,QAAA,IAAIO,IAAA,YAAgBtB,IAAA,IAAQuB,IAAA,YAAgBvB,IAAA,EAAM;AAChD4B,UAAAA,SAAA,CAAUb,GAAG,CAAA,GAAI,IAAIf,IAAA,CAAK5H,IAAA,CAAKgJ,GAAA,CAAIE,IAAA,CAAKrB,OAAA,EAAQ,EAAGsB,IAAA,CAAKtB,OAAA,EAAS,CAAC,CAAA;AACpE,QAAA,CAAA,MAAA,IAAWqB,IAAA,YAAgBpB,MAAA,IAAUqB,IAAA,YAAgBrB,MAAA,EAAQ;AAC3D0B,UAAAA,SAAA,CAAUb,GAAG,CAAA,GAAI,IAAIb,MAAA,CAAOqB,IAAA,CAAKpB,MAAA,EAAQoB,IAAA,CAAKnB,KAAK,CAAA;AACrD,QAAA,CAAA,MAAA,IAAWkB,IAAA,YAAgBxZ,GAAA,IAAOyZ,IAAA,YAAgBzZ,GAAA,EAAK;AACrD,UAAA,MAAM6Z,MAAA,GAAS,IAAI7Z,GAAA,CAAIwZ,IAAI,CAAA;AAC3B,UAAA,KAAA,MAAW,CAAC1E,CAAA,EAAGyD,CAAC,CAAA,IAAKkB,IAAA,EAAM;AACzB,YAAA,IAAII,MAAA,CAAOzZ,GAAA,CAAI0U,CAAC,CAAA,EAAG;AACjB+E,cAAAA,MAAA,CAAO5Z,GAAA,CAAI6U,CAAA,EAAGqE,SAAA,CAAUU,MAAA,CAAOxZ,GAAA,CAAIyU,CAAC,CAAA,EAAGyD,CAAA,EAAGP,IAAI,CAAC,CAAA;YACjD,CAAA,MAAO;AACL6B,cAAAA,MAAA,CAAO5Z,GAAA,CAAI6X,SAAA,CAAUhD,CAAA,EAAGkD,IAAI,CAAA,EAAGF,SAAA,CAAUS,CAAA,EAAGP,IAAI,CAAC,CAAA;AACnD,YAAA;AACF,UAAA;UACA8B,SAAA,CAAUb,GAAG,CAAA,GAAIY,MAAA;AACnB,QAAA,CAAA,MAAA,IAAWL,IAAA,YAAgBhB,GAAA,IAAOiB,IAAA,YAAgBjB,GAAA,EAAK;AACrD,UAAA,MAAMqB,MAAA,GAAS,IAAIrB,GAAA,CAAIgB,IAAI,CAAA;UAC3B,KAAA,MAAWjB,CAAA,IAAKkB,IAAA,EAAM;YACpBI,MAAA,CAAOpB,GAAA,CAAIX,SAAA,CAAUS,CAAA,EAAGP,IAAI,CAAC,CAAA;AAC/B,UAAA;UACA8B,SAAA,CAAUb,GAAG,CAAA,GAAIY,MAAA;AACnB,QAAA,CAAA,MAAA,IAAW,OAAOL,IAAA,KAAS,cAAc,OAAOC,IAAA,KAAS,UAAA,EAAY;UACnEK,SAAA,CAAUb,GAAG,CAAA,GAAIQ,IAAA;QACnB,CAAA,MAAO;UACLK,SAAA,CAAUb,GAAG,CAAA,GAAIE,SAAA,CAAUK,IAAA,EAAMC,IAAA,EAAMzB,IAAI,CAAA;AAC7C,QAAA;MACF,CAAA,MAAO;AACL8B,QAAAA,SAAA,CAAUb,GAAG,CAAA,GAAInB,SAAA,CAAU2B,IAAA,EAAMzB,IAAI,CAAA;AACvC,MAAA;AACF,IAAA;AACA,IAAA,OAAO8B,SAAA;AACT,EAAA;EAGA,OAAOhC,SAAA,CAAUO,MAAM,CAAA;AACzB;AAMA,IAAI,OAAOrX,MAAA,KAAW,WAAA,IAAe,OAAOA,MAAA,CAAOC,OAAA,KAAY,QAAA,IAAYD,MAAA,CAAOC,OAAA,KAAY,IAAA,EAAM;EAClGD,MAAA,CAAOC,OAAA,GAAUkY,SAAA;AAEjBnY,EAAAA,MAAA,CAAOC,OAAA,CAAQC,OAAA,GAAUiY,SAAA;AAC3B;;;AClRA,SAAS3C,sBAAAA,CAAuB/Q,GAAA,EAAa;EAC3C,IAAI;IACF,OAAOuU,SAAA,CAAUvU,GAAG,CAAA;EACtB,CAAA,CAAA,MAAQ;AACN,IAAA,OAAOA,GAAA;AACT,EAAA;AACF;AAEO,MAAMwU,SAAA,GAAaxU,GAAA,IAAgB;AAExC,EAAA,IAAI,UAAU0L,IAAA,CAAK1L,GAAG,CAAA,EAAG,OAAOA,GAAA;EAGhC,IAAI;AACF,IAAA,MAAMkR,GAAA,GAAM,IAAIC,GAAA,CAAInR,GAAG,CAAA;AAEvB,IAAA,IAAIkR,GAAA,CAAIE,MAAA,KAAW,MAAA,EAAQ,OAAOpR,GAAA;IAElC,MAAMqR,WAAA,GAAcT,QAAA,CAASF,SAAA,CAAUQ,GAAA,CAAII,QAAQ,CAAA;IAEnD,MAAMC,QAAA,GAAWkD,SAAA,CAAU1D,sBAAA,CAAuBG,GAAA,CAAIK,QAAQ,CAAC,CAAA;IAE/D,MAAMC,MAAA,GAAS,IAAIE,eAAA,CAAgBR,GAAA,CAAIM,MAAM,CAAA,CAAExG,QAAA,EAAS,GAAI,GAAA,GAAM,IAAI0G,eAAA,CAAgBR,GAAA,CAAIM,MAAM,CAAA,CAAExG,QAAA,EAAS,GAAI,EAAA;IAE/G,MAAM6G,IAAA,GAAOX,GAAA,CAAIW,IAAA,GAAO,GAAA,GAAM4C,SAAA,CAAU1D,sBAAA,CAAuBG,GAAA,CAAIW,IAAA,CAAKvU,KAAA,CAAM,CAAC,CAAC,CAAC,CAAA,GAAI,EAAA;AAErF,IAAA,IAAIP,MAAA,GAASmU,GAAA,CAAIY,QAAA,GAAW,IAAA;AAC5B,IAAA,IAAIZ,GAAA,CAAIa,QAAA,IAAYb,GAAA,CAAIc,QAAA,EAAU;MAChCjV,MAAA,IAAUmU,GAAA,CAAIa,QAAA;MACd,IAAIb,GAAA,CAAIc,QAAA,EAAUjV,MAAA,IAAU,GAAA,GAAMmU,GAAA,CAAIc,QAAA;AACtCjV,MAAAA,MAAA,IAAU,GAAA;AACZ,IAAA;AACAA,IAAAA,MAAA,IAAUsU,WAAA;IACV,IAAIH,GAAA,CAAIe,IAAA,EAAMlV,MAAA,IAAU,GAAA,GAAMmU,GAAA,CAAIe,IAAA;AAClClV,IAAAA,MAAA,IAAUwU,QAAA,GAAWC,MAAA,GAASK,IAAA;IAE9B,IAAI,SAAA,CAAUnG,IAAA,CAAK1L,GAAG,CAAA,IAAK,CAAC,KAAA,CAAM0L,IAAA,CAAK1L,GAAG,CAAA,EAAG;AAC3CjD,MAAAA,MAAA,GAASA,MAAA,CAAOE,OAAA,CAAQ,OAAO,EAAE,CAAA;AACnC,IAAA;AACA,IAAA,OAAOF,MAAA;EACT,CAAA,CAAA,MAAQ;AAGN,IAAA,IAAIiD,GAAA,CAAIkS,UAAA,CAAW,GAAG,CAAA,EAAG;MACvB,OAAO,GAAA,GAAMuC,SAAA,CAAU1D,sBAAA,CAAuB/Q,GAAA,CAAI1C,KAAA,CAAM,CAAC,CAAC,CAAC,CAAA;AAC7D,IAAA;IAEA,MAAM,CAAC6U,IAAA,EAAMX,MAAA,GAAS,EAAE,CAAA,GAAIxR,GAAA,CAAIlD,KAAA,CAAM,GAAG,CAAA;IACzC,MAAM,CAACyU,QAAA,EAAUM,IAAA,GAAO,EAAE,CAAA,GAAIL,MAAA,CAAO1U,KAAA,CAAM,GAAG,CAAA;AAC9C,IAAA,IAAIoR,OAAA,GAAUuG,SAAA,CAAU1D,sBAAA,CAAuBoB,IAAI,CAAC,CAAA;AACpD,IAAA,IAAIZ,QAAA,EAAU;AACZrD,MAAAA,OAAA,IAAW,GAAA,GAAMuG,SAAA,CAAU1D,sBAAA,CAAuBQ,QAAQ,CAAC,CAAA;AAC7D,IAAA;AACA,IAAA,IAAIM,IAAA,EAAM;AACR3D,MAAAA,OAAA,IAAW,GAAA,GAAMuG,SAAA,CAAU1D,sBAAA,CAAuBc,IAAI,CAAC,CAAA;AACzD,IAAA;AACA,IAAA,OAAO3D,OAAA;AACT,EAAA;AACF,CAAA;AAGA,IAAOwG,kBAAA,GAAQF,SAAA;AAEf,IAAI,OAAOjZ,MAAA,KAAW,WAAA,IAAe,OAAOA,MAAA,CAAOC,OAAA,KAAY,QAAA,IAAYD,MAAA,CAAOC,OAAA,KAAY,IAAA,EAAM;EAClGD,MAAA,CAAOC,OAAA,GAAUgZ,SAAA;AAEjBjZ,EAAAA,MAAA,CAAOC,OAAA,CAAQC,OAAA,GAAU+Y,SAAA;AAC3B;;;ACrEA,MAAMG,0BAAA,GAA6B,CACjC;EAAC,MAAA,EAAQ,GAAA;EAAK,SAAA,EAAW;AAAA,CAA8M,EACvO;EAAC,MAAA,EAAQ,IAAA;EAAM,SAAA,EAAW;AAAA,CAAQ,EAClC;EAAC,MAAA,EAAQ,IAAA;EAAM,SAAA,EAAW;AAAA,CAAoB,EAC9C;EAAC,MAAA,EAAQ,IAAA;EAAM,SAAA,EAAW;AAAA,CAAQ,EAClC;EAAC,MAAA,EAAQ,IAAA;EAAM,SAAA,EAAW;AAAA,CAAQ,EAClC;EAAC,MAAA,EAAQ,IAAA;EAAM,SAAA,EAAW;AAAA,CAAc,EACxC;EAAC,MAAA,EAAQ,IAAA;EAAM,SAAA,EAAW;AAAA,CAAQ,EAClC;EAAC,MAAA,EAAQ,GAAA;EAAK,SAAA,EAAW;AAAA,CAAwD,EACjF;EAAC,MAAA,EAAQ,GAAA;EAAK,SAAA,EAAW;AAAA,CAA0E,EACnG;EAAC,MAAA,EAAQ,GAAA;EAAK,SAAA,EAAW;AAAA,CAAsF,EAC/G;EAAC,MAAA,EAAQ,IAAA;EAAM,SAAA,EAAW;AAAA,CAAc,EACxC;EAAC,MAAA,EAAQ,IAAA;EAAM,SAAA,EAAW;AAAA,CAAc,EACxC;EAAC,MAAA,EAAQ,GAAA;EAAK,SAAA,EAAW;AAAA,CAAsL,EAC/M;EAAC,MAAA,EAAQ,GAAA;EAAK,SAAA,EAAW;AAAA,CAAsC,EAC/D;EAAC,MAAA,EAAQ,GAAA;EAAK,SAAA,EAAW;AAAA,CAA4F,EACrH;EAAC,MAAA,EAAQ,GAAA;EAAK,SAAA,EAAW;AAAA,CAAsF,EAC/G;EAAC,MAAA,EAAQ,GAAA;EAAK,SAAA,EAAW;AAAA,CAA0H,EACnJ;EAAC,MAAA,EAAQ,GAAA;EAAK,SAAA,EAAW;AAAA,CAAgC,EACzD;EAAC,MAAA,EAAQ,GAAA;EAAK,SAAA,EAAW;AAAA,CAAsF,EAC/G;EAAC,MAAA,EAAQ,GAAA;EAAK,SAAA,EAAW;AAAA,CAA8G,EACvI;EAAC,MAAA,EAAQ,IAAA;EAAM,SAAA,EAAW;AAAA,CAAQ,EAClC;EAAC,MAAA,EAAQ,IAAA;EAAM,SAAA,EAAW;AAAA,CAAQ,EAClC;EAAC,MAAA,EAAQ,GAAA;EAAK,SAAA,EAAW;AAAA,CAAkD,EAC3E;EAAC,MAAA,EAAQ,GAAA;EAAK,SAAA,EAAW;AAAA,CAAkG,EAC3H;EAAC,MAAA,EAAQ,IAAA;EAAM,SAAA,EAAW;AAAA,CAAQ,EAClC;EAAC,MAAA,EAAQ,IAAA;EAAM,SAAA,EAAW;AAAA,CAAQ,EAClC;EAAC,MAAA,EAAQ,GAAA;EAAK,SAAA,EAAW;AAAA,CAAoQ,EAC7R;EAAC,MAAA,EAAQ,IAAA;EAAM,SAAA,EAAW;AAAA,CAAQ,EAClC;EAAC,MAAA,EAAQ,IAAA;EAAM,SAAA,EAAW;AAAA,CAAQ,EAClC;EAAC,MAAA,EAAQ,IAAA;EAAM,SAAA,EAAW;AAAA,CAAQ,EAClC;EAAC,MAAA,EAAQ,IAAA;EAAM,SAAA,EAAW;AAAA,CAAc,EACxC;EAAC,MAAA,EAAQ,IAAA;EAAM,SAAA,EAAW;AAAA,CAAc,EACxC;EAAC,MAAA,EAAQ,GAAA;EAAK,SAAA,EAAW;AAAA,CAA8D,EACvF;EAAC,MAAA,EAAQ,GAAA;EAAK,SAAA,EAAW;AAAA,CAAsC,EAC/D;EAAC,MAAA,EAAQ,GAAA;EAAK,SAAA,EAAW;AAAA,CAAwG,EACjI;EAAC,MAAA,EAAQ,GAAA;EAAK,SAAA,EAAW;AAAA,CAAwG,EACjI;EAAC,MAAA,EAAQ,GAAA;EAAK,SAAA,EAAW;AAAA,CAA4F,EACrH;EAAC,MAAA,EAAQ,IAAA;EAAM,SAAA,EAAW;AAAA,CAAQ,EAClC;EAAC,MAAA,EAAQ,GAAA;EAAK,SAAA,EAAW;AAAA,CAA8M,EACvO;EAAC,MAAA,EAAQ,GAAA;EAAK,SAAA,EAAW;AAAA,CAAkD,EAC3E;EAAC,MAAA,EAAQ,IAAA;EAAM,SAAA,EAAW;AAAA,CAAQ,EAClC;EAAC,MAAA,EAAQ,GAAA;EAAK,SAAA,EAAW;AAAA,CAA8D,EACvF;EAAC,MAAA,EAAQ,GAAA;EAAK,SAAA,EAAW;AAAA,CAAgC,EACzD;EAAC,MAAA,EAAQ,GAAA;EAAK,SAAA,EAAW;AAAA,CAA4F,EACrH;EAAC,MAAA,EAAQ,GAAA;EAAK,SAAA,EAAW;AAAA,CAAsF,EAC/G;EAAC,MAAA,EAAQ,GAAA;EAAK,SAAA,EAAW;AAAA,CAAoN,EAC7O;EAAC,MAAA,EAAQ,IAAA;EAAM,SAAA,EAAW;AAAA,CAAQ,EAClC;EAAC,MAAA,EAAQ,IAAA;EAAM,SAAA,EAAW;AAAA,CAAoB,EAC9C;EAAC,MAAA,EAAQ,IAAA;EAAM,SAAA,EAAW;AAAA,CAAQ,EAClC;EAAC,MAAA,EAAQ,IAAA;EAAM,SAAA,EAAW;AAAA,CAAQ,EAClC;EAAC,MAAA,EAAQ,IAAA;EAAM,SAAA,EAAW;AAAA,CAAc,EACxC;EAAC,MAAA,EAAQ,IAAA;EAAM,SAAA,EAAW;AAAA,CAAQ,EAClC;EAAC,MAAA,EAAQ,GAAA;EAAK,SAAA,EAAW;AAAA,CAAwD,EACjF;EAAC,MAAA,EAAQ,GAAA;EAAK,SAAA,EAAW;AAAA,CAAgF,EACzG;EAAC,MAAA,EAAQ,GAAA;EAAK,SAAA,EAAW;AAAA,CAAsF,EAC/G;EAAC,MAAA,EAAQ,IAAA;EAAM,SAAA,EAAW;AAAA,CAAc,EACxC;EAAC,MAAA,EAAQ,GAAA;EAAK,SAAA,EAAW;AAAA,CAA4L,EACrN;EAAC,MAAA,EAAQ,GAAA;EAAK,SAAA,EAAW;AAAA,CAAsC,EAC/D;EAAC,MAAA,EAAQ,GAAA;EAAK,SAAA,EAAW;AAAA,CAA4F,EACrH;EAAC,MAAA,EAAQ,GAAA;EAAK,SAAA,EAAW;AAAA,CAA4F,EACrH;EAAC,MAAA,EAAQ,IAAA;EAAM,SAAA,EAAW;AAAA,CAAQ,EAClC;EAAC,MAAA,EAAQ,GAAA;EAAK,SAAA,EAAW;AAAA,CAA0H,EACnJ;EAAC,MAAA,EAAQ,GAAA;EAAK,SAAA,EAAW;AAAA,CAAsC,EAC/D;EAAC,MAAA,EAAQ,GAAA;EAAK,SAAA,EAAW;AAAA,CAAsF,EAC/G;EAAC,MAAA,EAAQ,GAAA;EAAK,SAAA,EAAW;AAAA,CAAoH,EAC7I;EAAC,MAAA,EAAQ,IAAA;EAAM,SAAA,EAAW;AAAA,CAAQ,EAClC;EAAC,MAAA,EAAQ,GAAA;EAAK,SAAA,EAAW;AAAA,CAAkD,EAC3E;EAAC,MAAA,EAAQ,GAAA;EAAK,SAAA,EAAW;AAAA,CAAwG,EACjI;EAAC,MAAA,EAAQ,IAAA;EAAM,SAAA,EAAW;AAAA,CAAQ,EAClC;EAAC,MAAA,EAAQ,GAAA;EAAK,SAAA,EAAW;AAAA,CAAoQ,EAC7R;EAAC,MAAA,EAAQ,IAAA;EAAM,SAAA,EAAW;AAAA,CAAQ,EAClC;EAAC,MAAA,EAAQ,IAAA;EAAM,SAAA,EAAW;AAAA,CAAQ,EAClC;EAAC,MAAA,EAAQ,IAAA;EAAM,SAAA,EAAW;AAAA,CAAQ,EAClC;EAAC,MAAA,EAAQ,GAAA;EAAK,SAAA,EAAW;AAAA,CAA8D,EACvF;EAAC,MAAA,EAAQ,GAAA;EAAK,SAAA,EAAW;AAAA,CAAsC,EAC/D;EAAC,MAAA,EAAQ,GAAA;EAAK,SAAA,EAAW;AAAA,CAAwG,EACjI;EAAC,MAAA,EAAQ,GAAA;EAAK,SAAA,EAAW;AAAA,CAA8G,EACvI;EAAC,MAAA,EAAQ,GAAA;EAAK,SAAA,EAAW;AAAA,CAAkG,EAC3H;EAAC,MAAA,EAAQ,IAAA;EAAM,SAAA,EAAW;AAAA,CAAQ,EAClC;EAAC,MAAA,EAAQ,GAAA;EAAK,SAAA,EAAW;AAAA,CAA8M,EACvO;EAAC,MAAA,EAAQ,GAAA;EAAK,SAAA,EAAW;AAAA,CAAkD,EAC3E;EAAC,MAAA,EAAQ,IAAA;EAAM,SAAA,EAAW;AAAA,CAAQ,EAClC;EAAC,MAAA,EAAQ,GAAA;EAAK,SAAA,EAAW;AAAA,CAAoE,EAC7F;EAAC,MAAA,EAAQ,GAAA;EAAK,SAAA,EAAW;AAAA,CAAgC,EACzD;EAAC,MAAA,EAAQ,GAAA;EAAK,SAAA,EAAW;AAAA,CAAkG,EAC3H;EAAC,MAAA,EAAQ,GAAA;EAAK,SAAA,EAAW;AAAA,CAAA,CAC3B;AAEA,MAAMC,aAAA,GAAgB,EAAC;AAEvB,KAAA,MAAWnX,CAAA,IAAKkX,0BAAA,EAA4B;EAC1C,MAAME,OAAA,GAAUpX,CAAA,CAAEoX,OAAA,CAAQ/X,KAAA,CAAM,EAAE,CAAA;EAElC,KAAA,MAAWgY,MAAA,IAAUD,OAAA,EAAS;AAC5BD,IAAAA,aAAA,CAAcE,MAAM,CAAA,GAAIrX,CAAA,CAAEgP,IAAA;AAC5B,EAAA;AACF;AAEA,SAASsI,eAAAA,CAAgB/U,GAAA,EAAa;EACpC,IAAI,OAAOA,GAAA,KAAQ,QAAA,EAAU,MAAM,IAAIK,SAAA,CAAU,uBAAuB,CAAA;EAIxE,OAAOL,GAAA,CAAI/C,OAAA,CAAQ,mBAAA,EAAqBoE,CAAA,IAAKuT,aAAA,CAAcvT,CAAC,CAAA,IAAKA,CAAC,CAAA;AACpE;AAIA,IAAO2T,wBAAA,GAAQD,eAAA;AAEf,IAAI,OAAOxZ,MAAA,KAAW,WAAA,IAAe,OAAOA,MAAA,CAAOC,OAAA,KAAY,QAAA,IAAYD,MAAA,CAAOC,OAAA,KAAY,IAAA,EAAM;EAClGD,MAAA,CAAOC,OAAA,GAAUuZ,eAAA;AAEjBxZ,EAAAA,MAAA,CAAOC,OAAA,CAAQC,OAAA,GAAUsZ,eAAA;AAC3B;;;ACnHA,MAAME,kBAAA,GAAqB,sDAAA;AAC3B,MAAMC,qBAAA,GAAwB,IAAIvC,MAAA,CAAOsC,kBAAA,CAAmBrC,MAAA,EAAQ,GAAG,CAAA;AACvE,MAAMuC,kBAAA,GAAqB;EACzB,GAAA,EAAK,OAAA;EACL,GAAA,EAAK,MAAA;EACL,GAAA,EAAK,MAAA;EACL,GAAA,EAAK,QAAA;EACL,GAAA,EAAM,OAAA;EACN,GAAA,EAAK,OAAA;EACL,GAAA,EAAK,QAAA;EACL,GAAA,EAAK;AACP,CAAA;AACA,MAAMC,oBAAA,GAAwBC,EAAA,IAAeF,kBAAA,CAAmBE,EAAE,CAAA;AAElE,SAASC,UAAAA,CAAWtV,GAAA,EAAa;EAC/B,IAAI,OAAOA,GAAA,KAAQ,QAAA,EAAU,MAAM,IAAIK,SAAA,CAAU,uBAAuB,CAAA;AAGxE,EAAA,IAAI4U,kBAAA,CAAmBvJ,IAAA,CAAK1L,GAAG,CAAA,EAAG;AAChC,IAAA,OAAOA,GAAA,CAAI/C,OAAA,CAAQiY,qBAAA,EAAuBE,oBAAoB,CAAA;AAChE,EAAA;AACA,EAAA,OAAOpV,GAAA;AACT;AAIA,IAAOuV,mBAAA,GAAQD,UAAA;AAEf,IAAI,OAAO/Z,MAAA,KAAW,WAAA,IAAe,OAAOA,MAAA,CAAOC,OAAA,KAAY,QAAA,IAAYD,MAAA,CAAOC,OAAA,KAAY,IAAA,EAAM;EAClGD,MAAA,CAAOC,OAAA,GAAU8Z,UAAA;AAEjB/Z,EAAAA,MAAA,CAAOC,OAAA,CAAQC,OAAA,GAAU6Z,UAAA;AAC3B;;;AChCA,SAASE,YAAAA,CAAaxV,GAAA,EAAa;EACjC,IAAI,OAAOA,GAAA,KAAQ,QAAA,EAAU,MAAM,IAAIK,SAAA,CAAU,uBAAuB,CAAA;AAGxE,EAAA,OAAOL,GAAA,CAAI/C,OAAA,CAAQ,yBAAyB,MAAM,CAAA;AACpD;AAIA,IAAOwY,qBAAA,GAAQD,YAAA;AAEf,IAAI,OAAOja,MAAA,KAAW,WAAA,IAAe,OAAOA,MAAA,CAAOC,OAAA,KAAY,QAAA,IAAYD,MAAA,CAAOC,OAAA,KAAY,IAAA,EAAM;EAClGD,MAAA,CAAOC,OAAA,GAAUga,YAAA;AAEjBja,EAAAA,MAAA,CAAOC,OAAA,CAAQC,OAAA,GAAU+Z,YAAA;AAC3B;;;ACVA,SAASE,WAAWxE,GAAA,EAAahT,OAAA,GAAmB,EAAC,EAAG;AACtDA,EAAAA,OAAA,GAAU9C,MAAA,CAAOua,MAAA,CAAO;AACtBC,IAAAA,cAAA,EAAgB,IAAA;AAChBC,IAAAA,aAAA,EAAe;AAAA,GAAA,EACd3X,OAAO,CAAA;AAEV,EAAA,MAAM4X,YAAA,GAAe,cAAA;AACrB,EAAA,IAAI5X,OAAA,CAAQ0X,cAAA,KAAmB,KAAA,EAAA1E,GAAA,GAAaA,GAAA,CAAIjU,OAAA,CAAQ6Y,YAAA,EAAc,EAAE,CAAA;EACxE,IAAI5X,OAAA,CAAQ2X,aAAA,KAAkB,KAAA,IAAS,CAACC,YAAA,CAAapK,IAAA,CAAKwF,GAAG,CAAA,EAAG;AAC9DA,IAAAA,GAAA,GAAMA,GAAA,CAAIjU,OAAA,CAAQ,WAAW,EAAE,CAAA;AACjC,EAAA;AAEA,EAAA,OAAOiU,GAAA;AACT;AAIA,IAAO6E,mBAAA,GAAQL,UAAA;AAEf,IAAI,OAAOna,MAAA,KAAW,WAAA,IAAe,OAAOA,MAAA,CAAOC,OAAA,KAAY,QAAA,IAAYD,MAAA,CAAOC,OAAA,KAAY,IAAA,EAAM;EAClGD,MAAA,CAAOC,OAAA,GAAUka,UAAA;AAEjBna,EAAAA,MAAA,CAAOC,OAAA,CAAQC,OAAA,GAAUia,UAAA;AAC3B;;;ACzBA,MAAMrb,OAAA,GAAQ,IAAID,aAAA,EAAc;AAEzB,SAAS4b,gBAAAA,CAAiB7D,IAAA,GAAO,GAAA,EAAK;EAE3C,MAAM;AAAE8D,IAAAA,MAAA,GAAS;GAAG,GAAI,QAAQ,EAAC;AACjC,EAAA,MAAMC,iBAAA,GAAoB9a,MAAA,CAAOua,MAAA,CAAO;AACtCC,IAAAA,cAAA,EAAgB,IAAA;AAChBC,IAAAA,aAAA,EAAe;GACjB,EAAGI,MAAA,CAAOE,WAAW,CAAA;AAGrB,EAAA,OAAO9b,OAAA,CAAMU,KAAA,CAAM,CAAA,EAAGkb,MAAA,CAAO/E,GAAG,CAAA,CAAA,EAAIgF,iBAAA,CAAkBN,cAAc,IAAIM,iBAAA,CAAkBL,aAAa,CAAA,CAAA,EAAI1D,IAAI,IAAI,MAAM;AACvH,IAAA,IAAI,oBAAoBzG,IAAA,CAAKyG,IAAI,CAAA,EAAG,OAAOA,IAAA;AAG3C,IAAA,IAAIiE,QAAA,GAAW,EAAA;IACf,IAAI;MACFA,QAAA,GAAW,IAAIjF,GAAA,CAAI8E,MAAA,CAAO/E,GAAG,EAAEI,QAAA;IACjC,CAAA,CAAA,MAAQ;MACN8E,QAAA,GAAWH,MAAA,CAAO/E,GAAA;AACpB,IAAA;IACA,MAAMmF,IAAA,GAAO,IAAIlF,GAAA,CAAIgB,IAAA,EAAM,CAAA,OAAA,EAAUiE,QAAQ,CAAA,CAAE,CAAA;AAG/C,IAAA,IAAIC,IAAA,CAAK/E,QAAA,KAAa8E,QAAA,IAAYC,IAAA,CAAKjF,MAAA,KAAW,MAAA,EAAQ,OAAOe,IAAA;AAEjEA,IAAAA,IAAA,GAAOqC,kBAAA,CAAUyB,MAAA,CAAO/E,GAAA,GAAM,CAAA,CAAA,EAAIiB,IAAI,CAAA,CAAA,CAAGlV,OAAA,CAAQ,SAAA,EAAW,GAAG,CAAC,CAAA;AAChEkV,IAAAA,IAAA,GAAOuD,mBAAA,CAAWvD,IAAA,EAAM+D,iBAAiB,CAAA;AAEzC,IAAA,OAAO/D,IAAA;EACT,CAAC,CAAA;AACH;AAMA,IAAI,OAAO5W,MAAA,KAAW,WAAA,IAAe,OAAOA,MAAA,CAAOC,OAAA,KAAY,QAAA,IAAYD,MAAA,CAAOC,OAAA,KAAY,IAAA,EAAM;EAClGD,MAAA,CAAOC,OAAA,GAAUwa,gBAAA;AAEjBza,EAAAA,MAAA,CAAOC,OAAA,CAAQC,OAAA,GAAUua,gBAAA;AAC3B;;;ACzCA,MAAM3b,OAAA,GAAQ,IAAID,aAAA,EAAM;AAExB,SAASkc,GAAAA,CAAItW,GAAA,EAAiB;EAC5B,OAAOuW,UAAA,CAAW,KAAK,CAAA,CAAEC,MAAA,CAAOxW,GAAG,CAAA,CAAEyW,MAAA,CAAO,KAAK,CAAA;AACnD;AAEO,SAASC,cAAAA,CAAeC,KAAA,EAAezY,OAAA,EAAwC;EACpF,IAAI,OAAOA,OAAA,KAAY,QAAA,EAAU;AAC/BA,IAAAA,OAAA,GAAU;AAAC6N,MAAAA,CAAA,EAAG7N;KAAO;AACvB,EAAA;AAEA,EAAA,MAAM2T,IAAA,GAAOxX,OAAA,CAAMM,GAAA,CAAIgc,KAAK,CAAA,GAAItc,OAAA,CAAMO,GAAA,CAAI+b,KAAK,CAAA,GAAIL,GAAA,CAAIK,KAAA,CAAMrL,WAAA,EAAa,CAAA;EAC1E,IAAItL,GAAA,GAAM,CAAA,gCAAA,EAAmC6R,IAAI,CAAA,CAAA;AAEjD,EAAA,MAAM+E,EAAA,GAAKC,WAAA,CAAU3Y,OAAO,CAAA;AAE5B,EAAA,IAAI0Y,EAAA,EAAI5W,GAAA,IAAO,IAAI4W,EAAE,CAAA,CAAA;AAErBvc,EAAAA,OAAA,CAAMG,GAAA,CAAI,OAAA,EAASqX,IAAI,CAAA;AAEvB,EAAA,OAAO7R,GAAA;AACT;AAMA,IAAI,OAAOzE,MAAA,KAAW,WAAA,IAAe,OAAOA,MAAA,CAAOC,OAAA,KAAY,QAAA,IAAYD,MAAA,CAAOC,OAAA,KAAY,IAAA,EAAM;EAClGD,MAAA,CAAOC,OAAA,GAAUkb,cAAA;AAEjBnb,EAAAA,MAAA,CAAOC,OAAA,CAAQC,OAAA,GAAUib,cAAA;AAC3B;;;;;;;;;;;;;;;;EChCA,SAASI,UAAUA,CAAC1W,GAAG,EAAE;IACvB,IAAIA,GAAG,YAAY7F,GAAG,EAAE;MACtB6F,GAAG,CAACnF,KAAK,GACPmF,GAAG,CAACtF,MAAM,GACVsF,GAAG,CAAC5F,GAAG,GACL,YAAY;AACV,QAAA,MAAM,IAAI4R,KAAK,CAAC,kBAAkB,CAAC;MAC7C,CAAS;AACT,IAAA,CAAG,MAAM,IAAIhM,GAAG,YAAY2S,GAAG,EAAE;MAC7B3S,GAAG,CAAC4S,GAAG,GACL5S,GAAG,CAACnF,KAAK,GACTmF,GAAG,CAACtF,MAAM,GACR,YAAY;AACV,QAAA,MAAM,IAAIsR,KAAK,CAAC,kBAAkB,CAAC;MAC7C,CAAS;AACT,IAAA;;AAEA;AACEhR,IAAAA,MAAM,CAAC2b,MAAM,CAAC3W,GAAG,CAAC;IAElBhF,MAAM,CAAC4b,mBAAmB,CAAC5W,GAAG,CAAC,CAAC6W,OAAO,CAAEC,IAAI,IAAK;AAChD,MAAA,MAAMC,IAAI,GAAG/W,GAAG,CAAC8W,IAAI,CAAC;MACtB,MAAMtJ,IAAI,GAAG,OAAOuJ,IAAI;;AAE5B;AACI,MAAA,IAAI,CAACvJ,IAAI,KAAK,QAAQ,IAAIA,IAAI,KAAK,UAAU,KAAK,CAACxS,MAAM,CAACgc,QAAQ,CAACD,IAAI,CAAC,EAAE;QACxEL,UAAU,CAACK,IAAI,CAAC;AACtB,MAAA;AACA,IAAA,CAAG,CAAC;AAEF,IAAA,OAAO/W,GAAG;AACZ,EAAA;;AAEA;AACA;AACA;;AAEA,EAAA,MAAMiX,QAAQ,CAAC;AACf;AACA;AACA;IACE/c,WAAWA,CAACgd,IAAI,EAAE;AACpB;MACI,IAAIA,IAAI,CAACjB,IAAI,KAAKkB,SAAS,EAAED,IAAI,CAACjB,IAAI,GAAG,EAAE;AAE3C,MAAA,IAAI,CAACA,IAAI,GAAGiB,IAAI,CAACjB,IAAI;MACrB,IAAI,CAACmB,cAAc,GAAG,KAAK;AAC/B,IAAA;AAEEC,IAAAA,WAAWA,GAAG;MACZ,IAAI,CAACD,cAAc,GAAG,IAAI;AAC9B,IAAA;AACA;;AAEA;AACA;AACA;AACA;EACA,SAASlC,UAAUA,CAAC5a,KAAK,EAAE;AACzB,IAAA,OAAOA,KAAA,CACJuC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAA,CACrBA,OAAO,CAAC,IAAI,EAAE,MAAM,CAAA,CACpBA,OAAO,CAAC,IAAI,EAAE,MAAM,CAAA,CACpBA,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAA,CACtBA,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;AAC5B,EAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA,SAASya,SAASA,CAACC,QAAQ,EAAE,GAAGC,OAAO,EAAE;AACzC;AACE,IAAA,MAAM7a,MAAM,GAAG3B,MAAM,CAACyc,MAAM,CAAC,IAAI,CAAC;AAElC,IAAA,KAAK,MAAMhY,GAAG,IAAI8X,QAAQ,EAAE;AAC1B5a,MAAAA,MAAM,CAAC8C,GAAG,CAAC,GAAG8X,QAAQ,CAAC9X,GAAG,CAAC;AAC/B,IAAA;AACE+X,IAAAA,OAAO,CAACX,OAAO,CAAC,UAAS7W,GAAG,EAAE;AAC5B,MAAA,KAAK,MAAMP,GAAG,IAAIO,GAAG,EAAE;AACrBrD,QAAAA,MAAM,CAAC8C,GAAG,CAAC,GAAGO,GAAG,CAACP,GAAG,CAAC;AAC5B,MAAA;AACA,IAAA,CAAG,CAAC;AACF,IAAA,uBAAyB9C,MAAM;AACjC,EAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;EAEA,MAAM+a,UAAU,GAAG,SAAS;;AAE5B;AACA;AACA;AACA;EACA,MAAMC,iBAAiB,GAAIC,IAAI,IAAK;AACpC;AACA;AACE,IAAA,OAAO,CAAC,CAACA,IAAI,CAACC,KAAK;EACrB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,EAAA,MAAMC,eAAe,GAAGA,CAAChB,IAAI,EAAE;AAAE/Y,IAAAA;GAAQ,KAAK;AAC9C;AACE,IAAA,IAAI+Y,IAAI,CAAChF,UAAU,CAAC,WAAW,CAAC,EAAE;AAChC,MAAA,OAAOgF,IAAI,CAACja,OAAO,CAAC,WAAW,EAAE,WAAW,CAAC;AACjD,IAAA;AACA;AACE,IAAA,IAAIia,IAAI,CAACxX,QAAQ,CAAC,GAAG,CAAC,EAAE;AACtB,MAAA,MAAMyY,MAAM,GAAGjB,IAAI,CAACpa,KAAK,CAAC,GAAG,CAAC;AAC9B,MAAA,OAAO,CACL,CAAA,EAAGqB,MAAM,CAAA,EAAGga,MAAM,CAACC,KAAK,EAAE,CAAA,CAAE,EAC5B,GAAID,MAAM,CAACtZ,GAAG,CAAC,CAACwZ,CAAC,EAAE5a,CAAC,KAAK,GAAG4a,CAAC,CAAA,EAAG,GAAG,CAACC,MAAM,CAAC7a,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CACrD,CAACqB,IAAI,CAAC,GAAG,CAAC;AACf,IAAA;AACA;AACE,IAAA,OAAO,CAAA,EAAGX,MAAM,CAAA,EAAG+Y,IAAI,CAAA,CAAE;EAC3B,CAAC;;AAED;AACA,EAAA,MAAMqB,YAAY,CAAC;AACnB;AACA;AACA;AACA;AACA;AACA;AACEje,IAAAA,WAAWA,CAACke,SAAS,EAAEta,OAAO,EAAE;MAC9B,IAAI,CAACua,MAAM,GAAG,EAAE;AAChB,MAAA,IAAI,CAACC,WAAW,GAAGxa,OAAO,CAACwa,WAAW;AACtCF,MAAAA,SAAS,CAACG,IAAI,CAAC,IAAI,CAAC;AACxB,IAAA;;AAEA;AACA;AACA;AACA;IACEC,OAAOA,CAACC,IAAI,EAAE;AACZ,MAAA,IAAI,CAACJ,MAAM,IAAInD,UAAU,CAACuD,IAAI,CAAC;AACnC,IAAA;;AAEA;AACA;AACA;AACA;IACEC,QAAQA,CAACd,IAAI,EAAE;AACb,MAAA,IAAI,CAACD,iBAAiB,CAACC,IAAI,CAAC,EAAE;AAE9B,MAAA,MAAMe,SAAS,GAAGb,eAAe,CAACF,IAAI,CAACC,KAAK,EAC1C;QAAE9Z,MAAM,EAAE,IAAI,CAACua;OAAa,CAAC;AAC/B,MAAA,IAAI,CAACM,IAAI,CAACD,SAAS,CAAC;AACxB,IAAA;;AAEA;AACA;AACA;AACA;IACEE,SAASA,CAACjB,IAAI,EAAE;AACd,MAAA,IAAI,CAACD,iBAAiB,CAACC,IAAI,CAAC,EAAE;MAE9B,IAAI,CAACS,MAAM,IAAIX,UAAU;AAC7B,IAAA;;AAEA;AACA;AACA;AACEpd,IAAAA,KAAKA,GAAG;MACN,OAAO,IAAI,CAAC+d,MAAM;AACtB,IAAA;;AAEA;;AAEA;AACA;AACA;AACA;IACEO,IAAIA,CAACD,SAAS,EAAE;AACd,MAAA,IAAI,CAACN,MAAM,IAAI,CAAA,aAAA,EAAgBM,SAAS,CAAA,EAAA,CAAI;AAChD,IAAA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,EAAA,MAAMG,OAAO,GAAGA,CAACC,IAAI,GAAG,EAAE,KAAK;AAC/B;AACE,IAAA,MAAMpc,MAAM,GAAG;AAAEqc,MAAAA,QAAQ,EAAE;KAAI;AAC/Bhe,IAAAA,MAAM,CAACua,MAAM,CAAC5Y,MAAM,EAAEoc,IAAI,CAAC;AAC3B,IAAA,OAAOpc,MAAM;EACf,CAAC;AAED,EAAA,MAAMsc,SAAS,CAAC;AACd/e,IAAAA,WAAWA,GAAG;AAChB;AACI,MAAA,IAAI,CAACgf,QAAQ,GAAGJ,OAAO,EAAE;AACzB,MAAA,IAAI,CAACK,KAAK,GAAG,CAAC,IAAI,CAACD,QAAQ,CAAC;AAChC,IAAA;IAEE,IAAIE,GAAGA,GAAG;MACR,OAAO,IAAI,CAACD,KAAK,CAAC,IAAI,CAACA,KAAK,CAACnc,MAAM,GAAG,CAAC,CAAC;AAC5C,IAAA;IAEE,IAAIqc,IAAIA,GAAG;MAAE,OAAO,IAAI,CAACH,QAAQ;AAAC,IAAA;;AAEpC;IACEtG,GAAGA,CAACgF,IAAI,EAAE;MACR,IAAI,CAACwB,GAAG,CAACJ,QAAQ,CAAChd,IAAI,CAAC4b,IAAI,CAAC;AAChC,IAAA;;AAEA;IACEc,QAAQA,CAACb,KAAK,EAAE;AAClB;MACI,MAAMD,IAAI,GAAGkB,OAAO,CAAC;AAAEjB,QAAAA;OAAO,CAAC;AAC/B,MAAA,IAAI,CAACjF,GAAG,CAACgF,IAAI,CAAC;AACd,MAAA,IAAI,CAACuB,KAAK,CAACnd,IAAI,CAAC4b,IAAI,CAAC;AACzB,IAAA;AAEEiB,IAAAA,SAASA,GAAG;AACV,MAAA,IAAI,IAAI,CAACM,KAAK,CAACnc,MAAM,GAAG,CAAC,EAAE;AACzB,QAAA,OAAO,IAAI,CAACmc,KAAK,CAACG,GAAG,EAAE;AAC7B,MAAA;AACA;AACI,MAAA,OAAOnC,SAAS;AACpB,IAAA;AAEEoC,IAAAA,aAAaA,GAAG;AACd,MAAA,OAAO,IAAI,CAACV,SAAS,EAAE,CAAC;AAC5B,IAAA;AAEEW,IAAAA,MAAMA,GAAG;MACP,OAAOC,IAAI,CAAChD,SAAS,CAAC,IAAI,CAACyC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AACjD,IAAA;;AAEA;AACA;AACA;AACA;IACEX,IAAIA,CAACmB,OAAO,EAAE;AAChB;MACI,OAAO,IAAI,CAACxf,WAAW,CAACyf,KAAK,CAACD,OAAO,EAAE,IAAI,CAACR,QAAQ,CAAC;AACzD;AACA;AACA,IAAA;;AAEA;AACA;AACA;AACA;AACE,IAAA,OAAOS,KAAKA,CAACD,OAAO,EAAE9B,IAAI,EAAE;AAC1B,MAAA,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;AAC5B8B,QAAAA,OAAO,CAAClB,OAAO,CAACZ,IAAI,CAAC;AAC3B,MAAA,CAAK,MAAM,IAAIA,IAAI,CAACoB,QAAQ,EAAE;AACxBU,QAAAA,OAAO,CAAChB,QAAQ,CAACd,IAAI,CAAC;AACtBA,QAAAA,IAAI,CAACoB,QAAQ,CAACnC,OAAO,CAAE+C,KAAK,IAAK,IAAI,CAACD,KAAK,CAACD,OAAO,EAAEE,KAAK,CAAC,CAAC;AAC5DF,QAAAA,OAAO,CAACb,SAAS,CAACjB,IAAI,CAAC;AAC7B,MAAA;AACI,MAAA,OAAO8B,OAAO;AAClB,IAAA;;AAEA;AACA;AACA;IACE,OAAOG,SAASA,CAACjC,IAAI,EAAE;AACrB,MAAA,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;AAC9B,MAAA,IAAI,CAACA,IAAI,CAACoB,QAAQ,EAAE;AAEpB,MAAA,IAAIpB,IAAI,CAACoB,QAAQ,CAACc,KAAK,CAACC,EAAE,IAAI,OAAOA,EAAE,KAAK,QAAQ,CAAC,EAAE;AAC3D;AACA;AACMnC,QAAAA,IAAI,CAACoB,QAAQ,GAAG,CAACpB,IAAI,CAACoB,QAAQ,CAACta,IAAI,CAAC,EAAE,CAAC,CAAC;AAC9C,MAAA,CAAK,MAAM;AACLkZ,QAAAA,IAAI,CAACoB,QAAQ,CAACnC,OAAO,CAAE+C,KAAK,IAAK;AAC/BX,UAAAA,SAAS,CAACY,SAAS,CAACD,KAAK,CAAC;AAClC,QAAA,CAAO,CAAC;AACR,MAAA;AACA,IAAA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAKA;AACA;AACA;EACA,MAAMI,gBAAgB,SAASf,SAAS,CAAC;AACzC;AACA;AACA;IACE/e,WAAWA,CAAC4D,OAAO,EAAE;AACnB,MAAA,KAAK,EAAE;MACP,IAAI,CAACA,OAAO,GAAGA,OAAO;AAC1B,IAAA;;AAEA;AACA;AACA;IACE0a,OAAOA,CAACC,IAAI,EAAE;MACZ,IAAIA,IAAI,KAAK,EAAE,EAAE;AAAE,QAAA;AAAO,MAAA;AAE1B,MAAA,IAAI,CAAC7F,GAAG,CAAC6F,IAAI,CAAC;AAClB,IAAA;;AAEA;IACEwB,UAAUA,CAACpC,KAAK,EAAE;AAChB,MAAA,IAAI,CAACa,QAAQ,CAACb,KAAK,CAAC;AACxB,IAAA;AAEEqC,IAAAA,QAAQA,GAAG;MACT,IAAI,CAACrB,SAAS,EAAE;AACpB,IAAA;;AAEA;AACA;AACA;AACA;AACEsB,IAAAA,gBAAgBA,CAACC,OAAO,EAAEtD,IAAI,EAAE;AAClC;AACI,MAAA,MAAMc,IAAI,GAAGwC,OAAO,CAACf,IAAI;MACzB,IAAIvC,IAAI,EAAEc,IAAI,CAACC,KAAK,GAAG,CAAA,SAAA,EAAYf,IAAI,CAAA,CAAE;AAEzC,MAAA,IAAI,CAAClE,GAAG,CAACgF,IAAI,CAAC;AAClB,IAAA;AAEEyC,IAAAA,MAAMA,GAAG;MACP,MAAMC,QAAQ,GAAG,IAAInC,YAAY,CAAC,IAAI,EAAE,IAAI,CAACra,OAAO,CAAC;AACrD,MAAA,OAAOwc,QAAQ,CAAChgB,KAAK,EAAE;AAC3B,IAAA;AAEEigB,IAAAA,QAAQA,GAAG;MACT,IAAI,CAAChB,aAAa,EAAE;AACpB,MAAA,OAAO,IAAI;AACf,IAAA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;EACA,SAAS/G,MAAMA,CAACgI,EAAE,EAAE;AAClB,IAAA,IAAI,CAACA,EAAE,EAAE,OAAO,IAAI;AACpB,IAAA,IAAI,OAAOA,EAAE,KAAK,QAAQ,EAAE,OAAOA,EAAE;IAErC,OAAOA,EAAE,CAAChI,MAAM;AAClB,EAAA;;AAEA;AACA;AACA;AACA;EACA,SAASiI,SAASA,CAACD,EAAE,EAAE;AACrB,IAAA,OAAOte,MAAM,CAAC,KAAK,EAAEse,EAAE,EAAE,GAAG,CAAC;AAC/B,EAAA;;AAEA;AACA;AACA;AACA;EACA,SAASE,gBAAgBA,CAACF,EAAE,EAAE;AAC5B,IAAA,OAAOte,MAAM,CAAC,KAAK,EAAEse,EAAE,EAAE,IAAI,CAAC;AAChC,EAAA;;AAEA;AACA;AACA;AACA;EACA,SAASG,QAAQA,CAACH,EAAE,EAAE;AACpB,IAAA,OAAOte,MAAM,CAAC,KAAK,EAAEse,EAAE,EAAE,IAAI,CAAC;AAChC,EAAA;;AAEA;AACA;AACA;AACA;AACA,EAAA,SAASte,MAAMA,CAAC,GAAG0e,IAAI,EAAE;AACvB,IAAA,MAAMC,MAAM,GAAGD,IAAI,CAACnc,GAAG,CAAEwZ,CAAC,IAAKzF,MAAM,CAACyF,CAAC,CAAC,CAAC,CAACvZ,IAAI,CAAC,EAAE,CAAC;AAClD,IAAA,OAAOmc,MAAM;AACf,EAAA;;AAEA;AACA;AACA;AACA;EACA,SAASC,oBAAoBA,CAACF,IAAI,EAAE;IAClC,MAAM7B,IAAI,GAAG6B,IAAI,CAACA,IAAI,CAAC5d,MAAM,GAAG,CAAC,CAAC;IAElC,IAAI,OAAO+b,IAAI,KAAK,QAAQ,IAAIA,IAAI,CAAC7e,WAAW,KAAKc,MAAM,EAAE;MAC3D4f,IAAI,CAACjd,MAAM,CAACid,IAAI,CAAC5d,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC;AAC/B,MAAA,OAAO+b,IAAI;AACf,IAAA,CAAG,MAAM;AACL,MAAA,OAAO,EAAE;AACb,IAAA;AACA,EAAA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA,SAASgC,MAAMA,CAAC,GAAGH,IAAI,EAAE;AACzB;AACE,IAAA,MAAM7B,IAAI,GAAG+B,oBAAoB,CAACF,IAAI,CAAC;AACvC,IAAA,MAAMC,MAAM,GAAG,GAAA,IACV9B,IAAI,CAACiC,OAAO,GAAG,EAAE,GAAG,IAAI,CAAA,GACzBJ,IAAI,CAACnc,GAAG,CAAEwZ,CAAC,IAAKzF,MAAM,CAACyF,CAAC,CAAC,CAAC,CAACvZ,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG;AAC9C,IAAA,OAAOmc,MAAM;AACf,EAAA;;AAEA;AACA;AACA;AACA;EACA,SAASI,gBAAgBA,CAACT,EAAE,EAAE;AAC5B,IAAA,OAAQ,IAAIjI,MAAM,CAACiI,EAAE,CAAC5P,QAAQ,EAAE,GAAG,GAAG,CAAC,CAAEpN,IAAI,CAAC,EAAE,CAAC,CAACR,MAAM,GAAG,CAAC;AAC9D,EAAA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAA,SAAS8U,UAAUA,CAAC0I,EAAE,EAAEU,MAAM,EAAE;IAC9B,MAAM3d,KAAK,GAAGid,EAAE,IAAIA,EAAE,CAAChd,IAAI,CAAC0d,MAAM,CAAC;AACnC,IAAA,OAAO3d,KAAK,IAAIA,KAAK,CAACG,KAAK,KAAK,CAAC;AACnC,EAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;EACA,MAAMyd,UAAU,GAAG,gDAAgD;;AAEnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACA,SAASC,sBAAsBA,CAACC,OAAO,EAAE;AAAEC,IAAAA;GAAU,EAAE;IACrD,IAAIC,WAAW,GAAG,CAAC;AAEnB,IAAA,OAAOF,OAAO,CAAC5c,GAAG,CAAE+c,KAAK,IAAK;AAC5BD,MAAAA,WAAW,IAAI,CAAC;MAChB,MAAM9d,MAAM,GAAG8d,WAAW;AAC1B,MAAA,IAAIf,EAAE,GAAGhI,MAAM,CAACgJ,KAAK,CAAC;MACtB,IAAI3L,GAAG,GAAG,EAAE;AAEZ,MAAA,OAAO2K,EAAE,CAACxd,MAAM,GAAG,CAAC,EAAE;AACpB,QAAA,MAAMO,KAAK,GAAG4d,UAAU,CAAC3d,IAAI,CAACgd,EAAE,CAAC;QACjC,IAAI,CAACjd,KAAK,EAAE;AACVsS,UAAAA,GAAG,IAAI2K,EAAE;AACT,UAAA;AACR,QAAA;QACM3K,GAAG,IAAI2K,EAAE,CAAC1a,SAAS,CAAC,CAAC,EAAEvC,KAAK,CAACG,KAAK,CAAC;AACnC8c,QAAAA,EAAE,GAAGA,EAAE,CAAC1a,SAAS,CAACvC,KAAK,CAACG,KAAK,GAAGH,KAAK,CAAC,CAAC,CAAC,CAACP,MAAM,CAAC;AAChD,QAAA,IAAIO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAIA,KAAK,CAAC,CAAC,CAAC,EAAE;AAC5C;AACQsS,UAAAA,GAAG,IAAI,IAAI,GAAGxC,MAAM,CAAC3B,MAAM,CAACnO,KAAK,CAAC,CAAC,CAAC,CAAC,GAAGE,MAAM,CAAC;AACvD,QAAA,CAAO,MAAM;AACLoS,UAAAA,GAAG,IAAItS,KAAK,CAAC,CAAC,CAAC;AACf,UAAA,IAAIA,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AACpBge,YAAAA,WAAW,EAAE;AACvB,UAAA;AACA,QAAA;AACA,MAAA;AACI,MAAA,OAAO1L,GAAG;AACd,IAAA,CAAG,CAAC,CAACpR,GAAG,CAAC+b,EAAE,IAAI,CAAA,CAAA,EAAIA,EAAE,CAAA,CAAA,CAAG,CAAC,CAAC9b,IAAI,CAAC4c,QAAQ,CAAC;AACxC,EAAA;;AAEA;AACA;;AAEA;EACA,MAAMG,gBAAgB,GAAG,MAAM;EAC/B,MAAMC,QAAQ,GAAG,cAAc;EAC/B,MAAMC,mBAAmB,GAAG,eAAe;EAC3C,MAAMC,SAAS,GAAG,mBAAmB;AACrC,EAAA,MAAMC,WAAW,GAAG,wEAAwE,CAAC;AAC7F,EAAA,MAAMC,gBAAgB,GAAG,cAAc,CAAC;EACxC,MAAMC,cAAc,GAAG,8IAA8I;;AAErK;AACA;AACA;AACA,EAAA,MAAMC,OAAO,GAAGA,CAACjD,IAAI,GAAG,EAAE,KAAK;IAC7B,MAAMkD,YAAY,GAAG,WAAW;IAChC,IAAIlD,IAAI,CAACmD,MAAM,EAAE;AACfnD,MAAAA,IAAI,CAACoD,KAAK,GAAGjgB,MAAM,CACjB+f,YAAY,EACZ,MAAM,EACNlD,IAAI,CAACmD,MAAM,EACX,MAAM,CAAC;AACb,IAAA;AACE,IAAA,OAAO5E,SAAS,CAAC;AACfO,MAAAA,KAAK,EAAE,MAAM;AACbsE,MAAAA,KAAK,EAAEF,YAAY;AACnBlf,MAAAA,GAAG,EAAE,GAAG;AACRqf,MAAAA,SAAS,EAAE,CAAC;AAChB;AACI,MAAA,UAAU,EAAEC,CAAClM,CAAC,EAAEmM,IAAI,KAAK;QACvB,IAAInM,CAAC,CAACzS,KAAK,KAAK,CAAC,EAAE4e,IAAI,CAACjF,WAAW,EAAE;AAC3C,MAAA;KACG,EAAE0B,IAAI,CAAC;EACV,CAAC;;AAED;AACA,EAAA,MAAMwD,gBAAgB,GAAG;AACvBJ,IAAAA,KAAK,EAAE,cAAc;AAAEC,IAAAA,SAAS,EAAE;GACnC;AACD,EAAA,MAAMI,gBAAgB,GAAG;AACvB3E,IAAAA,KAAK,EAAE,QAAQ;AACfsE,IAAAA,KAAK,EAAE,IAAI;AACXpf,IAAAA,GAAG,EAAE,IAAI;AACT0f,IAAAA,OAAO,EAAE,KAAK;IACdC,QAAQ,EAAE,CAACH,gBAAgB;GAC5B;AACD,EAAA,MAAMI,iBAAiB,GAAG;AACxB9E,IAAAA,KAAK,EAAE,QAAQ;AACfsE,IAAAA,KAAK,EAAE,GAAG;AACVpf,IAAAA,GAAG,EAAE,GAAG;AACR0f,IAAAA,OAAO,EAAE,KAAK;IACdC,QAAQ,EAAE,CAACH,gBAAgB;GAC5B;AACD,EAAA,MAAMK,kBAAkB,GAAG;AACzBT,IAAAA,KAAK,EAAE;GACR;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA,MAAMU,OAAO,GAAG,UAASV,KAAK,EAAEpf,GAAG,EAAE+f,WAAW,GAAG,EAAE,EAAE;IACrD,MAAM5F,IAAI,GAAGI,SAAS,CACpB;AACEO,MAAAA,KAAK,EAAE,SAAS;MAChBsE,KAAK;MACLpf,GAAG;AACH2f,MAAAA,QAAQ,EAAE;KACX,EACDI,WACJ,CAAG;AACD5F,IAAAA,IAAI,CAACwF,QAAQ,CAAC1gB,IAAI,CAAC;AACjB6b,MAAAA,KAAK,EAAE,QAAQ;AACnB;AACA;AACIsE,MAAAA,KAAK,EAAE,kDAAkD;AACzDpf,MAAAA,GAAG,EAAE,0CAA0C;AAC/CggB,MAAAA,YAAY,EAAE,IAAI;AAClBX,MAAAA,SAAS,EAAE;AACf,KAAG,CAAC;IACF,MAAMY,YAAY,GAAGjC,MAAM;AAC7B;AACI,IAAA,GAAG,EACH,GAAG,EACH,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI;AACR;IACI,gCAAgC;AAAA;IAChC,oBAAoB;AAAA;AACpB,IAAA,mBAAmB;KACpB;AACH;AACE7D,IAAAA,IAAI,CAACwF,QAAQ,CAAC1gB,IAAI,CAChB;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;MAEMmgB,KAAK,EAAEjgB,MAAM,CACX,MAAM;AAAA;AACN,MAAA,GAAG,EACH8gB,YAAY,EACZ,sBAAsB,EACtB,MAAM,CAAC;AACf,KACA,CAAG;AACD,IAAA,OAAO9F,IAAI;EACb,CAAC;AACD,EAAA,MAAM+F,mBAAmB,GAAGJ,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;AAC9C,EAAA,MAAMK,oBAAoB,GAAGL,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC;AACpD,EAAA,MAAMM,iBAAiB,GAAGN,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;AAC3C,EAAA,MAAMO,WAAW,GAAG;AAClBvF,IAAAA,KAAK,EAAE,QAAQ;AACfsE,IAAAA,KAAK,EAAEP,SAAS;AAChBQ,IAAAA,SAAS,EAAE;GACZ;AACD,EAAA,MAAMiB,aAAa,GAAG;AACpBxF,IAAAA,KAAK,EAAE,QAAQ;AACfsE,IAAAA,KAAK,EAAEN,WAAW;AAClBO,IAAAA,SAAS,EAAE;GACZ;AACD,EAAA,MAAMkB,kBAAkB,GAAG;AACzBzF,IAAAA,KAAK,EAAE,QAAQ;AACfsE,IAAAA,KAAK,EAAEL,gBAAgB;AACvBM,IAAAA,SAAS,EAAE;GACZ;AACD,EAAA,MAAMmB,WAAW,GAAG;AAClB1F,IAAAA,KAAK,EAAE,QAAQ;AACfsE,IAAAA,KAAK,EAAE,iBAAiB;AACxBpf,IAAAA,GAAG,EAAE,YAAY;IACjB2f,QAAQ,EAAE,CACRH,gBAAgB,EAChB;AACEJ,MAAAA,KAAK,EAAE,IAAI;AACXpf,MAAAA,GAAG,EAAE,IAAI;AACTqf,MAAAA,SAAS,EAAE,CAAC;MACZM,QAAQ,EAAE,CAACH,gBAAgB;KACjC;GAEC;AACD,EAAA,MAAMiB,UAAU,GAAG;AACjB3F,IAAAA,KAAK,EAAE,OAAO;AACdsE,IAAAA,KAAK,EAAET,QAAQ;AACfU,IAAAA,SAAS,EAAE;GACZ;AACD,EAAA,MAAMqB,qBAAqB,GAAG;AAC5B5F,IAAAA,KAAK,EAAE,OAAO;AACdsE,IAAAA,KAAK,EAAER,mBAAmB;AAC1BS,IAAAA,SAAS,EAAE;GACZ;AACD,EAAA,MAAMsB,YAAY,GAAG;AACrB;IACEvB,KAAK,EAAE,SAAS,GAAGR,mBAAmB;AACtCS,IAAAA,SAAS,EAAE;GACZ;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA,MAAMuB,iBAAiB,GAAG,UAASzG,IAAI,EAAE;AACvC,IAAA,OAAOlc,MAAM,CAACua,MAAM,CAAC2B,IAAI,EACvB;AACJ;AACM,MAAA,UAAU,EAAEmF,CAAClM,CAAC,EAAEmM,IAAI,KAAK;QAAEA,IAAI,CAACrG,IAAI,CAAC2H,WAAW,GAAGzN,CAAC,CAAC,CAAC,CAAC;MAAC,CAAE;AAChE;AACM,MAAA,QAAQ,EAAE0N,CAAC1N,CAAC,EAAEmM,IAAI,KAAK;AAAE,QAAA,IAAIA,IAAI,CAACrG,IAAI,CAAC2H,WAAW,KAAKzN,CAAC,CAAC,CAAC,CAAC,EAAEmM,IAAI,CAACjF,WAAW,EAAE;AAAC,MAAA;AACtF,KAAK,CAAC;EACN,CAAC;AAED,EAAA,IAAIyG,KAAK,gBAAgB9iB,MAAM,CAAC2b,MAAM,CAAC;AACrCoH,IAAAA,SAAS,EAAE,IAAI;AACfvB,IAAAA,gBAAgB,EAAEA,gBAAgB;AAClCD,IAAAA,gBAAgB,EAAEA,gBAAgB;AAClCe,IAAAA,kBAAkB,EAAEA,kBAAkB;AACtCxB,IAAAA,gBAAgB,EAAEA,gBAAgB;AAClCe,IAAAA,OAAO,EAAEA,OAAO;AAChBK,IAAAA,oBAAoB,EAAEA,oBAAoB;AAC1CD,IAAAA,mBAAmB,EAAEA,mBAAmB;AACxCI,IAAAA,aAAa,EAAEA,aAAa;AAC5BxB,IAAAA,WAAW,EAAEA,WAAW;AACxB8B,IAAAA,iBAAiB,EAAEA,iBAAiB;AACpCR,IAAAA,iBAAiB,EAAEA,iBAAiB;AACpCzB,IAAAA,QAAQ,EAAEA,QAAQ;AAClBD,IAAAA,gBAAgB,EAAEA,gBAAgB;AAClCiC,IAAAA,YAAY,EAAEA,YAAY;AAC1BN,IAAAA,WAAW,EAAEA,WAAW;AACxBxB,IAAAA,SAAS,EAAEA,SAAS;AACpBgB,IAAAA,kBAAkB,EAAEA,kBAAkB;AACtCD,IAAAA,iBAAiB,EAAEA,iBAAiB;AACpCY,IAAAA,WAAW,EAAEA,WAAW;AACxBxB,IAAAA,cAAc,EAAEA,cAAc;AAC9BC,IAAAA,OAAO,EAAEA,OAAO;AAChBwB,IAAAA,UAAU,EAAEA,UAAU;AACtB7B,IAAAA,mBAAmB,EAAEA,mBAAmB;AACxC8B,IAAAA,qBAAqB,EAAEA;AACzB,GAAC,CAAC;;AAEF;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA,SAASO,qBAAqBA,CAACzgB,KAAK,EAAE0gB,QAAQ,EAAE;IAC9C,MAAMC,MAAM,GAAG3gB,KAAK,CAACM,KAAK,CAACN,KAAK,CAACG,KAAK,GAAG,CAAC,CAAC;IAC3C,IAAIwgB,MAAM,KAAK,GAAG,EAAE;MAClBD,QAAQ,CAAC5G,WAAW,EAAE;AAC1B,IAAA;AACA,EAAA;;AAEA;AACA;AACA;AACA;AACA,EAAA,SAAS8G,cAAcA,CAACjH,IAAI,EAAEkH,OAAO,EAAE;AACvC;AACE,IAAA,IAAIlH,IAAI,CAACyB,SAAS,KAAKxB,SAAS,EAAE;AAChCD,MAAAA,IAAI,CAACW,KAAK,GAAGX,IAAI,CAACyB,SAAS;MAC3B,OAAOzB,IAAI,CAACyB,SAAS;AACzB,IAAA;AACA,EAAA;;AAEA;AACA;AACA;AACA;AACA,EAAA,SAAS0F,aAAaA,CAACnH,IAAI,EAAEoH,MAAM,EAAE;IACnC,IAAI,CAACA,MAAM,EAAE;AACb,IAAA,IAAI,CAACpH,IAAI,CAACmH,aAAa,EAAE;;AAE3B;AACA;AACA;AACA;AACA;AACEnH,IAAAA,IAAI,CAACiF,KAAK,GAAG,MAAM,GAAGjF,IAAI,CAACmH,aAAa,CAAC3hB,KAAK,CAAC,GAAG,CAAC,CAACgC,IAAI,CAAC,GAAG,CAAC,GAAG,qBAAqB;IACrFwY,IAAI,CAACqH,aAAa,GAAGP,qBAAqB;IAC1C9G,IAAI,CAACsH,QAAQ,GAAGtH,IAAI,CAACsH,QAAQ,IAAItH,IAAI,CAACmH,aAAa;IACnD,OAAOnH,IAAI,CAACmH,aAAa;;AAE3B;AACA;AACA;IACE,IAAInH,IAAI,CAACkF,SAAS,KAAKjF,SAAS,EAAED,IAAI,CAACkF,SAAS,GAAG,CAAC;AACtD,EAAA;;AAEA;AACA;AACA;AACA;AACA,EAAA,SAASqC,cAAcA,CAACvH,IAAI,EAAEkH,OAAO,EAAE;IACrC,IAAI,CAACvL,KAAK,CAACC,OAAO,CAACoE,IAAI,CAACuF,OAAO,CAAC,EAAE;IAElCvF,IAAI,CAACuF,OAAO,GAAG1B,MAAM,CAAC,GAAG7D,IAAI,CAACuF,OAAO,CAAC;AACxC,EAAA;;AAEA;AACA;AACA;AACA;AACA,EAAA,SAASiC,YAAYA,CAACxH,IAAI,EAAEkH,OAAO,EAAE;AACnC,IAAA,IAAI,CAAClH,IAAI,CAAC3Z,KAAK,EAAE;AACjB,IAAA,IAAI2Z,IAAI,CAACiF,KAAK,IAAIjF,IAAI,CAACna,GAAG,EAAE,MAAM,IAAIiP,KAAK,CAAC,0CAA0C,CAAC;AAEvFkL,IAAAA,IAAI,CAACiF,KAAK,GAAGjF,IAAI,CAAC3Z,KAAK;IACvB,OAAO2Z,IAAI,CAAC3Z,KAAK;AACnB,EAAA;;AAEA;AACA;AACA;AACA;AACA,EAAA,SAASohB,gBAAgBA,CAACzH,IAAI,EAAEkH,OAAO,EAAE;AACzC;IACE,IAAIlH,IAAI,CAACkF,SAAS,KAAKjF,SAAS,EAAED,IAAI,CAACkF,SAAS,GAAG,CAAC;AACtD,EAAA;;AAEA;AACA;AACA,EAAA,MAAMwC,cAAc,GAAGA,CAAC1H,IAAI,EAAEoH,MAAM,KAAK;AACvC,IAAA,IAAI,CAACpH,IAAI,CAAC2H,WAAW,EAAE;AACzB;AACA;IACE,IAAI3H,IAAI,CAAC4H,MAAM,EAAE,MAAM,IAAI9S,KAAK,CAAC,wCAAwC,CAAC;IAE1E,MAAM+S,YAAY,GAAG/jB,MAAM,CAACua,MAAM,CAAC,EAAE,EAAE2B,IAAI,CAAC;IAC5Clc,MAAM,CAACkF,IAAI,CAACgX,IAAI,CAAC,CAACL,OAAO,CAAEpX,GAAG,IAAK;MAAE,OAAOyX,IAAI,CAACzX,GAAG,CAAC;KAAG,CAAC;AAEzDyX,IAAAA,IAAI,CAACsH,QAAQ,GAAGO,YAAY,CAACP,QAAQ;AACrCtH,IAAAA,IAAI,CAACiF,KAAK,GAAGjgB,MAAM,CAAC6iB,YAAY,CAACF,WAAW,EAAEpE,SAAS,CAACsE,YAAY,CAAC5C,KAAK,CAAC,CAAC;IAC5EjF,IAAI,CAAC4H,MAAM,GAAG;AACZ1C,MAAAA,SAAS,EAAE,CAAC;AACZM,MAAAA,QAAQ,EAAE,CACR1hB,MAAM,CAACua,MAAM,CAACwJ,YAAY,EAAE;AAAEC,QAAAA,UAAU,EAAE;AAAI,OAAE,CAAA;KAEnD;IACD9H,IAAI,CAACkF,SAAS,GAAG,CAAC;IAElB,OAAO2C,YAAY,CAACF,WAAW;EACjC,CAAC;;AAED;AACA,EAAA,MAAMI,eAAe,GAAG,CACtB,IAAI,EACJ,KAAK,EACL,KAAK,EACL,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,QAAQ;AAAA;EACR,MAAM;AAAA;AACN,EAAA,OAAO;GACR;EAED,MAAMC,qBAAqB,GAAG,SAAS;;AAEvC;AACA;AACA;AACA;AACA;AACA;EACA,SAASC,eAAeA,CAACC,WAAW,EAAEC,eAAe,EAAEC,SAAS,GAAGJ,qBAAqB,EAAE;AAC1F;AACE,IAAA,MAAMK,gBAAgB,GAAGvkB,MAAM,CAACyc,MAAM,CAAC,IAAI,CAAC;;AAE9C;AACA;AACE,IAAA,IAAI,OAAO2H,WAAW,KAAK,QAAQ,EAAE;MACnCI,WAAW,CAACF,SAAS,EAAEF,WAAW,CAAC1iB,KAAK,CAAC,GAAG,CAAC,CAAC;IAClD,CAAG,MAAM,IAAImW,KAAK,CAACC,OAAO,CAACsM,WAAW,CAAC,EAAE;AACrCI,MAAAA,WAAW,CAACF,SAAS,EAAEF,WAAW,CAAC;AACvC,IAAA,CAAG,MAAM;MACLpkB,MAAM,CAACkF,IAAI,CAACkf,WAAW,CAAC,CAACvI,OAAO,CAAC,UAASyI,SAAS,EAAE;AACzD;AACMtkB,QAAAA,MAAM,CAACua,MAAM,CACXgK,gBAAgB,EAChBJ,eAAe,CAACC,WAAW,CAACE,SAAS,CAAC,EAAED,eAAe,EAAEC,SAAS,CAC1E,CAAO;AACP,MAAA,CAAK,CAAC;AACN,IAAA;AACE,IAAA,OAAOC,gBAAgB;;AAEzB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACE,IAAA,SAASC,WAAWA,CAACF,SAAS,EAAEG,WAAW,EAAE;AAC3C,MAAA,IAAIJ,eAAe,EAAE;AACnBI,QAAAA,WAAW,GAAGA,WAAW,CAAChhB,GAAG,CAACwZ,CAAC,IAAIA,CAAC,CAAC/M,WAAW,EAAE,CAAC;AACzD,MAAA;AACIuU,MAAAA,WAAW,CAAC5I,OAAO,CAAC,UAAS6I,OAAO,EAAE;AACpC,QAAA,MAAMC,IAAI,GAAGD,OAAO,CAAChjB,KAAK,CAAC,GAAG,CAAC;QAC/B6iB,gBAAgB,CAACI,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAACL,SAAS,EAAEM,eAAe,CAACD,IAAI,CAAC,CAAC,CAAC,EAAEA,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAChF,MAAA,CAAK,CAAC;AACN,IAAA;AACA,EAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA,SAASC,eAAeA,CAACF,OAAO,EAAEG,aAAa,EAAE;AACjD;AACA;AACE,IAAA,IAAIA,aAAa,EAAE;MACjB,OAAOnU,MAAM,CAACmU,aAAa,CAAC;AAChC,IAAA;AAEE,IAAA,OAAOC,aAAa,CAACJ,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;AACvC,EAAA;;AAEA;AACA;AACA;AACA;EACA,SAASI,aAAaA,CAACJ,OAAO,EAAE;IAC9B,OAAOT,eAAe,CAAC3f,QAAQ,CAACogB,OAAO,CAACxU,WAAW,EAAE,CAAC;AACxD,EAAA;;AAEA;;AAEA;AACA;;AAIA;AACA;AACA;EACA,MAAM6U,gBAAgB,GAAG,EAAE;;AAE3B;AACA;AACA;EACA,MAAMxS,KAAK,GAAIyS,OAAO,IAAK;AACzBC,IAAAA,OAAO,CAAC1S,KAAK,CAACyS,OAAO,CAAC;EACxB,CAAC;;AAED;AACA;AACA;AACA;AACA,EAAA,MAAME,IAAI,GAAGA,CAACF,OAAO,EAAE,GAAGpF,IAAI,KAAK;IACjCqF,OAAO,CAACE,GAAG,CAAC,CAAA,MAAA,EAASH,OAAO,CAAA,CAAE,EAAE,GAAGpF,IAAI,CAAC;EAC1C,CAAC;;AAED;AACA;AACA;AACA;AACA,EAAA,MAAMwF,UAAU,GAAGA,CAAC3P,OAAO,EAAEuP,OAAO,KAAK;IACvC,IAAID,gBAAgB,CAAC,CAAA,EAAGtP,OAAO,IAAIuP,OAAO,CAAA,CAAE,CAAC,EAAE;IAE/CC,OAAO,CAACE,GAAG,CAAC,CAAA,iBAAA,EAAoB1P,OAAO,CAAA,EAAA,EAAKuP,OAAO,EAAE,CAAC;IACtDD,gBAAgB,CAAC,GAAGtP,OAAO,CAAA,CAAA,EAAIuP,OAAO,CAAA,CAAE,CAAC,GAAG,IAAI;EAClD,CAAC;;AAED;;AAEA;AACA;AACA;;AAEA,EAAA,MAAMK,eAAe,GAAG,IAAIrU,KAAK,EAAE;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA,SAASsU,eAAeA,CAACpJ,IAAI,EAAEqJ,OAAO,EAAE;AAAE9gB,IAAAA;AAAG,GAAE,EAAE;IAC/C,IAAIhC,MAAM,GAAG,CAAC;AACd,IAAA,MAAM+iB,UAAU,GAAGtJ,IAAI,CAACzX,GAAG,CAAC;AAC9B;IACE,MAAMghB,IAAI,GAAG,EAAE;AACjB;IACE,MAAMC,SAAS,GAAG,EAAE;AAEpB,IAAA,KAAK,IAAIrjB,CAAC,GAAG,CAAC,EAAEA,CAAC,IAAIkjB,OAAO,CAACvjB,MAAM,EAAEK,CAAC,EAAE,EAAE;MACxCqjB,SAAS,CAACrjB,CAAC,GAAGI,MAAM,CAAC,GAAG+iB,UAAU,CAACnjB,CAAC,CAAC;AACrCojB,MAAAA,IAAI,CAACpjB,CAAC,GAAGI,MAAM,CAAC,GAAG,IAAI;MACvBA,MAAM,IAAIwd,gBAAgB,CAACsF,OAAO,CAACljB,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9C,IAAA;AACA;AACA;AACE6Z,IAAAA,IAAI,CAACzX,GAAG,CAAC,GAAGihB,SAAS;AACrBxJ,IAAAA,IAAI,CAACzX,GAAG,CAAC,CAACkhB,KAAK,GAAGF,IAAI;AACtBvJ,IAAAA,IAAI,CAACzX,GAAG,CAAC,CAACmhB,MAAM,GAAG,IAAI;AACzB,EAAA;;AAEA;AACA;AACA;EACA,SAASC,eAAeA,CAAC3J,IAAI,EAAE;IAC7B,IAAI,CAACrE,KAAK,CAACC,OAAO,CAACoE,IAAI,CAACiF,KAAK,CAAC,EAAE;IAEhC,IAAIjF,IAAI,CAAC4J,IAAI,IAAI5J,IAAI,CAAC6F,YAAY,IAAI7F,IAAI,CAAC6J,WAAW,EAAE;MACtDxT,KAAK,CAAC,oEAAoE,CAAC;AAC3E,MAAA,MAAM8S,eAAe;AACzB,IAAA;AAEE,IAAA,IAAI,OAAOnJ,IAAI,CAAC8J,UAAU,KAAK,QAAQ,IAAI9J,IAAI,CAAC8J,UAAU,KAAK,IAAI,EAAE;MACnEzT,KAAK,CAAC,2BAA2B,CAAC;AAClC,MAAA,MAAM8S,eAAe;AACzB,IAAA;AAEEC,IAAAA,eAAe,CAACpJ,IAAI,EAAEA,IAAI,CAACiF,KAAK,EAAE;AAAE1c,MAAAA,GAAG,EAAE;KAAc,CAAC;IACxDyX,IAAI,CAACiF,KAAK,GAAGf,sBAAsB,CAAClE,IAAI,CAACiF,KAAK,EAAE;AAAEb,MAAAA,QAAQ,EAAE;KAAI,CAAC;AACnE,EAAA;;AAEA;AACA;AACA;EACA,SAAS2F,aAAaA,CAAC/J,IAAI,EAAE;IAC3B,IAAI,CAACrE,KAAK,CAACC,OAAO,CAACoE,IAAI,CAACna,GAAG,CAAC,EAAE;IAE9B,IAAIma,IAAI,CAAC4J,IAAI,IAAI5J,IAAI,CAACgK,UAAU,IAAIhK,IAAI,CAACiK,SAAS,EAAE;MAClD5T,KAAK,CAAC,8DAA8D,CAAC;AACrE,MAAA,MAAM8S,eAAe;AACzB,IAAA;AAEE,IAAA,IAAI,OAAOnJ,IAAI,CAACgD,QAAQ,KAAK,QAAQ,IAAIhD,IAAI,CAACgD,QAAQ,KAAK,IAAI,EAAE;MAC/D3M,KAAK,CAAC,yBAAyB,CAAC;AAChC,MAAA,MAAM8S,eAAe;AACzB,IAAA;AAEEC,IAAAA,eAAe,CAACpJ,IAAI,EAAEA,IAAI,CAACna,GAAG,EAAE;AAAE0C,MAAAA,GAAG,EAAE;KAAY,CAAC;IACpDyX,IAAI,CAACna,GAAG,GAAGqe,sBAAsB,CAAClE,IAAI,CAACna,GAAG,EAAE;AAAEue,MAAAA,QAAQ,EAAE;KAAI,CAAC;AAC/D,EAAA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;EAIA,SAAS8F,UAAUA,CAAClK,IAAI,EAAE;AACxB,IAAA,IAAIA,IAAI,CAACW,KAAK,IAAI,OAAOX,IAAI,CAACW,KAAK,KAAK,QAAQ,IAAIX,IAAI,CAACW,KAAK,KAAK,IAAI,EAAE;AACvEX,MAAAA,IAAI,CAAC8J,UAAU,GAAG9J,IAAI,CAACW,KAAK;MAC5B,OAAOX,IAAI,CAACW,KAAK;AACrB,IAAA;AACA,EAAA;;AAEA;AACA;AACA;EACA,SAASwJ,UAAUA,CAACnK,IAAI,EAAE;IACxBkK,UAAU,CAAClK,IAAI,CAAC;AAEhB,IAAA,IAAI,OAAOA,IAAI,CAAC8J,UAAU,KAAK,QAAQ,EAAE;MACvC9J,IAAI,CAAC8J,UAAU,GAAG;QAAEM,KAAK,EAAEpK,IAAI,CAAC8J;OAAY;AAChD,IAAA;AACE,IAAA,IAAI,OAAO9J,IAAI,CAACgD,QAAQ,KAAK,QAAQ,EAAE;MACrChD,IAAI,CAACgD,QAAQ,GAAG;QAAEoH,KAAK,EAAEpK,IAAI,CAACgD;OAAU;AAC5C,IAAA;IAEE2G,eAAe,CAAC3J,IAAI,CAAC;IACrB+J,aAAa,CAAC/J,IAAI,CAAC;AACrB,EAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACA,SAASqK,eAAeA,CAACC,QAAQ,EAAE;AACnC;AACA;AACA;AACA;AACA;AACA;AACE,IAAA,SAASC,MAAMA,CAACnnB,KAAK,EAAEonB,MAAM,EAAE;AAC7B,MAAA,OAAO,IAAInP,MAAM,CACfC,MAAM,CAAClY,KAAK,CAAC,EACb,GAAA,IACGknB,QAAQ,CAACG,gBAAgB,GAAG,GAAG,GAAG,EAAE,CAAA,IACpCH,QAAQ,CAACI,YAAY,GAAG,GAAG,GAAG,EAAE,CAAA,IAChCF,MAAM,GAAG,GAAG,GAAG,EAAE,CAC1B,CAAK;AACL,IAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAEE,IAAA,MAAMG,UAAU,CAAC;AACf3nB,MAAAA,WAAWA,GAAG;AACZ,QAAA,IAAI,CAAC4nB,YAAY,GAAG,EAAE;AAC5B;QACM,IAAI,CAACvB,OAAO,GAAG,EAAE;QACjB,IAAI,CAACwB,OAAO,GAAG,CAAC;QAChB,IAAI,CAACC,QAAQ,GAAG,CAAC;AACvB,MAAA;;AAEA;AACIC,MAAAA,OAAOA,CAACzH,EAAE,EAAEzB,IAAI,EAAE;AAChBA,QAAAA,IAAI,CAACiJ,QAAQ,GAAG,IAAI,CAACA,QAAQ,EAAE;AACrC;QACM,IAAI,CAACF,YAAY,CAAC,IAAI,CAACC,OAAO,CAAC,GAAGhJ,IAAI;QACtC,IAAI,CAACwH,OAAO,CAACvkB,IAAI,CAAC,CAAC+c,IAAI,EAAEyB,EAAE,CAAC,CAAC;QAC7B,IAAI,CAACuH,OAAO,IAAI9G,gBAAgB,CAACT,EAAE,CAAC,GAAG,CAAC;AAC9C,MAAA;AAEI0H,MAAAA,OAAOA,GAAG;AACR,QAAA,IAAI,IAAI,CAAC3B,OAAO,CAACvjB,MAAM,KAAK,CAAC,EAAE;AACrC;AACA;AACQ,UAAA,IAAI,CAACQ,IAAI,GAAG,MAAM,IAAI;AAC9B,QAAA;AACM,QAAA,MAAM2kB,WAAW,GAAG,IAAI,CAAC5B,OAAO,CAAC9hB,GAAG,CAACsb,EAAE,IAAIA,EAAE,CAAC,CAAC,CAAC,CAAC;QACjD,IAAI,CAACqI,SAAS,GAAGX,MAAM,CAACrG,sBAAsB,CAAC+G,WAAW,EAAE;AAAE7G,UAAAA,QAAQ,EAAE;SAAK,CAAC,EAAE,IAAI,CAAC;QACrF,IAAI,CAAC+G,SAAS,GAAG,CAAC;AACxB,MAAA;;AAEA;MACI7kB,IAAIA,CAACmO,CAAC,EAAE;AACN,QAAA,IAAI,CAACyW,SAAS,CAACC,SAAS,GAAG,IAAI,CAACA,SAAS;QACzC,MAAM9kB,KAAK,GAAG,IAAI,CAAC6kB,SAAS,CAAC5kB,IAAI,CAACmO,CAAC,CAAC;QACpC,IAAI,CAACpO,KAAK,EAAE;AAAE,UAAA,OAAO,IAAI;AAAC,QAAA;;AAEhC;AACM,QAAA,MAAMF,CAAC,GAAGE,KAAK,CAAC+kB,SAAS,CAAC,CAACvI,EAAE,EAAE1c,CAAC,KAAKA,CAAC,GAAG,CAAC,IAAI0c,EAAE,KAAK5C,SAAS,CAAC;AACrE;AACM,QAAA,MAAMoL,SAAS,GAAG,IAAI,CAACT,YAAY,CAACzkB,CAAC,CAAC;AAC5C;AACA;AACME,QAAAA,KAAK,CAACI,MAAM,CAAC,CAAC,EAAEN,CAAC,CAAC;AAElB,QAAA,OAAOrC,MAAM,CAACua,MAAM,CAAChY,KAAK,EAAEglB,SAAS,CAAC;AAC5C,MAAA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AASE,IAAA,MAAMC,mBAAmB,CAAC;AACxBtoB,MAAAA,WAAWA,GAAG;AAClB;QACM,IAAI,CAACuoB,KAAK,GAAG,EAAE;AACrB;QACM,IAAI,CAACC,YAAY,GAAG,EAAE;QACtB,IAAI,CAACC,KAAK,GAAG,CAAC;QAEd,IAAI,CAACN,SAAS,GAAG,CAAC;QAClB,IAAI,CAACO,UAAU,GAAG,CAAC;AACzB,MAAA;;AAEA;MACIC,UAAUA,CAACnlB,KAAK,EAAE;AAChB,QAAA,IAAI,IAAI,CAACglB,YAAY,CAAChlB,KAAK,CAAC,EAAE,OAAO,IAAI,CAACglB,YAAY,CAAChlB,KAAK,CAAC;AAE7D,QAAA,MAAMolB,OAAO,GAAG,IAAIjB,UAAU,EAAE;QAChC,IAAI,CAACY,KAAK,CAACvlB,KAAK,CAACQ,KAAK,CAAC,CAACmZ,OAAO,CAAC,CAAC,CAAC2D,EAAE,EAAEzB,IAAI,CAAC,KAAK+J,OAAO,CAACb,OAAO,CAACzH,EAAE,EAAEzB,IAAI,CAAC,CAAC;QAC1E+J,OAAO,CAACZ,OAAO,EAAE;AACjB,QAAA,IAAI,CAACQ,YAAY,CAAChlB,KAAK,CAAC,GAAGolB,OAAO;AAClC,QAAA,OAAOA,OAAO;AACpB,MAAA;AAEIC,MAAAA,0BAA0BA,GAAG;AAC3B,QAAA,OAAO,IAAI,CAACH,UAAU,KAAK,CAAC;AAClC,MAAA;AAEII,MAAAA,WAAWA,GAAG;QACZ,IAAI,CAACJ,UAAU,GAAG,CAAC;AACzB,MAAA;;AAEA;AACIX,MAAAA,OAAOA,CAACzH,EAAE,EAAEzB,IAAI,EAAE;QAChB,IAAI,CAAC0J,KAAK,CAACzmB,IAAI,CAAC,CAACwe,EAAE,EAAEzB,IAAI,CAAC,CAAC;QAC3B,IAAIA,IAAI,CAACvL,IAAI,KAAK,OAAO,EAAE,IAAI,CAACmV,KAAK,EAAE;AAC7C,MAAA;;AAEA;MACInlB,IAAIA,CAACmO,CAAC,EAAE;QACN,MAAMwE,CAAC,GAAG,IAAI,CAAC0S,UAAU,CAAC,IAAI,CAACD,UAAU,CAAC;AAC1CzS,QAAAA,CAAC,CAACkS,SAAS,GAAG,IAAI,CAACA,SAAS;AAC5B,QAAA,IAAI1lB,MAAM,GAAGwT,CAAC,CAAC3S,IAAI,CAACmO,CAAC,CAAC;;AAE5B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACM,QAAA,IAAI,IAAI,CAACoX,0BAA0B,EAAE,EAAE;UACrC,IAAIpmB,MAAM,IAAIA,MAAM,CAACe,KAAK,KAAK,IAAI,CAAC2kB,SAAS,EAAE,CAAC,KAAM;AAAA;AACpD,YAAA,MAAMY,EAAE,GAAG,IAAI,CAACJ,UAAU,CAAC,CAAC,CAAC;AAC7BI,YAAAA,EAAE,CAACZ,SAAS,GAAG,IAAI,CAACA,SAAS,GAAG,CAAC;AACjC1lB,YAAAA,MAAM,GAAGsmB,EAAE,CAACzlB,IAAI,CAACmO,CAAC,CAAC;AAC7B,UAAA;AACA,QAAA;AAEM,QAAA,IAAIhP,MAAM,EAAE;AACV,UAAA,IAAI,CAACimB,UAAU,IAAIjmB,MAAM,CAACqlB,QAAQ,GAAG,CAAC;AACtC,UAAA,IAAI,IAAI,CAACY,UAAU,KAAK,IAAI,CAACD,KAAK,EAAE;AAC5C;YACU,IAAI,CAACK,WAAW,EAAE;AAC5B,UAAA;AACA,QAAA;AAEM,QAAA,OAAOrmB,MAAM;AACnB,MAAA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;IACE,SAASumB,cAAcA,CAAChM,IAAI,EAAE;AAC5B,MAAA,MAAMiM,EAAE,GAAG,IAAIX,mBAAmB,EAAE;AAEpCtL,MAAAA,IAAI,CAACwF,QAAQ,CAAC7F,OAAO,CAACuM,IAAI,IAAID,EAAE,CAAClB,OAAO,CAACmB,IAAI,CAACjH,KAAK,EAAE;AAAEkH,QAAAA,IAAI,EAAED,IAAI;AAAE5V,QAAAA,IAAI,EAAE;AAAO,OAAE,CAAC,CAAC;MAEpF,IAAI0J,IAAI,CAACoM,aAAa,EAAE;AACtBH,QAAAA,EAAE,CAAClB,OAAO,CAAC/K,IAAI,CAACoM,aAAa,EAAE;AAAE9V,UAAAA,IAAI,EAAE;SAAO,CAAC;AACrD,MAAA;MACI,IAAI0J,IAAI,CAACuF,OAAO,EAAE;AAChB0G,QAAAA,EAAE,CAAClB,OAAO,CAAC/K,IAAI,CAACuF,OAAO,EAAE;AAAEjP,UAAAA,IAAI,EAAE;SAAW,CAAC;AACnD,MAAA;AAEI,MAAA,OAAO2V,EAAE;AACb,IAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACE,IAAA,SAASI,WAAWA,CAACrM,IAAI,EAAEoH,MAAM,EAAE;MACjC,MAAMkF,KAAK,4BAA8BtM,IAAK;AAC9C,MAAA,IAAIA,IAAI,CAACuM,UAAU,EAAE,OAAOD,KAAK;AAEjC,MAAA,CACErF,cAAc;AACpB;AACA;AACMO,MAAAA,YAAY,EACZ2C,UAAU,EACVzC,cAAA,CACD,CAAC/H,OAAO,CAAC6M,GAAG,IAAIA,GAAG,CAACxM,IAAI,EAAEoH,MAAM,CAAC,CAAC;AAEnCkD,MAAAA,QAAQ,CAACmC,kBAAkB,CAAC9M,OAAO,CAAC6M,GAAG,IAAIA,GAAG,CAACxM,IAAI,EAAEoH,MAAM,CAAC,CAAC;;AAEjE;MACIpH,IAAI,CAACqH,aAAa,GAAG,IAAI;AAEzB,MAAA,CACEF,aAAa;AACnB;AACA;MACMI,cAAc;AACpB;AACME,MAAAA,gBAAA,CACD,CAAC9H,OAAO,CAAC6M,GAAG,IAAIA,GAAG,CAACxM,IAAI,EAAEoH,MAAM,CAAC,CAAC;MAEnCpH,IAAI,CAACuM,UAAU,GAAG,IAAI;MAEtB,IAAIG,cAAc,GAAG,IAAI;AACzB,MAAA,IAAI,OAAO1M,IAAI,CAACsH,QAAQ,KAAK,QAAQ,IAAItH,IAAI,CAACsH,QAAQ,CAACqF,QAAQ,EAAE;AACrE;AACA;AACA;AACM3M,QAAAA,IAAI,CAACsH,QAAQ,GAAGxjB,MAAM,CAACua,MAAM,CAAC,EAAE,EAAE2B,IAAI,CAACsH,QAAQ,CAAC;AAChDoF,QAAAA,cAAc,GAAG1M,IAAI,CAACsH,QAAQ,CAACqF,QAAQ;AACvC,QAAA,OAAO3M,IAAI,CAACsH,QAAQ,CAACqF,QAAQ;AACnC,MAAA;MACID,cAAc,GAAGA,cAAc,IAAI,KAAK;MAExC,IAAI1M,IAAI,CAACsH,QAAQ,EAAE;AACjBtH,QAAAA,IAAI,CAACsH,QAAQ,GAAGW,eAAe,CAACjI,IAAI,CAACsH,QAAQ,EAAEgD,QAAQ,CAACG,gBAAgB,CAAC;AAC/E,MAAA;MAEI6B,KAAK,CAACM,gBAAgB,GAAGrC,MAAM,CAACmC,cAAc,EAAE,IAAI,CAAC;AAErD,MAAA,IAAItF,MAAM,EAAE;QACV,IAAI,CAACpH,IAAI,CAACiF,KAAK,EAAEjF,IAAI,CAACiF,KAAK,GAAG,OAAO;QACrCqH,KAAK,CAACO,OAAO,GAAGtC,MAAM,CAAC+B,KAAK,CAACrH,KAAK,CAAC;AACnC,QAAA,IAAI,CAACjF,IAAI,CAACna,GAAG,IAAI,CAACma,IAAI,CAAC8M,cAAc,EAAE9M,IAAI,CAACna,GAAG,GAAG,OAAO;AACzD,QAAA,IAAIma,IAAI,CAACna,GAAG,EAAEymB,KAAK,CAACS,KAAK,GAAGxC,MAAM,CAAC+B,KAAK,CAACzmB,GAAG,CAAC;QAC7CymB,KAAK,CAACF,aAAa,GAAG9Q,MAAM,CAACgR,KAAK,CAACzmB,GAAG,CAAC,IAAI,EAAE;AAC7C,QAAA,IAAIma,IAAI,CAAC8M,cAAc,IAAI1F,MAAM,CAACgF,aAAa,EAAE;AAC/CE,UAAAA,KAAK,CAACF,aAAa,IAAI,CAACpM,IAAI,CAACna,GAAG,GAAG,GAAG,GAAG,EAAE,IAAIuhB,MAAM,CAACgF,aAAa;AAC3E,QAAA;AACA,MAAA;AACI,MAAA,IAAIpM,IAAI,CAACuF,OAAO,EAAE+G,KAAK,CAACU,SAAS,GAAGzC,MAAM,+BAAiCvK,IAAI,CAACuF,OAAO,CAAE;MACzF,IAAI,CAACvF,IAAI,CAACwF,QAAQ,EAAExF,IAAI,CAACwF,QAAQ,GAAG,EAAE;AAEtCxF,MAAAA,IAAI,CAACwF,QAAQ,GAAG,EAAE,CAACxgB,MAAM,CAAC,GAAGgb,IAAI,CAACwF,QAAQ,CAACje,GAAG,CAAC,UAAS0lB,CAAC,EAAE;QACzD,OAAOC,iBAAiB,CAACD,CAAC,KAAK,MAAM,GAAGjN,IAAI,GAAGiN,CAAC,CAAC;AACvD,MAAA,CAAK,CAAC,CAAC;AACHjN,MAAAA,IAAI,CAACwF,QAAQ,CAAC7F,OAAO,CAAC,UAASsN,CAAC,EAAE;AAAEZ,QAAAA,WAAW,kBAAoBY,CAAC,EAAGX,KAAK,CAAC;OAAG,CAAC;MAEjF,IAAItM,IAAI,CAAC4H,MAAM,EAAE;AACfyE,QAAAA,WAAW,CAACrM,IAAI,CAAC4H,MAAM,EAAER,MAAM,CAAC;AACtC,MAAA;AAEIkF,MAAAA,KAAK,CAACV,OAAO,GAAGI,cAAc,CAACM,KAAK,CAAC;AACrC,MAAA,OAAOA,KAAK;AAChB,IAAA;IAEE,IAAI,CAAChC,QAAQ,CAACmC,kBAAkB,EAAEnC,QAAQ,CAACmC,kBAAkB,GAAG,EAAE;;AAEpE;AACE,IAAA,IAAInC,QAAQ,CAAC9E,QAAQ,IAAI8E,QAAQ,CAAC9E,QAAQ,CAACpd,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC3D,MAAA,MAAM,IAAI0M,KAAK,CAAC,2FAA2F,CAAC;AAChH,IAAA;;AAEA;IACEwV,QAAQ,CAAC6C,gBAAgB,GAAG/M,SAAS,CAACkK,QAAQ,CAAC6C,gBAAgB,IAAI,EAAE,CAAC;AAEtE,IAAA,OAAOd,WAAW,kBAAoB/B,QAAQ,CAAE;AAClD,EAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACA,SAAS8C,kBAAkBA,CAACpN,IAAI,EAAE;AAChC,IAAA,IAAI,CAACA,IAAI,EAAE,OAAO,KAAK;IAEvB,OAAOA,IAAI,CAAC8M,cAAc,IAAIM,kBAAkB,CAACpN,IAAI,CAAC4H,MAAM,CAAC;AAC/D,EAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACA,SAASsF,iBAAiBA,CAAClN,IAAI,EAAE;IAC/B,IAAIA,IAAI,CAACqN,QAAQ,IAAI,CAACrN,IAAI,CAACsN,cAAc,EAAE;MACzCtN,IAAI,CAACsN,cAAc,GAAGtN,IAAI,CAACqN,QAAQ,CAAC9lB,GAAG,CAAC,UAASgmB,OAAO,EAAE;QACxD,OAAOnN,SAAS,CAACJ,IAAI,EAAE;AAAEqN,UAAAA,QAAQ,EAAE;SAAM,EAAEE,OAAO,CAAC;AACzD,MAAA,CAAK,CAAC;AACN,IAAA;;AAEA;AACA;AACA;IACE,IAAIvN,IAAI,CAACsN,cAAc,EAAE;MACvB,OAAOtN,IAAI,CAACsN,cAAc;AAC9B,IAAA;;AAEA;AACA;AACA;AACA;AACE,IAAA,IAAIF,kBAAkB,CAACpN,IAAI,CAAC,EAAE;MAC5B,OAAOI,SAAS,CAACJ,IAAI,EAAE;QAAE4H,MAAM,EAAE5H,IAAI,CAAC4H,MAAM,GAAGxH,SAAS,CAACJ,IAAI,CAAC4H,MAAM,CAAC,GAAG;AAAI,OAAE,CAAC;AACnF,IAAA;AAEE,IAAA,IAAI9jB,MAAM,CAACgc,QAAQ,CAACE,IAAI,CAAC,EAAE;MACzB,OAAOI,SAAS,CAACJ,IAAI,CAAC;AAC1B,IAAA;;AAEA;AACE,IAAA,OAAOA,IAAI;AACb,EAAA;EAEA,IAAIzG,OAAO,GAAG,SAAS;EAEvB,MAAMiU,kBAAkB,SAAS1Y,KAAK,CAAC;AACrC9R,IAAAA,WAAWA,CAACyqB,MAAM,EAAEC,IAAI,EAAE;MACxB,KAAK,CAACD,MAAM,CAAC;MACb,IAAI,CAAC7N,IAAI,GAAG,oBAAoB;MAChC,IAAI,CAAC8N,IAAI,GAAGA,IAAI;AACpB,IAAA;AACA;;AAEA;AACA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;EAGA,MAAMC,MAAM,GAAG3P,UAAU;EACzB,MAAM4P,OAAO,GAAGxN,SAAS;AACzB,EAAA,MAAMyN,QAAQ,GAAGC,MAAM,CAAC,SAAS,CAAC;EAClC,MAAMC,gBAAgB,GAAG,CAAC;;AAE1B;AACA;AACA;AACA;AACA,EAAA,MAAMC,IAAI,GAAG,UAASC,IAAI,EAAE;AAC5B;AACA;AACE,IAAA,MAAMC,SAAS,GAAGpqB,MAAM,CAACyc,MAAM,CAAC,IAAI,CAAC;AACvC;AACE,IAAA,MAAM4N,OAAO,GAAGrqB,MAAM,CAACyc,MAAM,CAAC,IAAI,CAAC;AACrC;IACE,MAAM6N,OAAO,GAAG,EAAE;;AAEpB;AACA;IACE,IAAIC,SAAS,GAAG,IAAI;IACpB,MAAMC,kBAAkB,GAAG,qFAAqF;AAClH;AACE,IAAA,MAAMC,kBAAkB,GAAG;AAAEC,MAAAA,iBAAiB,EAAE,IAAI;AAAE5O,MAAAA,IAAI,EAAE,YAAY;AAAE4F,MAAAA,QAAQ,EAAE;KAAI;;AAE1F;AACA;AACA;AACE,IAAA,IAAI5e,OAAO,GAAG;AACZ6nB,MAAAA,mBAAmB,EAAE,KAAK;AAC1BC,MAAAA,kBAAkB,EAAE,KAAK;AACzBC,MAAAA,aAAa,EAAE,oBAAoB;AACnCC,MAAAA,gBAAgB,EAAE,6BAA6B;AAC/CxN,MAAAA,WAAW,EAAE,OAAO;AACpByN,MAAAA,WAAW,EAAE,UAAU;AACvBX,MAAAA,SAAS,EAAE,IAAI;AACnB;AACA;AACIY,MAAAA,SAAS,EAAEhM;KACZ;;AAEH;;AAEA;AACA;AACA;AACA;IACE,SAASiM,kBAAkBA,CAACC,YAAY,EAAE;AACxC,MAAA,OAAOpoB,OAAO,CAAC+nB,aAAa,CAACva,IAAI,CAAC4a,YAAY,CAAC;AACnD,IAAA;;AAEA;AACA;AACA;IACE,SAASC,aAAaA,CAACC,KAAK,EAAE;AAC5B,MAAA,IAAIC,OAAO,GAAGD,KAAK,CAACzN,SAAS,GAAG,GAAG;MAEnC0N,OAAO,IAAID,KAAK,CAACE,UAAU,GAAGF,KAAK,CAACE,UAAU,CAAC3N,SAAS,GAAG,EAAE;;AAEjE;MACI,MAAMpb,KAAK,GAAGO,OAAO,CAACgoB,gBAAgB,CAACtoB,IAAI,CAAC6oB,OAAO,CAAC;AACpD,MAAA,IAAI9oB,KAAK,EAAE;QACT,MAAMikB,QAAQ,GAAG+E,WAAW,CAAChpB,KAAK,CAAC,CAAC,CAAC,CAAC;QACtC,IAAI,CAACikB,QAAQ,EAAE;AACbtB,UAAAA,IAAI,CAACsF,kBAAkB,CAAC3oB,OAAO,CAAC,IAAI,EAAEU,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAChD2iB,UAAAA,IAAI,CAAC,mDAAmD,EAAEkG,KAAK,CAAC;AACxE,QAAA;AACM,QAAA,OAAO5E,QAAQ,GAAGjkB,KAAK,CAAC,CAAC,CAAC,GAAG,cAAc;AACjD,MAAA;MAEI,OAAO8oB,OAAA,CACJ3pB,KAAK,CAAC,KAAK,CAAA,CACX8pB,IAAI,CAAEC,MAAM,IAAKR,kBAAkB,CAACQ,MAAM,CAAC,IAAIF,WAAW,CAACE,MAAM,CAAC,CAAC;AAC1E,IAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACE,IAAA,SAASC,SAASA,CAACC,kBAAkB,EAAEC,aAAa,EAAEC,cAAc,EAAE;MACpE,IAAIrb,IAAI,GAAG,EAAE;MACb,IAAI0a,YAAY,GAAG,EAAE;AACrB,MAAA,IAAI,OAAOU,aAAa,KAAK,QAAQ,EAAE;AACrCpb,QAAAA,IAAI,GAAGmb,kBAAkB;QACzBE,cAAc,GAAGD,aAAa,CAACC,cAAc;QAC7CX,YAAY,GAAGU,aAAa,CAACpF,QAAQ;AAC3C,MAAA,CAAK,MAAM;AACX;AACMpB,QAAAA,UAAU,CAAC,QAAQ,EAAE,qDAAqD,CAAC;AAC3EA,QAAAA,UAAU,CAAC,QAAQ,EAAE,uGAAuG,CAAC;AAC7H8F,QAAAA,YAAY,GAAGS,kBAAkB;AACjCnb,QAAAA,IAAI,GAAGob,aAAa;AAC1B,MAAA;;AAEA;AACA;MACI,IAAIC,cAAc,KAAK1P,SAAS,EAAE;AAAE0P,QAAAA,cAAc,GAAG,IAAI;AAAC,MAAA;;AAE9D;AACI,MAAA,MAAMC,OAAO,GAAG;QACdtb,IAAI;AACJgW,QAAAA,QAAQ,EAAE0E;OACX;AACL;AACA;AACIa,MAAAA,IAAI,CAAC,kBAAkB,EAAED,OAAO,CAAC;;AAErC;AACA;MACI,MAAMnqB,MAAM,GAAGmqB,OAAO,CAACnqB,MAAA,GACnBmqB,OAAO,CAACnqB,MAAA,GACRqqB,UAAU,CAACF,OAAO,CAACtF,QAAQ,EAAEsF,OAAO,CAACtb,IAAI,EAAEqb,cAAc,CAAC;AAE9DlqB,MAAAA,MAAM,CAAC6O,IAAI,GAAGsb,OAAO,CAACtb,IAAI;AAC9B;AACIub,MAAAA,IAAI,CAAC,iBAAiB,EAAEpqB,MAAM,CAAC;AAE/B,MAAA,OAAOA,MAAM;AACjB,IAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACE,SAASqqB,UAAUA,CAACd,YAAY,EAAEe,eAAe,EAAEJ,cAAc,EAAEK,YAAY,EAAE;AAC/E,MAAA,MAAMC,WAAW,GAAGnsB,MAAM,CAACyc,MAAM,CAAC,IAAI,CAAC;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACI,MAAA,SAAS2P,WAAWA,CAAClQ,IAAI,EAAEmQ,SAAS,EAAE;AACpC,QAAA,OAAOnQ,IAAI,CAACsH,QAAQ,CAAC6I,SAAS,CAAC;AACrC,MAAA;MAEI,SAASC,eAAeA,GAAG;AACzB,QAAA,IAAI,CAAClO,GAAG,CAACoF,QAAQ,EAAE;AACjBpE,UAAAA,OAAO,CAAC5B,OAAO,CAAC+O,UAAU,CAAC;AAC3B,UAAA;AACR,QAAA;QAEM,IAAIlF,SAAS,GAAG,CAAC;AACjBjJ,QAAAA,GAAG,CAAC0K,gBAAgB,CAACzB,SAAS,GAAG,CAAC;QAClC,IAAI9kB,KAAK,GAAG6b,GAAG,CAAC0K,gBAAgB,CAACtmB,IAAI,CAAC+pB,UAAU,CAAC;QACjD,IAAI1rB,GAAG,GAAG,EAAE;AAEZ,QAAA,OAAO0B,KAAK,EAAE;UACZ1B,GAAG,IAAI0rB,UAAU,CAACznB,SAAS,CAACuiB,SAAS,EAAE9kB,KAAK,CAACG,KAAK,CAAC;AACnD,UAAA,MAAMJ,IAAI,GAAGkkB,QAAQ,CAACG,gBAAgB,GAAGpkB,KAAK,CAAC,CAAC,CAAC,CAAC2N,WAAW,EAAE,GAAG3N,KAAK,CAAC,CAAC,CAAC;AAC1E,UAAA,MAAM0Y,IAAI,GAAGmR,WAAW,CAAChO,GAAG,EAAE9b,IAAI,CAAC;AACnC,UAAA,IAAI2Y,IAAI,EAAE;AACR,YAAA,MAAM,CAACuR,IAAI,EAAEC,gBAAgB,CAAC,GAAGxR,IAAI;AACrCmE,YAAAA,OAAO,CAAC5B,OAAO,CAAC3c,GAAG,CAAC;AACpBA,YAAAA,GAAG,GAAG,EAAE;AAERsrB,YAAAA,WAAW,CAAC7pB,IAAI,CAAC,GAAG,CAAC6pB,WAAW,CAAC7pB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YAChD,IAAI6pB,WAAW,CAAC7pB,IAAI,CAAC,IAAI2nB,gBAAgB,EAAE7I,SAAS,IAAIqL,gBAAgB;AACxE,YAAA,IAAID,IAAI,CAAC1V,UAAU,CAAC,GAAG,CAAC,EAAE;AACpC;AACA;AACYjW,cAAAA,GAAG,IAAI0B,KAAK,CAAC,CAAC,CAAC;AAC3B,YAAA,CAAW,MAAM;cACL,MAAMmqB,QAAQ,GAAGlG,QAAQ,CAAC6C,gBAAgB,CAACmD,IAAI,CAAC,IAAIA,IAAI;AACxDG,cAAAA,WAAW,CAACpqB,KAAK,CAAC,CAAC,CAAC,EAAEmqB,QAAQ,CAAC;AAC3C,YAAA;AACA,UAAA,CAAS,MAAM;AACL7rB,YAAAA,GAAG,IAAI0B,KAAK,CAAC,CAAC,CAAC;AACzB,UAAA;AACQ8kB,UAAAA,SAAS,GAAGjJ,GAAG,CAAC0K,gBAAgB,CAACzB,SAAS;UAC1C9kB,KAAK,GAAG6b,GAAG,CAAC0K,gBAAgB,CAACtmB,IAAI,CAAC+pB,UAAU,CAAC;AACrD,QAAA;AACM1rB,QAAAA,GAAG,IAAI0rB,UAAU,CAACznB,SAAS,CAACuiB,SAAS,CAAC;AACtCjI,QAAAA,OAAO,CAAC5B,OAAO,CAAC3c,GAAG,CAAC;AAC1B,MAAA;MAEI,SAAS+rB,kBAAkBA,GAAG;QAC5B,IAAIL,UAAU,KAAK,EAAE,EAAE;AAC7B;QACM,IAAI5qB,MAAM,GAAG,IAAI;AAEjB,QAAA,IAAI,OAAOyc,GAAG,CAACyO,WAAW,KAAK,QAAQ,EAAE;AACvC,UAAA,IAAI,CAACzC,SAAS,CAAChM,GAAG,CAACyO,WAAW,CAAC,EAAE;AAC/BzN,YAAAA,OAAO,CAAC5B,OAAO,CAAC+O,UAAU,CAAC;AAC3B,YAAA;AACV,UAAA;AACQ5qB,UAAAA,MAAM,GAAGqqB,UAAU,CAAC5N,GAAG,CAACyO,WAAW,EAAEN,UAAU,EAAE,IAAI,EAAEO,aAAa,CAAC1O,GAAG,CAACyO,WAAW,CAAC,CAAC;UACtFC,aAAa,CAAC1O,GAAG,CAACyO,WAAW,CAAC,8BAAgClrB,MAAM,CAACorB,IAAK;AAClF,QAAA,CAAO,MAAM;AACLprB,UAAAA,MAAM,GAAGqrB,aAAa,CAACT,UAAU,EAAEnO,GAAG,CAACyO,WAAW,CAAC7qB,MAAM,GAAGoc,GAAG,CAACyO,WAAW,GAAG,IAAI,CAAC;AAC3F,QAAA;;AAEA;AACA;AACA;AACA;AACM,QAAA,IAAIzO,GAAG,CAACgD,SAAS,GAAG,CAAC,EAAE;UACrBA,SAAS,IAAIzf,MAAM,CAACyf,SAAS;AACrC,QAAA;QACMhC,OAAO,CAACD,gBAAgB,CAACxd,MAAM,CAACsrB,QAAQ,EAAEtrB,MAAM,CAAC6kB,QAAQ,CAAC;AAChE,MAAA;MAEI,SAAS0G,aAAaA,GAAG;AACvB,QAAA,IAAI9O,GAAG,CAACyO,WAAW,IAAI,IAAI,EAAE;AAC3BD,UAAAA,kBAAkB,EAAE;AAC5B,QAAA,CAAO,MAAM;AACLN,UAAAA,eAAe,EAAE;AACzB,QAAA;AACMC,QAAAA,UAAU,GAAG,EAAE;AACrB,MAAA;;AAEA;AACA;AACA;AACA;AACI,MAAA,SAASI,WAAWA,CAACjI,OAAO,EAAE7H,KAAK,EAAE;QACnC,IAAI6H,OAAO,KAAK,EAAE,EAAE;AAEpBtF,QAAAA,OAAO,CAACH,UAAU,CAACpC,KAAK,CAAC;AACzBuC,QAAAA,OAAO,CAAC5B,OAAO,CAACkH,OAAO,CAAC;QACxBtF,OAAO,CAACF,QAAQ,EAAE;AACxB,MAAA;;AAEA;AACA;AACA;AACA;AACI,MAAA,SAASiO,cAAcA,CAACtQ,KAAK,EAAEta,KAAK,EAAE;QACpC,IAAIF,CAAC,GAAG,CAAC;AACT,QAAA,MAAMoW,GAAG,GAAGlW,KAAK,CAACP,MAAM,GAAG,CAAC;QAC5B,OAAOK,CAAC,IAAIoW,GAAG,EAAE;AACf,UAAA,IAAI,CAACoE,KAAK,CAAC8I,KAAK,CAACtjB,CAAC,CAAC,EAAE;AAAEA,YAAAA,CAAC,EAAE;AAAE,YAAA;AAAS,UAAA;AACrC,UAAA,MAAM+qB,KAAK,GAAG5G,QAAQ,CAAC6C,gBAAgB,CAACxM,KAAK,CAACxa,CAAC,CAAC,CAAC,IAAIwa,KAAK,CAACxa,CAAC,CAAC;AAC7D,UAAA,MAAMob,IAAI,GAAGlb,KAAK,CAACF,CAAC,CAAC;AACrB,UAAA,IAAI+qB,KAAK,EAAE;AACTT,YAAAA,WAAW,CAAClP,IAAI,EAAE2P,KAAK,CAAC;AAClC,UAAA,CAAS,MAAM;AACLb,YAAAA,UAAU,GAAG9O,IAAI;AACjB6O,YAAAA,eAAe,EAAE;AACjBC,YAAAA,UAAU,GAAG,EAAE;AACzB,UAAA;AACQlqB,UAAAA,CAAC,EAAE;AACX,QAAA;AACA,MAAA;;AAEA;AACA;AACA;AACA;AACI,MAAA,SAASgrB,YAAYA,CAACnR,IAAI,EAAE3Z,KAAK,EAAE;QACjC,IAAI2Z,IAAI,CAACW,KAAK,IAAI,OAAOX,IAAI,CAACW,KAAK,KAAK,QAAQ,EAAE;AAChDuC,UAAAA,OAAO,CAAC1B,QAAQ,CAAC8I,QAAQ,CAAC6C,gBAAgB,CAACnN,IAAI,CAACW,KAAK,CAAC,IAAIX,IAAI,CAACW,KAAK,CAAC;AAC7E,QAAA;QACM,IAAIX,IAAI,CAAC8J,UAAU,EAAE;AAC3B;AACQ,UAAA,IAAI9J,IAAI,CAAC8J,UAAU,CAACM,KAAK,EAAE;AACzBqG,YAAAA,WAAW,CAACJ,UAAU,EAAE/F,QAAQ,CAAC6C,gBAAgB,CAACnN,IAAI,CAAC8J,UAAU,CAACM,KAAK,CAAC,IAAIpK,IAAI,CAAC8J,UAAU,CAACM,KAAK,CAAC;AAClGiG,YAAAA,UAAU,GAAG,EAAE;AACzB,UAAA,CAAS,MAAM,IAAIrQ,IAAI,CAAC8J,UAAU,CAACJ,MAAM,EAAE;AAC3C;AACUuH,YAAAA,cAAc,CAACjR,IAAI,CAAC8J,UAAU,EAAEzjB,KAAK,CAAC;AACtCgqB,YAAAA,UAAU,GAAG,EAAE;AACzB,UAAA;AACA,QAAA;AAEMnO,QAAAA,GAAG,GAAGpe,MAAM,CAACyc,MAAM,CAACP,IAAI,EAAE;AAAEoH,UAAAA,MAAM,EAAE;AAAEhkB,YAAAA,KAAK,EAAE8e;AAAG;SAAI,CAAC;AACrD,QAAA,OAAOA,GAAG;AAChB,MAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACI,MAAA,SAASkP,SAASA,CAACpR,IAAI,EAAE3Z,KAAK,EAAEgrB,kBAAkB,EAAE;QAClD,IAAIC,OAAO,GAAG1W,UAAU,CAACoF,IAAI,CAAC+M,KAAK,EAAEsE,kBAAkB,CAAC;AAExD,QAAA,IAAIC,OAAO,EAAE;AACX,UAAA,IAAItR,IAAI,CAAC,QAAQ,CAAC,EAAE;AAClB,YAAA,MAAMoF,IAAI,GAAG,IAAIrF,QAAQ,CAACC,IAAI,CAAC;AAC/BA,YAAAA,IAAI,CAAC,QAAQ,CAAC,CAAC3Z,KAAK,EAAE+e,IAAI,CAAC;AAC3B,YAAA,IAAIA,IAAI,CAAClF,cAAc,EAAEoR,OAAO,GAAG,KAAK;AAClD,UAAA;AAEQ,UAAA,IAAIA,OAAO,EAAE;AACX,YAAA,OAAOtR,IAAI,CAAC8H,UAAU,IAAI9H,IAAI,CAACoH,MAAM,EAAE;cACrCpH,IAAI,GAAGA,IAAI,CAACoH,MAAM;AAC9B,YAAA;AACU,YAAA,OAAOpH,IAAI;AACrB,UAAA;AACA,QAAA;AACA;AACA;QACM,IAAIA,IAAI,CAAC8M,cAAc,EAAE;UACvB,OAAOsE,SAAS,CAACpR,IAAI,CAACoH,MAAM,EAAE/gB,KAAK,EAAEgrB,kBAAkB,CAAC;AAChE,QAAA;AACA,MAAA;;AAEA;AACA;AACA;AACA;AACA;MACI,SAASE,QAAQA,CAACvN,MAAM,EAAE;AACxB,QAAA,IAAI9B,GAAG,CAAC0J,OAAO,CAACF,UAAU,KAAK,CAAC,EAAE;AACxC;AACA;AACQ2E,UAAAA,UAAU,IAAIrM,MAAM,CAAC,CAAC,CAAC;AACvB,UAAA,OAAO,CAAC;AAChB,QAAA,CAAO,MAAM;AACb;AACA;AACQwN,UAAAA,wBAAwB,GAAG,IAAI;AAC/B,UAAA,OAAO,CAAC;AAChB,QAAA;AACA,MAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;MACI,SAASC,YAAYA,CAACprB,KAAK,EAAE;AAC3B,QAAA,MAAM2d,MAAM,GAAG3d,KAAK,CAAC,CAAC,CAAC;AACvB,QAAA,MAAMqrB,OAAO,GAAGrrB,KAAK,CAAC8lB,IAAI;AAE1B,QAAA,MAAM/G,IAAI,GAAG,IAAIrF,QAAQ,CAAC2R,OAAO,CAAC;AACxC;QACM,MAAMC,eAAe,GAAG,CAACD,OAAO,CAACrK,aAAa,EAAEqK,OAAO,CAAC,UAAU,CAAC,CAAC;AACpE,QAAA,KAAK,MAAME,EAAE,IAAID,eAAe,EAAE;UAChC,IAAI,CAACC,EAAE,EAAE;AACTA,UAAAA,EAAE,CAACvrB,KAAK,EAAE+e,IAAI,CAAC;UACf,IAAIA,IAAI,CAAClF,cAAc,EAAE,OAAOqR,QAAQ,CAACvN,MAAM,CAAC;AACxD,QAAA;QAEM,IAAI0N,OAAO,CAAC9H,IAAI,EAAE;AAChByG,UAAAA,UAAU,IAAIrM,MAAM;AAC5B,QAAA,CAAO,MAAM;UACL,IAAI0N,OAAO,CAAC7L,YAAY,EAAE;AACxBwK,YAAAA,UAAU,IAAIrM,MAAM;AAC9B,UAAA;AACQgN,UAAAA,aAAa,EAAE;UACf,IAAI,CAACU,OAAO,CAAC7H,WAAW,IAAI,CAAC6H,OAAO,CAAC7L,YAAY,EAAE;AACjDwK,YAAAA,UAAU,GAAGrM,MAAM;AAC7B,UAAA;AACA,QAAA;AACMmN,QAAAA,YAAY,CAACO,OAAO,EAAErrB,KAAK,CAAC;QAC5B,OAAOqrB,OAAO,CAAC7H,WAAW,GAAG,CAAC,GAAG7F,MAAM,CAACle,MAAM;AACpD,MAAA;;AAEA;AACA;AACA;AACA;AACA;MACI,SAAS+rB,UAAUA,CAACxrB,KAAK,EAAE;AACzB,QAAA,MAAM2d,MAAM,GAAG3d,KAAK,CAAC,CAAC,CAAC;QACvB,MAAMgrB,kBAAkB,GAAGtB,eAAe,CAACnnB,SAAS,CAACvC,KAAK,CAACG,KAAK,CAAC;QAEjE,MAAMsrB,OAAO,GAAGV,SAAS,CAAClP,GAAG,EAAE7b,KAAK,EAAEgrB,kBAAkB,CAAC;QACzD,IAAI,CAACS,OAAO,EAAE;AAAE,UAAA,OAAOjE,QAAQ;AAAC,QAAA;QAEhC,MAAM/T,MAAM,GAAGoI,GAAG;QAClB,IAAIA,GAAG,CAACc,QAAQ,IAAId,GAAG,CAACc,QAAQ,CAACoH,KAAK,EAAE;AACtC4G,UAAAA,aAAa,EAAE;UACfP,WAAW,CAACzM,MAAM,EAAE9B,GAAG,CAACc,QAAQ,CAACoH,KAAK,CAAC;QAC/C,CAAO,MAAM,IAAIlI,GAAG,CAACc,QAAQ,IAAId,GAAG,CAACc,QAAQ,CAAC0G,MAAM,EAAE;AAC9CsH,UAAAA,aAAa,EAAE;AACfC,UAAAA,cAAc,CAAC/O,GAAG,CAACc,QAAQ,EAAE3c,KAAK,CAAC;AAC3C,QAAA,CAAO,MAAM,IAAIyT,MAAM,CAAC8P,IAAI,EAAE;AACtByG,UAAAA,UAAU,IAAIrM,MAAM;AAC5B,QAAA,CAAO,MAAM;UACL,IAAI,EAAElK,MAAM,CAACmQ,SAAS,IAAInQ,MAAM,CAACkQ,UAAU,CAAC,EAAE;AAC5CqG,YAAAA,UAAU,IAAIrM,MAAM;AAC9B,UAAA;AACQgN,UAAAA,aAAa,EAAE;UACf,IAAIlX,MAAM,CAACkQ,UAAU,EAAE;AACrBqG,YAAAA,UAAU,GAAGrM,MAAM;AAC7B,UAAA;AACA,QAAA;QACM,GAAG;UACD,IAAI9B,GAAG,CAACvB,KAAK,EAAE;YACbuC,OAAO,CAACvB,SAAS,EAAE;AAC7B,UAAA;UACQ,IAAI,CAACO,GAAG,CAAC0H,IAAI,IAAI,CAAC1H,GAAG,CAACyO,WAAW,EAAE;YACjCzL,SAAS,IAAIhD,GAAG,CAACgD,SAAS;AACpC,UAAA;UACQhD,GAAG,GAAGA,GAAG,CAACkF,MAAM;AACxB,QAAA,CAAO,QAAQlF,GAAG,KAAK4P,OAAO,CAAC1K,MAAM;QAC/B,IAAI0K,OAAO,CAAClK,MAAM,EAAE;AAClBuJ,UAAAA,YAAY,CAACW,OAAO,CAAClK,MAAM,EAAEvhB,KAAK,CAAC;AAC3C,QAAA;QACM,OAAOyT,MAAM,CAACmQ,SAAS,GAAG,CAAC,GAAGjG,MAAM,CAACle,MAAM;AACjD,MAAA;MAEI,SAASisB,oBAAoBA,GAAG;QAC9B,MAAMC,IAAI,GAAG,EAAE;AACf,QAAA,KAAK,IAAIC,OAAO,GAAG/P,GAAG,EAAE+P,OAAO,KAAK3H,QAAQ,EAAE2H,OAAO,GAAGA,OAAO,CAAC7K,MAAM,EAAE;UACtE,IAAI6K,OAAO,CAACtR,KAAK,EAAE;AACjBqR,YAAAA,IAAI,CAACE,OAAO,CAACD,OAAO,CAACtR,KAAK,CAAC;AACrC,UAAA;AACA,QAAA;QACMqR,IAAI,CAACrS,OAAO,CAAC7D,IAAI,IAAIoH,OAAO,CAAC1B,QAAQ,CAAC1F,IAAI,CAAC,CAAC;AAClD,MAAA;;AAEA;MACI,IAAIqW,SAAS,GAAG,EAAE;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACI,MAAA,SAASC,aAAaA,CAACC,eAAe,EAAEhsB,KAAK,EAAE;AAC7C,QAAA,MAAM2d,MAAM,GAAG3d,KAAK,IAAIA,KAAK,CAAC,CAAC,CAAC;;AAEtC;AACMgqB,QAAAA,UAAU,IAAIgC,eAAe;QAE7B,IAAIrO,MAAM,IAAI,IAAI,EAAE;AAClBgN,UAAAA,aAAa,EAAE;AACf,UAAA,OAAO,CAAC;AAChB,QAAA;;AAEA;AACA;AACA;AACA;QACM,IAAImB,SAAS,CAAC7b,IAAI,KAAK,OAAO,IAAIjQ,KAAK,CAACiQ,IAAI,KAAK,KAAK,IAAI6b,SAAS,CAAC3rB,KAAK,KAAKH,KAAK,CAACG,KAAK,IAAIwd,MAAM,KAAK,EAAE,EAAE;AAClH;AACQqM,UAAAA,UAAU,IAAIN,eAAe,CAAC/pB,KAAK,CAACK,KAAK,CAACG,KAAK,EAAEH,KAAK,CAACG,KAAK,GAAG,CAAC,CAAC;UACjE,IAAI,CAAC6nB,SAAS,EAAE;AACxB;YACU,MAAMiE,GAAG,GAAG,IAAIxd,KAAK,CAAC,CAAA,qBAAA,EAAwBka,YAAY,GAAG,CAAC;YAC9DsD,GAAG,CAACtD,YAAY,GAAGA,YAAY;AAC/BsD,YAAAA,GAAG,CAACC,OAAO,GAAGJ,SAAS,CAAChG,IAAI;AAC5B,YAAA,MAAMmG,GAAG;AACnB,UAAA;AACQ,UAAA,OAAO,CAAC;AAChB,QAAA;AACMH,QAAAA,SAAS,GAAG9rB,KAAK;AAEjB,QAAA,IAAIA,KAAK,CAACiQ,IAAI,KAAK,OAAO,EAAE;UAC1B,OAAOmb,YAAY,CAACprB,KAAK,CAAC;QAClC,CAAO,MAAM,IAAIA,KAAK,CAACiQ,IAAI,KAAK,SAAS,IAAI,CAACqZ,cAAc,EAAE;AAC9D;AACA;AACQ,UAAA,MAAM2C,GAAG,GAAG,IAAIxd,KAAK,CAAC,kBAAkB,GAAGkP,MAAM,GAAG,cAAc,IAAI9B,GAAG,CAACvB,KAAK,IAAI,WAAW,CAAC,GAAG,GAAG,CAAC;UACtG2R,GAAG,CAACtS,IAAI,GAAGkC,GAAG;AACd,UAAA,MAAMoQ,GAAG;AACjB,QAAA,CAAO,MAAM,IAAIjsB,KAAK,CAACiQ,IAAI,KAAK,KAAK,EAAE;AAC/B,UAAA,MAAMkc,SAAS,GAAGX,UAAU,CAACxrB,KAAK,CAAC;UACnC,IAAImsB,SAAS,KAAK3E,QAAQ,EAAE;AAC1B,YAAA,OAAO2E,SAAS;AAC1B,UAAA;AACA,QAAA;;AAEA;AACA;AACA;QACM,IAAInsB,KAAK,CAACiQ,IAAI,KAAK,SAAS,IAAI0N,MAAM,KAAK,EAAE,EAAE;AACrD;AACQqM,UAAAA,UAAU,IAAI,IAAI;AAClB,UAAA,OAAO,CAAC;AAChB,QAAA;;AAEA;AACA;AACA;AACA;QACM,IAAIoC,UAAU,GAAG,MAAM,IAAIA,UAAU,GAAGpsB,KAAK,CAACG,KAAK,GAAG,CAAC,EAAE;AACvD,UAAA,MAAM8rB,GAAG,GAAG,IAAIxd,KAAK,CAAC,2DAA2D,CAAC;AAClF,UAAA,MAAMwd,GAAG;AACjB,QAAA;;AAEA;AACA;AACA;AACA;;AAEA;;AAGMjC,QAAAA,UAAU,IAAIrM,MAAM;QACpB,OAAOA,MAAM,CAACle,MAAM;AAC1B,MAAA;AAEI,MAAA,MAAMwkB,QAAQ,GAAG+E,WAAW,CAACL,YAAY,CAAC;MAC1C,IAAI,CAAC1E,QAAQ,EAAE;QACbjU,KAAK,CAACiY,kBAAkB,CAAC3oB,OAAO,CAAC,IAAI,EAAEqpB,YAAY,CAAC,CAAC;QACrD,MAAM,IAAIla,KAAK,CAAC,qBAAqB,GAAGka,YAAY,GAAG,GAAG,CAAC;AACjE,MAAA;AAEI,MAAA,MAAM0D,EAAE,GAAGrI,eAAe,CAACC,QAAQ,CAAC;MACpC,IAAI7kB,MAAM,GAAG,EAAE;AACnB;AACI,MAAA,IAAIyc,GAAG,GAAG8N,YAAY,IAAI0C,EAAE;AAChC;AACI,MAAA,MAAM9B,aAAa,GAAG,EAAE,CAAC;MACzB,MAAM1N,OAAO,GAAG,IAAItc,OAAO,CAACkoB,SAAS,CAACloB,OAAO,CAAC;AAC9CmrB,MAAAA,oBAAoB,EAAE;MACtB,IAAI1B,UAAU,GAAG,EAAE;MACnB,IAAInL,SAAS,GAAG,CAAC;MACjB,IAAI1e,KAAK,GAAG,CAAC;MACb,IAAIisB,UAAU,GAAG,CAAC;MAClB,IAAIjB,wBAAwB,GAAG,KAAK;MAEpC,IAAI;AACF,QAAA,IAAI,CAAClH,QAAQ,CAACqI,YAAY,EAAE;AAC1BzQ,UAAAA,GAAG,CAAC0J,OAAO,CAACE,WAAW,EAAE;UAEzB,SAAS;AACP2G,YAAAA,UAAU,EAAE;AACZ,YAAA,IAAIjB,wBAAwB,EAAE;AACxC;AACA;AACYA,cAAAA,wBAAwB,GAAG,KAAK;AAC5C,YAAA,CAAW,MAAM;AACLtP,cAAAA,GAAG,CAAC0J,OAAO,CAACE,WAAW,EAAE;AACrC,YAAA;AACU5J,YAAAA,GAAG,CAAC0J,OAAO,CAACT,SAAS,GAAG3kB,KAAK;YAE7B,MAAMH,KAAK,GAAG6b,GAAG,CAAC0J,OAAO,CAACtlB,IAAI,CAACypB,eAAe,CAAC;AACzD;;YAEU,IAAI,CAAC1pB,KAAK,EAAE;YAEZ,MAAMshB,WAAW,GAAGoI,eAAe,CAACnnB,SAAS,CAACpC,KAAK,EAAEH,KAAK,CAACG,KAAK,CAAC;AACjE,YAAA,MAAMosB,cAAc,GAAGR,aAAa,CAACzK,WAAW,EAAEthB,KAAK,CAAC;AACxDG,YAAAA,KAAK,GAAGH,KAAK,CAACG,KAAK,GAAGosB,cAAc;AAC9C,UAAA;AACQR,UAAAA,aAAa,CAACrC,eAAe,CAACnnB,SAAS,CAACpC,KAAK,CAAC,CAAC;AACvD,QAAA,CAAO,MAAM;AACL8jB,UAAAA,QAAQ,CAACqI,YAAY,CAAC5C,eAAe,EAAE7M,OAAO,CAAC;AACvD,QAAA;QAEMA,OAAO,CAACG,QAAQ,EAAE;AAClB5d,QAAAA,MAAM,GAAGyd,OAAO,CAACC,MAAM,EAAE;QAEzB,OAAO;AACLmH,UAAAA,QAAQ,EAAE0E,YAAY;AACtB5rB,UAAAA,KAAK,EAAEqC,MAAM;UACbyf,SAAS;AACTK,UAAAA,OAAO,EAAE,KAAK;AACdwL,UAAAA,QAAQ,EAAE7N,OAAO;AACjB2N,UAAAA,IAAI,EAAE3O;SACP;MACP,CAAK,CAAC,OAAOoQ,GAAG,EAAE;AACZ,QAAA,IAAIA,GAAG,CAACxJ,OAAO,IAAIwJ,GAAG,CAACxJ,OAAO,CAAC1gB,QAAQ,CAAC,SAAS,CAAC,EAAE;UAClD,OAAO;AACLkiB,YAAAA,QAAQ,EAAE0E,YAAY;AACtB5rB,YAAAA,KAAK,EAAEuqB,MAAM,CAACoC,eAAe,CAAC;AAC9BxK,YAAAA,OAAO,EAAE,IAAI;AACbL,YAAAA,SAAS,EAAE,CAAC;AACZ2N,YAAAA,UAAU,EAAE;cACV/J,OAAO,EAAEwJ,GAAG,CAACxJ,OAAO;cACpBtiB,KAAK;AACLopB,cAAAA,OAAO,EAAEG,eAAe,CAAC/pB,KAAK,CAACQ,KAAK,GAAG,GAAG,EAAEA,KAAK,GAAG,GAAG,CAAC;cACxDwZ,IAAI,EAAEsS,GAAG,CAACtS,IAAI;AACd8S,cAAAA,WAAW,EAAErtB;aACd;AACDsrB,YAAAA,QAAQ,EAAE7N;WACX;QACT,CAAO,MAAM,IAAImL,SAAS,EAAE;UACpB,OAAO;AACL/D,YAAAA,QAAQ,EAAE0E,YAAY;AACtB5rB,YAAAA,KAAK,EAAEuqB,MAAM,CAACoC,eAAe,CAAC;AAC9BxK,YAAAA,OAAO,EAAE,KAAK;AACdL,YAAAA,SAAS,EAAE,CAAC;AACZ6N,YAAAA,WAAW,EAAET,GAAG;AAChBvB,YAAAA,QAAQ,EAAE7N,OAAO;AACjB2N,YAAAA,IAAI,EAAE3O;WACP;AACT,QAAA,CAAO,MAAM;AACL,UAAA,MAAMoQ,GAAG;AACjB,QAAA;AACA,MAAA;AACA,IAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;IACE,SAASU,uBAAuBA,CAAC1e,IAAI,EAAE;AACrC,MAAA,MAAM7O,MAAM,GAAG;AACbrC,QAAAA,KAAK,EAAEuqB,MAAM,CAACrZ,IAAI,CAAC;AACnBiR,QAAAA,OAAO,EAAE,KAAK;AACdL,QAAAA,SAAS,EAAE,CAAC;AACZ2L,QAAAA,IAAI,EAAEtC,kBAAkB;AACxBwC,QAAAA,QAAQ,EAAE,IAAInqB,OAAO,CAACkoB,SAAS,CAACloB,OAAO;OACxC;AACDnB,MAAAA,MAAM,CAACsrB,QAAQ,CAACzP,OAAO,CAAChN,IAAI,CAAC;AAC7B,MAAA,OAAO7O,MAAM;AACjB,IAAA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AAGE,IAAA,SAASqrB,aAAaA,CAACxc,IAAI,EAAE2e,cAAc,EAAE;AAC3CA,MAAAA,cAAc,GAAGA,cAAc,IAAIrsB,OAAO,CAACsnB,SAAS,IAAIpqB,MAAM,CAACkF,IAAI,CAACklB,SAAS,CAAC;AAC9E,MAAA,MAAMgF,SAAS,GAAGF,uBAAuB,CAAC1e,IAAI,CAAC;MAE/C,MAAM6e,OAAO,GAAGF,cAAc,CAACG,MAAM,CAAC/D,WAAW,CAAC,CAAC+D,MAAM,CAACC,aAAa,CAAC,CAAC9rB,GAAG,CAACqY,IAAI,IAC/EkQ,UAAU,CAAClQ,IAAI,EAAEtL,IAAI,EAAE,KAAK,CAClC,CAAK;AACD6e,MAAAA,OAAO,CAACjB,OAAO,CAACgB,SAAS,CAAC,CAAC;;MAE3B,MAAMI,MAAM,GAAGH,OAAO,CAACI,IAAI,CAAC,CAACxpB,CAAC,EAAED,CAAC,KAAK;AAC1C;AACM,QAAA,IAAIC,CAAC,CAACmb,SAAS,KAAKpb,CAAC,CAACob,SAAS,EAAE,OAAOpb,CAAC,CAACob,SAAS,GAAGnb,CAAC,CAACmb,SAAS;;AAEvE;AACA;AACM,QAAA,IAAInb,CAAC,CAACugB,QAAQ,IAAIxgB,CAAC,CAACwgB,QAAQ,EAAE;AAC5B,UAAA,IAAI+E,WAAW,CAACtlB,CAAC,CAACugB,QAAQ,CAAC,CAACkJ,UAAU,KAAK1pB,CAAC,CAACwgB,QAAQ,EAAE;AACrD,YAAA,OAAO,CAAC;AAClB,UAAA,CAAS,MAAM,IAAI+E,WAAW,CAACvlB,CAAC,CAACwgB,QAAQ,CAAC,CAACkJ,UAAU,KAAKzpB,CAAC,CAACugB,QAAQ,EAAE;AAC5D,YAAA,OAAO,EAAE;AACnB,UAAA;AACA,QAAA;;AAEA;AACA;AACA;AACA;AACM,QAAA,OAAO,CAAC;AACd,MAAA,CAAK,CAAC;AAEF,MAAA,MAAM,CAACmJ,IAAI,EAAEC,UAAU,CAAC,GAAGJ,MAAM;;AAErC;MACI,MAAM7tB,MAAM,GAAGguB,IAAI;MACnBhuB,MAAM,CAACiuB,UAAU,GAAGA,UAAU;AAE9B,MAAA,OAAOjuB,MAAM;AACjB,IAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACE,IAAA,SAASkuB,eAAeA,CAACC,OAAO,EAAEC,WAAW,EAAEC,UAAU,EAAE;MACzD,MAAMxJ,QAAQ,GAAIuJ,WAAW,IAAI1F,OAAO,CAAC0F,WAAW,CAAC,IAAKC,UAAU;AAEpEF,MAAAA,OAAO,CAACG,SAAS,CAACrY,GAAG,CAAC,MAAM,CAAC;MAC7BkY,OAAO,CAACG,SAAS,CAACrY,GAAG,CAAC,CAAA,SAAA,EAAY4O,QAAQ,EAAE,CAAC;AACjD,IAAA;;AAEA;AACA;AACA;AACA;AACA;IACE,SAAS0J,gBAAgBA,CAACJ,OAAO,EAAE;AACrC;MACI,IAAIlT,IAAI,GAAG,IAAI;AACf,MAAA,MAAM4J,QAAQ,GAAG2E,aAAa,CAAC2E,OAAO,CAAC;AAEvC,MAAA,IAAI7E,kBAAkB,CAACzE,QAAQ,CAAC,EAAE;MAElCuF,IAAI,CAAC,yBAAyB,EAC5B;AAAEhN,QAAAA,EAAE,EAAE+Q,OAAO;AAAEtJ,QAAAA;OAAU,CAAC;AAE5B,MAAA,IAAIsJ,OAAO,CAACK,OAAO,CAACC,WAAW,EAAE;AAC/BnL,QAAAA,OAAO,CAACE,GAAG,CAAC,wFAAwF,EAAE2K,OAAO,CAAC;AAC9G,QAAA;AACN,MAAA;;AAEA;AACA;AACA;AACA;AACA;AACI,MAAA,IAAIA,OAAO,CAAC9R,QAAQ,CAAChc,MAAM,GAAG,CAAC,EAAE;AAC/B,QAAA,IAAI,CAACc,OAAO,CAAC6nB,mBAAmB,EAAE;AAChC1F,UAAAA,OAAO,CAACC,IAAI,CAAC,+FAA+F,CAAC;AAC7GD,UAAAA,OAAO,CAACC,IAAI,CAAC,2DAA2D,CAAC;AACzED,UAAAA,OAAO,CAACC,IAAI,CAAC,kCAAkC,CAAC;AAChDD,UAAAA,OAAO,CAACC,IAAI,CAAC4K,OAAO,CAAC;AAC7B,QAAA;QACM,IAAIhtB,OAAO,CAAC8nB,kBAAkB,EAAE;UAC9B,MAAM4D,GAAG,GAAG,IAAI9E,kBAAkB,CAChC,kDAAkD,EAClDoG,OAAO,CAACO,SAClB,CAAS;AACD,UAAA,MAAM7B,GAAG;AACjB,QAAA;AACA,MAAA;AAEI5R,MAAAA,IAAI,GAAGkT,OAAO;AACd,MAAA,MAAMrS,IAAI,GAAGb,IAAI,CAAC0T,WAAW;AAC7B,MAAA,MAAM3uB,MAAM,GAAG6kB,QAAQ,GAAGkF,SAAS,CAACjO,IAAI,EAAE;QAAE+I,QAAQ;AAAEqF,QAAAA,cAAc,EAAE;AAAI,OAAE,CAAC,GAAGmB,aAAa,CAACvP,IAAI,CAAC;AAEnGqS,MAAAA,OAAO,CAACO,SAAS,GAAG1uB,MAAM,CAACrC,KAAK;AAChCwwB,MAAAA,OAAO,CAACK,OAAO,CAACC,WAAW,GAAG,KAAK;MACnCP,eAAe,CAACC,OAAO,EAAEtJ,QAAQ,EAAE7kB,MAAM,CAAC6kB,QAAQ,CAAC;MACnDsJ,OAAO,CAACnuB,MAAM,GAAG;QACf6kB,QAAQ,EAAE7kB,MAAM,CAAC6kB,QAAQ;AAC/B;QACMhH,EAAE,EAAE7d,MAAM,CAACyf,SAAS;QACpBA,SAAS,EAAEzf,MAAM,CAACyf;OACnB;MACD,IAAIzf,MAAM,CAACiuB,UAAU,EAAE;QACrBE,OAAO,CAACF,UAAU,GAAG;AACnBpJ,UAAAA,QAAQ,EAAE7kB,MAAM,CAACiuB,UAAU,CAACpJ,QAAQ;AACpCpF,UAAAA,SAAS,EAAEzf,MAAM,CAACiuB,UAAU,CAACxO;SAC9B;AACP,MAAA;MAEI2K,IAAI,CAAC,wBAAwB,EAAE;AAAEhN,QAAAA,EAAE,EAAE+Q,OAAO;QAAEnuB,MAAM;AAAE8b,QAAAA;OAAM,CAAC;AACjE,IAAA;;AAEA;AACA;AACA;AACA;AACA;IACE,SAAS8S,SAASA,CAACC,WAAW,EAAE;AAC9B1tB,MAAAA,OAAO,GAAGgnB,OAAO,CAAChnB,OAAO,EAAE0tB,WAAW,CAAC;AAC3C,IAAA;;AAEA;IACE,MAAMC,gBAAgB,GAAGA,MAAM;AAC7BC,MAAAA,YAAY,EAAE;AACdtL,MAAAA,UAAU,CAAC,QAAQ,EAAE,yDAAyD,CAAC;IACnF,CAAG;;AAEH;IACE,SAASuL,sBAAsBA,GAAG;AAChCD,MAAAA,YAAY,EAAE;AACdtL,MAAAA,UAAU,CAAC,QAAQ,EAAE,+DAA+D,CAAC;AACzF,IAAA;IAEE,IAAIwL,cAAc,GAAG,KAAK;;AAE5B;AACA;AACA;IACE,SAASF,YAAYA,GAAG;MACtB,SAASG,IAAIA,GAAG;AACpB;AACMH,QAAAA,YAAY,EAAE;AACpB,MAAA;;AAEA;AACI,MAAA,IAAII,QAAQ,CAACC,UAAU,KAAK,SAAS,EAAE;AAC3C;QACM,IAAI,CAACH,cAAc,EAAE;UACnBI,MAAM,CAACC,gBAAgB,CAAC,kBAAkB,EAAEJ,IAAI,EAAE,KAAK,CAAC;AAChE,QAAA;AACMD,QAAAA,cAAc,GAAG,IAAI;AACrB,QAAA;AACN,MAAA;MAEI,MAAMM,MAAM,GAAGJ,QAAQ,CAACK,gBAAgB,CAACruB,OAAO,CAACioB,WAAW,CAAC;AAC7DmG,MAAAA,MAAM,CAACrV,OAAO,CAACqU,gBAAgB,CAAC;AACpC,IAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACE,IAAA,SAASkB,gBAAgBA,CAAClG,YAAY,EAAEmG,kBAAkB,EAAE;MAC1D,IAAIC,IAAI,GAAG,IAAI;MACf,IAAI;AACFA,QAAAA,IAAI,GAAGD,kBAAkB,CAAClH,IAAI,CAAC;MACrC,CAAK,CAAC,OAAOoH,OAAO,EAAE;QAChBhf,KAAK,CAAC,uDAAuD,CAAC1Q,OAAO,CAAC,IAAI,EAAEqpB,YAAY,CAAC,CAAC;AAChG;QACM,IAAI,CAACX,SAAS,EAAE;AAAE,UAAA,MAAMgH,OAAO;AAAC,QAAA,CAAE,MAAM;UAAEhf,KAAK,CAACgf,OAAO,CAAC;AAAC,QAAA;AAC/D;AACA;AACA;AACA;AACMD,QAAAA,IAAI,GAAG7G,kBAAkB;AAC/B,MAAA;AACA;MACI,IAAI,CAAC6G,IAAI,CAACxV,IAAI,EAAEwV,IAAI,CAACxV,IAAI,GAAGoP,YAAY;AACxCd,MAAAA,SAAS,CAACc,YAAY,CAAC,GAAGoG,IAAI;MAC9BA,IAAI,CAACE,aAAa,GAAGH,kBAAkB,CAACI,IAAI,CAAC,IAAI,EAAEtH,IAAI,CAAC;MAExD,IAAImH,IAAI,CAACjH,OAAO,EAAE;AAChBqH,QAAAA,eAAe,CAACJ,IAAI,CAACjH,OAAO,EAAE;AAAEa,UAAAA;AAAY,SAAE,CAAC;AACrD,MAAA;AACA,IAAA;;AAEA;AACA;AACA;AACA;AACA;IACE,SAASyG,kBAAkBA,CAACzG,YAAY,EAAE;MACxC,OAAOd,SAAS,CAACc,YAAY,CAAC;MAC9B,KAAK,MAAM0G,KAAK,IAAI5xB,MAAM,CAACkF,IAAI,CAACmlB,OAAO,CAAC,EAAE;AACxC,QAAA,IAAIA,OAAO,CAACuH,KAAK,CAAC,KAAK1G,YAAY,EAAE;UACnC,OAAOb,OAAO,CAACuH,KAAK,CAAC;AAC7B,QAAA;AACA,MAAA;AACA,IAAA;;AAEA;AACA;AACA;IACE,SAASC,aAAaA,GAAG;AACvB,MAAA,OAAO7xB,MAAM,CAACkF,IAAI,CAACklB,SAAS,CAAC;AACjC,IAAA;;AAEA;AACA;AACA;AACA;IACE,SAASmB,WAAWA,CAACzP,IAAI,EAAE;MACzBA,IAAI,GAAG,CAACA,IAAI,IAAI,EAAE,EAAE5L,WAAW,EAAE;MACjC,OAAOka,SAAS,CAACtO,IAAI,CAAC,IAAIsO,SAAS,CAACC,OAAO,CAACvO,IAAI,CAAC,CAAC;AACtD,IAAA;;AAEA;AACA;AACA;AACA;AACA;IACE,SAAS4V,eAAeA,CAACI,SAAS,EAAE;AAAE5G,MAAAA;KAAc,EAAE;AACpD,MAAA,IAAI,OAAO4G,SAAS,KAAK,QAAQ,EAAE;QACjCA,SAAS,GAAG,CAACA,SAAS,CAAC;AAC7B,MAAA;AACIA,MAAAA,SAAS,CAACjW,OAAO,CAAC+V,KAAK,IAAI;QAAEvH,OAAO,CAACuH,KAAK,CAAC1hB,WAAW,EAAE,CAAC,GAAGgb,YAAY;OAAG,CAAC;AAChF,IAAA;;AAEA;AACA;AACA;AACA;IACE,SAASqE,aAAaA,CAACzT,IAAI,EAAE;AAC3B,MAAA,MAAMwV,IAAI,GAAG/F,WAAW,CAACzP,IAAI,CAAC;AAC9B,MAAA,OAAOwV,IAAI,IAAI,CAACA,IAAI,CAAC5G,iBAAiB;AAC1C,IAAA;;AAEA;AACA;AACA;AACA;AACA;IACE,SAASqH,gBAAgBA,CAACC,MAAM,EAAE;AACpC;MACI,IAAIA,MAAM,CAAC,uBAAuB,CAAC,IAAI,CAACA,MAAM,CAAC,yBAAyB,CAAC,EAAE;AACzEA,QAAAA,MAAM,CAAC,yBAAyB,CAAC,GAAI/W,IAAI,IAAK;AAC5C+W,UAAAA,MAAM,CAAC,uBAAuB,CAAC,CAC7BhyB,MAAM,CAACua,MAAM,CAAC;YAAE6Q,KAAK,EAAEnQ,IAAI,CAAC8D;WAAI,EAAE9D,IAAI,CAChD,CAAS;QACT,CAAO;AACP,MAAA;MACI,IAAI+W,MAAM,CAAC,sBAAsB,CAAC,IAAI,CAACA,MAAM,CAAC,wBAAwB,CAAC,EAAE;AACvEA,QAAAA,MAAM,CAAC,wBAAwB,CAAC,GAAI/W,IAAI,IAAK;AAC3C+W,UAAAA,MAAM,CAAC,sBAAsB,CAAC,CAC5BhyB,MAAM,CAACua,MAAM,CAAC;YAAE6Q,KAAK,EAAEnQ,IAAI,CAAC8D;WAAI,EAAE9D,IAAI,CAChD,CAAS;QACT,CAAO;AACP,MAAA;AACA,IAAA;;AAEA;AACA;AACA;IACE,SAASgX,SAASA,CAACD,MAAM,EAAE;MACzBD,gBAAgB,CAACC,MAAM,CAAC;AACxB1H,MAAAA,OAAO,CAACtpB,IAAI,CAACgxB,MAAM,CAAC;AACxB,IAAA;;AAEA;AACA;AACA;IACE,SAASE,YAAYA,CAACF,MAAM,EAAE;AAC5B,MAAA,MAAMtvB,KAAK,GAAG4nB,OAAO,CAAC6H,OAAO,CAACH,MAAM,CAAC;AACrC,MAAA,IAAItvB,KAAK,KAAK,EAAE,EAAE;AAChB4nB,QAAAA,OAAO,CAAC3nB,MAAM,CAACD,KAAK,EAAE,CAAC,CAAC;AAC9B,MAAA;AACA,IAAA;;AAEA;AACA;AACA;AACA;AACA;AACE,IAAA,SAASqpB,IAAIA,CAACqG,KAAK,EAAExS,IAAI,EAAE;MACzB,MAAMkO,EAAE,GAAGsE,KAAK;AAChB9H,MAAAA,OAAO,CAACzO,OAAO,CAAC,UAASmW,MAAM,EAAE;AAC/B,QAAA,IAAIA,MAAM,CAAClE,EAAE,CAAC,EAAE;AACdkE,UAAAA,MAAM,CAAClE,EAAE,CAAC,CAAClO,IAAI,CAAC;AACxB,QAAA;AACA,MAAA,CAAK,CAAC;AACN,IAAA;;AAEA;AACA;AACA;AACA;IACE,SAASyS,uBAAuBA,CAACtT,EAAE,EAAE;AACnCqG,MAAAA,UAAU,CAAC,QAAQ,EAAE,kDAAkD,CAAC;AACxEA,MAAAA,UAAU,CAAC,QAAQ,EAAE,kCAAkC,CAAC;MAExD,OAAO8K,gBAAgB,CAACnR,EAAE,CAAC;AAC/B,IAAA;;AAEA;AACE/e,IAAAA,MAAM,CAACua,MAAM,CAAC4P,IAAI,EAAE;MAClBuB,SAAS;MACTsB,aAAa;MACb0D,YAAY;MACZR,gBAAgB;AACpB;AACIoC,MAAAA,cAAc,EAAED,uBAAuB;MACvC9B,SAAS;MACTE,gBAAgB;MAChBE,sBAAsB;MACtBS,gBAAgB;MAChBO,kBAAkB;MAClBE,aAAa;MACbtG,WAAW;MACXmG,eAAe;MACfnC,aAAa;MACbzF,OAAO;MACPmI,SAAS;AACTC,MAAAA;AACJ,KAAG,CAAC;IAEF/H,IAAI,CAACoI,SAAS,GAAG,YAAW;AAAEhI,MAAAA,SAAS,GAAG,KAAK;IAAC,CAAE;IAClDJ,IAAI,CAACqI,QAAQ,GAAG,YAAW;AAAEjI,MAAAA,SAAS,GAAG,IAAI;IAAC,CAAE;IAChDJ,IAAI,CAACsI,aAAa,GAAGhd,OAAO;IAE5B0U,IAAI,CAAC3J,KAAK,GAAG;AACXtf,MAAAA,MAAM,EAAEA,MAAM;AACdue,MAAAA,SAAS,EAAEA,SAAS;AACpBM,MAAAA,MAAM,EAAEA,MAAM;AACdJ,MAAAA,QAAQ,EAAEA,QAAQ;AAClBD,MAAAA,gBAAgB,EAAEA;KACnB;AAED,IAAA,KAAK,MAAMjb,GAAG,IAAIqe,KAAK,EAAE;AAC3B;AACI,MAAA,IAAI,OAAOA,KAAK,CAACre,GAAG,CAAC,KAAK,QAAQ,EAAE;AACxC;AACMiX,QAAAA,UAAU,CAACoH,KAAK,CAACre,GAAG,CAAC,CAAC;AAC5B,MAAA;AACA,IAAA;;AAEA;AACEzE,IAAAA,MAAM,CAACua,MAAM,CAAC4P,IAAI,EAAErH,KAAK,CAAC;AAE1B,IAAA,OAAOqH,IAAI;EACb,CAAC;;AAED;AACA,EAAA,MAAMuB,SAAS,GAAGxB,IAAI,CAAC,EAAE,CAAC;;AAE1B;AACA;EACAwB,SAAS,CAACgH,WAAW,GAAG,MAAMxI,IAAI,CAAC,EAAE,CAAC;AAEtCyI,EAAAA,IAAc,GAAGjH,SAAS;EAC1BA,SAAS,CAACkH,WAAW,GAAGlH,SAAS;EACjCA,SAAS,CAACrrB,OAAO,GAAGqrB,SAAS;;;;;;;ACpiF7B;;;;;;;ECCAmH,SAAc,GAAG7f,MAAM,IAAI;AAC1B,IAAA,MAAMzQ,KAAK,GAAGyQ,MAAM,CAACzQ,KAAK,CAAC,iBAAiB,CAAC;IAE7C,IAAI,CAACA,KAAK,EAAE;AACX,MAAA,OAAO,CAAC;AACV,IAAA;IAEC,OAAOA,KAAK,CAACuwB,MAAM,CAAC,CAAChtB,CAAC,EAAEG,CAAC,KAAKwJ,IAAI,CAACsjB,GAAG,CAACjtB,CAAC,EAAEG,CAAC,CAACjE,MAAM,CAAC,EAAEgxB,QAAQ,CAAC;EAC/D,CAAC;;;;;;;;;ACRD,EAAA,MAAMH,SAAS,GAAGI,gBAAA,EAAqB;EAEvCC,aAAc,GAAGlgB,MAAM,IAAI;AAC1B,IAAA,MAAMmgB,MAAM,GAAGN,SAAS,CAAC7f,MAAM,CAAC;IAEhC,IAAImgB,MAAM,KAAK,CAAC,EAAE;AACjB,MAAA,OAAOngB,MAAM;AACf,IAAA;IAEC,MAAMwN,KAAK,GAAG,IAAIjJ,MAAM,CAAC,WAAW4b,MAAM,CAAA,CAAA,CAAG,EAAE,IAAI,CAAC;AAEpD,IAAA,OAAOngB,MAAM,CAACnR,OAAO,CAAC2e,KAAK,EAAE,EAAE,CAAC;EACjC,CAAC;;;;;;;;ACZD,IAAO4S,uBAAA,GAAQ;EACb,WAAA,EAAa,CACX,MACA,MAAA,EACA,WAAA,EACA,gBACA,KAAA,EACA,aAAA,EACA,UACA,aAAA,EACA,QAAA,EACA,WACA,QAAA,EACA,KAAA,EACA,YACA,SAAA,EACA,YAAA,EACA,UACA,QAAA,EACA,KAAA,EACA,UACA,MAAA,EACA,OAAA,EACA,OACA,WAAA,EACA,GAAA,EACA,OACA,WAAA,EACA,QAAA,EACA,SACA,SAAA,EACA,cAAA,EACA,SACA,cAAA,EACA,KAAA,EACA,OACA,KAAA,EACA,OAAA,EACA,WACA,QAAA,EACA,KAAA,EACA,OACA,GAAA,EACA,UAAA,EACA,MAAA,EACA,QAAA,EACA,MAAA,EACA,QAAA,EACA,OACA,YAAA,EACA,KAAA,EACA,YACA,KAAA,EACA,MAAA,EACA,QACA,QAAA,EACA,KAAA,EACA,QACA,KAAA,EACA,aAAA,EACA,UACA,OAAA,EACA,KAAA,EACA,QACA,SAAA,EACA,QAAA,EACA,QACA,OAAA,EACA,OAAA,EACA,WACA,MAAA,EACA,KAAA,EACA,MACA,MAAA,EACA,QAAA,EACA,WACA,QAAA,EACA,MAAA,EACA,cACA,SAAA,EACA,MAAA,EACA,OACA,MAAA,EACA,IAAA,EACA,WACA,KAAA,EACA,QAAA,EACA,QACA,MAAA,EACA,YAAA,EACA,aACA,MAAA,EACA,OAAA,EACA,YAAA,EACA,QAAA,EACA,OAAA,EACA,OAAA,EACA,QACA,MAAA,EACA,MAAA,EACA,QACA,gBAAA,EACA,YAAA,EACA,QACA,KAAA,EACA,KAAA,EACA,YACA,aAAA,EACA,QAAA,EACA,UACA,KAAA,EACA,SAAA,EACA,WACA,OAAA,EACA,MAAA,EACA,eACA,QAAA,EACA,YAAA,EACA,QACA,YAAA,EACA,OAAA,EACA,OACA,KAAA,EACA,WAAA,EACA,QACA,YAAA,EACA,OAAA,EACA,YACA,SAAA,EACA,SAAA,EACA,MACA,OAAA,EACA,KAAA,EACA,gBACA,WAAA,EACA,MAAA,EACA,cACA,YAAA,EACA,SAAA,EACA,UACA,YAAA,EACA,UAAA,EACA,QAAA,EACA,WAAA,EACA,QAAA,EACA,aAAA,EACA,KACA,KAAA,EACA,GAAA,EACA,YACA,KAAA,EACA,UAAA,EACA,YACA,KAAA,EACA,eAAA,EACA,QACA,KAAA,EACA,OAAA,EACA,UACA,QAAA,EACA,MAAA,E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","x_google_ignoreList":[2,15,16,17,18,26,27,28,29,36,37,38,39,40,41,42,43,44,45,46,47,48]}
|