@sourcegraph/amp 0.0.1749182771-gb19aef → 0.0.1749211345-g16cdfc
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/amp.js +3 -3
- package/dist/{client-DQvLVO0y.js → client-Dd8T5Ydk.js} +2 -2
- package/dist/{client-DQvLVO0y.js.map → client-Dd8T5Ydk.js.map} +1 -1
- package/dist/{console-B2SF1aqQ.js → console-D_ZxbRrA.js} +14 -14
- package/dist/{console-B2SF1aqQ.js.map → console-D_ZxbRrA.js.map} +1 -1
- package/dist/{create_file.node-CTYL8XSm.js → create_file.node-D_xwgdhJ.js} +2 -2
- package/dist/{create_file.node-CTYL8XSm.js.map → create_file.node-D_xwgdhJ.js.map} +1 -1
- package/dist/{edit_file.node-Bsj3aCak.js → edit_file.node-Cv9nC-uR.js} +3 -3
- package/dist/{edit_file.node-Bsj3aCak.js.map → edit_file.node-Cv9nC-uR.js.map} +1 -1
- package/dist/{executable-DdVPivLU.js → executable-BTpHtmPV.js} +2 -2
- package/dist/{executable-DdVPivLU.js.map → executable-BTpHtmPV.js.map} +1 -1
- package/dist/{files-DgmPJSHS.js → files-CNmw2a6V.js} +2 -2
- package/dist/{files-DgmPJSHS.js.map → files-CNmw2a6V.js.map} +1 -1
- package/dist/{glob.node-CvxhbXXV.js → glob.node-Dbygwo7q.js} +4 -4
- package/dist/{glob.node-CvxhbXXV.js.map → glob.node-Dbygwo7q.js.map} +1 -1
- package/dist/{index-DG5uxXfG.js → index-DGuVA6oK.js} +2 -2
- package/dist/{index-DG5uxXfG.js.map → index-DGuVA6oK.js.map} +1 -1
- package/dist/{list_directory.node-D7kWIPfS.js → list_directory.node-DJCJkqLg.js} +2 -2
- package/dist/{list_directory.node-D7kWIPfS.js.map → list_directory.node-DJCJkqLg.js.map} +1 -1
- package/dist/{load-profile-DD55GCpN.js → load-profile-CXHBU_AI.js} +2 -2
- package/dist/{load-profile-DD55GCpN.js.map → load-profile-CXHBU_AI.js.map} +1 -1
- package/dist/{main-CnaIlgJ-.js → main-CtHA5Ylu.js} +409 -398
- package/dist/{main-CnaIlgJ-.js.map → main-CtHA5Ylu.js.map} +1 -1
- package/dist/{node-CDbBRzSe.js → node-BOIz1I5S.js} +728 -673
- package/dist/node-BOIz1I5S.js.map +1 -0
- package/dist/{node-q5EJWNpV.js → node-C2cKbj9k.js} +3 -3
- package/dist/{node-q5EJWNpV.js.map → node-C2cKbj9k.js.map} +1 -1
- package/dist/{node-CBGz4YST.js → node-D9dPV0eu.js} +4 -4
- package/dist/{node-CBGz4YST.js.map → node-D9dPV0eu.js.map} +1 -1
- package/dist/{node-BHadfrnF.js → node-DPPbAAw0.js} +2 -2
- package/dist/{node-BHadfrnF.js.map → node-DPPbAAw0.js.map} +1 -1
- package/dist/{node-DExO0xPV.js → node-DZCyuAqY.js} +2 -2
- package/dist/{node-DExO0xPV.js.map → node-DZCyuAqY.js.map} +1 -1
- package/dist/{node-BcF9KV_p.js → node-DaL4eJRQ.js} +3 -3
- package/dist/{node-BcF9KV_p.js.map → node-DaL4eJRQ.js.map} +1 -1
- package/dist/{read_file.node-CpfHdJYY.js → read_file.node-CAD-I3qI.js} +2 -2
- package/dist/{read_file.node-CpfHdJYY.js.map → read_file.node-CAD-I3qI.js.map} +1 -1
- package/dist/{stdio-Clxnyx58.js → stdio-7mSc8Mj0.js} +3 -3
- package/dist/{stdio-Clxnyx58.js.map → stdio-7mSc8Mj0.js.map} +1 -1
- package/dist/storybook.js +1 -1
- package/dist/{undo_edit.node-DDFebFdr.js → undo_edit.node-BYH1ok_y.js} +2 -2
- package/dist/{undo_edit.node-DDFebFdr.js.map → undo_edit.node-BYH1ok_y.js.map} +1 -1
- package/package.json +1 -1
- package/dist/node-CDbBRzSe.js.map +0 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"node-BHadfrnF.js","sources":["../../node_modules/.pnpm/node-html-markdown@1.3.0/node_modules/node-html-markdown/dist/translator.js","../../node_modules/.pnpm/he@1.2.0/node_modules/he/he.js","../../node_modules/.pnpm/node-html-parser@6.1.13/node_modules/node-html-parser/dist/nodes/node.js","../../node_modules/.pnpm/node-html-parser@6.1.13/node_modules/node-html-parser/dist/nodes/type.js","../../node_modules/.pnpm/node-html-parser@6.1.13/node_modules/node-html-parser/dist/nodes/comment.js","../../node_modules/.pnpm/domelementtype@2.3.0/node_modules/domelementtype/lib/index.js","../../node_modules/.pnpm/domhandler@5.0.3/node_modules/domhandler/lib/node.js","../../node_modules/.pnpm/domhandler@5.0.3/node_modules/domhandler/lib/index.js","../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/generated/decode-data-html.js","../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/generated/decode-data-xml.js","../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/decode_codepoint.js","../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/decode.js","../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/generated/encode-html.js","../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/escape.js","../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/encode.js","../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/index.js","../../node_modules/.pnpm/dom-serializer@2.0.0/node_modules/dom-serializer/lib/foreignNames.js","../../node_modules/.pnpm/dom-serializer@2.0.0/node_modules/dom-serializer/lib/index.js","../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/stringify.js","../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/traversal.js","../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/manipulation.js","../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/querying.js","../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/legacy.js","../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/helpers.js","../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/feeds.js","../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/index.js","../../node_modules/.pnpm/boolbase@1.0.0/node_modules/boolbase/index.js","../../node_modules/.pnpm/css-what@6.1.0/node_modules/css-what/lib/es/types.js","../../node_modules/.pnpm/css-what@6.1.0/node_modules/css-what/lib/es/parse.js","../../node_modules/.pnpm/css-what@6.1.0/node_modules/css-what/lib/es/stringify.js","../../node_modules/.pnpm/css-select@5.1.0/node_modules/css-select/lib/sort.js","../../node_modules/.pnpm/css-select@5.1.0/node_modules/css-select/lib/attributes.js","../../node_modules/.pnpm/nth-check@2.1.1/node_modules/nth-check/lib/parse.js","../../node_modules/.pnpm/nth-check@2.1.1/node_modules/nth-check/lib/compile.js","../../node_modules/.pnpm/nth-check@2.1.1/node_modules/nth-check/lib/index.js","../../node_modules/.pnpm/css-select@5.1.0/node_modules/css-select/lib/pseudo-selectors/filters.js","../../node_modules/.pnpm/css-select@5.1.0/node_modules/css-select/lib/pseudo-selectors/pseudos.js","../../node_modules/.pnpm/css-select@5.1.0/node_modules/css-select/lib/pseudo-selectors/aliases.js","../../node_modules/.pnpm/css-select@5.1.0/node_modules/css-select/lib/pseudo-selectors/subselects.js","../../node_modules/.pnpm/css-select@5.1.0/node_modules/css-select/lib/pseudo-selectors/index.js","../../node_modules/.pnpm/css-select@5.1.0/node_modules/css-select/lib/general.js","../../node_modules/.pnpm/css-select@5.1.0/node_modules/css-select/lib/compile.js","../../node_modules/.pnpm/css-select@5.1.0/node_modules/css-select/lib/index.js","../../node_modules/.pnpm/node-html-parser@6.1.13/node_modules/node-html-parser/dist/back.js","../../node_modules/.pnpm/node-html-parser@6.1.13/node_modules/node-html-parser/dist/matcher.js","../../node_modules/.pnpm/node-html-parser@6.1.13/node_modules/node-html-parser/dist/void-tag.js","../../node_modules/.pnpm/node-html-parser@6.1.13/node_modules/node-html-parser/dist/nodes/text.js","../../node_modules/.pnpm/node-html-parser@6.1.13/node_modules/node-html-parser/dist/nodes/html.js","../../node_modules/.pnpm/node-html-parser@6.1.13/node_modules/node-html-parser/dist/parse.js","../../node_modules/.pnpm/node-html-parser@6.1.13/node_modules/node-html-parser/dist/valid.js","../../node_modules/.pnpm/node-html-parser@6.1.13/node_modules/node-html-parser/dist/index.js","../../node_modules/.pnpm/node-html-markdown@1.3.0/node_modules/node-html-markdown/dist/utilities.js","../../node_modules/.pnpm/node-html-markdown@1.3.0/node_modules/node-html-markdown/dist/config.js","../../node_modules/.pnpm/node-html-markdown@1.3.0/node_modules/node-html-markdown/dist/nodes.js","../../node_modules/.pnpm/node-html-markdown@1.3.0/node_modules/node-html-markdown/dist/visitor.js","../../node_modules/.pnpm/node-html-markdown@1.3.0/node_modules/node-html-markdown/dist/main.js","../../node_modules/.pnpm/node-html-markdown@1.3.0/node_modules/node-html-markdown/dist/index.js","../../core/src/tools/builtin/read_web_page/node.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createTranslatorContext = exports.isTranslatorConfig = exports.TranslatorCollection = exports.PostProcessResult = void 0;\nvar PostProcessResult;\n(function (PostProcessResult) {\n PostProcessResult[PostProcessResult[\"NoChange\"] = 0] = \"NoChange\";\n PostProcessResult[PostProcessResult[\"RemoveNode\"] = 1] = \"RemoveNode\";\n})(PostProcessResult = exports.PostProcessResult || (exports.PostProcessResult = {}));\n// endregion\n/* ****************************************************************************************************************** */\n// region: TranslatorCollection\n/* ****************************************************************************************************************** */\nclass TranslatorCollection {\n get size() { return Object.keys(this).length; }\n /**\n * Add / update translator config for one or more element tags\n */\n set(keys, config, /* @internal */ preserveBase) {\n keys.split(',').forEach(el => {\n el = el.toUpperCase();\n let res = config;\n if (preserveBase) {\n const base = this[el];\n if ((0, exports.isTranslatorConfig)(base))\n res = !(0, exports.isTranslatorConfig)(config)\n ? Object.assign((...args) => config.apply(void 0, args), { base })\n : Object.assign(Object.assign({}, base), config);\n }\n this[el] = res;\n });\n }\n /**\n * Get translator config for element tag\n */\n get(key) {\n return this[key.toUpperCase()];\n }\n /**\n * Returns array of entries\n */\n entries() {\n return Object.entries(this);\n }\n /**\n * Remove translator config for one or more element tags\n */\n remove(keys) {\n keys.split(',').forEach(el => delete this[el.toUpperCase()]);\n }\n}\nexports.TranslatorCollection = TranslatorCollection;\n// endregion\n/* ****************************************************************************************************************** */\n// region: Utilities\n/* ****************************************************************************************************************** */\n/**\n * Only use to narrow union of types where only TranslatorConfig has JS type 'object'\n */\nconst isTranslatorConfig = (v) => typeof v === 'object';\nexports.isTranslatorConfig = isTranslatorConfig;\nfunction createTranslatorContext(visitor, node, metadata, base) {\n const { instance, nodeMetadata, } = visitor;\n return Object.assign({ node, options: instance.options, parent: node.parentNode, nodeMetadata,\n visitor,\n base }, metadata);\n}\nexports.createTranslatorContext = createTranslatorContext;\n// endregion\n//# sourceMappingURL=translator.js.map","/*! https://mths.be/he v1.2.0 by @mathias | MIT license */\n;(function(root) {\n\n\t// Detect free variables `exports`.\n\tvar freeExports = typeof exports == 'object' && exports;\n\n\t// Detect free variable `module`.\n\tvar freeModule = typeof module == 'object' && module &&\n\t\tmodule.exports == freeExports && module;\n\n\t// Detect free variable `global`, from Node.js or Browserified code,\n\t// and use it as `root`.\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t// All astral symbols.\n\tvar regexAstralSymbols = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n\t// All ASCII symbols (not just printable ASCII) except those listed in the\n\t// first column of the overrides table.\n\t// https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides\n\tvar regexAsciiWhitelist = /[\\x01-\\x7F]/g;\n\t// All BMP symbols that are not ASCII newlines, printable ASCII symbols, or\n\t// code points listed in the first column of the overrides table on\n\t// https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides.\n\tvar regexBmpWhitelist = /[\\x01-\\t\\x0B\\f\\x0E-\\x1F\\x7F\\x81\\x8D\\x8F\\x90\\x9D\\xA0-\\uFFFF]/g;\n\n\tvar regexEncodeNonAscii = /<\\u20D2|=\\u20E5|>\\u20D2|\\u205F\\u200A|\\u219D\\u0338|\\u2202\\u0338|\\u2220\\u20D2|\\u2229\\uFE00|\\u222A\\uFE00|\\u223C\\u20D2|\\u223D\\u0331|\\u223E\\u0333|\\u2242\\u0338|\\u224B\\u0338|\\u224D\\u20D2|\\u224E\\u0338|\\u224F\\u0338|\\u2250\\u0338|\\u2261\\u20E5|\\u2264\\u20D2|\\u2265\\u20D2|\\u2266\\u0338|\\u2267\\u0338|\\u2268\\uFE00|\\u2269\\uFE00|\\u226A\\u0338|\\u226A\\u20D2|\\u226B\\u0338|\\u226B\\u20D2|\\u227F\\u0338|\\u2282\\u20D2|\\u2283\\u20D2|\\u228A\\uFE00|\\u228B\\uFE00|\\u228F\\u0338|\\u2290\\u0338|\\u2293\\uFE00|\\u2294\\uFE00|\\u22B4\\u20D2|\\u22B5\\u20D2|\\u22D8\\u0338|\\u22D9\\u0338|\\u22DA\\uFE00|\\u22DB\\uFE00|\\u22F5\\u0338|\\u22F9\\u0338|\\u2933\\u0338|\\u29CF\\u0338|\\u29D0\\u0338|\\u2A6D\\u0338|\\u2A70\\u0338|\\u2A7D\\u0338|\\u2A7E\\u0338|\\u2AA1\\u0338|\\u2AA2\\u0338|\\u2AAC\\uFE00|\\u2AAD\\uFE00|\\u2AAF\\u0338|\\u2AB0\\u0338|\\u2AC5\\u0338|\\u2AC6\\u0338|\\u2ACB\\uFE00|\\u2ACC\\uFE00|\\u2AFD\\u20E5|[\\xA0-\\u0113\\u0116-\\u0122\\u0124-\\u012B\\u012E-\\u014D\\u0150-\\u017E\\u0192\\u01B5\\u01F5\\u0237\\u02C6\\u02C7\\u02D8-\\u02DD\\u0311\\u0391-\\u03A1\\u03A3-\\u03A9\\u03B1-\\u03C9\\u03D1\\u03D2\\u03D5\\u03D6\\u03DC\\u03DD\\u03F0\\u03F1\\u03F5\\u03F6\\u0401-\\u040C\\u040E-\\u044F\\u0451-\\u045C\\u045E\\u045F\\u2002-\\u2005\\u2007-\\u2010\\u2013-\\u2016\\u2018-\\u201A\\u201C-\\u201E\\u2020-\\u2022\\u2025\\u2026\\u2030-\\u2035\\u2039\\u203A\\u203E\\u2041\\u2043\\u2044\\u204F\\u2057\\u205F-\\u2063\\u20AC\\u20DB\\u20DC\\u2102\\u2105\\u210A-\\u2113\\u2115-\\u211E\\u2122\\u2124\\u2127-\\u2129\\u212C\\u212D\\u212F-\\u2131\\u2133-\\u2138\\u2145-\\u2148\\u2153-\\u215E\\u2190-\\u219B\\u219D-\\u21A7\\u21A9-\\u21AE\\u21B0-\\u21B3\\u21B5-\\u21B7\\u21BA-\\u21DB\\u21DD\\u21E4\\u21E5\\u21F5\\u21FD-\\u2205\\u2207-\\u2209\\u220B\\u220C\\u220F-\\u2214\\u2216-\\u2218\\u221A\\u221D-\\u2238\\u223A-\\u2257\\u2259\\u225A\\u225C\\u225F-\\u2262\\u2264-\\u228B\\u228D-\\u229B\\u229D-\\u22A5\\u22A7-\\u22B0\\u22B2-\\u22BB\\u22BD-\\u22DB\\u22DE-\\u22E3\\u22E6-\\u22F7\\u22F9-\\u22FE\\u2305\\u2306\\u2308-\\u2310\\u2312\\u2313\\u2315\\u2316\\u231C-\\u231F\\u2322\\u2323\\u232D\\u232E\\u2336\\u233D\\u233F\\u237C\\u23B0\\u23B1\\u23B4-\\u23B6\\u23DC-\\u23DF\\u23E2\\u23E7\\u2423\\u24C8\\u2500\\u2502\\u250C\\u2510\\u2514\\u2518\\u251C\\u2524\\u252C\\u2534\\u253C\\u2550-\\u256C\\u2580\\u2584\\u2588\\u2591-\\u2593\\u25A1\\u25AA\\u25AB\\u25AD\\u25AE\\u25B1\\u25B3-\\u25B5\\u25B8\\u25B9\\u25BD-\\u25BF\\u25C2\\u25C3\\u25CA\\u25CB\\u25EC\\u25EF\\u25F8-\\u25FC\\u2605\\u2606\\u260E\\u2640\\u2642\\u2660\\u2663\\u2665\\u2666\\u266A\\u266D-\\u266F\\u2713\\u2717\\u2720\\u2736\\u2758\\u2772\\u2773\\u27C8\\u27C9\\u27E6-\\u27ED\\u27F5-\\u27FA\\u27FC\\u27FF\\u2902-\\u2905\\u290C-\\u2913\\u2916\\u2919-\\u2920\\u2923-\\u292A\\u2933\\u2935-\\u2939\\u293C\\u293D\\u2945\\u2948-\\u294B\\u294E-\\u2976\\u2978\\u2979\\u297B-\\u297F\\u2985\\u2986\\u298B-\\u2996\\u299A\\u299C\\u299D\\u29A4-\\u29B7\\u29B9\\u29BB\\u29BC\\u29BE-\\u29C5\\u29C9\\u29CD-\\u29D0\\u29DC-\\u29DE\\u29E3-\\u29E5\\u29EB\\u29F4\\u29F6\\u2A00-\\u2A02\\u2A04\\u2A06\\u2A0C\\u2A0D\\u2A10-\\u2A17\\u2A22-\\u2A27\\u2A29\\u2A2A\\u2A2D-\\u2A31\\u2A33-\\u2A3C\\u2A3F\\u2A40\\u2A42-\\u2A4D\\u2A50\\u2A53-\\u2A58\\u2A5A-\\u2A5D\\u2A5F\\u2A66\\u2A6A\\u2A6D-\\u2A75\\u2A77-\\u2A9A\\u2A9D-\\u2AA2\\u2AA4-\\u2AB0\\u2AB3-\\u2AC8\\u2ACB\\u2ACC\\u2ACF-\\u2ADB\\u2AE4\\u2AE6-\\u2AE9\\u2AEB-\\u2AF3\\u2AFD\\uFB00-\\uFB04]|\\uD835[\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDCCF\\uDD04\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDD6B]/g;\n\tvar encodeMap = {'\\xAD':'shy','\\u200C':'zwnj','\\u200D':'zwj','\\u200E':'lrm','\\u2063':'ic','\\u2062':'it','\\u2061':'af','\\u200F':'rlm','\\u200B':'ZeroWidthSpace','\\u2060':'NoBreak','\\u0311':'DownBreve','\\u20DB':'tdot','\\u20DC':'DotDot','\\t':'Tab','\\n':'NewLine','\\u2008':'puncsp','\\u205F':'MediumSpace','\\u2009':'thinsp','\\u200A':'hairsp','\\u2004':'emsp13','\\u2002':'ensp','\\u2005':'emsp14','\\u2003':'emsp','\\u2007':'numsp','\\xA0':'nbsp','\\u205F\\u200A':'ThickSpace','\\u203E':'oline','_':'lowbar','\\u2010':'dash','\\u2013':'ndash','\\u2014':'mdash','\\u2015':'horbar',',':'comma',';':'semi','\\u204F':'bsemi',':':'colon','\\u2A74':'Colone','!':'excl','\\xA1':'iexcl','?':'quest','\\xBF':'iquest','.':'period','\\u2025':'nldr','\\u2026':'mldr','\\xB7':'middot','\\'':'apos','\\u2018':'lsquo','\\u2019':'rsquo','\\u201A':'sbquo','\\u2039':'lsaquo','\\u203A':'rsaquo','\"':'quot','\\u201C':'ldquo','\\u201D':'rdquo','\\u201E':'bdquo','\\xAB':'laquo','\\xBB':'raquo','(':'lpar',')':'rpar','[':'lsqb',']':'rsqb','{':'lcub','}':'rcub','\\u2308':'lceil','\\u2309':'rceil','\\u230A':'lfloor','\\u230B':'rfloor','\\u2985':'lopar','\\u2986':'ropar','\\u298B':'lbrke','\\u298C':'rbrke','\\u298D':'lbrkslu','\\u298E':'rbrksld','\\u298F':'lbrksld','\\u2990':'rbrkslu','\\u2991':'langd','\\u2992':'rangd','\\u2993':'lparlt','\\u2994':'rpargt','\\u2995':'gtlPar','\\u2996':'ltrPar','\\u27E6':'lobrk','\\u27E7':'robrk','\\u27E8':'lang','\\u27E9':'rang','\\u27EA':'Lang','\\u27EB':'Rang','\\u27EC':'loang','\\u27ED':'roang','\\u2772':'lbbrk','\\u2773':'rbbrk','\\u2016':'Vert','\\xA7':'sect','\\xB6':'para','@':'commat','*':'ast','/':'sol','undefined':null,'&':'amp','#':'num','%':'percnt','\\u2030':'permil','\\u2031':'pertenk','\\u2020':'dagger','\\u2021':'Dagger','\\u2022':'bull','\\u2043':'hybull','\\u2032':'prime','\\u2033':'Prime','\\u2034':'tprime','\\u2057':'qprime','\\u2035':'bprime','\\u2041':'caret','`':'grave','\\xB4':'acute','\\u02DC':'tilde','^':'Hat','\\xAF':'macr','\\u02D8':'breve','\\u02D9':'dot','\\xA8':'die','\\u02DA':'ring','\\u02DD':'dblac','\\xB8':'cedil','\\u02DB':'ogon','\\u02C6':'circ','\\u02C7':'caron','\\xB0':'deg','\\xA9':'copy','\\xAE':'reg','\\u2117':'copysr','\\u2118':'wp','\\u211E':'rx','\\u2127':'mho','\\u2129':'iiota','\\u2190':'larr','\\u219A':'nlarr','\\u2192':'rarr','\\u219B':'nrarr','\\u2191':'uarr','\\u2193':'darr','\\u2194':'harr','\\u21AE':'nharr','\\u2195':'varr','\\u2196':'nwarr','\\u2197':'nearr','\\u2198':'searr','\\u2199':'swarr','\\u219D':'rarrw','\\u219D\\u0338':'nrarrw','\\u219E':'Larr','\\u219F':'Uarr','\\u21A0':'Rarr','\\u21A1':'Darr','\\u21A2':'larrtl','\\u21A3':'rarrtl','\\u21A4':'mapstoleft','\\u21A5':'mapstoup','\\u21A6':'map','\\u21A7':'mapstodown','\\u21A9':'larrhk','\\u21AA':'rarrhk','\\u21AB':'larrlp','\\u21AC':'rarrlp','\\u21AD':'harrw','\\u21B0':'lsh','\\u21B1':'rsh','\\u21B2':'ldsh','\\u21B3':'rdsh','\\u21B5':'crarr','\\u21B6':'cularr','\\u21B7':'curarr','\\u21BA':'olarr','\\u21BB':'orarr','\\u21BC':'lharu','\\u21BD':'lhard','\\u21BE':'uharr','\\u21BF':'uharl','\\u21C0':'rharu','\\u21C1':'rhard','\\u21C2':'dharr','\\u21C3':'dharl','\\u21C4':'rlarr','\\u21C5':'udarr','\\u21C6':'lrarr','\\u21C7':'llarr','\\u21C8':'uuarr','\\u21C9':'rrarr','\\u21CA':'ddarr','\\u21CB':'lrhar','\\u21CC':'rlhar','\\u21D0':'lArr','\\u21CD':'nlArr','\\u21D1':'uArr','\\u21D2':'rArr','\\u21CF':'nrArr','\\u21D3':'dArr','\\u21D4':'iff','\\u21CE':'nhArr','\\u21D5':'vArr','\\u21D6':'nwArr','\\u21D7':'neArr','\\u21D8':'seArr','\\u21D9':'swArr','\\u21DA':'lAarr','\\u21DB':'rAarr','\\u21DD':'zigrarr','\\u21E4':'larrb','\\u21E5':'rarrb','\\u21F5':'duarr','\\u21FD':'loarr','\\u21FE':'roarr','\\u21FF':'hoarr','\\u2200':'forall','\\u2201':'comp','\\u2202':'part','\\u2202\\u0338':'npart','\\u2203':'exist','\\u2204':'nexist','\\u2205':'empty','\\u2207':'Del','\\u2208':'in','\\u2209':'notin','\\u220B':'ni','\\u220C':'notni','\\u03F6':'bepsi','\\u220F':'prod','\\u2210':'coprod','\\u2211':'sum','+':'plus','\\xB1':'pm','\\xF7':'div','\\xD7':'times','<':'lt','\\u226E':'nlt','<\\u20D2':'nvlt','=':'equals','\\u2260':'ne','=\\u20E5':'bne','\\u2A75':'Equal','>':'gt','\\u226F':'ngt','>\\u20D2':'nvgt','\\xAC':'not','|':'vert','\\xA6':'brvbar','\\u2212':'minus','\\u2213':'mp','\\u2214':'plusdo','\\u2044':'frasl','\\u2216':'setmn','\\u2217':'lowast','\\u2218':'compfn','\\u221A':'Sqrt','\\u221D':'prop','\\u221E':'infin','\\u221F':'angrt','\\u2220':'ang','\\u2220\\u20D2':'nang','\\u2221':'angmsd','\\u2222':'angsph','\\u2223':'mid','\\u2224':'nmid','\\u2225':'par','\\u2226':'npar','\\u2227':'and','\\u2228':'or','\\u2229':'cap','\\u2229\\uFE00':'caps','\\u222A':'cup','\\u222A\\uFE00':'cups','\\u222B':'int','\\u222C':'Int','\\u222D':'tint','\\u2A0C':'qint','\\u222E':'oint','\\u222F':'Conint','\\u2230':'Cconint','\\u2231':'cwint','\\u2232':'cwconint','\\u2233':'awconint','\\u2234':'there4','\\u2235':'becaus','\\u2236':'ratio','\\u2237':'Colon','\\u2238':'minusd','\\u223A':'mDDot','\\u223B':'homtht','\\u223C':'sim','\\u2241':'nsim','\\u223C\\u20D2':'nvsim','\\u223D':'bsim','\\u223D\\u0331':'race','\\u223E':'ac','\\u223E\\u0333':'acE','\\u223F':'acd','\\u2240':'wr','\\u2242':'esim','\\u2242\\u0338':'nesim','\\u2243':'sime','\\u2244':'nsime','\\u2245':'cong','\\u2247':'ncong','\\u2246':'simne','\\u2248':'ap','\\u2249':'nap','\\u224A':'ape','\\u224B':'apid','\\u224B\\u0338':'napid','\\u224C':'bcong','\\u224D':'CupCap','\\u226D':'NotCupCap','\\u224D\\u20D2':'nvap','\\u224E':'bump','\\u224E\\u0338':'nbump','\\u224F':'bumpe','\\u224F\\u0338':'nbumpe','\\u2250':'doteq','\\u2250\\u0338':'nedot','\\u2251':'eDot','\\u2252':'efDot','\\u2253':'erDot','\\u2254':'colone','\\u2255':'ecolon','\\u2256':'ecir','\\u2257':'cire','\\u2259':'wedgeq','\\u225A':'veeeq','\\u225C':'trie','\\u225F':'equest','\\u2261':'equiv','\\u2262':'nequiv','\\u2261\\u20E5':'bnequiv','\\u2264':'le','\\u2270':'nle','\\u2264\\u20D2':'nvle','\\u2265':'ge','\\u2271':'nge','\\u2265\\u20D2':'nvge','\\u2266':'lE','\\u2266\\u0338':'nlE','\\u2267':'gE','\\u2267\\u0338':'ngE','\\u2268\\uFE00':'lvnE','\\u2268':'lnE','\\u2269':'gnE','\\u2269\\uFE00':'gvnE','\\u226A':'ll','\\u226A\\u0338':'nLtv','\\u226A\\u20D2':'nLt','\\u226B':'gg','\\u226B\\u0338':'nGtv','\\u226B\\u20D2':'nGt','\\u226C':'twixt','\\u2272':'lsim','\\u2274':'nlsim','\\u2273':'gsim','\\u2275':'ngsim','\\u2276':'lg','\\u2278':'ntlg','\\u2277':'gl','\\u2279':'ntgl','\\u227A':'pr','\\u2280':'npr','\\u227B':'sc','\\u2281':'nsc','\\u227C':'prcue','\\u22E0':'nprcue','\\u227D':'sccue','\\u22E1':'nsccue','\\u227E':'prsim','\\u227F':'scsim','\\u227F\\u0338':'NotSucceedsTilde','\\u2282':'sub','\\u2284':'nsub','\\u2282\\u20D2':'vnsub','\\u2283':'sup','\\u2285':'nsup','\\u2283\\u20D2':'vnsup','\\u2286':'sube','\\u2288':'nsube','\\u2287':'supe','\\u2289':'nsupe','\\u228A\\uFE00':'vsubne','\\u228A':'subne','\\u228B\\uFE00':'vsupne','\\u228B':'supne','\\u228D':'cupdot','\\u228E':'uplus','\\u228F':'sqsub','\\u228F\\u0338':'NotSquareSubset','\\u2290':'sqsup','\\u2290\\u0338':'NotSquareSuperset','\\u2291':'sqsube','\\u22E2':'nsqsube','\\u2292':'sqsupe','\\u22E3':'nsqsupe','\\u2293':'sqcap','\\u2293\\uFE00':'sqcaps','\\u2294':'sqcup','\\u2294\\uFE00':'sqcups','\\u2295':'oplus','\\u2296':'ominus','\\u2297':'otimes','\\u2298':'osol','\\u2299':'odot','\\u229A':'ocir','\\u229B':'oast','\\u229D':'odash','\\u229E':'plusb','\\u229F':'minusb','\\u22A0':'timesb','\\u22A1':'sdotb','\\u22A2':'vdash','\\u22AC':'nvdash','\\u22A3':'dashv','\\u22A4':'top','\\u22A5':'bot','\\u22A7':'models','\\u22A8':'vDash','\\u22AD':'nvDash','\\u22A9':'Vdash','\\u22AE':'nVdash','\\u22AA':'Vvdash','\\u22AB':'VDash','\\u22AF':'nVDash','\\u22B0':'prurel','\\u22B2':'vltri','\\u22EA':'nltri','\\u22B3':'vrtri','\\u22EB':'nrtri','\\u22B4':'ltrie','\\u22EC':'nltrie','\\u22B4\\u20D2':'nvltrie','\\u22B5':'rtrie','\\u22ED':'nrtrie','\\u22B5\\u20D2':'nvrtrie','\\u22B6':'origof','\\u22B7':'imof','\\u22B8':'mumap','\\u22B9':'hercon','\\u22BA':'intcal','\\u22BB':'veebar','\\u22BD':'barvee','\\u22BE':'angrtvb','\\u22BF':'lrtri','\\u22C0':'Wedge','\\u22C1':'Vee','\\u22C2':'xcap','\\u22C3':'xcup','\\u22C4':'diam','\\u22C5':'sdot','\\u22C6':'Star','\\u22C7':'divonx','\\u22C8':'bowtie','\\u22C9':'ltimes','\\u22CA':'rtimes','\\u22CB':'lthree','\\u22CC':'rthree','\\u22CD':'bsime','\\u22CE':'cuvee','\\u22CF':'cuwed','\\u22D0':'Sub','\\u22D1':'Sup','\\u22D2':'Cap','\\u22D3':'Cup','\\u22D4':'fork','\\u22D5':'epar','\\u22D6':'ltdot','\\u22D7':'gtdot','\\u22D8':'Ll','\\u22D8\\u0338':'nLl','\\u22D9':'Gg','\\u22D9\\u0338':'nGg','\\u22DA\\uFE00':'lesg','\\u22DA':'leg','\\u22DB':'gel','\\u22DB\\uFE00':'gesl','\\u22DE':'cuepr','\\u22DF':'cuesc','\\u22E6':'lnsim','\\u22E7':'gnsim','\\u22E8':'prnsim','\\u22E9':'scnsim','\\u22EE':'vellip','\\u22EF':'ctdot','\\u22F0':'utdot','\\u22F1':'dtdot','\\u22F2':'disin','\\u22F3':'isinsv','\\u22F4':'isins','\\u22F5':'isindot','\\u22F5\\u0338':'notindot','\\u22F6':'notinvc','\\u22F7':'notinvb','\\u22F9':'isinE','\\u22F9\\u0338':'notinE','\\u22FA':'nisd','\\u22FB':'xnis','\\u22FC':'nis','\\u22FD':'notnivc','\\u22FE':'notnivb','\\u2305':'barwed','\\u2306':'Barwed','\\u230C':'drcrop','\\u230D':'dlcrop','\\u230E':'urcrop','\\u230F':'ulcrop','\\u2310':'bnot','\\u2312':'profline','\\u2313':'profsurf','\\u2315':'telrec','\\u2316':'target','\\u231C':'ulcorn','\\u231D':'urcorn','\\u231E':'dlcorn','\\u231F':'drcorn','\\u2322':'frown','\\u2323':'smile','\\u232D':'cylcty','\\u232E':'profalar','\\u2336':'topbot','\\u233D':'ovbar','\\u233F':'solbar','\\u237C':'angzarr','\\u23B0':'lmoust','\\u23B1':'rmoust','\\u23B4':'tbrk','\\u23B5':'bbrk','\\u23B6':'bbrktbrk','\\u23DC':'OverParenthesis','\\u23DD':'UnderParenthesis','\\u23DE':'OverBrace','\\u23DF':'UnderBrace','\\u23E2':'trpezium','\\u23E7':'elinters','\\u2423':'blank','\\u2500':'boxh','\\u2502':'boxv','\\u250C':'boxdr','\\u2510':'boxdl','\\u2514':'boxur','\\u2518':'boxul','\\u251C':'boxvr','\\u2524':'boxvl','\\u252C':'boxhd','\\u2534':'boxhu','\\u253C':'boxvh','\\u2550':'boxH','\\u2551':'boxV','\\u2552':'boxdR','\\u2553':'boxDr','\\u2554':'boxDR','\\u2555':'boxdL','\\u2556':'boxDl','\\u2557':'boxDL','\\u2558':'boxuR','\\u2559':'boxUr','\\u255A':'boxUR','\\u255B':'boxuL','\\u255C':'boxUl','\\u255D':'boxUL','\\u255E':'boxvR','\\u255F':'boxVr','\\u2560':'boxVR','\\u2561':'boxvL','\\u2562':'boxVl','\\u2563':'boxVL','\\u2564':'boxHd','\\u2565':'boxhD','\\u2566':'boxHD','\\u2567':'boxHu','\\u2568':'boxhU','\\u2569':'boxHU','\\u256A':'boxvH','\\u256B':'boxVh','\\u256C':'boxVH','\\u2580':'uhblk','\\u2584':'lhblk','\\u2588':'block','\\u2591':'blk14','\\u2592':'blk12','\\u2593':'blk34','\\u25A1':'squ','\\u25AA':'squf','\\u25AB':'EmptyVerySmallSquare','\\u25AD':'rect','\\u25AE':'marker','\\u25B1':'fltns','\\u25B3':'xutri','\\u25B4':'utrif','\\u25B5':'utri','\\u25B8':'rtrif','\\u25B9':'rtri','\\u25BD':'xdtri','\\u25BE':'dtrif','\\u25BF':'dtri','\\u25C2':'ltrif','\\u25C3':'ltri','\\u25CA':'loz','\\u25CB':'cir','\\u25EC':'tridot','\\u25EF':'xcirc','\\u25F8':'ultri','\\u25F9':'urtri','\\u25FA':'lltri','\\u25FB':'EmptySmallSquare','\\u25FC':'FilledSmallSquare','\\u2605':'starf','\\u2606':'star','\\u260E':'phone','\\u2640':'female','\\u2642':'male','\\u2660':'spades','\\u2663':'clubs','\\u2665':'hearts','\\u2666':'diams','\\u266A':'sung','\\u2713':'check','\\u2717':'cross','\\u2720':'malt','\\u2736':'sext','\\u2758':'VerticalSeparator','\\u27C8':'bsolhsub','\\u27C9':'suphsol','\\u27F5':'xlarr','\\u27F6':'xrarr','\\u27F7':'xharr','\\u27F8':'xlArr','\\u27F9':'xrArr','\\u27FA':'xhArr','\\u27FC':'xmap','\\u27FF':'dzigrarr','\\u2902':'nvlArr','\\u2903':'nvrArr','\\u2904':'nvHarr','\\u2905':'Map','\\u290C':'lbarr','\\u290D':'rbarr','\\u290E':'lBarr','\\u290F':'rBarr','\\u2910':'RBarr','\\u2911':'DDotrahd','\\u2912':'UpArrowBar','\\u2913':'DownArrowBar','\\u2916':'Rarrtl','\\u2919':'latail','\\u291A':'ratail','\\u291B':'lAtail','\\u291C':'rAtail','\\u291D':'larrfs','\\u291E':'rarrfs','\\u291F':'larrbfs','\\u2920':'rarrbfs','\\u2923':'nwarhk','\\u2924':'nearhk','\\u2925':'searhk','\\u2926':'swarhk','\\u2927':'nwnear','\\u2928':'toea','\\u2929':'tosa','\\u292A':'swnwar','\\u2933':'rarrc','\\u2933\\u0338':'nrarrc','\\u2935':'cudarrr','\\u2936':'ldca','\\u2937':'rdca','\\u2938':'cudarrl','\\u2939':'larrpl','\\u293C':'curarrm','\\u293D':'cularrp','\\u2945':'rarrpl','\\u2948':'harrcir','\\u2949':'Uarrocir','\\u294A':'lurdshar','\\u294B':'ldrushar','\\u294E':'LeftRightVector','\\u294F':'RightUpDownVector','\\u2950':'DownLeftRightVector','\\u2951':'LeftUpDownVector','\\u2952':'LeftVectorBar','\\u2953':'RightVectorBar','\\u2954':'RightUpVectorBar','\\u2955':'RightDownVectorBar','\\u2956':'DownLeftVectorBar','\\u2957':'DownRightVectorBar','\\u2958':'LeftUpVectorBar','\\u2959':'LeftDownVectorBar','\\u295A':'LeftTeeVector','\\u295B':'RightTeeVector','\\u295C':'RightUpTeeVector','\\u295D':'RightDownTeeVector','\\u295E':'DownLeftTeeVector','\\u295F':'DownRightTeeVector','\\u2960':'LeftUpTeeVector','\\u2961':'LeftDownTeeVector','\\u2962':'lHar','\\u2963':'uHar','\\u2964':'rHar','\\u2965':'dHar','\\u2966':'luruhar','\\u2967':'ldrdhar','\\u2968':'ruluhar','\\u2969':'rdldhar','\\u296A':'lharul','\\u296B':'llhard','\\u296C':'rharul','\\u296D':'lrhard','\\u296E':'udhar','\\u296F':'duhar','\\u2970':'RoundImplies','\\u2971':'erarr','\\u2972':'simrarr','\\u2973':'larrsim','\\u2974':'rarrsim','\\u2975':'rarrap','\\u2976':'ltlarr','\\u2978':'gtrarr','\\u2979':'subrarr','\\u297B':'suplarr','\\u297C':'lfisht','\\u297D':'rfisht','\\u297E':'ufisht','\\u297F':'dfisht','\\u299A':'vzigzag','\\u299C':'vangrt','\\u299D':'angrtvbd','\\u29A4':'ange','\\u29A5':'range','\\u29A6':'dwangle','\\u29A7':'uwangle','\\u29A8':'angmsdaa','\\u29A9':'angmsdab','\\u29AA':'angmsdac','\\u29AB':'angmsdad','\\u29AC':'angmsdae','\\u29AD':'angmsdaf','\\u29AE':'angmsdag','\\u29AF':'angmsdah','\\u29B0':'bemptyv','\\u29B1':'demptyv','\\u29B2':'cemptyv','\\u29B3':'raemptyv','\\u29B4':'laemptyv','\\u29B5':'ohbar','\\u29B6':'omid','\\u29B7':'opar','\\u29B9':'operp','\\u29BB':'olcross','\\u29BC':'odsold','\\u29BE':'olcir','\\u29BF':'ofcir','\\u29C0':'olt','\\u29C1':'ogt','\\u29C2':'cirscir','\\u29C3':'cirE','\\u29C4':'solb','\\u29C5':'bsolb','\\u29C9':'boxbox','\\u29CD':'trisb','\\u29CE':'rtriltri','\\u29CF':'LeftTriangleBar','\\u29CF\\u0338':'NotLeftTriangleBar','\\u29D0':'RightTriangleBar','\\u29D0\\u0338':'NotRightTriangleBar','\\u29DC':'iinfin','\\u29DD':'infintie','\\u29DE':'nvinfin','\\u29E3':'eparsl','\\u29E4':'smeparsl','\\u29E5':'eqvparsl','\\u29EB':'lozf','\\u29F4':'RuleDelayed','\\u29F6':'dsol','\\u2A00':'xodot','\\u2A01':'xoplus','\\u2A02':'xotime','\\u2A04':'xuplus','\\u2A06':'xsqcup','\\u2A0D':'fpartint','\\u2A10':'cirfnint','\\u2A11':'awint','\\u2A12':'rppolint','\\u2A13':'scpolint','\\u2A14':'npolint','\\u2A15':'pointint','\\u2A16':'quatint','\\u2A17':'intlarhk','\\u2A22':'pluscir','\\u2A23':'plusacir','\\u2A24':'simplus','\\u2A25':'plusdu','\\u2A26':'plussim','\\u2A27':'plustwo','\\u2A29':'mcomma','\\u2A2A':'minusdu','\\u2A2D':'loplus','\\u2A2E':'roplus','\\u2A2F':'Cross','\\u2A30':'timesd','\\u2A31':'timesbar','\\u2A33':'smashp','\\u2A34':'lotimes','\\u2A35':'rotimes','\\u2A36':'otimesas','\\u2A37':'Otimes','\\u2A38':'odiv','\\u2A39':'triplus','\\u2A3A':'triminus','\\u2A3B':'tritime','\\u2A3C':'iprod','\\u2A3F':'amalg','\\u2A40':'capdot','\\u2A42':'ncup','\\u2A43':'ncap','\\u2A44':'capand','\\u2A45':'cupor','\\u2A46':'cupcap','\\u2A47':'capcup','\\u2A48':'cupbrcap','\\u2A49':'capbrcup','\\u2A4A':'cupcup','\\u2A4B':'capcap','\\u2A4C':'ccups','\\u2A4D':'ccaps','\\u2A50':'ccupssm','\\u2A53':'And','\\u2A54':'Or','\\u2A55':'andand','\\u2A56':'oror','\\u2A57':'orslope','\\u2A58':'andslope','\\u2A5A':'andv','\\u2A5B':'orv','\\u2A5C':'andd','\\u2A5D':'ord','\\u2A5F':'wedbar','\\u2A66':'sdote','\\u2A6A':'simdot','\\u2A6D':'congdot','\\u2A6D\\u0338':'ncongdot','\\u2A6E':'easter','\\u2A6F':'apacir','\\u2A70':'apE','\\u2A70\\u0338':'napE','\\u2A71':'eplus','\\u2A72':'pluse','\\u2A73':'Esim','\\u2A77':'eDDot','\\u2A78':'equivDD','\\u2A79':'ltcir','\\u2A7A':'gtcir','\\u2A7B':'ltquest','\\u2A7C':'gtquest','\\u2A7D':'les','\\u2A7D\\u0338':'nles','\\u2A7E':'ges','\\u2A7E\\u0338':'nges','\\u2A7F':'lesdot','\\u2A80':'gesdot','\\u2A81':'lesdoto','\\u2A82':'gesdoto','\\u2A83':'lesdotor','\\u2A84':'gesdotol','\\u2A85':'lap','\\u2A86':'gap','\\u2A87':'lne','\\u2A88':'gne','\\u2A89':'lnap','\\u2A8A':'gnap','\\u2A8B':'lEg','\\u2A8C':'gEl','\\u2A8D':'lsime','\\u2A8E':'gsime','\\u2A8F':'lsimg','\\u2A90':'gsiml','\\u2A91':'lgE','\\u2A92':'glE','\\u2A93':'lesges','\\u2A94':'gesles','\\u2A95':'els','\\u2A96':'egs','\\u2A97':'elsdot','\\u2A98':'egsdot','\\u2A99':'el','\\u2A9A':'eg','\\u2A9D':'siml','\\u2A9E':'simg','\\u2A9F':'simlE','\\u2AA0':'simgE','\\u2AA1':'LessLess','\\u2AA1\\u0338':'NotNestedLessLess','\\u2AA2':'GreaterGreater','\\u2AA2\\u0338':'NotNestedGreaterGreater','\\u2AA4':'glj','\\u2AA5':'gla','\\u2AA6':'ltcc','\\u2AA7':'gtcc','\\u2AA8':'lescc','\\u2AA9':'gescc','\\u2AAA':'smt','\\u2AAB':'lat','\\u2AAC':'smte','\\u2AAC\\uFE00':'smtes','\\u2AAD':'late','\\u2AAD\\uFE00':'lates','\\u2AAE':'bumpE','\\u2AAF':'pre','\\u2AAF\\u0338':'npre','\\u2AB0':'sce','\\u2AB0\\u0338':'nsce','\\u2AB3':'prE','\\u2AB4':'scE','\\u2AB5':'prnE','\\u2AB6':'scnE','\\u2AB7':'prap','\\u2AB8':'scap','\\u2AB9':'prnap','\\u2ABA':'scnap','\\u2ABB':'Pr','\\u2ABC':'Sc','\\u2ABD':'subdot','\\u2ABE':'supdot','\\u2ABF':'subplus','\\u2AC0':'supplus','\\u2AC1':'submult','\\u2AC2':'supmult','\\u2AC3':'subedot','\\u2AC4':'supedot','\\u2AC5':'subE','\\u2AC5\\u0338':'nsubE','\\u2AC6':'supE','\\u2AC6\\u0338':'nsupE','\\u2AC7':'subsim','\\u2AC8':'supsim','\\u2ACB\\uFE00':'vsubnE','\\u2ACB':'subnE','\\u2ACC\\uFE00':'vsupnE','\\u2ACC':'supnE','\\u2ACF':'csub','\\u2AD0':'csup','\\u2AD1':'csube','\\u2AD2':'csupe','\\u2AD3':'subsup','\\u2AD4':'supsub','\\u2AD5':'subsub','\\u2AD6':'supsup','\\u2AD7':'suphsub','\\u2AD8':'supdsub','\\u2AD9':'forkv','\\u2ADA':'topfork','\\u2ADB':'mlcp','\\u2AE4':'Dashv','\\u2AE6':'Vdashl','\\u2AE7':'Barv','\\u2AE8':'vBar','\\u2AE9':'vBarv','\\u2AEB':'Vbar','\\u2AEC':'Not','\\u2AED':'bNot','\\u2AEE':'rnmid','\\u2AEF':'cirmid','\\u2AF0':'midcir','\\u2AF1':'topcir','\\u2AF2':'nhpar','\\u2AF3':'parsim','\\u2AFD':'parsl','\\u2AFD\\u20E5':'nparsl','\\u266D':'flat','\\u266E':'natur','\\u266F':'sharp','\\xA4':'curren','\\xA2':'cent','$':'dollar','\\xA3':'pound','\\xA5':'yen','\\u20AC':'euro','\\xB9':'sup1','\\xBD':'half','\\u2153':'frac13','\\xBC':'frac14','\\u2155':'frac15','\\u2159':'frac16','\\u215B':'frac18','\\xB2':'sup2','\\u2154':'frac23','\\u2156':'frac25','\\xB3':'sup3','\\xBE':'frac34','\\u2157':'frac35','\\u215C':'frac38','\\u2158':'frac45','\\u215A':'frac56','\\u215D':'frac58','\\u215E':'frac78','\\uD835\\uDCB6':'ascr','\\uD835\\uDD52':'aopf','\\uD835\\uDD1E':'afr','\\uD835\\uDD38':'Aopf','\\uD835\\uDD04':'Afr','\\uD835\\uDC9C':'Ascr','\\xAA':'ordf','\\xE1':'aacute','\\xC1':'Aacute','\\xE0':'agrave','\\xC0':'Agrave','\\u0103':'abreve','\\u0102':'Abreve','\\xE2':'acirc','\\xC2':'Acirc','\\xE5':'aring','\\xC5':'angst','\\xE4':'auml','\\xC4':'Auml','\\xE3':'atilde','\\xC3':'Atilde','\\u0105':'aogon','\\u0104':'Aogon','\\u0101':'amacr','\\u0100':'Amacr','\\xE6':'aelig','\\xC6':'AElig','\\uD835\\uDCB7':'bscr','\\uD835\\uDD53':'bopf','\\uD835\\uDD1F':'bfr','\\uD835\\uDD39':'Bopf','\\u212C':'Bscr','\\uD835\\uDD05':'Bfr','\\uD835\\uDD20':'cfr','\\uD835\\uDCB8':'cscr','\\uD835\\uDD54':'copf','\\u212D':'Cfr','\\uD835\\uDC9E':'Cscr','\\u2102':'Copf','\\u0107':'cacute','\\u0106':'Cacute','\\u0109':'ccirc','\\u0108':'Ccirc','\\u010D':'ccaron','\\u010C':'Ccaron','\\u010B':'cdot','\\u010A':'Cdot','\\xE7':'ccedil','\\xC7':'Ccedil','\\u2105':'incare','\\uD835\\uDD21':'dfr','\\u2146':'dd','\\uD835\\uDD55':'dopf','\\uD835\\uDCB9':'dscr','\\uD835\\uDC9F':'Dscr','\\uD835\\uDD07':'Dfr','\\u2145':'DD','\\uD835\\uDD3B':'Dopf','\\u010F':'dcaron','\\u010E':'Dcaron','\\u0111':'dstrok','\\u0110':'Dstrok','\\xF0':'eth','\\xD0':'ETH','\\u2147':'ee','\\u212F':'escr','\\uD835\\uDD22':'efr','\\uD835\\uDD56':'eopf','\\u2130':'Escr','\\uD835\\uDD08':'Efr','\\uD835\\uDD3C':'Eopf','\\xE9':'eacute','\\xC9':'Eacute','\\xE8':'egrave','\\xC8':'Egrave','\\xEA':'ecirc','\\xCA':'Ecirc','\\u011B':'ecaron','\\u011A':'Ecaron','\\xEB':'euml','\\xCB':'Euml','\\u0117':'edot','\\u0116':'Edot','\\u0119':'eogon','\\u0118':'Eogon','\\u0113':'emacr','\\u0112':'Emacr','\\uD835\\uDD23':'ffr','\\uD835\\uDD57':'fopf','\\uD835\\uDCBB':'fscr','\\uD835\\uDD09':'Ffr','\\uD835\\uDD3D':'Fopf','\\u2131':'Fscr','\\uFB00':'fflig','\\uFB03':'ffilig','\\uFB04':'ffllig','\\uFB01':'filig','fj':'fjlig','\\uFB02':'fllig','\\u0192':'fnof','\\u210A':'gscr','\\uD835\\uDD58':'gopf','\\uD835\\uDD24':'gfr','\\uD835\\uDCA2':'Gscr','\\uD835\\uDD3E':'Gopf','\\uD835\\uDD0A':'Gfr','\\u01F5':'gacute','\\u011F':'gbreve','\\u011E':'Gbreve','\\u011D':'gcirc','\\u011C':'Gcirc','\\u0121':'gdot','\\u0120':'Gdot','\\u0122':'Gcedil','\\uD835\\uDD25':'hfr','\\u210E':'planckh','\\uD835\\uDCBD':'hscr','\\uD835\\uDD59':'hopf','\\u210B':'Hscr','\\u210C':'Hfr','\\u210D':'Hopf','\\u0125':'hcirc','\\u0124':'Hcirc','\\u210F':'hbar','\\u0127':'hstrok','\\u0126':'Hstrok','\\uD835\\uDD5A':'iopf','\\uD835\\uDD26':'ifr','\\uD835\\uDCBE':'iscr','\\u2148':'ii','\\uD835\\uDD40':'Iopf','\\u2110':'Iscr','\\u2111':'Im','\\xED':'iacute','\\xCD':'Iacute','\\xEC':'igrave','\\xCC':'Igrave','\\xEE':'icirc','\\xCE':'Icirc','\\xEF':'iuml','\\xCF':'Iuml','\\u0129':'itilde','\\u0128':'Itilde','\\u0130':'Idot','\\u012F':'iogon','\\u012E':'Iogon','\\u012B':'imacr','\\u012A':'Imacr','\\u0133':'ijlig','\\u0132':'IJlig','\\u0131':'imath','\\uD835\\uDCBF':'jscr','\\uD835\\uDD5B':'jopf','\\uD835\\uDD27':'jfr','\\uD835\\uDCA5':'Jscr','\\uD835\\uDD0D':'Jfr','\\uD835\\uDD41':'Jopf','\\u0135':'jcirc','\\u0134':'Jcirc','\\u0237':'jmath','\\uD835\\uDD5C':'kopf','\\uD835\\uDCC0':'kscr','\\uD835\\uDD28':'kfr','\\uD835\\uDCA6':'Kscr','\\uD835\\uDD42':'Kopf','\\uD835\\uDD0E':'Kfr','\\u0137':'kcedil','\\u0136':'Kcedil','\\uD835\\uDD29':'lfr','\\uD835\\uDCC1':'lscr','\\u2113':'ell','\\uD835\\uDD5D':'lopf','\\u2112':'Lscr','\\uD835\\uDD0F':'Lfr','\\uD835\\uDD43':'Lopf','\\u013A':'lacute','\\u0139':'Lacute','\\u013E':'lcaron','\\u013D':'Lcaron','\\u013C':'lcedil','\\u013B':'Lcedil','\\u0142':'lstrok','\\u0141':'Lstrok','\\u0140':'lmidot','\\u013F':'Lmidot','\\uD835\\uDD2A':'mfr','\\uD835\\uDD5E':'mopf','\\uD835\\uDCC2':'mscr','\\uD835\\uDD10':'Mfr','\\uD835\\uDD44':'Mopf','\\u2133':'Mscr','\\uD835\\uDD2B':'nfr','\\uD835\\uDD5F':'nopf','\\uD835\\uDCC3':'nscr','\\u2115':'Nopf','\\uD835\\uDCA9':'Nscr','\\uD835\\uDD11':'Nfr','\\u0144':'nacute','\\u0143':'Nacute','\\u0148':'ncaron','\\u0147':'Ncaron','\\xF1':'ntilde','\\xD1':'Ntilde','\\u0146':'ncedil','\\u0145':'Ncedil','\\u2116':'numero','\\u014B':'eng','\\u014A':'ENG','\\uD835\\uDD60':'oopf','\\uD835\\uDD2C':'ofr','\\u2134':'oscr','\\uD835\\uDCAA':'Oscr','\\uD835\\uDD12':'Ofr','\\uD835\\uDD46':'Oopf','\\xBA':'ordm','\\xF3':'oacute','\\xD3':'Oacute','\\xF2':'ograve','\\xD2':'Ograve','\\xF4':'ocirc','\\xD4':'Ocirc','\\xF6':'ouml','\\xD6':'Ouml','\\u0151':'odblac','\\u0150':'Odblac','\\xF5':'otilde','\\xD5':'Otilde','\\xF8':'oslash','\\xD8':'Oslash','\\u014D':'omacr','\\u014C':'Omacr','\\u0153':'oelig','\\u0152':'OElig','\\uD835\\uDD2D':'pfr','\\uD835\\uDCC5':'pscr','\\uD835\\uDD61':'popf','\\u2119':'Popf','\\uD835\\uDD13':'Pfr','\\uD835\\uDCAB':'Pscr','\\uD835\\uDD62':'qopf','\\uD835\\uDD2E':'qfr','\\uD835\\uDCC6':'qscr','\\uD835\\uDCAC':'Qscr','\\uD835\\uDD14':'Qfr','\\u211A':'Qopf','\\u0138':'kgreen','\\uD835\\uDD2F':'rfr','\\uD835\\uDD63':'ropf','\\uD835\\uDCC7':'rscr','\\u211B':'Rscr','\\u211C':'Re','\\u211D':'Ropf','\\u0155':'racute','\\u0154':'Racute','\\u0159':'rcaron','\\u0158':'Rcaron','\\u0157':'rcedil','\\u0156':'Rcedil','\\uD835\\uDD64':'sopf','\\uD835\\uDCC8':'sscr','\\uD835\\uDD30':'sfr','\\uD835\\uDD4A':'Sopf','\\uD835\\uDD16':'Sfr','\\uD835\\uDCAE':'Sscr','\\u24C8':'oS','\\u015B':'sacute','\\u015A':'Sacute','\\u015D':'scirc','\\u015C':'Scirc','\\u0161':'scaron','\\u0160':'Scaron','\\u015F':'scedil','\\u015E':'Scedil','\\xDF':'szlig','\\uD835\\uDD31':'tfr','\\uD835\\uDCC9':'tscr','\\uD835\\uDD65':'topf','\\uD835\\uDCAF':'Tscr','\\uD835\\uDD17':'Tfr','\\uD835\\uDD4B':'Topf','\\u0165':'tcaron','\\u0164':'Tcaron','\\u0163':'tcedil','\\u0162':'Tcedil','\\u2122':'trade','\\u0167':'tstrok','\\u0166':'Tstrok','\\uD835\\uDCCA':'uscr','\\uD835\\uDD66':'uopf','\\uD835\\uDD32':'ufr','\\uD835\\uDD4C':'Uopf','\\uD835\\uDD18':'Ufr','\\uD835\\uDCB0':'Uscr','\\xFA':'uacute','\\xDA':'Uacute','\\xF9':'ugrave','\\xD9':'Ugrave','\\u016D':'ubreve','\\u016C':'Ubreve','\\xFB':'ucirc','\\xDB':'Ucirc','\\u016F':'uring','\\u016E':'Uring','\\xFC':'uuml','\\xDC':'Uuml','\\u0171':'udblac','\\u0170':'Udblac','\\u0169':'utilde','\\u0168':'Utilde','\\u0173':'uogon','\\u0172':'Uogon','\\u016B':'umacr','\\u016A':'Umacr','\\uD835\\uDD33':'vfr','\\uD835\\uDD67':'vopf','\\uD835\\uDCCB':'vscr','\\uD835\\uDD19':'Vfr','\\uD835\\uDD4D':'Vopf','\\uD835\\uDCB1':'Vscr','\\uD835\\uDD68':'wopf','\\uD835\\uDCCC':'wscr','\\uD835\\uDD34':'wfr','\\uD835\\uDCB2':'Wscr','\\uD835\\uDD4E':'Wopf','\\uD835\\uDD1A':'Wfr','\\u0175':'wcirc','\\u0174':'Wcirc','\\uD835\\uDD35':'xfr','\\uD835\\uDCCD':'xscr','\\uD835\\uDD69':'xopf','\\uD835\\uDD4F':'Xopf','\\uD835\\uDD1B':'Xfr','\\uD835\\uDCB3':'Xscr','\\uD835\\uDD36':'yfr','\\uD835\\uDCCE':'yscr','\\uD835\\uDD6A':'yopf','\\uD835\\uDCB4':'Yscr','\\uD835\\uDD1C':'Yfr','\\uD835\\uDD50':'Yopf','\\xFD':'yacute','\\xDD':'Yacute','\\u0177':'ycirc','\\u0176':'Ycirc','\\xFF':'yuml','\\u0178':'Yuml','\\uD835\\uDCCF':'zscr','\\uD835\\uDD37':'zfr','\\uD835\\uDD6B':'zopf','\\u2128':'Zfr','\\u2124':'Zopf','\\uD835\\uDCB5':'Zscr','\\u017A':'zacute','\\u0179':'Zacute','\\u017E':'zcaron','\\u017D':'Zcaron','\\u017C':'zdot','\\u017B':'Zdot','\\u01B5':'imped','\\xFE':'thorn','\\xDE':'THORN','\\u0149':'napos','\\u03B1':'alpha','\\u0391':'Alpha','\\u03B2':'beta','\\u0392':'Beta','\\u03B3':'gamma','\\u0393':'Gamma','\\u03B4':'delta','\\u0394':'Delta','\\u03B5':'epsi','\\u03F5':'epsiv','\\u0395':'Epsilon','\\u03DD':'gammad','\\u03DC':'Gammad','\\u03B6':'zeta','\\u0396':'Zeta','\\u03B7':'eta','\\u0397':'Eta','\\u03B8':'theta','\\u03D1':'thetav','\\u0398':'Theta','\\u03B9':'iota','\\u0399':'Iota','\\u03BA':'kappa','\\u03F0':'kappav','\\u039A':'Kappa','\\u03BB':'lambda','\\u039B':'Lambda','\\u03BC':'mu','\\xB5':'micro','\\u039C':'Mu','\\u03BD':'nu','\\u039D':'Nu','\\u03BE':'xi','\\u039E':'Xi','\\u03BF':'omicron','\\u039F':'Omicron','\\u03C0':'pi','\\u03D6':'piv','\\u03A0':'Pi','\\u03C1':'rho','\\u03F1':'rhov','\\u03A1':'Rho','\\u03C3':'sigma','\\u03A3':'Sigma','\\u03C2':'sigmaf','\\u03C4':'tau','\\u03A4':'Tau','\\u03C5':'upsi','\\u03A5':'Upsilon','\\u03D2':'Upsi','\\u03C6':'phi','\\u03D5':'phiv','\\u03A6':'Phi','\\u03C7':'chi','\\u03A7':'Chi','\\u03C8':'psi','\\u03A8':'Psi','\\u03C9':'omega','\\u03A9':'ohm','\\u0430':'acy','\\u0410':'Acy','\\u0431':'bcy','\\u0411':'Bcy','\\u0432':'vcy','\\u0412':'Vcy','\\u0433':'gcy','\\u0413':'Gcy','\\u0453':'gjcy','\\u0403':'GJcy','\\u0434':'dcy','\\u0414':'Dcy','\\u0452':'djcy','\\u0402':'DJcy','\\u0435':'iecy','\\u0415':'IEcy','\\u0451':'iocy','\\u0401':'IOcy','\\u0454':'jukcy','\\u0404':'Jukcy','\\u0436':'zhcy','\\u0416':'ZHcy','\\u0437':'zcy','\\u0417':'Zcy','\\u0455':'dscy','\\u0405':'DScy','\\u0438':'icy','\\u0418':'Icy','\\u0456':'iukcy','\\u0406':'Iukcy','\\u0457':'yicy','\\u0407':'YIcy','\\u0439':'jcy','\\u0419':'Jcy','\\u0458':'jsercy','\\u0408':'Jsercy','\\u043A':'kcy','\\u041A':'Kcy','\\u045C':'kjcy','\\u040C':'KJcy','\\u043B':'lcy','\\u041B':'Lcy','\\u0459':'ljcy','\\u0409':'LJcy','\\u043C':'mcy','\\u041C':'Mcy','\\u043D':'ncy','\\u041D':'Ncy','\\u045A':'njcy','\\u040A':'NJcy','\\u043E':'ocy','\\u041E':'Ocy','\\u043F':'pcy','\\u041F':'Pcy','\\u0440':'rcy','\\u0420':'Rcy','\\u0441':'scy','\\u0421':'Scy','\\u0442':'tcy','\\u0422':'Tcy','\\u045B':'tshcy','\\u040B':'TSHcy','\\u0443':'ucy','\\u0423':'Ucy','\\u045E':'ubrcy','\\u040E':'Ubrcy','\\u0444':'fcy','\\u0424':'Fcy','\\u0445':'khcy','\\u0425':'KHcy','\\u0446':'tscy','\\u0426':'TScy','\\u0447':'chcy','\\u0427':'CHcy','\\u045F':'dzcy','\\u040F':'DZcy','\\u0448':'shcy','\\u0428':'SHcy','\\u0449':'shchcy','\\u0429':'SHCHcy','\\u044A':'hardcy','\\u042A':'HARDcy','\\u044B':'ycy','\\u042B':'Ycy','\\u044C':'softcy','\\u042C':'SOFTcy','\\u044D':'ecy','\\u042D':'Ecy','\\u044E':'yucy','\\u042E':'YUcy','\\u044F':'yacy','\\u042F':'YAcy','\\u2135':'aleph','\\u2136':'beth','\\u2137':'gimel','\\u2138':'daleth'};\n\n\tvar regexEscape = /[\"&'<>`]/g;\n\tvar escapeMap = {\n\t\t'\"': '"',\n\t\t'&': '&',\n\t\t'\\'': ''',\n\t\t'<': '<',\n\t\t// See https://mathiasbynens.be/notes/ambiguous-ampersands: in HTML, the\n\t\t// following is not strictly necessary unless it’s part of a tag or an\n\t\t// unquoted attribute value. We’re only escaping it to support those\n\t\t// situations, and for XML support.\n\t\t'>': '>',\n\t\t// In Internet Explorer ≤ 8, the backtick character can be used\n\t\t// to break out of (un)quoted attribute values or HTML comments.\n\t\t// See http://html5sec.org/#102, http://html5sec.org/#108, and\n\t\t// http://html5sec.org/#133.\n\t\t'`': '`'\n\t};\n\n\tvar regexInvalidEntity = /&#(?:[xX][^a-fA-F0-9]|[^0-9xX])/;\n\tvar regexInvalidRawCodePoint = /[\\0-\\x08\\x0B\\x0E-\\x1F\\x7F-\\x9F\\uFDD0-\\uFDEF\\uFFFE\\uFFFF]|[\\uD83F\\uD87F\\uD8BF\\uD8FF\\uD93F\\uD97F\\uD9BF\\uD9FF\\uDA3F\\uDA7F\\uDABF\\uDAFF\\uDB3F\\uDB7F\\uDBBF\\uDBFF][\\uDFFE\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\n\tvar regexDecode = /&(CounterClockwiseContourIntegral|DoubleLongLeftRightArrow|ClockwiseContourIntegral|NotNestedGreaterGreater|NotSquareSupersetEqual|DiacriticalDoubleAcute|NotRightTriangleEqual|NotSucceedsSlantEqual|NotPrecedesSlantEqual|CloseCurlyDoubleQuote|NegativeVeryThinSpace|DoubleContourIntegral|FilledVerySmallSquare|CapitalDifferentialD|OpenCurlyDoubleQuote|EmptyVerySmallSquare|NestedGreaterGreater|DoubleLongRightArrow|NotLeftTriangleEqual|NotGreaterSlantEqual|ReverseUpEquilibrium|DoubleLeftRightArrow|NotSquareSubsetEqual|NotDoubleVerticalBar|RightArrowLeftArrow|NotGreaterFullEqual|NotRightTriangleBar|SquareSupersetEqual|DownLeftRightVector|DoubleLongLeftArrow|leftrightsquigarrow|LeftArrowRightArrow|NegativeMediumSpace|blacktriangleright|RightDownVectorBar|PrecedesSlantEqual|RightDoubleBracket|SucceedsSlantEqual|NotLeftTriangleBar|RightTriangleEqual|SquareIntersection|RightDownTeeVector|ReverseEquilibrium|NegativeThickSpace|longleftrightarrow|Longleftrightarrow|LongLeftRightArrow|DownRightTeeVector|DownRightVectorBar|GreaterSlantEqual|SquareSubsetEqual|LeftDownVectorBar|LeftDoubleBracket|VerticalSeparator|rightleftharpoons|NotGreaterGreater|NotSquareSuperset|blacktriangleleft|blacktriangledown|NegativeThinSpace|LeftDownTeeVector|NotLessSlantEqual|leftrightharpoons|DoubleUpDownArrow|DoubleVerticalBar|LeftTriangleEqual|FilledSmallSquare|twoheadrightarrow|NotNestedLessLess|DownLeftTeeVector|DownLeftVectorBar|RightAngleBracket|NotTildeFullEqual|NotReverseElement|RightUpDownVector|DiacriticalTilde|NotSucceedsTilde|circlearrowright|NotPrecedesEqual|rightharpoondown|DoubleRightArrow|NotSucceedsEqual|NonBreakingSpace|NotRightTriangle|LessEqualGreater|RightUpTeeVector|LeftAngleBracket|GreaterFullEqual|DownArrowUpArrow|RightUpVectorBar|twoheadleftarrow|GreaterEqualLess|downharpoonright|RightTriangleBar|ntrianglerighteq|NotSupersetEqual|LeftUpDownVector|DiacriticalAcute|rightrightarrows|vartriangleright|UpArrowDownArrow|DiacriticalGrave|UnderParenthesis|EmptySmallSquare|LeftUpVectorBar|leftrightarrows|DownRightVector|downharpoonleft|trianglerighteq|ShortRightArrow|OverParenthesis|DoubleLeftArrow|DoubleDownArrow|NotSquareSubset|bigtriangledown|ntrianglelefteq|UpperRightArrow|curvearrowright|vartriangleleft|NotLeftTriangle|nleftrightarrow|LowerRightArrow|NotHumpDownHump|NotGreaterTilde|rightthreetimes|LeftUpTeeVector|NotGreaterEqual|straightepsilon|LeftTriangleBar|rightsquigarrow|ContourIntegral|rightleftarrows|CloseCurlyQuote|RightDownVector|LeftRightVector|nLeftrightarrow|leftharpoondown|circlearrowleft|SquareSuperset|OpenCurlyQuote|hookrightarrow|HorizontalLine|DiacriticalDot|NotLessGreater|ntriangleright|DoubleRightTee|InvisibleComma|InvisibleTimes|LowerLeftArrow|DownLeftVector|NotSubsetEqual|curvearrowleft|trianglelefteq|NotVerticalBar|TildeFullEqual|downdownarrows|NotGreaterLess|RightTeeVector|ZeroWidthSpace|looparrowright|LongRightArrow|doublebarwedge|ShortLeftArrow|ShortDownArrow|RightVectorBar|GreaterGreater|ReverseElement|rightharpoonup|LessSlantEqual|leftthreetimes|upharpoonright|rightarrowtail|LeftDownVector|Longrightarrow|NestedLessLess|UpperLeftArrow|nshortparallel|leftleftarrows|leftrightarrow|Leftrightarrow|LeftRightArrow|longrightarrow|upharpoonleft|RightArrowBar|ApplyFunction|LeftTeeVector|leftarrowtail|NotEqualTilde|varsubsetneqq|varsupsetneqq|RightTeeArrow|SucceedsEqual|SucceedsTilde|LeftVectorBar|SupersetEqual|hookleftarrow|DifferentialD|VerticalTilde|VeryThinSpace|blacktriangle|bigtriangleup|LessFullEqual|divideontimes|leftharpoonup|UpEquilibrium|ntriangleleft|RightTriangle|measuredangle|shortparallel|longleftarrow|Longleftarrow|LongLeftArrow|DoubleLeftTee|Poincareplane|PrecedesEqual|triangleright|DoubleUpArrow|RightUpVector|fallingdotseq|looparrowleft|PrecedesTilde|NotTildeEqual|NotTildeTilde|smallsetminus|Proportional|triangleleft|triangledown|UnderBracket|NotHumpEqual|exponentiale|ExponentialE|NotLessTilde|HilbertSpace|RightCeiling|blacklozenge|varsupsetneq|HumpDownHump|GreaterEqual|VerticalLine|LeftTeeArrow|NotLessEqual|DownTeeArrow|LeftTriangle|varsubsetneq|Intersection|NotCongruent|DownArrowBar|LeftUpVector|LeftArrowBar|risingdotseq|GreaterTilde|RoundImplies|SquareSubset|ShortUpArrow|NotSuperset|quaternions|precnapprox|backepsilon|preccurlyeq|OverBracket|blacksquare|MediumSpace|VerticalBar|circledcirc|circleddash|CircleMinus|CircleTimes|LessGreater|curlyeqprec|curlyeqsucc|diamondsuit|UpDownArrow|Updownarrow|RuleDelayed|Rrightarrow|updownarrow|RightVector|nRightarrow|nrightarrow|eqslantless|LeftCeiling|Equilibrium|SmallCircle|expectation|NotSucceeds|thickapprox|GreaterLess|SquareUnion|NotPrecedes|NotLessLess|straightphi|succnapprox|succcurlyeq|SubsetEqual|sqsupseteq|Proportion|Laplacetrf|ImaginaryI|supsetneqq|NotGreater|gtreqqless|NotElement|ThickSpace|TildeEqual|TildeTilde|Fouriertrf|rmoustache|EqualTilde|eqslantgtr|UnderBrace|LeftVector|UpArrowBar|nLeftarrow|nsubseteqq|subsetneqq|nsupseteqq|nleftarrow|succapprox|lessapprox|UpTeeArrow|upuparrows|curlywedge|lesseqqgtr|varepsilon|varnothing|RightFloor|complement|CirclePlus|sqsubseteq|Lleftarrow|circledast|RightArrow|Rightarrow|rightarrow|lmoustache|Bernoullis|precapprox|mapstoleft|mapstodown|longmapsto|dotsquare|downarrow|DoubleDot|nsubseteq|supsetneq|leftarrow|nsupseteq|subsetneq|ThinSpace|ngeqslant|subseteqq|HumpEqual|NotSubset|triangleq|NotCupCap|lesseqgtr|heartsuit|TripleDot|Leftarrow|Coproduct|Congruent|varpropto|complexes|gvertneqq|LeftArrow|LessTilde|supseteqq|MinusPlus|CircleDot|nleqslant|NotExists|gtreqless|nparallel|UnionPlus|LeftFloor|checkmark|CenterDot|centerdot|Mellintrf|gtrapprox|bigotimes|OverBrace|spadesuit|therefore|pitchfork|rationals|PlusMinus|Backslash|Therefore|DownBreve|backsimeq|backprime|DownArrow|nshortmid|Downarrow|lvertneqq|eqvparsl|imagline|imagpart|infintie|integers|Integral|intercal|LessLess|Uarrocir|intlarhk|sqsupset|angmsdaf|sqsubset|llcorner|vartheta|cupbrcap|lnapprox|Superset|SuchThat|succnsim|succneqq|angmsdag|biguplus|curlyvee|trpezium|Succeeds|NotTilde|bigwedge|angmsdah|angrtvbd|triminus|cwconint|fpartint|lrcorner|smeparsl|subseteq|urcorner|lurdshar|laemptyv|DDotrahd|approxeq|ldrushar|awconint|mapstoup|backcong|shortmid|triangle|geqslant|gesdotol|timesbar|circledR|circledS|setminus|multimap|naturals|scpolint|ncongdot|RightTee|boxminus|gnapprox|boxtimes|andslope|thicksim|angmsdaa|varsigma|cirfnint|rtriltri|angmsdab|rppolint|angmsdac|barwedge|drbkarow|clubsuit|thetasym|bsolhsub|capbrcup|dzigrarr|doteqdot|DotEqual|dotminus|UnderBar|NotEqual|realpart|otimesas|ulcorner|hksearow|hkswarow|parallel|PartialD|elinters|emptyset|plusacir|bbrktbrk|angmsdad|pointint|bigoplus|angmsdae|Precedes|bigsqcup|varkappa|notindot|supseteq|precneqq|precnsim|profalar|profline|profsurf|leqslant|lesdotor|raemptyv|subplus|notnivb|notnivc|subrarr|zigrarr|vzigzag|submult|subedot|Element|between|cirscir|larrbfs|larrsim|lotimes|lbrksld|lbrkslu|lozenge|ldrdhar|dbkarow|bigcirc|epsilon|simrarr|simplus|ltquest|Epsilon|luruhar|gtquest|maltese|npolint|eqcolon|npreceq|bigodot|ddagger|gtrless|bnequiv|harrcir|ddotseq|equivDD|backsim|demptyv|nsqsube|nsqsupe|Upsilon|nsubset|upsilon|minusdu|nsucceq|swarrow|nsupset|coloneq|searrow|boxplus|napprox|natural|asympeq|alefsym|congdot|nearrow|bigstar|diamond|supplus|tritime|LeftTee|nvinfin|triplus|NewLine|nvltrie|nvrtrie|nwarrow|nexists|Diamond|ruluhar|Implies|supmult|angzarr|suplarr|suphsub|questeq|because|digamma|Because|olcross|bemptyv|omicron|Omicron|rotimes|NoBreak|intprod|angrtvb|orderof|uwangle|suphsol|lesdoto|orslope|DownTee|realine|cudarrl|rdldhar|OverBar|supedot|lessdot|supdsub|topfork|succsim|rbrkslu|rbrksld|pertenk|cudarrr|isindot|planckh|lessgtr|pluscir|gesdoto|plussim|plustwo|lesssim|cularrp|rarrsim|Cayleys|notinva|notinvb|notinvc|UpArrow|Uparrow|uparrow|NotLess|dwangle|precsim|Product|curarrm|Cconint|dotplus|rarrbfs|ccupssm|Cedilla|cemptyv|notniva|quatint|frac35|frac38|frac45|frac56|frac58|frac78|tridot|xoplus|gacute|gammad|Gammad|lfisht|lfloor|bigcup|sqsupe|gbreve|Gbreve|lharul|sqsube|sqcups|Gcedil|apacir|llhard|lmidot|Lmidot|lmoust|andand|sqcaps|approx|Abreve|spades|circeq|tprime|divide|topcir|Assign|topbot|gesdot|divonx|xuplus|timesd|gesles|atilde|solbar|SOFTcy|loplus|timesb|lowast|lowbar|dlcorn|dlcrop|softcy|dollar|lparlt|thksim|lrhard|Atilde|lsaquo|smashp|bigvee|thinsp|wreath|bkarow|lsquor|lstrok|Lstrok|lthree|ltimes|ltlarr|DotDot|simdot|ltrPar|weierp|xsqcup|angmsd|sigmav|sigmaf|zeetrf|Zcaron|zcaron|mapsto|vsupne|thetav|cirmid|marker|mcomma|Zacute|vsubnE|there4|gtlPar|vsubne|bottom|gtrarr|SHCHcy|shchcy|midast|midcir|middot|minusb|minusd|gtrdot|bowtie|sfrown|mnplus|models|colone|seswar|Colone|mstpos|searhk|gtrsim|nacute|Nacute|boxbox|telrec|hairsp|Tcedil|nbumpe|scnsim|ncaron|Ncaron|ncedil|Ncedil|hamilt|Scedil|nearhk|hardcy|HARDcy|tcedil|Tcaron|commat|nequiv|nesear|tcaron|target|hearts|nexist|varrho|scedil|Scaron|scaron|hellip|Sacute|sacute|hercon|swnwar|compfn|rtimes|rthree|rsquor|rsaquo|zacute|wedgeq|homtht|barvee|barwed|Barwed|rpargt|horbar|conint|swarhk|roplus|nltrie|hslash|hstrok|Hstrok|rmoust|Conint|bprime|hybull|hyphen|iacute|Iacute|supsup|supsub|supsim|varphi|coprod|brvbar|agrave|Supset|supset|igrave|Igrave|notinE|Agrave|iiiint|iinfin|copysr|wedbar|Verbar|vangrt|becaus|incare|verbar|inodot|bullet|drcorn|intcal|drcrop|cularr|vellip|Utilde|bumpeq|cupcap|dstrok|Dstrok|CupCap|cupcup|cupdot|eacute|Eacute|supdot|iquest|easter|ecaron|Ecaron|ecolon|isinsv|utilde|itilde|Itilde|curarr|succeq|Bumpeq|cacute|ulcrop|nparsl|Cacute|nprcue|egrave|Egrave|nrarrc|nrarrw|subsup|subsub|nrtrie|jsercy|nsccue|Jsercy|kappav|kcedil|Kcedil|subsim|ulcorn|nsimeq|egsdot|veebar|kgreen|capand|elsdot|Subset|subset|curren|aacute|lacute|Lacute|emptyv|ntilde|Ntilde|lagran|lambda|Lambda|capcap|Ugrave|langle|subdot|emsp13|numero|emsp14|nvdash|nvDash|nVdash|nVDash|ugrave|ufisht|nvHarr|larrfs|nvlArr|larrhk|larrlp|larrpl|nvrArr|Udblac|nwarhk|larrtl|nwnear|oacute|Oacute|latail|lAtail|sstarf|lbrace|odblac|Odblac|lbrack|udblac|odsold|eparsl|lcaron|Lcaron|ograve|Ograve|lcedil|Lcedil|Aacute|ssmile|ssetmn|squarf|ldquor|capcup|ominus|cylcty|rharul|eqcirc|dagger|rfloor|rfisht|Dagger|daleth|equals|origof|capdot|equest|dcaron|Dcaron|rdquor|oslash|Oslash|otilde|Otilde|otimes|Otimes|urcrop|Ubreve|ubreve|Yacute|Uacute|uacute|Rcedil|rcedil|urcorn|parsim|Rcaron|Vdashl|rcaron|Tstrok|percnt|period|permil|Exists|yacute|rbrack|rbrace|phmmat|ccaron|Ccaron|planck|ccedil|plankv|tstrok|female|plusdo|plusdu|ffilig|plusmn|ffllig|Ccedil|rAtail|dfisht|bernou|ratail|Rarrtl|rarrtl|angsph|rarrpl|rarrlp|rarrhk|xwedge|xotime|forall|ForAll|Vvdash|vsupnE|preceq|bigcap|frac12|frac13|frac14|primes|rarrfs|prnsim|frac15|Square|frac16|square|lesdot|frac18|frac23|propto|prurel|rarrap|rangle|puncsp|frac25|Racute|qprime|racute|lesges|frac34|abreve|AElig|eqsim|utdot|setmn|urtri|Equal|Uring|seArr|uring|searr|dashv|Dashv|mumap|nabla|iogon|Iogon|sdote|sdotb|scsim|napid|napos|equiv|natur|Acirc|dblac|erarr|nbump|iprod|erDot|ucirc|awint|esdot|angrt|ncong|isinE|scnap|Scirc|scirc|ndash|isins|Ubrcy|nearr|neArr|isinv|nedot|ubrcy|acute|Ycirc|iukcy|Iukcy|xutri|nesim|caret|jcirc|Jcirc|caron|twixt|ddarr|sccue|exist|jmath|sbquo|ngeqq|angst|ccaps|lceil|ngsim|UpTee|delta|Delta|rtrif|nharr|nhArr|nhpar|rtrie|jukcy|Jukcy|kappa|rsquo|Kappa|nlarr|nlArr|TSHcy|rrarr|aogon|Aogon|fflig|xrarr|tshcy|ccirc|nleqq|filig|upsih|nless|dharl|nlsim|fjlig|ropar|nltri|dharr|robrk|roarr|fllig|fltns|roang|rnmid|subnE|subne|lAarr|trisb|Ccirc|acirc|ccups|blank|VDash|forkv|Vdash|langd|cedil|blk12|blk14|laquo|strns|diams|notin|vDash|larrb|blk34|block|disin|uplus|vdash|vBarv|aelig|starf|Wedge|check|xrArr|lates|lbarr|lBarr|notni|lbbrk|bcong|frasl|lbrke|frown|vrtri|vprop|vnsup|gamma|Gamma|wedge|xodot|bdquo|srarr|doteq|ldquo|boxdl|boxdL|gcirc|Gcirc|boxDl|boxDL|boxdr|boxdR|boxDr|TRADE|trade|rlhar|boxDR|vnsub|npart|vltri|rlarr|boxhd|boxhD|nprec|gescc|nrarr|nrArr|boxHd|boxHD|boxhu|boxhU|nrtri|boxHu|clubs|boxHU|times|colon|Colon|gimel|xlArr|Tilde|nsime|tilde|nsmid|nspar|THORN|thorn|xlarr|nsube|nsubE|thkap|xhArr|comma|nsucc|boxul|boxuL|nsupe|nsupE|gneqq|gnsim|boxUl|boxUL|grave|boxur|boxuR|boxUr|boxUR|lescc|angle|bepsi|boxvh|varpi|boxvH|numsp|Theta|gsime|gsiml|theta|boxVh|boxVH|boxvl|gtcir|gtdot|boxvL|boxVl|boxVL|crarr|cross|Cross|nvsim|boxvr|nwarr|nwArr|sqsup|dtdot|Uogon|lhard|lharu|dtrif|ocirc|Ocirc|lhblk|duarr|odash|sqsub|Hacek|sqcup|llarr|duhar|oelig|OElig|ofcir|boxvR|uogon|lltri|boxVr|csube|uuarr|ohbar|csupe|ctdot|olarr|olcir|harrw|oline|sqcap|omacr|Omacr|omega|Omega|boxVR|aleph|lneqq|lnsim|loang|loarr|rharu|lobrk|hcirc|operp|oplus|rhard|Hcirc|orarr|Union|order|ecirc|Ecirc|cuepr|szlig|cuesc|breve|reals|eDDot|Breve|hoarr|lopar|utrif|rdquo|Umacr|umacr|efDot|swArr|ultri|alpha|rceil|ovbar|swarr|Wcirc|wcirc|smtes|smile|bsemi|lrarr|aring|parsl|lrhar|bsime|uhblk|lrtri|cupor|Aring|uharr|uharl|slarr|rbrke|bsolb|lsime|rbbrk|RBarr|lsimg|phone|rBarr|rbarr|icirc|lsquo|Icirc|emacr|Emacr|ratio|simne|plusb|simlE|simgE|simeq|pluse|ltcir|ltdot|empty|xharr|xdtri|iexcl|Alpha|ltrie|rarrw|pound|ltrif|xcirc|bumpe|prcue|bumpE|asymp|amacr|cuvee|Sigma|sigma|iiint|udhar|iiota|ijlig|IJlig|supnE|imacr|Imacr|prime|Prime|image|prnap|eogon|Eogon|rarrc|mdash|mDDot|cuwed|imath|supne|imped|Amacr|udarr|prsim|micro|rarrb|cwint|raquo|infin|eplus|range|rangd|Ucirc|radic|minus|amalg|veeeq|rAarr|epsiv|ycirc|quest|sharp|quot|zwnj|Qscr|race|qscr|Qopf|qopf|qint|rang|Rang|Zscr|zscr|Zopf|zopf|rarr|rArr|Rarr|Pscr|pscr|prop|prod|prnE|prec|ZHcy|zhcy|prap|Zeta|zeta|Popf|popf|Zdot|plus|zdot|Yuml|yuml|phiv|YUcy|yucy|Yscr|yscr|perp|Yopf|yopf|part|para|YIcy|Ouml|rcub|yicy|YAcy|rdca|ouml|osol|Oscr|rdsh|yacy|real|oscr|xvee|andd|rect|andv|Xscr|oror|ordm|ordf|xscr|ange|aopf|Aopf|rHar|Xopf|opar|Oopf|xopf|xnis|rhov|oopf|omid|xmap|oint|apid|apos|ogon|ascr|Ascr|odot|odiv|xcup|xcap|ocir|oast|nvlt|nvle|nvgt|nvge|nvap|Wscr|wscr|auml|ntlg|ntgl|nsup|nsub|nsim|Nscr|nscr|nsce|Wopf|ring|npre|wopf|npar|Auml|Barv|bbrk|Nopf|nopf|nmid|nLtv|beta|ropf|Ropf|Beta|beth|nles|rpar|nleq|bnot|bNot|nldr|NJcy|rscr|Rscr|Vscr|vscr|rsqb|njcy|bopf|nisd|Bopf|rtri|Vopf|nGtv|ngtr|vopf|boxh|boxH|boxv|nges|ngeq|boxV|bscr|scap|Bscr|bsim|Vert|vert|bsol|bull|bump|caps|cdot|ncup|scnE|ncap|nbsp|napE|Cdot|cent|sdot|Vbar|nang|vBar|chcy|Mscr|mscr|sect|semi|CHcy|Mopf|mopf|sext|circ|cire|mldr|mlcp|cirE|comp|shcy|SHcy|vArr|varr|cong|copf|Copf|copy|COPY|malt|male|macr|lvnE|cscr|ltri|sime|ltcc|simg|Cscr|siml|csub|Uuml|lsqb|lsim|uuml|csup|Lscr|lscr|utri|smid|lpar|cups|smte|lozf|darr|Lopf|Uscr|solb|lopf|sopf|Sopf|lneq|uscr|spar|dArr|lnap|Darr|dash|Sqrt|LJcy|ljcy|lHar|dHar|Upsi|upsi|diam|lesg|djcy|DJcy|leqq|dopf|Dopf|dscr|Dscr|dscy|ldsh|ldca|squf|DScy|sscr|Sscr|dsol|lcub|late|star|Star|Uopf|Larr|lArr|larr|uopf|dtri|dzcy|sube|subE|Lang|lang|Kscr|kscr|Kopf|kopf|KJcy|kjcy|KHcy|khcy|DZcy|ecir|edot|eDot|Jscr|jscr|succ|Jopf|jopf|Edot|uHar|emsp|ensp|Iuml|iuml|eopf|isin|Iscr|iscr|Eopf|epar|sung|epsi|escr|sup1|sup2|sup3|Iota|iota|supe|supE|Iopf|iopf|IOcy|iocy|Escr|esim|Esim|imof|Uarr|QUOT|uArr|uarr|euml|IEcy|iecy|Idot|Euml|euro|excl|Hscr|hscr|Hopf|hopf|TScy|tscy|Tscr|hbar|tscr|flat|tbrk|fnof|hArr|harr|half|fopf|Fopf|tdot|gvnE|fork|trie|gtcc|fscr|Fscr|gdot|gsim|Gscr|gscr|Gopf|gopf|gneq|Gdot|tosa|gnap|Topf|topf|geqq|toea|GJcy|gjcy|tint|gesl|mid|Sfr|ggg|top|ges|gla|glE|glj|geq|gne|gEl|gel|gnE|Gcy|gcy|gap|Tfr|tfr|Tcy|tcy|Hat|Tau|Ffr|tau|Tab|hfr|Hfr|ffr|Fcy|fcy|icy|Icy|iff|ETH|eth|ifr|Ifr|Eta|eta|int|Int|Sup|sup|ucy|Ucy|Sum|sum|jcy|ENG|ufr|Ufr|eng|Jcy|jfr|els|ell|egs|Efr|efr|Jfr|uml|kcy|Kcy|Ecy|ecy|kfr|Kfr|lap|Sub|sub|lat|lcy|Lcy|leg|Dot|dot|lEg|leq|les|squ|div|die|lfr|Lfr|lgE|Dfr|dfr|Del|deg|Dcy|dcy|lne|lnE|sol|loz|smt|Cup|lrm|cup|lsh|Lsh|sim|shy|map|Map|mcy|Mcy|mfr|Mfr|mho|gfr|Gfr|sfr|cir|Chi|chi|nap|Cfr|vcy|Vcy|cfr|Scy|scy|ncy|Ncy|vee|Vee|Cap|cap|nfr|scE|sce|Nfr|nge|ngE|nGg|vfr|Vfr|ngt|bot|nGt|nis|niv|Rsh|rsh|nle|nlE|bne|Bfr|bfr|nLl|nlt|nLt|Bcy|bcy|not|Not|rlm|wfr|Wfr|npr|nsc|num|ocy|ast|Ocy|ofr|xfr|Xfr|Ofr|ogt|ohm|apE|olt|Rho|ape|rho|Rfr|rfr|ord|REG|ang|reg|orv|And|and|AMP|Rcy|amp|Afr|ycy|Ycy|yen|yfr|Yfr|rcy|par|pcy|Pcy|pfr|Pfr|phi|Phi|afr|Acy|acy|zcy|Zcy|piv|acE|acd|zfr|Zfr|pre|prE|psi|Psi|qfr|Qfr|zwj|Or|ge|Gg|gt|gg|el|oS|lt|Lt|LT|Re|lg|gl|eg|ne|Im|it|le|DD|wp|wr|nu|Nu|dd|lE|Sc|sc|pi|Pi|ee|af|ll|Ll|rx|gE|xi|pm|Xi|ic|pr|Pr|in|ni|mp|mu|ac|Mu|or|ap|Gt|GT|ii);|&(Aacute|Agrave|Atilde|Ccedil|Eacute|Egrave|Iacute|Igrave|Ntilde|Oacute|Ograve|Oslash|Otilde|Uacute|Ugrave|Yacute|aacute|agrave|atilde|brvbar|ccedil|curren|divide|eacute|egrave|frac12|frac14|frac34|iacute|igrave|iquest|middot|ntilde|oacute|ograve|oslash|otilde|plusmn|uacute|ugrave|yacute|AElig|Acirc|Aring|Ecirc|Icirc|Ocirc|THORN|Ucirc|acirc|acute|aelig|aring|cedil|ecirc|icirc|iexcl|laquo|micro|ocirc|pound|raquo|szlig|thorn|times|ucirc|Auml|COPY|Euml|Iuml|Ouml|QUOT|Uuml|auml|cent|copy|euml|iuml|macr|nbsp|ordf|ordm|ouml|para|quot|sect|sup1|sup2|sup3|uuml|yuml|AMP|ETH|REG|amp|deg|eth|not|reg|shy|uml|yen|GT|LT|gt|lt)(?!;)([=a-zA-Z0-9]?)|&#([0-9]+)(;?)|&#[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+)/g;\n\tvar decodeMap = {'aacute':'\\xE1','Aacute':'\\xC1','abreve':'\\u0103','Abreve':'\\u0102','ac':'\\u223E','acd':'\\u223F','acE':'\\u223E\\u0333','acirc':'\\xE2','Acirc':'\\xC2','acute':'\\xB4','acy':'\\u0430','Acy':'\\u0410','aelig':'\\xE6','AElig':'\\xC6','af':'\\u2061','afr':'\\uD835\\uDD1E','Afr':'\\uD835\\uDD04','agrave':'\\xE0','Agrave':'\\xC0','alefsym':'\\u2135','aleph':'\\u2135','alpha':'\\u03B1','Alpha':'\\u0391','amacr':'\\u0101','Amacr':'\\u0100','amalg':'\\u2A3F','amp':'&','AMP':'&','and':'\\u2227','And':'\\u2A53','andand':'\\u2A55','andd':'\\u2A5C','andslope':'\\u2A58','andv':'\\u2A5A','ang':'\\u2220','ange':'\\u29A4','angle':'\\u2220','angmsd':'\\u2221','angmsdaa':'\\u29A8','angmsdab':'\\u29A9','angmsdac':'\\u29AA','angmsdad':'\\u29AB','angmsdae':'\\u29AC','angmsdaf':'\\u29AD','angmsdag':'\\u29AE','angmsdah':'\\u29AF','angrt':'\\u221F','angrtvb':'\\u22BE','angrtvbd':'\\u299D','angsph':'\\u2222','angst':'\\xC5','angzarr':'\\u237C','aogon':'\\u0105','Aogon':'\\u0104','aopf':'\\uD835\\uDD52','Aopf':'\\uD835\\uDD38','ap':'\\u2248','apacir':'\\u2A6F','ape':'\\u224A','apE':'\\u2A70','apid':'\\u224B','apos':'\\'','ApplyFunction':'\\u2061','approx':'\\u2248','approxeq':'\\u224A','aring':'\\xE5','Aring':'\\xC5','ascr':'\\uD835\\uDCB6','Ascr':'\\uD835\\uDC9C','Assign':'\\u2254','ast':'*','asymp':'\\u2248','asympeq':'\\u224D','atilde':'\\xE3','Atilde':'\\xC3','auml':'\\xE4','Auml':'\\xC4','awconint':'\\u2233','awint':'\\u2A11','backcong':'\\u224C','backepsilon':'\\u03F6','backprime':'\\u2035','backsim':'\\u223D','backsimeq':'\\u22CD','Backslash':'\\u2216','Barv':'\\u2AE7','barvee':'\\u22BD','barwed':'\\u2305','Barwed':'\\u2306','barwedge':'\\u2305','bbrk':'\\u23B5','bbrktbrk':'\\u23B6','bcong':'\\u224C','bcy':'\\u0431','Bcy':'\\u0411','bdquo':'\\u201E','becaus':'\\u2235','because':'\\u2235','Because':'\\u2235','bemptyv':'\\u29B0','bepsi':'\\u03F6','bernou':'\\u212C','Bernoullis':'\\u212C','beta':'\\u03B2','Beta':'\\u0392','beth':'\\u2136','between':'\\u226C','bfr':'\\uD835\\uDD1F','Bfr':'\\uD835\\uDD05','bigcap':'\\u22C2','bigcirc':'\\u25EF','bigcup':'\\u22C3','bigodot':'\\u2A00','bigoplus':'\\u2A01','bigotimes':'\\u2A02','bigsqcup':'\\u2A06','bigstar':'\\u2605','bigtriangledown':'\\u25BD','bigtriangleup':'\\u25B3','biguplus':'\\u2A04','bigvee':'\\u22C1','bigwedge':'\\u22C0','bkarow':'\\u290D','blacklozenge':'\\u29EB','blacksquare':'\\u25AA','blacktriangle':'\\u25B4','blacktriangledown':'\\u25BE','blacktriangleleft':'\\u25C2','blacktriangleright':'\\u25B8','blank':'\\u2423','blk12':'\\u2592','blk14':'\\u2591','blk34':'\\u2593','block':'\\u2588','bne':'=\\u20E5','bnequiv':'\\u2261\\u20E5','bnot':'\\u2310','bNot':'\\u2AED','bopf':'\\uD835\\uDD53','Bopf':'\\uD835\\uDD39','bot':'\\u22A5','bottom':'\\u22A5','bowtie':'\\u22C8','boxbox':'\\u29C9','boxdl':'\\u2510','boxdL':'\\u2555','boxDl':'\\u2556','boxDL':'\\u2557','boxdr':'\\u250C','boxdR':'\\u2552','boxDr':'\\u2553','boxDR':'\\u2554','boxh':'\\u2500','boxH':'\\u2550','boxhd':'\\u252C','boxhD':'\\u2565','boxHd':'\\u2564','boxHD':'\\u2566','boxhu':'\\u2534','boxhU':'\\u2568','boxHu':'\\u2567','boxHU':'\\u2569','boxminus':'\\u229F','boxplus':'\\u229E','boxtimes':'\\u22A0','boxul':'\\u2518','boxuL':'\\u255B','boxUl':'\\u255C','boxUL':'\\u255D','boxur':'\\u2514','boxuR':'\\u2558','boxUr':'\\u2559','boxUR':'\\u255A','boxv':'\\u2502','boxV':'\\u2551','boxvh':'\\u253C','boxvH':'\\u256A','boxVh':'\\u256B','boxVH':'\\u256C','boxvl':'\\u2524','boxvL':'\\u2561','boxVl':'\\u2562','boxVL':'\\u2563','boxvr':'\\u251C','boxvR':'\\u255E','boxVr':'\\u255F','boxVR':'\\u2560','bprime':'\\u2035','breve':'\\u02D8','Breve':'\\u02D8','brvbar':'\\xA6','bscr':'\\uD835\\uDCB7','Bscr':'\\u212C','bsemi':'\\u204F','bsim':'\\u223D','bsime':'\\u22CD','bsol':'\\\\','bsolb':'\\u29C5','bsolhsub':'\\u27C8','bull':'\\u2022','bullet':'\\u2022','bump':'\\u224E','bumpe':'\\u224F','bumpE':'\\u2AAE','bumpeq':'\\u224F','Bumpeq':'\\u224E','cacute':'\\u0107','Cacute':'\\u0106','cap':'\\u2229','Cap':'\\u22D2','capand':'\\u2A44','capbrcup':'\\u2A49','capcap':'\\u2A4B','capcup':'\\u2A47','capdot':'\\u2A40','CapitalDifferentialD':'\\u2145','caps':'\\u2229\\uFE00','caret':'\\u2041','caron':'\\u02C7','Cayleys':'\\u212D','ccaps':'\\u2A4D','ccaron':'\\u010D','Ccaron':'\\u010C','ccedil':'\\xE7','Ccedil':'\\xC7','ccirc':'\\u0109','Ccirc':'\\u0108','Cconint':'\\u2230','ccups':'\\u2A4C','ccupssm':'\\u2A50','cdot':'\\u010B','Cdot':'\\u010A','cedil':'\\xB8','Cedilla':'\\xB8','cemptyv':'\\u29B2','cent':'\\xA2','centerdot':'\\xB7','CenterDot':'\\xB7','cfr':'\\uD835\\uDD20','Cfr':'\\u212D','chcy':'\\u0447','CHcy':'\\u0427','check':'\\u2713','checkmark':'\\u2713','chi':'\\u03C7','Chi':'\\u03A7','cir':'\\u25CB','circ':'\\u02C6','circeq':'\\u2257','circlearrowleft':'\\u21BA','circlearrowright':'\\u21BB','circledast':'\\u229B','circledcirc':'\\u229A','circleddash':'\\u229D','CircleDot':'\\u2299','circledR':'\\xAE','circledS':'\\u24C8','CircleMinus':'\\u2296','CirclePlus':'\\u2295','CircleTimes':'\\u2297','cire':'\\u2257','cirE':'\\u29C3','cirfnint':'\\u2A10','cirmid':'\\u2AEF','cirscir':'\\u29C2','ClockwiseContourIntegral':'\\u2232','CloseCurlyDoubleQuote':'\\u201D','CloseCurlyQuote':'\\u2019','clubs':'\\u2663','clubsuit':'\\u2663','colon':':','Colon':'\\u2237','colone':'\\u2254','Colone':'\\u2A74','coloneq':'\\u2254','comma':',','commat':'@','comp':'\\u2201','compfn':'\\u2218','complement':'\\u2201','complexes':'\\u2102','cong':'\\u2245','congdot':'\\u2A6D','Congruent':'\\u2261','conint':'\\u222E','Conint':'\\u222F','ContourIntegral':'\\u222E','copf':'\\uD835\\uDD54','Copf':'\\u2102','coprod':'\\u2210','Coproduct':'\\u2210','copy':'\\xA9','COPY':'\\xA9','copysr':'\\u2117','CounterClockwiseContourIntegral':'\\u2233','crarr':'\\u21B5','cross':'\\u2717','Cross':'\\u2A2F','cscr':'\\uD835\\uDCB8','Cscr':'\\uD835\\uDC9E','csub':'\\u2ACF','csube':'\\u2AD1','csup':'\\u2AD0','csupe':'\\u2AD2','ctdot':'\\u22EF','cudarrl':'\\u2938','cudarrr':'\\u2935','cuepr':'\\u22DE','cuesc':'\\u22DF','cularr':'\\u21B6','cularrp':'\\u293D','cup':'\\u222A','Cup':'\\u22D3','cupbrcap':'\\u2A48','cupcap':'\\u2A46','CupCap':'\\u224D','cupcup':'\\u2A4A','cupdot':'\\u228D','cupor':'\\u2A45','cups':'\\u222A\\uFE00','curarr':'\\u21B7','curarrm':'\\u293C','curlyeqprec':'\\u22DE','curlyeqsucc':'\\u22DF','curlyvee':'\\u22CE','curlywedge':'\\u22CF','curren':'\\xA4','curvearrowleft':'\\u21B6','curvearrowright':'\\u21B7','cuvee':'\\u22CE','cuwed':'\\u22CF','cwconint':'\\u2232','cwint':'\\u2231','cylcty':'\\u232D','dagger':'\\u2020','Dagger':'\\u2021','daleth':'\\u2138','darr':'\\u2193','dArr':'\\u21D3','Darr':'\\u21A1','dash':'\\u2010','dashv':'\\u22A3','Dashv':'\\u2AE4','dbkarow':'\\u290F','dblac':'\\u02DD','dcaron':'\\u010F','Dcaron':'\\u010E','dcy':'\\u0434','Dcy':'\\u0414','dd':'\\u2146','DD':'\\u2145','ddagger':'\\u2021','ddarr':'\\u21CA','DDotrahd':'\\u2911','ddotseq':'\\u2A77','deg':'\\xB0','Del':'\\u2207','delta':'\\u03B4','Delta':'\\u0394','demptyv':'\\u29B1','dfisht':'\\u297F','dfr':'\\uD835\\uDD21','Dfr':'\\uD835\\uDD07','dHar':'\\u2965','dharl':'\\u21C3','dharr':'\\u21C2','DiacriticalAcute':'\\xB4','DiacriticalDot':'\\u02D9','DiacriticalDoubleAcute':'\\u02DD','DiacriticalGrave':'`','DiacriticalTilde':'\\u02DC','diam':'\\u22C4','diamond':'\\u22C4','Diamond':'\\u22C4','diamondsuit':'\\u2666','diams':'\\u2666','die':'\\xA8','DifferentialD':'\\u2146','digamma':'\\u03DD','disin':'\\u22F2','div':'\\xF7','divide':'\\xF7','divideontimes':'\\u22C7','divonx':'\\u22C7','djcy':'\\u0452','DJcy':'\\u0402','dlcorn':'\\u231E','dlcrop':'\\u230D','dollar':'$','dopf':'\\uD835\\uDD55','Dopf':'\\uD835\\uDD3B','dot':'\\u02D9','Dot':'\\xA8','DotDot':'\\u20DC','doteq':'\\u2250','doteqdot':'\\u2251','DotEqual':'\\u2250','dotminus':'\\u2238','dotplus':'\\u2214','dotsquare':'\\u22A1','doublebarwedge':'\\u2306','DoubleContourIntegral':'\\u222F','DoubleDot':'\\xA8','DoubleDownArrow':'\\u21D3','DoubleLeftArrow':'\\u21D0','DoubleLeftRightArrow':'\\u21D4','DoubleLeftTee':'\\u2AE4','DoubleLongLeftArrow':'\\u27F8','DoubleLongLeftRightArrow':'\\u27FA','DoubleLongRightArrow':'\\u27F9','DoubleRightArrow':'\\u21D2','DoubleRightTee':'\\u22A8','DoubleUpArrow':'\\u21D1','DoubleUpDownArrow':'\\u21D5','DoubleVerticalBar':'\\u2225','downarrow':'\\u2193','Downarrow':'\\u21D3','DownArrow':'\\u2193','DownArrowBar':'\\u2913','DownArrowUpArrow':'\\u21F5','DownBreve':'\\u0311','downdownarrows':'\\u21CA','downharpoonleft':'\\u21C3','downharpoonright':'\\u21C2','DownLeftRightVector':'\\u2950','DownLeftTeeVector':'\\u295E','DownLeftVector':'\\u21BD','DownLeftVectorBar':'\\u2956','DownRightTeeVector':'\\u295F','DownRightVector':'\\u21C1','DownRightVectorBar':'\\u2957','DownTee':'\\u22A4','DownTeeArrow':'\\u21A7','drbkarow':'\\u2910','drcorn':'\\u231F','drcrop':'\\u230C','dscr':'\\uD835\\uDCB9','Dscr':'\\uD835\\uDC9F','dscy':'\\u0455','DScy':'\\u0405','dsol':'\\u29F6','dstrok':'\\u0111','Dstrok':'\\u0110','dtdot':'\\u22F1','dtri':'\\u25BF','dtrif':'\\u25BE','duarr':'\\u21F5','duhar':'\\u296F','dwangle':'\\u29A6','dzcy':'\\u045F','DZcy':'\\u040F','dzigrarr':'\\u27FF','eacute':'\\xE9','Eacute':'\\xC9','easter':'\\u2A6E','ecaron':'\\u011B','Ecaron':'\\u011A','ecir':'\\u2256','ecirc':'\\xEA','Ecirc':'\\xCA','ecolon':'\\u2255','ecy':'\\u044D','Ecy':'\\u042D','eDDot':'\\u2A77','edot':'\\u0117','eDot':'\\u2251','Edot':'\\u0116','ee':'\\u2147','efDot':'\\u2252','efr':'\\uD835\\uDD22','Efr':'\\uD835\\uDD08','eg':'\\u2A9A','egrave':'\\xE8','Egrave':'\\xC8','egs':'\\u2A96','egsdot':'\\u2A98','el':'\\u2A99','Element':'\\u2208','elinters':'\\u23E7','ell':'\\u2113','els':'\\u2A95','elsdot':'\\u2A97','emacr':'\\u0113','Emacr':'\\u0112','empty':'\\u2205','emptyset':'\\u2205','EmptySmallSquare':'\\u25FB','emptyv':'\\u2205','EmptyVerySmallSquare':'\\u25AB','emsp':'\\u2003','emsp13':'\\u2004','emsp14':'\\u2005','eng':'\\u014B','ENG':'\\u014A','ensp':'\\u2002','eogon':'\\u0119','Eogon':'\\u0118','eopf':'\\uD835\\uDD56','Eopf':'\\uD835\\uDD3C','epar':'\\u22D5','eparsl':'\\u29E3','eplus':'\\u2A71','epsi':'\\u03B5','epsilon':'\\u03B5','Epsilon':'\\u0395','epsiv':'\\u03F5','eqcirc':'\\u2256','eqcolon':'\\u2255','eqsim':'\\u2242','eqslantgtr':'\\u2A96','eqslantless':'\\u2A95','Equal':'\\u2A75','equals':'=','EqualTilde':'\\u2242','equest':'\\u225F','Equilibrium':'\\u21CC','equiv':'\\u2261','equivDD':'\\u2A78','eqvparsl':'\\u29E5','erarr':'\\u2971','erDot':'\\u2253','escr':'\\u212F','Escr':'\\u2130','esdot':'\\u2250','esim':'\\u2242','Esim':'\\u2A73','eta':'\\u03B7','Eta':'\\u0397','eth':'\\xF0','ETH':'\\xD0','euml':'\\xEB','Euml':'\\xCB','euro':'\\u20AC','excl':'!','exist':'\\u2203','Exists':'\\u2203','expectation':'\\u2130','exponentiale':'\\u2147','ExponentialE':'\\u2147','fallingdotseq':'\\u2252','fcy':'\\u0444','Fcy':'\\u0424','female':'\\u2640','ffilig':'\\uFB03','fflig':'\\uFB00','ffllig':'\\uFB04','ffr':'\\uD835\\uDD23','Ffr':'\\uD835\\uDD09','filig':'\\uFB01','FilledSmallSquare':'\\u25FC','FilledVerySmallSquare':'\\u25AA','fjlig':'fj','flat':'\\u266D','fllig':'\\uFB02','fltns':'\\u25B1','fnof':'\\u0192','fopf':'\\uD835\\uDD57','Fopf':'\\uD835\\uDD3D','forall':'\\u2200','ForAll':'\\u2200','fork':'\\u22D4','forkv':'\\u2AD9','Fouriertrf':'\\u2131','fpartint':'\\u2A0D','frac12':'\\xBD','frac13':'\\u2153','frac14':'\\xBC','frac15':'\\u2155','frac16':'\\u2159','frac18':'\\u215B','frac23':'\\u2154','frac25':'\\u2156','frac34':'\\xBE','frac35':'\\u2157','frac38':'\\u215C','frac45':'\\u2158','frac56':'\\u215A','frac58':'\\u215D','frac78':'\\u215E','frasl':'\\u2044','frown':'\\u2322','fscr':'\\uD835\\uDCBB','Fscr':'\\u2131','gacute':'\\u01F5','gamma':'\\u03B3','Gamma':'\\u0393','gammad':'\\u03DD','Gammad':'\\u03DC','gap':'\\u2A86','gbreve':'\\u011F','Gbreve':'\\u011E','Gcedil':'\\u0122','gcirc':'\\u011D','Gcirc':'\\u011C','gcy':'\\u0433','Gcy':'\\u0413','gdot':'\\u0121','Gdot':'\\u0120','ge':'\\u2265','gE':'\\u2267','gel':'\\u22DB','gEl':'\\u2A8C','geq':'\\u2265','geqq':'\\u2267','geqslant':'\\u2A7E','ges':'\\u2A7E','gescc':'\\u2AA9','gesdot':'\\u2A80','gesdoto':'\\u2A82','gesdotol':'\\u2A84','gesl':'\\u22DB\\uFE00','gesles':'\\u2A94','gfr':'\\uD835\\uDD24','Gfr':'\\uD835\\uDD0A','gg':'\\u226B','Gg':'\\u22D9','ggg':'\\u22D9','gimel':'\\u2137','gjcy':'\\u0453','GJcy':'\\u0403','gl':'\\u2277','gla':'\\u2AA5','glE':'\\u2A92','glj':'\\u2AA4','gnap':'\\u2A8A','gnapprox':'\\u2A8A','gne':'\\u2A88','gnE':'\\u2269','gneq':'\\u2A88','gneqq':'\\u2269','gnsim':'\\u22E7','gopf':'\\uD835\\uDD58','Gopf':'\\uD835\\uDD3E','grave':'`','GreaterEqual':'\\u2265','GreaterEqualLess':'\\u22DB','GreaterFullEqual':'\\u2267','GreaterGreater':'\\u2AA2','GreaterLess':'\\u2277','GreaterSlantEqual':'\\u2A7E','GreaterTilde':'\\u2273','gscr':'\\u210A','Gscr':'\\uD835\\uDCA2','gsim':'\\u2273','gsime':'\\u2A8E','gsiml':'\\u2A90','gt':'>','Gt':'\\u226B','GT':'>','gtcc':'\\u2AA7','gtcir':'\\u2A7A','gtdot':'\\u22D7','gtlPar':'\\u2995','gtquest':'\\u2A7C','gtrapprox':'\\u2A86','gtrarr':'\\u2978','gtrdot':'\\u22D7','gtreqless':'\\u22DB','gtreqqless':'\\u2A8C','gtrless':'\\u2277','gtrsim':'\\u2273','gvertneqq':'\\u2269\\uFE00','gvnE':'\\u2269\\uFE00','Hacek':'\\u02C7','hairsp':'\\u200A','half':'\\xBD','hamilt':'\\u210B','hardcy':'\\u044A','HARDcy':'\\u042A','harr':'\\u2194','hArr':'\\u21D4','harrcir':'\\u2948','harrw':'\\u21AD','Hat':'^','hbar':'\\u210F','hcirc':'\\u0125','Hcirc':'\\u0124','hearts':'\\u2665','heartsuit':'\\u2665','hellip':'\\u2026','hercon':'\\u22B9','hfr':'\\uD835\\uDD25','Hfr':'\\u210C','HilbertSpace':'\\u210B','hksearow':'\\u2925','hkswarow':'\\u2926','hoarr':'\\u21FF','homtht':'\\u223B','hookleftarrow':'\\u21A9','hookrightarrow':'\\u21AA','hopf':'\\uD835\\uDD59','Hopf':'\\u210D','horbar':'\\u2015','HorizontalLine':'\\u2500','hscr':'\\uD835\\uDCBD','Hscr':'\\u210B','hslash':'\\u210F','hstrok':'\\u0127','Hstrok':'\\u0126','HumpDownHump':'\\u224E','HumpEqual':'\\u224F','hybull':'\\u2043','hyphen':'\\u2010','iacute':'\\xED','Iacute':'\\xCD','ic':'\\u2063','icirc':'\\xEE','Icirc':'\\xCE','icy':'\\u0438','Icy':'\\u0418','Idot':'\\u0130','iecy':'\\u0435','IEcy':'\\u0415','iexcl':'\\xA1','iff':'\\u21D4','ifr':'\\uD835\\uDD26','Ifr':'\\u2111','igrave':'\\xEC','Igrave':'\\xCC','ii':'\\u2148','iiiint':'\\u2A0C','iiint':'\\u222D','iinfin':'\\u29DC','iiota':'\\u2129','ijlig':'\\u0133','IJlig':'\\u0132','Im':'\\u2111','imacr':'\\u012B','Imacr':'\\u012A','image':'\\u2111','ImaginaryI':'\\u2148','imagline':'\\u2110','imagpart':'\\u2111','imath':'\\u0131','imof':'\\u22B7','imped':'\\u01B5','Implies':'\\u21D2','in':'\\u2208','incare':'\\u2105','infin':'\\u221E','infintie':'\\u29DD','inodot':'\\u0131','int':'\\u222B','Int':'\\u222C','intcal':'\\u22BA','integers':'\\u2124','Integral':'\\u222B','intercal':'\\u22BA','Intersection':'\\u22C2','intlarhk':'\\u2A17','intprod':'\\u2A3C','InvisibleComma':'\\u2063','InvisibleTimes':'\\u2062','iocy':'\\u0451','IOcy':'\\u0401','iogon':'\\u012F','Iogon':'\\u012E','iopf':'\\uD835\\uDD5A','Iopf':'\\uD835\\uDD40','iota':'\\u03B9','Iota':'\\u0399','iprod':'\\u2A3C','iquest':'\\xBF','iscr':'\\uD835\\uDCBE','Iscr':'\\u2110','isin':'\\u2208','isindot':'\\u22F5','isinE':'\\u22F9','isins':'\\u22F4','isinsv':'\\u22F3','isinv':'\\u2208','it':'\\u2062','itilde':'\\u0129','Itilde':'\\u0128','iukcy':'\\u0456','Iukcy':'\\u0406','iuml':'\\xEF','Iuml':'\\xCF','jcirc':'\\u0135','Jcirc':'\\u0134','jcy':'\\u0439','Jcy':'\\u0419','jfr':'\\uD835\\uDD27','Jfr':'\\uD835\\uDD0D','jmath':'\\u0237','jopf':'\\uD835\\uDD5B','Jopf':'\\uD835\\uDD41','jscr':'\\uD835\\uDCBF','Jscr':'\\uD835\\uDCA5','jsercy':'\\u0458','Jsercy':'\\u0408','jukcy':'\\u0454','Jukcy':'\\u0404','kappa':'\\u03BA','Kappa':'\\u039A','kappav':'\\u03F0','kcedil':'\\u0137','Kcedil':'\\u0136','kcy':'\\u043A','Kcy':'\\u041A','kfr':'\\uD835\\uDD28','Kfr':'\\uD835\\uDD0E','kgreen':'\\u0138','khcy':'\\u0445','KHcy':'\\u0425','kjcy':'\\u045C','KJcy':'\\u040C','kopf':'\\uD835\\uDD5C','Kopf':'\\uD835\\uDD42','kscr':'\\uD835\\uDCC0','Kscr':'\\uD835\\uDCA6','lAarr':'\\u21DA','lacute':'\\u013A','Lacute':'\\u0139','laemptyv':'\\u29B4','lagran':'\\u2112','lambda':'\\u03BB','Lambda':'\\u039B','lang':'\\u27E8','Lang':'\\u27EA','langd':'\\u2991','langle':'\\u27E8','lap':'\\u2A85','Laplacetrf':'\\u2112','laquo':'\\xAB','larr':'\\u2190','lArr':'\\u21D0','Larr':'\\u219E','larrb':'\\u21E4','larrbfs':'\\u291F','larrfs':'\\u291D','larrhk':'\\u21A9','larrlp':'\\u21AB','larrpl':'\\u2939','larrsim':'\\u2973','larrtl':'\\u21A2','lat':'\\u2AAB','latail':'\\u2919','lAtail':'\\u291B','late':'\\u2AAD','lates':'\\u2AAD\\uFE00','lbarr':'\\u290C','lBarr':'\\u290E','lbbrk':'\\u2772','lbrace':'{','lbrack':'[','lbrke':'\\u298B','lbrksld':'\\u298F','lbrkslu':'\\u298D','lcaron':'\\u013E','Lcaron':'\\u013D','lcedil':'\\u013C','Lcedil':'\\u013B','lceil':'\\u2308','lcub':'{','lcy':'\\u043B','Lcy':'\\u041B','ldca':'\\u2936','ldquo':'\\u201C','ldquor':'\\u201E','ldrdhar':'\\u2967','ldrushar':'\\u294B','ldsh':'\\u21B2','le':'\\u2264','lE':'\\u2266','LeftAngleBracket':'\\u27E8','leftarrow':'\\u2190','Leftarrow':'\\u21D0','LeftArrow':'\\u2190','LeftArrowBar':'\\u21E4','LeftArrowRightArrow':'\\u21C6','leftarrowtail':'\\u21A2','LeftCeiling':'\\u2308','LeftDoubleBracket':'\\u27E6','LeftDownTeeVector':'\\u2961','LeftDownVector':'\\u21C3','LeftDownVectorBar':'\\u2959','LeftFloor':'\\u230A','leftharpoondown':'\\u21BD','leftharpoonup':'\\u21BC','leftleftarrows':'\\u21C7','leftrightarrow':'\\u2194','Leftrightarrow':'\\u21D4','LeftRightArrow':'\\u2194','leftrightarrows':'\\u21C6','leftrightharpoons':'\\u21CB','leftrightsquigarrow':'\\u21AD','LeftRightVector':'\\u294E','LeftTee':'\\u22A3','LeftTeeArrow':'\\u21A4','LeftTeeVector':'\\u295A','leftthreetimes':'\\u22CB','LeftTriangle':'\\u22B2','LeftTriangleBar':'\\u29CF','LeftTriangleEqual':'\\u22B4','LeftUpDownVector':'\\u2951','LeftUpTeeVector':'\\u2960','LeftUpVector':'\\u21BF','LeftUpVectorBar':'\\u2958','LeftVector':'\\u21BC','LeftVectorBar':'\\u2952','leg':'\\u22DA','lEg':'\\u2A8B','leq':'\\u2264','leqq':'\\u2266','leqslant':'\\u2A7D','les':'\\u2A7D','lescc':'\\u2AA8','lesdot':'\\u2A7F','lesdoto':'\\u2A81','lesdotor':'\\u2A83','lesg':'\\u22DA\\uFE00','lesges':'\\u2A93','lessapprox':'\\u2A85','lessdot':'\\u22D6','lesseqgtr':'\\u22DA','lesseqqgtr':'\\u2A8B','LessEqualGreater':'\\u22DA','LessFullEqual':'\\u2266','LessGreater':'\\u2276','lessgtr':'\\u2276','LessLess':'\\u2AA1','lesssim':'\\u2272','LessSlantEqual':'\\u2A7D','LessTilde':'\\u2272','lfisht':'\\u297C','lfloor':'\\u230A','lfr':'\\uD835\\uDD29','Lfr':'\\uD835\\uDD0F','lg':'\\u2276','lgE':'\\u2A91','lHar':'\\u2962','lhard':'\\u21BD','lharu':'\\u21BC','lharul':'\\u296A','lhblk':'\\u2584','ljcy':'\\u0459','LJcy':'\\u0409','ll':'\\u226A','Ll':'\\u22D8','llarr':'\\u21C7','llcorner':'\\u231E','Lleftarrow':'\\u21DA','llhard':'\\u296B','lltri':'\\u25FA','lmidot':'\\u0140','Lmidot':'\\u013F','lmoust':'\\u23B0','lmoustache':'\\u23B0','lnap':'\\u2A89','lnapprox':'\\u2A89','lne':'\\u2A87','lnE':'\\u2268','lneq':'\\u2A87','lneqq':'\\u2268','lnsim':'\\u22E6','loang':'\\u27EC','loarr':'\\u21FD','lobrk':'\\u27E6','longleftarrow':'\\u27F5','Longleftarrow':'\\u27F8','LongLeftArrow':'\\u27F5','longleftrightarrow':'\\u27F7','Longleftrightarrow':'\\u27FA','LongLeftRightArrow':'\\u27F7','longmapsto':'\\u27FC','longrightarrow':'\\u27F6','Longrightarrow':'\\u27F9','LongRightArrow':'\\u27F6','looparrowleft':'\\u21AB','looparrowright':'\\u21AC','lopar':'\\u2985','lopf':'\\uD835\\uDD5D','Lopf':'\\uD835\\uDD43','loplus':'\\u2A2D','lotimes':'\\u2A34','lowast':'\\u2217','lowbar':'_','LowerLeftArrow':'\\u2199','LowerRightArrow':'\\u2198','loz':'\\u25CA','lozenge':'\\u25CA','lozf':'\\u29EB','lpar':'(','lparlt':'\\u2993','lrarr':'\\u21C6','lrcorner':'\\u231F','lrhar':'\\u21CB','lrhard':'\\u296D','lrm':'\\u200E','lrtri':'\\u22BF','lsaquo':'\\u2039','lscr':'\\uD835\\uDCC1','Lscr':'\\u2112','lsh':'\\u21B0','Lsh':'\\u21B0','lsim':'\\u2272','lsime':'\\u2A8D','lsimg':'\\u2A8F','lsqb':'[','lsquo':'\\u2018','lsquor':'\\u201A','lstrok':'\\u0142','Lstrok':'\\u0141','lt':'<','Lt':'\\u226A','LT':'<','ltcc':'\\u2AA6','ltcir':'\\u2A79','ltdot':'\\u22D6','lthree':'\\u22CB','ltimes':'\\u22C9','ltlarr':'\\u2976','ltquest':'\\u2A7B','ltri':'\\u25C3','ltrie':'\\u22B4','ltrif':'\\u25C2','ltrPar':'\\u2996','lurdshar':'\\u294A','luruhar':'\\u2966','lvertneqq':'\\u2268\\uFE00','lvnE':'\\u2268\\uFE00','macr':'\\xAF','male':'\\u2642','malt':'\\u2720','maltese':'\\u2720','map':'\\u21A6','Map':'\\u2905','mapsto':'\\u21A6','mapstodown':'\\u21A7','mapstoleft':'\\u21A4','mapstoup':'\\u21A5','marker':'\\u25AE','mcomma':'\\u2A29','mcy':'\\u043C','Mcy':'\\u041C','mdash':'\\u2014','mDDot':'\\u223A','measuredangle':'\\u2221','MediumSpace':'\\u205F','Mellintrf':'\\u2133','mfr':'\\uD835\\uDD2A','Mfr':'\\uD835\\uDD10','mho':'\\u2127','micro':'\\xB5','mid':'\\u2223','midast':'*','midcir':'\\u2AF0','middot':'\\xB7','minus':'\\u2212','minusb':'\\u229F','minusd':'\\u2238','minusdu':'\\u2A2A','MinusPlus':'\\u2213','mlcp':'\\u2ADB','mldr':'\\u2026','mnplus':'\\u2213','models':'\\u22A7','mopf':'\\uD835\\uDD5E','Mopf':'\\uD835\\uDD44','mp':'\\u2213','mscr':'\\uD835\\uDCC2','Mscr':'\\u2133','mstpos':'\\u223E','mu':'\\u03BC','Mu':'\\u039C','multimap':'\\u22B8','mumap':'\\u22B8','nabla':'\\u2207','nacute':'\\u0144','Nacute':'\\u0143','nang':'\\u2220\\u20D2','nap':'\\u2249','napE':'\\u2A70\\u0338','napid':'\\u224B\\u0338','napos':'\\u0149','napprox':'\\u2249','natur':'\\u266E','natural':'\\u266E','naturals':'\\u2115','nbsp':'\\xA0','nbump':'\\u224E\\u0338','nbumpe':'\\u224F\\u0338','ncap':'\\u2A43','ncaron':'\\u0148','Ncaron':'\\u0147','ncedil':'\\u0146','Ncedil':'\\u0145','ncong':'\\u2247','ncongdot':'\\u2A6D\\u0338','ncup':'\\u2A42','ncy':'\\u043D','Ncy':'\\u041D','ndash':'\\u2013','ne':'\\u2260','nearhk':'\\u2924','nearr':'\\u2197','neArr':'\\u21D7','nearrow':'\\u2197','nedot':'\\u2250\\u0338','NegativeMediumSpace':'\\u200B','NegativeThickSpace':'\\u200B','NegativeThinSpace':'\\u200B','NegativeVeryThinSpace':'\\u200B','nequiv':'\\u2262','nesear':'\\u2928','nesim':'\\u2242\\u0338','NestedGreaterGreater':'\\u226B','NestedLessLess':'\\u226A','NewLine':'\\n','nexist':'\\u2204','nexists':'\\u2204','nfr':'\\uD835\\uDD2B','Nfr':'\\uD835\\uDD11','nge':'\\u2271','ngE':'\\u2267\\u0338','ngeq':'\\u2271','ngeqq':'\\u2267\\u0338','ngeqslant':'\\u2A7E\\u0338','nges':'\\u2A7E\\u0338','nGg':'\\u22D9\\u0338','ngsim':'\\u2275','ngt':'\\u226F','nGt':'\\u226B\\u20D2','ngtr':'\\u226F','nGtv':'\\u226B\\u0338','nharr':'\\u21AE','nhArr':'\\u21CE','nhpar':'\\u2AF2','ni':'\\u220B','nis':'\\u22FC','nisd':'\\u22FA','niv':'\\u220B','njcy':'\\u045A','NJcy':'\\u040A','nlarr':'\\u219A','nlArr':'\\u21CD','nldr':'\\u2025','nle':'\\u2270','nlE':'\\u2266\\u0338','nleftarrow':'\\u219A','nLeftarrow':'\\u21CD','nleftrightarrow':'\\u21AE','nLeftrightarrow':'\\u21CE','nleq':'\\u2270','nleqq':'\\u2266\\u0338','nleqslant':'\\u2A7D\\u0338','nles':'\\u2A7D\\u0338','nless':'\\u226E','nLl':'\\u22D8\\u0338','nlsim':'\\u2274','nlt':'\\u226E','nLt':'\\u226A\\u20D2','nltri':'\\u22EA','nltrie':'\\u22EC','nLtv':'\\u226A\\u0338','nmid':'\\u2224','NoBreak':'\\u2060','NonBreakingSpace':'\\xA0','nopf':'\\uD835\\uDD5F','Nopf':'\\u2115','not':'\\xAC','Not':'\\u2AEC','NotCongruent':'\\u2262','NotCupCap':'\\u226D','NotDoubleVerticalBar':'\\u2226','NotElement':'\\u2209','NotEqual':'\\u2260','NotEqualTilde':'\\u2242\\u0338','NotExists':'\\u2204','NotGreater':'\\u226F','NotGreaterEqual':'\\u2271','NotGreaterFullEqual':'\\u2267\\u0338','NotGreaterGreater':'\\u226B\\u0338','NotGreaterLess':'\\u2279','NotGreaterSlantEqual':'\\u2A7E\\u0338','NotGreaterTilde':'\\u2275','NotHumpDownHump':'\\u224E\\u0338','NotHumpEqual':'\\u224F\\u0338','notin':'\\u2209','notindot':'\\u22F5\\u0338','notinE':'\\u22F9\\u0338','notinva':'\\u2209','notinvb':'\\u22F7','notinvc':'\\u22F6','NotLeftTriangle':'\\u22EA','NotLeftTriangleBar':'\\u29CF\\u0338','NotLeftTriangleEqual':'\\u22EC','NotLess':'\\u226E','NotLessEqual':'\\u2270','NotLessGreater':'\\u2278','NotLessLess':'\\u226A\\u0338','NotLessSlantEqual':'\\u2A7D\\u0338','NotLessTilde':'\\u2274','NotNestedGreaterGreater':'\\u2AA2\\u0338','NotNestedLessLess':'\\u2AA1\\u0338','notni':'\\u220C','notniva':'\\u220C','notnivb':'\\u22FE','notnivc':'\\u22FD','NotPrecedes':'\\u2280','NotPrecedesEqual':'\\u2AAF\\u0338','NotPrecedesSlantEqual':'\\u22E0','NotReverseElement':'\\u220C','NotRightTriangle':'\\u22EB','NotRightTriangleBar':'\\u29D0\\u0338','NotRightTriangleEqual':'\\u22ED','NotSquareSubset':'\\u228F\\u0338','NotSquareSubsetEqual':'\\u22E2','NotSquareSuperset':'\\u2290\\u0338','NotSquareSupersetEqual':'\\u22E3','NotSubset':'\\u2282\\u20D2','NotSubsetEqual':'\\u2288','NotSucceeds':'\\u2281','NotSucceedsEqual':'\\u2AB0\\u0338','NotSucceedsSlantEqual':'\\u22E1','NotSucceedsTilde':'\\u227F\\u0338','NotSuperset':'\\u2283\\u20D2','NotSupersetEqual':'\\u2289','NotTilde':'\\u2241','NotTildeEqual':'\\u2244','NotTildeFullEqual':'\\u2247','NotTildeTilde':'\\u2249','NotVerticalBar':'\\u2224','npar':'\\u2226','nparallel':'\\u2226','nparsl':'\\u2AFD\\u20E5','npart':'\\u2202\\u0338','npolint':'\\u2A14','npr':'\\u2280','nprcue':'\\u22E0','npre':'\\u2AAF\\u0338','nprec':'\\u2280','npreceq':'\\u2AAF\\u0338','nrarr':'\\u219B','nrArr':'\\u21CF','nrarrc':'\\u2933\\u0338','nrarrw':'\\u219D\\u0338','nrightarrow':'\\u219B','nRightarrow':'\\u21CF','nrtri':'\\u22EB','nrtrie':'\\u22ED','nsc':'\\u2281','nsccue':'\\u22E1','nsce':'\\u2AB0\\u0338','nscr':'\\uD835\\uDCC3','Nscr':'\\uD835\\uDCA9','nshortmid':'\\u2224','nshortparallel':'\\u2226','nsim':'\\u2241','nsime':'\\u2244','nsimeq':'\\u2244','nsmid':'\\u2224','nspar':'\\u2226','nsqsube':'\\u22E2','nsqsupe':'\\u22E3','nsub':'\\u2284','nsube':'\\u2288','nsubE':'\\u2AC5\\u0338','nsubset':'\\u2282\\u20D2','nsubseteq':'\\u2288','nsubseteqq':'\\u2AC5\\u0338','nsucc':'\\u2281','nsucceq':'\\u2AB0\\u0338','nsup':'\\u2285','nsupe':'\\u2289','nsupE':'\\u2AC6\\u0338','nsupset':'\\u2283\\u20D2','nsupseteq':'\\u2289','nsupseteqq':'\\u2AC6\\u0338','ntgl':'\\u2279','ntilde':'\\xF1','Ntilde':'\\xD1','ntlg':'\\u2278','ntriangleleft':'\\u22EA','ntrianglelefteq':'\\u22EC','ntriangleright':'\\u22EB','ntrianglerighteq':'\\u22ED','nu':'\\u03BD','Nu':'\\u039D','num':'#','numero':'\\u2116','numsp':'\\u2007','nvap':'\\u224D\\u20D2','nvdash':'\\u22AC','nvDash':'\\u22AD','nVdash':'\\u22AE','nVDash':'\\u22AF','nvge':'\\u2265\\u20D2','nvgt':'>\\u20D2','nvHarr':'\\u2904','nvinfin':'\\u29DE','nvlArr':'\\u2902','nvle':'\\u2264\\u20D2','nvlt':'<\\u20D2','nvltrie':'\\u22B4\\u20D2','nvrArr':'\\u2903','nvrtrie':'\\u22B5\\u20D2','nvsim':'\\u223C\\u20D2','nwarhk':'\\u2923','nwarr':'\\u2196','nwArr':'\\u21D6','nwarrow':'\\u2196','nwnear':'\\u2927','oacute':'\\xF3','Oacute':'\\xD3','oast':'\\u229B','ocir':'\\u229A','ocirc':'\\xF4','Ocirc':'\\xD4','ocy':'\\u043E','Ocy':'\\u041E','odash':'\\u229D','odblac':'\\u0151','Odblac':'\\u0150','odiv':'\\u2A38','odot':'\\u2299','odsold':'\\u29BC','oelig':'\\u0153','OElig':'\\u0152','ofcir':'\\u29BF','ofr':'\\uD835\\uDD2C','Ofr':'\\uD835\\uDD12','ogon':'\\u02DB','ograve':'\\xF2','Ograve':'\\xD2','ogt':'\\u29C1','ohbar':'\\u29B5','ohm':'\\u03A9','oint':'\\u222E','olarr':'\\u21BA','olcir':'\\u29BE','olcross':'\\u29BB','oline':'\\u203E','olt':'\\u29C0','omacr':'\\u014D','Omacr':'\\u014C','omega':'\\u03C9','Omega':'\\u03A9','omicron':'\\u03BF','Omicron':'\\u039F','omid':'\\u29B6','ominus':'\\u2296','oopf':'\\uD835\\uDD60','Oopf':'\\uD835\\uDD46','opar':'\\u29B7','OpenCurlyDoubleQuote':'\\u201C','OpenCurlyQuote':'\\u2018','operp':'\\u29B9','oplus':'\\u2295','or':'\\u2228','Or':'\\u2A54','orarr':'\\u21BB','ord':'\\u2A5D','order':'\\u2134','orderof':'\\u2134','ordf':'\\xAA','ordm':'\\xBA','origof':'\\u22B6','oror':'\\u2A56','orslope':'\\u2A57','orv':'\\u2A5B','oS':'\\u24C8','oscr':'\\u2134','Oscr':'\\uD835\\uDCAA','oslash':'\\xF8','Oslash':'\\xD8','osol':'\\u2298','otilde':'\\xF5','Otilde':'\\xD5','otimes':'\\u2297','Otimes':'\\u2A37','otimesas':'\\u2A36','ouml':'\\xF6','Ouml':'\\xD6','ovbar':'\\u233D','OverBar':'\\u203E','OverBrace':'\\u23DE','OverBracket':'\\u23B4','OverParenthesis':'\\u23DC','par':'\\u2225','para':'\\xB6','parallel':'\\u2225','parsim':'\\u2AF3','parsl':'\\u2AFD','part':'\\u2202','PartialD':'\\u2202','pcy':'\\u043F','Pcy':'\\u041F','percnt':'%','period':'.','permil':'\\u2030','perp':'\\u22A5','pertenk':'\\u2031','pfr':'\\uD835\\uDD2D','Pfr':'\\uD835\\uDD13','phi':'\\u03C6','Phi':'\\u03A6','phiv':'\\u03D5','phmmat':'\\u2133','phone':'\\u260E','pi':'\\u03C0','Pi':'\\u03A0','pitchfork':'\\u22D4','piv':'\\u03D6','planck':'\\u210F','planckh':'\\u210E','plankv':'\\u210F','plus':'+','plusacir':'\\u2A23','plusb':'\\u229E','pluscir':'\\u2A22','plusdo':'\\u2214','plusdu':'\\u2A25','pluse':'\\u2A72','PlusMinus':'\\xB1','plusmn':'\\xB1','plussim':'\\u2A26','plustwo':'\\u2A27','pm':'\\xB1','Poincareplane':'\\u210C','pointint':'\\u2A15','popf':'\\uD835\\uDD61','Popf':'\\u2119','pound':'\\xA3','pr':'\\u227A','Pr':'\\u2ABB','prap':'\\u2AB7','prcue':'\\u227C','pre':'\\u2AAF','prE':'\\u2AB3','prec':'\\u227A','precapprox':'\\u2AB7','preccurlyeq':'\\u227C','Precedes':'\\u227A','PrecedesEqual':'\\u2AAF','PrecedesSlantEqual':'\\u227C','PrecedesTilde':'\\u227E','preceq':'\\u2AAF','precnapprox':'\\u2AB9','precneqq':'\\u2AB5','precnsim':'\\u22E8','precsim':'\\u227E','prime':'\\u2032','Prime':'\\u2033','primes':'\\u2119','prnap':'\\u2AB9','prnE':'\\u2AB5','prnsim':'\\u22E8','prod':'\\u220F','Product':'\\u220F','profalar':'\\u232E','profline':'\\u2312','profsurf':'\\u2313','prop':'\\u221D','Proportion':'\\u2237','Proportional':'\\u221D','propto':'\\u221D','prsim':'\\u227E','prurel':'\\u22B0','pscr':'\\uD835\\uDCC5','Pscr':'\\uD835\\uDCAB','psi':'\\u03C8','Psi':'\\u03A8','puncsp':'\\u2008','qfr':'\\uD835\\uDD2E','Qfr':'\\uD835\\uDD14','qint':'\\u2A0C','qopf':'\\uD835\\uDD62','Qopf':'\\u211A','qprime':'\\u2057','qscr':'\\uD835\\uDCC6','Qscr':'\\uD835\\uDCAC','quaternions':'\\u210D','quatint':'\\u2A16','quest':'?','questeq':'\\u225F','quot':'\"','QUOT':'\"','rAarr':'\\u21DB','race':'\\u223D\\u0331','racute':'\\u0155','Racute':'\\u0154','radic':'\\u221A','raemptyv':'\\u29B3','rang':'\\u27E9','Rang':'\\u27EB','rangd':'\\u2992','range':'\\u29A5','rangle':'\\u27E9','raquo':'\\xBB','rarr':'\\u2192','rArr':'\\u21D2','Rarr':'\\u21A0','rarrap':'\\u2975','rarrb':'\\u21E5','rarrbfs':'\\u2920','rarrc':'\\u2933','rarrfs':'\\u291E','rarrhk':'\\u21AA','rarrlp':'\\u21AC','rarrpl':'\\u2945','rarrsim':'\\u2974','rarrtl':'\\u21A3','Rarrtl':'\\u2916','rarrw':'\\u219D','ratail':'\\u291A','rAtail':'\\u291C','ratio':'\\u2236','rationals':'\\u211A','rbarr':'\\u290D','rBarr':'\\u290F','RBarr':'\\u2910','rbbrk':'\\u2773','rbrace':'}','rbrack':']','rbrke':'\\u298C','rbrksld':'\\u298E','rbrkslu':'\\u2990','rcaron':'\\u0159','Rcaron':'\\u0158','rcedil':'\\u0157','Rcedil':'\\u0156','rceil':'\\u2309','rcub':'}','rcy':'\\u0440','Rcy':'\\u0420','rdca':'\\u2937','rdldhar':'\\u2969','rdquo':'\\u201D','rdquor':'\\u201D','rdsh':'\\u21B3','Re':'\\u211C','real':'\\u211C','realine':'\\u211B','realpart':'\\u211C','reals':'\\u211D','rect':'\\u25AD','reg':'\\xAE','REG':'\\xAE','ReverseElement':'\\u220B','ReverseEquilibrium':'\\u21CB','ReverseUpEquilibrium':'\\u296F','rfisht':'\\u297D','rfloor':'\\u230B','rfr':'\\uD835\\uDD2F','Rfr':'\\u211C','rHar':'\\u2964','rhard':'\\u21C1','rharu':'\\u21C0','rharul':'\\u296C','rho':'\\u03C1','Rho':'\\u03A1','rhov':'\\u03F1','RightAngleBracket':'\\u27E9','rightarrow':'\\u2192','Rightarrow':'\\u21D2','RightArrow':'\\u2192','RightArrowBar':'\\u21E5','RightArrowLeftArrow':'\\u21C4','rightarrowtail':'\\u21A3','RightCeiling':'\\u2309','RightDoubleBracket':'\\u27E7','RightDownTeeVector':'\\u295D','RightDownVector':'\\u21C2','RightDownVectorBar':'\\u2955','RightFloor':'\\u230B','rightharpoondown':'\\u21C1','rightharpoonup':'\\u21C0','rightleftarrows':'\\u21C4','rightleftharpoons':'\\u21CC','rightrightarrows':'\\u21C9','rightsquigarrow':'\\u219D','RightTee':'\\u22A2','RightTeeArrow':'\\u21A6','RightTeeVector':'\\u295B','rightthreetimes':'\\u22CC','RightTriangle':'\\u22B3','RightTriangleBar':'\\u29D0','RightTriangleEqual':'\\u22B5','RightUpDownVector':'\\u294F','RightUpTeeVector':'\\u295C','RightUpVector':'\\u21BE','RightUpVectorBar':'\\u2954','RightVector':'\\u21C0','RightVectorBar':'\\u2953','ring':'\\u02DA','risingdotseq':'\\u2253','rlarr':'\\u21C4','rlhar':'\\u21CC','rlm':'\\u200F','rmoust':'\\u23B1','rmoustache':'\\u23B1','rnmid':'\\u2AEE','roang':'\\u27ED','roarr':'\\u21FE','robrk':'\\u27E7','ropar':'\\u2986','ropf':'\\uD835\\uDD63','Ropf':'\\u211D','roplus':'\\u2A2E','rotimes':'\\u2A35','RoundImplies':'\\u2970','rpar':')','rpargt':'\\u2994','rppolint':'\\u2A12','rrarr':'\\u21C9','Rrightarrow':'\\u21DB','rsaquo':'\\u203A','rscr':'\\uD835\\uDCC7','Rscr':'\\u211B','rsh':'\\u21B1','Rsh':'\\u21B1','rsqb':']','rsquo':'\\u2019','rsquor':'\\u2019','rthree':'\\u22CC','rtimes':'\\u22CA','rtri':'\\u25B9','rtrie':'\\u22B5','rtrif':'\\u25B8','rtriltri':'\\u29CE','RuleDelayed':'\\u29F4','ruluhar':'\\u2968','rx':'\\u211E','sacute':'\\u015B','Sacute':'\\u015A','sbquo':'\\u201A','sc':'\\u227B','Sc':'\\u2ABC','scap':'\\u2AB8','scaron':'\\u0161','Scaron':'\\u0160','sccue':'\\u227D','sce':'\\u2AB0','scE':'\\u2AB4','scedil':'\\u015F','Scedil':'\\u015E','scirc':'\\u015D','Scirc':'\\u015C','scnap':'\\u2ABA','scnE':'\\u2AB6','scnsim':'\\u22E9','scpolint':'\\u2A13','scsim':'\\u227F','scy':'\\u0441','Scy':'\\u0421','sdot':'\\u22C5','sdotb':'\\u22A1','sdote':'\\u2A66','searhk':'\\u2925','searr':'\\u2198','seArr':'\\u21D8','searrow':'\\u2198','sect':'\\xA7','semi':';','seswar':'\\u2929','setminus':'\\u2216','setmn':'\\u2216','sext':'\\u2736','sfr':'\\uD835\\uDD30','Sfr':'\\uD835\\uDD16','sfrown':'\\u2322','sharp':'\\u266F','shchcy':'\\u0449','SHCHcy':'\\u0429','shcy':'\\u0448','SHcy':'\\u0428','ShortDownArrow':'\\u2193','ShortLeftArrow':'\\u2190','shortmid':'\\u2223','shortparallel':'\\u2225','ShortRightArrow':'\\u2192','ShortUpArrow':'\\u2191','shy':'\\xAD','sigma':'\\u03C3','Sigma':'\\u03A3','sigmaf':'\\u03C2','sigmav':'\\u03C2','sim':'\\u223C','simdot':'\\u2A6A','sime':'\\u2243','simeq':'\\u2243','simg':'\\u2A9E','simgE':'\\u2AA0','siml':'\\u2A9D','simlE':'\\u2A9F','simne':'\\u2246','simplus':'\\u2A24','simrarr':'\\u2972','slarr':'\\u2190','SmallCircle':'\\u2218','smallsetminus':'\\u2216','smashp':'\\u2A33','smeparsl':'\\u29E4','smid':'\\u2223','smile':'\\u2323','smt':'\\u2AAA','smte':'\\u2AAC','smtes':'\\u2AAC\\uFE00','softcy':'\\u044C','SOFTcy':'\\u042C','sol':'/','solb':'\\u29C4','solbar':'\\u233F','sopf':'\\uD835\\uDD64','Sopf':'\\uD835\\uDD4A','spades':'\\u2660','spadesuit':'\\u2660','spar':'\\u2225','sqcap':'\\u2293','sqcaps':'\\u2293\\uFE00','sqcup':'\\u2294','sqcups':'\\u2294\\uFE00','Sqrt':'\\u221A','sqsub':'\\u228F','sqsube':'\\u2291','sqsubset':'\\u228F','sqsubseteq':'\\u2291','sqsup':'\\u2290','sqsupe':'\\u2292','sqsupset':'\\u2290','sqsupseteq':'\\u2292','squ':'\\u25A1','square':'\\u25A1','Square':'\\u25A1','SquareIntersection':'\\u2293','SquareSubset':'\\u228F','SquareSubsetEqual':'\\u2291','SquareSuperset':'\\u2290','SquareSupersetEqual':'\\u2292','SquareUnion':'\\u2294','squarf':'\\u25AA','squf':'\\u25AA','srarr':'\\u2192','sscr':'\\uD835\\uDCC8','Sscr':'\\uD835\\uDCAE','ssetmn':'\\u2216','ssmile':'\\u2323','sstarf':'\\u22C6','star':'\\u2606','Star':'\\u22C6','starf':'\\u2605','straightepsilon':'\\u03F5','straightphi':'\\u03D5','strns':'\\xAF','sub':'\\u2282','Sub':'\\u22D0','subdot':'\\u2ABD','sube':'\\u2286','subE':'\\u2AC5','subedot':'\\u2AC3','submult':'\\u2AC1','subne':'\\u228A','subnE':'\\u2ACB','subplus':'\\u2ABF','subrarr':'\\u2979','subset':'\\u2282','Subset':'\\u22D0','subseteq':'\\u2286','subseteqq':'\\u2AC5','SubsetEqual':'\\u2286','subsetneq':'\\u228A','subsetneqq':'\\u2ACB','subsim':'\\u2AC7','subsub':'\\u2AD5','subsup':'\\u2AD3','succ':'\\u227B','succapprox':'\\u2AB8','succcurlyeq':'\\u227D','Succeeds':'\\u227B','SucceedsEqual':'\\u2AB0','SucceedsSlantEqual':'\\u227D','SucceedsTilde':'\\u227F','succeq':'\\u2AB0','succnapprox':'\\u2ABA','succneqq':'\\u2AB6','succnsim':'\\u22E9','succsim':'\\u227F','SuchThat':'\\u220B','sum':'\\u2211','Sum':'\\u2211','sung':'\\u266A','sup':'\\u2283','Sup':'\\u22D1','sup1':'\\xB9','sup2':'\\xB2','sup3':'\\xB3','supdot':'\\u2ABE','supdsub':'\\u2AD8','supe':'\\u2287','supE':'\\u2AC6','supedot':'\\u2AC4','Superset':'\\u2283','SupersetEqual':'\\u2287','suphsol':'\\u27C9','suphsub':'\\u2AD7','suplarr':'\\u297B','supmult':'\\u2AC2','supne':'\\u228B','supnE':'\\u2ACC','supplus':'\\u2AC0','supset':'\\u2283','Supset':'\\u22D1','supseteq':'\\u2287','supseteqq':'\\u2AC6','supsetneq':'\\u228B','supsetneqq':'\\u2ACC','supsim':'\\u2AC8','supsub':'\\u2AD4','supsup':'\\u2AD6','swarhk':'\\u2926','swarr':'\\u2199','swArr':'\\u21D9','swarrow':'\\u2199','swnwar':'\\u292A','szlig':'\\xDF','Tab':'\\t','target':'\\u2316','tau':'\\u03C4','Tau':'\\u03A4','tbrk':'\\u23B4','tcaron':'\\u0165','Tcaron':'\\u0164','tcedil':'\\u0163','Tcedil':'\\u0162','tcy':'\\u0442','Tcy':'\\u0422','tdot':'\\u20DB','telrec':'\\u2315','tfr':'\\uD835\\uDD31','Tfr':'\\uD835\\uDD17','there4':'\\u2234','therefore':'\\u2234','Therefore':'\\u2234','theta':'\\u03B8','Theta':'\\u0398','thetasym':'\\u03D1','thetav':'\\u03D1','thickapprox':'\\u2248','thicksim':'\\u223C','ThickSpace':'\\u205F\\u200A','thinsp':'\\u2009','ThinSpace':'\\u2009','thkap':'\\u2248','thksim':'\\u223C','thorn':'\\xFE','THORN':'\\xDE','tilde':'\\u02DC','Tilde':'\\u223C','TildeEqual':'\\u2243','TildeFullEqual':'\\u2245','TildeTilde':'\\u2248','times':'\\xD7','timesb':'\\u22A0','timesbar':'\\u2A31','timesd':'\\u2A30','tint':'\\u222D','toea':'\\u2928','top':'\\u22A4','topbot':'\\u2336','topcir':'\\u2AF1','topf':'\\uD835\\uDD65','Topf':'\\uD835\\uDD4B','topfork':'\\u2ADA','tosa':'\\u2929','tprime':'\\u2034','trade':'\\u2122','TRADE':'\\u2122','triangle':'\\u25B5','triangledown':'\\u25BF','triangleleft':'\\u25C3','trianglelefteq':'\\u22B4','triangleq':'\\u225C','triangleright':'\\u25B9','trianglerighteq':'\\u22B5','tridot':'\\u25EC','trie':'\\u225C','triminus':'\\u2A3A','TripleDot':'\\u20DB','triplus':'\\u2A39','trisb':'\\u29CD','tritime':'\\u2A3B','trpezium':'\\u23E2','tscr':'\\uD835\\uDCC9','Tscr':'\\uD835\\uDCAF','tscy':'\\u0446','TScy':'\\u0426','tshcy':'\\u045B','TSHcy':'\\u040B','tstrok':'\\u0167','Tstrok':'\\u0166','twixt':'\\u226C','twoheadleftarrow':'\\u219E','twoheadrightarrow':'\\u21A0','uacute':'\\xFA','Uacute':'\\xDA','uarr':'\\u2191','uArr':'\\u21D1','Uarr':'\\u219F','Uarrocir':'\\u2949','ubrcy':'\\u045E','Ubrcy':'\\u040E','ubreve':'\\u016D','Ubreve':'\\u016C','ucirc':'\\xFB','Ucirc':'\\xDB','ucy':'\\u0443','Ucy':'\\u0423','udarr':'\\u21C5','udblac':'\\u0171','Udblac':'\\u0170','udhar':'\\u296E','ufisht':'\\u297E','ufr':'\\uD835\\uDD32','Ufr':'\\uD835\\uDD18','ugrave':'\\xF9','Ugrave':'\\xD9','uHar':'\\u2963','uharl':'\\u21BF','uharr':'\\u21BE','uhblk':'\\u2580','ulcorn':'\\u231C','ulcorner':'\\u231C','ulcrop':'\\u230F','ultri':'\\u25F8','umacr':'\\u016B','Umacr':'\\u016A','uml':'\\xA8','UnderBar':'_','UnderBrace':'\\u23DF','UnderBracket':'\\u23B5','UnderParenthesis':'\\u23DD','Union':'\\u22C3','UnionPlus':'\\u228E','uogon':'\\u0173','Uogon':'\\u0172','uopf':'\\uD835\\uDD66','Uopf':'\\uD835\\uDD4C','uparrow':'\\u2191','Uparrow':'\\u21D1','UpArrow':'\\u2191','UpArrowBar':'\\u2912','UpArrowDownArrow':'\\u21C5','updownarrow':'\\u2195','Updownarrow':'\\u21D5','UpDownArrow':'\\u2195','UpEquilibrium':'\\u296E','upharpoonleft':'\\u21BF','upharpoonright':'\\u21BE','uplus':'\\u228E','UpperLeftArrow':'\\u2196','UpperRightArrow':'\\u2197','upsi':'\\u03C5','Upsi':'\\u03D2','upsih':'\\u03D2','upsilon':'\\u03C5','Upsilon':'\\u03A5','UpTee':'\\u22A5','UpTeeArrow':'\\u21A5','upuparrows':'\\u21C8','urcorn':'\\u231D','urcorner':'\\u231D','urcrop':'\\u230E','uring':'\\u016F','Uring':'\\u016E','urtri':'\\u25F9','uscr':'\\uD835\\uDCCA','Uscr':'\\uD835\\uDCB0','utdot':'\\u22F0','utilde':'\\u0169','Utilde':'\\u0168','utri':'\\u25B5','utrif':'\\u25B4','uuarr':'\\u21C8','uuml':'\\xFC','Uuml':'\\xDC','uwangle':'\\u29A7','vangrt':'\\u299C','varepsilon':'\\u03F5','varkappa':'\\u03F0','varnothing':'\\u2205','varphi':'\\u03D5','varpi':'\\u03D6','varpropto':'\\u221D','varr':'\\u2195','vArr':'\\u21D5','varrho':'\\u03F1','varsigma':'\\u03C2','varsubsetneq':'\\u228A\\uFE00','varsubsetneqq':'\\u2ACB\\uFE00','varsupsetneq':'\\u228B\\uFE00','varsupsetneqq':'\\u2ACC\\uFE00','vartheta':'\\u03D1','vartriangleleft':'\\u22B2','vartriangleright':'\\u22B3','vBar':'\\u2AE8','Vbar':'\\u2AEB','vBarv':'\\u2AE9','vcy':'\\u0432','Vcy':'\\u0412','vdash':'\\u22A2','vDash':'\\u22A8','Vdash':'\\u22A9','VDash':'\\u22AB','Vdashl':'\\u2AE6','vee':'\\u2228','Vee':'\\u22C1','veebar':'\\u22BB','veeeq':'\\u225A','vellip':'\\u22EE','verbar':'|','Verbar':'\\u2016','vert':'|','Vert':'\\u2016','VerticalBar':'\\u2223','VerticalLine':'|','VerticalSeparator':'\\u2758','VerticalTilde':'\\u2240','VeryThinSpace':'\\u200A','vfr':'\\uD835\\uDD33','Vfr':'\\uD835\\uDD19','vltri':'\\u22B2','vnsub':'\\u2282\\u20D2','vnsup':'\\u2283\\u20D2','vopf':'\\uD835\\uDD67','Vopf':'\\uD835\\uDD4D','vprop':'\\u221D','vrtri':'\\u22B3','vscr':'\\uD835\\uDCCB','Vscr':'\\uD835\\uDCB1','vsubne':'\\u228A\\uFE00','vsubnE':'\\u2ACB\\uFE00','vsupne':'\\u228B\\uFE00','vsupnE':'\\u2ACC\\uFE00','Vvdash':'\\u22AA','vzigzag':'\\u299A','wcirc':'\\u0175','Wcirc':'\\u0174','wedbar':'\\u2A5F','wedge':'\\u2227','Wedge':'\\u22C0','wedgeq':'\\u2259','weierp':'\\u2118','wfr':'\\uD835\\uDD34','Wfr':'\\uD835\\uDD1A','wopf':'\\uD835\\uDD68','Wopf':'\\uD835\\uDD4E','wp':'\\u2118','wr':'\\u2240','wreath':'\\u2240','wscr':'\\uD835\\uDCCC','Wscr':'\\uD835\\uDCB2','xcap':'\\u22C2','xcirc':'\\u25EF','xcup':'\\u22C3','xdtri':'\\u25BD','xfr':'\\uD835\\uDD35','Xfr':'\\uD835\\uDD1B','xharr':'\\u27F7','xhArr':'\\u27FA','xi':'\\u03BE','Xi':'\\u039E','xlarr':'\\u27F5','xlArr':'\\u27F8','xmap':'\\u27FC','xnis':'\\u22FB','xodot':'\\u2A00','xopf':'\\uD835\\uDD69','Xopf':'\\uD835\\uDD4F','xoplus':'\\u2A01','xotime':'\\u2A02','xrarr':'\\u27F6','xrArr':'\\u27F9','xscr':'\\uD835\\uDCCD','Xscr':'\\uD835\\uDCB3','xsqcup':'\\u2A06','xuplus':'\\u2A04','xutri':'\\u25B3','xvee':'\\u22C1','xwedge':'\\u22C0','yacute':'\\xFD','Yacute':'\\xDD','yacy':'\\u044F','YAcy':'\\u042F','ycirc':'\\u0177','Ycirc':'\\u0176','ycy':'\\u044B','Ycy':'\\u042B','yen':'\\xA5','yfr':'\\uD835\\uDD36','Yfr':'\\uD835\\uDD1C','yicy':'\\u0457','YIcy':'\\u0407','yopf':'\\uD835\\uDD6A','Yopf':'\\uD835\\uDD50','yscr':'\\uD835\\uDCCE','Yscr':'\\uD835\\uDCB4','yucy':'\\u044E','YUcy':'\\u042E','yuml':'\\xFF','Yuml':'\\u0178','zacute':'\\u017A','Zacute':'\\u0179','zcaron':'\\u017E','Zcaron':'\\u017D','zcy':'\\u0437','Zcy':'\\u0417','zdot':'\\u017C','Zdot':'\\u017B','zeetrf':'\\u2128','ZeroWidthSpace':'\\u200B','zeta':'\\u03B6','Zeta':'\\u0396','zfr':'\\uD835\\uDD37','Zfr':'\\u2128','zhcy':'\\u0436','ZHcy':'\\u0416','zigrarr':'\\u21DD','zopf':'\\uD835\\uDD6B','Zopf':'\\u2124','zscr':'\\uD835\\uDCCF','Zscr':'\\uD835\\uDCB5','zwj':'\\u200D','zwnj':'\\u200C'};\n\tvar decodeMapLegacy = {'aacute':'\\xE1','Aacute':'\\xC1','acirc':'\\xE2','Acirc':'\\xC2','acute':'\\xB4','aelig':'\\xE6','AElig':'\\xC6','agrave':'\\xE0','Agrave':'\\xC0','amp':'&','AMP':'&','aring':'\\xE5','Aring':'\\xC5','atilde':'\\xE3','Atilde':'\\xC3','auml':'\\xE4','Auml':'\\xC4','brvbar':'\\xA6','ccedil':'\\xE7','Ccedil':'\\xC7','cedil':'\\xB8','cent':'\\xA2','copy':'\\xA9','COPY':'\\xA9','curren':'\\xA4','deg':'\\xB0','divide':'\\xF7','eacute':'\\xE9','Eacute':'\\xC9','ecirc':'\\xEA','Ecirc':'\\xCA','egrave':'\\xE8','Egrave':'\\xC8','eth':'\\xF0','ETH':'\\xD0','euml':'\\xEB','Euml':'\\xCB','frac12':'\\xBD','frac14':'\\xBC','frac34':'\\xBE','gt':'>','GT':'>','iacute':'\\xED','Iacute':'\\xCD','icirc':'\\xEE','Icirc':'\\xCE','iexcl':'\\xA1','igrave':'\\xEC','Igrave':'\\xCC','iquest':'\\xBF','iuml':'\\xEF','Iuml':'\\xCF','laquo':'\\xAB','lt':'<','LT':'<','macr':'\\xAF','micro':'\\xB5','middot':'\\xB7','nbsp':'\\xA0','not':'\\xAC','ntilde':'\\xF1','Ntilde':'\\xD1','oacute':'\\xF3','Oacute':'\\xD3','ocirc':'\\xF4','Ocirc':'\\xD4','ograve':'\\xF2','Ograve':'\\xD2','ordf':'\\xAA','ordm':'\\xBA','oslash':'\\xF8','Oslash':'\\xD8','otilde':'\\xF5','Otilde':'\\xD5','ouml':'\\xF6','Ouml':'\\xD6','para':'\\xB6','plusmn':'\\xB1','pound':'\\xA3','quot':'\"','QUOT':'\"','raquo':'\\xBB','reg':'\\xAE','REG':'\\xAE','sect':'\\xA7','shy':'\\xAD','sup1':'\\xB9','sup2':'\\xB2','sup3':'\\xB3','szlig':'\\xDF','thorn':'\\xFE','THORN':'\\xDE','times':'\\xD7','uacute':'\\xFA','Uacute':'\\xDA','ucirc':'\\xFB','Ucirc':'\\xDB','ugrave':'\\xF9','Ugrave':'\\xD9','uml':'\\xA8','uuml':'\\xFC','Uuml':'\\xDC','yacute':'\\xFD','Yacute':'\\xDD','yen':'\\xA5','yuml':'\\xFF'};\n\tvar decodeMapNumeric = {'0':'\\uFFFD','128':'\\u20AC','130':'\\u201A','131':'\\u0192','132':'\\u201E','133':'\\u2026','134':'\\u2020','135':'\\u2021','136':'\\u02C6','137':'\\u2030','138':'\\u0160','139':'\\u2039','140':'\\u0152','142':'\\u017D','145':'\\u2018','146':'\\u2019','147':'\\u201C','148':'\\u201D','149':'\\u2022','150':'\\u2013','151':'\\u2014','152':'\\u02DC','153':'\\u2122','154':'\\u0161','155':'\\u203A','156':'\\u0153','158':'\\u017E','159':'\\u0178'};\n\tvar invalidReferenceCodePoints = [1,2,3,4,5,6,7,8,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,64976,64977,64978,64979,64980,64981,64982,64983,64984,64985,64986,64987,64988,64989,64990,64991,64992,64993,64994,64995,64996,64997,64998,64999,65000,65001,65002,65003,65004,65005,65006,65007,65534,65535,131070,131071,196606,196607,262142,262143,327678,327679,393214,393215,458750,458751,524286,524287,589822,589823,655358,655359,720894,720895,786430,786431,851966,851967,917502,917503,983038,983039,1048574,1048575,1114110,1114111];\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar stringFromCharCode = String.fromCharCode;\n\n\tvar object = {};\n\tvar hasOwnProperty = object.hasOwnProperty;\n\tvar has = function(object, propertyName) {\n\t\treturn hasOwnProperty.call(object, propertyName);\n\t};\n\n\tvar contains = function(array, value) {\n\t\tvar index = -1;\n\t\tvar length = array.length;\n\t\twhile (++index < length) {\n\t\t\tif (array[index] == value) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t};\n\n\tvar merge = function(options, defaults) {\n\t\tif (!options) {\n\t\t\treturn defaults;\n\t\t}\n\t\tvar result = {};\n\t\tvar key;\n\t\tfor (key in defaults) {\n\t\t\t// A `hasOwnProperty` check is not needed here, since only recognized\n\t\t\t// option names are used anyway. Any others are ignored.\n\t\t\tresult[key] = has(options, key) ? options[key] : defaults[key];\n\t\t}\n\t\treturn result;\n\t};\n\n\t// Modified version of `ucs2encode`; see https://mths.be/punycode.\n\tvar codePointToSymbol = function(codePoint, strict) {\n\t\tvar output = '';\n\t\tif ((codePoint >= 0xD800 && codePoint <= 0xDFFF) || codePoint > 0x10FFFF) {\n\t\t\t// See issue #4:\n\t\t\t// “Otherwise, if the number is in the range 0xD800 to 0xDFFF or is\n\t\t\t// greater than 0x10FFFF, then this is a parse error. Return a U+FFFD\n\t\t\t// REPLACEMENT CHARACTER.”\n\t\t\tif (strict) {\n\t\t\t\tparseError('character reference outside the permissible Unicode range');\n\t\t\t}\n\t\t\treturn '\\uFFFD';\n\t\t}\n\t\tif (has(decodeMapNumeric, codePoint)) {\n\t\t\tif (strict) {\n\t\t\t\tparseError('disallowed character reference');\n\t\t\t}\n\t\t\treturn decodeMapNumeric[codePoint];\n\t\t}\n\t\tif (strict && contains(invalidReferenceCodePoints, codePoint)) {\n\t\t\tparseError('disallowed character reference');\n\t\t}\n\t\tif (codePoint > 0xFFFF) {\n\t\t\tcodePoint -= 0x10000;\n\t\t\toutput += stringFromCharCode(codePoint >>> 10 & 0x3FF | 0xD800);\n\t\t\tcodePoint = 0xDC00 | codePoint & 0x3FF;\n\t\t}\n\t\toutput += stringFromCharCode(codePoint);\n\t\treturn output;\n\t};\n\n\tvar hexEscape = function(codePoint) {\n\t\treturn '&#x' + codePoint.toString(16).toUpperCase() + ';';\n\t};\n\n\tvar decEscape = function(codePoint) {\n\t\treturn '&#' + codePoint + ';';\n\t};\n\n\tvar parseError = function(message) {\n\t\tthrow Error('Parse error: ' + message);\n\t};\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar encode = function(string, options) {\n\t\toptions = merge(options, encode.options);\n\t\tvar strict = options.strict;\n\t\tif (strict && regexInvalidRawCodePoint.test(string)) {\n\t\t\tparseError('forbidden code point');\n\t\t}\n\t\tvar encodeEverything = options.encodeEverything;\n\t\tvar useNamedReferences = options.useNamedReferences;\n\t\tvar allowUnsafeSymbols = options.allowUnsafeSymbols;\n\t\tvar escapeCodePoint = options.decimal ? decEscape : hexEscape;\n\n\t\tvar escapeBmpSymbol = function(symbol) {\n\t\t\treturn escapeCodePoint(symbol.charCodeAt(0));\n\t\t};\n\n\t\tif (encodeEverything) {\n\t\t\t// Encode ASCII symbols.\n\t\t\tstring = string.replace(regexAsciiWhitelist, function(symbol) {\n\t\t\t\t// Use named references if requested & possible.\n\t\t\t\tif (useNamedReferences && has(encodeMap, symbol)) {\n\t\t\t\t\treturn '&' + encodeMap[symbol] + ';';\n\t\t\t\t}\n\t\t\t\treturn escapeBmpSymbol(symbol);\n\t\t\t});\n\t\t\t// Shorten a few escapes that represent two symbols, of which at least one\n\t\t\t// is within the ASCII range.\n\t\t\tif (useNamedReferences) {\n\t\t\t\tstring = string\n\t\t\t\t\t.replace(/>\\u20D2/g, '>⃒')\n\t\t\t\t\t.replace(/<\\u20D2/g, '<⃒')\n\t\t\t\t\t.replace(/fj/g, 'fj');\n\t\t\t}\n\t\t\t// Encode non-ASCII symbols.\n\t\t\tif (useNamedReferences) {\n\t\t\t\t// Encode non-ASCII symbols that can be replaced with a named reference.\n\t\t\t\tstring = string.replace(regexEncodeNonAscii, function(string) {\n\t\t\t\t\t// Note: there is no need to check `has(encodeMap, string)` here.\n\t\t\t\t\treturn '&' + encodeMap[string] + ';';\n\t\t\t\t});\n\t\t\t}\n\t\t\t// Note: any remaining non-ASCII symbols are handled outside of the `if`.\n\t\t} else if (useNamedReferences) {\n\t\t\t// Apply named character references.\n\t\t\t// Encode `<>\"'&` using named character references.\n\t\t\tif (!allowUnsafeSymbols) {\n\t\t\t\tstring = string.replace(regexEscape, function(string) {\n\t\t\t\t\treturn '&' + encodeMap[string] + ';'; // no need to check `has()` here\n\t\t\t\t});\n\t\t\t}\n\t\t\t// Shorten escapes that represent two symbols, of which at least one is\n\t\t\t// `<>\"'&`.\n\t\t\tstring = string\n\t\t\t\t.replace(/>\\u20D2/g, '>⃒')\n\t\t\t\t.replace(/<\\u20D2/g, '<⃒');\n\t\t\t// Encode non-ASCII symbols that can be replaced with a named reference.\n\t\t\tstring = string.replace(regexEncodeNonAscii, function(string) {\n\t\t\t\t// Note: there is no need to check `has(encodeMap, string)` here.\n\t\t\t\treturn '&' + encodeMap[string] + ';';\n\t\t\t});\n\t\t} else if (!allowUnsafeSymbols) {\n\t\t\t// Encode `<>\"'&` using hexadecimal escapes, now that they’re not handled\n\t\t\t// using named character references.\n\t\t\tstring = string.replace(regexEscape, escapeBmpSymbol);\n\t\t}\n\t\treturn string\n\t\t\t// Encode astral symbols.\n\t\t\t.replace(regexAstralSymbols, function($0) {\n\t\t\t\t// https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n\t\t\t\tvar high = $0.charCodeAt(0);\n\t\t\t\tvar low = $0.charCodeAt(1);\n\t\t\t\tvar codePoint = (high - 0xD800) * 0x400 + low - 0xDC00 + 0x10000;\n\t\t\t\treturn escapeCodePoint(codePoint);\n\t\t\t})\n\t\t\t// Encode any remaining BMP symbols that are not printable ASCII symbols\n\t\t\t// using a hexadecimal escape.\n\t\t\t.replace(regexBmpWhitelist, escapeBmpSymbol);\n\t};\n\t// Expose default options (so they can be overridden globally).\n\tencode.options = {\n\t\t'allowUnsafeSymbols': false,\n\t\t'encodeEverything': false,\n\t\t'strict': false,\n\t\t'useNamedReferences': false,\n\t\t'decimal' : false\n\t};\n\n\tvar decode = function(html, options) {\n\t\toptions = merge(options, decode.options);\n\t\tvar strict = options.strict;\n\t\tif (strict && regexInvalidEntity.test(html)) {\n\t\t\tparseError('malformed character reference');\n\t\t}\n\t\treturn html.replace(regexDecode, function($0, $1, $2, $3, $4, $5, $6, $7, $8) {\n\t\t\tvar codePoint;\n\t\t\tvar semicolon;\n\t\t\tvar decDigits;\n\t\t\tvar hexDigits;\n\t\t\tvar reference;\n\t\t\tvar next;\n\n\t\t\tif ($1) {\n\t\t\t\treference = $1;\n\t\t\t\t// Note: there is no need to check `has(decodeMap, reference)`.\n\t\t\t\treturn decodeMap[reference];\n\t\t\t}\n\n\t\t\tif ($2) {\n\t\t\t\t// Decode named character references without trailing `;`, e.g. `&`.\n\t\t\t\t// This is only a parse error if it gets converted to `&`, or if it is\n\t\t\t\t// followed by `=` in an attribute context.\n\t\t\t\treference = $2;\n\t\t\t\tnext = $3;\n\t\t\t\tif (next && options.isAttributeValue) {\n\t\t\t\t\tif (strict && next == '=') {\n\t\t\t\t\t\tparseError('`&` did not start a character reference');\n\t\t\t\t\t}\n\t\t\t\t\treturn $0;\n\t\t\t\t} else {\n\t\t\t\t\tif (strict) {\n\t\t\t\t\t\tparseError(\n\t\t\t\t\t\t\t'named character reference was not terminated by a semicolon'\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\t// Note: there is no need to check `has(decodeMapLegacy, reference)`.\n\t\t\t\t\treturn decodeMapLegacy[reference] + (next || '');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ($4) {\n\t\t\t\t// Decode decimal escapes, e.g. `𝌆`.\n\t\t\t\tdecDigits = $4;\n\t\t\t\tsemicolon = $5;\n\t\t\t\tif (strict && !semicolon) {\n\t\t\t\t\tparseError('character reference was not terminated by a semicolon');\n\t\t\t\t}\n\t\t\t\tcodePoint = parseInt(decDigits, 10);\n\t\t\t\treturn codePointToSymbol(codePoint, strict);\n\t\t\t}\n\n\t\t\tif ($6) {\n\t\t\t\t// Decode hexadecimal escapes, e.g. `𝌆`.\n\t\t\t\thexDigits = $6;\n\t\t\t\tsemicolon = $7;\n\t\t\t\tif (strict && !semicolon) {\n\t\t\t\t\tparseError('character reference was not terminated by a semicolon');\n\t\t\t\t}\n\t\t\t\tcodePoint = parseInt(hexDigits, 16);\n\t\t\t\treturn codePointToSymbol(codePoint, strict);\n\t\t\t}\n\n\t\t\t// If we’re still here, `if ($7)` is implied; it’s an ambiguous\n\t\t\t// ampersand for sure. https://mths.be/notes/ambiguous-ampersands\n\t\t\tif (strict) {\n\t\t\t\tparseError(\n\t\t\t\t\t'named character reference was not terminated by a semicolon'\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn $0;\n\t\t});\n\t};\n\t// Expose default options (so they can be overridden globally).\n\tdecode.options = {\n\t\t'isAttributeValue': false,\n\t\t'strict': false\n\t};\n\n\tvar escape = function(string) {\n\t\treturn string.replace(regexEscape, function($0) {\n\t\t\t// Note: there is no need to check `has(escapeMap, $0)` here.\n\t\t\treturn escapeMap[$0];\n\t\t});\n\t};\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar he = {\n\t\t'version': '1.2.0',\n\t\t'encode': encode,\n\t\t'decode': decode,\n\t\t'escape': escape,\n\t\t'unescape': decode\n\t};\n\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine(function() {\n\t\t\treturn he;\n\t\t});\n\t}\telse if (freeExports && !freeExports.nodeType) {\n\t\tif (freeModule) { // in Node.js, io.js, or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = he;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (var key in he) {\n\t\t\t\thas(he, key) && (freeExports[key] = he[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.he = he;\n\t}\n\n}(this));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar he_1 = require(\"he\");\n/**\n * Node Class as base class for TextNode and HTMLElement.\n */\nvar Node = /** @class */ (function () {\n function Node(parentNode, range) {\n if (parentNode === void 0) { parentNode = null; }\n this.parentNode = parentNode;\n this.childNodes = [];\n Object.defineProperty(this, 'range', {\n enumerable: false,\n writable: true,\n configurable: true,\n value: range !== null && range !== void 0 ? range : [-1, -1]\n });\n }\n /**\n * Remove current node\n */\n Node.prototype.remove = function () {\n var _this = this;\n if (this.parentNode) {\n var children = this.parentNode.childNodes;\n this.parentNode.childNodes = children.filter(function (child) {\n return _this !== child;\n });\n this.parentNode = null;\n }\n return this;\n };\n Object.defineProperty(Node.prototype, \"innerText\", {\n get: function () {\n return this.rawText;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"textContent\", {\n get: function () {\n return (0, he_1.decode)(this.rawText);\n },\n set: function (val) {\n this.rawText = (0, he_1.encode)(val);\n },\n enumerable: false,\n configurable: true\n });\n return Node;\n}());\nexports.default = Node;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar NodeType;\n(function (NodeType) {\n NodeType[NodeType[\"ELEMENT_NODE\"] = 1] = \"ELEMENT_NODE\";\n NodeType[NodeType[\"TEXT_NODE\"] = 3] = \"TEXT_NODE\";\n NodeType[NodeType[\"COMMENT_NODE\"] = 8] = \"COMMENT_NODE\";\n})(NodeType || (NodeType = {}));\nexports.default = NodeType;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar node_1 = __importDefault(require(\"./node\"));\nvar type_1 = __importDefault(require(\"./type\"));\nvar CommentNode = /** @class */ (function (_super) {\n __extends(CommentNode, _super);\n function CommentNode(rawText, parentNode, range, rawTagName) {\n if (parentNode === void 0) { parentNode = null; }\n if (rawTagName === void 0) { rawTagName = '!--'; }\n var _this = _super.call(this, parentNode, range) || this;\n _this.rawText = rawText;\n _this.rawTagName = rawTagName;\n /**\n * Node Type declaration.\n * @type {Number}\n */\n _this.nodeType = type_1.default.COMMENT_NODE;\n return _this;\n }\n CommentNode.prototype.clone = function () {\n return new CommentNode(this.rawText, null, undefined, this.rawTagName);\n };\n Object.defineProperty(CommentNode.prototype, \"text\", {\n /**\n * Get unescaped text value of current node and its children.\n * @return {string} text content\n */\n get: function () {\n return this.rawText;\n },\n enumerable: false,\n configurable: true\n });\n CommentNode.prototype.toString = function () {\n return \"<!--\".concat(this.rawText, \"-->\");\n };\n return CommentNode;\n}(node_1.default));\nexports.default = CommentNode;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Doctype = exports.CDATA = exports.Tag = exports.Style = exports.Script = exports.Comment = exports.Directive = exports.Text = exports.Root = exports.isTag = exports.ElementType = void 0;\n/** Types of elements found in htmlparser2's DOM */\nvar 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 = exports.ElementType || (exports.ElementType = {}));\n/**\n * Tests whether an element is a tag or not.\n *\n * @param elem Element to test\n */\nfunction isTag(elem) {\n return (elem.type === ElementType.Tag ||\n elem.type === ElementType.Script ||\n elem.type === ElementType.Style);\n}\nexports.isTag = isTag;\n// Exports for backwards compatibility\n/** Type for the root element of a document */\nexports.Root = ElementType.Root;\n/** Type for Text */\nexports.Text = ElementType.Text;\n/** Type for <? ... ?> */\nexports.Directive = ElementType.Directive;\n/** Type for <!-- ... --> */\nexports.Comment = ElementType.Comment;\n/** Type for <script> tags */\nexports.Script = ElementType.Script;\n/** Type for <style> tags */\nexports.Style = ElementType.Style;\n/** Type for Any tag */\nexports.Tag = ElementType.Tag;\n/** Type for <![CDATA[ ... ]]> */\nexports.CDATA = ElementType.CDATA;\n/** Type for <!doctype ...> */\nexports.Doctype = ElementType.Doctype;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.cloneNode = exports.hasChildren = exports.isDocument = exports.isDirective = exports.isComment = exports.isText = exports.isCDATA = exports.isTag = exports.Element = exports.Document = exports.CDATA = exports.NodeWithChildren = exports.ProcessingInstruction = exports.Comment = exports.Text = exports.DataNode = exports.Node = void 0;\nvar domelementtype_1 = require(\"domelementtype\");\n/**\n * This object will be used as the prototype for Nodes when creating a\n * DOM-Level-1-compliant structure.\n */\nvar Node = /** @class */ (function () {\n function Node() {\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 Object.defineProperty(Node.prototype, \"parentNode\", {\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: function () {\n return this.parent;\n },\n set: function (parent) {\n this.parent = parent;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"previousSibling\", {\n /**\n * Same as {@link prev}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.prev;\n },\n set: function (prev) {\n this.prev = prev;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"nextSibling\", {\n /**\n * Same as {@link next}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.next;\n },\n set: function (next) {\n this.next = next;\n },\n enumerable: false,\n configurable: true\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 Node.prototype.cloneNode = function (recursive) {\n if (recursive === void 0) { recursive = false; }\n return cloneNode(this, recursive);\n };\n return Node;\n}());\nexports.Node = Node;\n/**\n * A node that contains some data.\n */\nvar DataNode = /** @class */ (function (_super) {\n __extends(DataNode, _super);\n /**\n * @param data The content of the data node\n */\n function DataNode(data) {\n var _this = _super.call(this) || this;\n _this.data = data;\n return _this;\n }\n Object.defineProperty(DataNode.prototype, \"nodeValue\", {\n /**\n * Same as {@link data}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.data;\n },\n set: function (data) {\n this.data = data;\n },\n enumerable: false,\n configurable: true\n });\n return DataNode;\n}(Node));\nexports.DataNode = DataNode;\n/**\n * Text within the document.\n */\nvar Text = /** @class */ (function (_super) {\n __extends(Text, _super);\n function Text() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.Text;\n return _this;\n }\n Object.defineProperty(Text.prototype, \"nodeType\", {\n get: function () {\n return 3;\n },\n enumerable: false,\n configurable: true\n });\n return Text;\n}(DataNode));\nexports.Text = Text;\n/**\n * Comments within the document.\n */\nvar Comment = /** @class */ (function (_super) {\n __extends(Comment, _super);\n function Comment() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.Comment;\n return _this;\n }\n Object.defineProperty(Comment.prototype, \"nodeType\", {\n get: function () {\n return 8;\n },\n enumerable: false,\n configurable: true\n });\n return Comment;\n}(DataNode));\nexports.Comment = Comment;\n/**\n * Processing instructions, including doc types.\n */\nvar ProcessingInstruction = /** @class */ (function (_super) {\n __extends(ProcessingInstruction, _super);\n function ProcessingInstruction(name, data) {\n var _this = _super.call(this, data) || this;\n _this.name = name;\n _this.type = domelementtype_1.ElementType.Directive;\n return _this;\n }\n Object.defineProperty(ProcessingInstruction.prototype, \"nodeType\", {\n get: function () {\n return 1;\n },\n enumerable: false,\n configurable: true\n });\n return ProcessingInstruction;\n}(DataNode));\nexports.ProcessingInstruction = ProcessingInstruction;\n/**\n * A `Node` that can have children.\n */\nvar NodeWithChildren = /** @class */ (function (_super) {\n __extends(NodeWithChildren, _super);\n /**\n * @param children Children of the node. Only certain node types can have children.\n */\n function NodeWithChildren(children) {\n var _this = _super.call(this) || this;\n _this.children = children;\n return _this;\n }\n Object.defineProperty(NodeWithChildren.prototype, \"firstChild\", {\n // Aliases\n /** First child of the node. */\n get: function () {\n var _a;\n return (_a = this.children[0]) !== null && _a !== void 0 ? _a : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NodeWithChildren.prototype, \"lastChild\", {\n /** Last child of the node. */\n get: function () {\n return this.children.length > 0\n ? this.children[this.children.length - 1]\n : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NodeWithChildren.prototype, \"childNodes\", {\n /**\n * Same as {@link children}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.children;\n },\n set: function (children) {\n this.children = children;\n },\n enumerable: false,\n configurable: true\n });\n return NodeWithChildren;\n}(Node));\nexports.NodeWithChildren = NodeWithChildren;\nvar CDATA = /** @class */ (function (_super) {\n __extends(CDATA, _super);\n function CDATA() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.CDATA;\n return _this;\n }\n Object.defineProperty(CDATA.prototype, \"nodeType\", {\n get: function () {\n return 4;\n },\n enumerable: false,\n configurable: true\n });\n return CDATA;\n}(NodeWithChildren));\nexports.CDATA = CDATA;\n/**\n * The root node of the document.\n */\nvar Document = /** @class */ (function (_super) {\n __extends(Document, _super);\n function Document() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.Root;\n return _this;\n }\n Object.defineProperty(Document.prototype, \"nodeType\", {\n get: function () {\n return 9;\n },\n enumerable: false,\n configurable: true\n });\n return Document;\n}(NodeWithChildren));\nexports.Document = Document;\n/**\n * An element within the DOM.\n */\nvar Element = /** @class */ (function (_super) {\n __extends(Element, _super);\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 function Element(name, attribs, children, type) {\n if (children === void 0) { children = []; }\n if (type === void 0) { type = name === \"script\"\n ? domelementtype_1.ElementType.Script\n : name === \"style\"\n ? domelementtype_1.ElementType.Style\n : domelementtype_1.ElementType.Tag; }\n var _this = _super.call(this, children) || this;\n _this.name = name;\n _this.attribs = attribs;\n _this.type = type;\n return _this;\n }\n Object.defineProperty(Element.prototype, \"nodeType\", {\n get: function () {\n return 1;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Element.prototype, \"tagName\", {\n // DOM Level 1 aliases\n /**\n * Same as {@link name}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.name;\n },\n set: function (name) {\n this.name = name;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Element.prototype, \"attributes\", {\n get: function () {\n var _this = this;\n return Object.keys(this.attribs).map(function (name) {\n var _a, _b;\n return ({\n name: 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 enumerable: false,\n configurable: true\n });\n return Element;\n}(NodeWithChildren));\nexports.Element = Element;\n/**\n * @param node Node to check.\n * @returns `true` if the node is a `Element`, `false` otherwise.\n */\nfunction isTag(node) {\n return (0, domelementtype_1.isTag)(node);\n}\nexports.isTag = isTag;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `CDATA`, `false` otherwise.\n */\nfunction isCDATA(node) {\n return node.type === domelementtype_1.ElementType.CDATA;\n}\nexports.isCDATA = isCDATA;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `Text`, `false` otherwise.\n */\nfunction isText(node) {\n return node.type === domelementtype_1.ElementType.Text;\n}\nexports.isText = isText;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `Comment`, `false` otherwise.\n */\nfunction isComment(node) {\n return node.type === domelementtype_1.ElementType.Comment;\n}\nexports.isComment = isComment;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `ProcessingInstruction`, `false` otherwise.\n */\nfunction isDirective(node) {\n return node.type === domelementtype_1.ElementType.Directive;\n}\nexports.isDirective = isDirective;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `ProcessingInstruction`, `false` otherwise.\n */\nfunction isDocument(node) {\n return node.type === domelementtype_1.ElementType.Root;\n}\nexports.isDocument = isDocument;\n/**\n * @param node Node to check.\n * @returns `true` if the node has children, `false` otherwise.\n */\nfunction hasChildren(node) {\n return Object.prototype.hasOwnProperty.call(node, \"children\");\n}\nexports.hasChildren = hasChildren;\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 */\nfunction cloneNode(node, recursive) {\n if (recursive === void 0) { recursive = false; }\n var 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 var children = recursive ? cloneChildren(node.children) : [];\n var clone_1 = new Element(node.name, __assign({}, node.attribs), children);\n children.forEach(function (child) { return (child.parent = clone_1); });\n if (node.namespace != null) {\n clone_1.namespace = node.namespace;\n }\n if (node[\"x-attribsNamespace\"]) {\n clone_1[\"x-attribsNamespace\"] = __assign({}, node[\"x-attribsNamespace\"]);\n }\n if (node[\"x-attribsPrefix\"]) {\n clone_1[\"x-attribsPrefix\"] = __assign({}, node[\"x-attribsPrefix\"]);\n }\n result = clone_1;\n }\n else if (isCDATA(node)) {\n var children = recursive ? cloneChildren(node.children) : [];\n var clone_2 = new CDATA(children);\n children.forEach(function (child) { return (child.parent = clone_2); });\n result = clone_2;\n }\n else if (isDocument(node)) {\n var children = recursive ? cloneChildren(node.children) : [];\n var clone_3 = new Document(children);\n children.forEach(function (child) { return (child.parent = clone_3); });\n if (node[\"x-mode\"]) {\n clone_3[\"x-mode\"] = node[\"x-mode\"];\n }\n result = clone_3;\n }\n else if (isDirective(node)) {\n var 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: \".concat(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}\nexports.cloneNode = cloneNode;\nfunction cloneChildren(childs) {\n var children = childs.map(function (child) { return cloneNode(child, true); });\n for (var 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","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DomHandler = void 0;\nvar domelementtype_1 = require(\"domelementtype\");\nvar node_js_1 = require(\"./node.js\");\n__exportStar(require(\"./node.js\"), exports);\n// Default options\nvar defaultOpts = {\n withStartIndices: false,\n withEndIndices: false,\n xmlMode: false,\n};\nvar DomHandler = /** @class */ (function () {\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 function DomHandler(callback, options, elementCB) {\n /** The elements of the DOM */\n this.dom = [];\n /** The root element for the DOM */\n this.root = new node_js_1.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 DomHandler.prototype.onparserinit = function (parser) {\n this.parser = parser;\n };\n // Resets the handler back to starting state\n DomHandler.prototype.onreset = function () {\n this.dom = [];\n this.root = new node_js_1.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 DomHandler.prototype.onend = function () {\n if (this.done)\n return;\n this.done = true;\n this.parser = null;\n this.handleCallback(null);\n };\n DomHandler.prototype.onerror = function (error) {\n this.handleCallback(error);\n };\n DomHandler.prototype.onclosetag = function () {\n this.lastNode = null;\n var 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 DomHandler.prototype.onopentag = function (name, attribs) {\n var type = this.options.xmlMode ? domelementtype_1.ElementType.Tag : undefined;\n var element = new node_js_1.Element(name, attribs, undefined, type);\n this.addNode(element);\n this.tagStack.push(element);\n };\n DomHandler.prototype.ontext = function (data) {\n var lastNode = this.lastNode;\n if (lastNode && lastNode.type === domelementtype_1.ElementType.Text) {\n lastNode.data += data;\n if (this.options.withEndIndices) {\n lastNode.endIndex = this.parser.endIndex;\n }\n }\n else {\n var node = new node_js_1.Text(data);\n this.addNode(node);\n this.lastNode = node;\n }\n };\n DomHandler.prototype.oncomment = function (data) {\n if (this.lastNode && this.lastNode.type === domelementtype_1.ElementType.Comment) {\n this.lastNode.data += data;\n return;\n }\n var node = new node_js_1.Comment(data);\n this.addNode(node);\n this.lastNode = node;\n };\n DomHandler.prototype.oncommentend = function () {\n this.lastNode = null;\n };\n DomHandler.prototype.oncdatastart = function () {\n var text = new node_js_1.Text(\"\");\n var node = new node_js_1.CDATA([text]);\n this.addNode(node);\n text.parent = node;\n this.lastNode = text;\n };\n DomHandler.prototype.oncdataend = function () {\n this.lastNode = null;\n };\n DomHandler.prototype.onprocessinginstruction = function (name, data) {\n var node = new node_js_1.ProcessingInstruction(name, data);\n this.addNode(node);\n };\n DomHandler.prototype.handleCallback = function (error) {\n if (typeof this.callback === \"function\") {\n this.callback(error, this.dom);\n }\n else if (error) {\n throw error;\n }\n };\n DomHandler.prototype.addNode = function (node) {\n var parent = this.tagStack[this.tagStack.length - 1];\n var 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 return DomHandler;\n}());\nexports.DomHandler = DomHandler;\nexports.default = DomHandler;\n","\"use strict\";\n// Generated using scripts/write-decode-map.ts\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = new Uint16Array(\n// prettier-ignore\n\"\\u1d41<\\xd5\\u0131\\u028a\\u049d\\u057b\\u05d0\\u0675\\u06de\\u07a2\\u07d6\\u080f\\u0a4a\\u0a91\\u0da1\\u0e6d\\u0f09\\u0f26\\u10ca\\u1228\\u12e1\\u1415\\u149d\\u14c3\\u14df\\u1525\\0\\0\\0\\0\\0\\0\\u156b\\u16cd\\u198d\\u1c12\\u1ddd\\u1f7e\\u2060\\u21b0\\u228d\\u23c0\\u23fb\\u2442\\u2824\\u2912\\u2d08\\u2e48\\u2fce\\u3016\\u32ba\\u3639\\u37ac\\u38fe\\u3a28\\u3a71\\u3ae0\\u3b2e\\u0800EMabcfglmnoprstu\\\\bfms\\x7f\\x84\\x8b\\x90\\x95\\x98\\xa6\\xb3\\xb9\\xc8\\xcflig\\u803b\\xc6\\u40c6P\\u803b&\\u4026cute\\u803b\\xc1\\u40c1reve;\\u4102\\u0100iyx}rc\\u803b\\xc2\\u40c2;\\u4410r;\\uc000\\ud835\\udd04rave\\u803b\\xc0\\u40c0pha;\\u4391acr;\\u4100d;\\u6a53\\u0100gp\\x9d\\xa1on;\\u4104f;\\uc000\\ud835\\udd38plyFunction;\\u6061ing\\u803b\\xc5\\u40c5\\u0100cs\\xbe\\xc3r;\\uc000\\ud835\\udc9cign;\\u6254ilde\\u803b\\xc3\\u40c3ml\\u803b\\xc4\\u40c4\\u0400aceforsu\\xe5\\xfb\\xfe\\u0117\\u011c\\u0122\\u0127\\u012a\\u0100cr\\xea\\xf2kslash;\\u6216\\u0176\\xf6\\xf8;\\u6ae7ed;\\u6306y;\\u4411\\u0180crt\\u0105\\u010b\\u0114ause;\\u6235noullis;\\u612ca;\\u4392r;\\uc000\\ud835\\udd05pf;\\uc000\\ud835\\udd39eve;\\u42d8c\\xf2\\u0113mpeq;\\u624e\\u0700HOacdefhilorsu\\u014d\\u0151\\u0156\\u0180\\u019e\\u01a2\\u01b5\\u01b7\\u01ba\\u01dc\\u0215\\u0273\\u0278\\u027ecy;\\u4427PY\\u803b\\xa9\\u40a9\\u0180cpy\\u015d\\u0162\\u017aute;\\u4106\\u0100;i\\u0167\\u0168\\u62d2talDifferentialD;\\u6145leys;\\u612d\\u0200aeio\\u0189\\u018e\\u0194\\u0198ron;\\u410cdil\\u803b\\xc7\\u40c7rc;\\u4108nint;\\u6230ot;\\u410a\\u0100dn\\u01a7\\u01adilla;\\u40b8terDot;\\u40b7\\xf2\\u017fi;\\u43a7rcle\\u0200DMPT\\u01c7\\u01cb\\u01d1\\u01d6ot;\\u6299inus;\\u6296lus;\\u6295imes;\\u6297o\\u0100cs\\u01e2\\u01f8kwiseContourIntegral;\\u6232eCurly\\u0100DQ\\u0203\\u020foubleQuote;\\u601duote;\\u6019\\u0200lnpu\\u021e\\u0228\\u0247\\u0255on\\u0100;e\\u0225\\u0226\\u6237;\\u6a74\\u0180git\\u022f\\u0236\\u023aruent;\\u6261nt;\\u622fourIntegral;\\u622e\\u0100fr\\u024c\\u024e;\\u6102oduct;\\u6210nterClockwiseContourIntegral;\\u6233oss;\\u6a2fcr;\\uc000\\ud835\\udc9ep\\u0100;C\\u0284\\u0285\\u62d3ap;\\u624d\\u0580DJSZacefios\\u02a0\\u02ac\\u02b0\\u02b4\\u02b8\\u02cb\\u02d7\\u02e1\\u02e6\\u0333\\u048d\\u0100;o\\u0179\\u02a5trahd;\\u6911cy;\\u4402cy;\\u4405cy;\\u440f\\u0180grs\\u02bf\\u02c4\\u02c7ger;\\u6021r;\\u61a1hv;\\u6ae4\\u0100ay\\u02d0\\u02d5ron;\\u410e;\\u4414l\\u0100;t\\u02dd\\u02de\\u6207a;\\u4394r;\\uc000\\ud835\\udd07\\u0100af\\u02eb\\u0327\\u0100cm\\u02f0\\u0322ritical\\u0200ADGT\\u0300\\u0306\\u0316\\u031ccute;\\u40b4o\\u0174\\u030b\\u030d;\\u42d9bleAcute;\\u42ddrave;\\u4060ilde;\\u42dcond;\\u62c4ferentialD;\\u6146\\u0470\\u033d\\0\\0\\0\\u0342\\u0354\\0\\u0405f;\\uc000\\ud835\\udd3b\\u0180;DE\\u0348\\u0349\\u034d\\u40a8ot;\\u60dcqual;\\u6250ble\\u0300CDLRUV\\u0363\\u0372\\u0382\\u03cf\\u03e2\\u03f8ontourIntegra\\xec\\u0239o\\u0274\\u0379\\0\\0\\u037b\\xbb\\u0349nArrow;\\u61d3\\u0100eo\\u0387\\u03a4ft\\u0180ART\\u0390\\u0396\\u03a1rrow;\\u61d0ightArrow;\\u61d4e\\xe5\\u02cang\\u0100LR\\u03ab\\u03c4eft\\u0100AR\\u03b3\\u03b9rrow;\\u67f8ightArrow;\\u67faightArrow;\\u67f9ight\\u0100AT\\u03d8\\u03derrow;\\u61d2ee;\\u62a8p\\u0241\\u03e9\\0\\0\\u03efrrow;\\u61d1ownArrow;\\u61d5erticalBar;\\u6225n\\u0300ABLRTa\\u0412\\u042a\\u0430\\u045e\\u047f\\u037crrow\\u0180;BU\\u041d\\u041e\\u0422\\u6193ar;\\u6913pArrow;\\u61f5reve;\\u4311eft\\u02d2\\u043a\\0\\u0446\\0\\u0450ightVector;\\u6950eeVector;\\u695eector\\u0100;B\\u0459\\u045a\\u61bdar;\\u6956ight\\u01d4\\u0467\\0\\u0471eeVector;\\u695fector\\u0100;B\\u047a\\u047b\\u61c1ar;\\u6957ee\\u0100;A\\u0486\\u0487\\u62a4rrow;\\u61a7\\u0100ct\\u0492\\u0497r;\\uc000\\ud835\\udc9frok;\\u4110\\u0800NTacdfglmopqstux\\u04bd\\u04c0\\u04c4\\u04cb\\u04de\\u04e2\\u04e7\\u04ee\\u04f5\\u0521\\u052f\\u0536\\u0552\\u055d\\u0560\\u0565G;\\u414aH\\u803b\\xd0\\u40d0cute\\u803b\\xc9\\u40c9\\u0180aiy\\u04d2\\u04d7\\u04dcron;\\u411arc\\u803b\\xca\\u40ca;\\u442dot;\\u4116r;\\uc000\\ud835\\udd08rave\\u803b\\xc8\\u40c8ement;\\u6208\\u0100ap\\u04fa\\u04fecr;\\u4112ty\\u0253\\u0506\\0\\0\\u0512mallSquare;\\u65fberySmallSquare;\\u65ab\\u0100gp\\u0526\\u052aon;\\u4118f;\\uc000\\ud835\\udd3csilon;\\u4395u\\u0100ai\\u053c\\u0549l\\u0100;T\\u0542\\u0543\\u6a75ilde;\\u6242librium;\\u61cc\\u0100ci\\u0557\\u055ar;\\u6130m;\\u6a73a;\\u4397ml\\u803b\\xcb\\u40cb\\u0100ip\\u056a\\u056fsts;\\u6203onentialE;\\u6147\\u0280cfios\\u0585\\u0588\\u058d\\u05b2\\u05ccy;\\u4424r;\\uc000\\ud835\\udd09lled\\u0253\\u0597\\0\\0\\u05a3mallSquare;\\u65fcerySmallSquare;\\u65aa\\u0370\\u05ba\\0\\u05bf\\0\\0\\u05c4f;\\uc000\\ud835\\udd3dAll;\\u6200riertrf;\\u6131c\\xf2\\u05cb\\u0600JTabcdfgorst\\u05e8\\u05ec\\u05ef\\u05fa\\u0600\\u0612\\u0616\\u061b\\u061d\\u0623\\u066c\\u0672cy;\\u4403\\u803b>\\u403emma\\u0100;d\\u05f7\\u05f8\\u4393;\\u43dcreve;\\u411e\\u0180eiy\\u0607\\u060c\\u0610dil;\\u4122rc;\\u411c;\\u4413ot;\\u4120r;\\uc000\\ud835\\udd0a;\\u62d9pf;\\uc000\\ud835\\udd3eeater\\u0300EFGLST\\u0635\\u0644\\u064e\\u0656\\u065b\\u0666qual\\u0100;L\\u063e\\u063f\\u6265ess;\\u62dbullEqual;\\u6267reater;\\u6aa2ess;\\u6277lantEqual;\\u6a7eilde;\\u6273cr;\\uc000\\ud835\\udca2;\\u626b\\u0400Aacfiosu\\u0685\\u068b\\u0696\\u069b\\u069e\\u06aa\\u06be\\u06caRDcy;\\u442a\\u0100ct\\u0690\\u0694ek;\\u42c7;\\u405eirc;\\u4124r;\\u610clbertSpace;\\u610b\\u01f0\\u06af\\0\\u06b2f;\\u610dizontalLine;\\u6500\\u0100ct\\u06c3\\u06c5\\xf2\\u06a9rok;\\u4126mp\\u0144\\u06d0\\u06d8ownHum\\xf0\\u012fqual;\\u624f\\u0700EJOacdfgmnostu\\u06fa\\u06fe\\u0703\\u0707\\u070e\\u071a\\u071e\\u0721\\u0728\\u0744\\u0778\\u078b\\u078f\\u0795cy;\\u4415lig;\\u4132cy;\\u4401cute\\u803b\\xcd\\u40cd\\u0100iy\\u0713\\u0718rc\\u803b\\xce\\u40ce;\\u4418ot;\\u4130r;\\u6111rave\\u803b\\xcc\\u40cc\\u0180;ap\\u0720\\u072f\\u073f\\u0100cg\\u0734\\u0737r;\\u412ainaryI;\\u6148lie\\xf3\\u03dd\\u01f4\\u0749\\0\\u0762\\u0100;e\\u074d\\u074e\\u622c\\u0100gr\\u0753\\u0758ral;\\u622bsection;\\u62c2isible\\u0100CT\\u076c\\u0772omma;\\u6063imes;\\u6062\\u0180gpt\\u077f\\u0783\\u0788on;\\u412ef;\\uc000\\ud835\\udd40a;\\u4399cr;\\u6110ilde;\\u4128\\u01eb\\u079a\\0\\u079ecy;\\u4406l\\u803b\\xcf\\u40cf\\u0280cfosu\\u07ac\\u07b7\\u07bc\\u07c2\\u07d0\\u0100iy\\u07b1\\u07b5rc;\\u4134;\\u4419r;\\uc000\\ud835\\udd0dpf;\\uc000\\ud835\\udd41\\u01e3\\u07c7\\0\\u07ccr;\\uc000\\ud835\\udca5rcy;\\u4408kcy;\\u4404\\u0380HJacfos\\u07e4\\u07e8\\u07ec\\u07f1\\u07fd\\u0802\\u0808cy;\\u4425cy;\\u440cppa;\\u439a\\u0100ey\\u07f6\\u07fbdil;\\u4136;\\u441ar;\\uc000\\ud835\\udd0epf;\\uc000\\ud835\\udd42cr;\\uc000\\ud835\\udca6\\u0580JTaceflmost\\u0825\\u0829\\u082c\\u0850\\u0863\\u09b3\\u09b8\\u09c7\\u09cd\\u0a37\\u0a47cy;\\u4409\\u803b<\\u403c\\u0280cmnpr\\u0837\\u083c\\u0841\\u0844\\u084dute;\\u4139bda;\\u439bg;\\u67ealacetrf;\\u6112r;\\u619e\\u0180aey\\u0857\\u085c\\u0861ron;\\u413ddil;\\u413b;\\u441b\\u0100fs\\u0868\\u0970t\\u0500ACDFRTUVar\\u087e\\u08a9\\u08b1\\u08e0\\u08e6\\u08fc\\u092f\\u095b\\u0390\\u096a\\u0100nr\\u0883\\u088fgleBracket;\\u67e8row\\u0180;BR\\u0899\\u089a\\u089e\\u6190ar;\\u61e4ightArrow;\\u61c6eiling;\\u6308o\\u01f5\\u08b7\\0\\u08c3bleBracket;\\u67e6n\\u01d4\\u08c8\\0\\u08d2eeVector;\\u6961ector\\u0100;B\\u08db\\u08dc\\u61c3ar;\\u6959loor;\\u630aight\\u0100AV\\u08ef\\u08f5rrow;\\u6194ector;\\u694e\\u0100er\\u0901\\u0917e\\u0180;AV\\u0909\\u090a\\u0910\\u62a3rrow;\\u61a4ector;\\u695aiangle\\u0180;BE\\u0924\\u0925\\u0929\\u62b2ar;\\u69cfqual;\\u62b4p\\u0180DTV\\u0937\\u0942\\u094cownVector;\\u6951eeVector;\\u6960ector\\u0100;B\\u0956\\u0957\\u61bfar;\\u6958ector\\u0100;B\\u0965\\u0966\\u61bcar;\\u6952ight\\xe1\\u039cs\\u0300EFGLST\\u097e\\u098b\\u0995\\u099d\\u09a2\\u09adqualGreater;\\u62daullEqual;\\u6266reater;\\u6276ess;\\u6aa1lantEqual;\\u6a7dilde;\\u6272r;\\uc000\\ud835\\udd0f\\u0100;e\\u09bd\\u09be\\u62d8ftarrow;\\u61daidot;\\u413f\\u0180npw\\u09d4\\u0a16\\u0a1bg\\u0200LRlr\\u09de\\u09f7\\u0a02\\u0a10eft\\u0100AR\\u09e6\\u09ecrrow;\\u67f5ightArrow;\\u67f7ightArrow;\\u67f6eft\\u0100ar\\u03b3\\u0a0aight\\xe1\\u03bfight\\xe1\\u03caf;\\uc000\\ud835\\udd43er\\u0100LR\\u0a22\\u0a2ceftArrow;\\u6199ightArrow;\\u6198\\u0180cht\\u0a3e\\u0a40\\u0a42\\xf2\\u084c;\\u61b0rok;\\u4141;\\u626a\\u0400acefiosu\\u0a5a\\u0a5d\\u0a60\\u0a77\\u0a7c\\u0a85\\u0a8b\\u0a8ep;\\u6905y;\\u441c\\u0100dl\\u0a65\\u0a6fiumSpace;\\u605flintrf;\\u6133r;\\uc000\\ud835\\udd10nusPlus;\\u6213pf;\\uc000\\ud835\\udd44c\\xf2\\u0a76;\\u439c\\u0480Jacefostu\\u0aa3\\u0aa7\\u0aad\\u0ac0\\u0b14\\u0b19\\u0d91\\u0d97\\u0d9ecy;\\u440acute;\\u4143\\u0180aey\\u0ab4\\u0ab9\\u0aberon;\\u4147dil;\\u4145;\\u441d\\u0180gsw\\u0ac7\\u0af0\\u0b0eative\\u0180MTV\\u0ad3\\u0adf\\u0ae8ediumSpace;\\u600bhi\\u0100cn\\u0ae6\\u0ad8\\xeb\\u0ad9eryThi\\xee\\u0ad9ted\\u0100GL\\u0af8\\u0b06reaterGreate\\xf2\\u0673essLes\\xf3\\u0a48Line;\\u400ar;\\uc000\\ud835\\udd11\\u0200Bnpt\\u0b22\\u0b28\\u0b37\\u0b3areak;\\u6060BreakingSpace;\\u40a0f;\\u6115\\u0680;CDEGHLNPRSTV\\u0b55\\u0b56\\u0b6a\\u0b7c\\u0ba1\\u0beb\\u0c04\\u0c5e\\u0c84\\u0ca6\\u0cd8\\u0d61\\u0d85\\u6aec\\u0100ou\\u0b5b\\u0b64ngruent;\\u6262pCap;\\u626doubleVerticalBar;\\u6226\\u0180lqx\\u0b83\\u0b8a\\u0b9bement;\\u6209ual\\u0100;T\\u0b92\\u0b93\\u6260ilde;\\uc000\\u2242\\u0338ists;\\u6204reater\\u0380;EFGLST\\u0bb6\\u0bb7\\u0bbd\\u0bc9\\u0bd3\\u0bd8\\u0be5\\u626fqual;\\u6271ullEqual;\\uc000\\u2267\\u0338reater;\\uc000\\u226b\\u0338ess;\\u6279lantEqual;\\uc000\\u2a7e\\u0338ilde;\\u6275ump\\u0144\\u0bf2\\u0bfdownHump;\\uc000\\u224e\\u0338qual;\\uc000\\u224f\\u0338e\\u0100fs\\u0c0a\\u0c27tTriangle\\u0180;BE\\u0c1a\\u0c1b\\u0c21\\u62eaar;\\uc000\\u29cf\\u0338qual;\\u62ecs\\u0300;EGLST\\u0c35\\u0c36\\u0c3c\\u0c44\\u0c4b\\u0c58\\u626equal;\\u6270reater;\\u6278ess;\\uc000\\u226a\\u0338lantEqual;\\uc000\\u2a7d\\u0338ilde;\\u6274ested\\u0100GL\\u0c68\\u0c79reaterGreater;\\uc000\\u2aa2\\u0338essLess;\\uc000\\u2aa1\\u0338recedes\\u0180;ES\\u0c92\\u0c93\\u0c9b\\u6280qual;\\uc000\\u2aaf\\u0338lantEqual;\\u62e0\\u0100ei\\u0cab\\u0cb9verseElement;\\u620cghtTriangle\\u0180;BE\\u0ccb\\u0ccc\\u0cd2\\u62ebar;\\uc000\\u29d0\\u0338qual;\\u62ed\\u0100qu\\u0cdd\\u0d0cuareSu\\u0100bp\\u0ce8\\u0cf9set\\u0100;E\\u0cf0\\u0cf3\\uc000\\u228f\\u0338qual;\\u62e2erset\\u0100;E\\u0d03\\u0d06\\uc000\\u2290\\u0338qual;\\u62e3\\u0180bcp\\u0d13\\u0d24\\u0d4eset\\u0100;E\\u0d1b\\u0d1e\\uc000\\u2282\\u20d2qual;\\u6288ceeds\\u0200;EST\\u0d32\\u0d33\\u0d3b\\u0d46\\u6281qual;\\uc000\\u2ab0\\u0338lantEqual;\\u62e1ilde;\\uc000\\u227f\\u0338erset\\u0100;E\\u0d58\\u0d5b\\uc000\\u2283\\u20d2qual;\\u6289ilde\\u0200;EFT\\u0d6e\\u0d6f\\u0d75\\u0d7f\\u6241qual;\\u6244ullEqual;\\u6247ilde;\\u6249erticalBar;\\u6224cr;\\uc000\\ud835\\udca9ilde\\u803b\\xd1\\u40d1;\\u439d\\u0700Eacdfgmoprstuv\\u0dbd\\u0dc2\\u0dc9\\u0dd5\\u0ddb\\u0de0\\u0de7\\u0dfc\\u0e02\\u0e20\\u0e22\\u0e32\\u0e3f\\u0e44lig;\\u4152cute\\u803b\\xd3\\u40d3\\u0100iy\\u0dce\\u0dd3rc\\u803b\\xd4\\u40d4;\\u441eblac;\\u4150r;\\uc000\\ud835\\udd12rave\\u803b\\xd2\\u40d2\\u0180aei\\u0dee\\u0df2\\u0df6cr;\\u414cga;\\u43a9cron;\\u439fpf;\\uc000\\ud835\\udd46enCurly\\u0100DQ\\u0e0e\\u0e1aoubleQuote;\\u601cuote;\\u6018;\\u6a54\\u0100cl\\u0e27\\u0e2cr;\\uc000\\ud835\\udcaaash\\u803b\\xd8\\u40d8i\\u016c\\u0e37\\u0e3cde\\u803b\\xd5\\u40d5es;\\u6a37ml\\u803b\\xd6\\u40d6er\\u0100BP\\u0e4b\\u0e60\\u0100ar\\u0e50\\u0e53r;\\u603eac\\u0100ek\\u0e5a\\u0e5c;\\u63deet;\\u63b4arenthesis;\\u63dc\\u0480acfhilors\\u0e7f\\u0e87\\u0e8a\\u0e8f\\u0e92\\u0e94\\u0e9d\\u0eb0\\u0efcrtialD;\\u6202y;\\u441fr;\\uc000\\ud835\\udd13i;\\u43a6;\\u43a0usMinus;\\u40b1\\u0100ip\\u0ea2\\u0eadncareplan\\xe5\\u069df;\\u6119\\u0200;eio\\u0eb9\\u0eba\\u0ee0\\u0ee4\\u6abbcedes\\u0200;EST\\u0ec8\\u0ec9\\u0ecf\\u0eda\\u627aqual;\\u6aaflantEqual;\\u627cilde;\\u627eme;\\u6033\\u0100dp\\u0ee9\\u0eeeuct;\\u620fortion\\u0100;a\\u0225\\u0ef9l;\\u621d\\u0100ci\\u0f01\\u0f06r;\\uc000\\ud835\\udcab;\\u43a8\\u0200Ufos\\u0f11\\u0f16\\u0f1b\\u0f1fOT\\u803b\\\"\\u4022r;\\uc000\\ud835\\udd14pf;\\u611acr;\\uc000\\ud835\\udcac\\u0600BEacefhiorsu\\u0f3e\\u0f43\\u0f47\\u0f60\\u0f73\\u0fa7\\u0faa\\u0fad\\u1096\\u10a9\\u10b4\\u10bearr;\\u6910G\\u803b\\xae\\u40ae\\u0180cnr\\u0f4e\\u0f53\\u0f56ute;\\u4154g;\\u67ebr\\u0100;t\\u0f5c\\u0f5d\\u61a0l;\\u6916\\u0180aey\\u0f67\\u0f6c\\u0f71ron;\\u4158dil;\\u4156;\\u4420\\u0100;v\\u0f78\\u0f79\\u611cerse\\u0100EU\\u0f82\\u0f99\\u0100lq\\u0f87\\u0f8eement;\\u620builibrium;\\u61cbpEquilibrium;\\u696fr\\xbb\\u0f79o;\\u43a1ght\\u0400ACDFTUVa\\u0fc1\\u0feb\\u0ff3\\u1022\\u1028\\u105b\\u1087\\u03d8\\u0100nr\\u0fc6\\u0fd2gleBracket;\\u67e9row\\u0180;BL\\u0fdc\\u0fdd\\u0fe1\\u6192ar;\\u61e5eftArrow;\\u61c4eiling;\\u6309o\\u01f5\\u0ff9\\0\\u1005bleBracket;\\u67e7n\\u01d4\\u100a\\0\\u1014eeVector;\\u695dector\\u0100;B\\u101d\\u101e\\u61c2ar;\\u6955loor;\\u630b\\u0100er\\u102d\\u1043e\\u0180;AV\\u1035\\u1036\\u103c\\u62a2rrow;\\u61a6ector;\\u695biangle\\u0180;BE\\u1050\\u1051\\u1055\\u62b3ar;\\u69d0qual;\\u62b5p\\u0180DTV\\u1063\\u106e\\u1078ownVector;\\u694feeVector;\\u695cector\\u0100;B\\u1082\\u1083\\u61bear;\\u6954ector\\u0100;B\\u1091\\u1092\\u61c0ar;\\u6953\\u0100pu\\u109b\\u109ef;\\u611dndImplies;\\u6970ightarrow;\\u61db\\u0100ch\\u10b9\\u10bcr;\\u611b;\\u61b1leDelayed;\\u69f4\\u0680HOacfhimoqstu\\u10e4\\u10f1\\u10f7\\u10fd\\u1119\\u111e\\u1151\\u1156\\u1161\\u1167\\u11b5\\u11bb\\u11bf\\u0100Cc\\u10e9\\u10eeHcy;\\u4429y;\\u4428FTcy;\\u442ccute;\\u415a\\u0280;aeiy\\u1108\\u1109\\u110e\\u1113\\u1117\\u6abcron;\\u4160dil;\\u415erc;\\u415c;\\u4421r;\\uc000\\ud835\\udd16ort\\u0200DLRU\\u112a\\u1134\\u113e\\u1149ownArrow\\xbb\\u041eeftArrow\\xbb\\u089aightArrow\\xbb\\u0fddpArrow;\\u6191gma;\\u43a3allCircle;\\u6218pf;\\uc000\\ud835\\udd4a\\u0272\\u116d\\0\\0\\u1170t;\\u621aare\\u0200;ISU\\u117b\\u117c\\u1189\\u11af\\u65a1ntersection;\\u6293u\\u0100bp\\u118f\\u119eset\\u0100;E\\u1197\\u1198\\u628fqual;\\u6291erset\\u0100;E\\u11a8\\u11a9\\u6290qual;\\u6292nion;\\u6294cr;\\uc000\\ud835\\udcaear;\\u62c6\\u0200bcmp\\u11c8\\u11db\\u1209\\u120b\\u0100;s\\u11cd\\u11ce\\u62d0et\\u0100;E\\u11cd\\u11d5qual;\\u6286\\u0100ch\\u11e0\\u1205eeds\\u0200;EST\\u11ed\\u11ee\\u11f4\\u11ff\\u627bqual;\\u6ab0lantEqual;\\u627dilde;\\u627fTh\\xe1\\u0f8c;\\u6211\\u0180;es\\u1212\\u1213\\u1223\\u62d1rset\\u0100;E\\u121c\\u121d\\u6283qual;\\u6287et\\xbb\\u1213\\u0580HRSacfhiors\\u123e\\u1244\\u1249\\u1255\\u125e\\u1271\\u1276\\u129f\\u12c2\\u12c8\\u12d1ORN\\u803b\\xde\\u40deADE;\\u6122\\u0100Hc\\u124e\\u1252cy;\\u440by;\\u4426\\u0100bu\\u125a\\u125c;\\u4009;\\u43a4\\u0180aey\\u1265\\u126a\\u126fron;\\u4164dil;\\u4162;\\u4422r;\\uc000\\ud835\\udd17\\u0100ei\\u127b\\u1289\\u01f2\\u1280\\0\\u1287efore;\\u6234a;\\u4398\\u0100cn\\u128e\\u1298kSpace;\\uc000\\u205f\\u200aSpace;\\u6009lde\\u0200;EFT\\u12ab\\u12ac\\u12b2\\u12bc\\u623cqual;\\u6243ullEqual;\\u6245ilde;\\u6248pf;\\uc000\\ud835\\udd4bipleDot;\\u60db\\u0100ct\\u12d6\\u12dbr;\\uc000\\ud835\\udcafrok;\\u4166\\u0ae1\\u12f7\\u130e\\u131a\\u1326\\0\\u132c\\u1331\\0\\0\\0\\0\\0\\u1338\\u133d\\u1377\\u1385\\0\\u13ff\\u1404\\u140a\\u1410\\u0100cr\\u12fb\\u1301ute\\u803b\\xda\\u40dar\\u0100;o\\u1307\\u1308\\u619fcir;\\u6949r\\u01e3\\u1313\\0\\u1316y;\\u440eve;\\u416c\\u0100iy\\u131e\\u1323rc\\u803b\\xdb\\u40db;\\u4423blac;\\u4170r;\\uc000\\ud835\\udd18rave\\u803b\\xd9\\u40d9acr;\\u416a\\u0100di\\u1341\\u1369er\\u0100BP\\u1348\\u135d\\u0100ar\\u134d\\u1350r;\\u405fac\\u0100ek\\u1357\\u1359;\\u63dfet;\\u63b5arenthesis;\\u63ddon\\u0100;P\\u1370\\u1371\\u62c3lus;\\u628e\\u0100gp\\u137b\\u137fon;\\u4172f;\\uc000\\ud835\\udd4c\\u0400ADETadps\\u1395\\u13ae\\u13b8\\u13c4\\u03e8\\u13d2\\u13d7\\u13f3rrow\\u0180;BD\\u1150\\u13a0\\u13a4ar;\\u6912ownArrow;\\u61c5ownArrow;\\u6195quilibrium;\\u696eee\\u0100;A\\u13cb\\u13cc\\u62a5rrow;\\u61a5own\\xe1\\u03f3er\\u0100LR\\u13de\\u13e8eftArrow;\\u6196ightArrow;\\u6197i\\u0100;l\\u13f9\\u13fa\\u43d2on;\\u43a5ing;\\u416ecr;\\uc000\\ud835\\udcb0ilde;\\u4168ml\\u803b\\xdc\\u40dc\\u0480Dbcdefosv\\u1427\\u142c\\u1430\\u1433\\u143e\\u1485\\u148a\\u1490\\u1496ash;\\u62abar;\\u6aeby;\\u4412ash\\u0100;l\\u143b\\u143c\\u62a9;\\u6ae6\\u0100er\\u1443\\u1445;\\u62c1\\u0180bty\\u144c\\u1450\\u147aar;\\u6016\\u0100;i\\u144f\\u1455cal\\u0200BLST\\u1461\\u1465\\u146a\\u1474ar;\\u6223ine;\\u407ceparator;\\u6758ilde;\\u6240ThinSpace;\\u600ar;\\uc000\\ud835\\udd19pf;\\uc000\\ud835\\udd4dcr;\\uc000\\ud835\\udcb1dash;\\u62aa\\u0280cefos\\u14a7\\u14ac\\u14b1\\u14b6\\u14bcirc;\\u4174dge;\\u62c0r;\\uc000\\ud835\\udd1apf;\\uc000\\ud835\\udd4ecr;\\uc000\\ud835\\udcb2\\u0200fios\\u14cb\\u14d0\\u14d2\\u14d8r;\\uc000\\ud835\\udd1b;\\u439epf;\\uc000\\ud835\\udd4fcr;\\uc000\\ud835\\udcb3\\u0480AIUacfosu\\u14f1\\u14f5\\u14f9\\u14fd\\u1504\\u150f\\u1514\\u151a\\u1520cy;\\u442fcy;\\u4407cy;\\u442ecute\\u803b\\xdd\\u40dd\\u0100iy\\u1509\\u150drc;\\u4176;\\u442br;\\uc000\\ud835\\udd1cpf;\\uc000\\ud835\\udd50cr;\\uc000\\ud835\\udcb4ml;\\u4178\\u0400Hacdefos\\u1535\\u1539\\u153f\\u154b\\u154f\\u155d\\u1560\\u1564cy;\\u4416cute;\\u4179\\u0100ay\\u1544\\u1549ron;\\u417d;\\u4417ot;\\u417b\\u01f2\\u1554\\0\\u155boWidt\\xe8\\u0ad9a;\\u4396r;\\u6128pf;\\u6124cr;\\uc000\\ud835\\udcb5\\u0be1\\u1583\\u158a\\u1590\\0\\u15b0\\u15b6\\u15bf\\0\\0\\0\\0\\u15c6\\u15db\\u15eb\\u165f\\u166d\\0\\u1695\\u169b\\u16b2\\u16b9\\0\\u16becute\\u803b\\xe1\\u40e1reve;\\u4103\\u0300;Ediuy\\u159c\\u159d\\u15a1\\u15a3\\u15a8\\u15ad\\u623e;\\uc000\\u223e\\u0333;\\u623frc\\u803b\\xe2\\u40e2te\\u80bb\\xb4\\u0306;\\u4430lig\\u803b\\xe6\\u40e6\\u0100;r\\xb2\\u15ba;\\uc000\\ud835\\udd1erave\\u803b\\xe0\\u40e0\\u0100ep\\u15ca\\u15d6\\u0100fp\\u15cf\\u15d4sym;\\u6135\\xe8\\u15d3ha;\\u43b1\\u0100ap\\u15dfc\\u0100cl\\u15e4\\u15e7r;\\u4101g;\\u6a3f\\u0264\\u15f0\\0\\0\\u160a\\u0280;adsv\\u15fa\\u15fb\\u15ff\\u1601\\u1607\\u6227nd;\\u6a55;\\u6a5clope;\\u6a58;\\u6a5a\\u0380;elmrsz\\u1618\\u1619\\u161b\\u161e\\u163f\\u164f\\u1659\\u6220;\\u69a4e\\xbb\\u1619sd\\u0100;a\\u1625\\u1626\\u6221\\u0461\\u1630\\u1632\\u1634\\u1636\\u1638\\u163a\\u163c\\u163e;\\u69a8;\\u69a9;\\u69aa;\\u69ab;\\u69ac;\\u69ad;\\u69ae;\\u69aft\\u0100;v\\u1645\\u1646\\u621fb\\u0100;d\\u164c\\u164d\\u62be;\\u699d\\u0100pt\\u1654\\u1657h;\\u6222\\xbb\\xb9arr;\\u637c\\u0100gp\\u1663\\u1667on;\\u4105f;\\uc000\\ud835\\udd52\\u0380;Eaeiop\\u12c1\\u167b\\u167d\\u1682\\u1684\\u1687\\u168a;\\u6a70cir;\\u6a6f;\\u624ad;\\u624bs;\\u4027rox\\u0100;e\\u12c1\\u1692\\xf1\\u1683ing\\u803b\\xe5\\u40e5\\u0180cty\\u16a1\\u16a6\\u16a8r;\\uc000\\ud835\\udcb6;\\u402amp\\u0100;e\\u12c1\\u16af\\xf1\\u0288ilde\\u803b\\xe3\\u40e3ml\\u803b\\xe4\\u40e4\\u0100ci\\u16c2\\u16c8onin\\xf4\\u0272nt;\\u6a11\\u0800Nabcdefiklnoprsu\\u16ed\\u16f1\\u1730\\u173c\\u1743\\u1748\\u1778\\u177d\\u17e0\\u17e6\\u1839\\u1850\\u170d\\u193d\\u1948\\u1970ot;\\u6aed\\u0100cr\\u16f6\\u171ek\\u0200ceps\\u1700\\u1705\\u170d\\u1713ong;\\u624cpsilon;\\u43f6rime;\\u6035im\\u0100;e\\u171a\\u171b\\u623dq;\\u62cd\\u0176\\u1722\\u1726ee;\\u62bded\\u0100;g\\u172c\\u172d\\u6305e\\xbb\\u172drk\\u0100;t\\u135c\\u1737brk;\\u63b6\\u0100oy\\u1701\\u1741;\\u4431quo;\\u601e\\u0280cmprt\\u1753\\u175b\\u1761\\u1764\\u1768aus\\u0100;e\\u010a\\u0109ptyv;\\u69b0s\\xe9\\u170cno\\xf5\\u0113\\u0180ahw\\u176f\\u1771\\u1773;\\u43b2;\\u6136een;\\u626cr;\\uc000\\ud835\\udd1fg\\u0380costuvw\\u178d\\u179d\\u17b3\\u17c1\\u17d5\\u17db\\u17de\\u0180aiu\\u1794\\u1796\\u179a\\xf0\\u0760rc;\\u65efp\\xbb\\u1371\\u0180dpt\\u17a4\\u17a8\\u17adot;\\u6a00lus;\\u6a01imes;\\u6a02\\u0271\\u17b9\\0\\0\\u17becup;\\u6a06ar;\\u6605riangle\\u0100du\\u17cd\\u17d2own;\\u65bdp;\\u65b3plus;\\u6a04e\\xe5\\u1444\\xe5\\u14adarow;\\u690d\\u0180ako\\u17ed\\u1826\\u1835\\u0100cn\\u17f2\\u1823k\\u0180lst\\u17fa\\u05ab\\u1802ozenge;\\u69ebriangle\\u0200;dlr\\u1812\\u1813\\u1818\\u181d\\u65b4own;\\u65beeft;\\u65c2ight;\\u65b8k;\\u6423\\u01b1\\u182b\\0\\u1833\\u01b2\\u182f\\0\\u1831;\\u6592;\\u65914;\\u6593ck;\\u6588\\u0100eo\\u183e\\u184d\\u0100;q\\u1843\\u1846\\uc000=\\u20e5uiv;\\uc000\\u2261\\u20e5t;\\u6310\\u0200ptwx\\u1859\\u185e\\u1867\\u186cf;\\uc000\\ud835\\udd53\\u0100;t\\u13cb\\u1863om\\xbb\\u13cctie;\\u62c8\\u0600DHUVbdhmptuv\\u1885\\u1896\\u18aa\\u18bb\\u18d7\\u18db\\u18ec\\u18ff\\u1905\\u190a\\u1910\\u1921\\u0200LRlr\\u188e\\u1890\\u1892\\u1894;\\u6557;\\u6554;\\u6556;\\u6553\\u0280;DUdu\\u18a1\\u18a2\\u18a4\\u18a6\\u18a8\\u6550;\\u6566;\\u6569;\\u6564;\\u6567\\u0200LRlr\\u18b3\\u18b5\\u18b7\\u18b9;\\u655d;\\u655a;\\u655c;\\u6559\\u0380;HLRhlr\\u18ca\\u18cb\\u18cd\\u18cf\\u18d1\\u18d3\\u18d5\\u6551;\\u656c;\\u6563;\\u6560;\\u656b;\\u6562;\\u655fox;\\u69c9\\u0200LRlr\\u18e4\\u18e6\\u18e8\\u18ea;\\u6555;\\u6552;\\u6510;\\u650c\\u0280;DUdu\\u06bd\\u18f7\\u18f9\\u18fb\\u18fd;\\u6565;\\u6568;\\u652c;\\u6534inus;\\u629flus;\\u629eimes;\\u62a0\\u0200LRlr\\u1919\\u191b\\u191d\\u191f;\\u655b;\\u6558;\\u6518;\\u6514\\u0380;HLRhlr\\u1930\\u1931\\u1933\\u1935\\u1937\\u1939\\u193b\\u6502;\\u656a;\\u6561;\\u655e;\\u653c;\\u6524;\\u651c\\u0100ev\\u0123\\u1942bar\\u803b\\xa6\\u40a6\\u0200ceio\\u1951\\u1956\\u195a\\u1960r;\\uc000\\ud835\\udcb7mi;\\u604fm\\u0100;e\\u171a\\u171cl\\u0180;bh\\u1968\\u1969\\u196b\\u405c;\\u69c5sub;\\u67c8\\u016c\\u1974\\u197el\\u0100;e\\u1979\\u197a\\u6022t\\xbb\\u197ap\\u0180;Ee\\u012f\\u1985\\u1987;\\u6aae\\u0100;q\\u06dc\\u06db\\u0ce1\\u19a7\\0\\u19e8\\u1a11\\u1a15\\u1a32\\0\\u1a37\\u1a50\\0\\0\\u1ab4\\0\\0\\u1ac1\\0\\0\\u1b21\\u1b2e\\u1b4d\\u1b52\\0\\u1bfd\\0\\u1c0c\\u0180cpr\\u19ad\\u19b2\\u19ddute;\\u4107\\u0300;abcds\\u19bf\\u19c0\\u19c4\\u19ca\\u19d5\\u19d9\\u6229nd;\\u6a44rcup;\\u6a49\\u0100au\\u19cf\\u19d2p;\\u6a4bp;\\u6a47ot;\\u6a40;\\uc000\\u2229\\ufe00\\u0100eo\\u19e2\\u19e5t;\\u6041\\xee\\u0693\\u0200aeiu\\u19f0\\u19fb\\u1a01\\u1a05\\u01f0\\u19f5\\0\\u19f8s;\\u6a4don;\\u410ddil\\u803b\\xe7\\u40e7rc;\\u4109ps\\u0100;s\\u1a0c\\u1a0d\\u6a4cm;\\u6a50ot;\\u410b\\u0180dmn\\u1a1b\\u1a20\\u1a26il\\u80bb\\xb8\\u01adptyv;\\u69b2t\\u8100\\xa2;e\\u1a2d\\u1a2e\\u40a2r\\xe4\\u01b2r;\\uc000\\ud835\\udd20\\u0180cei\\u1a3d\\u1a40\\u1a4dy;\\u4447ck\\u0100;m\\u1a47\\u1a48\\u6713ark\\xbb\\u1a48;\\u43c7r\\u0380;Ecefms\\u1a5f\\u1a60\\u1a62\\u1a6b\\u1aa4\\u1aaa\\u1aae\\u65cb;\\u69c3\\u0180;el\\u1a69\\u1a6a\\u1a6d\\u42c6q;\\u6257e\\u0261\\u1a74\\0\\0\\u1a88rrow\\u0100lr\\u1a7c\\u1a81eft;\\u61baight;\\u61bb\\u0280RSacd\\u1a92\\u1a94\\u1a96\\u1a9a\\u1a9f\\xbb\\u0f47;\\u64c8st;\\u629birc;\\u629aash;\\u629dnint;\\u6a10id;\\u6aefcir;\\u69c2ubs\\u0100;u\\u1abb\\u1abc\\u6663it\\xbb\\u1abc\\u02ec\\u1ac7\\u1ad4\\u1afa\\0\\u1b0aon\\u0100;e\\u1acd\\u1ace\\u403a\\u0100;q\\xc7\\xc6\\u026d\\u1ad9\\0\\0\\u1ae2a\\u0100;t\\u1ade\\u1adf\\u402c;\\u4040\\u0180;fl\\u1ae8\\u1ae9\\u1aeb\\u6201\\xee\\u1160e\\u0100mx\\u1af1\\u1af6ent\\xbb\\u1ae9e\\xf3\\u024d\\u01e7\\u1afe\\0\\u1b07\\u0100;d\\u12bb\\u1b02ot;\\u6a6dn\\xf4\\u0246\\u0180fry\\u1b10\\u1b14\\u1b17;\\uc000\\ud835\\udd54o\\xe4\\u0254\\u8100\\xa9;s\\u0155\\u1b1dr;\\u6117\\u0100ao\\u1b25\\u1b29rr;\\u61b5ss;\\u6717\\u0100cu\\u1b32\\u1b37r;\\uc000\\ud835\\udcb8\\u0100bp\\u1b3c\\u1b44\\u0100;e\\u1b41\\u1b42\\u6acf;\\u6ad1\\u0100;e\\u1b49\\u1b4a\\u6ad0;\\u6ad2dot;\\u62ef\\u0380delprvw\\u1b60\\u1b6c\\u1b77\\u1b82\\u1bac\\u1bd4\\u1bf9arr\\u0100lr\\u1b68\\u1b6a;\\u6938;\\u6935\\u0270\\u1b72\\0\\0\\u1b75r;\\u62dec;\\u62dfarr\\u0100;p\\u1b7f\\u1b80\\u61b6;\\u693d\\u0300;bcdos\\u1b8f\\u1b90\\u1b96\\u1ba1\\u1ba5\\u1ba8\\u622arcap;\\u6a48\\u0100au\\u1b9b\\u1b9ep;\\u6a46p;\\u6a4aot;\\u628dr;\\u6a45;\\uc000\\u222a\\ufe00\\u0200alrv\\u1bb5\\u1bbf\\u1bde\\u1be3rr\\u0100;m\\u1bbc\\u1bbd\\u61b7;\\u693cy\\u0180evw\\u1bc7\\u1bd4\\u1bd8q\\u0270\\u1bce\\0\\0\\u1bd2re\\xe3\\u1b73u\\xe3\\u1b75ee;\\u62ceedge;\\u62cfen\\u803b\\xa4\\u40a4earrow\\u0100lr\\u1bee\\u1bf3eft\\xbb\\u1b80ight\\xbb\\u1bbde\\xe4\\u1bdd\\u0100ci\\u1c01\\u1c07onin\\xf4\\u01f7nt;\\u6231lcty;\\u632d\\u0980AHabcdefhijlorstuwz\\u1c38\\u1c3b\\u1c3f\\u1c5d\\u1c69\\u1c75\\u1c8a\\u1c9e\\u1cac\\u1cb7\\u1cfb\\u1cff\\u1d0d\\u1d7b\\u1d91\\u1dab\\u1dbb\\u1dc6\\u1dcdr\\xf2\\u0381ar;\\u6965\\u0200glrs\\u1c48\\u1c4d\\u1c52\\u1c54ger;\\u6020eth;\\u6138\\xf2\\u1133h\\u0100;v\\u1c5a\\u1c5b\\u6010\\xbb\\u090a\\u016b\\u1c61\\u1c67arow;\\u690fa\\xe3\\u0315\\u0100ay\\u1c6e\\u1c73ron;\\u410f;\\u4434\\u0180;ao\\u0332\\u1c7c\\u1c84\\u0100gr\\u02bf\\u1c81r;\\u61catseq;\\u6a77\\u0180glm\\u1c91\\u1c94\\u1c98\\u803b\\xb0\\u40b0ta;\\u43b4ptyv;\\u69b1\\u0100ir\\u1ca3\\u1ca8sht;\\u697f;\\uc000\\ud835\\udd21ar\\u0100lr\\u1cb3\\u1cb5\\xbb\\u08dc\\xbb\\u101e\\u0280aegsv\\u1cc2\\u0378\\u1cd6\\u1cdc\\u1ce0m\\u0180;os\\u0326\\u1cca\\u1cd4nd\\u0100;s\\u0326\\u1cd1uit;\\u6666amma;\\u43ddin;\\u62f2\\u0180;io\\u1ce7\\u1ce8\\u1cf8\\u40f7de\\u8100\\xf7;o\\u1ce7\\u1cf0ntimes;\\u62c7n\\xf8\\u1cf7cy;\\u4452c\\u026f\\u1d06\\0\\0\\u1d0arn;\\u631eop;\\u630d\\u0280lptuw\\u1d18\\u1d1d\\u1d22\\u1d49\\u1d55lar;\\u4024f;\\uc000\\ud835\\udd55\\u0280;emps\\u030b\\u1d2d\\u1d37\\u1d3d\\u1d42q\\u0100;d\\u0352\\u1d33ot;\\u6251inus;\\u6238lus;\\u6214quare;\\u62a1blebarwedg\\xe5\\xfan\\u0180adh\\u112e\\u1d5d\\u1d67ownarrow\\xf3\\u1c83arpoon\\u0100lr\\u1d72\\u1d76ef\\xf4\\u1cb4igh\\xf4\\u1cb6\\u0162\\u1d7f\\u1d85karo\\xf7\\u0f42\\u026f\\u1d8a\\0\\0\\u1d8ern;\\u631fop;\\u630c\\u0180cot\\u1d98\\u1da3\\u1da6\\u0100ry\\u1d9d\\u1da1;\\uc000\\ud835\\udcb9;\\u4455l;\\u69f6rok;\\u4111\\u0100dr\\u1db0\\u1db4ot;\\u62f1i\\u0100;f\\u1dba\\u1816\\u65bf\\u0100ah\\u1dc0\\u1dc3r\\xf2\\u0429a\\xf2\\u0fa6angle;\\u69a6\\u0100ci\\u1dd2\\u1dd5y;\\u445fgrarr;\\u67ff\\u0900Dacdefglmnopqrstux\\u1e01\\u1e09\\u1e19\\u1e38\\u0578\\u1e3c\\u1e49\\u1e61\\u1e7e\\u1ea5\\u1eaf\\u1ebd\\u1ee1\\u1f2a\\u1f37\\u1f44\\u1f4e\\u1f5a\\u0100Do\\u1e06\\u1d34o\\xf4\\u1c89\\u0100cs\\u1e0e\\u1e14ute\\u803b\\xe9\\u40e9ter;\\u6a6e\\u0200aioy\\u1e22\\u1e27\\u1e31\\u1e36ron;\\u411br\\u0100;c\\u1e2d\\u1e2e\\u6256\\u803b\\xea\\u40ealon;\\u6255;\\u444dot;\\u4117\\u0100Dr\\u1e41\\u1e45ot;\\u6252;\\uc000\\ud835\\udd22\\u0180;rs\\u1e50\\u1e51\\u1e57\\u6a9aave\\u803b\\xe8\\u40e8\\u0100;d\\u1e5c\\u1e5d\\u6a96ot;\\u6a98\\u0200;ils\\u1e6a\\u1e6b\\u1e72\\u1e74\\u6a99nters;\\u63e7;\\u6113\\u0100;d\\u1e79\\u1e7a\\u6a95ot;\\u6a97\\u0180aps\\u1e85\\u1e89\\u1e97cr;\\u4113ty\\u0180;sv\\u1e92\\u1e93\\u1e95\\u6205et\\xbb\\u1e93p\\u01001;\\u1e9d\\u1ea4\\u0133\\u1ea1\\u1ea3;\\u6004;\\u6005\\u6003\\u0100gs\\u1eaa\\u1eac;\\u414bp;\\u6002\\u0100gp\\u1eb4\\u1eb8on;\\u4119f;\\uc000\\ud835\\udd56\\u0180als\\u1ec4\\u1ece\\u1ed2r\\u0100;s\\u1eca\\u1ecb\\u62d5l;\\u69e3us;\\u6a71i\\u0180;lv\\u1eda\\u1edb\\u1edf\\u43b5on\\xbb\\u1edb;\\u43f5\\u0200csuv\\u1eea\\u1ef3\\u1f0b\\u1f23\\u0100io\\u1eef\\u1e31rc\\xbb\\u1e2e\\u0269\\u1ef9\\0\\0\\u1efb\\xed\\u0548ant\\u0100gl\\u1f02\\u1f06tr\\xbb\\u1e5dess\\xbb\\u1e7a\\u0180aei\\u1f12\\u1f16\\u1f1als;\\u403dst;\\u625fv\\u0100;D\\u0235\\u1f20D;\\u6a78parsl;\\u69e5\\u0100Da\\u1f2f\\u1f33ot;\\u6253rr;\\u6971\\u0180cdi\\u1f3e\\u1f41\\u1ef8r;\\u612fo\\xf4\\u0352\\u0100ah\\u1f49\\u1f4b;\\u43b7\\u803b\\xf0\\u40f0\\u0100mr\\u1f53\\u1f57l\\u803b\\xeb\\u40ebo;\\u60ac\\u0180cip\\u1f61\\u1f64\\u1f67l;\\u4021s\\xf4\\u056e\\u0100eo\\u1f6c\\u1f74ctatio\\xee\\u0559nential\\xe5\\u0579\\u09e1\\u1f92\\0\\u1f9e\\0\\u1fa1\\u1fa7\\0\\0\\u1fc6\\u1fcc\\0\\u1fd3\\0\\u1fe6\\u1fea\\u2000\\0\\u2008\\u205allingdotse\\xf1\\u1e44y;\\u4444male;\\u6640\\u0180ilr\\u1fad\\u1fb3\\u1fc1lig;\\u8000\\ufb03\\u0269\\u1fb9\\0\\0\\u1fbdg;\\u8000\\ufb00ig;\\u8000\\ufb04;\\uc000\\ud835\\udd23lig;\\u8000\\ufb01lig;\\uc000fj\\u0180alt\\u1fd9\\u1fdc\\u1fe1t;\\u666dig;\\u8000\\ufb02ns;\\u65b1of;\\u4192\\u01f0\\u1fee\\0\\u1ff3f;\\uc000\\ud835\\udd57\\u0100ak\\u05bf\\u1ff7\\u0100;v\\u1ffc\\u1ffd\\u62d4;\\u6ad9artint;\\u6a0d\\u0100ao\\u200c\\u2055\\u0100cs\\u2011\\u2052\\u03b1\\u201a\\u2030\\u2038\\u2045\\u2048\\0\\u2050\\u03b2\\u2022\\u2025\\u2027\\u202a\\u202c\\0\\u202e\\u803b\\xbd\\u40bd;\\u6153\\u803b\\xbc\\u40bc;\\u6155;\\u6159;\\u615b\\u01b3\\u2034\\0\\u2036;\\u6154;\\u6156\\u02b4\\u203e\\u2041\\0\\0\\u2043\\u803b\\xbe\\u40be;\\u6157;\\u615c5;\\u6158\\u01b6\\u204c\\0\\u204e;\\u615a;\\u615d8;\\u615el;\\u6044wn;\\u6322cr;\\uc000\\ud835\\udcbb\\u0880Eabcdefgijlnorstv\\u2082\\u2089\\u209f\\u20a5\\u20b0\\u20b4\\u20f0\\u20f5\\u20fa\\u20ff\\u2103\\u2112\\u2138\\u0317\\u213e\\u2152\\u219e\\u0100;l\\u064d\\u2087;\\u6a8c\\u0180cmp\\u2090\\u2095\\u209dute;\\u41f5ma\\u0100;d\\u209c\\u1cda\\u43b3;\\u6a86reve;\\u411f\\u0100iy\\u20aa\\u20aerc;\\u411d;\\u4433ot;\\u4121\\u0200;lqs\\u063e\\u0642\\u20bd\\u20c9\\u0180;qs\\u063e\\u064c\\u20c4lan\\xf4\\u0665\\u0200;cdl\\u0665\\u20d2\\u20d5\\u20e5c;\\u6aa9ot\\u0100;o\\u20dc\\u20dd\\u6a80\\u0100;l\\u20e2\\u20e3\\u6a82;\\u6a84\\u0100;e\\u20ea\\u20ed\\uc000\\u22db\\ufe00s;\\u6a94r;\\uc000\\ud835\\udd24\\u0100;g\\u0673\\u061bmel;\\u6137cy;\\u4453\\u0200;Eaj\\u065a\\u210c\\u210e\\u2110;\\u6a92;\\u6aa5;\\u6aa4\\u0200Eaes\\u211b\\u211d\\u2129\\u2134;\\u6269p\\u0100;p\\u2123\\u2124\\u6a8arox\\xbb\\u2124\\u0100;q\\u212e\\u212f\\u6a88\\u0100;q\\u212e\\u211bim;\\u62e7pf;\\uc000\\ud835\\udd58\\u0100ci\\u2143\\u2146r;\\u610am\\u0180;el\\u066b\\u214e\\u2150;\\u6a8e;\\u6a90\\u8300>;cdlqr\\u05ee\\u2160\\u216a\\u216e\\u2173\\u2179\\u0100ci\\u2165\\u2167;\\u6aa7r;\\u6a7aot;\\u62d7Par;\\u6995uest;\\u6a7c\\u0280adels\\u2184\\u216a\\u2190\\u0656\\u219b\\u01f0\\u2189\\0\\u218epro\\xf8\\u209er;\\u6978q\\u0100lq\\u063f\\u2196les\\xf3\\u2088i\\xed\\u066b\\u0100en\\u21a3\\u21adrtneqq;\\uc000\\u2269\\ufe00\\xc5\\u21aa\\u0500Aabcefkosy\\u21c4\\u21c7\\u21f1\\u21f5\\u21fa\\u2218\\u221d\\u222f\\u2268\\u227dr\\xf2\\u03a0\\u0200ilmr\\u21d0\\u21d4\\u21d7\\u21dbrs\\xf0\\u1484f\\xbb\\u2024il\\xf4\\u06a9\\u0100dr\\u21e0\\u21e4cy;\\u444a\\u0180;cw\\u08f4\\u21eb\\u21efir;\\u6948;\\u61adar;\\u610firc;\\u4125\\u0180alr\\u2201\\u220e\\u2213rts\\u0100;u\\u2209\\u220a\\u6665it\\xbb\\u220alip;\\u6026con;\\u62b9r;\\uc000\\ud835\\udd25s\\u0100ew\\u2223\\u2229arow;\\u6925arow;\\u6926\\u0280amopr\\u223a\\u223e\\u2243\\u225e\\u2263rr;\\u61fftht;\\u623bk\\u0100lr\\u2249\\u2253eftarrow;\\u61a9ightarrow;\\u61aaf;\\uc000\\ud835\\udd59bar;\\u6015\\u0180clt\\u226f\\u2274\\u2278r;\\uc000\\ud835\\udcbdas\\xe8\\u21f4rok;\\u4127\\u0100bp\\u2282\\u2287ull;\\u6043hen\\xbb\\u1c5b\\u0ae1\\u22a3\\0\\u22aa\\0\\u22b8\\u22c5\\u22ce\\0\\u22d5\\u22f3\\0\\0\\u22f8\\u2322\\u2367\\u2362\\u237f\\0\\u2386\\u23aa\\u23b4cute\\u803b\\xed\\u40ed\\u0180;iy\\u0771\\u22b0\\u22b5rc\\u803b\\xee\\u40ee;\\u4438\\u0100cx\\u22bc\\u22bfy;\\u4435cl\\u803b\\xa1\\u40a1\\u0100fr\\u039f\\u22c9;\\uc000\\ud835\\udd26rave\\u803b\\xec\\u40ec\\u0200;ino\\u073e\\u22dd\\u22e9\\u22ee\\u0100in\\u22e2\\u22e6nt;\\u6a0ct;\\u622dfin;\\u69dcta;\\u6129lig;\\u4133\\u0180aop\\u22fe\\u231a\\u231d\\u0180cgt\\u2305\\u2308\\u2317r;\\u412b\\u0180elp\\u071f\\u230f\\u2313in\\xe5\\u078ear\\xf4\\u0720h;\\u4131f;\\u62b7ed;\\u41b5\\u0280;cfot\\u04f4\\u232c\\u2331\\u233d\\u2341are;\\u6105in\\u0100;t\\u2338\\u2339\\u621eie;\\u69dddo\\xf4\\u2319\\u0280;celp\\u0757\\u234c\\u2350\\u235b\\u2361al;\\u62ba\\u0100gr\\u2355\\u2359er\\xf3\\u1563\\xe3\\u234darhk;\\u6a17rod;\\u6a3c\\u0200cgpt\\u236f\\u2372\\u2376\\u237by;\\u4451on;\\u412ff;\\uc000\\ud835\\udd5aa;\\u43b9uest\\u803b\\xbf\\u40bf\\u0100ci\\u238a\\u238fr;\\uc000\\ud835\\udcben\\u0280;Edsv\\u04f4\\u239b\\u239d\\u23a1\\u04f3;\\u62f9ot;\\u62f5\\u0100;v\\u23a6\\u23a7\\u62f4;\\u62f3\\u0100;i\\u0777\\u23aelde;\\u4129\\u01eb\\u23b8\\0\\u23bccy;\\u4456l\\u803b\\xef\\u40ef\\u0300cfmosu\\u23cc\\u23d7\\u23dc\\u23e1\\u23e7\\u23f5\\u0100iy\\u23d1\\u23d5rc;\\u4135;\\u4439r;\\uc000\\ud835\\udd27ath;\\u4237pf;\\uc000\\ud835\\udd5b\\u01e3\\u23ec\\0\\u23f1r;\\uc000\\ud835\\udcbfrcy;\\u4458kcy;\\u4454\\u0400acfghjos\\u240b\\u2416\\u2422\\u2427\\u242d\\u2431\\u2435\\u243bppa\\u0100;v\\u2413\\u2414\\u43ba;\\u43f0\\u0100ey\\u241b\\u2420dil;\\u4137;\\u443ar;\\uc000\\ud835\\udd28reen;\\u4138cy;\\u4445cy;\\u445cpf;\\uc000\\ud835\\udd5ccr;\\uc000\\ud835\\udcc0\\u0b80ABEHabcdefghjlmnoprstuv\\u2470\\u2481\\u2486\\u248d\\u2491\\u250e\\u253d\\u255a\\u2580\\u264e\\u265e\\u2665\\u2679\\u267d\\u269a\\u26b2\\u26d8\\u275d\\u2768\\u278b\\u27c0\\u2801\\u2812\\u0180art\\u2477\\u247a\\u247cr\\xf2\\u09c6\\xf2\\u0395ail;\\u691barr;\\u690e\\u0100;g\\u0994\\u248b;\\u6a8bar;\\u6962\\u0963\\u24a5\\0\\u24aa\\0\\u24b1\\0\\0\\0\\0\\0\\u24b5\\u24ba\\0\\u24c6\\u24c8\\u24cd\\0\\u24f9ute;\\u413amptyv;\\u69b4ra\\xee\\u084cbda;\\u43bbg\\u0180;dl\\u088e\\u24c1\\u24c3;\\u6991\\xe5\\u088e;\\u6a85uo\\u803b\\xab\\u40abr\\u0400;bfhlpst\\u0899\\u24de\\u24e6\\u24e9\\u24eb\\u24ee\\u24f1\\u24f5\\u0100;f\\u089d\\u24e3s;\\u691fs;\\u691d\\xeb\\u2252p;\\u61abl;\\u6939im;\\u6973l;\\u61a2\\u0180;ae\\u24ff\\u2500\\u2504\\u6aabil;\\u6919\\u0100;s\\u2509\\u250a\\u6aad;\\uc000\\u2aad\\ufe00\\u0180abr\\u2515\\u2519\\u251drr;\\u690crk;\\u6772\\u0100ak\\u2522\\u252cc\\u0100ek\\u2528\\u252a;\\u407b;\\u405b\\u0100es\\u2531\\u2533;\\u698bl\\u0100du\\u2539\\u253b;\\u698f;\\u698d\\u0200aeuy\\u2546\\u254b\\u2556\\u2558ron;\\u413e\\u0100di\\u2550\\u2554il;\\u413c\\xec\\u08b0\\xe2\\u2529;\\u443b\\u0200cqrs\\u2563\\u2566\\u256d\\u257da;\\u6936uo\\u0100;r\\u0e19\\u1746\\u0100du\\u2572\\u2577har;\\u6967shar;\\u694bh;\\u61b2\\u0280;fgqs\\u258b\\u258c\\u0989\\u25f3\\u25ff\\u6264t\\u0280ahlrt\\u2598\\u25a4\\u25b7\\u25c2\\u25e8rrow\\u0100;t\\u0899\\u25a1a\\xe9\\u24f6arpoon\\u0100du\\u25af\\u25b4own\\xbb\\u045ap\\xbb\\u0966eftarrows;\\u61c7ight\\u0180ahs\\u25cd\\u25d6\\u25derrow\\u0100;s\\u08f4\\u08a7arpoon\\xf3\\u0f98quigarro\\xf7\\u21f0hreetimes;\\u62cb\\u0180;qs\\u258b\\u0993\\u25falan\\xf4\\u09ac\\u0280;cdgs\\u09ac\\u260a\\u260d\\u261d\\u2628c;\\u6aa8ot\\u0100;o\\u2614\\u2615\\u6a7f\\u0100;r\\u261a\\u261b\\u6a81;\\u6a83\\u0100;e\\u2622\\u2625\\uc000\\u22da\\ufe00s;\\u6a93\\u0280adegs\\u2633\\u2639\\u263d\\u2649\\u264bppro\\xf8\\u24c6ot;\\u62d6q\\u0100gq\\u2643\\u2645\\xf4\\u0989gt\\xf2\\u248c\\xf4\\u099bi\\xed\\u09b2\\u0180ilr\\u2655\\u08e1\\u265asht;\\u697c;\\uc000\\ud835\\udd29\\u0100;E\\u099c\\u2663;\\u6a91\\u0161\\u2669\\u2676r\\u0100du\\u25b2\\u266e\\u0100;l\\u0965\\u2673;\\u696alk;\\u6584cy;\\u4459\\u0280;acht\\u0a48\\u2688\\u268b\\u2691\\u2696r\\xf2\\u25c1orne\\xf2\\u1d08ard;\\u696bri;\\u65fa\\u0100io\\u269f\\u26a4dot;\\u4140ust\\u0100;a\\u26ac\\u26ad\\u63b0che\\xbb\\u26ad\\u0200Eaes\\u26bb\\u26bd\\u26c9\\u26d4;\\u6268p\\u0100;p\\u26c3\\u26c4\\u6a89rox\\xbb\\u26c4\\u0100;q\\u26ce\\u26cf\\u6a87\\u0100;q\\u26ce\\u26bbim;\\u62e6\\u0400abnoptwz\\u26e9\\u26f4\\u26f7\\u271a\\u272f\\u2741\\u2747\\u2750\\u0100nr\\u26ee\\u26f1g;\\u67ecr;\\u61fdr\\xeb\\u08c1g\\u0180lmr\\u26ff\\u270d\\u2714eft\\u0100ar\\u09e6\\u2707ight\\xe1\\u09f2apsto;\\u67fcight\\xe1\\u09fdparrow\\u0100lr\\u2725\\u2729ef\\xf4\\u24edight;\\u61ac\\u0180afl\\u2736\\u2739\\u273dr;\\u6985;\\uc000\\ud835\\udd5dus;\\u6a2dimes;\\u6a34\\u0161\\u274b\\u274fst;\\u6217\\xe1\\u134e\\u0180;ef\\u2757\\u2758\\u1800\\u65cange\\xbb\\u2758ar\\u0100;l\\u2764\\u2765\\u4028t;\\u6993\\u0280achmt\\u2773\\u2776\\u277c\\u2785\\u2787r\\xf2\\u08a8orne\\xf2\\u1d8car\\u0100;d\\u0f98\\u2783;\\u696d;\\u600eri;\\u62bf\\u0300achiqt\\u2798\\u279d\\u0a40\\u27a2\\u27ae\\u27bbquo;\\u6039r;\\uc000\\ud835\\udcc1m\\u0180;eg\\u09b2\\u27aa\\u27ac;\\u6a8d;\\u6a8f\\u0100bu\\u252a\\u27b3o\\u0100;r\\u0e1f\\u27b9;\\u601arok;\\u4142\\u8400<;cdhilqr\\u082b\\u27d2\\u2639\\u27dc\\u27e0\\u27e5\\u27ea\\u27f0\\u0100ci\\u27d7\\u27d9;\\u6aa6r;\\u6a79re\\xe5\\u25f2mes;\\u62c9arr;\\u6976uest;\\u6a7b\\u0100Pi\\u27f5\\u27f9ar;\\u6996\\u0180;ef\\u2800\\u092d\\u181b\\u65c3r\\u0100du\\u2807\\u280dshar;\\u694ahar;\\u6966\\u0100en\\u2817\\u2821rtneqq;\\uc000\\u2268\\ufe00\\xc5\\u281e\\u0700Dacdefhilnopsu\\u2840\\u2845\\u2882\\u288e\\u2893\\u28a0\\u28a5\\u28a8\\u28da\\u28e2\\u28e4\\u0a83\\u28f3\\u2902Dot;\\u623a\\u0200clpr\\u284e\\u2852\\u2863\\u287dr\\u803b\\xaf\\u40af\\u0100et\\u2857\\u2859;\\u6642\\u0100;e\\u285e\\u285f\\u6720se\\xbb\\u285f\\u0100;s\\u103b\\u2868to\\u0200;dlu\\u103b\\u2873\\u2877\\u287bow\\xee\\u048cef\\xf4\\u090f\\xf0\\u13d1ker;\\u65ae\\u0100oy\\u2887\\u288cmma;\\u6a29;\\u443cash;\\u6014asuredangle\\xbb\\u1626r;\\uc000\\ud835\\udd2ao;\\u6127\\u0180cdn\\u28af\\u28b4\\u28c9ro\\u803b\\xb5\\u40b5\\u0200;acd\\u1464\\u28bd\\u28c0\\u28c4s\\xf4\\u16a7ir;\\u6af0ot\\u80bb\\xb7\\u01b5us\\u0180;bd\\u28d2\\u1903\\u28d3\\u6212\\u0100;u\\u1d3c\\u28d8;\\u6a2a\\u0163\\u28de\\u28e1p;\\u6adb\\xf2\\u2212\\xf0\\u0a81\\u0100dp\\u28e9\\u28eeels;\\u62a7f;\\uc000\\ud835\\udd5e\\u0100ct\\u28f8\\u28fdr;\\uc000\\ud835\\udcc2pos\\xbb\\u159d\\u0180;lm\\u2909\\u290a\\u290d\\u43bctimap;\\u62b8\\u0c00GLRVabcdefghijlmoprstuvw\\u2942\\u2953\\u297e\\u2989\\u2998\\u29da\\u29e9\\u2a15\\u2a1a\\u2a58\\u2a5d\\u2a83\\u2a95\\u2aa4\\u2aa8\\u2b04\\u2b07\\u2b44\\u2b7f\\u2bae\\u2c34\\u2c67\\u2c7c\\u2ce9\\u0100gt\\u2947\\u294b;\\uc000\\u22d9\\u0338\\u0100;v\\u2950\\u0bcf\\uc000\\u226b\\u20d2\\u0180elt\\u295a\\u2972\\u2976ft\\u0100ar\\u2961\\u2967rrow;\\u61cdightarrow;\\u61ce;\\uc000\\u22d8\\u0338\\u0100;v\\u297b\\u0c47\\uc000\\u226a\\u20d2ightarrow;\\u61cf\\u0100Dd\\u298e\\u2993ash;\\u62afash;\\u62ae\\u0280bcnpt\\u29a3\\u29a7\\u29ac\\u29b1\\u29ccla\\xbb\\u02deute;\\u4144g;\\uc000\\u2220\\u20d2\\u0280;Eiop\\u0d84\\u29bc\\u29c0\\u29c5\\u29c8;\\uc000\\u2a70\\u0338d;\\uc000\\u224b\\u0338s;\\u4149ro\\xf8\\u0d84ur\\u0100;a\\u29d3\\u29d4\\u666el\\u0100;s\\u29d3\\u0b38\\u01f3\\u29df\\0\\u29e3p\\u80bb\\xa0\\u0b37mp\\u0100;e\\u0bf9\\u0c00\\u0280aeouy\\u29f4\\u29fe\\u2a03\\u2a10\\u2a13\\u01f0\\u29f9\\0\\u29fb;\\u6a43on;\\u4148dil;\\u4146ng\\u0100;d\\u0d7e\\u2a0aot;\\uc000\\u2a6d\\u0338p;\\u6a42;\\u443dash;\\u6013\\u0380;Aadqsx\\u0b92\\u2a29\\u2a2d\\u2a3b\\u2a41\\u2a45\\u2a50rr;\\u61d7r\\u0100hr\\u2a33\\u2a36k;\\u6924\\u0100;o\\u13f2\\u13f0ot;\\uc000\\u2250\\u0338ui\\xf6\\u0b63\\u0100ei\\u2a4a\\u2a4ear;\\u6928\\xed\\u0b98ist\\u0100;s\\u0ba0\\u0b9fr;\\uc000\\ud835\\udd2b\\u0200Eest\\u0bc5\\u2a66\\u2a79\\u2a7c\\u0180;qs\\u0bbc\\u2a6d\\u0be1\\u0180;qs\\u0bbc\\u0bc5\\u2a74lan\\xf4\\u0be2i\\xed\\u0bea\\u0100;r\\u0bb6\\u2a81\\xbb\\u0bb7\\u0180Aap\\u2a8a\\u2a8d\\u2a91r\\xf2\\u2971rr;\\u61aear;\\u6af2\\u0180;sv\\u0f8d\\u2a9c\\u0f8c\\u0100;d\\u2aa1\\u2aa2\\u62fc;\\u62facy;\\u445a\\u0380AEadest\\u2ab7\\u2aba\\u2abe\\u2ac2\\u2ac5\\u2af6\\u2af9r\\xf2\\u2966;\\uc000\\u2266\\u0338rr;\\u619ar;\\u6025\\u0200;fqs\\u0c3b\\u2ace\\u2ae3\\u2aeft\\u0100ar\\u2ad4\\u2ad9rro\\xf7\\u2ac1ightarro\\xf7\\u2a90\\u0180;qs\\u0c3b\\u2aba\\u2aealan\\xf4\\u0c55\\u0100;s\\u0c55\\u2af4\\xbb\\u0c36i\\xed\\u0c5d\\u0100;r\\u0c35\\u2afei\\u0100;e\\u0c1a\\u0c25i\\xe4\\u0d90\\u0100pt\\u2b0c\\u2b11f;\\uc000\\ud835\\udd5f\\u8180\\xac;in\\u2b19\\u2b1a\\u2b36\\u40acn\\u0200;Edv\\u0b89\\u2b24\\u2b28\\u2b2e;\\uc000\\u22f9\\u0338ot;\\uc000\\u22f5\\u0338\\u01e1\\u0b89\\u2b33\\u2b35;\\u62f7;\\u62f6i\\u0100;v\\u0cb8\\u2b3c\\u01e1\\u0cb8\\u2b41\\u2b43;\\u62fe;\\u62fd\\u0180aor\\u2b4b\\u2b63\\u2b69r\\u0200;ast\\u0b7b\\u2b55\\u2b5a\\u2b5flle\\xec\\u0b7bl;\\uc000\\u2afd\\u20e5;\\uc000\\u2202\\u0338lint;\\u6a14\\u0180;ce\\u0c92\\u2b70\\u2b73u\\xe5\\u0ca5\\u0100;c\\u0c98\\u2b78\\u0100;e\\u0c92\\u2b7d\\xf1\\u0c98\\u0200Aait\\u2b88\\u2b8b\\u2b9d\\u2ba7r\\xf2\\u2988rr\\u0180;cw\\u2b94\\u2b95\\u2b99\\u619b;\\uc000\\u2933\\u0338;\\uc000\\u219d\\u0338ghtarrow\\xbb\\u2b95ri\\u0100;e\\u0ccb\\u0cd6\\u0380chimpqu\\u2bbd\\u2bcd\\u2bd9\\u2b04\\u0b78\\u2be4\\u2bef\\u0200;cer\\u0d32\\u2bc6\\u0d37\\u2bc9u\\xe5\\u0d45;\\uc000\\ud835\\udcc3ort\\u026d\\u2b05\\0\\0\\u2bd6ar\\xe1\\u2b56m\\u0100;e\\u0d6e\\u2bdf\\u0100;q\\u0d74\\u0d73su\\u0100bp\\u2beb\\u2bed\\xe5\\u0cf8\\xe5\\u0d0b\\u0180bcp\\u2bf6\\u2c11\\u2c19\\u0200;Ees\\u2bff\\u2c00\\u0d22\\u2c04\\u6284;\\uc000\\u2ac5\\u0338et\\u0100;e\\u0d1b\\u2c0bq\\u0100;q\\u0d23\\u2c00c\\u0100;e\\u0d32\\u2c17\\xf1\\u0d38\\u0200;Ees\\u2c22\\u2c23\\u0d5f\\u2c27\\u6285;\\uc000\\u2ac6\\u0338et\\u0100;e\\u0d58\\u2c2eq\\u0100;q\\u0d60\\u2c23\\u0200gilr\\u2c3d\\u2c3f\\u2c45\\u2c47\\xec\\u0bd7lde\\u803b\\xf1\\u40f1\\xe7\\u0c43iangle\\u0100lr\\u2c52\\u2c5ceft\\u0100;e\\u0c1a\\u2c5a\\xf1\\u0c26ight\\u0100;e\\u0ccb\\u2c65\\xf1\\u0cd7\\u0100;m\\u2c6c\\u2c6d\\u43bd\\u0180;es\\u2c74\\u2c75\\u2c79\\u4023ro;\\u6116p;\\u6007\\u0480DHadgilrs\\u2c8f\\u2c94\\u2c99\\u2c9e\\u2ca3\\u2cb0\\u2cb6\\u2cd3\\u2ce3ash;\\u62adarr;\\u6904p;\\uc000\\u224d\\u20d2ash;\\u62ac\\u0100et\\u2ca8\\u2cac;\\uc000\\u2265\\u20d2;\\uc000>\\u20d2nfin;\\u69de\\u0180Aet\\u2cbd\\u2cc1\\u2cc5rr;\\u6902;\\uc000\\u2264\\u20d2\\u0100;r\\u2cca\\u2ccd\\uc000<\\u20d2ie;\\uc000\\u22b4\\u20d2\\u0100At\\u2cd8\\u2cdcrr;\\u6903rie;\\uc000\\u22b5\\u20d2im;\\uc000\\u223c\\u20d2\\u0180Aan\\u2cf0\\u2cf4\\u2d02rr;\\u61d6r\\u0100hr\\u2cfa\\u2cfdk;\\u6923\\u0100;o\\u13e7\\u13e5ear;\\u6927\\u1253\\u1a95\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\u2d2d\\0\\u2d38\\u2d48\\u2d60\\u2d65\\u2d72\\u2d84\\u1b07\\0\\0\\u2d8d\\u2dab\\0\\u2dc8\\u2dce\\0\\u2ddc\\u2e19\\u2e2b\\u2e3e\\u2e43\\u0100cs\\u2d31\\u1a97ute\\u803b\\xf3\\u40f3\\u0100iy\\u2d3c\\u2d45r\\u0100;c\\u1a9e\\u2d42\\u803b\\xf4\\u40f4;\\u443e\\u0280abios\\u1aa0\\u2d52\\u2d57\\u01c8\\u2d5alac;\\u4151v;\\u6a38old;\\u69bclig;\\u4153\\u0100cr\\u2d69\\u2d6dir;\\u69bf;\\uc000\\ud835\\udd2c\\u036f\\u2d79\\0\\0\\u2d7c\\0\\u2d82n;\\u42dbave\\u803b\\xf2\\u40f2;\\u69c1\\u0100bm\\u2d88\\u0df4ar;\\u69b5\\u0200acit\\u2d95\\u2d98\\u2da5\\u2da8r\\xf2\\u1a80\\u0100ir\\u2d9d\\u2da0r;\\u69beoss;\\u69bbn\\xe5\\u0e52;\\u69c0\\u0180aei\\u2db1\\u2db5\\u2db9cr;\\u414dga;\\u43c9\\u0180cdn\\u2dc0\\u2dc5\\u01cdron;\\u43bf;\\u69b6pf;\\uc000\\ud835\\udd60\\u0180ael\\u2dd4\\u2dd7\\u01d2r;\\u69b7rp;\\u69b9\\u0380;adiosv\\u2dea\\u2deb\\u2dee\\u2e08\\u2e0d\\u2e10\\u2e16\\u6228r\\xf2\\u1a86\\u0200;efm\\u2df7\\u2df8\\u2e02\\u2e05\\u6a5dr\\u0100;o\\u2dfe\\u2dff\\u6134f\\xbb\\u2dff\\u803b\\xaa\\u40aa\\u803b\\xba\\u40bagof;\\u62b6r;\\u6a56lope;\\u6a57;\\u6a5b\\u0180clo\\u2e1f\\u2e21\\u2e27\\xf2\\u2e01ash\\u803b\\xf8\\u40f8l;\\u6298i\\u016c\\u2e2f\\u2e34de\\u803b\\xf5\\u40f5es\\u0100;a\\u01db\\u2e3as;\\u6a36ml\\u803b\\xf6\\u40f6bar;\\u633d\\u0ae1\\u2e5e\\0\\u2e7d\\0\\u2e80\\u2e9d\\0\\u2ea2\\u2eb9\\0\\0\\u2ecb\\u0e9c\\0\\u2f13\\0\\0\\u2f2b\\u2fbc\\0\\u2fc8r\\u0200;ast\\u0403\\u2e67\\u2e72\\u0e85\\u8100\\xb6;l\\u2e6d\\u2e6e\\u40b6le\\xec\\u0403\\u0269\\u2e78\\0\\0\\u2e7bm;\\u6af3;\\u6afdy;\\u443fr\\u0280cimpt\\u2e8b\\u2e8f\\u2e93\\u1865\\u2e97nt;\\u4025od;\\u402eil;\\u6030enk;\\u6031r;\\uc000\\ud835\\udd2d\\u0180imo\\u2ea8\\u2eb0\\u2eb4\\u0100;v\\u2ead\\u2eae\\u43c6;\\u43d5ma\\xf4\\u0a76ne;\\u660e\\u0180;tv\\u2ebf\\u2ec0\\u2ec8\\u43c0chfork\\xbb\\u1ffd;\\u43d6\\u0100au\\u2ecf\\u2edfn\\u0100ck\\u2ed5\\u2eddk\\u0100;h\\u21f4\\u2edb;\\u610e\\xf6\\u21f4s\\u0480;abcdemst\\u2ef3\\u2ef4\\u1908\\u2ef9\\u2efd\\u2f04\\u2f06\\u2f0a\\u2f0e\\u402bcir;\\u6a23ir;\\u6a22\\u0100ou\\u1d40\\u2f02;\\u6a25;\\u6a72n\\u80bb\\xb1\\u0e9dim;\\u6a26wo;\\u6a27\\u0180ipu\\u2f19\\u2f20\\u2f25ntint;\\u6a15f;\\uc000\\ud835\\udd61nd\\u803b\\xa3\\u40a3\\u0500;Eaceinosu\\u0ec8\\u2f3f\\u2f41\\u2f44\\u2f47\\u2f81\\u2f89\\u2f92\\u2f7e\\u2fb6;\\u6ab3p;\\u6ab7u\\xe5\\u0ed9\\u0100;c\\u0ece\\u2f4c\\u0300;acens\\u0ec8\\u2f59\\u2f5f\\u2f66\\u2f68\\u2f7eppro\\xf8\\u2f43urlye\\xf1\\u0ed9\\xf1\\u0ece\\u0180aes\\u2f6f\\u2f76\\u2f7approx;\\u6ab9qq;\\u6ab5im;\\u62e8i\\xed\\u0edfme\\u0100;s\\u2f88\\u0eae\\u6032\\u0180Eas\\u2f78\\u2f90\\u2f7a\\xf0\\u2f75\\u0180dfp\\u0eec\\u2f99\\u2faf\\u0180als\\u2fa0\\u2fa5\\u2faalar;\\u632eine;\\u6312urf;\\u6313\\u0100;t\\u0efb\\u2fb4\\xef\\u0efbrel;\\u62b0\\u0100ci\\u2fc0\\u2fc5r;\\uc000\\ud835\\udcc5;\\u43c8ncsp;\\u6008\\u0300fiopsu\\u2fda\\u22e2\\u2fdf\\u2fe5\\u2feb\\u2ff1r;\\uc000\\ud835\\udd2epf;\\uc000\\ud835\\udd62rime;\\u6057cr;\\uc000\\ud835\\udcc6\\u0180aeo\\u2ff8\\u3009\\u3013t\\u0100ei\\u2ffe\\u3005rnion\\xf3\\u06b0nt;\\u6a16st\\u0100;e\\u3010\\u3011\\u403f\\xf1\\u1f19\\xf4\\u0f14\\u0a80ABHabcdefhilmnoprstux\\u3040\\u3051\\u3055\\u3059\\u30e0\\u310e\\u312b\\u3147\\u3162\\u3172\\u318e\\u3206\\u3215\\u3224\\u3229\\u3258\\u326e\\u3272\\u3290\\u32b0\\u32b7\\u0180art\\u3047\\u304a\\u304cr\\xf2\\u10b3\\xf2\\u03ddail;\\u691car\\xf2\\u1c65ar;\\u6964\\u0380cdenqrt\\u3068\\u3075\\u3078\\u307f\\u308f\\u3094\\u30cc\\u0100eu\\u306d\\u3071;\\uc000\\u223d\\u0331te;\\u4155i\\xe3\\u116emptyv;\\u69b3g\\u0200;del\\u0fd1\\u3089\\u308b\\u308d;\\u6992;\\u69a5\\xe5\\u0fd1uo\\u803b\\xbb\\u40bbr\\u0580;abcfhlpstw\\u0fdc\\u30ac\\u30af\\u30b7\\u30b9\\u30bc\\u30be\\u30c0\\u30c3\\u30c7\\u30cap;\\u6975\\u0100;f\\u0fe0\\u30b4s;\\u6920;\\u6933s;\\u691e\\xeb\\u225d\\xf0\\u272el;\\u6945im;\\u6974l;\\u61a3;\\u619d\\u0100ai\\u30d1\\u30d5il;\\u691ao\\u0100;n\\u30db\\u30dc\\u6236al\\xf3\\u0f1e\\u0180abr\\u30e7\\u30ea\\u30eer\\xf2\\u17e5rk;\\u6773\\u0100ak\\u30f3\\u30fdc\\u0100ek\\u30f9\\u30fb;\\u407d;\\u405d\\u0100es\\u3102\\u3104;\\u698cl\\u0100du\\u310a\\u310c;\\u698e;\\u6990\\u0200aeuy\\u3117\\u311c\\u3127\\u3129ron;\\u4159\\u0100di\\u3121\\u3125il;\\u4157\\xec\\u0ff2\\xe2\\u30fa;\\u4440\\u0200clqs\\u3134\\u3137\\u313d\\u3144a;\\u6937dhar;\\u6969uo\\u0100;r\\u020e\\u020dh;\\u61b3\\u0180acg\\u314e\\u315f\\u0f44l\\u0200;ips\\u0f78\\u3158\\u315b\\u109cn\\xe5\\u10bbar\\xf4\\u0fa9t;\\u65ad\\u0180ilr\\u3169\\u1023\\u316esht;\\u697d;\\uc000\\ud835\\udd2f\\u0100ao\\u3177\\u3186r\\u0100du\\u317d\\u317f\\xbb\\u047b\\u0100;l\\u1091\\u3184;\\u696c\\u0100;v\\u318b\\u318c\\u43c1;\\u43f1\\u0180gns\\u3195\\u31f9\\u31fcht\\u0300ahlrst\\u31a4\\u31b0\\u31c2\\u31d8\\u31e4\\u31eerrow\\u0100;t\\u0fdc\\u31ada\\xe9\\u30c8arpoon\\u0100du\\u31bb\\u31bfow\\xee\\u317ep\\xbb\\u1092eft\\u0100ah\\u31ca\\u31d0rrow\\xf3\\u0feaarpoon\\xf3\\u0551ightarrows;\\u61c9quigarro\\xf7\\u30cbhreetimes;\\u62ccg;\\u42daingdotse\\xf1\\u1f32\\u0180ahm\\u320d\\u3210\\u3213r\\xf2\\u0feaa\\xf2\\u0551;\\u600foust\\u0100;a\\u321e\\u321f\\u63b1che\\xbb\\u321fmid;\\u6aee\\u0200abpt\\u3232\\u323d\\u3240\\u3252\\u0100nr\\u3237\\u323ag;\\u67edr;\\u61fer\\xeb\\u1003\\u0180afl\\u3247\\u324a\\u324er;\\u6986;\\uc000\\ud835\\udd63us;\\u6a2eimes;\\u6a35\\u0100ap\\u325d\\u3267r\\u0100;g\\u3263\\u3264\\u4029t;\\u6994olint;\\u6a12ar\\xf2\\u31e3\\u0200achq\\u327b\\u3280\\u10bc\\u3285quo;\\u603ar;\\uc000\\ud835\\udcc7\\u0100bu\\u30fb\\u328ao\\u0100;r\\u0214\\u0213\\u0180hir\\u3297\\u329b\\u32a0re\\xe5\\u31f8mes;\\u62cai\\u0200;efl\\u32aa\\u1059\\u1821\\u32ab\\u65b9tri;\\u69celuhar;\\u6968;\\u611e\\u0d61\\u32d5\\u32db\\u32df\\u332c\\u3338\\u3371\\0\\u337a\\u33a4\\0\\0\\u33ec\\u33f0\\0\\u3428\\u3448\\u345a\\u34ad\\u34b1\\u34ca\\u34f1\\0\\u3616\\0\\0\\u3633cute;\\u415bqu\\xef\\u27ba\\u0500;Eaceinpsy\\u11ed\\u32f3\\u32f5\\u32ff\\u3302\\u330b\\u330f\\u331f\\u3326\\u3329;\\u6ab4\\u01f0\\u32fa\\0\\u32fc;\\u6ab8on;\\u4161u\\xe5\\u11fe\\u0100;d\\u11f3\\u3307il;\\u415frc;\\u415d\\u0180Eas\\u3316\\u3318\\u331b;\\u6ab6p;\\u6abaim;\\u62e9olint;\\u6a13i\\xed\\u1204;\\u4441ot\\u0180;be\\u3334\\u1d47\\u3335\\u62c5;\\u6a66\\u0380Aacmstx\\u3346\\u334a\\u3357\\u335b\\u335e\\u3363\\u336drr;\\u61d8r\\u0100hr\\u3350\\u3352\\xeb\\u2228\\u0100;o\\u0a36\\u0a34t\\u803b\\xa7\\u40a7i;\\u403bwar;\\u6929m\\u0100in\\u3369\\xf0nu\\xf3\\xf1t;\\u6736r\\u0100;o\\u3376\\u2055\\uc000\\ud835\\udd30\\u0200acoy\\u3382\\u3386\\u3391\\u33a0rp;\\u666f\\u0100hy\\u338b\\u338fcy;\\u4449;\\u4448rt\\u026d\\u3399\\0\\0\\u339ci\\xe4\\u1464ara\\xec\\u2e6f\\u803b\\xad\\u40ad\\u0100gm\\u33a8\\u33b4ma\\u0180;fv\\u33b1\\u33b2\\u33b2\\u43c3;\\u43c2\\u0400;deglnpr\\u12ab\\u33c5\\u33c9\\u33ce\\u33d6\\u33de\\u33e1\\u33e6ot;\\u6a6a\\u0100;q\\u12b1\\u12b0\\u0100;E\\u33d3\\u33d4\\u6a9e;\\u6aa0\\u0100;E\\u33db\\u33dc\\u6a9d;\\u6a9fe;\\u6246lus;\\u6a24arr;\\u6972ar\\xf2\\u113d\\u0200aeit\\u33f8\\u3408\\u340f\\u3417\\u0100ls\\u33fd\\u3404lsetm\\xe9\\u336ahp;\\u6a33parsl;\\u69e4\\u0100dl\\u1463\\u3414e;\\u6323\\u0100;e\\u341c\\u341d\\u6aaa\\u0100;s\\u3422\\u3423\\u6aac;\\uc000\\u2aac\\ufe00\\u0180flp\\u342e\\u3433\\u3442tcy;\\u444c\\u0100;b\\u3438\\u3439\\u402f\\u0100;a\\u343e\\u343f\\u69c4r;\\u633ff;\\uc000\\ud835\\udd64a\\u0100dr\\u344d\\u0402es\\u0100;u\\u3454\\u3455\\u6660it\\xbb\\u3455\\u0180csu\\u3460\\u3479\\u349f\\u0100au\\u3465\\u346fp\\u0100;s\\u1188\\u346b;\\uc000\\u2293\\ufe00p\\u0100;s\\u11b4\\u3475;\\uc000\\u2294\\ufe00u\\u0100bp\\u347f\\u348f\\u0180;es\\u1197\\u119c\\u3486et\\u0100;e\\u1197\\u348d\\xf1\\u119d\\u0180;es\\u11a8\\u11ad\\u3496et\\u0100;e\\u11a8\\u349d\\xf1\\u11ae\\u0180;af\\u117b\\u34a6\\u05b0r\\u0165\\u34ab\\u05b1\\xbb\\u117car\\xf2\\u1148\\u0200cemt\\u34b9\\u34be\\u34c2\\u34c5r;\\uc000\\ud835\\udcc8tm\\xee\\xf1i\\xec\\u3415ar\\xe6\\u11be\\u0100ar\\u34ce\\u34d5r\\u0100;f\\u34d4\\u17bf\\u6606\\u0100an\\u34da\\u34edight\\u0100ep\\u34e3\\u34eapsilo\\xee\\u1ee0h\\xe9\\u2eafs\\xbb\\u2852\\u0280bcmnp\\u34fb\\u355e\\u1209\\u358b\\u358e\\u0480;Edemnprs\\u350e\\u350f\\u3511\\u3515\\u351e\\u3523\\u352c\\u3531\\u3536\\u6282;\\u6ac5ot;\\u6abd\\u0100;d\\u11da\\u351aot;\\u6ac3ult;\\u6ac1\\u0100Ee\\u3528\\u352a;\\u6acb;\\u628alus;\\u6abfarr;\\u6979\\u0180eiu\\u353d\\u3552\\u3555t\\u0180;en\\u350e\\u3545\\u354bq\\u0100;q\\u11da\\u350feq\\u0100;q\\u352b\\u3528m;\\u6ac7\\u0100bp\\u355a\\u355c;\\u6ad5;\\u6ad3c\\u0300;acens\\u11ed\\u356c\\u3572\\u3579\\u357b\\u3326ppro\\xf8\\u32faurlye\\xf1\\u11fe\\xf1\\u11f3\\u0180aes\\u3582\\u3588\\u331bppro\\xf8\\u331aq\\xf1\\u3317g;\\u666a\\u0680123;Edehlmnps\\u35a9\\u35ac\\u35af\\u121c\\u35b2\\u35b4\\u35c0\\u35c9\\u35d5\\u35da\\u35df\\u35e8\\u35ed\\u803b\\xb9\\u40b9\\u803b\\xb2\\u40b2\\u803b\\xb3\\u40b3;\\u6ac6\\u0100os\\u35b9\\u35bct;\\u6abeub;\\u6ad8\\u0100;d\\u1222\\u35c5ot;\\u6ac4s\\u0100ou\\u35cf\\u35d2l;\\u67c9b;\\u6ad7arr;\\u697bult;\\u6ac2\\u0100Ee\\u35e4\\u35e6;\\u6acc;\\u628blus;\\u6ac0\\u0180eiu\\u35f4\\u3609\\u360ct\\u0180;en\\u121c\\u35fc\\u3602q\\u0100;q\\u1222\\u35b2eq\\u0100;q\\u35e7\\u35e4m;\\u6ac8\\u0100bp\\u3611\\u3613;\\u6ad4;\\u6ad6\\u0180Aan\\u361c\\u3620\\u362drr;\\u61d9r\\u0100hr\\u3626\\u3628\\xeb\\u222e\\u0100;o\\u0a2b\\u0a29war;\\u692alig\\u803b\\xdf\\u40df\\u0be1\\u3651\\u365d\\u3660\\u12ce\\u3673\\u3679\\0\\u367e\\u36c2\\0\\0\\0\\0\\0\\u36db\\u3703\\0\\u3709\\u376c\\0\\0\\0\\u3787\\u0272\\u3656\\0\\0\\u365bget;\\u6316;\\u43c4r\\xeb\\u0e5f\\u0180aey\\u3666\\u366b\\u3670ron;\\u4165dil;\\u4163;\\u4442lrec;\\u6315r;\\uc000\\ud835\\udd31\\u0200eiko\\u3686\\u369d\\u36b5\\u36bc\\u01f2\\u368b\\0\\u3691e\\u01004f\\u1284\\u1281a\\u0180;sv\\u3698\\u3699\\u369b\\u43b8ym;\\u43d1\\u0100cn\\u36a2\\u36b2k\\u0100as\\u36a8\\u36aeppro\\xf8\\u12c1im\\xbb\\u12acs\\xf0\\u129e\\u0100as\\u36ba\\u36ae\\xf0\\u12c1rn\\u803b\\xfe\\u40fe\\u01ec\\u031f\\u36c6\\u22e7es\\u8180\\xd7;bd\\u36cf\\u36d0\\u36d8\\u40d7\\u0100;a\\u190f\\u36d5r;\\u6a31;\\u6a30\\u0180eps\\u36e1\\u36e3\\u3700\\xe1\\u2a4d\\u0200;bcf\\u0486\\u36ec\\u36f0\\u36f4ot;\\u6336ir;\\u6af1\\u0100;o\\u36f9\\u36fc\\uc000\\ud835\\udd65rk;\\u6ada\\xe1\\u3362rime;\\u6034\\u0180aip\\u370f\\u3712\\u3764d\\xe5\\u1248\\u0380adempst\\u3721\\u374d\\u3740\\u3751\\u3757\\u375c\\u375fngle\\u0280;dlqr\\u3730\\u3731\\u3736\\u3740\\u3742\\u65b5own\\xbb\\u1dbbeft\\u0100;e\\u2800\\u373e\\xf1\\u092e;\\u625cight\\u0100;e\\u32aa\\u374b\\xf1\\u105aot;\\u65ecinus;\\u6a3alus;\\u6a39b;\\u69cdime;\\u6a3bezium;\\u63e2\\u0180cht\\u3772\\u377d\\u3781\\u0100ry\\u3777\\u377b;\\uc000\\ud835\\udcc9;\\u4446cy;\\u445brok;\\u4167\\u0100io\\u378b\\u378ex\\xf4\\u1777head\\u0100lr\\u3797\\u37a0eftarro\\xf7\\u084fightarrow\\xbb\\u0f5d\\u0900AHabcdfghlmoprstuw\\u37d0\\u37d3\\u37d7\\u37e4\\u37f0\\u37fc\\u380e\\u381c\\u3823\\u3834\\u3851\\u385d\\u386b\\u38a9\\u38cc\\u38d2\\u38ea\\u38f6r\\xf2\\u03edar;\\u6963\\u0100cr\\u37dc\\u37e2ute\\u803b\\xfa\\u40fa\\xf2\\u1150r\\u01e3\\u37ea\\0\\u37edy;\\u445eve;\\u416d\\u0100iy\\u37f5\\u37farc\\u803b\\xfb\\u40fb;\\u4443\\u0180abh\\u3803\\u3806\\u380br\\xf2\\u13adlac;\\u4171a\\xf2\\u13c3\\u0100ir\\u3813\\u3818sht;\\u697e;\\uc000\\ud835\\udd32rave\\u803b\\xf9\\u40f9\\u0161\\u3827\\u3831r\\u0100lr\\u382c\\u382e\\xbb\\u0957\\xbb\\u1083lk;\\u6580\\u0100ct\\u3839\\u384d\\u026f\\u383f\\0\\0\\u384arn\\u0100;e\\u3845\\u3846\\u631cr\\xbb\\u3846op;\\u630fri;\\u65f8\\u0100al\\u3856\\u385acr;\\u416b\\u80bb\\xa8\\u0349\\u0100gp\\u3862\\u3866on;\\u4173f;\\uc000\\ud835\\udd66\\u0300adhlsu\\u114b\\u3878\\u387d\\u1372\\u3891\\u38a0own\\xe1\\u13b3arpoon\\u0100lr\\u3888\\u388cef\\xf4\\u382digh\\xf4\\u382fi\\u0180;hl\\u3899\\u389a\\u389c\\u43c5\\xbb\\u13faon\\xbb\\u389aparrows;\\u61c8\\u0180cit\\u38b0\\u38c4\\u38c8\\u026f\\u38b6\\0\\0\\u38c1rn\\u0100;e\\u38bc\\u38bd\\u631dr\\xbb\\u38bdop;\\u630eng;\\u416fri;\\u65f9cr;\\uc000\\ud835\\udcca\\u0180dir\\u38d9\\u38dd\\u38e2ot;\\u62f0lde;\\u4169i\\u0100;f\\u3730\\u38e8\\xbb\\u1813\\u0100am\\u38ef\\u38f2r\\xf2\\u38a8l\\u803b\\xfc\\u40fcangle;\\u69a7\\u0780ABDacdeflnoprsz\\u391c\\u391f\\u3929\\u392d\\u39b5\\u39b8\\u39bd\\u39df\\u39e4\\u39e8\\u39f3\\u39f9\\u39fd\\u3a01\\u3a20r\\xf2\\u03f7ar\\u0100;v\\u3926\\u3927\\u6ae8;\\u6ae9as\\xe8\\u03e1\\u0100nr\\u3932\\u3937grt;\\u699c\\u0380eknprst\\u34e3\\u3946\\u394b\\u3952\\u395d\\u3964\\u3996app\\xe1\\u2415othin\\xe7\\u1e96\\u0180hir\\u34eb\\u2ec8\\u3959op\\xf4\\u2fb5\\u0100;h\\u13b7\\u3962\\xef\\u318d\\u0100iu\\u3969\\u396dgm\\xe1\\u33b3\\u0100bp\\u3972\\u3984setneq\\u0100;q\\u397d\\u3980\\uc000\\u228a\\ufe00;\\uc000\\u2acb\\ufe00setneq\\u0100;q\\u398f\\u3992\\uc000\\u228b\\ufe00;\\uc000\\u2acc\\ufe00\\u0100hr\\u399b\\u399fet\\xe1\\u369ciangle\\u0100lr\\u39aa\\u39afeft\\xbb\\u0925ight\\xbb\\u1051y;\\u4432ash\\xbb\\u1036\\u0180elr\\u39c4\\u39d2\\u39d7\\u0180;be\\u2dea\\u39cb\\u39cfar;\\u62bbq;\\u625alip;\\u62ee\\u0100bt\\u39dc\\u1468a\\xf2\\u1469r;\\uc000\\ud835\\udd33tr\\xe9\\u39aesu\\u0100bp\\u39ef\\u39f1\\xbb\\u0d1c\\xbb\\u0d59pf;\\uc000\\ud835\\udd67ro\\xf0\\u0efbtr\\xe9\\u39b4\\u0100cu\\u3a06\\u3a0br;\\uc000\\ud835\\udccb\\u0100bp\\u3a10\\u3a18n\\u0100Ee\\u3980\\u3a16\\xbb\\u397en\\u0100Ee\\u3992\\u3a1e\\xbb\\u3990igzag;\\u699a\\u0380cefoprs\\u3a36\\u3a3b\\u3a56\\u3a5b\\u3a54\\u3a61\\u3a6airc;\\u4175\\u0100di\\u3a40\\u3a51\\u0100bg\\u3a45\\u3a49ar;\\u6a5fe\\u0100;q\\u15fa\\u3a4f;\\u6259erp;\\u6118r;\\uc000\\ud835\\udd34pf;\\uc000\\ud835\\udd68\\u0100;e\\u1479\\u3a66at\\xe8\\u1479cr;\\uc000\\ud835\\udccc\\u0ae3\\u178e\\u3a87\\0\\u3a8b\\0\\u3a90\\u3a9b\\0\\0\\u3a9d\\u3aa8\\u3aab\\u3aaf\\0\\0\\u3ac3\\u3ace\\0\\u3ad8\\u17dc\\u17dftr\\xe9\\u17d1r;\\uc000\\ud835\\udd35\\u0100Aa\\u3a94\\u3a97r\\xf2\\u03c3r\\xf2\\u09f6;\\u43be\\u0100Aa\\u3aa1\\u3aa4r\\xf2\\u03b8r\\xf2\\u09eba\\xf0\\u2713is;\\u62fb\\u0180dpt\\u17a4\\u3ab5\\u3abe\\u0100fl\\u3aba\\u17a9;\\uc000\\ud835\\udd69im\\xe5\\u17b2\\u0100Aa\\u3ac7\\u3acar\\xf2\\u03cer\\xf2\\u0a01\\u0100cq\\u3ad2\\u17b8r;\\uc000\\ud835\\udccd\\u0100pt\\u17d6\\u3adcr\\xe9\\u17d4\\u0400acefiosu\\u3af0\\u3afd\\u3b08\\u3b0c\\u3b11\\u3b15\\u3b1b\\u3b21c\\u0100uy\\u3af6\\u3afbte\\u803b\\xfd\\u40fd;\\u444f\\u0100iy\\u3b02\\u3b06rc;\\u4177;\\u444bn\\u803b\\xa5\\u40a5r;\\uc000\\ud835\\udd36cy;\\u4457pf;\\uc000\\ud835\\udd6acr;\\uc000\\ud835\\udcce\\u0100cm\\u3b26\\u3b29y;\\u444el\\u803b\\xff\\u40ff\\u0500acdefhiosw\\u3b42\\u3b48\\u3b54\\u3b58\\u3b64\\u3b69\\u3b6d\\u3b74\\u3b7a\\u3b80cute;\\u417a\\u0100ay\\u3b4d\\u3b52ron;\\u417e;\\u4437ot;\\u417c\\u0100et\\u3b5d\\u3b61tr\\xe6\\u155fa;\\u43b6r;\\uc000\\ud835\\udd37cy;\\u4436grarr;\\u61ddpf;\\uc000\\ud835\\udd6bcr;\\uc000\\ud835\\udccf\\u0100jn\\u3b85\\u3b87;\\u600dj;\\u600c\"\n .split(\"\")\n .map(function (c) { return c.charCodeAt(0); }));\n//# sourceMappingURL=decode-data-html.js.map","\"use strict\";\n// Generated using scripts/write-decode-map.ts\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = new Uint16Array(\n// prettier-ignore\n\"\\u0200aglq\\t\\x15\\x18\\x1b\\u026d\\x0f\\0\\0\\x12p;\\u4026os;\\u4027t;\\u403et;\\u403cuot;\\u4022\"\n .split(\"\")\n .map(function (c) { return c.charCodeAt(0); }));\n//# sourceMappingURL=decode-data-xml.js.map","\"use strict\";\n// Adapted from https://github.com/mathiasbynens/he/blob/36afe179392226cf1b6ccdb16ebbb7a5a844d93a/src/he.js#L106-L134\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.replaceCodePoint = exports.fromCodePoint = void 0;\nvar 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 */\nexports.fromCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, node/no-unsupported-features/es-builtins\n(_a = String.fromCodePoint) !== null && _a !== void 0 ? _a : function (codePoint) {\n var output = \"\";\n if (codePoint > 0xffff) {\n codePoint -= 0x10000;\n output += String.fromCharCode(((codePoint >>> 10) & 0x3ff) | 0xd800);\n codePoint = 0xdc00 | (codePoint & 0x3ff);\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 */\nfunction replaceCodePoint(codePoint) {\n var _a;\n if ((codePoint >= 0xd800 && codePoint <= 0xdfff) || codePoint > 0x10ffff) {\n return 0xfffd;\n }\n return (_a = decodeMap.get(codePoint)) !== null && _a !== void 0 ? _a : codePoint;\n}\nexports.replaceCodePoint = replaceCodePoint;\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 */\nfunction decodeCodePoint(codePoint) {\n return (0, exports.fromCodePoint)(replaceCodePoint(codePoint));\n}\nexports.default = decodeCodePoint;\n//# sourceMappingURL=decode_codepoint.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decodeXML = exports.decodeHTMLStrict = exports.decodeHTMLAttribute = exports.decodeHTML = exports.determineBranch = exports.EntityDecoder = exports.DecodingMode = exports.BinTrieFlags = exports.fromCodePoint = exports.replaceCodePoint = exports.decodeCodePoint = exports.xmlDecodeTree = exports.htmlDecodeTree = void 0;\nvar decode_data_html_js_1 = __importDefault(require(\"./generated/decode-data-html.js\"));\nexports.htmlDecodeTree = decode_data_html_js_1.default;\nvar decode_data_xml_js_1 = __importDefault(require(\"./generated/decode-data-xml.js\"));\nexports.xmlDecodeTree = decode_data_xml_js_1.default;\nvar decode_codepoint_js_1 = __importStar(require(\"./decode_codepoint.js\"));\nexports.decodeCodePoint = decode_codepoint_js_1.default;\nvar decode_codepoint_js_2 = require(\"./decode_codepoint.js\");\nObject.defineProperty(exports, \"replaceCodePoint\", { enumerable: true, get: function () { return decode_codepoint_js_2.replaceCodePoint; } });\nObject.defineProperty(exports, \"fromCodePoint\", { enumerable: true, get: function () { return decode_codepoint_js_2.fromCodePoint; } });\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 */\nvar TO_LOWER_BIT = 32;\nvar BinTrieFlags;\n(function (BinTrieFlags) {\n BinTrieFlags[BinTrieFlags[\"VALUE_LENGTH\"] = 49152] = \"VALUE_LENGTH\";\n BinTrieFlags[BinTrieFlags[\"BRANCH_LENGTH\"] = 16256] = \"BRANCH_LENGTH\";\n BinTrieFlags[BinTrieFlags[\"JUMP_TABLE\"] = 127] = \"JUMP_TABLE\";\n})(BinTrieFlags = exports.BinTrieFlags || (exports.BinTrieFlags = {}));\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 = {}));\nvar 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 = exports.DecodingMode || (exports.DecodingMode = {}));\n/**\n * Token decoder with support of writing partial entities.\n */\nvar EntityDecoder = /** @class */ (function () {\n function EntityDecoder(\n /** The tree used to decode entities. */\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 }\n /** Resets the instance to make it reusable. */\n EntityDecoder.prototype.startEntity = function (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 };\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 string 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 EntityDecoder.prototype.write = function (str, offset) {\n switch (this.state) {\n case EntityDecoderState.EntityStart: {\n if (str.charCodeAt(offset) === CharCodes.NUM) {\n this.state = EntityDecoderState.NumericStart;\n this.consumed += 1;\n return this.stateNumericStart(str, offset + 1);\n }\n this.state = EntityDecoderState.NamedEntity;\n return this.stateNamedEntity(str, offset);\n }\n case EntityDecoderState.NumericStart: {\n return this.stateNumericStart(str, offset);\n }\n case EntityDecoderState.NumericDecimal: {\n return this.stateNumericDecimal(str, offset);\n }\n case EntityDecoderState.NumericHex: {\n return this.stateNumericHex(str, offset);\n }\n case EntityDecoderState.NamedEntity: {\n return this.stateNamedEntity(str, 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 str 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 EntityDecoder.prototype.stateNumericStart = function (str, offset) {\n if (offset >= str.length) {\n return -1;\n }\n if ((str.charCodeAt(offset) | TO_LOWER_BIT) === CharCodes.LOWER_X) {\n this.state = EntityDecoderState.NumericHex;\n this.consumed += 1;\n return this.stateNumericHex(str, offset + 1);\n }\n this.state = EntityDecoderState.NumericDecimal;\n return this.stateNumericDecimal(str, offset);\n };\n EntityDecoder.prototype.addToNumericResult = function (str, start, end, base) {\n if (start !== end) {\n var digitCount = end - start;\n this.result =\n this.result * Math.pow(base, digitCount) +\n parseInt(str.substr(start, digitCount), base);\n this.consumed += digitCount;\n }\n };\n /**\n * Parses a hexadecimal numeric entity.\n *\n * Equivalent to the `Hexademical character reference state` in the HTML spec.\n *\n * @param str 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 EntityDecoder.prototype.stateNumericHex = function (str, offset) {\n var startIdx = offset;\n while (offset < str.length) {\n var char = str.charCodeAt(offset);\n if (isNumber(char) || isHexadecimalCharacter(char)) {\n offset += 1;\n }\n else {\n this.addToNumericResult(str, startIdx, offset, 16);\n return this.emitNumericEntity(char, 3);\n }\n }\n this.addToNumericResult(str, startIdx, offset, 16);\n return -1;\n };\n /**\n * Parses a decimal numeric entity.\n *\n * Equivalent to the `Decimal character reference state` in the HTML spec.\n *\n * @param str 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 EntityDecoder.prototype.stateNumericDecimal = function (str, offset) {\n var startIdx = offset;\n while (offset < str.length) {\n var char = str.charCodeAt(offset);\n if (isNumber(char)) {\n offset += 1;\n }\n else {\n this.addToNumericResult(str, startIdx, offset, 10);\n return this.emitNumericEntity(char, 2);\n }\n }\n this.addToNumericResult(str, startIdx, offset, 10);\n return -1;\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 EntityDecoder.prototype.emitNumericEntity = function (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((0, decode_codepoint_js_1.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 str 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 EntityDecoder.prototype.stateNamedEntity = function (str, offset) {\n var decodeTree = this.decodeTree;\n var current = decodeTree[this.treeIndex];\n // The mask is the number of bytes of the value, including the current byte.\n var valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\n for (; offset < str.length; offset++, this.excess++) {\n var char = str.charCodeAt(offset);\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 this.result = this.treeIndex;\n this.consumed += this.excess;\n this.excess = 0;\n }\n }\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 EntityDecoder.prototype.emitNotTerminatedNamedEntity = function () {\n var _a;\n var _b = this, result = _b.result, decodeTree = _b.decodeTree;\n var 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 EntityDecoder.prototype.emitNamedEntityData = function (result, valueLength, consumed) {\n var decodeTree = this.decodeTree;\n this.emitCodePoint(valueLength === 1\n ? decodeTree[result] & ~BinTrieFlags.VALUE_LENGTH\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 EntityDecoder.prototype.end = function () {\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 return EntityDecoder;\n}());\nexports.EntityDecoder = EntityDecoder;\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 var ret = \"\";\n var decoder = new EntityDecoder(decodeTree, function (str) { return (ret += (0, decode_codepoint_js_1.fromCodePoint)(str)); });\n return function decodeWithTrie(str, decodeMode) {\n var lastIndex = 0;\n var offset = 0;\n while ((offset = str.indexOf(\"&\", offset)) >= 0) {\n ret += str.slice(lastIndex, offset);\n decoder.startEntity(decodeMode);\n var len = decoder.write(str, \n // Skip the \"&\"\n offset + 1);\n if (len < 0) {\n lastIndex = offset + decoder.end();\n break;\n }\n lastIndex = offset + len;\n // If `len` is 0, skip the current `&` and continue.\n offset = len === 0 ? lastIndex + 1 : lastIndex;\n }\n var result = ret + str.slice(lastIndex);\n // Make sure we don't keep a reference to the final string.\n ret = \"\";\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 */\nfunction determineBranch(decodeTree, current, nodeIdx, char) {\n var branchCount = (current & BinTrieFlags.BRANCH_LENGTH) >> 7;\n var jumpOffset = current & BinTrieFlags.JUMP_TABLE;\n // Case 1: Single branch encoded in jump offset\n if (branchCount === 0) {\n return jumpOffset !== 0 && char === jumpOffset ? nodeIdx : -1;\n }\n // Case 2: Multiple branches encoded in jump table\n if (jumpOffset) {\n var value = char - jumpOffset;\n return value < 0 || value >= branchCount\n ? -1\n : decodeTree[nodeIdx + value] - 1;\n }\n // Case 3: Multiple branches encoded in dictionary\n // Binary search for the character.\n var lo = nodeIdx;\n var hi = lo + branchCount - 1;\n while (lo <= hi) {\n var mid = (lo + hi) >>> 1;\n var midVal = decodeTree[mid];\n if (midVal < char) {\n lo = mid + 1;\n }\n else if (midVal > char) {\n hi = mid - 1;\n }\n else {\n return decodeTree[mid + branchCount];\n }\n }\n return -1;\n}\nexports.determineBranch = determineBranch;\nvar htmlDecoder = getDecoder(decode_data_html_js_1.default);\nvar xmlDecoder = getDecoder(decode_data_xml_js_1.default);\n/**\n * Decodes an HTML string.\n *\n * @param str The string to decode.\n * @param mode The decoding mode.\n * @returns The decoded string.\n */\nfunction decodeHTML(str, mode) {\n if (mode === void 0) { mode = DecodingMode.Legacy; }\n return htmlDecoder(str, mode);\n}\nexports.decodeHTML = decodeHTML;\n/**\n * Decodes an HTML string in an attribute.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nfunction decodeHTMLAttribute(str) {\n return htmlDecoder(str, DecodingMode.Attribute);\n}\nexports.decodeHTMLAttribute = decodeHTMLAttribute;\n/**\n * Decodes an HTML string, requiring all entities to be terminated by a semicolon.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nfunction decodeHTMLStrict(str) {\n return htmlDecoder(str, DecodingMode.Strict);\n}\nexports.decodeHTMLStrict = decodeHTMLStrict;\n/**\n * Decodes an XML string, requiring all entities to be terminated by a semicolon.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nfunction decodeXML(str) {\n return xmlDecoder(str, DecodingMode.Strict);\n}\nexports.decodeXML = decodeXML;\n//# sourceMappingURL=decode.js.map","\"use strict\";\n// Generated using scripts/write-encode-map.ts\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction restoreDiff(arr) {\n for (var i = 1; i < arr.length; i++) {\n arr[i][0] += arr[i - 1][0] + 1;\n }\n return arr;\n}\n// prettier-ignore\nexports.default = new Map(/* #__PURE__ */ restoreDiff([[9, \"	\"], [0, \"
\"], [22, \"!\"], [0, \""\"], [0, \"#\"], [0, \"$\"], [0, \"%\"], [0, \"&\"], [0, \"'\"], [0, \"(\"], [0, \")\"], [0, \"*\"], [0, \"+\"], [0, \",\"], [1, \".\"], [0, \"/\"], [10, \":\"], [0, \";\"], [0, { v: \"<\", n: 8402, o: \"<⃒\" }], [0, { v: \"=\", n: 8421, o: \"=⃥\" }], [0, { v: \">\", n: 8402, o: \">⃒\" }], [0, \"?\"], [0, \"@\"], [26, \"[\"], [0, \"\\"], [0, \"]\"], [0, \"^\"], [0, \"_\"], [0, \"`\"], [5, { n: 106, o: \"fj\" }], [20, \"{\"], [0, \"|\"], [0, \"}\"], [34, \" \"], [0, \"¡\"], [0, \"¢\"], [0, \"£\"], [0, \"¤\"], [0, \"¥\"], [0, \"¦\"], [0, \"§\"], [0, \"¨\"], [0, \"©\"], [0, \"ª\"], [0, \"«\"], [0, \"¬\"], [0, \"­\"], [0, \"®\"], [0, \"¯\"], [0, \"°\"], [0, \"±\"], [0, \"²\"], [0, \"³\"], [0, \"´\"], [0, \"µ\"], [0, \"¶\"], [0, \"·\"], [0, \"¸\"], [0, \"¹\"], [0, \"º\"], [0, \"»\"], [0, \"¼\"], [0, \"½\"], [0, \"¾\"], [0, \"¿\"], [0, \"À\"], [0, \"Á\"], [0, \"Â\"], [0, \"Ã\"], [0, \"Ä\"], [0, \"Å\"], [0, \"Æ\"], [0, \"Ç\"], [0, \"È\"], [0, \"É\"], [0, \"Ê\"], [0, \"Ë\"], [0, \"Ì\"], [0, \"Í\"], [0, \"Î\"], [0, \"Ï\"], [0, \"Ð\"], [0, \"Ñ\"], [0, \"Ò\"], [0, \"Ó\"], [0, \"Ô\"], [0, \"Õ\"], [0, \"Ö\"], [0, \"×\"], [0, \"Ø\"], [0, \"Ù\"], [0, \"Ú\"], [0, \"Û\"], [0, \"Ü\"], [0, \"Ý\"], [0, \"Þ\"], [0, \"ß\"], [0, \"à\"], [0, \"á\"], [0, \"â\"], [0, \"ã\"], [0, \"ä\"], [0, \"å\"], [0, \"æ\"], [0, \"ç\"], [0, \"è\"], [0, \"é\"], [0, \"ê\"], [0, \"ë\"], [0, \"ì\"], [0, \"í\"], [0, \"î\"], [0, \"ï\"], [0, \"ð\"], [0, \"ñ\"], [0, \"ò\"], [0, \"ó\"], [0, \"ô\"], [0, \"õ\"], [0, \"ö\"], [0, \"÷\"], [0, \"ø\"], [0, \"ù\"], [0, \"ú\"], [0, \"û\"], [0, \"ü\"], [0, \"ý\"], [0, \"þ\"], [0, \"ÿ\"], [0, \"Ā\"], [0, \"ā\"], [0, \"Ă\"], [0, \"ă\"], [0, \"Ą\"], [0, \"ą\"], [0, \"Ć\"], [0, \"ć\"], [0, \"Ĉ\"], [0, \"ĉ\"], [0, \"Ċ\"], [0, \"ċ\"], [0, \"Č\"], [0, \"č\"], [0, \"Ď\"], [0, \"ď\"], [0, \"Đ\"], [0, \"đ\"], [0, \"Ē\"], [0, \"ē\"], [2, \"Ė\"], [0, \"ė\"], [0, \"Ę\"], [0, \"ę\"], [0, \"Ě\"], [0, \"ě\"], [0, \"Ĝ\"], [0, \"ĝ\"], [0, \"Ğ\"], [0, \"ğ\"], [0, \"Ġ\"], [0, \"ġ\"], [0, \"Ģ\"], [1, \"Ĥ\"], [0, \"ĥ\"], [0, \"Ħ\"], [0, \"ħ\"], [0, \"Ĩ\"], [0, \"ĩ\"], [0, \"Ī\"], [0, \"ī\"], [2, \"Į\"], [0, \"į\"], [0, \"İ\"], [0, \"ı\"], [0, \"IJ\"], [0, \"ij\"], [0, \"Ĵ\"], [0, \"ĵ\"], [0, \"Ķ\"], [0, \"ķ\"], [0, \"ĸ\"], [0, \"Ĺ\"], [0, \"ĺ\"], [0, \"Ļ\"], [0, \"ļ\"], [0, \"Ľ\"], [0, \"ľ\"], [0, \"Ŀ\"], [0, \"ŀ\"], [0, \"Ł\"], [0, \"ł\"], [0, \"Ń\"], [0, \"ń\"], [0, \"Ņ\"], [0, \"ņ\"], [0, \"Ň\"], [0, \"ň\"], [0, \"ʼn\"], [0, \"Ŋ\"], [0, \"ŋ\"], [0, \"Ō\"], [0, \"ō\"], [2, \"Ő\"], [0, \"ő\"], [0, \"Œ\"], [0, \"œ\"], [0, \"Ŕ\"], [0, \"ŕ\"], [0, \"Ŗ\"], [0, \"ŗ\"], [0, \"Ř\"], [0, \"ř\"], [0, \"Ś\"], [0, \"ś\"], [0, \"Ŝ\"], [0, \"ŝ\"], [0, \"Ş\"], [0, \"ş\"], [0, \"Š\"], [0, \"š\"], [0, \"Ţ\"], [0, \"ţ\"], [0, \"Ť\"], [0, \"ť\"], [0, \"Ŧ\"], [0, \"ŧ\"], [0, \"Ũ\"], [0, \"ũ\"], [0, \"Ū\"], [0, \"ū\"], [0, \"Ŭ\"], [0, \"ŭ\"], [0, \"Ů\"], [0, \"ů\"], [0, \"Ű\"], [0, \"ű\"], [0, \"Ų\"], [0, \"ų\"], [0, \"Ŵ\"], [0, \"ŵ\"], [0, \"Ŷ\"], [0, \"ŷ\"], [0, \"Ÿ\"], [0, \"Ź\"], [0, \"ź\"], [0, \"Ż\"], [0, \"ż\"], [0, \"Ž\"], [0, \"ž\"], [19, \"ƒ\"], [34, \"Ƶ\"], [63, \"ǵ\"], [65, \"ȷ\"], [142, \"ˆ\"], [0, \"ˇ\"], [16, \"˘\"], [0, \"˙\"], [0, \"˚\"], [0, \"˛\"], [0, \"˜\"], [0, \"˝\"], [51, \"̑\"], [127, \"Α\"], [0, \"Β\"], [0, \"Γ\"], [0, \"Δ\"], [0, \"Ε\"], [0, \"Ζ\"], [0, \"Η\"], [0, \"Θ\"], [0, \"Ι\"], [0, \"Κ\"], [0, \"Λ\"], [0, \"Μ\"], [0, \"Ν\"], [0, \"Ξ\"], [0, \"Ο\"], [0, \"Π\"], [0, \"Ρ\"], [1, \"Σ\"], [0, \"Τ\"], [0, \"Υ\"], [0, \"Φ\"], [0, \"Χ\"], [0, \"Ψ\"], [0, \"Ω\"], [7, \"α\"], [0, \"β\"], [0, \"γ\"], [0, \"δ\"], [0, \"ε\"], [0, \"ζ\"], [0, \"η\"], [0, \"θ\"], [0, \"ι\"], [0, \"κ\"], [0, \"λ\"], [0, \"μ\"], [0, \"ν\"], [0, \"ξ\"], [0, \"ο\"], [0, \"π\"], [0, \"ρ\"], [0, \"ς\"], [0, \"σ\"], [0, \"τ\"], [0, \"υ\"], [0, \"φ\"], [0, \"χ\"], [0, \"ψ\"], [0, \"ω\"], [7, \"ϑ\"], [0, \"ϒ\"], [2, \"ϕ\"], [0, \"ϖ\"], [5, \"Ϝ\"], [0, \"ϝ\"], [18, \"ϰ\"], [0, \"ϱ\"], [3, \"ϵ\"], [0, \"϶\"], [10, \"Ё\"], [0, \"Ђ\"], [0, \"Ѓ\"], [0, \"Є\"], [0, \"Ѕ\"], [0, \"І\"], [0, \"Ї\"], [0, \"Ј\"], [0, \"Љ\"], [0, \"Њ\"], [0, \"Ћ\"], [0, \"Ќ\"], [1, \"Ў\"], [0, \"Џ\"], [0, \"А\"], [0, \"Б\"], [0, \"В\"], [0, \"Г\"], [0, \"Д\"], [0, \"Е\"], [0, \"Ж\"], [0, \"З\"], [0, \"И\"], [0, \"Й\"], [0, \"К\"], [0, \"Л\"], [0, \"М\"], [0, \"Н\"], [0, \"О\"], [0, \"П\"], [0, \"Р\"], [0, \"С\"], [0, \"Т\"], [0, \"У\"], [0, \"Ф\"], [0, \"Х\"], [0, \"Ц\"], [0, \"Ч\"], [0, \"Ш\"], [0, \"Щ\"], [0, \"Ъ\"], [0, \"Ы\"], [0, \"Ь\"], [0, \"Э\"], [0, \"Ю\"], [0, \"Я\"], [0, \"а\"], [0, \"б\"], [0, \"в\"], [0, \"г\"], [0, \"д\"], [0, \"е\"], [0, \"ж\"], [0, \"з\"], [0, \"и\"], [0, \"й\"], [0, \"к\"], [0, \"л\"], [0, \"м\"], [0, \"н\"], [0, \"о\"], [0, \"п\"], [0, \"р\"], [0, \"с\"], [0, \"т\"], [0, \"у\"], [0, \"ф\"], [0, \"х\"], [0, \"ц\"], [0, \"ч\"], [0, \"ш\"], [0, \"щ\"], [0, \"ъ\"], [0, \"ы\"], [0, \"ь\"], [0, \"э\"], [0, \"ю\"], [0, \"я\"], [1, \"ё\"], [0, \"ђ\"], [0, \"ѓ\"], [0, \"є\"], [0, \"ѕ\"], [0, \"і\"], [0, \"ї\"], [0, \"ј\"], [0, \"љ\"], [0, \"њ\"], [0, \"ћ\"], [0, \"ќ\"], [1, \"ў\"], [0, \"џ\"], [7074, \" \"], [0, \" \"], [0, \" \"], [0, \" \"], [1, \" \"], [0, \" \"], [0, \" \"], [0, \" \"], [0, \"​\"], [0, \"‌\"], [0, \"‍\"], [0, \"‎\"], [0, \"‏\"], [0, \"‐\"], [2, \"–\"], [0, \"—\"], [0, \"―\"], [0, \"‖\"], [1, \"‘\"], [0, \"’\"], [0, \"‚\"], [1, \"“\"], [0, \"”\"], [0, \"„\"], [1, \"†\"], [0, \"‡\"], [0, \"•\"], [2, \"‥\"], [0, \"…\"], [9, \"‰\"], [0, \"‱\"], [0, \"′\"], [0, \"″\"], [0, \"‴\"], [0, \"‵\"], [3, \"‹\"], [0, \"›\"], [3, \"‾\"], [2, \"⁁\"], [1, \"⁃\"], [0, \"⁄\"], [10, \"⁏\"], [7, \"⁗\"], [7, { v: \" \", n: 8202, o: \"  \" }], [0, \"⁠\"], [0, \"⁡\"], [0, \"⁢\"], [0, \"⁣\"], [72, \"€\"], [46, \"⃛\"], [0, \"⃜\"], [37, \"ℂ\"], [2, \"℅\"], [4, \"ℊ\"], [0, \"ℋ\"], [0, \"ℌ\"], [0, \"ℍ\"], [0, \"ℎ\"], [0, \"ℏ\"], [0, \"ℐ\"], [0, \"ℑ\"], [0, \"ℒ\"], [0, \"ℓ\"], [1, \"ℕ\"], [0, \"№\"], [0, \"℗\"], [0, \"℘\"], [0, \"ℙ\"], [0, \"ℚ\"], [0, \"ℛ\"], [0, \"ℜ\"], [0, \"ℝ\"], [0, \"℞\"], [3, \"™\"], [1, \"ℤ\"], [2, \"℧\"], [0, \"ℨ\"], [0, \"℩\"], [2, \"ℬ\"], [0, \"ℭ\"], [1, \"ℯ\"], [0, \"ℰ\"], [0, \"ℱ\"], [1, \"ℳ\"], [0, \"ℴ\"], [0, \"ℵ\"], [0, \"ℶ\"], [0, \"ℷ\"], [0, \"ℸ\"], [12, \"ⅅ\"], [0, \"ⅆ\"], [0, \"ⅇ\"], [0, \"ⅈ\"], [10, \"⅓\"], [0, \"⅔\"], [0, \"⅕\"], [0, \"⅖\"], [0, \"⅗\"], [0, \"⅘\"], [0, \"⅙\"], [0, \"⅚\"], [0, \"⅛\"], [0, \"⅜\"], [0, \"⅝\"], [0, \"⅞\"], [49, \"←\"], [0, \"↑\"], [0, \"→\"], [0, \"↓\"], [0, \"↔\"], [0, \"↕\"], [0, \"↖\"], [0, \"↗\"], [0, \"↘\"], [0, \"↙\"], [0, \"↚\"], [0, \"↛\"], [1, { v: \"↝\", n: 824, o: \"↝̸\" }], [0, \"↞\"], [0, \"↟\"], [0, \"↠\"], [0, \"↡\"], [0, \"↢\"], [0, \"↣\"], [0, \"↤\"], [0, \"↥\"], [0, \"↦\"], [0, \"↧\"], [1, \"↩\"], [0, \"↪\"], [0, \"↫\"], [0, \"↬\"], [0, \"↭\"], [0, \"↮\"], [1, \"↰\"], [0, \"↱\"], [0, \"↲\"], [0, \"↳\"], [1, \"↵\"], [0, \"↶\"], [0, \"↷\"], [2, \"↺\"], [0, \"↻\"], [0, \"↼\"], [0, \"↽\"], [0, \"↾\"], [0, \"↿\"], [0, \"⇀\"], [0, \"⇁\"], [0, \"⇂\"], [0, \"⇃\"], [0, \"⇄\"], [0, \"⇅\"], [0, \"⇆\"], [0, \"⇇\"], [0, \"⇈\"], [0, \"⇉\"], [0, \"⇊\"], [0, \"⇋\"], [0, \"⇌\"], [0, \"⇍\"], [0, \"⇎\"], [0, \"⇏\"], [0, \"⇐\"], [0, \"⇑\"], [0, \"⇒\"], [0, \"⇓\"], [0, \"⇔\"], [0, \"⇕\"], [0, \"⇖\"], [0, \"⇗\"], [0, \"⇘\"], [0, \"⇙\"], [0, \"⇚\"], [0, \"⇛\"], [1, \"⇝\"], [6, \"⇤\"], [0, \"⇥\"], [15, \"⇵\"], [7, \"⇽\"], [0, \"⇾\"], [0, \"⇿\"], [0, \"∀\"], [0, \"∁\"], [0, { v: \"∂\", n: 824, o: \"∂̸\" }], [0, \"∃\"], [0, \"∄\"], [0, \"∅\"], [1, \"∇\"], [0, \"∈\"], [0, \"∉\"], [1, \"∋\"], [0, \"∌\"], [2, \"∏\"], [0, \"∐\"], [0, \"∑\"], [0, \"−\"], [0, \"∓\"], [0, \"∔\"], [1, \"∖\"], [0, \"∗\"], [0, \"∘\"], [1, \"√\"], [2, \"∝\"], [0, \"∞\"], [0, \"∟\"], [0, { v: \"∠\", n: 8402, o: \"∠⃒\" }], [0, \"∡\"], [0, \"∢\"], [0, \"∣\"], [0, \"∤\"], [0, \"∥\"], [0, \"∦\"], [0, \"∧\"], [0, \"∨\"], [0, { v: \"∩\", n: 65024, o: \"∩︀\" }], [0, { v: \"∪\", n: 65024, o: \"∪︀\" }], [0, \"∫\"], [0, \"∬\"], [0, \"∭\"], [0, \"∮\"], [0, \"∯\"], [0, \"∰\"], [0, \"∱\"], [0, \"∲\"], [0, \"∳\"], [0, \"∴\"], [0, \"∵\"], [0, \"∶\"], [0, \"∷\"], [0, \"∸\"], [1, \"∺\"], [0, \"∻\"], [0, { v: \"∼\", n: 8402, o: \"∼⃒\" }], [0, { v: \"∽\", n: 817, o: \"∽̱\" }], [0, { v: \"∾\", n: 819, o: \"∾̳\" }], [0, \"∿\"], [0, \"≀\"], [0, \"≁\"], [0, { v: \"≂\", n: 824, o: \"≂̸\" }], [0, \"≃\"], [0, \"≄\"], [0, \"≅\"], [0, \"≆\"], [0, \"≇\"], [0, \"≈\"], [0, \"≉\"], [0, \"≊\"], [0, { v: \"≋\", n: 824, o: \"≋̸\" }], [0, \"≌\"], [0, { v: \"≍\", n: 8402, o: \"≍⃒\" }], [0, { v: \"≎\", n: 824, o: \"≎̸\" }], [0, { v: \"≏\", n: 824, o: \"≏̸\" }], [0, { v: \"≐\", n: 824, o: \"≐̸\" }], [0, \"≑\"], [0, \"≒\"], [0, \"≓\"], [0, \"≔\"], [0, \"≕\"], [0, \"≖\"], [0, \"≗\"], [1, \"≙\"], [0, \"≚\"], [1, \"≜\"], [2, \"≟\"], [0, \"≠\"], [0, { v: \"≡\", n: 8421, o: \"≡⃥\" }], [0, \"≢\"], [1, { v: \"≤\", n: 8402, o: \"≤⃒\" }], [0, { v: \"≥\", n: 8402, o: \"≥⃒\" }], [0, { v: \"≦\", n: 824, o: \"≦̸\" }], [0, { v: \"≧\", n: 824, o: \"≧̸\" }], [0, { v: \"≨\", n: 65024, o: \"≨︀\" }], [0, { v: \"≩\", n: 65024, o: \"≩︀\" }], [0, { v: \"≪\", n: new Map(/* #__PURE__ */ restoreDiff([[824, \"≪̸\"], [7577, \"≪⃒\"]])) }], [0, { v: \"≫\", n: new Map(/* #__PURE__ */ restoreDiff([[824, \"≫̸\"], [7577, \"≫⃒\"]])) }], [0, \"≬\"], [0, \"≭\"], [0, \"≮\"], [0, \"≯\"], [0, \"≰\"], [0, \"≱\"], [0, \"≲\"], [0, \"≳\"], [0, \"≴\"], [0, \"≵\"], [0, \"≶\"], [0, \"≷\"], [0, \"≸\"], [0, \"≹\"], [0, \"≺\"], [0, \"≻\"], [0, \"≼\"], [0, \"≽\"], [0, \"≾\"], [0, { v: \"≿\", n: 824, o: \"≿̸\" }], [0, \"⊀\"], [0, \"⊁\"], [0, { v: \"⊂\", n: 8402, o: \"⊂⃒\" }], [0, { v: \"⊃\", n: 8402, o: \"⊃⃒\" }], [0, \"⊄\"], [0, \"⊅\"], [0, \"⊆\"], [0, \"⊇\"], [0, \"⊈\"], [0, \"⊉\"], [0, { v: \"⊊\", n: 65024, o: \"⊊︀\" }], [0, { v: \"⊋\", n: 65024, o: \"⊋︀\" }], [1, \"⊍\"], [0, \"⊎\"], [0, { v: \"⊏\", n: 824, o: \"⊏̸\" }], [0, { v: \"⊐\", n: 824, o: \"⊐̸\" }], [0, \"⊑\"], [0, \"⊒\"], [0, { v: \"⊓\", n: 65024, o: \"⊓︀\" }], [0, { v: \"⊔\", n: 65024, o: \"⊔︀\" }], [0, \"⊕\"], [0, \"⊖\"], [0, \"⊗\"], [0, \"⊘\"], [0, \"⊙\"], [0, \"⊚\"], [0, \"⊛\"], [1, \"⊝\"], [0, \"⊞\"], [0, \"⊟\"], [0, \"⊠\"], [0, \"⊡\"], [0, \"⊢\"], [0, \"⊣\"], [0, \"⊤\"], [0, \"⊥\"], [1, \"⊧\"], [0, \"⊨\"], [0, \"⊩\"], [0, \"⊪\"], [0, \"⊫\"], [0, \"⊬\"], [0, \"⊭\"], [0, \"⊮\"], [0, \"⊯\"], [0, \"⊰\"], [1, \"⊲\"], [0, \"⊳\"], [0, { v: \"⊴\", n: 8402, o: \"⊴⃒\" }], [0, { v: \"⊵\", n: 8402, o: \"⊵⃒\" }], [0, \"⊶\"], [0, \"⊷\"], [0, \"⊸\"], [0, \"⊹\"], [0, \"⊺\"], [0, \"⊻\"], [1, \"⊽\"], [0, \"⊾\"], [0, \"⊿\"], [0, \"⋀\"], [0, \"⋁\"], [0, \"⋂\"], [0, \"⋃\"], [0, \"⋄\"], [0, \"⋅\"], [0, \"⋆\"], [0, \"⋇\"], [0, \"⋈\"], [0, \"⋉\"], [0, \"⋊\"], [0, \"⋋\"], [0, \"⋌\"], [0, \"⋍\"], [0, \"⋎\"], [0, \"⋏\"], [0, \"⋐\"], [0, \"⋑\"], [0, \"⋒\"], [0, \"⋓\"], [0, \"⋔\"], [0, \"⋕\"], [0, \"⋖\"], [0, \"⋗\"], [0, { v: \"⋘\", n: 824, o: \"⋘̸\" }], [0, { v: \"⋙\", n: 824, o: \"⋙̸\" }], [0, { v: \"⋚\", n: 65024, o: \"⋚︀\" }], [0, { v: \"⋛\", n: 65024, o: \"⋛︀\" }], [2, \"⋞\"], [0, \"⋟\"], [0, \"⋠\"], [0, \"⋡\"], [0, \"⋢\"], [0, \"⋣\"], [2, \"⋦\"], [0, \"⋧\"], [0, \"⋨\"], [0, \"⋩\"], [0, \"⋪\"], [0, \"⋫\"], [0, \"⋬\"], [0, \"⋭\"], [0, \"⋮\"], [0, \"⋯\"], [0, \"⋰\"], [0, \"⋱\"], [0, \"⋲\"], [0, \"⋳\"], [0, \"⋴\"], [0, { v: \"⋵\", n: 824, o: \"⋵̸\" }], [0, \"⋶\"], [0, \"⋷\"], [1, { v: \"⋹\", n: 824, o: \"⋹̸\" }], [0, \"⋺\"], [0, \"⋻\"], [0, \"⋼\"], [0, \"⋽\"], [0, \"⋾\"], [6, \"⌅\"], [0, \"⌆\"], [1, \"⌈\"], [0, \"⌉\"], [0, \"⌊\"], [0, \"⌋\"], [0, \"⌌\"], [0, \"⌍\"], [0, \"⌎\"], [0, \"⌏\"], [0, \"⌐\"], [1, \"⌒\"], [0, \"⌓\"], [1, \"⌕\"], [0, \"⌖\"], [5, \"⌜\"], [0, \"⌝\"], [0, \"⌞\"], [0, \"⌟\"], [2, \"⌢\"], [0, \"⌣\"], [9, \"⌭\"], [0, \"⌮\"], [7, \"⌶\"], [6, \"⌽\"], [1, \"⌿\"], [60, \"⍼\"], [51, \"⎰\"], [0, \"⎱\"], [2, \"⎴\"], [0, \"⎵\"], [0, \"⎶\"], [37, \"⏜\"], [0, \"⏝\"], [0, \"⏞\"], [0, \"⏟\"], [2, \"⏢\"], [4, \"⏧\"], [59, \"␣\"], [164, \"Ⓢ\"], [55, \"─\"], [1, \"│\"], [9, \"┌\"], [3, \"┐\"], [3, \"└\"], [3, \"┘\"], [3, \"├\"], [7, \"┤\"], [7, \"┬\"], [7, \"┴\"], [7, \"┼\"], [19, \"═\"], [0, \"║\"], [0, \"╒\"], [0, \"╓\"], [0, \"╔\"], [0, \"╕\"], [0, \"╖\"], [0, \"╗\"], [0, \"╘\"], [0, \"╙\"], [0, \"╚\"], [0, \"╛\"], [0, \"╜\"], [0, \"╝\"], [0, \"╞\"], [0, \"╟\"], [0, \"╠\"], [0, \"╡\"], [0, \"╢\"], [0, \"╣\"], [0, \"╤\"], [0, \"╥\"], [0, \"╦\"], [0, \"╧\"], [0, \"╨\"], [0, \"╩\"], [0, \"╪\"], [0, \"╫\"], [0, \"╬\"], [19, \"▀\"], [3, \"▄\"], [3, \"█\"], [8, \"░\"], [0, \"▒\"], [0, \"▓\"], [13, \"□\"], [8, \"▪\"], [0, \"▫\"], [1, \"▭\"], [0, \"▮\"], [2, \"▱\"], [1, \"△\"], [0, \"▴\"], [0, \"▵\"], [2, \"▸\"], [0, \"▹\"], [3, \"▽\"], [0, \"▾\"], [0, \"▿\"], [2, \"◂\"], [0, \"◃\"], [6, \"◊\"], [0, \"○\"], [32, \"◬\"], [2, \"◯\"], [8, \"◸\"], [0, \"◹\"], [0, \"◺\"], [0, \"◻\"], [0, \"◼\"], [8, \"★\"], [0, \"☆\"], [7, \"☎\"], [49, \"♀\"], [1, \"♂\"], [29, \"♠\"], [2, \"♣\"], [1, \"♥\"], [0, \"♦\"], [3, \"♪\"], [2, \"♭\"], [0, \"♮\"], [0, \"♯\"], [163, \"✓\"], [3, \"✗\"], [8, \"✠\"], [21, \"✶\"], [33, \"❘\"], [25, \"❲\"], [0, \"❳\"], [84, \"⟈\"], [0, \"⟉\"], [28, \"⟦\"], [0, \"⟧\"], [0, \"⟨\"], [0, \"⟩\"], [0, \"⟪\"], [0, \"⟫\"], [0, \"⟬\"], [0, \"⟭\"], [7, \"⟵\"], [0, \"⟶\"], [0, \"⟷\"], [0, \"⟸\"], [0, \"⟹\"], [0, \"⟺\"], [1, \"⟼\"], [2, \"⟿\"], [258, \"⤂\"], [0, \"⤃\"], [0, \"⤄\"], [0, \"⤅\"], [6, \"⤌\"], [0, \"⤍\"], [0, \"⤎\"], [0, \"⤏\"], [0, \"⤐\"], [0, \"⤑\"], [0, \"⤒\"], [0, \"⤓\"], [2, \"⤖\"], [2, \"⤙\"], [0, \"⤚\"], [0, \"⤛\"], [0, \"⤜\"], [0, \"⤝\"], [0, \"⤞\"], [0, \"⤟\"], [0, \"⤠\"], [2, \"⤣\"], [0, \"⤤\"], [0, \"⤥\"], [0, \"⤦\"], [0, \"⤧\"], [0, \"⤨\"], [0, \"⤩\"], [0, \"⤪\"], [8, { v: \"⤳\", n: 824, o: \"⤳̸\" }], [1, \"⤵\"], [0, \"⤶\"], [0, \"⤷\"], [0, \"⤸\"], [0, \"⤹\"], [2, \"⤼\"], [0, \"⤽\"], [7, \"⥅\"], [2, \"⥈\"], [0, \"⥉\"], [0, \"⥊\"], [0, \"⥋\"], [2, \"⥎\"], [0, \"⥏\"], [0, \"⥐\"], [0, \"⥑\"], [0, \"⥒\"], [0, \"⥓\"], [0, \"⥔\"], [0, \"⥕\"], [0, \"⥖\"], [0, \"⥗\"], [0, \"⥘\"], [0, \"⥙\"], [0, \"⥚\"], [0, \"⥛\"], [0, \"⥜\"], [0, \"⥝\"], [0, \"⥞\"], [0, \"⥟\"], [0, \"⥠\"], [0, \"⥡\"], [0, \"⥢\"], [0, \"⥣\"], [0, \"⥤\"], [0, \"⥥\"], [0, \"⥦\"], [0, \"⥧\"], [0, \"⥨\"], [0, \"⥩\"], [0, \"⥪\"], [0, \"⥫\"], [0, \"⥬\"], [0, \"⥭\"], [0, \"⥮\"], [0, \"⥯\"], [0, \"⥰\"], [0, \"⥱\"], [0, \"⥲\"], [0, \"⥳\"], [0, \"⥴\"], [0, \"⥵\"], [0, \"⥶\"], [1, \"⥸\"], [0, \"⥹\"], [1, \"⥻\"], [0, \"⥼\"], [0, \"⥽\"], [0, \"⥾\"], [0, \"⥿\"], [5, \"⦅\"], [0, \"⦆\"], [4, \"⦋\"], [0, \"⦌\"], [0, \"⦍\"], [0, \"⦎\"], [0, \"⦏\"], [0, \"⦐\"], [0, \"⦑\"], [0, \"⦒\"], [0, \"⦓\"], [0, \"⦔\"], [0, \"⦕\"], [0, \"⦖\"], [3, \"⦚\"], [1, \"⦜\"], [0, \"⦝\"], [6, \"⦤\"], [0, \"⦥\"], [0, \"⦦\"], [0, \"⦧\"], [0, \"⦨\"], [0, \"⦩\"], [0, \"⦪\"], [0, \"⦫\"], [0, \"⦬\"], [0, \"⦭\"], [0, \"⦮\"], [0, \"⦯\"], [0, \"⦰\"], [0, \"⦱\"], [0, \"⦲\"], [0, \"⦳\"], [0, \"⦴\"], [0, \"⦵\"], [0, \"⦶\"], [0, \"⦷\"], [1, \"⦹\"], [1, \"⦻\"], [0, \"⦼\"], [1, \"⦾\"], [0, \"⦿\"], [0, \"⧀\"], [0, \"⧁\"], [0, \"⧂\"], [0, \"⧃\"], [0, \"⧄\"], [0, \"⧅\"], [3, \"⧉\"], [3, \"⧍\"], [0, \"⧎\"], [0, { v: \"⧏\", n: 824, o: \"⧏̸\" }], [0, { v: \"⧐\", n: 824, o: \"⧐̸\" }], [11, \"⧜\"], [0, \"⧝\"], [0, \"⧞\"], [4, \"⧣\"], [0, \"⧤\"], [0, \"⧥\"], [5, \"⧫\"], [8, \"⧴\"], [1, \"⧶\"], [9, \"⨀\"], [0, \"⨁\"], [0, \"⨂\"], [1, \"⨄\"], [1, \"⨆\"], [5, \"⨌\"], [0, \"⨍\"], [2, \"⨐\"], [0, \"⨑\"], [0, \"⨒\"], [0, \"⨓\"], [0, \"⨔\"], [0, \"⨕\"], [0, \"⨖\"], [0, \"⨗\"], [10, \"⨢\"], [0, \"⨣\"], [0, \"⨤\"], [0, \"⨥\"], [0, \"⨦\"], [0, \"⨧\"], [1, \"⨩\"], [0, \"⨪\"], [2, \"⨭\"], [0, \"⨮\"], [0, \"⨯\"], [0, \"⨰\"], [0, \"⨱\"], [1, \"⨳\"], [0, \"⨴\"], [0, \"⨵\"], [0, \"⨶\"], [0, \"⨷\"], [0, \"⨸\"], [0, \"⨹\"], [0, \"⨺\"], [0, \"⨻\"], [0, \"⨼\"], [2, \"⨿\"], [0, \"⩀\"], [1, \"⩂\"], [0, \"⩃\"], [0, \"⩄\"], [0, \"⩅\"], [0, \"⩆\"], [0, \"⩇\"], [0, \"⩈\"], [0, \"⩉\"], [0, \"⩊\"], [0, \"⩋\"], [0, \"⩌\"], [0, \"⩍\"], [2, \"⩐\"], [2, \"⩓\"], [0, \"⩔\"], [0, \"⩕\"], [0, \"⩖\"], [0, \"⩗\"], [0, \"⩘\"], [1, \"⩚\"], [0, \"⩛\"], [0, \"⩜\"], [0, \"⩝\"], [1, \"⩟\"], [6, \"⩦\"], [3, \"⩪\"], [2, { v: \"⩭\", n: 824, o: \"⩭̸\" }], [0, \"⩮\"], [0, \"⩯\"], [0, { v: \"⩰\", n: 824, o: \"⩰̸\" }], [0, \"⩱\"], [0, \"⩲\"], [0, \"⩳\"], [0, \"⩴\"], [0, \"⩵\"], [1, \"⩷\"], [0, \"⩸\"], [0, \"⩹\"], [0, \"⩺\"], [0, \"⩻\"], [0, \"⩼\"], [0, { v: \"⩽\", n: 824, o: \"⩽̸\" }], [0, { v: \"⩾\", n: 824, o: \"⩾̸\" }], [0, \"⩿\"], [0, \"⪀\"], [0, \"⪁\"], [0, \"⪂\"], [0, \"⪃\"], [0, \"⪄\"], [0, \"⪅\"], [0, \"⪆\"], [0, \"⪇\"], [0, \"⪈\"], [0, \"⪉\"], [0, \"⪊\"], [0, \"⪋\"], [0, \"⪌\"], [0, \"⪍\"], [0, \"⪎\"], [0, \"⪏\"], [0, \"⪐\"], [0, \"⪑\"], [0, \"⪒\"], [0, \"⪓\"], [0, \"⪔\"], [0, \"⪕\"], [0, \"⪖\"], [0, \"⪗\"], [0, \"⪘\"], [0, \"⪙\"], [0, \"⪚\"], [2, \"⪝\"], [0, \"⪞\"], [0, \"⪟\"], [0, \"⪠\"], [0, { v: \"⪡\", n: 824, o: \"⪡̸\" }], [0, { v: \"⪢\", n: 824, o: \"⪢̸\" }], [1, \"⪤\"], [0, \"⪥\"], [0, \"⪦\"], [0, \"⪧\"], [0, \"⪨\"], [0, \"⪩\"], [0, \"⪪\"], [0, \"⪫\"], [0, { v: \"⪬\", n: 65024, o: \"⪬︀\" }], [0, { v: \"⪭\", n: 65024, o: \"⪭︀\" }], [0, \"⪮\"], [0, { v: \"⪯\", n: 824, o: \"⪯̸\" }], [0, { v: \"⪰\", n: 824, o: \"⪰̸\" }], [2, \"⪳\"], [0, \"⪴\"], [0, \"⪵\"], [0, \"⪶\"], [0, \"⪷\"], [0, \"⪸\"], [0, \"⪹\"], [0, \"⪺\"], [0, \"⪻\"], [0, \"⪼\"], [0, \"⪽\"], [0, \"⪾\"], [0, \"⪿\"], [0, \"⫀\"], [0, \"⫁\"], [0, \"⫂\"], [0, \"⫃\"], [0, \"⫄\"], [0, { v: \"⫅\", n: 824, o: \"⫅̸\" }], [0, { v: \"⫆\", n: 824, o: \"⫆̸\" }], [0, \"⫇\"], [0, \"⫈\"], [2, { v: \"⫋\", n: 65024, o: \"⫋︀\" }], [0, { v: \"⫌\", n: 65024, o: \"⫌︀\" }], [2, \"⫏\"], [0, \"⫐\"], [0, \"⫑\"], [0, \"⫒\"], [0, \"⫓\"], [0, \"⫔\"], [0, \"⫕\"], [0, \"⫖\"], [0, \"⫗\"], [0, \"⫘\"], [0, \"⫙\"], [0, \"⫚\"], [0, \"⫛\"], [8, \"⫤\"], [1, \"⫦\"], [0, \"⫧\"], [0, \"⫨\"], [0, \"⫩\"], [1, \"⫫\"], [0, \"⫬\"], [0, \"⫭\"], [0, \"⫮\"], [0, \"⫯\"], [0, \"⫰\"], [0, \"⫱\"], [0, \"⫲\"], [0, \"⫳\"], [9, { v: \"⫽\", n: 8421, o: \"⫽⃥\" }], [44343, { n: new Map(/* #__PURE__ */ restoreDiff([[56476, \"𝒜\"], [1, \"𝒞\"], [0, \"𝒟\"], [2, \"𝒢\"], [2, \"𝒥\"], [0, \"𝒦\"], [2, \"𝒩\"], [0, \"𝒪\"], [0, \"𝒫\"], [0, \"𝒬\"], [1, \"𝒮\"], [0, \"𝒯\"], [0, \"𝒰\"], [0, \"𝒱\"], [0, \"𝒲\"], [0, \"𝒳\"], [0, \"𝒴\"], [0, \"𝒵\"], [0, \"𝒶\"], [0, \"𝒷\"], [0, \"𝒸\"], [0, \"𝒹\"], [1, \"𝒻\"], [1, \"𝒽\"], [0, \"𝒾\"], [0, \"𝒿\"], [0, \"𝓀\"], [0, \"𝓁\"], [0, \"𝓂\"], [0, \"𝓃\"], [1, \"𝓅\"], [0, \"𝓆\"], [0, \"𝓇\"], [0, \"𝓈\"], [0, \"𝓉\"], [0, \"𝓊\"], [0, \"𝓋\"], [0, \"𝓌\"], [0, \"𝓍\"], [0, \"𝓎\"], [0, \"𝓏\"], [52, \"𝔄\"], [0, \"𝔅\"], [1, \"𝔇\"], [0, \"𝔈\"], [0, \"𝔉\"], [0, \"𝔊\"], [2, \"𝔍\"], [0, \"𝔎\"], [0, \"𝔏\"], [0, \"𝔐\"], [0, \"𝔑\"], [0, \"𝔒\"], [0, \"𝔓\"], [0, \"𝔔\"], [1, \"𝔖\"], [0, \"𝔗\"], [0, \"𝔘\"], [0, \"𝔙\"], [0, \"𝔚\"], [0, \"𝔛\"], [0, \"𝔜\"], [1, \"𝔞\"], [0, \"𝔟\"], [0, \"𝔠\"], [0, \"𝔡\"], [0, \"𝔢\"], [0, \"𝔣\"], [0, \"𝔤\"], [0, \"𝔥\"], [0, \"𝔦\"], [0, \"𝔧\"], [0, \"𝔨\"], [0, \"𝔩\"], [0, \"𝔪\"], [0, \"𝔫\"], [0, \"𝔬\"], [0, \"𝔭\"], [0, \"𝔮\"], [0, \"𝔯\"], [0, \"𝔰\"], [0, \"𝔱\"], [0, \"𝔲\"], [0, \"𝔳\"], [0, \"𝔴\"], [0, \"𝔵\"], [0, \"𝔶\"], [0, \"𝔷\"], [0, \"𝔸\"], [0, \"𝔹\"], [1, \"𝔻\"], [0, \"𝔼\"], [0, \"𝔽\"], [0, \"𝔾\"], [1, \"𝕀\"], [0, \"𝕁\"], [0, \"𝕂\"], [0, \"𝕃\"], [0, \"𝕄\"], [1, \"𝕆\"], [3, \"𝕊\"], [0, \"𝕋\"], [0, \"𝕌\"], [0, \"𝕍\"], [0, \"𝕎\"], [0, \"𝕏\"], [0, \"𝕐\"], [1, \"𝕒\"], [0, \"𝕓\"], [0, \"𝕔\"], [0, \"𝕕\"], [0, \"𝕖\"], [0, \"𝕗\"], [0, \"𝕘\"], [0, \"𝕙\"], [0, \"𝕚\"], [0, \"𝕛\"], [0, \"𝕜\"], [0, \"𝕝\"], [0, \"𝕞\"], [0, \"𝕟\"], [0, \"𝕠\"], [0, \"𝕡\"], [0, \"𝕢\"], [0, \"𝕣\"], [0, \"𝕤\"], [0, \"𝕥\"], [0, \"𝕦\"], [0, \"𝕧\"], [0, \"𝕨\"], [0, \"𝕩\"], [0, \"𝕪\"], [0, \"𝕫\"]])) }], [8906, \"ff\"], [0, \"fi\"], [0, \"fl\"], [0, \"ffi\"], [0, \"ffl\"]]));\n//# sourceMappingURL=encode-html.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.escapeText = exports.escapeAttribute = exports.escapeUTF8 = exports.escape = exports.encodeXML = exports.getCodePoint = exports.xmlReplacer = void 0;\nexports.xmlReplacer = /[\"&'<>$\\x80-\\uFFFF]/g;\nvar xmlCodeMap = new Map([\n [34, \""\"],\n [38, \"&\"],\n [39, \"'\"],\n [60, \"<\"],\n [62, \">\"],\n]);\n// For compatibility with node < 4, we wrap `codePointAt`\nexports.getCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\nString.prototype.codePointAt != null\n ? function (str, index) { return str.codePointAt(index); }\n : // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n function (c, index) {\n return (c.charCodeAt(index) & 0xfc00) === 0xd800\n ? (c.charCodeAt(index) - 0xd800) * 0x400 +\n c.charCodeAt(index + 1) -\n 0xdc00 +\n 0x10000\n : c.charCodeAt(index);\n };\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using XML entities.\n *\n * If a character has no equivalent entity, a\n * numeric hexadecimal reference (eg. `ü`) will be used.\n */\nfunction encodeXML(str) {\n var ret = \"\";\n var lastIdx = 0;\n var match;\n while ((match = exports.xmlReplacer.exec(str)) !== null) {\n var i = match.index;\n var char = str.charCodeAt(i);\n var next = xmlCodeMap.get(char);\n if (next !== undefined) {\n ret += str.substring(lastIdx, i) + next;\n lastIdx = i + 1;\n }\n else {\n ret += \"\".concat(str.substring(lastIdx, i), \"&#x\").concat((0, exports.getCodePoint)(str, i).toString(16), \";\");\n // Increase by 1 if we have a surrogate pair\n lastIdx = exports.xmlReplacer.lastIndex += Number((char & 0xfc00) === 0xd800);\n }\n }\n return ret + str.substr(lastIdx);\n}\nexports.encodeXML = encodeXML;\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using numeric hexadecimal reference (eg. `ü`).\n *\n * Have a look at `escapeUTF8` if you want a more concise output at the expense\n * of reduced transportability.\n *\n * @param data String to escape.\n */\nexports.escape = encodeXML;\n/**\n * Creates a function that escapes all characters matched by the given regular\n * expression using the given map of characters to escape to their entities.\n *\n * @param regex Regular expression to match characters to escape.\n * @param map Map of characters to escape to their entities.\n *\n * @returns Function that escapes all characters matched by the given regular\n * expression using the given map of characters to escape to their entities.\n */\nfunction getEscaper(regex, map) {\n return function escape(data) {\n var match;\n var lastIdx = 0;\n var result = \"\";\n while ((match = regex.exec(data))) {\n if (lastIdx !== match.index) {\n result += data.substring(lastIdx, match.index);\n }\n // We know that this character will be in the map.\n result += map.get(match[0].charCodeAt(0));\n // Every match will be of length 1\n lastIdx = match.index + 1;\n }\n return result + data.substring(lastIdx);\n };\n}\n/**\n * Encodes all characters not valid in XML documents using XML entities.\n *\n * Note that the output will be character-set dependent.\n *\n * @param data String to escape.\n */\nexports.escapeUTF8 = getEscaper(/[&<>'\"]/g, xmlCodeMap);\n/**\n * Encodes all characters that have to be escaped in HTML attributes,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n *\n * @param data String to escape.\n */\nexports.escapeAttribute = getEscaper(/[\"&\\u00A0]/g, new Map([\n [34, \""\"],\n [38, \"&\"],\n [160, \" \"],\n]));\n/**\n * Encodes all characters that have to be escaped in HTML text,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n *\n * @param data String to escape.\n */\nexports.escapeText = getEscaper(/[&<>\\u00A0]/g, new Map([\n [38, \"&\"],\n [60, \"<\"],\n [62, \">\"],\n [160, \" \"],\n]));\n//# sourceMappingURL=escape.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.encodeNonAsciiHTML = exports.encodeHTML = void 0;\nvar encode_html_js_1 = __importDefault(require(\"./generated/encode-html.js\"));\nvar escape_js_1 = require(\"./escape.js\");\nvar htmlReplacer = /[\\t\\n!-,./:-@[-`\\f{-}$\\x80-\\uFFFF]/g;\n/**\n * Encodes all characters in the input using HTML entities. This includes\n * characters that are valid ASCII characters in HTML documents, such as `#`.\n *\n * To get a more compact output, consider using the `encodeNonAsciiHTML`\n * function, which will only encode characters that are not valid in HTML\n * documents, as well as non-ASCII characters.\n *\n * If a character has no equivalent entity, a numeric hexadecimal reference\n * (eg. `ü`) will be used.\n */\nfunction encodeHTML(data) {\n return encodeHTMLTrieRe(htmlReplacer, data);\n}\nexports.encodeHTML = encodeHTML;\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in HTML\n * documents using HTML entities. This function will not encode characters that\n * are valid in HTML documents, such as `#`.\n *\n * If a character has no equivalent entity, a numeric hexadecimal reference\n * (eg. `ü`) will be used.\n */\nfunction encodeNonAsciiHTML(data) {\n return encodeHTMLTrieRe(escape_js_1.xmlReplacer, data);\n}\nexports.encodeNonAsciiHTML = encodeNonAsciiHTML;\nfunction encodeHTMLTrieRe(regExp, str) {\n var ret = \"\";\n var lastIdx = 0;\n var match;\n while ((match = regExp.exec(str)) !== null) {\n var i = match.index;\n ret += str.substring(lastIdx, i);\n var char = str.charCodeAt(i);\n var next = encode_html_js_1.default.get(char);\n if (typeof next === \"object\") {\n // We are in a branch. Try to match the next char.\n if (i + 1 < str.length) {\n var nextChar = str.charCodeAt(i + 1);\n var value = typeof next.n === \"number\"\n ? next.n === nextChar\n ? next.o\n : undefined\n : next.n.get(nextChar);\n if (value !== undefined) {\n ret += value;\n lastIdx = regExp.lastIndex += 1;\n continue;\n }\n }\n next = next.v;\n }\n // We might have a tree node without a value; skip and use a numeric entity.\n if (next !== undefined) {\n ret += next;\n lastIdx = i + 1;\n }\n else {\n var cp = (0, escape_js_1.getCodePoint)(str, i);\n ret += \"&#x\".concat(cp.toString(16), \";\");\n // Increase by 1 if we have a surrogate pair\n lastIdx = regExp.lastIndex += Number(cp !== char);\n }\n }\n return ret + str.substr(lastIdx);\n}\n//# sourceMappingURL=encode.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decodeXMLStrict = exports.decodeHTML5Strict = exports.decodeHTML4Strict = exports.decodeHTML5 = exports.decodeHTML4 = exports.decodeHTMLAttribute = exports.decodeHTMLStrict = exports.decodeHTML = exports.decodeXML = exports.DecodingMode = exports.EntityDecoder = exports.encodeHTML5 = exports.encodeHTML4 = exports.encodeNonAsciiHTML = exports.encodeHTML = exports.escapeText = exports.escapeAttribute = exports.escapeUTF8 = exports.escape = exports.encodeXML = exports.encode = exports.decodeStrict = exports.decode = exports.EncodingMode = exports.EntityLevel = void 0;\nvar decode_js_1 = require(\"./decode.js\");\nvar encode_js_1 = require(\"./encode.js\");\nvar escape_js_1 = require(\"./escape.js\");\n/** The level of entities to support. */\nvar EntityLevel;\n(function (EntityLevel) {\n /** Support only XML entities. */\n EntityLevel[EntityLevel[\"XML\"] = 0] = \"XML\";\n /** Support HTML entities, which are a superset of XML entities. */\n EntityLevel[EntityLevel[\"HTML\"] = 1] = \"HTML\";\n})(EntityLevel = exports.EntityLevel || (exports.EntityLevel = {}));\nvar EncodingMode;\n(function (EncodingMode) {\n /**\n * The output is UTF-8 encoded. Only characters that need escaping within\n * XML will be escaped.\n */\n EncodingMode[EncodingMode[\"UTF8\"] = 0] = \"UTF8\";\n /**\n * The output consists only of ASCII characters. Characters that need\n * escaping within HTML, and characters that aren't ASCII characters will\n * be escaped.\n */\n EncodingMode[EncodingMode[\"ASCII\"] = 1] = \"ASCII\";\n /**\n * Encode all characters that have an equivalent entity, as well as all\n * characters that are not ASCII characters.\n */\n EncodingMode[EncodingMode[\"Extensive\"] = 2] = \"Extensive\";\n /**\n * Encode all characters that have to be escaped in HTML attributes,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n */\n EncodingMode[EncodingMode[\"Attribute\"] = 3] = \"Attribute\";\n /**\n * Encode all characters that have to be escaped in HTML text,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n */\n EncodingMode[EncodingMode[\"Text\"] = 4] = \"Text\";\n})(EncodingMode = exports.EncodingMode || (exports.EncodingMode = {}));\n/**\n * Decodes a string with entities.\n *\n * @param data String to decode.\n * @param options Decoding options.\n */\nfunction decode(data, options) {\n if (options === void 0) { options = EntityLevel.XML; }\n var level = typeof options === \"number\" ? options : options.level;\n if (level === EntityLevel.HTML) {\n var mode = typeof options === \"object\" ? options.mode : undefined;\n return (0, decode_js_1.decodeHTML)(data, mode);\n }\n return (0, decode_js_1.decodeXML)(data);\n}\nexports.decode = decode;\n/**\n * Decodes a string with entities. Does not allow missing trailing semicolons for entities.\n *\n * @param data String to decode.\n * @param options Decoding options.\n * @deprecated Use `decode` with the `mode` set to `Strict`.\n */\nfunction decodeStrict(data, options) {\n var _a;\n if (options === void 0) { options = EntityLevel.XML; }\n var opts = typeof options === \"number\" ? { level: options } : options;\n (_a = opts.mode) !== null && _a !== void 0 ? _a : (opts.mode = decode_js_1.DecodingMode.Strict);\n return decode(data, opts);\n}\nexports.decodeStrict = decodeStrict;\n/**\n * Encodes a string with entities.\n *\n * @param data String to encode.\n * @param options Encoding options.\n */\nfunction encode(data, options) {\n if (options === void 0) { options = EntityLevel.XML; }\n var opts = typeof options === \"number\" ? { level: options } : options;\n // Mode `UTF8` just escapes XML entities\n if (opts.mode === EncodingMode.UTF8)\n return (0, escape_js_1.escapeUTF8)(data);\n if (opts.mode === EncodingMode.Attribute)\n return (0, escape_js_1.escapeAttribute)(data);\n if (opts.mode === EncodingMode.Text)\n return (0, escape_js_1.escapeText)(data);\n if (opts.level === EntityLevel.HTML) {\n if (opts.mode === EncodingMode.ASCII) {\n return (0, encode_js_1.encodeNonAsciiHTML)(data);\n }\n return (0, encode_js_1.encodeHTML)(data);\n }\n // ASCII and Extensive are equivalent\n return (0, escape_js_1.encodeXML)(data);\n}\nexports.encode = encode;\nvar escape_js_2 = require(\"./escape.js\");\nObject.defineProperty(exports, \"encodeXML\", { enumerable: true, get: function () { return escape_js_2.encodeXML; } });\nObject.defineProperty(exports, \"escape\", { enumerable: true, get: function () { return escape_js_2.escape; } });\nObject.defineProperty(exports, \"escapeUTF8\", { enumerable: true, get: function () { return escape_js_2.escapeUTF8; } });\nObject.defineProperty(exports, \"escapeAttribute\", { enumerable: true, get: function () { return escape_js_2.escapeAttribute; } });\nObject.defineProperty(exports, \"escapeText\", { enumerable: true, get: function () { return escape_js_2.escapeText; } });\nvar encode_js_2 = require(\"./encode.js\");\nObject.defineProperty(exports, \"encodeHTML\", { enumerable: true, get: function () { return encode_js_2.encodeHTML; } });\nObject.defineProperty(exports, \"encodeNonAsciiHTML\", { enumerable: true, get: function () { return encode_js_2.encodeNonAsciiHTML; } });\n// Legacy aliases (deprecated)\nObject.defineProperty(exports, \"encodeHTML4\", { enumerable: true, get: function () { return encode_js_2.encodeHTML; } });\nObject.defineProperty(exports, \"encodeHTML5\", { enumerable: true, get: function () { return encode_js_2.encodeHTML; } });\nvar decode_js_2 = require(\"./decode.js\");\nObject.defineProperty(exports, \"EntityDecoder\", { enumerable: true, get: function () { return decode_js_2.EntityDecoder; } });\nObject.defineProperty(exports, \"DecodingMode\", { enumerable: true, get: function () { return decode_js_2.DecodingMode; } });\nObject.defineProperty(exports, \"decodeXML\", { enumerable: true, get: function () { return decode_js_2.decodeXML; } });\nObject.defineProperty(exports, \"decodeHTML\", { enumerable: true, get: function () { return decode_js_2.decodeHTML; } });\nObject.defineProperty(exports, \"decodeHTMLStrict\", { enumerable: true, get: function () { return decode_js_2.decodeHTMLStrict; } });\nObject.defineProperty(exports, \"decodeHTMLAttribute\", { enumerable: true, get: function () { return decode_js_2.decodeHTMLAttribute; } });\n// Legacy aliases (deprecated)\nObject.defineProperty(exports, \"decodeHTML4\", { enumerable: true, get: function () { return decode_js_2.decodeHTML; } });\nObject.defineProperty(exports, \"decodeHTML5\", { enumerable: true, get: function () { return decode_js_2.decodeHTML; } });\nObject.defineProperty(exports, \"decodeHTML4Strict\", { enumerable: true, get: function () { return decode_js_2.decodeHTMLStrict; } });\nObject.defineProperty(exports, \"decodeHTML5Strict\", { enumerable: true, get: function () { return decode_js_2.decodeHTMLStrict; } });\nObject.defineProperty(exports, \"decodeXMLStrict\", { enumerable: true, get: function () { return decode_js_2.decodeXML; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.attributeNames = exports.elementNames = void 0;\nexports.elementNames = new Map([\n \"altGlyph\",\n \"altGlyphDef\",\n \"altGlyphItem\",\n \"animateColor\",\n \"animateMotion\",\n \"animateTransform\",\n \"clipPath\",\n \"feBlend\",\n \"feColorMatrix\",\n \"feComponentTransfer\",\n \"feComposite\",\n \"feConvolveMatrix\",\n \"feDiffuseLighting\",\n \"feDisplacementMap\",\n \"feDistantLight\",\n \"feDropShadow\",\n \"feFlood\",\n \"feFuncA\",\n \"feFuncB\",\n \"feFuncG\",\n \"feFuncR\",\n \"feGaussianBlur\",\n \"feImage\",\n \"feMerge\",\n \"feMergeNode\",\n \"feMorphology\",\n \"feOffset\",\n \"fePointLight\",\n \"feSpecularLighting\",\n \"feSpotLight\",\n \"feTile\",\n \"feTurbulence\",\n \"foreignObject\",\n \"glyphRef\",\n \"linearGradient\",\n \"radialGradient\",\n \"textPath\",\n].map(function (val) { return [val.toLowerCase(), val]; }));\nexports.attributeNames = new Map([\n \"definitionURL\",\n \"attributeName\",\n \"attributeType\",\n \"baseFrequency\",\n \"baseProfile\",\n \"calcMode\",\n \"clipPathUnits\",\n \"diffuseConstant\",\n \"edgeMode\",\n \"filterUnits\",\n \"glyphRef\",\n \"gradientTransform\",\n \"gradientUnits\",\n \"kernelMatrix\",\n \"kernelUnitLength\",\n \"keyPoints\",\n \"keySplines\",\n \"keyTimes\",\n \"lengthAdjust\",\n \"limitingConeAngle\",\n \"markerHeight\",\n \"markerUnits\",\n \"markerWidth\",\n \"maskContentUnits\",\n \"maskUnits\",\n \"numOctaves\",\n \"pathLength\",\n \"patternContentUnits\",\n \"patternTransform\",\n \"patternUnits\",\n \"pointsAtX\",\n \"pointsAtY\",\n \"pointsAtZ\",\n \"preserveAlpha\",\n \"preserveAspectRatio\",\n \"primitiveUnits\",\n \"refX\",\n \"refY\",\n \"repeatCount\",\n \"repeatDur\",\n \"requiredExtensions\",\n \"requiredFeatures\",\n \"specularConstant\",\n \"specularExponent\",\n \"spreadMethod\",\n \"startOffset\",\n \"stdDeviation\",\n \"stitchTiles\",\n \"surfaceScale\",\n \"systemLanguage\",\n \"tableValues\",\n \"targetX\",\n \"targetY\",\n \"textLength\",\n \"viewBox\",\n \"viewTarget\",\n \"xChannelSelector\",\n \"yChannelSelector\",\n \"zoomAndPan\",\n].map(function (val) { return [val.toLowerCase(), val]; }));\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.render = void 0;\n/*\n * Module dependencies\n */\nvar ElementType = __importStar(require(\"domelementtype\"));\nvar entities_1 = require(\"entities\");\n/**\n * Mixed-case SVG and MathML tags & attributes\n * recognized by the HTML parser.\n *\n * @see https://html.spec.whatwg.org/multipage/parsing.html#parsing-main-inforeign\n */\nvar foreignNames_js_1 = require(\"./foreignNames.js\");\nvar unencodedElements = new Set([\n \"style\",\n \"script\",\n \"xmp\",\n \"iframe\",\n \"noembed\",\n \"noframes\",\n \"plaintext\",\n \"noscript\",\n]);\nfunction replaceQuotes(value) {\n return value.replace(/\"/g, \""\");\n}\n/**\n * Format attributes\n */\nfunction formatAttributes(attributes, opts) {\n var _a;\n if (!attributes)\n return;\n var encode = ((_a = opts.encodeEntities) !== null && _a !== void 0 ? _a : opts.decodeEntities) === false\n ? replaceQuotes\n : opts.xmlMode || opts.encodeEntities !== \"utf8\"\n ? entities_1.encodeXML\n : entities_1.escapeAttribute;\n return Object.keys(attributes)\n .map(function (key) {\n var _a, _b;\n var value = (_a = attributes[key]) !== null && _a !== void 0 ? _a : \"\";\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case attribute names */\n key = (_b = foreignNames_js_1.attributeNames.get(key)) !== null && _b !== void 0 ? _b : key;\n }\n if (!opts.emptyAttrs && !opts.xmlMode && value === \"\") {\n return key;\n }\n return \"\".concat(key, \"=\\\"\").concat(encode(value), \"\\\"\");\n })\n .join(\" \");\n}\n/**\n * Self-enclosing tags\n */\nvar singleTag = 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]);\n/**\n * Renders a DOM node or an array of DOM nodes to a string.\n *\n * Can be thought of as the equivalent of the `outerHTML` of the passed node(s).\n *\n * @param node Node to be rendered.\n * @param options Changes serialization behavior\n */\nfunction render(node, options) {\n if (options === void 0) { options = {}; }\n var nodes = \"length\" in node ? node : [node];\n var output = \"\";\n for (var i = 0; i < nodes.length; i++) {\n output += renderNode(nodes[i], options);\n }\n return output;\n}\nexports.render = render;\nexports.default = render;\nfunction renderNode(node, options) {\n switch (node.type) {\n case ElementType.Root:\n return render(node.children, options);\n // @ts-expect-error We don't use `Doctype` yet\n case ElementType.Doctype:\n case ElementType.Directive:\n return renderDirective(node);\n case ElementType.Comment:\n return renderComment(node);\n case ElementType.CDATA:\n return renderCdata(node);\n case ElementType.Script:\n case ElementType.Style:\n case ElementType.Tag:\n return renderTag(node, options);\n case ElementType.Text:\n return renderText(node, options);\n }\n}\nvar foreignModeIntegrationPoints = new Set([\n \"mi\",\n \"mo\",\n \"mn\",\n \"ms\",\n \"mtext\",\n \"annotation-xml\",\n \"foreignObject\",\n \"desc\",\n \"title\",\n]);\nvar foreignElements = new Set([\"svg\", \"math\"]);\nfunction renderTag(elem, opts) {\n var _a;\n // Handle SVG / MathML in HTML\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case element names */\n elem.name = (_a = foreignNames_js_1.elementNames.get(elem.name)) !== null && _a !== void 0 ? _a : elem.name;\n /* Exit foreign mode at integration points */\n if (elem.parent &&\n foreignModeIntegrationPoints.has(elem.parent.name)) {\n opts = __assign(__assign({}, opts), { xmlMode: false });\n }\n }\n if (!opts.xmlMode && foreignElements.has(elem.name)) {\n opts = __assign(__assign({}, opts), { xmlMode: \"foreign\" });\n }\n var tag = \"<\".concat(elem.name);\n var attribs = formatAttributes(elem.attribs, opts);\n if (attribs) {\n tag += \" \".concat(attribs);\n }\n if (elem.children.length === 0 &&\n (opts.xmlMode\n ? // In XML mode or foreign mode, and user hasn't explicitly turned off self-closing tags\n opts.selfClosingTags !== false\n : // User explicitly asked for self-closing tags, even in HTML mode\n opts.selfClosingTags && singleTag.has(elem.name))) {\n if (!opts.xmlMode)\n tag += \" \";\n tag += \"/>\";\n }\n else {\n tag += \">\";\n if (elem.children.length > 0) {\n tag += render(elem.children, opts);\n }\n if (opts.xmlMode || !singleTag.has(elem.name)) {\n tag += \"</\".concat(elem.name, \">\");\n }\n }\n return tag;\n}\nfunction renderDirective(elem) {\n return \"<\".concat(elem.data, \">\");\n}\nfunction renderText(elem, opts) {\n var _a;\n var data = elem.data || \"\";\n // If entities weren't decoded, no need to encode them back\n if (((_a = opts.encodeEntities) !== null && _a !== void 0 ? _a : opts.decodeEntities) !== false &&\n !(!opts.xmlMode &&\n elem.parent &&\n unencodedElements.has(elem.parent.name))) {\n data =\n opts.xmlMode || opts.encodeEntities !== \"utf8\"\n ? (0, entities_1.encodeXML)(data)\n : (0, entities_1.escapeText)(data);\n }\n return data;\n}\nfunction renderCdata(elem) {\n return \"<![CDATA[\".concat(elem.children[0].data, \"]]>\");\n}\nfunction renderComment(elem) {\n return \"<!--\".concat(elem.data, \"-->\");\n}\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOuterHTML = getOuterHTML;\nexports.getInnerHTML = getInnerHTML;\nexports.getText = getText;\nexports.textContent = textContent;\nexports.innerText = innerText;\nvar domhandler_1 = require(\"domhandler\");\nvar dom_serializer_1 = __importDefault(require(\"dom-serializer\"));\nvar domelementtype_1 = require(\"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 */\nfunction getOuterHTML(node, options) {\n return (0, dom_serializer_1.default)(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 */\nfunction getInnerHTML(node, options) {\n return (0, domhandler_1.hasChildren)(node)\n ? node.children.map(function (node) { return 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 */\nfunction getText(node) {\n if (Array.isArray(node))\n return node.map(getText).join(\"\");\n if ((0, domhandler_1.isTag)(node))\n return node.name === \"br\" ? \"\\n\" : getText(node.children);\n if ((0, domhandler_1.isCDATA)(node))\n return getText(node.children);\n if ((0, domhandler_1.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 */\nfunction textContent(node) {\n if (Array.isArray(node))\n return node.map(textContent).join(\"\");\n if ((0, domhandler_1.hasChildren)(node) && !(0, domhandler_1.isComment)(node)) {\n return textContent(node.children);\n }\n if ((0, domhandler_1.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 */\nfunction innerText(node) {\n if (Array.isArray(node))\n return node.map(innerText).join(\"\");\n if ((0, domhandler_1.hasChildren)(node) && (node.type === domelementtype_1.ElementType.Tag || (0, domhandler_1.isCDATA)(node))) {\n return innerText(node.children);\n }\n if ((0, domhandler_1.isText)(node))\n return node.data;\n return \"\";\n}\n//# sourceMappingURL=stringify.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getChildren = getChildren;\nexports.getParent = getParent;\nexports.getSiblings = getSiblings;\nexports.getAttributeValue = getAttributeValue;\nexports.hasAttrib = hasAttrib;\nexports.getName = getName;\nexports.nextElementSibling = nextElementSibling;\nexports.prevElementSibling = prevElementSibling;\nvar domhandler_1 = require(\"domhandler\");\n/**\n * Get a node's children.\n *\n * @category Traversal\n * @param elem Node to get the children of.\n * @returns `elem`'s children, or an empty array.\n */\nfunction getChildren(elem) {\n return (0, domhandler_1.hasChildren)(elem) ? elem.children : [];\n}\n/**\n * Get a node's parent.\n *\n * @category Traversal\n * @param elem Node to get the parent of.\n * @returns `elem`'s parent node, or `null` if `elem` is a root node.\n */\nfunction getParent(elem) {\n return elem.parent || null;\n}\n/**\n * Gets an elements siblings, including the element itself.\n *\n * Attempts to get the children through the element's parent first. If we don't\n * have a parent (the element is a root node), we walk the element's `prev` &\n * `next` to get all remaining nodes.\n *\n * @category Traversal\n * @param elem Element to get the siblings of.\n * @returns `elem`'s siblings, including `elem`.\n */\nfunction getSiblings(elem) {\n var _a, _b;\n var parent = getParent(elem);\n if (parent != null)\n return getChildren(parent);\n var siblings = [elem];\n var prev = elem.prev, next = elem.next;\n while (prev != null) {\n siblings.unshift(prev);\n (_a = prev, prev = _a.prev);\n }\n while (next != null) {\n siblings.push(next);\n (_b = next, next = _b.next);\n }\n return siblings;\n}\n/**\n * Gets an attribute from an element.\n *\n * @category Traversal\n * @param elem Element to check.\n * @param name Attribute name to retrieve.\n * @returns The element's attribute value, or `undefined`.\n */\nfunction getAttributeValue(elem, name) {\n var _a;\n return (_a = elem.attribs) === null || _a === void 0 ? void 0 : _a[name];\n}\n/**\n * Checks whether an element has an attribute.\n *\n * @category Traversal\n * @param elem Element to check.\n * @param name Attribute name to look for.\n * @returns Returns whether `elem` has the attribute `name`.\n */\nfunction hasAttrib(elem, name) {\n return (elem.attribs != null &&\n Object.prototype.hasOwnProperty.call(elem.attribs, name) &&\n elem.attribs[name] != null);\n}\n/**\n * Get the tag name of an element.\n *\n * @category Traversal\n * @param elem The element to get the name for.\n * @returns The tag name of `elem`.\n */\nfunction getName(elem) {\n return elem.name;\n}\n/**\n * Returns the next element sibling of a node.\n *\n * @category Traversal\n * @param elem The element to get the next sibling of.\n * @returns `elem`'s next sibling that is a tag, or `null` if there is no next\n * sibling.\n */\nfunction nextElementSibling(elem) {\n var _a;\n var next = elem.next;\n while (next !== null && !(0, domhandler_1.isTag)(next))\n (_a = next, next = _a.next);\n return next;\n}\n/**\n * Returns the previous element sibling of a node.\n *\n * @category Traversal\n * @param elem The element to get the previous sibling of.\n * @returns `elem`'s previous sibling that is a tag, or `null` if there is no\n * previous sibling.\n */\nfunction prevElementSibling(elem) {\n var _a;\n var prev = elem.prev;\n while (prev !== null && !(0, domhandler_1.isTag)(prev))\n (_a = prev, prev = _a.prev);\n return prev;\n}\n//# sourceMappingURL=traversal.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.removeElement = removeElement;\nexports.replaceElement = replaceElement;\nexports.appendChild = appendChild;\nexports.append = append;\nexports.prependChild = prependChild;\nexports.prepend = prepend;\n/**\n * Remove an element from the dom\n *\n * @category Manipulation\n * @param elem The element to be removed\n */\nfunction removeElement(elem) {\n if (elem.prev)\n elem.prev.next = elem.next;\n if (elem.next)\n elem.next.prev = elem.prev;\n if (elem.parent) {\n var childs = elem.parent.children;\n var childsIndex = childs.lastIndexOf(elem);\n if (childsIndex >= 0) {\n childs.splice(childsIndex, 1);\n }\n }\n elem.next = null;\n elem.prev = null;\n elem.parent = null;\n}\n/**\n * Replace an element in the dom\n *\n * @category Manipulation\n * @param elem The element to be replaced\n * @param replacement The element to be added\n */\nfunction replaceElement(elem, replacement) {\n var prev = (replacement.prev = elem.prev);\n if (prev) {\n prev.next = replacement;\n }\n var next = (replacement.next = elem.next);\n if (next) {\n next.prev = replacement;\n }\n var parent = (replacement.parent = elem.parent);\n if (parent) {\n var childs = parent.children;\n childs[childs.lastIndexOf(elem)] = replacement;\n elem.parent = null;\n }\n}\n/**\n * Append a child to an element.\n *\n * @category Manipulation\n * @param parent The element to append to.\n * @param child The element to be added as a child.\n */\nfunction appendChild(parent, child) {\n removeElement(child);\n child.next = null;\n child.parent = parent;\n if (parent.children.push(child) > 1) {\n var sibling = parent.children[parent.children.length - 2];\n sibling.next = child;\n child.prev = sibling;\n }\n else {\n child.prev = null;\n }\n}\n/**\n * Append an element after another.\n *\n * @category Manipulation\n * @param elem The element to append after.\n * @param next The element be added.\n */\nfunction append(elem, next) {\n removeElement(next);\n var parent = elem.parent;\n var currNext = elem.next;\n next.next = currNext;\n next.prev = elem;\n elem.next = next;\n next.parent = parent;\n if (currNext) {\n currNext.prev = next;\n if (parent) {\n var childs = parent.children;\n childs.splice(childs.lastIndexOf(currNext), 0, next);\n }\n }\n else if (parent) {\n parent.children.push(next);\n }\n}\n/**\n * Prepend a child to an element.\n *\n * @category Manipulation\n * @param parent The element to prepend before.\n * @param child The element to be added as a child.\n */\nfunction prependChild(parent, child) {\n removeElement(child);\n child.parent = parent;\n child.prev = null;\n if (parent.children.unshift(child) !== 1) {\n var sibling = parent.children[1];\n sibling.prev = child;\n child.next = sibling;\n }\n else {\n child.next = null;\n }\n}\n/**\n * Prepend an element before another.\n *\n * @category Manipulation\n * @param elem The element to prepend before.\n * @param prev The element be added.\n */\nfunction prepend(elem, prev) {\n removeElement(prev);\n var parent = elem.parent;\n if (parent) {\n var childs = parent.children;\n childs.splice(childs.indexOf(elem), 0, prev);\n }\n if (elem.prev) {\n elem.prev.next = prev;\n }\n prev.parent = parent;\n prev.prev = elem.prev;\n prev.next = elem;\n elem.prev = prev;\n}\n//# sourceMappingURL=manipulation.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.filter = filter;\nexports.find = find;\nexports.findOneChild = findOneChild;\nexports.findOne = findOne;\nexports.existsOne = existsOne;\nexports.findAll = findAll;\nvar domhandler_1 = require(\"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 */\nfunction filter(test, node, recurse, limit) {\n if (recurse === void 0) { recurse = true; }\n if (limit === void 0) { 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 */\nfunction find(test, nodes, recurse, limit) {\n var result = [];\n /** Stack of the arrays we are looking at. */\n var nodeStack = [Array.isArray(nodes) ? nodes : [nodes]];\n /** Stack of the indices within the arrays. */\n var 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 var elem = nodeStack[0][indexStack[0]++];\n if (test(elem)) {\n result.push(elem);\n if (--limit <= 0)\n return result;\n }\n if (recurse && (0, domhandler_1.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 */\nfunction 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 */\nfunction findOne(test, nodes, recurse) {\n if (recurse === void 0) { recurse = true; }\n var searchedNodes = Array.isArray(nodes) ? nodes : [nodes];\n for (var i = 0; i < searchedNodes.length; i++) {\n var node = searchedNodes[i];\n if ((0, domhandler_1.isTag)(node) && test(node)) {\n return node;\n }\n if (recurse && (0, domhandler_1.hasChildren)(node) && node.children.length > 0) {\n var 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 */\nfunction existsOne(test, nodes) {\n return (Array.isArray(nodes) ? nodes : [nodes]).some(function (node) {\n return ((0, domhandler_1.isTag)(node) && test(node)) ||\n ((0, domhandler_1.hasChildren)(node) && existsOne(test, node.children));\n });\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 */\nfunction findAll(test, nodes) {\n var result = [];\n var nodeStack = [Array.isArray(nodes) ? nodes : [nodes]];\n var 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 var elem = nodeStack[0][indexStack[0]++];\n if ((0, domhandler_1.isTag)(elem) && test(elem))\n result.push(elem);\n if ((0, domhandler_1.hasChildren)(elem) && elem.children.length > 0) {\n indexStack.unshift(0);\n nodeStack.unshift(elem.children);\n }\n }\n}\n//# sourceMappingURL=querying.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.testElement = testElement;\nexports.getElements = getElements;\nexports.getElementById = getElementById;\nexports.getElementsByTagName = getElementsByTagName;\nexports.getElementsByClassName = getElementsByClassName;\nexports.getElementsByTagType = getElementsByTagType;\nvar domhandler_1 = require(\"domhandler\");\nvar querying_js_1 = require(\"./querying.js\");\n/**\n * A map of functions to check nodes against.\n */\nvar Checks = {\n tag_name: function (name) {\n if (typeof name === \"function\") {\n return function (elem) { return (0, domhandler_1.isTag)(elem) && name(elem.name); };\n }\n else if (name === \"*\") {\n return domhandler_1.isTag;\n }\n return function (elem) { return (0, domhandler_1.isTag)(elem) && elem.name === name; };\n },\n tag_type: function (type) {\n if (typeof type === \"function\") {\n return function (elem) { return type(elem.type); };\n }\n return function (elem) { return elem.type === type; };\n },\n tag_contains: function (data) {\n if (typeof data === \"function\") {\n return function (elem) { return (0, domhandler_1.isText)(elem) && data(elem.data); };\n }\n return function (elem) { return (0, domhandler_1.isText)(elem) && elem.data === data; };\n },\n};\n/**\n * Returns a function to check whether a node has an attribute with a particular\n * value.\n *\n * @param attrib Attribute to check.\n * @param value Attribute value to look for.\n * @returns A function to check whether the a node has an attribute with a\n * particular value.\n */\nfunction getAttribCheck(attrib, value) {\n if (typeof value === \"function\") {\n return function (elem) { return (0, domhandler_1.isTag)(elem) && value(elem.attribs[attrib]); };\n }\n return function (elem) { return (0, domhandler_1.isTag)(elem) && elem.attribs[attrib] === value; };\n}\n/**\n * Returns a function that returns `true` if either of the input functions\n * returns `true` for a node.\n *\n * @param a First function to combine.\n * @param b Second function to combine.\n * @returns A function taking a node and returning `true` if either of the input\n * functions returns `true` for the node.\n */\nfunction combineFuncs(a, b) {\n return function (elem) { return a(elem) || b(elem); };\n}\n/**\n * Returns a function that executes all checks in `options` and returns `true`\n * if any of them match a node.\n *\n * @param options An object describing nodes to look for.\n * @returns A function that executes all checks in `options` and returns `true`\n * if any of them match a node.\n */\nfunction compileTest(options) {\n var funcs = Object.keys(options).map(function (key) {\n var value = options[key];\n return Object.prototype.hasOwnProperty.call(Checks, key)\n ? Checks[key](value)\n : getAttribCheck(key, value);\n });\n return funcs.length === 0 ? null : funcs.reduce(combineFuncs);\n}\n/**\n * Checks whether a node matches the description in `options`.\n *\n * @category Legacy Query Functions\n * @param options An object describing nodes to look for.\n * @param node The element to test.\n * @returns Whether the element matches the description in `options`.\n */\nfunction testElement(options, node) {\n var test = compileTest(options);\n return test ? test(node) : true;\n}\n/**\n * Returns all nodes that match `options`.\n *\n * @category Legacy Query Functions\n * @param options An object describing nodes to look for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes that match `options`.\n */\nfunction getElements(options, nodes, recurse, limit) {\n if (limit === void 0) { limit = Infinity; }\n var test = compileTest(options);\n return test ? (0, querying_js_1.filter)(test, nodes, recurse, limit) : [];\n}\n/**\n * Returns the node with the supplied ID.\n *\n * @category Legacy Query Functions\n * @param id The unique ID attribute value to look for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @returns The node with the supplied ID.\n */\nfunction getElementById(id, nodes, recurse) {\n if (recurse === void 0) { recurse = true; }\n if (!Array.isArray(nodes))\n nodes = [nodes];\n return (0, querying_js_1.findOne)(getAttribCheck(\"id\", id), nodes, recurse);\n}\n/**\n * Returns all nodes with the supplied `tagName`.\n *\n * @category Legacy Query Functions\n * @param tagName Tag name to search for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes with the supplied `tagName`.\n */\nfunction getElementsByTagName(tagName, nodes, recurse, limit) {\n if (recurse === void 0) { recurse = true; }\n if (limit === void 0) { limit = Infinity; }\n return (0, querying_js_1.filter)(Checks[\"tag_name\"](tagName), nodes, recurse, limit);\n}\n/**\n * Returns all nodes with the supplied `className`.\n *\n * @category Legacy Query Functions\n * @param className Class name to search for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes with the supplied `className`.\n */\nfunction getElementsByClassName(className, nodes, recurse, limit) {\n if (recurse === void 0) { recurse = true; }\n if (limit === void 0) { limit = Infinity; }\n return (0, querying_js_1.filter)(getAttribCheck(\"class\", className), nodes, recurse, limit);\n}\n/**\n * Returns all nodes with the supplied `type`.\n *\n * @category Legacy Query Functions\n * @param type Element type to look for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes with the supplied `type`.\n */\nfunction getElementsByTagType(type, nodes, recurse, limit) {\n if (recurse === void 0) { recurse = true; }\n if (limit === void 0) { limit = Infinity; }\n return (0, querying_js_1.filter)(Checks[\"tag_type\"](type), nodes, recurse, limit);\n}\n//# sourceMappingURL=legacy.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DocumentPosition = void 0;\nexports.removeSubsets = removeSubsets;\nexports.compareDocumentPosition = compareDocumentPosition;\nexports.uniqueSort = uniqueSort;\nvar domhandler_1 = require(\"domhandler\");\n/**\n * Given an array of nodes, remove any member that is contained by another\n * member.\n *\n * @category Helpers\n * @param nodes Nodes to filter.\n * @returns Remaining nodes that aren't contained by other nodes.\n */\nfunction removeSubsets(nodes) {\n var idx = nodes.length;\n /*\n * Check if each node (or one of its ancestors) is already contained in the\n * array.\n */\n while (--idx >= 0) {\n var node = nodes[idx];\n /*\n * Remove the node if it is not unique.\n * We are going through the array from the end, so we only\n * have to check nodes that preceed the node under consideration in the array.\n */\n if (idx > 0 && nodes.lastIndexOf(node, idx - 1) >= 0) {\n nodes.splice(idx, 1);\n continue;\n }\n for (var ancestor = node.parent; ancestor; ancestor = ancestor.parent) {\n if (nodes.includes(ancestor)) {\n nodes.splice(idx, 1);\n break;\n }\n }\n }\n return nodes;\n}\n/**\n * @category Helpers\n * @see {@link http://dom.spec.whatwg.org/#dom-node-comparedocumentposition}\n */\nvar DocumentPosition;\n(function (DocumentPosition) {\n DocumentPosition[DocumentPosition[\"DISCONNECTED\"] = 1] = \"DISCONNECTED\";\n DocumentPosition[DocumentPosition[\"PRECEDING\"] = 2] = \"PRECEDING\";\n DocumentPosition[DocumentPosition[\"FOLLOWING\"] = 4] = \"FOLLOWING\";\n DocumentPosition[DocumentPosition[\"CONTAINS\"] = 8] = \"CONTAINS\";\n DocumentPosition[DocumentPosition[\"CONTAINED_BY\"] = 16] = \"CONTAINED_BY\";\n})(DocumentPosition || (exports.DocumentPosition = DocumentPosition = {}));\n/**\n * Compare the position of one node against another node in any other document,\n * returning a bitmask with the values from {@link DocumentPosition}.\n *\n * Document order:\n * > There is an ordering, document order, defined on all the nodes in the\n * > document corresponding to the order in which the first character of the\n * > XML representation of each node occurs in the XML representation of the\n * > document after expansion of general entities. Thus, the document element\n * > node will be the first node. Element nodes occur before their children.\n * > Thus, document order orders element nodes in order of the occurrence of\n * > their start-tag in the XML (after expansion of entities). The attribute\n * > nodes of an element occur after the element and before its children. The\n * > relative order of attribute nodes is implementation-dependent.\n *\n * Source:\n * http://www.w3.org/TR/DOM-Level-3-Core/glossary.html#dt-document-order\n *\n * @category Helpers\n * @param nodeA The first node to use in the comparison\n * @param nodeB The second node to use in the comparison\n * @returns A bitmask describing the input nodes' relative position.\n *\n * See http://dom.spec.whatwg.org/#dom-node-comparedocumentposition for\n * a description of these values.\n */\nfunction compareDocumentPosition(nodeA, nodeB) {\n var aParents = [];\n var bParents = [];\n if (nodeA === nodeB) {\n return 0;\n }\n var current = (0, domhandler_1.hasChildren)(nodeA) ? nodeA : nodeA.parent;\n while (current) {\n aParents.unshift(current);\n current = current.parent;\n }\n current = (0, domhandler_1.hasChildren)(nodeB) ? nodeB : nodeB.parent;\n while (current) {\n bParents.unshift(current);\n current = current.parent;\n }\n var maxIdx = Math.min(aParents.length, bParents.length);\n var idx = 0;\n while (idx < maxIdx && aParents[idx] === bParents[idx]) {\n idx++;\n }\n if (idx === 0) {\n return DocumentPosition.DISCONNECTED;\n }\n var sharedParent = aParents[idx - 1];\n var siblings = sharedParent.children;\n var aSibling = aParents[idx];\n var bSibling = bParents[idx];\n if (siblings.indexOf(aSibling) > siblings.indexOf(bSibling)) {\n if (sharedParent === nodeB) {\n return DocumentPosition.FOLLOWING | DocumentPosition.CONTAINED_BY;\n }\n return DocumentPosition.FOLLOWING;\n }\n if (sharedParent === nodeA) {\n return DocumentPosition.PRECEDING | DocumentPosition.CONTAINS;\n }\n return DocumentPosition.PRECEDING;\n}\n/**\n * Sort an array of nodes based on their relative position in the document,\n * removing any duplicate nodes. If the array contains nodes that do not belong\n * to the same document, sort order is unspecified.\n *\n * @category Helpers\n * @param nodes Array of DOM nodes.\n * @returns Collection of unique nodes, sorted in document order.\n */\nfunction uniqueSort(nodes) {\n nodes = nodes.filter(function (node, i, arr) { return !arr.includes(node, i + 1); });\n nodes.sort(function (a, b) {\n var relative = compareDocumentPosition(a, b);\n if (relative & DocumentPosition.PRECEDING) {\n return -1;\n }\n else if (relative & DocumentPosition.FOLLOWING) {\n return 1;\n }\n return 0;\n });\n return nodes;\n}\n//# sourceMappingURL=helpers.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getFeed = getFeed;\nvar stringify_js_1 = require(\"./stringify.js\");\nvar legacy_js_1 = require(\"./legacy.js\");\n/**\n * Get the feed object from the root of a DOM tree.\n *\n * @category Feeds\n * @param doc - The DOM to to extract the feed from.\n * @returns The feed.\n */\nfunction getFeed(doc) {\n var feedRoot = getOneElement(isValidFeed, doc);\n return !feedRoot\n ? null\n : feedRoot.name === \"feed\"\n ? getAtomFeed(feedRoot)\n : getRssFeed(feedRoot);\n}\n/**\n * Parse an Atom feed.\n *\n * @param feedRoot The root of the feed.\n * @returns The parsed feed.\n */\nfunction getAtomFeed(feedRoot) {\n var _a;\n var childs = feedRoot.children;\n var feed = {\n type: \"atom\",\n items: (0, legacy_js_1.getElementsByTagName)(\"entry\", childs).map(function (item) {\n var _a;\n var children = item.children;\n var entry = { media: getMediaElements(children) };\n addConditionally(entry, \"id\", \"id\", children);\n addConditionally(entry, \"title\", \"title\", children);\n var href = (_a = getOneElement(\"link\", children)) === null || _a === void 0 ? void 0 : _a.attribs[\"href\"];\n if (href) {\n entry.link = href;\n }\n var description = fetch(\"summary\", children) || fetch(\"content\", children);\n if (description) {\n entry.description = description;\n }\n var pubDate = fetch(\"updated\", children);\n if (pubDate) {\n entry.pubDate = new Date(pubDate);\n }\n return entry;\n }),\n };\n addConditionally(feed, \"id\", \"id\", childs);\n addConditionally(feed, \"title\", \"title\", childs);\n var href = (_a = getOneElement(\"link\", childs)) === null || _a === void 0 ? void 0 : _a.attribs[\"href\"];\n if (href) {\n feed.link = href;\n }\n addConditionally(feed, \"description\", \"subtitle\", childs);\n var updated = fetch(\"updated\", childs);\n if (updated) {\n feed.updated = new Date(updated);\n }\n addConditionally(feed, \"author\", \"email\", childs, true);\n return feed;\n}\n/**\n * Parse a RSS feed.\n *\n * @param feedRoot The root of the feed.\n * @returns The parsed feed.\n */\nfunction getRssFeed(feedRoot) {\n var _a, _b;\n var childs = (_b = (_a = getOneElement(\"channel\", feedRoot.children)) === null || _a === void 0 ? void 0 : _a.children) !== null && _b !== void 0 ? _b : [];\n var feed = {\n type: feedRoot.name.substr(0, 3),\n id: \"\",\n items: (0, legacy_js_1.getElementsByTagName)(\"item\", feedRoot.children).map(function (item) {\n var children = item.children;\n var entry = { media: getMediaElements(children) };\n addConditionally(entry, \"id\", \"guid\", children);\n addConditionally(entry, \"title\", \"title\", children);\n addConditionally(entry, \"link\", \"link\", children);\n addConditionally(entry, \"description\", \"description\", children);\n var pubDate = fetch(\"pubDate\", children) || fetch(\"dc:date\", children);\n if (pubDate)\n entry.pubDate = new Date(pubDate);\n return entry;\n }),\n };\n addConditionally(feed, \"title\", \"title\", childs);\n addConditionally(feed, \"link\", \"link\", childs);\n addConditionally(feed, \"description\", \"description\", childs);\n var updated = fetch(\"lastBuildDate\", childs);\n if (updated) {\n feed.updated = new Date(updated);\n }\n addConditionally(feed, \"author\", \"managingEditor\", childs, true);\n return feed;\n}\nvar MEDIA_KEYS_STRING = [\"url\", \"type\", \"lang\"];\nvar MEDIA_KEYS_INT = [\n \"fileSize\",\n \"bitrate\",\n \"framerate\",\n \"samplingrate\",\n \"channels\",\n \"duration\",\n \"height\",\n \"width\",\n];\n/**\n * Get all media elements of a feed item.\n *\n * @param where Nodes to search in.\n * @returns Media elements.\n */\nfunction getMediaElements(where) {\n return (0, legacy_js_1.getElementsByTagName)(\"media:content\", where).map(function (elem) {\n var attribs = elem.attribs;\n var media = {\n medium: attribs[\"medium\"],\n isDefault: !!attribs[\"isDefault\"],\n };\n for (var _i = 0, MEDIA_KEYS_STRING_1 = MEDIA_KEYS_STRING; _i < MEDIA_KEYS_STRING_1.length; _i++) {\n var attrib = MEDIA_KEYS_STRING_1[_i];\n if (attribs[attrib]) {\n media[attrib] = attribs[attrib];\n }\n }\n for (var _a = 0, MEDIA_KEYS_INT_1 = MEDIA_KEYS_INT; _a < MEDIA_KEYS_INT_1.length; _a++) {\n var attrib = MEDIA_KEYS_INT_1[_a];\n if (attribs[attrib]) {\n media[attrib] = parseInt(attribs[attrib], 10);\n }\n }\n if (attribs[\"expression\"]) {\n media.expression = attribs[\"expression\"];\n }\n return media;\n });\n}\n/**\n * Get one element by tag name.\n *\n * @param tagName Tag name to look for\n * @param node Node to search in\n * @returns The element or null\n */\nfunction getOneElement(tagName, node) {\n return (0, legacy_js_1.getElementsByTagName)(tagName, node, true, 1)[0];\n}\n/**\n * Get the text content of an element with a certain tag name.\n *\n * @param tagName Tag name to look for.\n * @param where Node to search in.\n * @param recurse Whether to recurse into child nodes.\n * @returns The text content of the element.\n */\nfunction fetch(tagName, where, recurse) {\n if (recurse === void 0) { recurse = false; }\n return (0, stringify_js_1.textContent)((0, legacy_js_1.getElementsByTagName)(tagName, where, recurse, 1)).trim();\n}\n/**\n * Adds a property to an object if it has a value.\n *\n * @param obj Object to be extended\n * @param prop Property name\n * @param tagName Tag name that contains the conditionally added property\n * @param where Element to search for the property\n * @param recurse Whether to recurse into child nodes.\n */\nfunction addConditionally(obj, prop, tagName, where, recurse) {\n if (recurse === void 0) { recurse = false; }\n var val = fetch(tagName, where, recurse);\n if (val)\n obj[prop] = val;\n}\n/**\n * Checks if an element is a feed root node.\n *\n * @param value The name of the element to check.\n * @returns Whether an element is a feed root node.\n */\nfunction isValidFeed(value) {\n return value === \"rss\" || value === \"feed\" || value === \"rdf:RDF\";\n}\n//# sourceMappingURL=feeds.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hasChildren = exports.isDocument = exports.isComment = exports.isText = exports.isCDATA = exports.isTag = void 0;\n__exportStar(require(\"./stringify.js\"), exports);\n__exportStar(require(\"./traversal.js\"), exports);\n__exportStar(require(\"./manipulation.js\"), exports);\n__exportStar(require(\"./querying.js\"), exports);\n__exportStar(require(\"./legacy.js\"), exports);\n__exportStar(require(\"./helpers.js\"), exports);\n__exportStar(require(\"./feeds.js\"), exports);\n/** @deprecated Use these methods from `domhandler` directly. */\nvar domhandler_1 = require(\"domhandler\");\nObject.defineProperty(exports, \"isTag\", { enumerable: true, get: function () { return domhandler_1.isTag; } });\nObject.defineProperty(exports, \"isCDATA\", { enumerable: true, get: function () { return domhandler_1.isCDATA; } });\nObject.defineProperty(exports, \"isText\", { enumerable: true, get: function () { return domhandler_1.isText; } });\nObject.defineProperty(exports, \"isComment\", { enumerable: true, get: function () { return domhandler_1.isComment; } });\nObject.defineProperty(exports, \"isDocument\", { enumerable: true, get: function () { return domhandler_1.isDocument; } });\nObject.defineProperty(exports, \"hasChildren\", { enumerable: true, get: function () { return domhandler_1.hasChildren; } });\n//# sourceMappingURL=index.js.map","module.exports = {\n\ttrueFunc: function trueFunc(){\n\t\treturn true;\n\t},\n\tfalseFunc: function falseFunc(){\n\t\treturn false;\n\t}\n};","export var SelectorType;\n(function (SelectorType) {\n SelectorType[\"Attribute\"] = \"attribute\";\n SelectorType[\"Pseudo\"] = \"pseudo\";\n SelectorType[\"PseudoElement\"] = \"pseudo-element\";\n SelectorType[\"Tag\"] = \"tag\";\n SelectorType[\"Universal\"] = \"universal\";\n // Traversals\n SelectorType[\"Adjacent\"] = \"adjacent\";\n SelectorType[\"Child\"] = \"child\";\n SelectorType[\"Descendant\"] = \"descendant\";\n SelectorType[\"Parent\"] = \"parent\";\n SelectorType[\"Sibling\"] = \"sibling\";\n SelectorType[\"ColumnCombinator\"] = \"column-combinator\";\n})(SelectorType || (SelectorType = {}));\n/**\n * Modes for ignore case.\n *\n * This could be updated to an enum, and the object is\n * the current stand-in that will allow code to be updated\n * without big changes.\n */\nexport const IgnoreCaseMode = {\n Unknown: null,\n QuirksMode: \"quirks\",\n IgnoreCase: true,\n CaseSensitive: false,\n};\nexport var AttributeAction;\n(function (AttributeAction) {\n AttributeAction[\"Any\"] = \"any\";\n AttributeAction[\"Element\"] = \"element\";\n AttributeAction[\"End\"] = \"end\";\n AttributeAction[\"Equals\"] = \"equals\";\n AttributeAction[\"Exists\"] = \"exists\";\n AttributeAction[\"Hyphen\"] = \"hyphen\";\n AttributeAction[\"Not\"] = \"not\";\n AttributeAction[\"Start\"] = \"start\";\n})(AttributeAction || (AttributeAction = {}));\n","import { SelectorType, AttributeAction, } from \"./types\";\nconst reName = /^[^\\\\#]?(?:\\\\(?:[\\da-f]{1,6}\\s?|.)|[\\w\\-\\u00b0-\\uFFFF])+/;\nconst reEscape = /\\\\([\\da-f]{1,6}\\s?|(\\s)|.)/gi;\nconst actionTypes = new Map([\n [126 /* Tilde */, AttributeAction.Element],\n [94 /* Circumflex */, AttributeAction.Start],\n [36 /* Dollar */, AttributeAction.End],\n [42 /* Asterisk */, AttributeAction.Any],\n [33 /* ExclamationMark */, AttributeAction.Not],\n [124 /* Pipe */, AttributeAction.Hyphen],\n]);\n// Pseudos, whose data property is parsed as well.\nconst unpackPseudos = new Set([\n \"has\",\n \"not\",\n \"matches\",\n \"is\",\n \"where\",\n \"host\",\n \"host-context\",\n]);\n/**\n * Checks whether a specific selector is a traversal.\n * This is useful eg. in swapping the order of elements that\n * are not traversals.\n *\n * @param selector Selector to check.\n */\nexport function isTraversal(selector) {\n switch (selector.type) {\n case SelectorType.Adjacent:\n case SelectorType.Child:\n case SelectorType.Descendant:\n case SelectorType.Parent:\n case SelectorType.Sibling:\n case SelectorType.ColumnCombinator:\n return true;\n default:\n return false;\n }\n}\nconst stripQuotesFromPseudos = new Set([\"contains\", \"icontains\"]);\n// Unescape function taken from https://github.com/jquery/sizzle/blob/master/src/sizzle.js#L152\nfunction funescape(_, escaped, escapedWhitespace) {\n const high = parseInt(escaped, 16) - 0x10000;\n // NaN means non-codepoint\n return high !== high || escapedWhitespace\n ? escaped\n : high < 0\n ? // BMP codepoint\n String.fromCharCode(high + 0x10000)\n : // Supplemental Plane codepoint (surrogate pair)\n String.fromCharCode((high >> 10) | 0xd800, (high & 0x3ff) | 0xdc00);\n}\nfunction unescapeCSS(str) {\n return str.replace(reEscape, funescape);\n}\nfunction isQuote(c) {\n return c === 39 /* SingleQuote */ || c === 34 /* DoubleQuote */;\n}\nfunction isWhitespace(c) {\n return (c === 32 /* Space */ ||\n c === 9 /* Tab */ ||\n c === 10 /* NewLine */ ||\n c === 12 /* FormFeed */ ||\n c === 13 /* CarriageReturn */);\n}\n/**\n * Parses `selector`, optionally with the passed `options`.\n *\n * @param selector Selector to parse.\n * @param options Options for parsing.\n * @returns Returns a two-dimensional array.\n * The first dimension represents selectors separated by commas (eg. `sub1, sub2`),\n * the second contains the relevant tokens for that selector.\n */\nexport function parse(selector) {\n const subselects = [];\n const endIndex = parseSelector(subselects, `${selector}`, 0);\n if (endIndex < selector.length) {\n throw new Error(`Unmatched selector: ${selector.slice(endIndex)}`);\n }\n return subselects;\n}\nfunction parseSelector(subselects, selector, selectorIndex) {\n let tokens = [];\n function getName(offset) {\n const match = selector.slice(selectorIndex + offset).match(reName);\n if (!match) {\n throw new Error(`Expected name, found ${selector.slice(selectorIndex)}`);\n }\n const [name] = match;\n selectorIndex += offset + name.length;\n return unescapeCSS(name);\n }\n function stripWhitespace(offset) {\n selectorIndex += offset;\n while (selectorIndex < selector.length &&\n isWhitespace(selector.charCodeAt(selectorIndex))) {\n selectorIndex++;\n }\n }\n function readValueWithParenthesis() {\n selectorIndex += 1;\n const start = selectorIndex;\n let counter = 1;\n for (; counter > 0 && selectorIndex < selector.length; selectorIndex++) {\n if (selector.charCodeAt(selectorIndex) ===\n 40 /* LeftParenthesis */ &&\n !isEscaped(selectorIndex)) {\n counter++;\n }\n else if (selector.charCodeAt(selectorIndex) ===\n 41 /* RightParenthesis */ &&\n !isEscaped(selectorIndex)) {\n counter--;\n }\n }\n if (counter) {\n throw new Error(\"Parenthesis not matched\");\n }\n return unescapeCSS(selector.slice(start, selectorIndex - 1));\n }\n function isEscaped(pos) {\n let slashCount = 0;\n while (selector.charCodeAt(--pos) === 92 /* BackSlash */)\n slashCount++;\n return (slashCount & 1) === 1;\n }\n function ensureNotTraversal() {\n if (tokens.length > 0 && isTraversal(tokens[tokens.length - 1])) {\n throw new Error(\"Did not expect successive traversals.\");\n }\n }\n function addTraversal(type) {\n if (tokens.length > 0 &&\n tokens[tokens.length - 1].type === SelectorType.Descendant) {\n tokens[tokens.length - 1].type = type;\n return;\n }\n ensureNotTraversal();\n tokens.push({ type });\n }\n function addSpecialAttribute(name, action) {\n tokens.push({\n type: SelectorType.Attribute,\n name,\n action,\n value: getName(1),\n namespace: null,\n ignoreCase: \"quirks\",\n });\n }\n /**\n * We have finished parsing the current part of the selector.\n *\n * Remove descendant tokens at the end if they exist,\n * and return the last index, so that parsing can be\n * picked up from here.\n */\n function finalizeSubselector() {\n if (tokens.length &&\n tokens[tokens.length - 1].type === SelectorType.Descendant) {\n tokens.pop();\n }\n if (tokens.length === 0) {\n throw new Error(\"Empty sub-selector\");\n }\n subselects.push(tokens);\n }\n stripWhitespace(0);\n if (selector.length === selectorIndex) {\n return selectorIndex;\n }\n loop: while (selectorIndex < selector.length) {\n const firstChar = selector.charCodeAt(selectorIndex);\n switch (firstChar) {\n // Whitespace\n case 32 /* Space */:\n case 9 /* Tab */:\n case 10 /* NewLine */:\n case 12 /* FormFeed */:\n case 13 /* CarriageReturn */: {\n if (tokens.length === 0 ||\n tokens[0].type !== SelectorType.Descendant) {\n ensureNotTraversal();\n tokens.push({ type: SelectorType.Descendant });\n }\n stripWhitespace(1);\n break;\n }\n // Traversals\n case 62 /* GreaterThan */: {\n addTraversal(SelectorType.Child);\n stripWhitespace(1);\n break;\n }\n case 60 /* LessThan */: {\n addTraversal(SelectorType.Parent);\n stripWhitespace(1);\n break;\n }\n case 126 /* Tilde */: {\n addTraversal(SelectorType.Sibling);\n stripWhitespace(1);\n break;\n }\n case 43 /* Plus */: {\n addTraversal(SelectorType.Adjacent);\n stripWhitespace(1);\n break;\n }\n // Special attribute selectors: .class, #id\n case 46 /* Period */: {\n addSpecialAttribute(\"class\", AttributeAction.Element);\n break;\n }\n case 35 /* Hash */: {\n addSpecialAttribute(\"id\", AttributeAction.Equals);\n break;\n }\n case 91 /* LeftSquareBracket */: {\n stripWhitespace(1);\n // Determine attribute name and namespace\n let name;\n let namespace = null;\n if (selector.charCodeAt(selectorIndex) === 124 /* Pipe */) {\n // Equivalent to no namespace\n name = getName(1);\n }\n else if (selector.startsWith(\"*|\", selectorIndex)) {\n namespace = \"*\";\n name = getName(2);\n }\n else {\n name = getName(0);\n if (selector.charCodeAt(selectorIndex) === 124 /* Pipe */ &&\n selector.charCodeAt(selectorIndex + 1) !==\n 61 /* Equal */) {\n namespace = name;\n name = getName(1);\n }\n }\n stripWhitespace(0);\n // Determine comparison operation\n let action = AttributeAction.Exists;\n const possibleAction = actionTypes.get(selector.charCodeAt(selectorIndex));\n if (possibleAction) {\n action = possibleAction;\n if (selector.charCodeAt(selectorIndex + 1) !==\n 61 /* Equal */) {\n throw new Error(\"Expected `=`\");\n }\n stripWhitespace(2);\n }\n else if (selector.charCodeAt(selectorIndex) === 61 /* Equal */) {\n action = AttributeAction.Equals;\n stripWhitespace(1);\n }\n // Determine value\n let value = \"\";\n let ignoreCase = null;\n if (action !== \"exists\") {\n if (isQuote(selector.charCodeAt(selectorIndex))) {\n const quote = selector.charCodeAt(selectorIndex);\n let sectionEnd = selectorIndex + 1;\n while (sectionEnd < selector.length &&\n (selector.charCodeAt(sectionEnd) !== quote ||\n isEscaped(sectionEnd))) {\n sectionEnd += 1;\n }\n if (selector.charCodeAt(sectionEnd) !== quote) {\n throw new Error(\"Attribute value didn't end\");\n }\n value = unescapeCSS(selector.slice(selectorIndex + 1, sectionEnd));\n selectorIndex = sectionEnd + 1;\n }\n else {\n const valueStart = selectorIndex;\n while (selectorIndex < selector.length &&\n ((!isWhitespace(selector.charCodeAt(selectorIndex)) &&\n selector.charCodeAt(selectorIndex) !==\n 93 /* RightSquareBracket */) ||\n isEscaped(selectorIndex))) {\n selectorIndex += 1;\n }\n value = unescapeCSS(selector.slice(valueStart, selectorIndex));\n }\n stripWhitespace(0);\n // See if we have a force ignore flag\n const forceIgnore = selector.charCodeAt(selectorIndex) | 0x20;\n // If the forceIgnore flag is set (either `i` or `s`), use that value\n if (forceIgnore === 115 /* LowerS */) {\n ignoreCase = false;\n stripWhitespace(1);\n }\n else if (forceIgnore === 105 /* LowerI */) {\n ignoreCase = true;\n stripWhitespace(1);\n }\n }\n if (selector.charCodeAt(selectorIndex) !==\n 93 /* RightSquareBracket */) {\n throw new Error(\"Attribute selector didn't terminate\");\n }\n selectorIndex += 1;\n const attributeSelector = {\n type: SelectorType.Attribute,\n name,\n action,\n value,\n namespace,\n ignoreCase,\n };\n tokens.push(attributeSelector);\n break;\n }\n case 58 /* Colon */: {\n if (selector.charCodeAt(selectorIndex + 1) === 58 /* Colon */) {\n tokens.push({\n type: SelectorType.PseudoElement,\n name: getName(2).toLowerCase(),\n data: selector.charCodeAt(selectorIndex) ===\n 40 /* LeftParenthesis */\n ? readValueWithParenthesis()\n : null,\n });\n continue;\n }\n const name = getName(1).toLowerCase();\n let data = null;\n if (selector.charCodeAt(selectorIndex) ===\n 40 /* LeftParenthesis */) {\n if (unpackPseudos.has(name)) {\n if (isQuote(selector.charCodeAt(selectorIndex + 1))) {\n throw new Error(`Pseudo-selector ${name} cannot be quoted`);\n }\n data = [];\n selectorIndex = parseSelector(data, selector, selectorIndex + 1);\n if (selector.charCodeAt(selectorIndex) !==\n 41 /* RightParenthesis */) {\n throw new Error(`Missing closing parenthesis in :${name} (${selector})`);\n }\n selectorIndex += 1;\n }\n else {\n data = readValueWithParenthesis();\n if (stripQuotesFromPseudos.has(name)) {\n const quot = data.charCodeAt(0);\n if (quot === data.charCodeAt(data.length - 1) &&\n isQuote(quot)) {\n data = data.slice(1, -1);\n }\n }\n data = unescapeCSS(data);\n }\n }\n tokens.push({ type: SelectorType.Pseudo, name, data });\n break;\n }\n case 44 /* Comma */: {\n finalizeSubselector();\n tokens = [];\n stripWhitespace(1);\n break;\n }\n default: {\n if (selector.startsWith(\"/*\", selectorIndex)) {\n const endIndex = selector.indexOf(\"*/\", selectorIndex + 2);\n if (endIndex < 0) {\n throw new Error(\"Comment was not terminated\");\n }\n selectorIndex = endIndex + 2;\n // Remove leading whitespace\n if (tokens.length === 0) {\n stripWhitespace(0);\n }\n break;\n }\n let namespace = null;\n let name;\n if (firstChar === 42 /* Asterisk */) {\n selectorIndex += 1;\n name = \"*\";\n }\n else if (firstChar === 124 /* Pipe */) {\n name = \"\";\n if (selector.charCodeAt(selectorIndex + 1) === 124 /* Pipe */) {\n addTraversal(SelectorType.ColumnCombinator);\n stripWhitespace(2);\n break;\n }\n }\n else if (reName.test(selector.slice(selectorIndex))) {\n name = getName(0);\n }\n else {\n break loop;\n }\n if (selector.charCodeAt(selectorIndex) === 124 /* Pipe */ &&\n selector.charCodeAt(selectorIndex + 1) !== 124 /* Pipe */) {\n namespace = name;\n if (selector.charCodeAt(selectorIndex + 1) ===\n 42 /* Asterisk */) {\n name = \"*\";\n selectorIndex += 2;\n }\n else {\n name = getName(1);\n }\n }\n tokens.push(name === \"*\"\n ? { type: SelectorType.Universal, namespace }\n : { type: SelectorType.Tag, name, namespace });\n }\n }\n }\n finalizeSubselector();\n return selectorIndex;\n}\n","import { SelectorType, AttributeAction } from \"./types\";\nconst attribValChars = [\"\\\\\", '\"'];\nconst pseudoValChars = [...attribValChars, \"(\", \")\"];\nconst charsToEscapeInAttributeValue = new Set(attribValChars.map((c) => c.charCodeAt(0)));\nconst charsToEscapeInPseudoValue = new Set(pseudoValChars.map((c) => c.charCodeAt(0)));\nconst charsToEscapeInName = new Set([\n ...pseudoValChars,\n \"~\",\n \"^\",\n \"$\",\n \"*\",\n \"+\",\n \"!\",\n \"|\",\n \":\",\n \"[\",\n \"]\",\n \" \",\n \".\",\n].map((c) => c.charCodeAt(0)));\n/**\n * Turns `selector` back into a string.\n *\n * @param selector Selector to stringify.\n */\nexport function stringify(selector) {\n return selector\n .map((token) => token.map(stringifyToken).join(\"\"))\n .join(\", \");\n}\nfunction stringifyToken(token, index, arr) {\n switch (token.type) {\n // Simple types\n case SelectorType.Child:\n return index === 0 ? \"> \" : \" > \";\n case SelectorType.Parent:\n return index === 0 ? \"< \" : \" < \";\n case SelectorType.Sibling:\n return index === 0 ? \"~ \" : \" ~ \";\n case SelectorType.Adjacent:\n return index === 0 ? \"+ \" : \" + \";\n case SelectorType.Descendant:\n return \" \";\n case SelectorType.ColumnCombinator:\n return index === 0 ? \"|| \" : \" || \";\n case SelectorType.Universal:\n // Return an empty string if the selector isn't needed.\n return token.namespace === \"*\" &&\n index + 1 < arr.length &&\n \"name\" in arr[index + 1]\n ? \"\"\n : `${getNamespace(token.namespace)}*`;\n case SelectorType.Tag:\n return getNamespacedName(token);\n case SelectorType.PseudoElement:\n return `::${escapeName(token.name, charsToEscapeInName)}${token.data === null\n ? \"\"\n : `(${escapeName(token.data, charsToEscapeInPseudoValue)})`}`;\n case SelectorType.Pseudo:\n return `:${escapeName(token.name, charsToEscapeInName)}${token.data === null\n ? \"\"\n : `(${typeof token.data === \"string\"\n ? escapeName(token.data, charsToEscapeInPseudoValue)\n : stringify(token.data)})`}`;\n case SelectorType.Attribute: {\n if (token.name === \"id\" &&\n token.action === AttributeAction.Equals &&\n token.ignoreCase === \"quirks\" &&\n !token.namespace) {\n return `#${escapeName(token.value, charsToEscapeInName)}`;\n }\n if (token.name === \"class\" &&\n token.action === AttributeAction.Element &&\n token.ignoreCase === \"quirks\" &&\n !token.namespace) {\n return `.${escapeName(token.value, charsToEscapeInName)}`;\n }\n const name = getNamespacedName(token);\n if (token.action === AttributeAction.Exists) {\n return `[${name}]`;\n }\n return `[${name}${getActionValue(token.action)}=\"${escapeName(token.value, charsToEscapeInAttributeValue)}\"${token.ignoreCase === null ? \"\" : token.ignoreCase ? \" i\" : \" s\"}]`;\n }\n }\n}\nfunction getActionValue(action) {\n switch (action) {\n case AttributeAction.Equals:\n return \"\";\n case AttributeAction.Element:\n return \"~\";\n case AttributeAction.Start:\n return \"^\";\n case AttributeAction.End:\n return \"$\";\n case AttributeAction.Any:\n return \"*\";\n case AttributeAction.Not:\n return \"!\";\n case AttributeAction.Hyphen:\n return \"|\";\n case AttributeAction.Exists:\n throw new Error(\"Shouldn't be here\");\n }\n}\nfunction getNamespacedName(token) {\n return `${getNamespace(token.namespace)}${escapeName(token.name, charsToEscapeInName)}`;\n}\nfunction getNamespace(namespace) {\n return namespace !== null\n ? `${namespace === \"*\"\n ? \"*\"\n : escapeName(namespace, charsToEscapeInName)}|`\n : \"\";\n}\nfunction escapeName(str, charsToEscape) {\n let lastIdx = 0;\n let ret = \"\";\n for (let i = 0; i < str.length; i++) {\n if (charsToEscape.has(str.charCodeAt(i))) {\n ret += `${str.slice(lastIdx, i)}\\\\${str.charAt(i)}`;\n lastIdx = i + 1;\n }\n }\n return ret.length > 0 ? ret + str.slice(lastIdx) : str;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isTraversal = void 0;\nvar css_what_1 = require(\"css-what\");\nvar procedure = new Map([\n [css_what_1.SelectorType.Universal, 50],\n [css_what_1.SelectorType.Tag, 30],\n [css_what_1.SelectorType.Attribute, 1],\n [css_what_1.SelectorType.Pseudo, 0],\n]);\nfunction isTraversal(token) {\n return !procedure.has(token.type);\n}\nexports.isTraversal = isTraversal;\nvar attributes = new Map([\n [css_what_1.AttributeAction.Exists, 10],\n [css_what_1.AttributeAction.Equals, 8],\n [css_what_1.AttributeAction.Not, 7],\n [css_what_1.AttributeAction.Start, 6],\n [css_what_1.AttributeAction.End, 6],\n [css_what_1.AttributeAction.Any, 5],\n]);\n/**\n * Sort the parts of the passed selector,\n * as there is potential for optimization\n * (some types of selectors are faster than others)\n *\n * @param arr Selector to sort\n */\nfunction sortByProcedure(arr) {\n var procs = arr.map(getProcedure);\n for (var i = 1; i < arr.length; i++) {\n var procNew = procs[i];\n if (procNew < 0)\n continue;\n for (var j = i - 1; j >= 0 && procNew < procs[j]; j--) {\n var token = arr[j + 1];\n arr[j + 1] = arr[j];\n arr[j] = token;\n procs[j + 1] = procs[j];\n procs[j] = procNew;\n }\n }\n}\nexports.default = sortByProcedure;\nfunction getProcedure(token) {\n var _a, _b;\n var proc = (_a = procedure.get(token.type)) !== null && _a !== void 0 ? _a : -1;\n if (token.type === css_what_1.SelectorType.Attribute) {\n proc = (_b = attributes.get(token.action)) !== null && _b !== void 0 ? _b : 4;\n if (token.action === css_what_1.AttributeAction.Equals && token.name === \"id\") {\n // Prefer ID selectors (eg. #ID)\n proc = 9;\n }\n if (token.ignoreCase) {\n /*\n * IgnoreCase adds some overhead, prefer \"normal\" token\n * this is a binary operation, to ensure it's still an int\n */\n proc >>= 1;\n }\n }\n else if (token.type === css_what_1.SelectorType.Pseudo) {\n if (!token.data) {\n proc = 3;\n }\n else if (token.name === \"has\" || token.name === \"contains\") {\n proc = 0; // Expensive in any case\n }\n else if (Array.isArray(token.data)) {\n // Eg. :matches, :not\n proc = Math.min.apply(Math, token.data.map(function (d) { return Math.min.apply(Math, d.map(getProcedure)); }));\n // If we have traversals, try to avoid executing this selector\n if (proc < 0) {\n proc = 0;\n }\n }\n else {\n proc = 2;\n }\n }\n return proc;\n}\n//# sourceMappingURL=sort.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.attributeRules = void 0;\nvar boolbase_1 = __importDefault(require(\"boolbase\"));\n/**\n * All reserved characters in a regex, used for escaping.\n *\n * Taken from XRegExp, (c) 2007-2020 Steven Levithan under the MIT license\n * https://github.com/slevithan/xregexp/blob/95eeebeb8fac8754d54eafe2b4743661ac1cf028/src/xregexp.js#L794\n */\nvar reChars = /[-[\\]{}()*+?.,\\\\^$|#\\s]/g;\nfunction escapeRegex(value) {\n return value.replace(reChars, \"\\\\$&\");\n}\n/**\n * Attributes that are case-insensitive in HTML.\n *\n * @private\n * @see https://html.spec.whatwg.org/multipage/semantics-other.html#case-sensitivity-of-selectors\n */\nvar caseInsensitiveAttributes = new Set([\n \"accept\",\n \"accept-charset\",\n \"align\",\n \"alink\",\n \"axis\",\n \"bgcolor\",\n \"charset\",\n \"checked\",\n \"clear\",\n \"codetype\",\n \"color\",\n \"compact\",\n \"declare\",\n \"defer\",\n \"dir\",\n \"direction\",\n \"disabled\",\n \"enctype\",\n \"face\",\n \"frame\",\n \"hreflang\",\n \"http-equiv\",\n \"lang\",\n \"language\",\n \"link\",\n \"media\",\n \"method\",\n \"multiple\",\n \"nohref\",\n \"noresize\",\n \"noshade\",\n \"nowrap\",\n \"readonly\",\n \"rel\",\n \"rev\",\n \"rules\",\n \"scope\",\n \"scrolling\",\n \"selected\",\n \"shape\",\n \"target\",\n \"text\",\n \"type\",\n \"valign\",\n \"valuetype\",\n \"vlink\",\n]);\nfunction shouldIgnoreCase(selector, options) {\n return typeof selector.ignoreCase === \"boolean\"\n ? selector.ignoreCase\n : selector.ignoreCase === \"quirks\"\n ? !!options.quirksMode\n : !options.xmlMode && caseInsensitiveAttributes.has(selector.name);\n}\n/**\n * Attribute selectors\n */\nexports.attributeRules = {\n equals: function (next, data, options) {\n var adapter = options.adapter;\n var name = data.name;\n var value = data.value;\n if (shouldIgnoreCase(data, options)) {\n value = value.toLowerCase();\n return function (elem) {\n var attr = adapter.getAttributeValue(elem, name);\n return (attr != null &&\n attr.length === value.length &&\n attr.toLowerCase() === value &&\n next(elem));\n };\n }\n return function (elem) {\n return adapter.getAttributeValue(elem, name) === value && next(elem);\n };\n },\n hyphen: function (next, data, options) {\n var adapter = options.adapter;\n var name = data.name;\n var value = data.value;\n var len = value.length;\n if (shouldIgnoreCase(data, options)) {\n value = value.toLowerCase();\n return function hyphenIC(elem) {\n var attr = adapter.getAttributeValue(elem, name);\n return (attr != null &&\n (attr.length === len || attr.charAt(len) === \"-\") &&\n attr.substr(0, len).toLowerCase() === value &&\n next(elem));\n };\n }\n return function hyphen(elem) {\n var attr = adapter.getAttributeValue(elem, name);\n return (attr != null &&\n (attr.length === len || attr.charAt(len) === \"-\") &&\n attr.substr(0, len) === value &&\n next(elem));\n };\n },\n element: function (next, data, options) {\n var adapter = options.adapter;\n var name = data.name, value = data.value;\n if (/\\s/.test(value)) {\n return boolbase_1.default.falseFunc;\n }\n var regex = new RegExp(\"(?:^|\\\\s)\".concat(escapeRegex(value), \"(?:$|\\\\s)\"), shouldIgnoreCase(data, options) ? \"i\" : \"\");\n return function element(elem) {\n var attr = adapter.getAttributeValue(elem, name);\n return (attr != null &&\n attr.length >= value.length &&\n regex.test(attr) &&\n next(elem));\n };\n },\n exists: function (next, _a, _b) {\n var name = _a.name;\n var adapter = _b.adapter;\n return function (elem) { return adapter.hasAttrib(elem, name) && next(elem); };\n },\n start: function (next, data, options) {\n var adapter = options.adapter;\n var name = data.name;\n var value = data.value;\n var len = value.length;\n if (len === 0) {\n return boolbase_1.default.falseFunc;\n }\n if (shouldIgnoreCase(data, options)) {\n value = value.toLowerCase();\n return function (elem) {\n var attr = adapter.getAttributeValue(elem, name);\n return (attr != null &&\n attr.length >= len &&\n attr.substr(0, len).toLowerCase() === value &&\n next(elem));\n };\n }\n return function (elem) {\n var _a;\n return !!((_a = adapter.getAttributeValue(elem, name)) === null || _a === void 0 ? void 0 : _a.startsWith(value)) &&\n next(elem);\n };\n },\n end: function (next, data, options) {\n var adapter = options.adapter;\n var name = data.name;\n var value = data.value;\n var len = -value.length;\n if (len === 0) {\n return boolbase_1.default.falseFunc;\n }\n if (shouldIgnoreCase(data, options)) {\n value = value.toLowerCase();\n return function (elem) {\n var _a;\n return ((_a = adapter\n .getAttributeValue(elem, name)) === null || _a === void 0 ? void 0 : _a.substr(len).toLowerCase()) === value && next(elem);\n };\n }\n return function (elem) {\n var _a;\n return !!((_a = adapter.getAttributeValue(elem, name)) === null || _a === void 0 ? void 0 : _a.endsWith(value)) &&\n next(elem);\n };\n },\n any: function (next, data, options) {\n var adapter = options.adapter;\n var name = data.name, value = data.value;\n if (value === \"\") {\n return boolbase_1.default.falseFunc;\n }\n if (shouldIgnoreCase(data, options)) {\n var regex_1 = new RegExp(escapeRegex(value), \"i\");\n return function anyIC(elem) {\n var attr = adapter.getAttributeValue(elem, name);\n return (attr != null &&\n attr.length >= value.length &&\n regex_1.test(attr) &&\n next(elem));\n };\n }\n return function (elem) {\n var _a;\n return !!((_a = adapter.getAttributeValue(elem, name)) === null || _a === void 0 ? void 0 : _a.includes(value)) &&\n next(elem);\n };\n },\n not: function (next, data, options) {\n var adapter = options.adapter;\n var name = data.name;\n var value = data.value;\n if (value === \"\") {\n return function (elem) {\n return !!adapter.getAttributeValue(elem, name) && next(elem);\n };\n }\n else if (shouldIgnoreCase(data, options)) {\n value = value.toLowerCase();\n return function (elem) {\n var attr = adapter.getAttributeValue(elem, name);\n return ((attr == null ||\n attr.length !== value.length ||\n attr.toLowerCase() !== value) &&\n next(elem));\n };\n }\n return function (elem) {\n return adapter.getAttributeValue(elem, name) !== value && next(elem);\n };\n },\n};\n//# sourceMappingURL=attributes.js.map","\"use strict\";\n// Following http://www.w3.org/TR/css3-selectors/#nth-child-pseudo\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parse = void 0;\n// Whitespace as per https://www.w3.org/TR/selectors-3/#lex is \" \\t\\r\\n\\f\"\nvar whitespace = new Set([9, 10, 12, 13, 32]);\nvar ZERO = \"0\".charCodeAt(0);\nvar NINE = \"9\".charCodeAt(0);\n/**\n * Parses an expression.\n *\n * @throws An `Error` if parsing fails.\n * @returns An array containing the integer step size and the integer offset of the nth rule.\n * @example nthCheck.parse(\"2n+3\"); // returns [2, 3]\n */\nfunction parse(formula) {\n formula = formula.trim().toLowerCase();\n if (formula === \"even\") {\n return [2, 0];\n }\n else if (formula === \"odd\") {\n return [2, 1];\n }\n // Parse [ ['-'|'+']? INTEGER? {N} [ S* ['-'|'+'] S* INTEGER ]?\n var idx = 0;\n var a = 0;\n var sign = readSign();\n var number = readNumber();\n if (idx < formula.length && formula.charAt(idx) === \"n\") {\n idx++;\n a = sign * (number !== null && number !== void 0 ? number : 1);\n skipWhitespace();\n if (idx < formula.length) {\n sign = readSign();\n skipWhitespace();\n number = readNumber();\n }\n else {\n sign = number = 0;\n }\n }\n // Throw if there is anything else\n if (number === null || idx < formula.length) {\n throw new Error(\"n-th rule couldn't be parsed ('\".concat(formula, \"')\"));\n }\n return [a, sign * number];\n function readSign() {\n if (formula.charAt(idx) === \"-\") {\n idx++;\n return -1;\n }\n if (formula.charAt(idx) === \"+\") {\n idx++;\n }\n return 1;\n }\n function readNumber() {\n var start = idx;\n var value = 0;\n while (idx < formula.length &&\n formula.charCodeAt(idx) >= ZERO &&\n formula.charCodeAt(idx) <= NINE) {\n value = value * 10 + (formula.charCodeAt(idx) - ZERO);\n idx++;\n }\n // Return `null` if we didn't read anything.\n return idx === start ? null : value;\n }\n function skipWhitespace() {\n while (idx < formula.length &&\n whitespace.has(formula.charCodeAt(idx))) {\n idx++;\n }\n }\n}\nexports.parse = parse;\n//# sourceMappingURL=parse.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.generate = exports.compile = void 0;\nvar boolbase_1 = __importDefault(require(\"boolbase\"));\n/**\n * Returns a function that checks if an elements index matches the given rule\n * highly optimized to return the fastest solution.\n *\n * @param parsed A tuple [a, b], as returned by `parse`.\n * @returns A highly optimized function that returns whether an index matches the nth-check.\n * @example\n *\n * ```js\n * const check = nthCheck.compile([2, 3]);\n *\n * check(0); // `false`\n * check(1); // `false`\n * check(2); // `true`\n * check(3); // `false`\n * check(4); // `true`\n * check(5); // `false`\n * check(6); // `true`\n * ```\n */\nfunction compile(parsed) {\n var a = parsed[0];\n // Subtract 1 from `b`, to convert from one- to zero-indexed.\n var b = parsed[1] - 1;\n /*\n * When `b <= 0`, `a * n` won't be lead to any matches for `a < 0`.\n * Besides, the specification states that no elements are\n * matched when `a` and `b` are 0.\n *\n * `b < 0` here as we subtracted 1 from `b` above.\n */\n if (b < 0 && a <= 0)\n return boolbase_1.default.falseFunc;\n // When `a` is in the range -1..1, it matches any element (so only `b` is checked).\n if (a === -1)\n return function (index) { return index <= b; };\n if (a === 0)\n return function (index) { return index === b; };\n // When `b <= 0` and `a === 1`, they match any element.\n if (a === 1)\n return b < 0 ? boolbase_1.default.trueFunc : function (index) { return index >= b; };\n /*\n * Otherwise, modulo can be used to check if there is a match.\n *\n * Modulo doesn't care about the sign, so let's use `a`s absolute value.\n */\n var absA = Math.abs(a);\n // Get `b mod a`, + a if this is negative.\n var bMod = ((b % absA) + absA) % absA;\n return a > 1\n ? function (index) { return index >= b && index % absA === bMod; }\n : function (index) { return index <= b && index % absA === bMod; };\n}\nexports.compile = compile;\n/**\n * Returns a function that produces a monotonously increasing sequence of indices.\n *\n * If the sequence has an end, the returned function will return `null` after\n * the last index in the sequence.\n *\n * @param parsed A tuple [a, b], as returned by `parse`.\n * @returns A function that produces a sequence of indices.\n * @example <caption>Always increasing (2n+3)</caption>\n *\n * ```js\n * const gen = nthCheck.generate([2, 3])\n *\n * gen() // `1`\n * gen() // `3`\n * gen() // `5`\n * gen() // `8`\n * gen() // `11`\n * ```\n *\n * @example <caption>With end value (-2n+10)</caption>\n *\n * ```js\n *\n * const gen = nthCheck.generate([-2, 5]);\n *\n * gen() // 0\n * gen() // 2\n * gen() // 4\n * gen() // null\n * ```\n */\nfunction generate(parsed) {\n var a = parsed[0];\n // Subtract 1 from `b`, to convert from one- to zero-indexed.\n var b = parsed[1] - 1;\n var n = 0;\n // Make sure to always return an increasing sequence\n if (a < 0) {\n var aPos_1 = -a;\n // Get `b mod a`\n var minValue_1 = ((b % aPos_1) + aPos_1) % aPos_1;\n return function () {\n var val = minValue_1 + aPos_1 * n++;\n return val > b ? null : val;\n };\n }\n if (a === 0)\n return b < 0\n ? // There are no result — always return `null`\n function () { return null; }\n : // Return `b` exactly once\n function () { return (n++ === 0 ? b : null); };\n if (b < 0) {\n b += a * Math.ceil(-b / a);\n }\n return function () { return a * n++ + b; };\n}\nexports.generate = generate;\n//# sourceMappingURL=compile.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sequence = exports.generate = exports.compile = exports.parse = void 0;\nvar parse_js_1 = require(\"./parse.js\");\nObject.defineProperty(exports, \"parse\", { enumerable: true, get: function () { return parse_js_1.parse; } });\nvar compile_js_1 = require(\"./compile.js\");\nObject.defineProperty(exports, \"compile\", { enumerable: true, get: function () { return compile_js_1.compile; } });\nObject.defineProperty(exports, \"generate\", { enumerable: true, get: function () { return compile_js_1.generate; } });\n/**\n * Parses and compiles a formula to a highly optimized function.\n * Combination of {@link parse} and {@link compile}.\n *\n * If the formula doesn't match any elements,\n * it returns [`boolbase`](https://github.com/fb55/boolbase)'s `falseFunc`.\n * Otherwise, a function accepting an _index_ is returned, which returns\n * whether or not the passed _index_ matches the formula.\n *\n * Note: The nth-rule starts counting at `1`, the returned function at `0`.\n *\n * @param formula The formula to compile.\n * @example\n * const check = nthCheck(\"2n+3\");\n *\n * check(0); // `false`\n * check(1); // `false`\n * check(2); // `true`\n * check(3); // `false`\n * check(4); // `true`\n * check(5); // `false`\n * check(6); // `true`\n */\nfunction nthCheck(formula) {\n return (0, compile_js_1.compile)((0, parse_js_1.parse)(formula));\n}\nexports.default = nthCheck;\n/**\n * Parses and compiles a formula to a generator that produces a sequence of indices.\n * Combination of {@link parse} and {@link generate}.\n *\n * @param formula The formula to compile.\n * @returns A function that produces a sequence of indices.\n * @example <caption>Always increasing</caption>\n *\n * ```js\n * const gen = nthCheck.sequence('2n+3')\n *\n * gen() // `1`\n * gen() // `3`\n * gen() // `5`\n * gen() // `8`\n * gen() // `11`\n * ```\n *\n * @example <caption>With end value</caption>\n *\n * ```js\n *\n * const gen = nthCheck.sequence('-2n+5');\n *\n * gen() // 0\n * gen() // 2\n * gen() // 4\n * gen() // null\n * ```\n */\nfunction sequence(formula) {\n return (0, compile_js_1.generate)((0, parse_js_1.parse)(formula));\n}\nexports.sequence = sequence;\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.filters = void 0;\nvar nth_check_1 = __importDefault(require(\"nth-check\"));\nvar boolbase_1 = __importDefault(require(\"boolbase\"));\nfunction getChildFunc(next, adapter) {\n return function (elem) {\n var parent = adapter.getParent(elem);\n return parent != null && adapter.isTag(parent) && next(elem);\n };\n}\nexports.filters = {\n contains: function (next, text, _a) {\n var adapter = _a.adapter;\n return function contains(elem) {\n return next(elem) && adapter.getText(elem).includes(text);\n };\n },\n icontains: function (next, text, _a) {\n var adapter = _a.adapter;\n var itext = text.toLowerCase();\n return function icontains(elem) {\n return (next(elem) &&\n adapter.getText(elem).toLowerCase().includes(itext));\n };\n },\n // Location specific methods\n \"nth-child\": function (next, rule, _a) {\n var adapter = _a.adapter, equals = _a.equals;\n var func = (0, nth_check_1.default)(rule);\n if (func === boolbase_1.default.falseFunc)\n return boolbase_1.default.falseFunc;\n if (func === boolbase_1.default.trueFunc)\n return getChildFunc(next, adapter);\n return function nthChild(elem) {\n var siblings = adapter.getSiblings(elem);\n var pos = 0;\n for (var i = 0; i < siblings.length; i++) {\n if (equals(elem, siblings[i]))\n break;\n if (adapter.isTag(siblings[i])) {\n pos++;\n }\n }\n return func(pos) && next(elem);\n };\n },\n \"nth-last-child\": function (next, rule, _a) {\n var adapter = _a.adapter, equals = _a.equals;\n var func = (0, nth_check_1.default)(rule);\n if (func === boolbase_1.default.falseFunc)\n return boolbase_1.default.falseFunc;\n if (func === boolbase_1.default.trueFunc)\n return getChildFunc(next, adapter);\n return function nthLastChild(elem) {\n var siblings = adapter.getSiblings(elem);\n var pos = 0;\n for (var i = siblings.length - 1; i >= 0; i--) {\n if (equals(elem, siblings[i]))\n break;\n if (adapter.isTag(siblings[i])) {\n pos++;\n }\n }\n return func(pos) && next(elem);\n };\n },\n \"nth-of-type\": function (next, rule, _a) {\n var adapter = _a.adapter, equals = _a.equals;\n var func = (0, nth_check_1.default)(rule);\n if (func === boolbase_1.default.falseFunc)\n return boolbase_1.default.falseFunc;\n if (func === boolbase_1.default.trueFunc)\n return getChildFunc(next, adapter);\n return function nthOfType(elem) {\n var siblings = adapter.getSiblings(elem);\n var pos = 0;\n for (var i = 0; i < siblings.length; i++) {\n var currentSibling = siblings[i];\n if (equals(elem, currentSibling))\n break;\n if (adapter.isTag(currentSibling) &&\n adapter.getName(currentSibling) === adapter.getName(elem)) {\n pos++;\n }\n }\n return func(pos) && next(elem);\n };\n },\n \"nth-last-of-type\": function (next, rule, _a) {\n var adapter = _a.adapter, equals = _a.equals;\n var func = (0, nth_check_1.default)(rule);\n if (func === boolbase_1.default.falseFunc)\n return boolbase_1.default.falseFunc;\n if (func === boolbase_1.default.trueFunc)\n return getChildFunc(next, adapter);\n return function nthLastOfType(elem) {\n var siblings = adapter.getSiblings(elem);\n var pos = 0;\n for (var i = siblings.length - 1; i >= 0; i--) {\n var currentSibling = siblings[i];\n if (equals(elem, currentSibling))\n break;\n if (adapter.isTag(currentSibling) &&\n adapter.getName(currentSibling) === adapter.getName(elem)) {\n pos++;\n }\n }\n return func(pos) && next(elem);\n };\n },\n // TODO determine the actual root element\n root: function (next, _rule, _a) {\n var adapter = _a.adapter;\n return function (elem) {\n var parent = adapter.getParent(elem);\n return (parent == null || !adapter.isTag(parent)) && next(elem);\n };\n },\n scope: function (next, rule, options, context) {\n var equals = options.equals;\n if (!context || context.length === 0) {\n // Equivalent to :root\n return exports.filters[\"root\"](next, rule, options);\n }\n if (context.length === 1) {\n // NOTE: can't be unpacked, as :has uses this for side-effects\n return function (elem) { return equals(context[0], elem) && next(elem); };\n }\n return function (elem) { return context.includes(elem) && next(elem); };\n },\n hover: dynamicStatePseudo(\"isHovered\"),\n visited: dynamicStatePseudo(\"isVisited\"),\n active: dynamicStatePseudo(\"isActive\"),\n};\n/**\n * Dynamic state pseudos. These depend on optional Adapter methods.\n *\n * @param name The name of the adapter method to call.\n * @returns Pseudo for the `filters` object.\n */\nfunction dynamicStatePseudo(name) {\n return function dynamicPseudo(next, _rule, _a) {\n var adapter = _a.adapter;\n var func = adapter[name];\n if (typeof func !== \"function\") {\n return boolbase_1.default.falseFunc;\n }\n return function active(elem) {\n return func(elem) && next(elem);\n };\n };\n}\n//# sourceMappingURL=filters.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.verifyPseudoArgs = exports.pseudos = void 0;\n// While filters are precompiled, pseudos get called when they are needed\nexports.pseudos = {\n empty: function (elem, _a) {\n var adapter = _a.adapter;\n return !adapter.getChildren(elem).some(function (elem) {\n // FIXME: `getText` call is potentially expensive.\n return adapter.isTag(elem) || adapter.getText(elem) !== \"\";\n });\n },\n \"first-child\": function (elem, _a) {\n var adapter = _a.adapter, equals = _a.equals;\n if (adapter.prevElementSibling) {\n return adapter.prevElementSibling(elem) == null;\n }\n var firstChild = adapter\n .getSiblings(elem)\n .find(function (elem) { return adapter.isTag(elem); });\n return firstChild != null && equals(elem, firstChild);\n },\n \"last-child\": function (elem, _a) {\n var adapter = _a.adapter, equals = _a.equals;\n var siblings = adapter.getSiblings(elem);\n for (var i = siblings.length - 1; i >= 0; i--) {\n if (equals(elem, siblings[i]))\n return true;\n if (adapter.isTag(siblings[i]))\n break;\n }\n return false;\n },\n \"first-of-type\": function (elem, _a) {\n var adapter = _a.adapter, equals = _a.equals;\n var siblings = adapter.getSiblings(elem);\n var elemName = adapter.getName(elem);\n for (var i = 0; i < siblings.length; i++) {\n var currentSibling = siblings[i];\n if (equals(elem, currentSibling))\n return true;\n if (adapter.isTag(currentSibling) &&\n adapter.getName(currentSibling) === elemName) {\n break;\n }\n }\n return false;\n },\n \"last-of-type\": function (elem, _a) {\n var adapter = _a.adapter, equals = _a.equals;\n var siblings = adapter.getSiblings(elem);\n var elemName = adapter.getName(elem);\n for (var i = siblings.length - 1; i >= 0; i--) {\n var currentSibling = siblings[i];\n if (equals(elem, currentSibling))\n return true;\n if (adapter.isTag(currentSibling) &&\n adapter.getName(currentSibling) === elemName) {\n break;\n }\n }\n return false;\n },\n \"only-of-type\": function (elem, _a) {\n var adapter = _a.adapter, equals = _a.equals;\n var elemName = adapter.getName(elem);\n return adapter\n .getSiblings(elem)\n .every(function (sibling) {\n return equals(elem, sibling) ||\n !adapter.isTag(sibling) ||\n adapter.getName(sibling) !== elemName;\n });\n },\n \"only-child\": function (elem, _a) {\n var adapter = _a.adapter, equals = _a.equals;\n return adapter\n .getSiblings(elem)\n .every(function (sibling) { return equals(elem, sibling) || !adapter.isTag(sibling); });\n },\n};\nfunction verifyPseudoArgs(func, name, subselect, argIndex) {\n if (subselect === null) {\n if (func.length > argIndex) {\n throw new Error(\"Pseudo-class :\".concat(name, \" requires an argument\"));\n }\n }\n else if (func.length === argIndex) {\n throw new Error(\"Pseudo-class :\".concat(name, \" doesn't have any arguments\"));\n }\n}\nexports.verifyPseudoArgs = verifyPseudoArgs;\n//# sourceMappingURL=pseudos.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.aliases = void 0;\n/**\n * Aliases are pseudos that are expressed as selectors.\n */\nexports.aliases = {\n // Links\n \"any-link\": \":is(a, area, link)[href]\",\n link: \":any-link:not(:visited)\",\n // Forms\n // https://html.spec.whatwg.org/multipage/scripting.html#disabled-elements\n disabled: \":is(\\n :is(button, input, select, textarea, optgroup, option)[disabled],\\n optgroup[disabled] > option,\\n fieldset[disabled]:not(fieldset[disabled] legend:first-of-type *)\\n )\",\n enabled: \":not(:disabled)\",\n checked: \":is(:is(input[type=radio], input[type=checkbox])[checked], option:selected)\",\n required: \":is(input, select, textarea)[required]\",\n optional: \":is(input, select, textarea):not([required])\",\n // JQuery extensions\n // https://html.spec.whatwg.org/multipage/form-elements.html#concept-option-selectedness\n selected: \"option:is([selected], select:not([multiple]):not(:has(> option[selected])) > :first-of-type)\",\n checkbox: \"[type=checkbox]\",\n file: \"[type=file]\",\n password: \"[type=password]\",\n radio: \"[type=radio]\",\n reset: \"[type=reset]\",\n image: \"[type=image]\",\n submit: \"[type=submit]\",\n parent: \":not(:empty)\",\n header: \":is(h1, h2, h3, h4, h5, h6)\",\n button: \":is(button, input[type=button])\",\n input: \":is(input, textarea, select, button)\",\n text: \"input:is(:not([type!='']), [type=text])\",\n};\n//# sourceMappingURL=aliases.js.map","\"use strict\";\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.subselects = exports.getNextSiblings = exports.ensureIsTag = exports.PLACEHOLDER_ELEMENT = void 0;\nvar boolbase_1 = __importDefault(require(\"boolbase\"));\nvar sort_js_1 = require(\"../sort.js\");\n/** Used as a placeholder for :has. Will be replaced with the actual element. */\nexports.PLACEHOLDER_ELEMENT = {};\nfunction ensureIsTag(next, adapter) {\n if (next === boolbase_1.default.falseFunc)\n return boolbase_1.default.falseFunc;\n return function (elem) { return adapter.isTag(elem) && next(elem); };\n}\nexports.ensureIsTag = ensureIsTag;\nfunction getNextSiblings(elem, adapter) {\n var siblings = adapter.getSiblings(elem);\n if (siblings.length <= 1)\n return [];\n var elemIndex = siblings.indexOf(elem);\n if (elemIndex < 0 || elemIndex === siblings.length - 1)\n return [];\n return siblings.slice(elemIndex + 1).filter(adapter.isTag);\n}\nexports.getNextSiblings = getNextSiblings;\nfunction copyOptions(options) {\n // Not copied: context, rootFunc\n return {\n xmlMode: !!options.xmlMode,\n lowerCaseAttributeNames: !!options.lowerCaseAttributeNames,\n lowerCaseTags: !!options.lowerCaseTags,\n quirksMode: !!options.quirksMode,\n cacheResults: !!options.cacheResults,\n pseudos: options.pseudos,\n adapter: options.adapter,\n equals: options.equals,\n };\n}\nvar is = function (next, token, options, context, compileToken) {\n var func = compileToken(token, copyOptions(options), context);\n return func === boolbase_1.default.trueFunc\n ? next\n : func === boolbase_1.default.falseFunc\n ? boolbase_1.default.falseFunc\n : function (elem) { return func(elem) && next(elem); };\n};\n/*\n * :not, :has, :is, :matches and :where have to compile selectors\n * doing this in src/pseudos.ts would lead to circular dependencies,\n * so we add them here\n */\nexports.subselects = {\n is: is,\n /**\n * `:matches` and `:where` are aliases for `:is`.\n */\n matches: is,\n where: is,\n not: function (next, token, options, context, compileToken) {\n var func = compileToken(token, copyOptions(options), context);\n return func === boolbase_1.default.falseFunc\n ? next\n : func === boolbase_1.default.trueFunc\n ? boolbase_1.default.falseFunc\n : function (elem) { return !func(elem) && next(elem); };\n },\n has: function (next, subselect, options, _context, compileToken) {\n var adapter = options.adapter;\n var opts = copyOptions(options);\n opts.relativeSelector = true;\n var context = subselect.some(function (s) { return s.some(sort_js_1.isTraversal); })\n ? // Used as a placeholder. Will be replaced with the actual element.\n [exports.PLACEHOLDER_ELEMENT]\n : undefined;\n var compiled = compileToken(subselect, opts, context);\n if (compiled === boolbase_1.default.falseFunc)\n return boolbase_1.default.falseFunc;\n var hasElement = ensureIsTag(compiled, adapter);\n // If `compiled` is `trueFunc`, we can skip this.\n if (context && compiled !== boolbase_1.default.trueFunc) {\n /*\n * `shouldTestNextSiblings` will only be true if the query starts with\n * a traversal (sibling or adjacent). That means we will always have a context.\n */\n var _a = compiled.shouldTestNextSiblings, shouldTestNextSiblings_1 = _a === void 0 ? false : _a;\n return function (elem) {\n if (!next(elem))\n return false;\n context[0] = elem;\n var childs = adapter.getChildren(elem);\n var nextElements = shouldTestNextSiblings_1\n ? __spreadArray(__spreadArray([], childs, true), getNextSiblings(elem, adapter), true) : childs;\n return adapter.existsOne(hasElement, nextElements);\n };\n }\n return function (elem) {\n return next(elem) &&\n adapter.existsOne(hasElement, adapter.getChildren(elem));\n };\n },\n};\n//# sourceMappingURL=subselects.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.compilePseudoSelector = exports.aliases = exports.pseudos = exports.filters = void 0;\nvar css_what_1 = require(\"css-what\");\nvar filters_js_1 = require(\"./filters.js\");\nObject.defineProperty(exports, \"filters\", { enumerable: true, get: function () { return filters_js_1.filters; } });\nvar pseudos_js_1 = require(\"./pseudos.js\");\nObject.defineProperty(exports, \"pseudos\", { enumerable: true, get: function () { return pseudos_js_1.pseudos; } });\nvar aliases_js_1 = require(\"./aliases.js\");\nObject.defineProperty(exports, \"aliases\", { enumerable: true, get: function () { return aliases_js_1.aliases; } });\nvar subselects_js_1 = require(\"./subselects.js\");\nfunction compilePseudoSelector(next, selector, options, context, compileToken) {\n var _a;\n var name = selector.name, data = selector.data;\n if (Array.isArray(data)) {\n if (!(name in subselects_js_1.subselects)) {\n throw new Error(\"Unknown pseudo-class :\".concat(name, \"(\").concat(data, \")\"));\n }\n return subselects_js_1.subselects[name](next, data, options, context, compileToken);\n }\n var userPseudo = (_a = options.pseudos) === null || _a === void 0 ? void 0 : _a[name];\n var stringPseudo = typeof userPseudo === \"string\" ? userPseudo : aliases_js_1.aliases[name];\n if (typeof stringPseudo === \"string\") {\n if (data != null) {\n throw new Error(\"Pseudo \".concat(name, \" doesn't have any arguments\"));\n }\n // The alias has to be parsed here, to make sure options are respected.\n var alias = (0, css_what_1.parse)(stringPseudo);\n return subselects_js_1.subselects[\"is\"](next, alias, options, context, compileToken);\n }\n if (typeof userPseudo === \"function\") {\n (0, pseudos_js_1.verifyPseudoArgs)(userPseudo, name, data, 1);\n return function (elem) { return userPseudo(elem, data) && next(elem); };\n }\n if (name in filters_js_1.filters) {\n return filters_js_1.filters[name](next, data, options, context);\n }\n if (name in pseudos_js_1.pseudos) {\n var pseudo_1 = pseudos_js_1.pseudos[name];\n (0, pseudos_js_1.verifyPseudoArgs)(pseudo_1, name, data, 2);\n return function (elem) { return pseudo_1(elem, options, data) && next(elem); };\n }\n throw new Error(\"Unknown pseudo-class :\".concat(name));\n}\nexports.compilePseudoSelector = compilePseudoSelector;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.compileGeneralSelector = void 0;\nvar attributes_js_1 = require(\"./attributes.js\");\nvar index_js_1 = require(\"./pseudo-selectors/index.js\");\nvar css_what_1 = require(\"css-what\");\nfunction getElementParent(node, adapter) {\n var parent = adapter.getParent(node);\n if (parent && adapter.isTag(parent)) {\n return parent;\n }\n return null;\n}\n/*\n * All available rules\n */\nfunction compileGeneralSelector(next, selector, options, context, compileToken) {\n var adapter = options.adapter, equals = options.equals;\n switch (selector.type) {\n case css_what_1.SelectorType.PseudoElement: {\n throw new Error(\"Pseudo-elements are not supported by css-select\");\n }\n case css_what_1.SelectorType.ColumnCombinator: {\n throw new Error(\"Column combinators are not yet supported by css-select\");\n }\n case css_what_1.SelectorType.Attribute: {\n if (selector.namespace != null) {\n throw new Error(\"Namespaced attributes are not yet supported by css-select\");\n }\n if (!options.xmlMode || options.lowerCaseAttributeNames) {\n selector.name = selector.name.toLowerCase();\n }\n return attributes_js_1.attributeRules[selector.action](next, selector, options);\n }\n case css_what_1.SelectorType.Pseudo: {\n return (0, index_js_1.compilePseudoSelector)(next, selector, options, context, compileToken);\n }\n // Tags\n case css_what_1.SelectorType.Tag: {\n if (selector.namespace != null) {\n throw new Error(\"Namespaced tag names are not yet supported by css-select\");\n }\n var name_1 = selector.name;\n if (!options.xmlMode || options.lowerCaseTags) {\n name_1 = name_1.toLowerCase();\n }\n return function tag(elem) {\n return adapter.getName(elem) === name_1 && next(elem);\n };\n }\n // Traversal\n case css_what_1.SelectorType.Descendant: {\n if (options.cacheResults === false ||\n typeof WeakSet === \"undefined\") {\n return function descendant(elem) {\n var current = elem;\n while ((current = getElementParent(current, adapter))) {\n if (next(current)) {\n return true;\n }\n }\n return false;\n };\n }\n // @ts-expect-error `ElementNode` is not extending object\n var isFalseCache_1 = new WeakSet();\n return function cachedDescendant(elem) {\n var current = elem;\n while ((current = getElementParent(current, adapter))) {\n if (!isFalseCache_1.has(current)) {\n if (adapter.isTag(current) && next(current)) {\n return true;\n }\n isFalseCache_1.add(current);\n }\n }\n return false;\n };\n }\n case \"_flexibleDescendant\": {\n // Include element itself, only used while querying an array\n return function flexibleDescendant(elem) {\n var current = elem;\n do {\n if (next(current))\n return true;\n } while ((current = getElementParent(current, adapter)));\n return false;\n };\n }\n case css_what_1.SelectorType.Parent: {\n return function parent(elem) {\n return adapter\n .getChildren(elem)\n .some(function (elem) { return adapter.isTag(elem) && next(elem); });\n };\n }\n case css_what_1.SelectorType.Child: {\n return function child(elem) {\n var parent = adapter.getParent(elem);\n return parent != null && adapter.isTag(parent) && next(parent);\n };\n }\n case css_what_1.SelectorType.Sibling: {\n return function sibling(elem) {\n var siblings = adapter.getSiblings(elem);\n for (var i = 0; i < siblings.length; i++) {\n var currentSibling = siblings[i];\n if (equals(elem, currentSibling))\n break;\n if (adapter.isTag(currentSibling) && next(currentSibling)) {\n return true;\n }\n }\n return false;\n };\n }\n case css_what_1.SelectorType.Adjacent: {\n if (adapter.prevElementSibling) {\n return function adjacent(elem) {\n var previous = adapter.prevElementSibling(elem);\n return previous != null && next(previous);\n };\n }\n return function adjacent(elem) {\n var siblings = adapter.getSiblings(elem);\n var lastElement;\n for (var i = 0; i < siblings.length; i++) {\n var currentSibling = siblings[i];\n if (equals(elem, currentSibling))\n break;\n if (adapter.isTag(currentSibling)) {\n lastElement = currentSibling;\n }\n }\n return !!lastElement && next(lastElement);\n };\n }\n case css_what_1.SelectorType.Universal: {\n if (selector.namespace != null && selector.namespace !== \"*\") {\n throw new Error(\"Namespaced universal selectors are not yet supported by css-select\");\n }\n return next;\n }\n }\n}\nexports.compileGeneralSelector = compileGeneralSelector;\n//# sourceMappingURL=general.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.compileToken = exports.compileUnsafe = exports.compile = void 0;\nvar css_what_1 = require(\"css-what\");\nvar boolbase_1 = __importDefault(require(\"boolbase\"));\nvar sort_js_1 = __importStar(require(\"./sort.js\"));\nvar general_js_1 = require(\"./general.js\");\nvar subselects_js_1 = require(\"./pseudo-selectors/subselects.js\");\n/**\n * Compiles a selector to an executable function.\n *\n * @param selector Selector to compile.\n * @param options Compilation options.\n * @param context Optional context for the selector.\n */\nfunction compile(selector, options, context) {\n var next = compileUnsafe(selector, options, context);\n return (0, subselects_js_1.ensureIsTag)(next, options.adapter);\n}\nexports.compile = compile;\nfunction compileUnsafe(selector, options, context) {\n var token = typeof selector === \"string\" ? (0, css_what_1.parse)(selector) : selector;\n return compileToken(token, options, context);\n}\nexports.compileUnsafe = compileUnsafe;\nfunction includesScopePseudo(t) {\n return (t.type === css_what_1.SelectorType.Pseudo &&\n (t.name === \"scope\" ||\n (Array.isArray(t.data) &&\n t.data.some(function (data) { return data.some(includesScopePseudo); }))));\n}\nvar DESCENDANT_TOKEN = { type: css_what_1.SelectorType.Descendant };\nvar FLEXIBLE_DESCENDANT_TOKEN = {\n type: \"_flexibleDescendant\",\n};\nvar SCOPE_TOKEN = {\n type: css_what_1.SelectorType.Pseudo,\n name: \"scope\",\n data: null,\n};\n/*\n * CSS 4 Spec (Draft): 3.4.1. Absolutizing a Relative Selector\n * http://www.w3.org/TR/selectors4/#absolutizing\n */\nfunction absolutize(token, _a, context) {\n var adapter = _a.adapter;\n // TODO Use better check if the context is a document\n var hasContext = !!(context === null || context === void 0 ? void 0 : context.every(function (e) {\n var parent = adapter.isTag(e) && adapter.getParent(e);\n return e === subselects_js_1.PLACEHOLDER_ELEMENT || (parent && adapter.isTag(parent));\n }));\n for (var _i = 0, token_1 = token; _i < token_1.length; _i++) {\n var t = token_1[_i];\n if (t.length > 0 &&\n (0, sort_js_1.isTraversal)(t[0]) &&\n t[0].type !== css_what_1.SelectorType.Descendant) {\n // Don't continue in else branch\n }\n else if (hasContext && !t.some(includesScopePseudo)) {\n t.unshift(DESCENDANT_TOKEN);\n }\n else {\n continue;\n }\n t.unshift(SCOPE_TOKEN);\n }\n}\nfunction compileToken(token, options, context) {\n var _a;\n token.forEach(sort_js_1.default);\n context = (_a = options.context) !== null && _a !== void 0 ? _a : context;\n var isArrayContext = Array.isArray(context);\n var finalContext = context && (Array.isArray(context) ? context : [context]);\n // Check if the selector is relative\n if (options.relativeSelector !== false) {\n absolutize(token, options, finalContext);\n }\n else if (token.some(function (t) { return t.length > 0 && (0, sort_js_1.isTraversal)(t[0]); })) {\n throw new Error(\"Relative selectors are not allowed when the `relativeSelector` option is disabled\");\n }\n var shouldTestNextSiblings = false;\n var query = token\n .map(function (rules) {\n if (rules.length >= 2) {\n var first = rules[0], second = rules[1];\n if (first.type !== css_what_1.SelectorType.Pseudo ||\n first.name !== \"scope\") {\n // Ignore\n }\n else if (isArrayContext &&\n second.type === css_what_1.SelectorType.Descendant) {\n rules[1] = FLEXIBLE_DESCENDANT_TOKEN;\n }\n else if (second.type === css_what_1.SelectorType.Adjacent ||\n second.type === css_what_1.SelectorType.Sibling) {\n shouldTestNextSiblings = true;\n }\n }\n return compileRules(rules, options, finalContext);\n })\n .reduce(reduceRules, boolbase_1.default.falseFunc);\n query.shouldTestNextSiblings = shouldTestNextSiblings;\n return query;\n}\nexports.compileToken = compileToken;\nfunction compileRules(rules, options, context) {\n var _a;\n return rules.reduce(function (previous, rule) {\n return previous === boolbase_1.default.falseFunc\n ? boolbase_1.default.falseFunc\n : (0, general_js_1.compileGeneralSelector)(previous, rule, options, context, compileToken);\n }, (_a = options.rootFunc) !== null && _a !== void 0 ? _a : boolbase_1.default.trueFunc);\n}\nfunction reduceRules(a, b) {\n if (b === boolbase_1.default.falseFunc || a === boolbase_1.default.trueFunc) {\n return a;\n }\n if (a === boolbase_1.default.falseFunc || b === boolbase_1.default.trueFunc) {\n return b;\n }\n return function combine(elem) {\n return a(elem) || b(elem);\n };\n}\n//# sourceMappingURL=compile.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.aliases = exports.pseudos = exports.filters = exports.is = exports.selectOne = exports.selectAll = exports.prepareContext = exports._compileToken = exports._compileUnsafe = exports.compile = void 0;\nvar DomUtils = __importStar(require(\"domutils\"));\nvar boolbase_1 = __importDefault(require(\"boolbase\"));\nvar compile_js_1 = require(\"./compile.js\");\nvar subselects_js_1 = require(\"./pseudo-selectors/subselects.js\");\nvar defaultEquals = function (a, b) { return a === b; };\nvar defaultOptions = {\n adapter: DomUtils,\n equals: defaultEquals,\n};\nfunction convertOptionFormats(options) {\n var _a, _b, _c, _d;\n /*\n * We force one format of options to the other one.\n */\n // @ts-expect-error Default options may have incompatible `Node` / `ElementNode`.\n var opts = options !== null && options !== void 0 ? options : defaultOptions;\n // @ts-expect-error Same as above.\n (_a = opts.adapter) !== null && _a !== void 0 ? _a : (opts.adapter = DomUtils);\n // @ts-expect-error `equals` does not exist on `Options`\n (_b = opts.equals) !== null && _b !== void 0 ? _b : (opts.equals = (_d = (_c = opts.adapter) === null || _c === void 0 ? void 0 : _c.equals) !== null && _d !== void 0 ? _d : defaultEquals);\n return opts;\n}\nfunction wrapCompile(func) {\n return function addAdapter(selector, options, context) {\n var opts = convertOptionFormats(options);\n return func(selector, opts, context);\n };\n}\n/**\n * Compiles the query, returns a function.\n */\nexports.compile = wrapCompile(compile_js_1.compile);\nexports._compileUnsafe = wrapCompile(compile_js_1.compileUnsafe);\nexports._compileToken = wrapCompile(compile_js_1.compileToken);\nfunction getSelectorFunc(searchFunc) {\n return function select(query, elements, options) {\n var opts = convertOptionFormats(options);\n if (typeof query !== \"function\") {\n query = (0, compile_js_1.compileUnsafe)(query, opts, elements);\n }\n var filteredElements = prepareContext(elements, opts.adapter, query.shouldTestNextSiblings);\n return searchFunc(query, filteredElements, opts);\n };\n}\nfunction prepareContext(elems, adapter, shouldTestNextSiblings) {\n if (shouldTestNextSiblings === void 0) { shouldTestNextSiblings = false; }\n /*\n * Add siblings if the query requires them.\n * See https://github.com/fb55/css-select/pull/43#issuecomment-225414692\n */\n if (shouldTestNextSiblings) {\n elems = appendNextSiblings(elems, adapter);\n }\n return Array.isArray(elems)\n ? adapter.removeSubsets(elems)\n : adapter.getChildren(elems);\n}\nexports.prepareContext = prepareContext;\nfunction appendNextSiblings(elem, adapter) {\n // Order matters because jQuery seems to check the children before the siblings\n var elems = Array.isArray(elem) ? elem.slice(0) : [elem];\n var elemsLength = elems.length;\n for (var i = 0; i < elemsLength; i++) {\n var nextSiblings = (0, subselects_js_1.getNextSiblings)(elems[i], adapter);\n elems.push.apply(elems, nextSiblings);\n }\n return elems;\n}\n/**\n * @template Node The generic Node type for the DOM adapter being used.\n * @template ElementNode The Node type for elements for the DOM adapter being used.\n * @param elems Elements to query. If it is an element, its children will be queried..\n * @param query can be either a CSS selector string or a compiled query function.\n * @param [options] options for querying the document.\n * @see compile for supported selector queries.\n * @returns All matching elements.\n *\n */\nexports.selectAll = getSelectorFunc(function (query, elems, options) {\n return query === boolbase_1.default.falseFunc || !elems || elems.length === 0\n ? []\n : options.adapter.findAll(query, elems);\n});\n/**\n * @template Node The generic Node type for the DOM adapter being used.\n * @template ElementNode The Node type for elements for the DOM adapter being used.\n * @param elems Elements to query. If it is an element, its children will be queried..\n * @param query can be either a CSS selector string or a compiled query function.\n * @param [options] options for querying the document.\n * @see compile for supported selector queries.\n * @returns the first match, or null if there was no match.\n */\nexports.selectOne = getSelectorFunc(function (query, elems, options) {\n return query === boolbase_1.default.falseFunc || !elems || elems.length === 0\n ? null\n : options.adapter.findOne(query, elems);\n});\n/**\n * Tests whether or not an element is matched by query.\n *\n * @template Node The generic Node type for the DOM adapter being used.\n * @template ElementNode The Node type for elements for the DOM adapter being used.\n * @param elem The element to test if it matches the query.\n * @param query can be either a CSS selector string or a compiled query function.\n * @param [options] options for querying the document.\n * @see compile for supported selector queries.\n * @returns\n */\nfunction is(elem, query, options) {\n var opts = convertOptionFormats(options);\n return (typeof query === \"function\" ? query : (0, compile_js_1.compile)(query, opts))(elem);\n}\nexports.is = is;\n/**\n * Alias for selectAll(query, elems, options).\n * @see [compile] for supported selector queries.\n */\nexports.default = exports.selectAll;\n// Export filters, pseudos and aliases to allow users to supply their own.\n/** @deprecated Use the `pseudos` option instead. */\nvar index_js_1 = require(\"./pseudo-selectors/index.js\");\nObject.defineProperty(exports, \"filters\", { enumerable: true, get: function () { return index_js_1.filters; } });\nObject.defineProperty(exports, \"pseudos\", { enumerable: true, get: function () { return index_js_1.pseudos; } });\nObject.defineProperty(exports, \"aliases\", { enumerable: true, get: function () { return index_js_1.aliases; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction arr_back(arr) {\n return arr[arr.length - 1];\n}\nexports.default = arr_back;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar type_1 = __importDefault(require(\"./nodes/type\"));\nfunction isTag(node) {\n return node && node.nodeType === type_1.default.ELEMENT_NODE;\n}\nfunction getAttributeValue(elem, name) {\n return isTag(elem) ? elem.getAttribute(name) : undefined;\n}\nfunction getName(elem) {\n return ((elem && elem.rawTagName) || '').toLowerCase();\n}\nfunction getChildren(node) {\n return node && node.childNodes;\n}\nfunction getParent(node) {\n return node ? node.parentNode : null;\n}\nfunction getText(node) {\n return node.text;\n}\nfunction removeSubsets(nodes) {\n var idx = nodes.length;\n var node;\n var ancestor;\n var replace;\n // Check if each node (or one of its ancestors) is already contained in the\n // array.\n while (--idx > -1) {\n node = ancestor = nodes[idx];\n // Temporarily remove the node under consideration\n nodes[idx] = null;\n replace = true;\n while (ancestor) {\n if (nodes.indexOf(ancestor) > -1) {\n replace = false;\n nodes.splice(idx, 1);\n break;\n }\n ancestor = getParent(ancestor);\n }\n // If the node has been found to be unique, re-insert it.\n if (replace) {\n nodes[idx] = node;\n }\n }\n return nodes;\n}\nfunction existsOne(test, elems) {\n return elems.some(function (elem) {\n return isTag(elem) ? test(elem) || existsOne(test, getChildren(elem)) : false;\n });\n}\nfunction getSiblings(node) {\n var parent = getParent(node);\n return parent ? getChildren(parent) : [];\n}\nfunction hasAttrib(elem, name) {\n return getAttributeValue(elem, name) !== undefined;\n}\nfunction findOne(test, elems) {\n var elem = null;\n for (var i = 0, l = elems === null || elems === void 0 ? void 0 : elems.length; i < l && !elem; i++) {\n var el = elems[i];\n if (test(el)) {\n elem = el;\n }\n else {\n var childs = getChildren(el);\n if (childs && childs.length > 0) {\n elem = findOne(test, childs);\n }\n }\n }\n return elem;\n}\nfunction findAll(test, nodes) {\n var result = [];\n for (var i = 0, j = nodes.length; i < j; i++) {\n if (!isTag(nodes[i]))\n continue;\n if (test(nodes[i]))\n result.push(nodes[i]);\n var childs = getChildren(nodes[i]);\n if (childs)\n result = result.concat(findAll(test, childs));\n }\n return result;\n}\nexports.default = {\n isTag: isTag,\n getAttributeValue: getAttributeValue,\n getName: getName,\n getChildren: getChildren,\n getParent: getParent,\n getText: getText,\n removeSubsets: removeSubsets,\n existsOne: existsOne,\n getSiblings: getSiblings,\n hasAttrib: hasAttrib,\n findOne: findOne,\n findAll: findAll\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar VoidTag = /** @class */ (function () {\n function VoidTag(addClosingSlash, tags) {\n if (addClosingSlash === void 0) { addClosingSlash = false; }\n this.addClosingSlash = addClosingSlash;\n if (Array.isArray(tags)) {\n this.voidTags = tags.reduce(function (set, tag) {\n return set.add(tag.toLowerCase()).add(tag.toUpperCase()).add(tag);\n }, new Set());\n }\n else {\n this.voidTags = ['area', 'base', 'br', 'col', 'embed', 'hr', 'img', 'input', 'link', 'meta', 'param', 'source', 'track', 'wbr'].reduce(function (set, tag) {\n return set.add(tag.toLowerCase()).add(tag.toUpperCase()).add(tag);\n }, new Set());\n }\n }\n VoidTag.prototype.formatNode = function (tag, attrs, innerHTML) {\n var addClosingSlash = this.addClosingSlash;\n var closingSpace = (addClosingSlash && attrs && !attrs.endsWith(' ')) ? ' ' : '';\n var closingSlash = addClosingSlash ? \"\".concat(closingSpace, \"/\") : '';\n return this.isVoidElement(tag.toLowerCase()) ? \"<\".concat(tag).concat(attrs).concat(closingSlash, \">\") : \"<\".concat(tag).concat(attrs, \">\").concat(innerHTML, \"</\").concat(tag, \">\");\n };\n VoidTag.prototype.isVoidElement = function (tag) {\n return this.voidTags.has(tag);\n };\n return VoidTag;\n}());\nexports.default = VoidTag;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar he_1 = require(\"he\");\nvar node_1 = __importDefault(require(\"./node\"));\nvar type_1 = __importDefault(require(\"./type\"));\n/**\n * TextNode to contain a text element in DOM tree.\n * @param {string} value [description]\n */\nvar TextNode = /** @class */ (function (_super) {\n __extends(TextNode, _super);\n function TextNode(rawText, parentNode, range) {\n if (parentNode === void 0) { parentNode = null; }\n var _this = _super.call(this, parentNode, range) || this;\n /**\n * Node Type declaration.\n * @type {Number}\n */\n _this.nodeType = type_1.default.TEXT_NODE;\n _this.rawTagName = '';\n _this._rawText = rawText;\n return _this;\n }\n TextNode.prototype.clone = function () {\n return new TextNode(this._rawText, null);\n };\n Object.defineProperty(TextNode.prototype, \"rawText\", {\n get: function () {\n return this._rawText;\n },\n /**\n * Set rawText and invalidate trimmed caches\n */\n set: function (text) {\n this._rawText = text;\n this._trimmedRawText = void 0;\n this._trimmedText = void 0;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextNode.prototype, \"trimmedRawText\", {\n /**\n * Returns raw text with all whitespace trimmed except single leading/trailing non-breaking space\n */\n get: function () {\n if (this._trimmedRawText !== undefined)\n return this._trimmedRawText;\n this._trimmedRawText = trimText(this.rawText);\n return this._trimmedRawText;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextNode.prototype, \"trimmedText\", {\n /**\n * Returns text with all whitespace trimmed except single leading/trailing non-breaking space\n */\n get: function () {\n if (this._trimmedText !== undefined)\n return this._trimmedText;\n this._trimmedText = trimText(this.text);\n return this._trimmedText;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextNode.prototype, \"text\", {\n /**\n * Get unescaped text value of current node and its children.\n * @return {string} text content\n */\n get: function () {\n return (0, he_1.decode)(this.rawText);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextNode.prototype, \"isWhitespace\", {\n /**\n * Detect if the node contains only white space.\n * @return {boolean}\n */\n get: function () {\n return /^(\\s| )*$/.test(this.rawText);\n },\n enumerable: false,\n configurable: true\n });\n TextNode.prototype.toString = function () {\n return this.rawText;\n };\n return TextNode;\n}(node_1.default));\nexports.default = TextNode;\n/**\n * Trim whitespace except single leading/trailing non-breaking space\n */\nfunction trimText(text) {\n var i = 0;\n var startPos;\n var endPos;\n while (i >= 0 && i < text.length) {\n if (/\\S/.test(text[i])) {\n if (startPos === undefined) {\n startPos = i;\n i = text.length;\n }\n else {\n endPos = i;\n i = void 0;\n }\n }\n if (startPos === undefined)\n i++;\n else\n i--;\n }\n if (startPos === undefined)\n startPos = 0;\n if (endPos === undefined)\n endPos = text.length - 1;\n var hasLeadingSpace = startPos > 0 && /[^\\S\\r\\n]/.test(text[startPos - 1]);\n var hasTrailingSpace = endPos < (text.length - 1) && /[^\\S\\r\\n]/.test(text[endPos + 1]);\n return (hasLeadingSpace ? ' ' : '') + text.slice(startPos, endPos + 1) + (hasTrailingSpace ? ' ' : '');\n}\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parse = exports.base_parse = void 0;\nvar css_select_1 = require(\"css-select\");\nvar he_1 = __importDefault(require(\"he\"));\nvar back_1 = __importDefault(require(\"../back\"));\nvar matcher_1 = __importDefault(require(\"../matcher\"));\nvar void_tag_1 = __importDefault(require(\"../void-tag\"));\nvar comment_1 = __importDefault(require(\"./comment\"));\nvar node_1 = __importDefault(require(\"./node\"));\nvar text_1 = __importDefault(require(\"./text\"));\nvar type_1 = __importDefault(require(\"./type\"));\nfunction decode(val) {\n // clone string\n return JSON.parse(JSON.stringify(he_1.default.decode(val)));\n}\n// https://developer.mozilla.org/en-US/docs/Web/HTML/Block-level_elements\nvar Htags = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'header', 'hgroup'];\nvar Dtags = ['details', 'dialog', 'dd', 'div', 'dt'];\nvar Ftags = ['fieldset', 'figcaption', 'figure', 'footer', 'form'];\nvar tableTags = ['table', 'td', 'tr'];\nvar htmlTags = ['address', 'article', 'aside', 'blockquote', 'br', 'hr', 'li', 'main', 'nav', 'ol', 'p', 'pre', 'section', 'ul'];\nvar kBlockElements = new Set();\nfunction addToKBlockElement() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var addToSet = function (array) {\n for (var index = 0; index < array.length; index++) {\n var element = array[index];\n kBlockElements.add(element);\n kBlockElements.add(element.toUpperCase());\n }\n };\n for (var _a = 0, args_1 = args; _a < args_1.length; _a++) {\n var arg = args_1[_a];\n addToSet(arg);\n }\n}\naddToKBlockElement(Htags, Dtags, Ftags, tableTags, htmlTags);\nvar DOMTokenList = /** @class */ (function () {\n function DOMTokenList(valuesInit, afterUpdate) {\n if (valuesInit === void 0) { valuesInit = []; }\n if (afterUpdate === void 0) { afterUpdate = function () { return null; }; }\n this._set = new Set(valuesInit);\n this._afterUpdate = afterUpdate;\n }\n DOMTokenList.prototype._validate = function (c) {\n if (/\\s/.test(c)) {\n throw new Error(\"DOMException in DOMTokenList.add: The token '\".concat(c, \"' contains HTML space characters, which are not valid in tokens.\"));\n }\n };\n DOMTokenList.prototype.add = function (c) {\n this._validate(c);\n this._set.add(c);\n this._afterUpdate(this); // eslint-disable-line @typescript-eslint/no-unsafe-call\n };\n DOMTokenList.prototype.replace = function (c1, c2) {\n this._validate(c2);\n this._set.delete(c1);\n this._set.add(c2);\n this._afterUpdate(this); // eslint-disable-line @typescript-eslint/no-unsafe-call\n };\n DOMTokenList.prototype.remove = function (c) {\n this._set.delete(c) && this._afterUpdate(this); // eslint-disable-line @typescript-eslint/no-unsafe-call\n };\n DOMTokenList.prototype.toggle = function (c) {\n this._validate(c);\n if (this._set.has(c))\n this._set.delete(c);\n else\n this._set.add(c);\n this._afterUpdate(this); // eslint-disable-line @typescript-eslint/no-unsafe-call\n };\n DOMTokenList.prototype.contains = function (c) {\n return this._set.has(c);\n };\n Object.defineProperty(DOMTokenList.prototype, \"length\", {\n get: function () {\n return this._set.size;\n },\n enumerable: false,\n configurable: true\n });\n DOMTokenList.prototype.values = function () {\n return this._set.values();\n };\n Object.defineProperty(DOMTokenList.prototype, \"value\", {\n get: function () {\n return Array.from(this._set.values());\n },\n enumerable: false,\n configurable: true\n });\n DOMTokenList.prototype.toString = function () {\n return Array.from(this._set.values()).join(' ');\n };\n return DOMTokenList;\n}());\n/**\n * HTMLElement, which contains a set of children.\n *\n * Note: this is a minimalist implementation, no complete tree\n * structure provided (no parentNode, nextSibling,\n * previousSibling etc).\n * @class HTMLElement\n * @extends {Node}\n */\nvar HTMLElement = /** @class */ (function (_super) {\n __extends(HTMLElement, _super);\n /**\n * Creates an instance of HTMLElement.\n * @param keyAttrs\tid and class attribute\n * @param [rawAttrs]\tattributes in string\n *\n * @memberof HTMLElement\n */\n function HTMLElement(tagName, keyAttrs, rawAttrs, parentNode, range, voidTag, _parseOptions) {\n if (rawAttrs === void 0) { rawAttrs = ''; }\n if (parentNode === void 0) { parentNode = null; }\n if (voidTag === void 0) { voidTag = new void_tag_1.default(); }\n if (_parseOptions === void 0) { _parseOptions = {}; }\n var _this = _super.call(this, parentNode, range) || this;\n _this.rawAttrs = rawAttrs;\n _this.voidTag = voidTag;\n /**\n * Node Type declaration.\n */\n _this.nodeType = type_1.default.ELEMENT_NODE;\n _this.rawTagName = tagName;\n _this.rawAttrs = rawAttrs || '';\n _this.id = keyAttrs.id || '';\n _this.childNodes = [];\n _this._parseOptions = _parseOptions;\n _this.classList = new DOMTokenList(keyAttrs.class ? keyAttrs.class.split(/\\s+/) : [], function (classList) { return _this.setAttribute('class', classList.toString()); } // eslint-disable-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call\n );\n if (keyAttrs.id) {\n if (!rawAttrs) {\n _this.rawAttrs = \"id=\\\"\".concat(keyAttrs.id, \"\\\"\");\n }\n }\n if (keyAttrs.class) {\n if (!rawAttrs) {\n var cls = \"class=\\\"\".concat(_this.classList.toString(), \"\\\"\");\n if (_this.rawAttrs) {\n _this.rawAttrs += \" \".concat(cls);\n }\n else {\n _this.rawAttrs = cls;\n }\n }\n }\n return _this;\n }\n /**\n * Quote attribute values\n * @param attr attribute value\n * @returns {string} quoted value\n */\n HTMLElement.prototype.quoteAttribute = function (attr) {\n if (attr == null) {\n return 'null';\n }\n return JSON.stringify(attr.replace(/\"/g, '"')).replace(/\\\\t/g, '\\t').replace(/\\\\n/g, '\\n').replace(/\\\\r/g, '\\r').replace(/\\\\/g, '');\n };\n /**\n * Remove Child element from childNodes array\n * @param {HTMLElement} node node to remove\n */\n HTMLElement.prototype.removeChild = function (node) {\n this.childNodes = this.childNodes.filter(function (child) {\n return child !== node;\n });\n return this;\n };\n /**\n * Exchanges given child with new child\n * @param {HTMLElement} oldNode node to exchange\n * @param {HTMLElement} newNode new node\n */\n HTMLElement.prototype.exchangeChild = function (oldNode, newNode) {\n var children = this.childNodes;\n this.childNodes = children.map(function (child) {\n if (child === oldNode) {\n return newNode;\n }\n return child;\n });\n return this;\n };\n Object.defineProperty(HTMLElement.prototype, \"tagName\", {\n get: function () {\n return this.rawTagName ? this.rawTagName.toUpperCase() : this.rawTagName;\n },\n set: function (newname) {\n this.rawTagName = newname.toLowerCase();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(HTMLElement.prototype, \"localName\", {\n get: function () {\n return this.rawTagName.toLowerCase();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(HTMLElement.prototype, \"isVoidElement\", {\n get: function () {\n return this.voidTag.isVoidElement(this.localName);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(HTMLElement.prototype, \"rawText\", {\n /**\n * Get escpaed (as-it) text value of current node and its children.\n * @return {string} text content\n */\n get: function () {\n // https://github.com/taoqf/node-html-parser/issues/249\n if (/^br$/i.test(this.rawTagName)) {\n return '\\n';\n }\n return this.childNodes.reduce(function (pre, cur) {\n return (pre += cur.rawText);\n }, '');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(HTMLElement.prototype, \"textContent\", {\n get: function () {\n return decode(this.rawText);\n },\n set: function (val) {\n var content = [new text_1.default(val, this)];\n this.childNodes = content;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(HTMLElement.prototype, \"text\", {\n /**\n * Get unescaped text value of current node and its children.\n * @return {string} text content\n */\n get: function () {\n return decode(this.rawText);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(HTMLElement.prototype, \"structuredText\", {\n /**\n * Get structured Text (with '\\n' etc.)\n * @return {string} structured text\n */\n get: function () {\n var currentBlock = [];\n var blocks = [currentBlock];\n function dfs(node) {\n if (node.nodeType === type_1.default.ELEMENT_NODE) {\n if (kBlockElements.has(node.rawTagName)) {\n if (currentBlock.length > 0) {\n blocks.push((currentBlock = []));\n }\n node.childNodes.forEach(dfs);\n if (currentBlock.length > 0) {\n blocks.push((currentBlock = []));\n }\n }\n else {\n node.childNodes.forEach(dfs);\n }\n }\n else if (node.nodeType === type_1.default.TEXT_NODE) {\n if (node.isWhitespace) {\n // Whitespace node, postponed output\n currentBlock.prependWhitespace = true;\n }\n else {\n var text = node.trimmedText;\n if (currentBlock.prependWhitespace) {\n text = \" \".concat(text);\n currentBlock.prependWhitespace = false;\n }\n currentBlock.push(text);\n }\n }\n }\n dfs(this);\n return blocks\n .map(function (block) {\n return block.join('').replace(/\\s{2,}/g, ' '); // Normalize each line's whitespace\n })\n .join('\\n')\n .replace(/\\s+$/, ''); // trimRight;\n },\n enumerable: false,\n configurable: true\n });\n HTMLElement.prototype.toString = function () {\n var tag = this.rawTagName;\n if (tag) {\n var attrs = this.rawAttrs ? \" \".concat(this.rawAttrs) : '';\n return this.voidTag.formatNode(tag, attrs, this.innerHTML);\n }\n return this.innerHTML;\n };\n Object.defineProperty(HTMLElement.prototype, \"innerHTML\", {\n get: function () {\n return this.childNodes\n .map(function (child) {\n return child.toString();\n })\n .join('');\n },\n set: function (content) {\n var r = parse(content, this._parseOptions);\n var nodes = r.childNodes.length ? r.childNodes : [new text_1.default(content, this)];\n resetParent(nodes, this);\n resetParent(this.childNodes, null);\n this.childNodes = nodes;\n },\n enumerable: false,\n configurable: true\n });\n HTMLElement.prototype.set_content = function (content, options) {\n if (options === void 0) { options = {}; }\n if (content instanceof node_1.default) {\n content = [content];\n }\n else if (typeof content == 'string') {\n options = __assign(__assign({}, this._parseOptions), options);\n var r = parse(content, options);\n content = r.childNodes.length ? r.childNodes : [new text_1.default(r.innerHTML, this)];\n }\n resetParent(this.childNodes, null);\n resetParent(content, this);\n this.childNodes = content;\n return this;\n };\n HTMLElement.prototype.replaceWith = function () {\n var _this = this;\n var nodes = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n nodes[_i] = arguments[_i];\n }\n var parent = this.parentNode;\n var content = nodes\n .map(function (node) {\n if (node instanceof node_1.default) {\n return [node];\n }\n else if (typeof node == 'string') {\n var r = parse(node, _this._parseOptions);\n return r.childNodes.length ? r.childNodes : [new text_1.default(node, _this)];\n }\n return [];\n })\n .flat();\n var idx = parent.childNodes.findIndex(function (child) {\n return child === _this;\n });\n resetParent([this], null);\n parent.childNodes = __spreadArray(__spreadArray(__spreadArray([], parent.childNodes.slice(0, idx), true), resetParent(content, parent), true), parent.childNodes.slice(idx + 1), true);\n return this;\n };\n Object.defineProperty(HTMLElement.prototype, \"outerHTML\", {\n get: function () {\n return this.toString();\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Trim element from right (in block) after seeing pattern in a TextNode.\n * @param {RegExp} pattern pattern to find\n * @return {HTMLElement} reference to current node\n */\n HTMLElement.prototype.trimRight = function (pattern) {\n for (var i = 0; i < this.childNodes.length; i++) {\n var childNode = this.childNodes[i];\n if (childNode.nodeType === type_1.default.ELEMENT_NODE) {\n childNode.trimRight(pattern);\n }\n else {\n var index = childNode.rawText.search(pattern);\n if (index > -1) {\n childNode.rawText = childNode.rawText.substr(0, index);\n // trim all following nodes.\n this.childNodes.length = i + 1;\n }\n }\n }\n return this;\n };\n Object.defineProperty(HTMLElement.prototype, \"structure\", {\n /**\n * Get DOM structure\n * @return {string} structure\n */\n get: function () {\n var res = [];\n var indention = 0;\n function write(str) {\n res.push(' '.repeat(indention) + str);\n }\n function dfs(node) {\n var idStr = node.id ? \"#\".concat(node.id) : '';\n var classStr = node.classList.length ? \".\".concat(node.classList.value.join('.')) : ''; // eslint-disable-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/restrict-template-expressions, @typescript-eslint/no-unsafe-call\n write(\"\".concat(node.rawTagName).concat(idStr).concat(classStr));\n indention++;\n node.childNodes.forEach(function (childNode) {\n if (childNode.nodeType === type_1.default.ELEMENT_NODE) {\n dfs(childNode);\n }\n else if (childNode.nodeType === type_1.default.TEXT_NODE) {\n if (!childNode.isWhitespace) {\n write('#text');\n }\n }\n });\n indention--;\n }\n dfs(this);\n return res.join('\\n');\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Remove whitespaces in this sub tree.\n * @return {HTMLElement} pointer to this\n */\n HTMLElement.prototype.removeWhitespace = function () {\n var _this = this;\n var o = 0;\n this.childNodes.forEach(function (node) {\n if (node.nodeType === type_1.default.TEXT_NODE) {\n if (node.isWhitespace) {\n return;\n }\n node.rawText = node.trimmedRawText;\n }\n else if (node.nodeType === type_1.default.ELEMENT_NODE) {\n node.removeWhitespace();\n }\n _this.childNodes[o++] = node;\n });\n this.childNodes.length = o;\n return this;\n };\n /**\n * Query CSS selector to find matching nodes.\n * @param {string} selector Simplified CSS selector\n * @return {HTMLElement[]} matching elements\n */\n HTMLElement.prototype.querySelectorAll = function (selector) {\n return (0, css_select_1.selectAll)(selector, this, {\n xmlMode: true,\n adapter: matcher_1.default,\n });\n };\n /**\n * Query CSS Selector to find matching node.\n * @param {string} selector Simplified CSS selector\n * @return {(HTMLElement|null)} matching node\n */\n HTMLElement.prototype.querySelector = function (selector) {\n return (0, css_select_1.selectOne)(selector, this, {\n xmlMode: true,\n adapter: matcher_1.default,\n });\n };\n /**\n * find elements by their tagName\n * @param {string} tagName the tagName of the elements to select\n */\n HTMLElement.prototype.getElementsByTagName = function (tagName) {\n var upperCasedTagName = tagName.toUpperCase();\n var re = [];\n var stack = [];\n var currentNodeReference = this;\n var index = 0;\n // index turns to undefined once the stack is empty and the first condition occurs\n // which happens once all relevant children are searched through\n while (index !== undefined) {\n var child = void 0;\n // make it work with sparse arrays\n do {\n child = currentNodeReference.childNodes[index++];\n } while (index < currentNodeReference.childNodes.length && child === undefined);\n // if the child does not exist we move on with the last provided index (which belongs to the parentNode)\n if (child === undefined) {\n currentNodeReference = currentNodeReference.parentNode;\n index = stack.pop();\n continue;\n }\n if (child.nodeType === type_1.default.ELEMENT_NODE) {\n // https://developer.mozilla.org/en-US/docs/Web/API/Element/getElementsByTagName#syntax\n if (tagName === '*' || child.tagName === upperCasedTagName)\n re.push(child);\n // if children are existing push the current status to the stack and keep searching for elements in the level below\n if (child.childNodes.length > 0) {\n stack.push(index);\n currentNodeReference = child;\n index = 0;\n }\n }\n }\n return re;\n };\n /**\n * find element by it's id\n * @param {string} id the id of the element to select\n * @returns {HTMLElement | null} the element with the given id or null if not found\n */\n HTMLElement.prototype.getElementById = function (id) {\n var stack = [];\n var currentNodeReference = this;\n var index = 0;\n // index turns to undefined once the stack is empty and the first condition occurs\n // which happens once all relevant children are searched through\n while (index !== undefined) {\n var child = void 0;\n // make it work with sparse arrays\n do {\n child = currentNodeReference.childNodes[index++];\n } while (index < currentNodeReference.childNodes.length && child === undefined);\n // if the child does not exist we move on with the last provided index (which belongs to the parentNode)\n if (child === undefined) {\n currentNodeReference = currentNodeReference.parentNode;\n index = stack.pop();\n continue;\n }\n if (child.nodeType === type_1.default.ELEMENT_NODE) {\n if (child.id === id) {\n return child;\n }\n ;\n // if children are existing push the current status to the stack and keep searching for elements in the level below\n if (child.childNodes.length > 0) {\n stack.push(index);\n currentNodeReference = child;\n index = 0;\n }\n }\n }\n return null;\n };\n /**\n * traverses the Element and its parents (heading toward the document root) until it finds a node that matches the provided selector string. Will return itself or the matching ancestor. If no such element exists, it returns null.\n * @param selector a DOMString containing a selector list\n * @returns {HTMLElement | null} the element with the given id or null if not found\n */\n HTMLElement.prototype.closest = function (selector) {\n var mapChild = new Map();\n var el = this;\n var old = null;\n function findOne(test, elems) {\n var elem = null;\n for (var i = 0, l = elems.length; i < l && !elem; i++) {\n var el_1 = elems[i];\n if (test(el_1)) {\n elem = el_1;\n }\n else {\n var child = mapChild.get(el_1);\n if (child) {\n elem = findOne(test, [child]);\n }\n }\n }\n return elem;\n }\n while (el) {\n mapChild.set(el, old);\n old = el;\n el = el.parentNode;\n }\n el = this;\n while (el) {\n var e = (0, css_select_1.selectOne)(selector, el, {\n xmlMode: true,\n adapter: __assign(__assign({}, matcher_1.default), { getChildren: function (node) {\n var child = mapChild.get(node);\n return child && [child];\n }, getSiblings: function (node) {\n return [node];\n }, findOne: findOne, findAll: function () {\n return [];\n } }),\n });\n if (e) {\n return e;\n }\n el = el.parentNode;\n }\n return null;\n };\n /**\n * Append a child node to childNodes\n * @param {Node} node node to append\n * @return {Node} node appended\n */\n HTMLElement.prototype.appendChild = function (node) {\n // remove the node from it's parent\n node.remove();\n this.childNodes.push(node);\n node.parentNode = this;\n return node;\n };\n Object.defineProperty(HTMLElement.prototype, \"firstChild\", {\n /**\n * Get first child node\n * @return {Node | undefined} first child node; or undefined if none\n */\n get: function () {\n return this.childNodes[0];\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(HTMLElement.prototype, \"lastChild\", {\n /**\n * Get last child node\n * @return {Node | undefined} last child node; or undefined if none\n */\n get: function () {\n return (0, back_1.default)(this.childNodes);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(HTMLElement.prototype, \"attrs\", {\n /**\n * Get attributes\n * @access private\n * @return {Object} parsed and unescaped attributes\n */\n get: function () {\n if (this._attrs) {\n return this._attrs;\n }\n this._attrs = {};\n var attrs = this.rawAttributes;\n for (var key in attrs) {\n var val = attrs[key] || '';\n this._attrs[key.toLowerCase()] = decode(val);\n }\n return this._attrs;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(HTMLElement.prototype, \"attributes\", {\n get: function () {\n var ret_attrs = {};\n var attrs = this.rawAttributes;\n for (var key in attrs) {\n var val = attrs[key] || '';\n ret_attrs[key] = decode(val);\n }\n return ret_attrs;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(HTMLElement.prototype, \"rawAttributes\", {\n /**\n * Get escaped (as-is) attributes\n * @return {Object} parsed attributes\n */\n get: function () {\n if (this._rawAttrs) {\n return this._rawAttrs;\n }\n var attrs = {};\n if (this.rawAttrs) {\n var re = /([a-zA-Z()[\\]#@$.?:][a-zA-Z0-9-_:()[\\]#]*)(?:\\s*=\\s*((?:'[^']*')|(?:\"[^\"]*\")|\\S+))?/g;\n var match = void 0;\n while ((match = re.exec(this.rawAttrs))) {\n var key = match[1];\n var val = match[2] || null;\n if (val && (val[0] === \"'\" || val[0] === \"\\\"\"))\n val = val.slice(1, val.length - 1);\n attrs[key] = attrs[key] || val;\n }\n }\n this._rawAttrs = attrs;\n return attrs;\n },\n enumerable: false,\n configurable: true\n });\n HTMLElement.prototype.removeAttribute = function (key) {\n var _this = this;\n var attrs = this.rawAttributes;\n delete attrs[key];\n // Update this.attribute\n if (this._attrs) {\n delete this._attrs[key];\n }\n // Update rawString\n this.rawAttrs = Object.keys(attrs)\n .map(function (name) {\n var val = _this.quoteAttribute(attrs[name]);\n if (val === 'null' || val === '\"\"')\n return name;\n return \"\".concat(name, \"=\").concat(val);\n })\n .join(' ');\n // Update this.id\n if (key === 'id') {\n this.id = '';\n }\n return this;\n };\n HTMLElement.prototype.hasAttribute = function (key) {\n return key.toLowerCase() in this.attrs;\n };\n /**\n * Get an attribute\n * @return {string | undefined} value of the attribute; or undefined if not exist\n */\n HTMLElement.prototype.getAttribute = function (key) {\n return this.attrs[key.toLowerCase()];\n };\n /**\n * Set an attribute value to the HTMLElement\n * @param {string} key The attribute name\n * @param {string} value The value to set, or null / undefined to remove an attribute\n */\n HTMLElement.prototype.setAttribute = function (key, value) {\n var _this = this;\n if (arguments.length < 2) {\n throw new Error(\"Failed to execute 'setAttribute' on 'Element'\");\n }\n var k2 = key.toLowerCase();\n var attrs = this.rawAttributes;\n for (var k in attrs) {\n if (k.toLowerCase() === k2) {\n key = k;\n break;\n }\n }\n attrs[key] = String(value);\n // update this.attrs\n if (this._attrs) {\n this._attrs[k2] = decode(attrs[key]);\n }\n // Update rawString\n this.rawAttrs = Object.keys(attrs)\n .map(function (name) {\n var val = _this.quoteAttribute(attrs[name]);\n if (val === 'null' || val === '\"\"')\n return name;\n return \"\".concat(name, \"=\").concat(val);\n })\n .join(' ');\n // Update this.id\n if (key === 'id') {\n this.id = value;\n }\n return this;\n };\n /**\n * Replace all the attributes of the HTMLElement by the provided attributes\n * @param {Attributes} attributes the new attribute set\n */\n HTMLElement.prototype.setAttributes = function (attributes) {\n var _this = this;\n // Invalidate current this.attributes\n if (this._attrs) {\n delete this._attrs;\n }\n // Invalidate current this.rawAttributes\n if (this._rawAttrs) {\n delete this._rawAttrs;\n }\n // Update rawString\n this.rawAttrs = Object.keys(attributes)\n .map(function (name) {\n var val = attributes[name];\n if (val === 'null' || val === '\"\"')\n return name;\n return \"\".concat(name, \"=\").concat(_this.quoteAttribute(String(val)));\n })\n .join(' ');\n return this;\n };\n HTMLElement.prototype.insertAdjacentHTML = function (where, html) {\n var _a, _b, _c;\n var _this = this;\n if (arguments.length < 2) {\n throw new Error('2 arguments required');\n }\n var p = parse(html, this._parseOptions);\n if (where === 'afterend') {\n var idx = this.parentNode.childNodes.findIndex(function (child) {\n return child === _this;\n });\n resetParent(p.childNodes, this.parentNode);\n (_a = this.parentNode.childNodes).splice.apply(_a, __spreadArray([idx + 1, 0], p.childNodes, false));\n }\n else if (where === 'afterbegin') {\n resetParent(p.childNodes, this);\n (_b = this.childNodes).unshift.apply(_b, p.childNodes);\n }\n else if (where === 'beforeend') {\n p.childNodes.forEach(function (n) {\n _this.appendChild(n);\n });\n }\n else if (where === 'beforebegin') {\n var idx = this.parentNode.childNodes.findIndex(function (child) {\n return child === _this;\n });\n resetParent(p.childNodes, this.parentNode);\n (_c = this.parentNode.childNodes).splice.apply(_c, __spreadArray([idx, 0], p.childNodes, false));\n }\n else {\n throw new Error(\"The value provided ('\".concat(where, \"') is not one of 'beforebegin', 'afterbegin', 'beforeend', or 'afterend'\"));\n }\n return this;\n // if (!where || html === undefined || html === null) {\n // \treturn;\n // }\n };\n Object.defineProperty(HTMLElement.prototype, \"nextSibling\", {\n get: function () {\n if (this.parentNode) {\n var children = this.parentNode.childNodes;\n var i = 0;\n while (i < children.length) {\n var child = children[i++];\n if (this === child)\n return children[i] || null;\n }\n return null;\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(HTMLElement.prototype, \"nextElementSibling\", {\n get: function () {\n if (this.parentNode) {\n var children = this.parentNode.childNodes;\n var i = 0;\n var find = false;\n while (i < children.length) {\n var child = children[i++];\n if (find) {\n if (child instanceof HTMLElement) {\n return child || null;\n }\n }\n else if (this === child) {\n find = true;\n }\n }\n return null;\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(HTMLElement.prototype, \"previousSibling\", {\n get: function () {\n if (this.parentNode) {\n var children = this.parentNode.childNodes;\n var i = children.length;\n while (i > 0) {\n var child = children[--i];\n if (this === child)\n return children[i - 1] || null;\n }\n return null;\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(HTMLElement.prototype, \"previousElementSibling\", {\n get: function () {\n if (this.parentNode) {\n var children = this.parentNode.childNodes;\n var i = children.length;\n var find = false;\n while (i > 0) {\n var child = children[--i];\n if (find) {\n if (child instanceof HTMLElement) {\n return child || null;\n }\n }\n else if (this === child) {\n find = true;\n }\n }\n return null;\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(HTMLElement.prototype, \"classNames\", {\n get: function () {\n return this.classList.toString();\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Clone this Node\n */\n HTMLElement.prototype.clone = function () {\n return parse(this.toString(), this._parseOptions).firstChild;\n };\n return HTMLElement;\n}(node_1.default));\nexports.default = HTMLElement;\n// https://html.spec.whatwg.org/multipage/custom-elements.html#valid-custom-element-name\nvar kMarkupPattern = /<!--[\\s\\S]*?-->|<(\\/?)([a-zA-Z][-.:0-9_a-zA-Z]*)((?:\\s+[^>]*?(?:(?:'[^']*')|(?:\"[^\"]*\"))?)*)\\s*(\\/?)>/g;\nvar kAttributePattern = /(?:^|\\s)(id|class)\\s*=\\s*((?:'[^']*')|(?:\"[^\"]*\")|\\S+)/gi;\nvar kElementsClosedByOpening = {\n li: { li: true, LI: true },\n LI: { li: true, LI: true },\n p: { p: true, div: true, P: true, DIV: true },\n P: { p: true, div: true, P: true, DIV: true },\n b: { div: true, DIV: true },\n B: { div: true, DIV: true },\n td: { td: true, th: true, TD: true, TH: true },\n TD: { td: true, th: true, TD: true, TH: true },\n th: { td: true, th: true, TD: true, TH: true },\n TH: { td: true, th: true, TD: true, TH: true },\n h1: { h1: true, H1: true },\n H1: { h1: true, H1: true },\n h2: { h2: true, H2: true },\n H2: { h2: true, H2: true },\n h3: { h3: true, H3: true },\n H3: { h3: true, H3: true },\n h4: { h4: true, H4: true },\n H4: { h4: true, H4: true },\n h5: { h5: true, H5: true },\n H5: { h5: true, H5: true },\n h6: { h6: true, H6: true },\n H6: { h6: true, H6: true },\n};\nvar kElementsClosedByClosing = {\n li: { ul: true, ol: true, UL: true, OL: true },\n LI: { ul: true, ol: true, UL: true, OL: true },\n a: { div: true, DIV: true },\n A: { div: true, DIV: true },\n b: { div: true, DIV: true },\n B: { div: true, DIV: true },\n i: { div: true, DIV: true },\n I: { div: true, DIV: true },\n p: { div: true, DIV: true },\n P: { div: true, DIV: true },\n td: { tr: true, table: true, TR: true, TABLE: true },\n TD: { tr: true, table: true, TR: true, TABLE: true },\n th: { tr: true, table: true, TR: true, TABLE: true },\n TH: { tr: true, table: true, TR: true, TABLE: true },\n};\nvar frameflag = 'documentfragmentcontainer';\n/**\n * Parses HTML and returns a root element\n * Parse a chuck of HTML source.\n * @param {string} data html\n * @return {HTMLElement} root element\n */\nfunction base_parse(data, options) {\n var _a, _b;\n if (options === void 0) { options = {}; }\n var voidTag = new void_tag_1.default((_a = options === null || options === void 0 ? void 0 : options.voidTag) === null || _a === void 0 ? void 0 : _a.closingSlash, (_b = options === null || options === void 0 ? void 0 : options.voidTag) === null || _b === void 0 ? void 0 : _b.tags);\n var elements = options.blockTextElements || {\n script: true,\n noscript: true,\n style: true,\n pre: true,\n };\n var element_names = Object.keys(elements);\n var kBlockTextElements = element_names.map(function (it) { return new RegExp(\"^\".concat(it, \"$\"), 'i'); });\n var kIgnoreElements = element_names.filter(function (it) { return Boolean(elements[it]); }).map(function (it) { return new RegExp(\"^\".concat(it, \"$\"), 'i'); });\n function element_should_be_ignore(tag) {\n return kIgnoreElements.some(function (it) { return it.test(tag); });\n }\n function is_block_text_element(tag) {\n return kBlockTextElements.some(function (it) { return it.test(tag); });\n }\n var createRange = function (startPos, endPos) { return [startPos - frameFlagOffset, endPos - frameFlagOffset]; };\n var root = new HTMLElement(null, {}, '', null, [0, data.length], voidTag, options);\n var currentParent = root;\n var stack = [root];\n var lastTextPos = -1;\n var noNestedTagIndex = undefined;\n var match;\n // https://github.com/taoqf/node-html-parser/issues/38\n data = \"<\".concat(frameflag, \">\").concat(data, \"</\").concat(frameflag, \">\");\n var lowerCaseTagName = options.lowerCaseTagName, fixNestedATags = options.fixNestedATags;\n var dataEndPos = data.length - (frameflag.length + 2);\n var frameFlagOffset = frameflag.length + 2;\n while ((match = kMarkupPattern.exec(data))) {\n // Note: Object destructuring here consistently tests as higher performance than array destructuring\n // eslint-disable-next-line prefer-const\n var matchText = match[0], leadingSlash = match[1], tagName = match[2], attributes = match[3], closingSlash = match[4];\n var matchLength = matchText.length;\n var tagStartPos = kMarkupPattern.lastIndex - matchLength;\n var tagEndPos = kMarkupPattern.lastIndex;\n // Add TextNode if content\n if (lastTextPos > -1) {\n if (lastTextPos + matchLength < tagEndPos) {\n var text = data.substring(lastTextPos, tagStartPos);\n currentParent.appendChild(new text_1.default(text, currentParent, createRange(lastTextPos, tagStartPos)));\n }\n }\n lastTextPos = kMarkupPattern.lastIndex;\n // https://github.com/taoqf/node-html-parser/issues/38\n // Skip frameflag node\n if (tagName === frameflag)\n continue;\n // Handle comments\n if (matchText[1] === '!') {\n if (options.comment) {\n // Only keep what is in between <!-- and -->\n var text = data.substring(tagStartPos + 4, tagEndPos - 3);\n currentParent.appendChild(new comment_1.default(text, currentParent, createRange(tagStartPos, tagEndPos)));\n }\n continue;\n }\n /* -- Handle tag matching -- */\n // Fix tag casing if necessary\n if (lowerCaseTagName)\n tagName = tagName.toLowerCase();\n // Handle opening tags (ie. <this> not </that>)\n if (!leadingSlash) {\n /* Populate attributes */\n var attrs = {};\n for (var attMatch = void 0; (attMatch = kAttributePattern.exec(attributes));) {\n var key = attMatch[1], val = attMatch[2];\n var isQuoted = val[0] === \"'\" || val[0] === \"\\\"\";\n attrs[key.toLowerCase()] = isQuoted ? val.slice(1, val.length - 1) : val;\n }\n var parentTagName = currentParent.rawTagName;\n if (!closingSlash && kElementsClosedByOpening[parentTagName]) {\n if (kElementsClosedByOpening[parentTagName][tagName]) {\n stack.pop();\n currentParent = (0, back_1.default)(stack);\n }\n }\n // Prevent nested A tags by terminating the last A and starting a new one : see issue #144\n if (fixNestedATags && (tagName === 'a' || tagName === 'A')) {\n if (noNestedTagIndex !== undefined) {\n stack.splice(noNestedTagIndex);\n currentParent = (0, back_1.default)(stack);\n }\n noNestedTagIndex = stack.length;\n }\n var tagEndPos_1 = kMarkupPattern.lastIndex;\n var tagStartPos_1 = tagEndPos_1 - matchLength;\n currentParent = currentParent.appendChild(\n // Initialize range (end position updated later for closed tags)\n new HTMLElement(tagName, attrs, attributes.slice(1), null, createRange(tagStartPos_1, tagEndPos_1), voidTag, options));\n stack.push(currentParent);\n if (is_block_text_element(tagName)) {\n // Find closing tag\n var closeMarkup = \"</\".concat(tagName, \">\");\n var closeIndex = lowerCaseTagName\n ? data.toLocaleLowerCase().indexOf(closeMarkup, kMarkupPattern.lastIndex)\n : data.indexOf(closeMarkup, kMarkupPattern.lastIndex);\n var textEndPos = closeIndex === -1 ? dataEndPos : closeIndex;\n if (element_should_be_ignore(tagName)) {\n var text = data.substring(tagEndPos_1, textEndPos);\n if (text.length > 0 && /\\S/.test(text)) {\n currentParent.appendChild(new text_1.default(text, currentParent, createRange(tagEndPos_1, textEndPos)));\n }\n }\n if (closeIndex === -1) {\n lastTextPos = kMarkupPattern.lastIndex = data.length + 1;\n }\n else {\n lastTextPos = kMarkupPattern.lastIndex = closeIndex + closeMarkup.length;\n // Cause to be treated as self-closing, because no close found\n leadingSlash = '/';\n }\n }\n }\n // Handle closing tags or self-closed elements (ie </tag> or <br>)\n if (leadingSlash || closingSlash || voidTag.isVoidElement(tagName)) {\n while (true) {\n if (noNestedTagIndex != null && (tagName === 'a' || tagName === 'A'))\n noNestedTagIndex = undefined;\n if (currentParent.rawTagName === tagName) {\n // Update range end for closed tag\n currentParent.range[1] = createRange(-1, Math.max(lastTextPos, tagEndPos))[1];\n stack.pop();\n currentParent = (0, back_1.default)(stack);\n break;\n }\n else {\n var parentTagName = currentParent.tagName;\n // Trying to close current tag, and move on\n if (kElementsClosedByClosing[parentTagName]) {\n if (kElementsClosedByClosing[parentTagName][tagName]) {\n stack.pop();\n currentParent = (0, back_1.default)(stack);\n continue;\n }\n }\n // Use aggressive strategy to handle unmatching markups.\n break;\n }\n }\n }\n }\n return stack;\n}\nexports.base_parse = base_parse;\n/**\n * Parses HTML and returns a root element\n * Parse a chuck of HTML source.\n */\nfunction parse(data, options) {\n if (options === void 0) { options = {}; }\n var stack = base_parse(data, options);\n var root = stack[0];\n var _loop_1 = function () {\n // Handle each error elements.\n var last = stack.pop();\n var oneBefore = (0, back_1.default)(stack);\n if (last.parentNode && last.parentNode.parentNode) {\n if (last.parentNode === oneBefore && last.tagName === oneBefore.tagName) {\n // Pair error case <h3> <h3> handle : Fixes to <h3> </h3>\n // this is wrong, becouse this will put the H3 outside the current right position which should be inside the current Html Element, see issue 152 for more info\n if (options.parseNoneClosedTags !== true) {\n oneBefore.removeChild(last);\n last.childNodes.forEach(function (child) {\n oneBefore.parentNode.appendChild(child);\n });\n stack.pop();\n }\n }\n else {\n // Single error <div> <h3> </div> handle: Just removes <h3>\n // Why remove? this is already a HtmlElement and the missing <H3> is already added in this case. see issue 152 for more info\n // eslint-disable-next-line no-lonely-if\n if (options.parseNoneClosedTags !== true) {\n oneBefore.removeChild(last);\n last.childNodes.forEach(function (child) {\n oneBefore.appendChild(child);\n });\n }\n }\n }\n else {\n // If it's final element just skip.\n }\n };\n while (stack.length > 1) {\n _loop_1();\n }\n // response.childNodes.forEach((node) => {\n // \tif (node instanceof HTMLElement) {\n // \t\tnode.parentNode = null;\n // \t}\n // });\n return root;\n}\nexports.parse = parse;\nfunction resetParent(nodes, parent) {\n return nodes.map(function (node) {\n node.parentNode = parent;\n return node;\n });\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = void 0;\nvar html_1 = require(\"./nodes/html\");\nObject.defineProperty(exports, \"default\", { enumerable: true, get: function () { return html_1.parse; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar html_1 = require(\"./nodes/html\");\n/**\n * Parses HTML and returns a root element\n * Parse a chuck of HTML source.\n */\nfunction valid(data, options) {\n if (options === void 0) { options = {}; }\n var stack = (0, html_1.base_parse)(data, options);\n return Boolean(stack.length === 1);\n}\nexports.default = valid;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeType = exports.TextNode = exports.Node = exports.valid = exports.CommentNode = exports.HTMLElement = exports.parse = void 0;\nvar comment_1 = __importDefault(require(\"./nodes/comment\"));\nexports.CommentNode = comment_1.default;\nvar html_1 = __importDefault(require(\"./nodes/html\"));\nexports.HTMLElement = html_1.default;\nvar node_1 = __importDefault(require(\"./nodes/node\"));\nexports.Node = node_1.default;\nvar text_1 = __importDefault(require(\"./nodes/text\"));\nexports.TextNode = text_1.default;\nvar type_1 = __importDefault(require(\"./nodes/type\"));\nexports.NodeType = type_1.default;\nvar parse_1 = __importDefault(require(\"./parse\"));\nvar valid_1 = __importDefault(require(\"./valid\"));\nexports.valid = valid_1.default;\nfunction parse(data, options) {\n if (options === void 0) { options = {}; }\n return (0, parse_1.default)(data, options);\n}\nexports.default = parse;\nexports.parse = parse;\nparse.parse = parse_1.default;\nparse.HTMLElement = html_1.default;\nparse.CommentNode = comment_1.default;\nparse.valid = valid_1.default;\nparse.Node = node_1.default;\nparse.TextNode = text_1.default;\nparse.NodeType = type_1.default;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.perfStop = exports.perfStart = exports.getChildNodes = exports.parseHTML = exports.truthyStr = exports.getTrailingWhitespaceInfo = exports.tagSurround = exports.splitSpecial = exports.isWhiteSpaceOnly = exports.surround = exports.trimNewLines = void 0;\nconst config_1 = require(\"./config\");\n/* ****************************************************************************************************************** */\n// region: String Utils\n/* ****************************************************************************************************************** */\nconst trimNewLines = (s) => s.replace(/^\\n+|\\n+$/g, '');\nexports.trimNewLines = trimNewLines;\nconst surround = (source, surroundStr) => `${surroundStr}${source}${surroundStr}`;\nexports.surround = surround;\nconst isWhiteSpaceOnly = (s) => !/\\S/.test(s);\nexports.isWhiteSpaceOnly = isWhiteSpaceOnly;\n/**\n * Split string, preserving specific newline used for each line\n */\nfunction splitSpecial(s) {\n const lines = [];\n const strLen = s.length;\n for (let i = 0, startPos = 0; i < strLen; ++i) {\n let char = s.charAt(i);\n let newLineChar = '';\n if (char === '\\r')\n newLineChar = (s.charAt(i + 1) === '\\n') ? '\\r\\n' : char;\n else if (char === '\\n')\n newLineChar = char;\n const endPos = newLineChar ? i :\n i === (strLen - 1) ? i + 1 :\n undefined;\n if (endPos === undefined)\n continue;\n lines.push({\n text: s.slice(startPos, endPos),\n newLineChar\n });\n startPos = endPos + newLineChar.length;\n if (newLineChar.length > 1)\n ++i;\n }\n return lines;\n}\nexports.splitSpecial = splitSpecial;\n/**\n * Surround tag content with delimiter (moving any leading/trailing space to outside the tag\n */\nfunction tagSurround(content, surroundStr) {\n // If un-escaped surroundStr already occurs, remove all instances\n // See: https://github.com/crosstype/node-html-markdown/issues/18\n const nestedSurroundStrIndex = content.indexOf(surroundStr);\n if (nestedSurroundStrIndex >= 0)\n content = content.replace(new RegExp(`([^\\\\\\\\])\\\\${surroundStr.split('').join('\\\\')}`, 'gm'), '$1');\n const lines = splitSpecial(content);\n let res = '';\n for (const { text, newLineChar } of lines) {\n let i = 0;\n let startPos = undefined;\n let endPos = undefined;\n while (i >= 0 && i < text.length) {\n if (/[\\S]/.test(text[i])) {\n if (startPos === undefined) {\n startPos = i;\n i = text.length;\n }\n else {\n endPos = i;\n i = NaN;\n }\n }\n if (startPos === undefined)\n ++i;\n else\n --i;\n }\n // If whole string is non-breaking whitespace, don't surround it\n if (startPos === undefined) {\n res += text + newLineChar;\n continue;\n }\n if (endPos === undefined)\n endPos = text.length - 1;\n const leadingSpace = startPos > 0 ? text[startPos - 1] : '';\n const trailingSpace = endPos < (text.length - 1) ? text[endPos + 1] : '';\n const slicedText = text.slice(startPos, endPos + 1);\n res += leadingSpace + surroundStr + slicedText + surroundStr + trailingSpace + newLineChar;\n }\n return res;\n}\nexports.tagSurround = tagSurround;\nconst getTrailingWhitespaceInfo = (s) => {\n const res = { whitespace: 0, newLines: 0 };\n const minI = Math.max(s.length - 10, 0);\n for (let i = s.length - 1; i >= minI; --i) {\n const token = s.slice(i, i + 1);\n if (!/\\s/.test(token))\n break;\n ++res.whitespace;\n if (['\\r', '\\n'].includes(token))\n ++res.newLines;\n }\n return res;\n};\nexports.getTrailingWhitespaceInfo = getTrailingWhitespaceInfo;\n/**\n * If value is truthy, returns `value` (or `v` if no `value` provided), otherwise, returns an empty string\n * @param v - Var to check for truthiness\n * @param value - Value to return if true\n */\nconst truthyStr = (v, value) => v ? ((value !== undefined) ? value : String(v)) : '';\nexports.truthyStr = truthyStr;\n// endregion\n/* ****************************************************************************************************************** */\n// region: Parser\n/* ****************************************************************************************************************** */\nfunction tryParseWithNativeDom(html) {\n try {\n if (!((window === null || window === void 0 ? void 0 : window.DOMParser) && (new window.DOMParser()).parseFromString('', 'text/html')))\n return void 0;\n }\n catch (_a) {\n return void 0;\n }\n /* Get a document */\n let doc;\n try {\n doc = document.implementation.createHTMLDocument('').open();\n }\n catch (e) {\n const { ActiveXObject } = window;\n if (ActiveXObject) {\n const doc = ActiveXObject('htmlfile');\n doc.designMode = 'on'; // disable on-page scripts\n return doc.open();\n }\n throw e;\n }\n // Prepare document, ensuring we have a wrapper node\n doc.write('<node-html-markdown>' + html + '</node-html-markdown>');\n doc.close();\n return doc.documentElement;\n}\nconst getNodeHtmlParser = () => {\n try {\n return require('node-html-parser').parse;\n }\n catch (_a) {\n return undefined;\n }\n};\n/**\n * Parser string to HTMLElement\n */\nfunction parseHTML(html, options) {\n let nodeHtmlParse;\n /* If specified, try to parse with native engine, fallback to node-html-parser */\n perfStart('parse');\n let el;\n if (options.preferNativeParser) {\n try {\n el = tryParseWithNativeDom(html);\n }\n catch (e) {\n nodeHtmlParse = getNodeHtmlParser();\n if (nodeHtmlParse)\n console.warn('Native DOM parser encountered an error during parse', e);\n else\n throw e;\n }\n }\n else\n nodeHtmlParse = getNodeHtmlParser();\n if (!el)\n el = nodeHtmlParse(html, config_1.nodeHtmlParserConfig);\n perfStop('parse');\n return el;\n}\nexports.parseHTML = parseHTML;\nfunction getChildNodes(node) {\n if (!isNodeList(node.childNodes))\n return node.childNodes;\n const res = [];\n node.childNodes.forEach(n => res.push(n));\n return res;\n function isNodeList(v) {\n return (v != null) || (typeof v[Symbol.iterator] === 'function');\n }\n}\nexports.getChildNodes = getChildNodes;\nfunction perfStart(label) {\n if (process.env.LOG_PERF)\n console.time(label);\n}\nexports.perfStart = perfStart;\nfunction perfStop(label) {\n if (process.env.LOG_PERF)\n console.timeEnd(label);\n}\nexports.perfStop = perfStop;\n// endregion\n//# sourceMappingURL=utilities.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.nodeHtmlParserConfig = exports.aTagTranslatorConfig = exports.defaultCodeBlockTranslators = exports.tableCellTranslatorConfig = exports.tableRowTranslatorConfig = exports.tableTranslatorConfig = exports.defaultTranslators = exports.defaultOptions = exports.contentlessElements = exports.defaultIgnoreElements = exports.defaultBlockElements = void 0;\nconst utilities_1 = require(\"./utilities\");\nconst translator_1 = require(\"./translator\");\n/* ****************************************************************************************************************** */\n// region: Elements\n/* ****************************************************************************************************************** */\nexports.defaultBlockElements = [\n 'ADDRESS', 'ARTICLE', 'ASIDE', 'AUDIO', 'BLOCKQUOTE', 'BODY', 'CANVAS', 'CENTER', 'DD', 'DIR', 'DIV', 'DL',\n 'DT', 'FIELDSET', 'FIGCAPTION', 'FIGURE', 'FOOTER', 'FORM', 'FRAMESET', 'H1', 'H2', 'H3', 'H4', 'H5', 'H6',\n 'HEADER', 'HGROUP', 'HR', 'HTML', 'ISINDEX', 'LI', 'MAIN', 'MENU', 'NAV', 'NOFRAMES', 'NOSCRIPT', 'OL',\n 'OUTPUT', 'P', 'PRE', 'SECTION', 'TABLE', 'TBODY', 'TD', 'TFOOT', 'TH', 'THEAD', 'TR', 'UL'\n];\nexports.defaultIgnoreElements = [\n 'AREA', 'BASE', 'COL', 'COMMAND', 'EMBED', 'HEAD', 'INPUT', 'KEYGEN', 'LINK', 'META', 'PARAM', 'SCRIPT',\n 'SOURCE', 'STYLE', 'TRACK', 'WBR'\n];\nexports.contentlessElements = ['BR', 'HR', 'IMG'];\n// endregion\n/* ****************************************************************************************************************** */\n// region: Options\n/* ****************************************************************************************************************** */\n// noinspection RegExpUnnecessaryNonCapturingGroup\nexports.defaultOptions = Object.freeze({\n preferNativeParser: false,\n codeFence: '```',\n bulletMarker: '*',\n indent: ' ',\n codeBlockStyle: 'fenced',\n emDelimiter: '_',\n strongDelimiter: '**',\n strikeDelimiter: '~~',\n maxConsecutiveNewlines: 3,\n /**\n * Character: Affects: Example:\n *\n * \\ Escaping \\-\n * ` Code `` code ``, ```lang\\n code block \\n```\n * * Bullet & Separators * item, ***\n * _ Bold, Italics, Separator _italic_, __bold__, ^___\n * ~ Strikethrough, Code ~~strike~~, ~~~lang\\n code block \\n~~~\n * [ Url [caption](url)\n * ] Url [caption](url)\n */\n globalEscape: [/[\\\\`*_~\\[\\]]/gm, '\\\\$&'],\n /**\n * Note: The following compiled pattern was selected after perf testing various alternatives.\n * Please be mindful of performance if updating/changing it.\n *\n * Sequence: Affects: Example:\n *\n * +(space) Bullets + item\n * = Heading heading\\n====\n * #{1,6}(space) Heading ## Heading\n * > Blockquote > quote\n * - Bullet, Header, Separator - item, heading\\n---, ---\n * \\d+\\.(space) Numbered list item 1. Item\n */\n lineStartEscape: [\n /^(\\s*?)((?:\\+\\s)|(?:[=>-])|(?:#{1,6}\\s))|(?:(\\d+)(\\.\\s))/gm,\n '$1$3\\\\$2$4'\n ],\n useInlineLinks: true\n});\n// endregion\n/* ****************************************************************************************************************** */\n// region: Translators\n/* ****************************************************************************************************************** */\nexports.defaultTranslators = {\n /* Pre-formatted text */\n 'pre': { noEscape: true, preserveWhitespace: true },\n /* Line break */\n 'br': { content: ` \\n`, recurse: false },\n /* Horizontal Rule*/\n 'hr': { content: '---', recurse: false },\n /* Headings */\n 'h1,h2,h3,h4,h5,h6': ({ node }) => ({\n prefix: '#'.repeat(+node.tagName.charAt(1)) + ' '\n }),\n /* Bold / Strong */\n 'strong,b': {\n spaceIfRepeatingChar: true,\n postprocess: ({ content, options: { strongDelimiter } }) => (0, utilities_1.isWhiteSpaceOnly)(content)\n ? translator_1.PostProcessResult.RemoveNode\n : (0, utilities_1.tagSurround)(content, strongDelimiter)\n },\n /* Strikethrough */\n 'del,s,strike': {\n spaceIfRepeatingChar: true,\n postprocess: ({ content, options: { strikeDelimiter } }) => (0, utilities_1.isWhiteSpaceOnly)(content)\n ? translator_1.PostProcessResult.RemoveNode\n : (0, utilities_1.tagSurround)(content, strikeDelimiter)\n },\n /* Italic / Emphasis */\n 'em,i': {\n spaceIfRepeatingChar: true,\n postprocess: ({ content, options: { emDelimiter } }) => (0, utilities_1.isWhiteSpaceOnly)(content)\n ? translator_1.PostProcessResult.RemoveNode\n : (0, utilities_1.tagSurround)(content, emDelimiter)\n },\n /* Lists (ordered & unordered) */\n 'ol,ul': ({ listKind }) => ({\n surroundingNewlines: listKind ? 1 : 2,\n }),\n /* List Item */\n 'li': ({ options: { bulletMarker }, indentLevel, listKind, listItemNumber }) => {\n const indentationLevel = +(indentLevel || 0);\n return {\n prefix: ' '.repeat(+(indentLevel || 0)) +\n (((listKind === 'OL') && (listItemNumber !== undefined)) ? `${listItemNumber}. ` : `${bulletMarker} `),\n surroundingNewlines: 1,\n postprocess: ({ content }) => (0, utilities_1.isWhiteSpaceOnly)(content)\n ? translator_1.PostProcessResult.RemoveNode\n : content\n .trim()\n .replace(/([^\\r\\n])(?:\\r?\\n)+/g, `$1 \\n${' '.repeat(indentationLevel)}`)\n .replace(/(\\S+?)[^\\S\\r\\n]+$/gm, '$1 ')\n };\n },\n /* Block Quote */\n 'blockquote': {\n postprocess: ({ content }) => (0, utilities_1.trimNewLines)(content).replace(/^(>*)[^\\S\\r\\n]?/gm, `>$1 `)\n },\n /* Code (block / inline) */\n 'code': ({ node, parent, options: { codeFence, codeBlockStyle }, visitor }) => {\n var _a, _b;\n const isCodeBlock = ['PRE', 'WRAPPED-PRE'].includes(parent === null || parent === void 0 ? void 0 : parent.tagName) && parent.childNodes.length < 2;\n /* Handle code (non-block) */\n if (!isCodeBlock)\n return {\n spaceIfRepeatingChar: true,\n noEscape: true,\n postprocess: ({ content }) => {\n var _a, _b;\n // Find longest occurring sequence of running backticks and add one more (so content is escaped)\n const delimiter = '`' + (((_b = (_a = content.match(/`+/g)) === null || _a === void 0 ? void 0 : _a.sort((a, b) => b.length - a.length)) === null || _b === void 0 ? void 0 : _b[0]) || '');\n const padding = delimiter.length > 1 ? ' ' : '';\n return (0, utilities_1.surround)((0, utilities_1.surround)(content, padding), delimiter);\n }\n };\n /* Handle code block */\n if (codeBlockStyle === 'fenced') {\n const language = ((_b = (_a = node.getAttribute('class')) === null || _a === void 0 ? void 0 : _a.match(/language-(\\S+)/)) === null || _b === void 0 ? void 0 : _b[1]) || '';\n return {\n noEscape: true,\n prefix: codeFence + language + '\\n',\n postfix: '\\n' + codeFence,\n childTranslators: visitor.instance.codeBlockTranslators\n };\n }\n else {\n return {\n noEscape: true,\n postprocess: ({ content }) => content.replace(/^/gm, ' '),\n childTranslators: visitor.instance.codeBlockTranslators\n };\n }\n },\n /* Table */\n 'table': ({ visitor }) => ({\n surroundingNewlines: 2,\n childTranslators: visitor.instance.tableTranslators,\n postprocess: ({ content, nodeMetadata, node }) => {\n // Split and trim leading + trailing pipes\n const rawRows = (0, utilities_1.splitSpecial)(content).map(({ text }) => text.replace(/^(?:\\|\\s+)?(.+)\\s*\\|\\s*$/, '$1'));\n /* Get Row Data */\n const rows = [];\n let colWidth = [];\n for (const row of rawRows) {\n if (!row)\n continue;\n /* Track columns */\n const cols = row.split(' |').map((c, i) => {\n c = c.trim();\n if (colWidth.length < i + 1 || colWidth[i] < c.length)\n colWidth[i] = c.length;\n return c;\n });\n rows.push(cols);\n }\n if (rows.length < 1)\n return translator_1.PostProcessResult.RemoveNode;\n /* Compose Table */\n const maxCols = colWidth.length;\n let res = '';\n const caption = nodeMetadata.get(node).tableMeta.caption;\n if (caption)\n res += caption + '\\n';\n rows.forEach((cols, rowNumber) => {\n var _a;\n res += '| ';\n /* Add Columns */\n for (let i = 0; i < maxCols; i++) {\n let c = ((_a = cols[i]) !== null && _a !== void 0 ? _a : '');\n c += ' '.repeat(Math.max(0, (colWidth[i] - c.length))); // Pad to max length\n res += c + ' |' + (i < maxCols - 1 ? ' ' : '');\n }\n res += '\\n';\n // Add separator row\n if (rowNumber === 0)\n res += '|' + colWidth.map(w => ' ' + '-'.repeat(w) + ' |').join('') + '\\n';\n });\n return res;\n }\n }),\n /* Link */\n 'a': ({ node, options, visitor }) => {\n const href = node.getAttribute('href');\n if (!href)\n return {};\n // Encodes symbols that can cause problems in markdown\n let encodedHref = '';\n for (const chr of href) {\n switch (chr) {\n case '(':\n encodedHref += '%28';\n break;\n case ')':\n encodedHref += '%29';\n break;\n case '_':\n encodedHref += '%5F';\n break;\n case '*':\n encodedHref += '%2A';\n break;\n default:\n encodedHref += chr;\n }\n }\n const title = node.getAttribute('title');\n // Inline link, when possible\n // See: https://github.com/crosstype/node-html-markdown/issues/17\n if (node.textContent === href && options.useInlineLinks)\n return { content: `<${encodedHref}>` };\n return {\n postprocess: ({ content }) => content.replace(/(?:\\r?\\n)+/g, ' '),\n childTranslators: visitor.instance.aTagTranslators,\n prefix: '[',\n postfix: ']' + (!options.useLinkReferenceDefinitions\n ? `(${encodedHref}${title ? ` \"${title}\"` : ''})`\n : `[${visitor.addOrGetUrlDefinition(encodedHref)}]`)\n };\n },\n /* Image */\n 'img': ({ node, options }) => {\n const src = node.getAttribute('src') || '';\n if (!src || (!options.keepDataImages && /^data:/i.test(src)))\n return { ignore: true };\n const alt = node.getAttribute('alt') || '';\n const title = node.getAttribute('title') || '';\n return {\n content: ``,\n recurse: false\n };\n },\n};\nexports.tableTranslatorConfig = {\n /* Table Caption */\n 'caption': ({ visitor }) => ({\n surroundingNewlines: false,\n childTranslators: visitor.instance.tableCellTranslators,\n postprocess: ({ content, nodeMetadata, node }) => {\n const caption = content.replace(/(?:\\r?\\n)+/g, ' ').trim();\n if (caption)\n nodeMetadata.get(node).tableMeta.caption = '__' + caption + '__';\n return translator_1.PostProcessResult.RemoveNode;\n },\n }),\n /* Table row */\n 'tr': ({ visitor }) => ({\n surroundingNewlines: false,\n childTranslators: visitor.instance.tableRowTranslators,\n postfix: '\\n',\n prefix: '| ',\n postprocess: ({ content }) => !/ \\|\\s*$/.test(content) ? translator_1.PostProcessResult.RemoveNode : content\n }),\n /* Table cell, (header cell) */\n 'th,td': ({ visitor }) => ({\n surroundingNewlines: false,\n childTranslators: visitor.instance.tableCellTranslators,\n prefix: ' ',\n postfix: ' |',\n postprocess: ({ content }) => (0, utilities_1.trimNewLines)(content)\n .replace('|', '\\\\|')\n .replace(/(?:\\r?\\n)+/g, ' ')\n .trim()\n }),\n};\nexports.tableRowTranslatorConfig = {\n 'th,td': exports.tableTranslatorConfig['th,td']\n};\nexports.tableCellTranslatorConfig = {\n 'a': exports.defaultTranslators['a'],\n 'strong,b': exports.defaultTranslators['strong,b'],\n 'del,s,strike': exports.defaultTranslators['del,s,strike'],\n 'em,i': exports.defaultTranslators['em,i'],\n 'img': exports.defaultTranslators['img']\n};\nexports.defaultCodeBlockTranslators = {\n 'br': { content: `\\n`, recurse: false },\n 'hr': { content: '---', recurse: false },\n 'h1,h2,h3,h4,h5,h6': { prefix: '[', postfix: ']' },\n 'ol,ul': exports.defaultTranslators['ol,ul'],\n 'li': exports.defaultTranslators['li'],\n 'tr': { surroundingNewlines: true },\n 'img': { recurse: false }\n};\nexports.aTagTranslatorConfig = {\n 'br': { content: '\\n', recurse: false },\n 'hr': { content: '\\n', recurse: false },\n 'pre': exports.defaultTranslators['pre'],\n 'strong,b': exports.defaultTranslators['strong,b'],\n 'del,s,strike': exports.defaultTranslators['del,s,strike'],\n 'em,i': exports.defaultTranslators['em,i'],\n 'img': exports.defaultTranslators['img']\n};\n// endregion\n/* ****************************************************************************************************************** */\n// region: General\n/* ****************************************************************************************************************** */\n/**\n * Note: Do not change - values are tuned for performance\n */\nexports.nodeHtmlParserConfig = {\n lowerCaseTagName: false,\n comment: false,\n fixNestedATags: true,\n blockTextElements: {\n script: false,\n noscript: false,\n style: false\n }\n};\n// endregion\n//# sourceMappingURL=config.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isElementNode = exports.isCommentNode = exports.isTextNode = exports.CommentNode = exports.NodeType = void 0;\nconst node_html_parser_1 = require(\"node-html-parser\");\nObject.defineProperty(exports, \"CommentNode\", { enumerable: true, get: function () { return node_html_parser_1.CommentNode; } });\nObject.defineProperty(exports, \"NodeType\", { enumerable: true, get: function () { return node_html_parser_1.NodeType; } });\n// endregion\n/* ****************************************************************************************************************** */\n// region: TypeGuards\n/* ****************************************************************************************************************** */\nconst isTextNode = (node) => node.nodeType === node_html_parser_1.NodeType.TEXT_NODE;\nexports.isTextNode = isTextNode;\nconst isCommentNode = (node) => node.nodeType === node_html_parser_1.NodeType.COMMENT_NODE;\nexports.isCommentNode = isCommentNode;\nconst isElementNode = (node) => node.nodeType === node_html_parser_1.NodeType.ELEMENT_NODE;\nexports.isElementNode = isElementNode;\n// endregion\n//# sourceMappingURL=nodes.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getMarkdownForHtmlNodes = exports.Visitor = void 0;\nconst nodes_1 = require(\"./nodes\");\nconst utilities_1 = require(\"./utilities\");\nconst translator_1 = require(\"./translator\");\nconst config_1 = require(\"./config\");\n// endregion\n/* ****************************************************************************************************************** */\n// region: Visitor\n/* ****************************************************************************************************************** */\n/**\n * Properties & methods marked public are designated as such due to the fact that we may add middleware / transformer\n * support in the future\n */\nclass Visitor {\n constructor(instance, rootNode, fileName) {\n this.instance = instance;\n this.rootNode = rootNode;\n this.fileName = fileName;\n this.nodeMetadata = new Map();\n this.urlDefinitions = [];\n this.result = {\n text: '',\n trailingNewlineStats: {\n whitespace: 0,\n newLines: 0\n }\n };\n this.options = instance.options;\n this.optimizeTree(rootNode);\n this.visitNode(rootNode);\n }\n /* ********************************************************* */\n // region: Methods\n /* ********************************************************* */\n addOrGetUrlDefinition(url) {\n let id = this.urlDefinitions.findIndex(u => u === url);\n if (id < 0)\n id = this.urlDefinitions.push(url) - 1;\n return id + 1;\n }\n appendResult(s, startPos, spaceIfRepeatingChar) {\n if (!s && startPos === undefined)\n return;\n const { result } = this;\n if (startPos !== undefined)\n result.text = result.text.substr(0, startPos);\n result.text += (spaceIfRepeatingChar && result.text.slice(-1) === s[0] ? ' ' : '') + s;\n result.trailingNewlineStats = (0, utilities_1.getTrailingWhitespaceInfo)(result.text);\n }\n appendNewlines(count) {\n const { newLines } = this.result.trailingNewlineStats;\n this.appendResult('\\n'.repeat(Math.max(0, (+count - newLines))));\n }\n // endregion\n /* ********************************************************* */\n // region: Internal Methods\n /* ********************************************************* */\n /**\n * Optimize tree, flagging nodes that have usable content\n */\n optimizeTree(node) {\n (0, utilities_1.perfStart)('Optimize tree');\n const { translators } = this.instance;\n (function visit(node) {\n let res = false;\n if ((0, nodes_1.isTextNode)(node) || ((0, nodes_1.isElementNode)(node) && config_1.contentlessElements.includes(node.tagName))) {\n res = true;\n }\n else {\n const childNodes = (0, utilities_1.getChildNodes)(node);\n if (!childNodes.length) {\n const translator = translators[node.tagName];\n if ((translator === null || translator === void 0 ? void 0 : translator.preserveIfEmpty) || typeof translator === 'function')\n res = true;\n }\n else\n for (const child of childNodes) {\n if (!res)\n res = visit(child);\n else\n visit(child);\n }\n }\n return node.preserve = res;\n })(node);\n (0, utilities_1.perfStop)('Optimize tree');\n }\n /**\n * Apply escaping and custom replacement rules\n */\n processText(text, metadata) {\n let res = text;\n if (!(metadata === null || metadata === void 0 ? void 0 : metadata.preserveWhitespace))\n res = res.replace(/\\s+/g, ' ');\n if (metadata === null || metadata === void 0 ? void 0 : metadata.noEscape)\n return res;\n const { lineStartEscape, globalEscape, textReplace } = this.options;\n res = res\n .replace(globalEscape[0], globalEscape[1])\n .replace(lineStartEscape[0], lineStartEscape[1]);\n /* If specified, apply custom replacement patterns */\n if (textReplace)\n for (const [pattern, r] of textReplace)\n res = res.replace(pattern, r);\n return res;\n }\n visitNode(node, textOnly, metadata) {\n var _a, _b, _c, _d;\n var _e, _f;\n const { result } = this;\n if (!node.preserve)\n return;\n /* Handle text node */\n if ((0, nodes_1.isTextNode)(node)) {\n if (node.wholeText) {\n (_a = (_e = node).text) !== null && _a !== void 0 ? _a : (_e.text = node.wholeText);\n (_b = (_f = node).trimmedText) !== null && _b !== void 0 ? _b : (_f.trimmedText = (0, utilities_1.trimNewLines)(node.wholeText));\n }\n return node.isWhitespace && !(metadata === null || metadata === void 0 ? void 0 : metadata.preserveWhitespace)\n ? (!result.text.length || result.trailingNewlineStats.whitespace > 0) ? void 0 : this.appendResult(' ')\n : this.appendResult(this.processText((metadata === null || metadata === void 0 ? void 0 : metadata.preserveWhitespace) ? node.text : node.trimmedText, metadata));\n }\n if (textOnly || !(0, nodes_1.isElementNode)(node))\n return;\n /* Handle element node */\n const translatorCfgOrFactory = (metadata === null || metadata === void 0 ? void 0 : metadata.translators) ? metadata.translators[node.tagName] : this.instance.translators[node.tagName];\n /* Update metadata with list detail */\n switch (node.tagName) {\n case 'UL':\n case 'OL':\n metadata = Object.assign(Object.assign({}, metadata), { listItemNumber: 0, listKind: node.tagName, indentLevel: ((_c = metadata === null || metadata === void 0 ? void 0 : metadata.indentLevel) !== null && _c !== void 0 ? _c : -1) + 1 });\n break;\n case 'LI':\n if ((metadata === null || metadata === void 0 ? void 0 : metadata.listKind) === 'OL')\n metadata.listItemNumber = ((_d = metadata.listItemNumber) !== null && _d !== void 0 ? _d : 0) + 1;\n break;\n case 'PRE':\n metadata = Object.assign(Object.assign({}, metadata), { preserveWhitespace: true });\n break;\n case 'TABLE':\n metadata = Object.assign(Object.assign({}, metadata), { tableMeta: {\n node: node\n } });\n }\n if (metadata)\n this.nodeMetadata.set(node, metadata);\n // If no translator for element, visit children\n if (!translatorCfgOrFactory) {\n for (const child of (0, utilities_1.getChildNodes)(node))\n this.visitNode(child, textOnly, metadata);\n return;\n }\n /* Get Translator Config */\n let cfg;\n let ctx;\n if (!(0, translator_1.isTranslatorConfig)(translatorCfgOrFactory)) {\n ctx = (0, translator_1.createTranslatorContext)(this, node, metadata, translatorCfgOrFactory.base);\n cfg = Object.assign(Object.assign({}, translatorCfgOrFactory.base), translatorCfgOrFactory(ctx));\n }\n else\n cfg = translatorCfgOrFactory;\n // Skip and don't check children if ignore flag set\n if (cfg.ignore)\n return;\n /* Update metadata if needed */\n if (cfg.noEscape && !(metadata === null || metadata === void 0 ? void 0 : metadata.noEscape)) {\n metadata = Object.assign(Object.assign({}, metadata), { noEscape: cfg.noEscape });\n this.nodeMetadata.set(node, metadata);\n }\n if (cfg.childTranslators && (cfg.childTranslators !== (metadata === null || metadata === void 0 ? void 0 : metadata.translators))) {\n metadata = Object.assign(Object.assign({}, metadata), { translators: cfg.childTranslators });\n this.nodeMetadata.set(node, metadata);\n }\n const startPosOuter = result.text.length;\n /* Write opening */\n if (cfg.surroundingNewlines)\n this.appendNewlines(+cfg.surroundingNewlines);\n if (cfg.prefix)\n this.appendResult(cfg.prefix);\n /* Write inner content */\n if (typeof cfg.content === 'string')\n this.appendResult(cfg.content, void 0, cfg.spaceIfRepeatingChar);\n else {\n const startPos = result.text.length;\n // Process child nodes\n for (const child of (0, utilities_1.getChildNodes)(node))\n this.visitNode(child, (cfg.recurse === false), metadata);\n /* Apply translator post-processing */\n if (cfg.postprocess) {\n const postRes = cfg.postprocess(Object.assign(Object.assign({}, (ctx || (0, translator_1.createTranslatorContext)(this, node, metadata))), { content: result.text.substr(startPos) }));\n // If remove flag sent, remove / omit everything for this node (prefix, newlines, content, postfix)\n if (postRes === translator_1.PostProcessResult.RemoveNode) {\n if (node.tagName === 'LI' && (metadata === null || metadata === void 0 ? void 0 : metadata.listItemNumber))\n --metadata.listItemNumber;\n return this.appendResult('', startPosOuter);\n }\n if (typeof postRes === 'string')\n this.appendResult(postRes, startPos, cfg.spaceIfRepeatingChar);\n }\n }\n /* Write closing */\n if (cfg.postfix)\n this.appendResult(cfg.postfix);\n if (cfg.surroundingNewlines)\n this.appendNewlines(+cfg.surroundingNewlines);\n }\n}\nexports.Visitor = Visitor;\n// endregion\n/* ****************************************************************************************************************** */\n// region: Utilities\n/* ****************************************************************************************************************** */\nfunction getMarkdownForHtmlNodes(instance, rootNode, fileName) {\n (0, utilities_1.perfStart)('walk');\n const visitor = new Visitor(instance, rootNode, fileName);\n let result = visitor.result.text;\n (0, utilities_1.perfStop)('walk');\n /* Post-processing */\n // Add link references, if set\n if (instance.options.useLinkReferenceDefinitions) {\n if (/[^\\r\\n]/.test(result.slice(-1)))\n result += '\\n';\n visitor.urlDefinitions.forEach((url, idx) => {\n result += `\\n[${idx + 1}]: ${url}`;\n });\n }\n // Fixup repeating newlines\n const { maxConsecutiveNewlines } = instance.options;\n if (maxConsecutiveNewlines)\n result = result.replace(new RegExp(String.raw `(?:\\r?\\n\\s*)+((?:\\r?\\n\\s*){${maxConsecutiveNewlines}})`, 'g'), '$1');\n return (0, utilities_1.trimNewLines)(result);\n}\nexports.getMarkdownForHtmlNodes = getMarkdownForHtmlNodes;\n// endregion\n//# sourceMappingURL=visitor.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeHtmlMarkdown = void 0;\nconst translator_1 = require(\"./translator\");\nconst config_1 = require(\"./config\");\nconst utilities_1 = require(\"./utilities\");\nconst visitor_1 = require(\"./visitor\");\n// endregion\n/* ****************************************************************************************************************** */\n// region: NodeHtmlMarkdown (class)\n/* ****************************************************************************************************************** */\nclass NodeHtmlMarkdown {\n constructor(options, customTranslators, customCodeBlockTranslators) {\n var _a, _b, _c, _d;\n this.translators = new translator_1.TranslatorCollection();\n this.aTagTranslators = new translator_1.TranslatorCollection();\n this.codeBlockTranslators = new translator_1.TranslatorCollection();\n this.tableTranslators = new translator_1.TranslatorCollection();\n this.tableRowTranslators = new translator_1.TranslatorCollection();\n this.tableCellTranslators = new translator_1.TranslatorCollection();\n /* Setup Options */\n this.options = Object.assign(Object.assign({}, config_1.defaultOptions), options);\n const ignoredElements = (_b = (_a = this.options.ignore) === null || _a === void 0 ? void 0 : _a.concat(config_1.defaultIgnoreElements)) !== null && _b !== void 0 ? _b : config_1.defaultIgnoreElements;\n const blockElements = (_d = (_c = this.options.blockElements) === null || _c === void 0 ? void 0 : _c.concat(config_1.defaultBlockElements)) !== null && _d !== void 0 ? _d : config_1.defaultBlockElements;\n /* Setup Translator Bases */\n ignoredElements === null || ignoredElements === void 0 ? void 0 : ignoredElements.forEach(el => {\n this.translators.set(el, { ignore: true, recurse: false });\n this.codeBlockTranslators.set(el, { ignore: true, recurse: false });\n });\n blockElements === null || blockElements === void 0 ? void 0 : blockElements.forEach(el => {\n this.translators.set(el, { surroundingNewlines: 2 });\n this.codeBlockTranslators.set(el, { surroundingNewlines: 2 });\n });\n /* Add and merge bases with default and custom translator configs */\n for (const [elems, cfg] of Object.entries(Object.assign(Object.assign({}, config_1.defaultTranslators), customTranslators)))\n this.translators.set(elems, cfg, true);\n for (const [elems, cfg] of Object.entries(Object.assign(Object.assign({}, config_1.defaultCodeBlockTranslators), customCodeBlockTranslators)))\n this.codeBlockTranslators.set(elems, cfg, true);\n for (const [elems, cfg] of Object.entries(config_1.aTagTranslatorConfig))\n this.aTagTranslators.set(elems, cfg, true);\n for (const [elems, cfg] of Object.entries(config_1.tableTranslatorConfig))\n this.tableTranslators.set(elems, cfg, true);\n for (const [elems, cfg] of Object.entries(config_1.tableRowTranslatorConfig))\n this.tableRowTranslators.set(elems, cfg, true);\n for (const [elems, cfg] of Object.entries(config_1.tableCellTranslatorConfig))\n this.tableCellTranslators.set(elems, cfg, true);\n // TODO - Workaround for upstream issue (may not be fixed) - https://github.com/taoqf/node-html-parser/issues/78\n if (!this.options.textReplace)\n this.options.textReplace = [];\n this.options.textReplace.push([/^<!DOCTYPE.*>/gmi, '']);\n }\n static translate(htmlOrFiles, opt, customTranslators, customCodeBlockTranslators) {\n return NodeHtmlMarkdown.prototype.translateWorker.call(new NodeHtmlMarkdown(opt, customTranslators, customCodeBlockTranslators), htmlOrFiles);\n }\n translate(htmlOrFiles) {\n return this.translateWorker(htmlOrFiles);\n }\n // endregion\n /* ********************************************************* */\n // region: Internal Methods\n /* ********************************************************* */\n translateWorker(htmlOrFiles) {\n const inputIsCollection = typeof htmlOrFiles !== 'string';\n const inputFiles = !inputIsCollection ? { 'default': htmlOrFiles } : htmlOrFiles;\n const outputFiles = {};\n for (const [fileName, html] of Object.entries(inputFiles)) {\n const parsedHtml = (0, utilities_1.parseHTML)(html, this.options);\n outputFiles[fileName] = (0, visitor_1.getMarkdownForHtmlNodes)(this, parsedHtml, fileName !== 'default' ? fileName : void 0);\n }\n return inputIsCollection ? outputFiles : outputFiles['default'];\n }\n}\nexports.NodeHtmlMarkdown = NodeHtmlMarkdown;\n// endregion\n//# sourceMappingURL=main.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PostProcessResult = exports.TranslatorCollection = exports.NodeHtmlMarkdown = void 0;\nvar main_1 = require(\"./main\");\nObject.defineProperty(exports, \"NodeHtmlMarkdown\", { enumerable: true, get: function () { return main_1.NodeHtmlMarkdown; } });\nvar translator_1 = require(\"./translator\");\nObject.defineProperty(exports, \"TranslatorCollection\", { enumerable: true, get: function () { return translator_1.TranslatorCollection; } });\nObject.defineProperty(exports, \"PostProcessResult\", { enumerable: true, get: function () { return translator_1.PostProcessResult; } });\n//# sourceMappingURL=index.js.map","import { promiseFactoryToObservable } from '@sourcegraph/observable'\nimport { NodeHtmlMarkdown } from 'node-html-markdown'\nimport type { ReadWebPageToolDef } from './common'\n\nexport const nodeReadWebPageTool = ({ args }: { args: ReadWebPageToolDef['args'] }) => {\n\treturn promiseFactoryToObservable(async (signal) => {\n\t\ttry {\n\t\t\t// Using built-in fetch API\n\t\t\tconst response = await fetch(args.url, { signal })\n\t\t\tconst htmlText = await response.text()\n\t\t\tconst contentType = response.headers.get('content-type') || ''\n\t\t\tconst isHtml =\n\t\t\t\thtmlText.toLowerCase().includes('<html') || contentType.includes('text/html')\n\n\t\t\t// Process based on content type and raw flag\n\t\t\tlet content: string\n\t\t\tlet prefix = ''\n\n\t\t\t// If it's HTML and not requested as raw, convert to markdown\n\t\t\tif (isHtml && !args.raw) {\n\t\t\t\t// Use NodeHtmlMarkdown to convert HTML to markdown\n\t\t\t\tconst nhm = new NodeHtmlMarkdown({\n\t\t\t\t\tcodeFence: '```',\n\t\t\t\t\tcodeBlockStyle: 'fenced',\n\t\t\t\t})\n\t\t\t\tcontent = nhm.translate(htmlText)\n\t\t\t} else {\n\t\t\t\t// Return raw content with appropriate prefix\n\t\t\t\tcontent = htmlText\n\t\t\t\tprefix = isHtml\n\t\t\t\t\t? `Raw HTML content as requested:\\n`\n\t\t\t\t\t: `Content type ${contentType} cannot be simplified to markdown, returning as-is:\\n`\n\t\t\t}\n\n\t\t\t// Handle pagination with start_index and max_length\n\t\t\tconst startIndex = args.start_index || 0\n\t\t\tconst maxLength = args.max_length || 5000\n\t\t\tconst originalLength = content.length\n\n\t\t\t// No content available if start index is beyond content length\n\t\t\tif (startIndex >= originalLength) {\n\t\t\t\tcontent = '<e>No more content available.</e>'\n\t\t\t\treturn {\n\t\t\t\t\tstatus: 'done' as const,\n\t\t\t\t\tresult: `${prefix}Contents of ${args.url}:\\n${content}`,\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst truncatedContent = content.substring(startIndex, startIndex + maxLength)\n\t\t\tif (!truncatedContent) {\n\t\t\t\tcontent = '<e>No more content available.</e>'\n\t\t\t\treturn {\n\t\t\t\t\tstatus: 'done' as const,\n\t\t\t\t\tresult: `${prefix}Contents of ${args.url}:\\n${content}`,\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcontent = truncatedContent\n\t\t\tconst actualContentLength = truncatedContent.length\n\t\t\tconst remainingContent = originalLength - (startIndex + actualContentLength)\n\n\t\t\t// Add prompt to continue fetching if there's more content\n\t\t\tif (actualContentLength === maxLength && remainingContent > 0) {\n\t\t\t\tconst nextStart = startIndex + actualContentLength\n\t\t\t\tcontent += `\\n\\n<e>Content truncated. Call the read_web_page tool with a start_index of ${nextStart} and max_length ${maxLength * 2} to get more content.</e>`\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tstatus: 'done' as const,\n\t\t\t\tresult: `${prefix}Contents of ${args.url}:\\n${content}`,\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tthrow new Error(`Failed to fetch URL: ${(error as Error).message}`)\n\t\t}\n\t})\n}\n"],"names":["exports","PostProcessResult","TranslatorCollection","keys","config","preserveBase","el","res","base","args","key","isTranslatorConfig","v","createTranslatorContext","visitor","node","metadata","instance","nodeMetadata","root","freeExports","freeModule","module","freeGlobal","global","regexAstralSymbols","regexAsciiWhitelist","regexBmpWhitelist","regexEncodeNonAscii","encodeMap","regexEscape","escapeMap","regexInvalidEntity","regexInvalidRawCodePoint","regexDecode","decodeMap","decodeMapLegacy","decodeMapNumeric","invalidReferenceCodePoints","stringFromCharCode","object","hasOwnProperty","has","propertyName","contains","array","value","index","length","merge","options","defaults","result","codePointToSymbol","codePoint","strict","output","parseError","hexEscape","decEscape","message","encode","string","encodeEverything","useNamedReferences","allowUnsafeSymbols","escapeCodePoint","escapeBmpSymbol","symbol","$0","high","low","decode","html","$1","$2","$3","$4","$5","$6","$7","$8","semicolon","decDigits","hexDigits","reference","next","escape","he","this","he_1","require$$0","Node","parentNode","range","_this","children","child","val","type","NodeType","__extends","extendStatics","d","b","p","__","__importDefault","mod","comment","node_1","type_1","CommentNode","_super","rawText","rawTagName","ElementType","isTag","elem","__assign","t","s","i","n","domelementtype_1","parent","prev","recursive","cloneNode","DataNode","data","Text","Comment","ProcessingInstruction","name","NodeWithChildren","_a","CDATA","Document","Element","attribs","_b","isCDATA","isText","isComment","isDirective","isDocument","hasChildren","cloneChildren","clone_1","clone_2","clone_3","instruction","childs","__createBinding","o","m","k","k2","desc","__exportStar","node_js_1","require$$1","defaultOpts","DomHandler","callback","elementCB","parser","error","element","lastNode","text","previousSibling","decodeDataHtml","c","decodeDataXml","replaceCodePoint","decodeCodePoint","__setModuleDefault","__importStar","decode_data_html_js_1","decode_data_xml_js_1","decode_codepoint_js_1","decode_codepoint_js_2","require$$2","CharCodes","TO_LOWER_BIT","BinTrieFlags","isNumber","code","isHexadecimalCharacter","isAsciiAlphaNumeric","isEntityInAttributeInvalidEnd","EntityDecoderState","DecodingMode","EntityDecoder","decodeTree","emitCodePoint","errors","decodeMode","str","offset","start","end","digitCount","startIdx","char","lastCp","expectedLength","current","valueLength","determineBranch","consumed","getDecoder","ret","decoder","lastIndex","len","nodeIdx","branchCount","jumpOffset","lo","hi","mid","midVal","htmlDecoder","xmlDecoder","decodeHTML","mode","decodeHTMLAttribute","decodeHTMLStrict","decodeXML","encodeHtml","restoreDiff","arr","xmlCodeMap","encodeXML","lastIdx","match","getEscaper","regex","map","encode_html_js_1","escape_js_1","htmlReplacer","encodeHTML","encodeHTMLTrieRe","encodeNonAsciiHTML","regExp","nextChar","cp","decode_js_1","encode_js_1","EntityLevel","EncodingMode","level","decodeStrict","opts","escape_js_2","encode_js_2","decode_js_2","foreignNames","lib","entities_1","foreignNames_js_1","unencodedElements","replaceQuotes","formatAttributes","attributes","singleTag","render","nodes","renderNode","renderDirective","renderComment","renderCdata","renderTag","renderText","foreignModeIntegrationPoints","foreignElements","tag","stringify","getOuterHTML","getInnerHTML","getText","textContent","innerText","domhandler_1","dom_serializer_1","traversal","getChildren","getParent","getSiblings","getAttributeValue","hasAttrib","getName","nextElementSibling","prevElementSibling","siblings","manipulation","removeElement","replaceElement","appendChild","append","prependChild","prepend","childsIndex","replacement","sibling","currNext","querying","filter","find","findOneChild","findOne","existsOne","findAll","test","recurse","limit","nodeStack","indexStack","searchedNodes","found","legacy","testElement","getElements","getElementById","getElementsByTagName","getElementsByClassName","getElementsByTagType","querying_js_1","Checks","getAttribCheck","attrib","combineFuncs","a","compileTest","funcs","id","tagName","className","helpers","removeSubsets","compareDocumentPosition","uniqueSort","idx","ancestor","DocumentPosition","nodeA","nodeB","aParents","bParents","maxIdx","sharedParent","aSibling","bSibling","relative","feeds","getFeed","stringify_js_1","legacy_js_1","doc","feedRoot","getOneElement","isValidFeed","getAtomFeed","getRssFeed","feed","item","entry","getMediaElements","addConditionally","href","description","fetch","pubDate","updated","MEDIA_KEYS_STRING","MEDIA_KEYS_INT","where","media","_i","MEDIA_KEYS_STRING_1","MEDIA_KEYS_INT_1","obj","prop","require$$3","require$$4","require$$5","require$$6","require$$7","boolbase","SelectorType","IgnoreCaseMode","AttributeAction","reName","reEscape","actionTypes","unpackPseudos","isTraversal","selector","stripQuotesFromPseudos","funescape","_","escaped","escapedWhitespace","unescapeCSS","isQuote","isWhitespace","parse","subselects","endIndex","parseSelector","selectorIndex","tokens","stripWhitespace","readValueWithParenthesis","counter","isEscaped","pos","slashCount","ensureNotTraversal","addTraversal","addSpecialAttribute","action","finalizeSubselector","loop","firstChar","namespace","possibleAction","ignoreCase","quote","sectionEnd","valueStart","forceIgnore","attributeSelector","quot","attribValChars","pseudoValChars","charsToEscapeInAttributeValue","charsToEscapeInPseudoValue","charsToEscapeInName","token","stringifyToken","getNamespace","getNamespacedName","escapeName","getActionValue","charsToEscape","sort","css_what_1","procedure","sortByProcedure","procs","getProcedure","procNew","j","proc","boolbase_1","reChars","escapeRegex","caseInsensitiveAttributes","shouldIgnoreCase","adapter","attr","regex_1","parse_1","whitespace","ZERO","NINE","formula","sign","readSign","number","readNumber","skipWhitespace","compile_1","compile","parsed","absA","bMod","generate","aPos_1","minValue_1","parse_js_1","compile_js_1","nthCheck","sequence","nth_check_1","getChildFunc","itext","rule","equals","func","currentSibling","_rule","context","dynamicStatePseudo","pseudos","firstChild","elemName","verifyPseudoArgs","subselect","argIndex","aliases","__spreadArray","to","from","pack","l","ar","sort_js_1","ensureIsTag","getNextSiblings","elemIndex","copyOptions","is","compileToken","_context","compiled","hasElement","shouldTestNextSiblings_1","nextElements","filters_js_1","pseudos_js_1","aliases_js_1","subselects_js_1","compilePseudoSelector","userPseudo","stringPseudo","alias","pseudo_1","general","attributes_js_1","index_js_1","getElementParent","compileGeneralSelector","name_1","isFalseCache_1","previous","lastElement","general_js_1","compileUnsafe","includesScopePseudo","DESCENDANT_TOKEN","FLEXIBLE_DESCENDANT_TOKEN","SCOPE_TOKEN","absolutize","hasContext","e","token_1","isArrayContext","finalContext","shouldTestNextSiblings","query","rules","first","second","compileRules","reduceRules","DomUtils","defaultEquals","defaultOptions","convertOptionFormats","_c","_d","wrapCompile","getSelectorFunc","searchFunc","elements","filteredElements","prepareContext","elems","appendNextSiblings","elemsLength","nextSiblings","back","arr_back","matcher","replace","voidTag","VoidTag","addClosingSlash","tags","set","attrs","innerHTML","closingSpace","closingSlash","TextNode","trimText","startPos","endPos","hasLeadingSpace","hasTrailingSpace","css_select_1","back_1","matcher_1","void_tag_1","comment_1","text_1","Htags","Dtags","Ftags","tableTags","htmlTags","kBlockElements","addToKBlockElement","addToSet","args_1","arg","DOMTokenList","valuesInit","afterUpdate","c1","c2","HTMLElement","keyAttrs","rawAttrs","_parseOptions","classList","cls","oldNode","newNode","newname","pre","cur","content","currentBlock","blocks","dfs","block","r","resetParent","pattern","childNode","indention","write","idStr","classStr","upperCasedTagName","re","stack","currentNodeReference","mapChild","old","el_1","ret_attrs","kMarkupPattern","kAttributePattern","kElementsClosedByOpening","kElementsClosedByClosing","frameflag","base_parse","element_names","kBlockTextElements","it","kIgnoreElements","element_should_be_ignore","is_block_text_element","createRange","frameFlagOffset","currentParent","lastTextPos","noNestedTagIndex","lowerCaseTagName","fixNestedATags","dataEndPos","matchText","leadingSlash","matchLength","tagStartPos","tagEndPos","attMatch","isQuoted","parentTagName","tagEndPos_1","tagStartPos_1","closeMarkup","closeIndex","textEndPos","_loop_1","last","oneBefore","html_1","valid_1","valid","dist","utilities","config_1","trimNewLines","surround","source","surroundStr","isWhiteSpaceOnly","splitSpecial","lines","strLen","newLineChar","tagSurround","leadingSpace","trailingSpace","slicedText","getTrailingWhitespaceInfo","minI","truthyStr","tryParseWithNativeDom","ActiveXObject","getNodeHtmlParser","parseHTML","nodeHtmlParse","perfStart","perfStop","getChildNodes","isNodeList","label","utilities_1","translator_1","strongDelimiter","strikeDelimiter","emDelimiter","listKind","bulletMarker","indentLevel","listItemNumber","indentationLevel","codeFence","codeBlockStyle","delimiter","padding","language","rawRows","rows","colWidth","row","cols","maxCols","caption","rowNumber","w","encodedHref","chr","title","src","alt","node_html_parser_1","isTextNode","isCommentNode","isElementNode","nodes_1","Visitor","rootNode","fileName","url","u","spaceIfRepeatingChar","count","newLines","translators","visit","childNodes","translator","lineStartEscape","globalEscape","textReplace","textOnly","_e","_f","translatorCfgOrFactory","cfg","ctx","startPosOuter","postRes","getMarkdownForHtmlNodes","maxConsecutiveNewlines","main","visitor_1","NodeHtmlMarkdown","customTranslators","customCodeBlockTranslators","ignoredElements","blockElements","htmlOrFiles","opt","inputIsCollection","inputFiles","outputFiles","parsedHtml","main_1","nodeReadWebPageTool","promiseFactoryToObservable","signal","response","htmlText","contentType","isHtml","prefix","startIndex","maxLength","originalLength","truncatedContent","actualContentLength","remainingContent","nextStart"],"mappings":";;;;;AACA,WAAO,eAAcA,GAAU,cAAc,EAAE,OAAO,IAAM,GAC5DA,EAAA,0BAAkCA,EAA6B,qBAAAA,EAAA,uBAA+BA,EAA4B,oBAAA,QAEzH,SAAUC,GAAmB;AAC1B,MAAAA,EAAkBA,EAAkB,WAAc,CAAC,IAAI,YACvDA,EAAkBA,EAAkB,aAAgB,CAAC,IAAI;AAAA,IAC5D,EAAsBD,EAAQ,sBAAsBA,EAAA,oBAA4B,CAAE,EAAC;AAAA,IAKpF,MAAME,EAAqB;AAAA,MACvB,IAAI,OAAO;AAAE,eAAO,OAAO,KAAK,IAAI,EAAE;AAAA,MAAO;AAAA;AAAA;AAAA;AAAA,MAI7C,IAAIC,GAAMC,GAAwBC,GAAc;AAC5C,QAAAF,EAAK,MAAM,GAAG,EAAE,QAAQ,CAAAG,MAAM;AAC1B,UAAAA,IAAKA,EAAG,YAAa;AACrB,cAAIC,IAAMH;AACV,cAAIC,GAAc;AACd,kBAAMG,IAAO,KAAKF,CAAE;AACpB,gBAAQN,EAAQ,oBAAoBQ,CAAI,MACpCD,QAAWP,EAAQ,oBAAoBI,CAAM,IAEvC,OAAO,OAAO,OAAO,OAAO,CAAA,GAAII,CAAI,GAAGJ,CAAM,IAD7C,OAAO,OAAO,IAAIK,MAASL,EAAO,MAAM,QAAQK,CAAI,GAAG,EAAE,MAAAD,EAAM,CAAA;AAAA,UAEzF;AACY,eAAKF,CAAE,IAAIC;AAAA,QACvB,CAAS;AAAA,MACT;AAAA;AAAA;AAAA;AAAA,MAII,IAAIG,GAAK;AACL,eAAO,KAAKA,EAAI,aAAa;AAAA,MACrC;AAAA;AAAA;AAAA;AAAA,MAII,UAAU;AACN,eAAO,OAAO,QAAQ,IAAI;AAAA,MAClC;AAAA;AAAA;AAAA;AAAA,MAII,OAAOP,GAAM;AACT,QAAAA,EAAK,MAAM,GAAG,EAAE,QAAQ,CAAAG,MAAM,OAAO,KAAKA,EAAG,YAAW,CAAE,CAAC;AAAA,MACnE;AAAA,IACA;AACA,IAAAN,EAAA,uBAA+BE;AAQ/B,UAAMS,IAAqB,CAACC,MAAM,OAAOA,KAAM;AAC/C,IAAAZ,EAAA,qBAA6BW;AAC7B,aAASE,EAAwBC,GAASC,GAAMC,GAAUR,GAAM;AAC5D,YAAM,EAAE,UAAAS,GAAU,cAAAC,EAAY,IAAMJ;AACpC,aAAO,OAAO,OAAO;AAAA,QAAE,MAAAC;AAAA,QAAM,SAASE,EAAS;AAAA,QAAS,QAAQF,EAAK;AAAA,QAAY,cAAAG;AAAA,QAC7E,SAAAJ;AAAA,QACA,MAAAN;AAAA,MAAI,GAAIQ,CAAQ;AAAA,IACxB;AACA,IAAAhB,EAAA,0BAAkCa;AAAA;;;;;;;ACjEjC,KAAC,SAASM,GAAM;AAGhB,UAAIC,IAA4CpB,GAG5CqB,IAA0CC,KAC7CA,EAAO,WAAWF,KAAeE,GAI9BC,IAAa,OAAOC,MAAU,YAAYA;AAC9C,OAAID,EAAW,WAAWA,KAAcA,EAAW,WAAWA,OAC7DJ,IAAOI;AAMR,UAAIE,IAAqB,mCAIrBC,IAAsB,gBAItBC,IAAoB,gEAEpBC,IAAsB,mlGACtBC,IAAY,EAAC,KAAO,OAAM,KAAS,QAAO,KAAS,OAAM,KAAS,OAAM,KAAS,MAAK,KAAS,MAAK,KAAS,MAAK,KAAS,OAAM,KAAS,kBAAiB,KAAS,WAAU,KAAS,aAAY,KAAS,QAAO,KAAS,UAAS,KAAK,OAAM,MAAK,WAAU,KAAS,UAAS,KAAS,eAAc,KAAS,UAAS,KAAS,UAAS,KAAS,UAAS,KAAS,QAAO,KAAS,UAAS,KAAS,QAAO,KAAS,SAAQ,KAAO,QAAO,MAAe,cAAa,KAAS,SAAQ,GAAI,UAAS,KAAS,QAAO,KAAS,SAAQ,KAAS,SAAQ,KAAS,UAAS,KAAI,SAAQ,KAAI,QAAO,KAAS,SAAQ,KAAI,SAAQ,KAAS,UAAS,KAAI,QAAO,KAAO,SAAQ,KAAI,SAAQ,KAAO,UAAS,KAAI,UAAS,KAAS,QAAO,KAAS,QAAO,KAAO,UAAS,KAAK,QAAO,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,UAAS,KAAS,UAAS,KAAI,QAAO,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAO,SAAQ,KAAO,SAAQ,KAAI,QAAO,KAAI,QAAO,KAAI,QAAO,KAAI,QAAO,KAAI,QAAO,KAAI,QAAO,KAAS,SAAQ,KAAS,SAAQ,KAAS,UAAS,KAAS,UAAS,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,WAAU,KAAS,WAAU,KAAS,WAAU,KAAS,WAAU,KAAS,SAAQ,KAAS,SAAQ,KAAS,UAAS,KAAS,UAAS,KAAS,UAAS,KAAS,UAAS,KAAS,SAAQ,KAAS,SAAQ,KAAS,QAAO,KAAS,QAAO,KAAS,QAAO,KAAS,QAAO,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,QAAO,KAAO,QAAO,KAAO,QAAO,KAAI,UAAS,KAAI,OAAM,KAAI,OAAM,WAAY,MAAK,KAAI,OAAM,KAAI,OAAM,KAAI,UAAS,KAAS,UAAS,KAAS,WAAU,KAAS,UAAS,KAAS,UAAS,KAAS,QAAO,KAAS,UAAS,KAAS,SAAQ,KAAS,SAAQ,KAAS,UAAS,KAAS,UAAS,KAAS,UAAS,KAAS,SAAQ,KAAI,SAAQ,KAAO,SAAQ,KAAS,SAAQ,KAAI,OAAM,KAAO,QAAO,KAAS,SAAQ,KAAS,OAAM,KAAO,OAAM,KAAS,QAAO,KAAS,SAAQ,KAAO,SAAQ,KAAS,QAAO,KAAS,QAAO,KAAS,SAAQ,KAAO,OAAM,KAAO,QAAO,KAAO,OAAM,KAAS,UAAS,KAAS,MAAK,KAAS,MAAK,KAAS,OAAM,KAAS,SAAQ,KAAS,QAAO,KAAS,SAAQ,KAAS,QAAO,KAAS,SAAQ,KAAS,QAAO,KAAS,QAAO,KAAS,QAAO,KAAS,SAAQ,KAAS,QAAO,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,MAAe,UAAS,KAAS,QAAO,KAAS,QAAO,KAAS,QAAO,KAAS,QAAO,KAAS,UAAS,KAAS,UAAS,KAAS,cAAa,KAAS,YAAW,KAAS,OAAM,KAAS,cAAa,KAAS,UAAS,KAAS,UAAS,KAAS,UAAS,KAAS,UAAS,KAAS,SAAQ,KAAS,OAAM,KAAS,OAAM,KAAS,QAAO,KAAS,QAAO,KAAS,SAAQ,KAAS,UAAS,KAAS,UAAS,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,QAAO,KAAS,SAAQ,KAAS,QAAO,KAAS,QAAO,KAAS,SAAQ,KAAS,QAAO,KAAS,OAAM,KAAS,SAAQ,KAAS,QAAO,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,WAAU,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,UAAS,KAAS,QAAO,KAAS,QAAO,MAAe,SAAQ,KAAS,SAAQ,KAAS,UAAS,KAAS,SAAQ,KAAS,OAAM,KAAS,MAAK,KAAS,SAAQ,KAAS,MAAK,KAAS,SAAQ,KAAS,SAAQ,KAAS,QAAO,KAAS,UAAS,KAAS,OAAM,KAAI,QAAO,KAAO,MAAK,KAAO,OAAM,KAAO,SAAQ,KAAI,MAAK,KAAS,OAAM,MAAU,QAAO,KAAI,UAAS,KAAS,MAAK,MAAU,OAAM,KAAS,SAAQ,KAAI,MAAK,KAAS,OAAM,MAAU,QAAO,KAAO,OAAM,KAAI,QAAO,KAAO,UAAS,KAAS,SAAQ,KAAS,MAAK,KAAS,UAAS,KAAS,SAAQ,KAAS,SAAQ,KAAS,UAAS,KAAS,UAAS,KAAS,QAAO,KAAS,QAAO,KAAS,SAAQ,KAAS,SAAQ,KAAS,OAAM,MAAe,QAAO,KAAS,UAAS,KAAS,UAAS,KAAS,OAAM,KAAS,QAAO,KAAS,OAAM,KAAS,QAAO,KAAS,OAAM,KAAS,MAAK,KAAS,OAAM,MAAe,QAAO,KAAS,OAAM,MAAe,QAAO,KAAS,OAAM,KAAS,OAAM,KAAS,QAAO,KAAS,QAAO,KAAS,QAAO,KAAS,UAAS,KAAS,WAAU,KAAS,SAAQ,KAAS,YAAW,KAAS,YAAW,KAAS,UAAS,KAAS,UAAS,KAAS,SAAQ,KAAS,SAAQ,KAAS,UAAS,KAAS,SAAQ,KAAS,UAAS,KAAS,OAAM,KAAS,QAAO,MAAe,SAAQ,KAAS,QAAO,MAAe,QAAO,KAAS,MAAK,MAAe,OAAM,KAAS,OAAM,KAAS,MAAK,KAAS,QAAO,MAAe,SAAQ,KAAS,QAAO,KAAS,SAAQ,KAAS,QAAO,KAAS,SAAQ,KAAS,SAAQ,KAAS,MAAK,KAAS,OAAM,KAAS,OAAM,KAAS,QAAO,MAAe,SAAQ,KAAS,SAAQ,KAAS,UAAS,KAAS,aAAY,MAAe,QAAO,KAAS,QAAO,MAAe,SAAQ,KAAS,SAAQ,MAAe,UAAS,KAAS,SAAQ,MAAe,SAAQ,KAAS,QAAO,KAAS,SAAQ,KAAS,SAAQ,KAAS,UAAS,KAAS,UAAS,KAAS,QAAO,KAAS,QAAO,KAAS,UAAS,KAAS,SAAQ,KAAS,QAAO,KAAS,UAAS,KAAS,SAAQ,KAAS,UAAS,MAAe,WAAU,KAAS,MAAK,KAAS,OAAM,MAAe,QAAO,KAAS,MAAK,KAAS,OAAM,MAAe,QAAO,KAAS,MAAK,MAAe,OAAM,KAAS,MAAK,MAAe,OAAM,MAAe,QAAO,KAAS,OAAM,KAAS,OAAM,MAAe,QAAO,KAAS,MAAK,MAAe,QAAO,MAAe,OAAM,KAAS,MAAK,MAAe,QAAO,MAAe,OAAM,KAAS,SAAQ,KAAS,QAAO,KAAS,SAAQ,KAAS,QAAO,KAAS,SAAQ,KAAS,MAAK,KAAS,QAAO,KAAS,MAAK,KAAS,QAAO,KAAS,MAAK,KAAS,OAAM,KAAS,MAAK,KAAS,OAAM,KAAS,SAAQ,KAAS,UAAS,KAAS,SAAQ,KAAS,UAAS,KAAS,SAAQ,KAAS,SAAQ,MAAe,oBAAmB,KAAS,OAAM,KAAS,QAAO,MAAe,SAAQ,KAAS,OAAM,KAAS,QAAO,MAAe,SAAQ,KAAS,QAAO,KAAS,SAAQ,KAAS,QAAO,KAAS,SAAQ,MAAe,UAAS,KAAS,SAAQ,MAAe,UAAS,KAAS,SAAQ,KAAS,UAAS,KAAS,SAAQ,KAAS,SAAQ,MAAe,mBAAkB,KAAS,SAAQ,MAAe,qBAAoB,KAAS,UAAS,KAAS,WAAU,KAAS,UAAS,KAAS,WAAU,KAAS,SAAQ,MAAe,UAAS,KAAS,SAAQ,MAAe,UAAS,KAAS,SAAQ,KAAS,UAAS,KAAS,UAAS,KAAS,QAAO,KAAS,QAAO,KAAS,QAAO,KAAS,QAAO,KAAS,SAAQ,KAAS,SAAQ,KAAS,UAAS,KAAS,UAAS,KAAS,SAAQ,KAAS,SAAQ,KAAS,UAAS,KAAS,SAAQ,KAAS,OAAM,KAAS,OAAM,KAAS,UAAS,KAAS,SAAQ,KAAS,UAAS,KAAS,SAAQ,KAAS,UAAS,KAAS,UAAS,KAAS,SAAQ,KAAS,UAAS,KAAS,UAAS,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,UAAS,MAAe,WAAU,KAAS,SAAQ,KAAS,UAAS,MAAe,WAAU,KAAS,UAAS,KAAS,QAAO,KAAS,SAAQ,KAAS,UAAS,KAAS,UAAS,KAAS,UAAS,KAAS,UAAS,KAAS,WAAU,KAAS,SAAQ,KAAS,SAAQ,KAAS,OAAM,KAAS,QAAO,KAAS,QAAO,KAAS,QAAO,KAAS,QAAO,KAAS,QAAO,KAAS,UAAS,KAAS,UAAS,KAAS,UAAS,KAAS,UAAS,KAAS,UAAS,KAAS,UAAS,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,OAAM,KAAS,OAAM,KAAS,OAAM,KAAS,OAAM,KAAS,QAAO,KAAS,QAAO,KAAS,SAAQ,KAAS,SAAQ,KAAS,MAAK,MAAe,OAAM,KAAS,MAAK,MAAe,OAAM,MAAe,QAAO,KAAS,OAAM,KAAS,OAAM,MAAe,QAAO,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,UAAS,KAAS,UAAS,KAAS,UAAS,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,UAAS,KAAS,SAAQ,KAAS,WAAU,MAAe,YAAW,KAAS,WAAU,KAAS,WAAU,KAAS,SAAQ,MAAe,UAAS,KAAS,QAAO,KAAS,QAAO,KAAS,OAAM,KAAS,WAAU,KAAS,WAAU,KAAS,UAAS,KAAS,UAAS,KAAS,UAAS,KAAS,UAAS,KAAS,UAAS,KAAS,UAAS,KAAS,QAAO,KAAS,YAAW,KAAS,YAAW,KAAS,UAAS,KAAS,UAAS,KAAS,UAAS,KAAS,UAAS,KAAS,UAAS,KAAS,UAAS,KAAS,SAAQ,KAAS,SAAQ,KAAS,UAAS,KAAS,YAAW,KAAS,UAAS,KAAS,SAAQ,KAAS,UAAS,KAAS,WAAU,KAAS,UAAS,KAAS,UAAS,KAAS,QAAO,KAAS,QAAO,KAAS,YAAW,KAAS,mBAAkB,KAAS,oBAAmB,KAAS,aAAY,KAAS,cAAa,KAAS,YAAW,KAAS,YAAW,KAAS,SAAQ,KAAS,QAAO,KAAS,QAAO,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,QAAO,KAAS,QAAO,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,OAAM,KAAS,QAAO,KAAS,wBAAuB,KAAS,QAAO,KAAS,UAAS,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,QAAO,KAAS,SAAQ,KAAS,QAAO,KAAS,SAAQ,KAAS,SAAQ,KAAS,QAAO,KAAS,SAAQ,KAAS,QAAO,KAAS,OAAM,KAAS,OAAM,KAAS,UAAS,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,oBAAmB,KAAS,qBAAoB,KAAS,SAAQ,KAAS,QAAO,KAAS,SAAQ,KAAS,UAAS,KAAS,QAAO,KAAS,UAAS,KAAS,SAAQ,KAAS,UAAS,KAAS,SAAQ,KAAS,QAAO,KAAS,SAAQ,KAAS,SAAQ,KAAS,QAAO,KAAS,QAAO,KAAS,qBAAoB,KAAS,YAAW,KAAS,WAAU,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,QAAO,KAAS,YAAW,KAAS,UAAS,KAAS,UAAS,KAAS,UAAS,KAAS,OAAM,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,YAAW,KAAS,cAAa,KAAS,gBAAe,KAAS,UAAS,KAAS,UAAS,KAAS,UAAS,KAAS,UAAS,KAAS,UAAS,KAAS,UAAS,KAAS,UAAS,KAAS,WAAU,KAAS,WAAU,KAAS,UAAS,KAAS,UAAS,KAAS,UAAS,KAAS,UAAS,KAAS,UAAS,KAAS,QAAO,KAAS,QAAO,KAAS,UAAS,KAAS,SAAQ,MAAe,UAAS,KAAS,WAAU,KAAS,QAAO,KAAS,QAAO,KAAS,WAAU,KAAS,UAAS,KAAS,WAAU,KAAS,WAAU,KAAS,UAAS,KAAS,WAAU,KAAS,YAAW,KAAS,YAAW,KAAS,YAAW,KAAS,mBAAkB,KAAS,qBAAoB,KAAS,uBAAsB,KAAS,oBAAmB,KAAS,iBAAgB,KAAS,kBAAiB,KAAS,oBAAmB,KAAS,sBAAqB,KAAS,qBAAoB,KAAS,sBAAqB,KAAS,mBAAkB,KAAS,qBAAoB,KAAS,iBAAgB,KAAS,kBAAiB,KAAS,oBAAmB,KAAS,sBAAqB,KAAS,qBAAoB,KAAS,sBAAqB,KAAS,mBAAkB,KAAS,qBAAoB,KAAS,QAAO,KAAS,QAAO,KAAS,QAAO,KAAS,QAAO,KAAS,WAAU,KAAS,WAAU,KAAS,WAAU,KAAS,WAAU,KAAS,UAAS,KAAS,UAAS,KAAS,UAAS,KAAS,UAAS,KAAS,SAAQ,KAAS,SAAQ,KAAS,gBAAe,KAAS,SAAQ,KAAS,WAAU,KAAS,WAAU,KAAS,WAAU,KAAS,UAAS,KAAS,UAAS,KAAS,UAAS,KAAS,WAAU,KAAS,WAAU,KAAS,UAAS,KAAS,UAAS,KAAS,UAAS,KAAS,UAAS,KAAS,WAAU,KAAS,UAAS,KAAS,YAAW,KAAS,QAAO,KAAS,SAAQ,KAAS,WAAU,KAAS,WAAU,KAAS,YAAW,KAAS,YAAW,KAAS,YAAW,KAAS,YAAW,KAAS,YAAW,KAAS,YAAW,KAAS,YAAW,KAAS,YAAW,KAAS,WAAU,KAAS,WAAU,KAAS,WAAU,KAAS,YAAW,KAAS,YAAW,KAAS,SAAQ,KAAS,QAAO,KAAS,QAAO,KAAS,SAAQ,KAAS,WAAU,KAAS,UAAS,KAAS,SAAQ,KAAS,SAAQ,KAAS,OAAM,KAAS,OAAM,KAAS,WAAU,KAAS,QAAO,KAAS,QAAO,KAAS,SAAQ,KAAS,UAAS,KAAS,SAAQ,KAAS,YAAW,KAAS,mBAAkB,MAAe,sBAAqB,KAAS,oBAAmB,MAAe,uBAAsB,KAAS,UAAS,KAAS,YAAW,KAAS,WAAU,KAAS,UAAS,KAAS,YAAW,KAAS,YAAW,KAAS,QAAO,KAAS,eAAc,KAAS,QAAO,KAAS,SAAQ,KAAS,UAAS,KAAS,UAAS,KAAS,UAAS,KAAS,UAAS,KAAS,YAAW,KAAS,YAAW,KAAS,SAAQ,KAAS,YAAW,KAAS,YAAW,KAAS,WAAU,KAAS,YAAW,KAAS,WAAU,KAAS,YAAW,KAAS,WAAU,KAAS,YAAW,KAAS,WAAU,KAAS,UAAS,KAAS,WAAU,KAAS,WAAU,KAAS,UAAS,KAAS,WAAU,KAAS,UAAS,KAAS,UAAS,KAAS,SAAQ,KAAS,UAAS,KAAS,YAAW,KAAS,UAAS,KAAS,WAAU,KAAS,WAAU,KAAS,YAAW,KAAS,UAAS,KAAS,QAAO,KAAS,WAAU,KAAS,YAAW,KAAS,WAAU,KAAS,SAAQ,KAAS,SAAQ,KAAS,UAAS,KAAS,QAAO,KAAS,QAAO,KAAS,UAAS,KAAS,SAAQ,KAAS,UAAS,KAAS,UAAS,KAAS,YAAW,KAAS,YAAW,KAAS,UAAS,KAAS,UAAS,KAAS,SAAQ,KAAS,SAAQ,KAAS,WAAU,KAAS,OAAM,KAAS,MAAK,KAAS,UAAS,KAAS,QAAO,KAAS,WAAU,KAAS,YAAW,KAAS,QAAO,KAAS,OAAM,KAAS,QAAO,KAAS,OAAM,KAAS,UAAS,KAAS,SAAQ,KAAS,UAAS,KAAS,WAAU,MAAe,YAAW,KAAS,UAAS,KAAS,UAAS,KAAS,OAAM,MAAe,QAAO,KAAS,SAAQ,KAAS,SAAQ,KAAS,QAAO,KAAS,SAAQ,KAAS,WAAU,KAAS,SAAQ,KAAS,SAAQ,KAAS,WAAU,KAAS,WAAU,KAAS,OAAM,MAAe,QAAO,KAAS,OAAM,MAAe,QAAO,KAAS,UAAS,KAAS,UAAS,KAAS,WAAU,KAAS,WAAU,KAAS,YAAW,KAAS,YAAW,KAAS,OAAM,KAAS,OAAM,KAAS,OAAM,KAAS,OAAM,KAAS,QAAO,KAAS,QAAO,KAAS,OAAM,KAAS,OAAM,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,SAAQ,KAAS,OAAM,KAAS,OAAM,KAAS,UAAS,KAAS,UAAS,KAAS,OAAM,KAAS,OAAM,KAAS,UAAS,KAAS,UAAS,KAAS,MAAK,KAAS,MAAK,KAAS,QAAO,KAAS,QAAO,KAAS,SAAQ,KAAS,SAAQ,KAAS,YAAW,MAAe,qBAAoB,KAAS,kBAAiB,MAAe,2BAA0B,KAAS,OAAM,KAAS,OAAM,KAAS,QAAO,KAAS,QAAO,KAAS,SAAQ,KAAS,SAAQ,KAAS,OAAM,KAAS,OAAM,KAAS,QAAO,MAAe,SAAQ,KAAS,QAAO,MAAe,SAAQ,KAAS,SAAQ,KAAS,OAAM,MAAe,QAAO,KAAS,OAAM,MAAe,QAAO,KAAS,OAAM,KAAS,OAAM,KAAS,QAAO,KAAS,QAAO,KAAS,QAAO,KAAS,QAAO,KAAS,SAAQ,KAAS,SAAQ,KAAS,MAAK,KAAS,MAAK,KAAS,UAAS,KAAS,UAAS,KAAS,WAAU,KAAS,WAAU,KAAS,WAAU,KAAS,WAAU,KAAS,WAAU,KAAS,WAAU,KAAS,QAAO,MAAe,SAAQ,KAAS,QAAO,MAAe,SAAQ,KAAS,UAAS,KAAS,UAAS,MAAe,UAAS,KAAS,SAAQ,MAAe,UAAS,KAAS,SAAQ,KAAS,QAAO,KAAS,QAAO,KAAS,SAAQ,KAAS,SAAQ,KAAS,UAAS,KAAS,UAAS,KAAS,UAAS,KAAS,UAAS,KAAS,WAAU,KAAS,WAAU,KAAS,SAAQ,KAAS,WAAU,KAAS,QAAO,KAAS,SAAQ,KAAS,UAAS,KAAS,QAAO,KAAS,QAAO,KAAS,SAAQ,KAAS,QAAO,KAAS,OAAM,KAAS,QAAO,KAAS,SAAQ,KAAS,UAAS,KAAS,UAAS,KAAS,UAAS,KAAS,SAAQ,KAAS,UAAS,KAAS,SAAQ,MAAe,UAAS,KAAS,QAAO,KAAS,SAAQ,KAAS,SAAQ,KAAO,UAAS,KAAO,QAAO,GAAI,UAAS,KAAO,SAAQ,KAAO,OAAM,KAAS,QAAO,KAAO,QAAO,KAAO,QAAO,KAAS,UAAS,KAAO,UAAS,KAAS,UAAS,KAAS,UAAS,KAAS,UAAS,KAAO,QAAO,KAAS,UAAS,KAAS,UAAS,KAAO,QAAO,KAAO,UAAS,KAAS,UAAS,KAAS,UAAS,KAAS,UAAS,KAAS,UAAS,KAAS,UAAS,KAAS,UAAS,MAAe,QAAO,MAAe,QAAO,MAAe,OAAM,MAAe,QAAO,MAAe,OAAM,MAAe,QAAO,GAAO,QAAO,GAAO,UAAS,GAAO,UAAS,GAAO,UAAS,GAAO,UAAS,GAAS,UAAS,GAAS,UAAS,GAAO,SAAQ,GAAO,SAAQ,GAAO,SAAQ,GAAO,SAAQ,GAAO,QAAO,GAAO,QAAO,GAAO,UAAS,GAAO,UAAS,GAAS,SAAQ,GAAS,SAAQ,GAAS,SAAQ,GAAS,SAAQ,GAAO,SAAQ,GAAO,SAAQ,MAAe,QAAO,MAAe,QAAO,MAAe,OAAM,MAAe,QAAO,GAAS,QAAO,MAAe,OAAM,MAAe,OAAM,MAAe,QAAO,MAAe,QAAO,GAAS,OAAM,MAAe,QAAO,GAAS,QAAO,GAAS,UAAS,GAAS,UAAS,GAAS,SAAQ,GAAS,SAAQ,GAAS,UAAS,GAAS,UAAS,GAAS,QAAO,GAAS,QAAO,GAAO,UAAS,GAAO,UAAS,KAAS,UAAS,MAAe,OAAM,KAAS,MAAK,MAAe,QAAO,MAAe,QAAO,MAAe,QAAO,MAAe,OAAM,KAAS,MAAK,MAAe,QAAO,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAO,OAAM,GAAO,OAAM,KAAS,MAAK,GAAS,QAAO,MAAe,OAAM,MAAe,QAAO,GAAS,QAAO,MAAe,OAAM,MAAe,QAAO,GAAO,UAAS,GAAO,UAAS,GAAO,UAAS,GAAO,UAAS,GAAO,SAAQ,GAAO,SAAQ,GAAS,UAAS,GAAS,UAAS,GAAO,QAAO,GAAO,QAAO,GAAS,QAAO,GAAS,QAAO,GAAS,SAAQ,GAAS,SAAQ,GAAS,SAAQ,GAAS,SAAQ,MAAe,OAAM,MAAe,QAAO,MAAe,QAAO,MAAe,OAAM,MAAe,QAAO,GAAS,QAAO,GAAS,SAAQ,GAAS,UAAS,GAAS,UAAS,GAAS,SAAQ,IAAK,SAAQ,GAAS,SAAQ,GAAS,QAAO,GAAS,QAAO,MAAe,QAAO,MAAe,OAAM,MAAe,QAAO,MAAe,QAAO,MAAe,OAAM,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAS,SAAQ,GAAS,SAAQ,GAAS,QAAO,GAAS,QAAO,GAAS,UAAS,MAAe,OAAM,GAAS,WAAU,MAAe,QAAO,MAAe,QAAO,GAAS,QAAO,GAAS,OAAM,GAAS,QAAO,GAAS,SAAQ,GAAS,SAAQ,GAAS,QAAO,GAAS,UAAS,GAAS,UAAS,MAAe,QAAO,MAAe,OAAM,MAAe,QAAO,KAAS,MAAK,MAAe,QAAO,GAAS,QAAO,GAAS,MAAK,GAAO,UAAS,GAAO,UAAS,GAAO,UAAS,GAAO,UAAS,GAAO,SAAQ,GAAO,SAAQ,GAAO,QAAO,GAAO,QAAO,GAAS,UAAS,GAAS,UAAS,GAAS,QAAO,GAAS,SAAQ,GAAS,SAAQ,GAAS,SAAQ,GAAS,SAAQ,GAAS,SAAQ,GAAS,SAAQ,GAAS,SAAQ,MAAe,QAAO,MAAe,QAAO,MAAe,OAAM,MAAe,QAAO,MAAe,OAAM,MAAe,QAAO,GAAS,SAAQ,GAAS,SAAQ,KAAS,SAAQ,MAAe,QAAO,MAAe,QAAO,MAAe,OAAM,MAAe,QAAO,MAAe,QAAO,MAAe,OAAM,GAAS,UAAS,GAAS,UAAS,MAAe,OAAM,MAAe,QAAO,GAAS,OAAM,MAAe,QAAO,GAAS,QAAO,MAAe,OAAM,MAAe,QAAO,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,MAAe,OAAM,MAAe,QAAO,MAAe,QAAO,MAAe,OAAM,MAAe,QAAO,GAAS,QAAO,MAAe,OAAM,MAAe,QAAO,MAAe,QAAO,GAAS,QAAO,MAAe,QAAO,MAAe,OAAM,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAO,UAAS,GAAO,UAAS,GAAS,UAAS,GAAS,UAAS,KAAS,UAAS,GAAS,OAAM,GAAS,OAAM,MAAe,QAAO,MAAe,OAAM,GAAS,QAAO,MAAe,QAAO,MAAe,OAAM,MAAe,QAAO,GAAO,QAAO,GAAO,UAAS,GAAO,UAAS,GAAO,UAAS,GAAO,UAAS,GAAO,SAAQ,GAAO,SAAQ,GAAO,QAAO,GAAO,QAAO,GAAS,UAAS,GAAS,UAAS,GAAO,UAAS,GAAO,UAAS,GAAO,UAAS,GAAO,UAAS,GAAS,SAAQ,GAAS,SAAQ,GAAS,SAAQ,GAAS,SAAQ,MAAe,OAAM,MAAe,QAAO,MAAe,QAAO,GAAS,QAAO,MAAe,OAAM,MAAe,QAAO,MAAe,QAAO,MAAe,OAAM,MAAe,QAAO,MAAe,QAAO,MAAe,OAAM,GAAS,QAAO,GAAS,UAAS,MAAe,OAAM,MAAe,QAAO,MAAe,QAAO,GAAS,QAAO,GAAS,MAAK,GAAS,QAAO,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,MAAe,QAAO,MAAe,QAAO,MAAe,OAAM,MAAe,QAAO,MAAe,OAAM,MAAe,QAAO,KAAS,MAAK,GAAS,UAAS,GAAS,UAAS,GAAS,SAAQ,GAAS,SAAQ,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAO,SAAQ,MAAe,OAAM,MAAe,QAAO,MAAe,QAAO,MAAe,QAAO,MAAe,OAAM,MAAe,QAAO,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,KAAS,SAAQ,GAAS,UAAS,GAAS,UAAS,MAAe,QAAO,MAAe,QAAO,MAAe,OAAM,MAAe,QAAO,MAAe,OAAM,MAAe,QAAO,GAAO,UAAS,GAAO,UAAS,GAAO,UAAS,GAAO,UAAS,GAAS,UAAS,GAAS,UAAS,GAAO,SAAQ,GAAO,SAAQ,GAAS,SAAQ,GAAS,SAAQ,GAAO,QAAO,GAAO,QAAO,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAS,SAAQ,GAAS,SAAQ,GAAS,SAAQ,GAAS,SAAQ,MAAe,OAAM,MAAe,QAAO,MAAe,QAAO,MAAe,OAAM,MAAe,QAAO,MAAe,QAAO,MAAe,QAAO,MAAe,QAAO,MAAe,OAAM,MAAe,QAAO,MAAe,QAAO,MAAe,OAAM,GAAS,SAAQ,GAAS,SAAQ,MAAe,OAAM,MAAe,QAAO,MAAe,QAAO,MAAe,QAAO,MAAe,OAAM,MAAe,QAAO,MAAe,OAAM,MAAe,QAAO,MAAe,QAAO,MAAe,QAAO,MAAe,OAAM,MAAe,QAAO,GAAO,UAAS,GAAO,UAAS,GAAS,SAAQ,GAAS,SAAQ,GAAO,QAAO,GAAS,QAAO,MAAe,QAAO,MAAe,OAAM,MAAe,QAAO,GAAS,OAAM,GAAS,QAAO,MAAe,QAAO,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAS,QAAO,GAAS,QAAO,GAAS,SAAQ,GAAO,SAAQ,GAAO,SAAQ,GAAS,SAAQ,GAAS,SAAQ,GAAS,SAAQ,GAAS,QAAO,GAAS,QAAO,GAAS,SAAQ,GAAS,SAAQ,GAAS,SAAQ,GAAS,SAAQ,GAAS,QAAO,KAAS,SAAQ,GAAS,WAAU,GAAS,UAAS,GAAS,UAAS,GAAS,QAAO,GAAS,QAAO,GAAS,OAAM,GAAS,OAAM,GAAS,SAAQ,GAAS,UAAS,GAAS,SAAQ,GAAS,QAAO,GAAS,QAAO,GAAS,SAAQ,GAAS,UAAS,GAAS,SAAQ,GAAS,UAAS,GAAS,UAAS,GAAS,MAAK,GAAO,SAAQ,GAAS,MAAK,GAAS,MAAK,GAAS,MAAK,GAAS,MAAK,GAAS,MAAK,GAAS,WAAU,GAAS,WAAU,GAAS,MAAK,GAAS,OAAM,GAAS,MAAK,GAAS,OAAM,GAAS,QAAO,GAAS,OAAM,GAAS,SAAQ,GAAS,SAAQ,GAAS,UAAS,GAAS,OAAM,GAAS,OAAM,GAAS,QAAO,GAAS,WAAU,GAAS,QAAO,GAAS,OAAM,GAAS,QAAO,GAAS,OAAM,GAAS,OAAM,GAAS,OAAM,GAAS,OAAM,GAAS,OAAM,GAAS,SAAQ,GAAS,OAAM,GAAS,OAAM,GAAS,OAAM,GAAS,OAAM,GAAS,OAAM,GAAS,OAAM,GAAS,OAAM,GAAS,OAAM,GAAS,OAAM,GAAS,QAAO,GAAS,QAAO,GAAS,OAAM,GAAS,OAAM,GAAS,QAAO,GAAS,QAAO,GAAS,QAAO,GAAS,QAAO,GAAS,QAAO,GAAS,QAAO,GAAS,SAAQ,GAAS,SAAQ,GAAS,QAAO,GAAS,QAAO,GAAS,OAAM,GAAS,OAAM,GAAS,QAAO,GAAS,QAAO,GAAS,OAAM,GAAS,OAAM,GAAS,SAAQ,GAAS,SAAQ,GAAS,QAAO,GAAS,QAAO,GAAS,OAAM,GAAS,OAAM,GAAS,UAAS,GAAS,UAAS,GAAS,OAAM,GAAS,OAAM,GAAS,QAAO,GAAS,QAAO,GAAS,OAAM,GAAS,OAAM,GAAS,QAAO,GAAS,QAAO,GAAS,OAAM,GAAS,OAAM,GAAS,OAAM,GAAS,OAAM,GAAS,QAAO,GAAS,QAAO,GAAS,OAAM,GAAS,OAAM,GAAS,OAAM,GAAS,OAAM,GAAS,OAAM,GAAS,OAAM,GAAS,OAAM,GAAS,OAAM,GAAS,OAAM,GAAS,OAAM,GAAS,SAAQ,GAAS,SAAQ,GAAS,OAAM,GAAS,OAAM,GAAS,SAAQ,GAAS,SAAQ,GAAS,OAAM,GAAS,OAAM,GAAS,QAAO,GAAS,QAAO,GAAS,QAAO,GAAS,QAAO,GAAS,QAAO,GAAS,QAAO,GAAS,QAAO,GAAS,QAAO,GAAS,QAAO,GAAS,QAAO,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAS,OAAM,GAAS,OAAM,GAAS,UAAS,GAAS,UAAS,GAAS,OAAM,GAAS,OAAM,GAAS,QAAO,GAAS,QAAO,GAAS,QAAO,GAAS,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,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,aAAa,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,aAAa,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC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CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,aAAa,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,uBAAuB,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,mBAAmB,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,yBAAyB,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,aAAa,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,IAAI,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,EAAE,GAAG,iBAAiB,GAAG,MAAM,GAAG,eAAc,CAAE,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,kBAAkB,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,IAAI,QAAQ,GAAG,CAAC,IAAI,QAAQ,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,IAAI,aAAa,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,cAAc,GAAG,CAAC,GAAG,aAAa,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,IAAI,wBAAwB,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,IAAI,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,IAAI,QAAQ,GAAG,CAAC,GAAG,gBAAgB,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,eAAe,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,mBAAmB,GAAG,CAAC,GAAG,kBAAkB,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,EAAE,GAAG,WAAW,GAAG,KAAK,GAAG,WAAU,CAAE,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,gBAAgB,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,gBAAgB,GAAG,CAAC,GAAG,iBAAiB,GAAG,CAAC,GAAG,kBAAkB,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,kBAAkB,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,mBAAmB,GAAG,CAAC,GAAG,oBAAoB,GAAG,CAAC,GAAG,iBAAiB,GAAG,CAAC,GAAG,kBAAkB,GAAG,CAAC,GAAG,iBAAiB,GAAG,CAAC,GAAG,gBAAgB,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,mBAAmB,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,uBAAuB,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,uBAAuB,GAAG,CAAC,GAAG,kBAAkB,GAAG,CAAC,GAAG,cAAc,GAAG,CAAC,GAAG,oBAAoB,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,qBAAqB,GAAG,CAAC,GAAG,eAAe,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,mBAAmB,GAAG,CAAC,GAAG,iBAAiB,GAAG,CAAC,GAAG,oBAAoB,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,wBAAwB,GAAG,CAAC,GAAG,qBAAqB,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,IAAI,oBAAoB,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,UAAU,GAAG,KAAK,GAAG,UAAS,CAAE,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,cAAc,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,aAAa,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,aAAa,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,MAAM,GAAG,SAAQ,CAAE,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,qBAAqB,GAAG,CAAC,GAAG,wBAAwB,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,OAAO,GAAG,SAAU,CAAA,GAAG,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,OAAO,GAAG,SAAU,CAAA,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,4BAA4B,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,MAAM,GAAG,UAAS,CAAE,GAAG,CAAC,GAAG,EAAE,GAAG,aAAa,GAAG,KAAK,GAAG,SAAU,CAAA,GAAG,CAAC,GAAG,EAAE,GAAG,QAAQ,GAAG,KAAK,GAAG,QAAS,CAAA,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,iBAAiB,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,EAAE,GAAG,WAAW,GAAG,KAAK,GAAG,UAAS,CAAE,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,iBAAiB,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,EAAE,GAAG,UAAU,GAAG,KAAK,GAAG,UAAS,CAAE,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,EAAE,GAAG,aAAa,GAAG,MAAM,GAAG,SAAU,CAAA,GAAG,CAAC,GAAG,EAAE,GAAG,UAAU,GAAG,KAAK,GAAG,UAAS,CAAE,GAAG,CAAC,GAAG,EAAE,GAAG,WAAW,GAAG,KAAK,GAAG,WAAU,CAAE,GAAG,CAAC,GAAG,EAAE,GAAG,WAAW,GAAG,KAAK,GAAG,UAAW,CAAA,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,aAAa,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,eAAe,GAAG,MAAM,GAAG,YAAW,CAAE,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,EAAE,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAQ,CAAE,GAAG,CAAC,GAAG,EAAE,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAQ,CAAE,GAAG,CAAC,GAAG,EAAE,GAAG,QAAQ,GAAG,KAAK,GAAG,QAAS,CAAA,GAAG,CAAC,GAAG,EAAE,GAAG,QAAQ,GAAG,KAAK,GAAG,QAAS,CAAA,GAAG,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,OAAO,GAAG,cAAa,CAAE,GAAG,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,OAAO,GAAG,cAAe,CAAA,GAAG,CAAC,GAAG,EAAE,GAAG,QAAQ,GAAG,IAAI,IAAoB,gBAAAA,EAAY,CAAC,CAAC,KAAK,QAAQ,GAAG,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,EAAC,CAAE,GAAG,CAAC,GAAG,EAAE,GAAG,QAAQ,GAAG,IAAI,IAAoB,gBAAAA,EAAY,CAAC,CAAC,KAAK,QAAQ,GAAG,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,EAAC,CAAE,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,aAAa,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,gBAAgB,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,eAAe,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,kBAAkB,GAAG,CAAC,GAAG,kBAAkB,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,iBAAiB,GAAG,CAAC,GAAG,EAAE,GAAG,WAAW,GAAG,KAAK,GAAG,qBAAoB,CAAE,GAAG,CAAC,GAAG,eAAe,GAAG,CAAC,GAAG,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,MAAM,GAAG,cAAa,CAAE,GAAG,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,MAAM,GAAG,gBAAe,CAAE,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,kBAAkB,GAAG,CAAC,GAAG,oBAAoB,GAAG,CAAC,GAAG,EAAE,GAAG,WAAW,GAAG,OAAO,GAAG,iBAAgB,CAAE,GAAG,CAAC,GAAG,EAAE,GAAG,WAAW,GAAG,OAAO,GAAG,iBAAkB,CAAA,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,aAAa,GAAG,CAAC,GAAG,EAAE,GAAG,WAAW,GAAG,KAAK,GAAG,oBAAqB,CAAA,GAAG,CAAC,GAAG,EAAE,GAAG,WAAW,GAAG,KAAK,GAAG,sBAAuB,CAAA,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,EAAE,GAAG,WAAW,GAAG,OAAO,GAAG,WAAY,CAAA,GAAG,CAAC,GAAG,EAAE,GAAG,WAAW,GAAG,OAAO,GAAG,WAAU,CAAE,GAAG,CAAC,GAAG,cAAc,GAAG,CAAC,GAAG,eAAe,GAAG,CAAC,GAAG,eAAe,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,aAAa,GAAG,CAAC,GAAG,eAAe,GAAG,CAAC,GAAG,cAAc,GAAG,CAAC,GAAG,eAAe,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,aAAa,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,kBAAkB,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,gBAAgB,GAAG,CAAC,GAAG,iBAAiB,GAAG,CAAC,GAAG,EAAE,GAAG,uBAAuB,GAAG,MAAM,GAAG,YAAa,CAAA,GAAG,CAAC,GAAG,EAAE,GAAG,wBAAwB,GAAG,MAAM,GAAG,YAAa,CAAA,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,iBAAiB,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,kBAAkB,GAAG,CAAC,GAAG,mBAAmB,GAAG,CAAC,GAAG,aAAa,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,cAAc,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,EAAE,GAAG,QAAQ,GAAG,KAAK,GAAG,QAAS,CAAA,GAAG,CAAC,GAAG,EAAE,GAAG,QAAQ,GAAG,KAAK,GAAG,QAAS,CAAA,GAAG,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,GAAG,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,OAAO,GAAG,SAAQ,CAAE,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,yBAAyB,GAAG,CAAC,GAAG,yBAAyB,GAAG,CAAC,GAAG,wBAAwB,GAAG,CAAC,GAAG,0BAA0B,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,oBAAoB,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,yBAAyB,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,EAAE,GAAG,aAAa,GAAG,KAAK,GAAG,aAAY,CAAE,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,EAAE,GAAG,WAAW,GAAG,KAAK,GAAG,WAAU,CAAE,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,aAAa,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,IAAI,WAAW,GAAG,CAAC,IAAI,cAAc,GAAG,CAAC,GAAG,cAAc,GAAG,CAAC,GAAG,eAAe,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,IAAI,mBAAmB,GAAG,CAAC,GAAG,oBAAoB,GAAG,CAAC,GAAG,aAAa,GAAG,CAAC,GAAG,cAAc,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,IAAI,SAAS,GAAG,CAAC,KAAK,YAAY,GAAG,CAAC,IAAI,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,IAAI,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,IAAI,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,IAAI,UAAU,GAAG,CAAC,GAAG,eAAe,GAAG,CAAC,GAAG,wBAAwB,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,iBAAiB,GAAG,CAAC,GAAG,iBAAiB,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,sBAAsB,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,mBAAmB,GAAG,CAAC,GAAG,qBAAqB,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,qBAAqB,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,IAAI,UAAU,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,oBAAoB,GAAG,CAAC,GAAG,qBAAqB,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,IAAI,UAAU,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,IAAI,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,eAAe,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,KAAK,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,IAAI,QAAQ,GAAG,CAAC,IAAI,qBAAqB,GAAG,CAAC,IAAI,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,IAAI,YAAY,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,IAAI,qBAAqB,GAAG,CAAC,GAAG,sBAAsB,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,iBAAiB,GAAG,CAAC,GAAG,kBAAkB,GAAG,CAAC,GAAG,sBAAsB,GAAG,CAAC,GAAG,uBAAuB,GAAG,CAAC,GAAG,wBAAwB,GAAG,CAAC,GAAG,4BAA4B,GAAG,CAAC,GAAG,cAAc,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,KAAK,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,cAAc,GAAG,CAAC,GAAG,gBAAgB,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,EAAE,GAAG,WAAW,GAAG,KAAK,GAAG,YAAY,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,mBAAmB,GAAG,CAAC,GAAG,qBAAqB,GAAG,CAAC,GAAG,uBAAuB,GAAG,CAAC,GAAG,oBAAoB,GAAG,CAAC,GAAG,iBAAiB,GAAG,CAAC,GAAG,kBAAkB,GAAG,CAAC,GAAG,oBAAoB,GAAG,CAAC,GAAG,sBAAsB,GAAG,CAAC,GAAG,qBAAqB,GAAG,CAAC,GAAG,sBAAsB,GAAG,CAAC,GAAG,mBAAmB,GAAG,CAAC,GAAG,qBAAqB,GAAG,CAAC,GAAG,iBAAiB,GAAG,CAAC,GAAG,kBAAkB,GAAG,CAAC,GAAG,oBAAoB,GAAG,CAAC,GAAG,sBAAsB,GAAG,CAAC,GAAG,qBAAqB,GAAG,CAAC,GAAG,sBAAsB,GAAG,CAAC,GAAG,mBAAmB,GAAG,CAAC,GAAG,qBAAqB,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,gBAAgB,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,EAAE,GAAG,qBAAqB,GAAG,KAAK,GAAG,uBAAsB,CAAE,GAAG,CAAC,GAAG,EAAE,GAAG,sBAAsB,GAAG,KAAK,GAAG,wBAAuB,CAAE,GAAG,CAAC,IAAI,UAAU,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,gBAAgB,GAAG,CAAC,GAAG,eAAe,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,aAAa,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,IAAI,WAAW,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,EAAE,GAAG,aAAa,GAAG,KAAK,GAAG,aAAc,CAAA,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,KAAK,GAAG,SAAQ,CAAE,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,EAAE,GAAG,cAAc,GAAG,KAAK,GAAG,cAAa,CAAE,GAAG,CAAC,GAAG,EAAE,GAAG,cAAc,GAAG,KAAK,GAAG,cAAa,CAAE,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,EAAE,GAAG,cAAc,GAAG,KAAK,GAAG,uBAAuB,GAAG,CAAC,GAAG,EAAE,GAAG,oBAAoB,GAAG,KAAK,GAAG,6BAA6B,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,EAAE,GAAG,UAAU,GAAG,OAAO,GAAG,UAAW,CAAA,GAAG,CAAC,GAAG,EAAE,GAAG,UAAU,GAAG,OAAO,GAAG,WAAW,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,EAAE,GAAG,mBAAmB,GAAG,KAAK,GAAG,qBAAoB,CAAE,GAAG,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,KAAK,GAAG,qBAAsB,CAAA,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,eAAe,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,EAAE,GAAG,UAAU,GAAG,KAAK,GAAG,UAAW,CAAA,GAAG,CAAC,GAAG,EAAE,GAAG,UAAU,GAAG,KAAK,GAAG,WAAW,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,EAAE,GAAG,WAAW,GAAG,OAAO,GAAG,kBAAmB,CAAA,GAAG,CAAC,GAAG,EAAE,GAAG,WAAW,GAAG,OAAO,GAAG,kBAAiB,CAAE,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,EAAE,GAAG,WAAW,GAAG,MAAM,GAAG,WAAU,CAAE,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,IAAoB,gBAAAA,EAAY,CAAC,CAAC,OAAO,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAG,CAAA,GAAG,CAAC,MAAM,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;;;;;ACT/q0B,WAAO,eAAczO,GAAU,cAAc,EAAE,OAAO,IAAM,GAC5DA,EAAA,aAAqBA,oBAA0BA,EAAqB,aAAAA,EAAA,SAAiBA,cAAoBA,EAAuB,eAAAA,EAAA,cAAsB,QACtJA,EAAA,cAAsB;AACtB,QAAI2O,IAAa,oBAAI,IAAI;AAAA,MACrB,CAAC,IAAI,QAAQ;AAAA,MACb,CAAC,IAAI,OAAO;AAAA,MACZ,CAAC,IAAI,QAAQ;AAAA,MACb,CAAC,IAAI,MAAM;AAAA,MACX,CAAC,IAAI,MAAM;AAAA,IACf,CAAC;AAED,IAAA3O,EAAA;AAAA,IAEA,OAAO,UAAU,eAAe,OAC1B,SAAUwM,GAAKzJ,GAAO;AAAE,aAAOyJ,EAAI,YAAYzJ,CAAK;AAAA,IAAE;AAAA;AAAA,MAEpD,SAAU+H,GAAG/H,GAAO;AAChB,gBAAQ+H,EAAE,WAAW/H,CAAK,IAAI,WAAY,SACnC+H,EAAE,WAAW/H,CAAK,IAAI,SAAU,OAC/B+H,EAAE,WAAW/H,IAAQ,CAAC,IACtB,QACA,QACF+H,EAAE,WAAW/H,CAAK;AAAA,MAC3B;AAAA;AAQT,aAAS6L,EAAUpC,GAAK;AAIpB,eAHIc,IAAM,IACNuB,IAAU,GACVC,IACIA,IAAQ9O,EAAQ,YAAY,KAAKwM,CAAG,OAAO,QAAM;AACrD,YAAI9E,IAAIoH,EAAM,OACVhC,IAAON,EAAI,WAAW9E,CAAC,GACvBpC,IAAOqJ,EAAW,IAAI7B,CAAI;AAC9B,QAAIxH,MAAS,UACTgI,KAAOd,EAAI,UAAUqC,GAASnH,CAAC,IAAIpC,GACnCuJ,IAAUnH,IAAI,MAGd4F,KAAO,GAAG,OAAOd,EAAI,UAAUqC,GAASnH,CAAC,GAAG,KAAK,EAAE,WAAW1H,EAAQ,cAAcwM,GAAK9E,CAAC,EAAE,SAAS,EAAE,GAAG,GAAG,GAE7GmH,IAAU7O,EAAQ,YAAY,aAAa,GAAQ8M,IAAO,WAAY;AAAA,MAElF;AACI,aAAOQ,IAAMd,EAAI,OAAOqC,CAAO;AAAA,IACnC;AACA,IAAA7O,EAAA,YAAoB4O,GAUpB5O,EAAA,SAAiB4O;AAWjB,aAASG,EAAWC,GAAOC,GAAK;AAC5B,aAAO,SAAgB/G,GAAM;AAIzB,iBAHI4G,GACAD,IAAU,GACVzL,IAAS,IACL0L,IAAQE,EAAM,KAAK9G,CAAI;AAC3B,UAAI2G,MAAYC,EAAM,UAClB1L,KAAU8E,EAAK,UAAU2G,GAASC,EAAM,KAAK,IAGjD1L,KAAU6L,EAAI,IAAIH,EAAM,CAAC,EAAE,WAAW,CAAC,CAAC,GAExCD,IAAUC,EAAM,QAAQ;AAE5B,eAAO1L,IAAS8E,EAAK,UAAU2G,CAAO;AAAA,MACzC;AAAA,IACL;AAQA,IAAA7O,EAAA,aAAqB+O,EAAW,YAAYJ,CAAU,GAOtD3O,EAAA,kBAA0B+O,EAAW,eAAe,oBAAI,IAAI;AAAA,MACxD,CAAC,IAAI,QAAQ;AAAA,MACb,CAAC,IAAI,OAAO;AAAA,MACZ,CAAC,KAAK,QAAQ;AAAA,IAClB,CAAC,CAAC,GAOF/O,EAAA,aAAqB+O,EAAW,gBAAgB,oBAAI,IAAI;AAAA,MACpD,CAAC,IAAI,OAAO;AAAA,MACZ,CAAC,IAAI,MAAM;AAAA,MACX,CAAC,IAAI,MAAM;AAAA,MACX,CAAC,KAAK,QAAQ;AAAA,IAClB,CAAC,CAAC;AAAA;;;;;;ACvHF,MAAIpI,IAAmBlB,MAAQA,GAAK,mBAAoB,SAAUmB,GAAK;AACnE,WAAQA,KAAOA,EAAI,aAAcA,IAAM,EAAE,SAAWA,EAAK;AAAA,EAC5D;AACD,SAAO,eAAe/C,IAAS,cAAc,EAAE,OAAO,IAAM,GAC5DA,GAAA,qBAA6BA,GAAA,aAAqB;AAClD,MAAIqL,IAAmBvI,sBAAqD,GACxEwI,IAAoCjF,gBAAAA,GAAA,GACpCkF,IAAe;AAYnB,WAASC,EAAWnH,GAAM;AACtB,WAAOoH,EAAiBF,GAAclH,CAAI;AAAA,EAC9C;AACA,EAAArE,GAAA,aAAqBwL;AASrB,WAASE,EAAmBrH,GAAM;AAC9B,WAAOoH,EAAiBH,EAAY,aAAajH,CAAI;AAAA,EACzD;AACA,EAAArE,GAAA,qBAA6B0L;AAC7B,WAASD,EAAiBE,GAAQhD,GAAK;AAInC,aAHIc,IAAM,IACNuB,IAAU,GACVC,IACIA,IAAQU,EAAO,KAAKhD,CAAG,OAAO,QAAM;AACxC,UAAI9E,IAAIoH,EAAM;AACd,MAAAxB,KAAOd,EAAI,UAAUqC,GAASnH,CAAC;AAC/B,UAAIoF,IAAON,EAAI,WAAW9E,CAAC,GACvBpC,IAAO4J,EAAiB,QAAQ,IAAIpC,CAAI;AAC5C,UAAI,OAAOxH,KAAS,UAAU;AAE1B,YAAIoC,IAAI,IAAI8E,EAAI,QAAQ;AACpB,cAAIiD,IAAWjD,EAAI,WAAW9E,IAAI,CAAC,GAC/B5E,IAAQ,OAAOwC,EAAK,KAAM,WACxBA,EAAK,MAAMmK,IACPnK,EAAK,IACL,SACJA,EAAK,EAAE,IAAImK,CAAQ;AACzB,cAAI3M,MAAU,QAAW;AACrB,YAAAwK,KAAOxK,GACP+L,IAAUW,EAAO,aAAa;AAC9B;AAAA,UACpB;AAAA,QACA;AACY,QAAAlK,IAAOA,EAAK;AAAA,MACxB;AAEQ,UAAIA,MAAS;AACT,QAAAgI,KAAOhI,GACPuJ,IAAUnH,IAAI;AAAA,WAEb;AACD,YAAIgI,QAASP,EAAY,cAAc3C,GAAK9E,CAAC;AAC7C,QAAA4F,KAAO,MAAM,OAAOoC,EAAG,SAAS,EAAE,GAAG,GAAG,GAExCb,IAAUW,EAAO,aAAa,EAAOE,MAAO5C;AAAA,MACxD;AAAA,IACA;AACI,WAAOQ,IAAMd,EAAI,OAAOqC,CAAO;AAAA,EACnC;;;;;;AC1EA,WAAO,eAAc7O,GAAU,cAAc,EAAE,OAAO,IAAM,GAC5DA,EAA0B,kBAAAA,EAAA,oBAA4BA,EAA4B,oBAAAA,EAAA,cAAsBA,EAAsB,cAAAA,EAAA,sBAA8BA,qBAA2BA,EAAqB,aAAAA,EAAA,YAAoBA,EAAuB,eAAAA,EAAA,gBAAwBA,EAAsB,cAAAA,EAAA,cAAsBA,uBAA6BA,EAAqB,aAAAA,EAAA,aAAqBA,EAA0B,kBAAAA,EAAA,aAAqBA,EAAiB,SAAAA,EAAA,YAAoBA,EAAiB,SAAAA,EAAA,eAAuBA,EAAiB,SAAAA,EAAA,eAAuBA,EAAsB,cAAA;AAC5jB,QAAI2P,IAAoChK,gBAAAA,GAAA,GACpCiK,IAAoC1F,gBAAAA,GAAA,GACpCiF,IAAoC3D,gBAAAA,GAAA,GAEpCqE;AACJ,KAAC,SAAUA,GAAa;AAEpB,MAAAA,EAAYA,EAAY,MAAS,CAAC,IAAI,OAEtCA,EAAYA,EAAY,OAAU,CAAC,IAAI;AAAA,OACxCA,IAAc7P,EAAQ,gBAAgBA,EAAA,cAAsB,CAAA,EAAG;AAClE,QAAI8P;AACJ,KAAC,SAAUA,GAAc;AAKrB,MAAAA,EAAaA,EAAa,OAAU,CAAC,IAAI,QAMzCA,EAAaA,EAAa,QAAW,CAAC,IAAI,SAK1CA,EAAaA,EAAa,YAAe,CAAC,IAAI,aAK9CA,EAAaA,EAAa,YAAe,CAAC,IAAI,aAK9CA,EAAaA,EAAa,OAAU,CAAC,IAAI;AAAA,OAC1CA,IAAe9P,EAAQ,iBAAiBA,EAAA,eAAuB,CAAA,EAAG;AAOrE,aAASwE,EAAO0D,GAAMhF,GAAS;AAC3B,MAAIA,MAAY,WAAUA,IAAU2M,EAAY;AAChD,UAAIE,IAAQ,OAAO7M,KAAY,WAAWA,IAAUA,EAAQ;AAC5D,UAAI6M,MAAUF,EAAY,MAAM;AAC5B,YAAIzB,IAAO,OAAOlL,KAAY,WAAWA,EAAQ,OAAO;AACxD,mBAAWyM,EAAY,YAAYzH,GAAMkG,CAAI;AAAA,MACrD;AACI,iBAAWuB,EAAY,WAAWzH,CAAI;AAAA,IAC1C;AACA,IAAAlI,EAAA,SAAiBwE;AAQjB,aAASwL,EAAa9H,GAAMhF,GAAS;AACjC,UAAIsF;AACJ,MAAItF,MAAY,WAAUA,IAAU2M,EAAY;AAChD,UAAII,IAAO,OAAO/M,KAAY,WAAW,EAAE,OAAOA,EAAO,IAAKA;AAC9D,cAACsF,IAAKyH,EAAK,UAAU,QAAQzH,MAAO,WAAeyH,EAAK,OAAON,EAAY,aAAa,SACjFnL,EAAO0D,GAAM+H,CAAI;AAAA,IAC5B;AACA,IAAAjQ,EAAA,eAAuBgQ;AAOvB,aAASnM,EAAOqE,GAAMhF,GAAS;AAC3B,MAAIA,MAAY,WAAUA,IAAU2M,EAAY;AAChD,UAAII,IAAO,OAAO/M,KAAY,WAAW,EAAE,OAAOA,EAAO,IAAKA;AAE9D,aAAI+M,EAAK,SAASH,EAAa,WAChBX,EAAY,YAAYjH,CAAI,IACvC+H,EAAK,SAASH,EAAa,gBAChBX,EAAY,iBAAiBjH,CAAI,IAC5C+H,EAAK,SAASH,EAAa,WAChBX,EAAY,YAAYjH,CAAI,IACvC+H,EAAK,UAAUJ,EAAY,OACvBI,EAAK,SAASH,EAAa,YAChBF,EAAY,oBAAoB1H,CAAI,QAExC0H,EAAY,YAAY1H,CAAI,QAGhCiH,EAAY,WAAWjH,CAAI;AAAA,IAC1C;AACA,IAAAlI,EAAA,SAAiB6D;AACjB,QAAIqM,IAAoC1E,gBAAAA,GAAA;AACxC,WAAO,eAAexL,GAAS,aAAa,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAOkQ,EAAY;AAAA,IAAY,EAAA,CAAE,GACpH,OAAO,eAAelQ,GAAS,UAAU,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAOkQ,EAAY;AAAA,IAAS,EAAA,CAAE,GAC9G,OAAO,eAAelQ,GAAS,cAAc,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAOkQ,EAAY;AAAA,IAAa,EAAA,CAAE,GACtH,OAAO,eAAelQ,GAAS,mBAAmB,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAOkQ,EAAY;AAAA,IAAkB,EAAA,CAAE,GAChI,OAAO,eAAelQ,GAAS,cAAc,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAOkQ,EAAY;AAAA,IAAa,EAAA,CAAE;AACtH,QAAIC,IAAoCjG,gBAAAA,GAAA;AACxC,WAAO,eAAelK,GAAS,cAAc,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAOmQ,EAAY;AAAA,IAAa,EAAA,CAAE,GACtH,OAAO,eAAenQ,GAAS,sBAAsB,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAOmQ,EAAY;AAAA,IAAqB,EAAA,CAAE,GAEtI,OAAO,eAAenQ,GAAS,eAAe,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAOmQ,EAAY;AAAA,IAAa,EAAA,CAAE,GACvH,OAAO,eAAenQ,GAAS,eAAe,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAOmQ,EAAY;AAAA,IAAa,EAAA,CAAE;AACvH,QAAIC,IAAoCzK,gBAAAA,GAAA;AACxC,WAAO,eAAe3F,GAAS,iBAAiB,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAOoQ,EAAY;AAAA,IAAgB,EAAA,CAAE,GAC5H,OAAO,eAAepQ,GAAS,gBAAgB,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAOoQ,EAAY;AAAA,IAAe,EAAA,CAAE,GAC1H,OAAO,eAAepQ,GAAS,aAAa,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAOoQ,EAAY;AAAA,IAAY,EAAA,CAAE,GACpH,OAAO,eAAepQ,GAAS,cAAc,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAOoQ,EAAY;AAAA,IAAa,EAAA,CAAE,GACtH,OAAO,eAAepQ,GAAS,oBAAoB,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAOoQ,EAAY;AAAA,IAAmB,EAAA,CAAE,GAClI,OAAO,eAAepQ,GAAS,uBAAuB,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAOoQ,EAAY;AAAA,IAAsB,EAAA,CAAE,GAExI,OAAO,eAAepQ,GAAS,eAAe,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAOoQ,EAAY;AAAA,IAAa,EAAA,CAAE,GACvH,OAAO,eAAepQ,GAAS,eAAe,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAOoQ,EAAY;AAAA,IAAa,EAAA,CAAE,GACvH,OAAO,eAAepQ,GAAS,qBAAqB,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAOoQ,EAAY;AAAA,IAAmB,EAAA,CAAE,GACnI,OAAO,eAAepQ,GAAS,qBAAqB,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAOoQ,EAAY;AAAA,IAAmB,EAAA,CAAE,GACnI,OAAO,eAAepQ,GAAS,mBAAmB,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAOoQ,EAAY;AAAA,IAAY,EAAA,CAAE;AAAA;;;;wBC3H1H,OAAO,eAAeC,IAAS,cAAc,EAAE,OAAO,IAAM,GAC5DA,GAAA,iBAAyBA,GAAA,eAAuB,QAC5BA,GAAA,eAAG,IAAI,IAAI;AAAA,IAC3B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,EAAE,IAAI,SAAUnK,GAAK;AAAE,WAAO,CAACA,EAAI,eAAeA,CAAG;AAAA,EAAE,CAAE,CAAC,GACpCmK,GAAA,iBAAG,IAAI,IAAI;AAAA,IAC7B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,EAAE,IAAI,SAAUnK,GAAK;AAAE,WAAO,CAACA,EAAI,eAAeA,CAAG;AAAA,EAAE,CAAE,CAAC;;;;;;ACrG1D,MAAIqB,IAAY9B,MAAQA,GAAK,YAAa,WAAY;AAClD,WAAA8B,IAAW,OAAO,UAAU,SAASC,GAAG;AACpC,eAASC,GAAGC,IAAI,GAAGC,IAAI,UAAU,QAAQD,IAAIC,GAAGD,KAAK;AACjD,QAAAD,IAAI,UAAUC,CAAC;AACf,iBAASjB,KAAKgB,EAAG,CAAI,OAAO,UAAU,eAAe,KAAKA,GAAGhB,CAAC,MAC1De,EAAEf,CAAC,IAAIgB,EAAEhB,CAAC;AAAA,MAC1B;AACQ,aAAOe;AAAA,IACV,GACMD,EAAS,MAAM,MAAM,SAAS;AAAA,EACxC,GACGmC,IAAmBjE,MAAQA,GAAK,oBAAqB,OAAO,SAAU,SAASkE,GAAGC,GAAGC,GAAGC,GAAI;AAC5F,IAAIA,MAAO,WAAWA,IAAKD;AAC3B,QAAIE,IAAO,OAAO,yBAAyBH,GAAGC,CAAC;AAC/C,KAAI,CAACE,MAAS,SAASA,IAAO,CAACH,EAAE,aAAaG,EAAK,YAAYA,EAAK,mBAClEA,IAAO,EAAE,YAAY,IAAM,KAAK,WAAW;AAAE,aAAOH,EAAEC,CAAC;AAAA,MAAM,IAE/D,OAAO,eAAeF,GAAGG,GAAIC,CAAI;AAAA,EACpC,IAAK,SAASJ,GAAGC,GAAGC,GAAGC,GAAI;AACxB,IAAIA,MAAO,WAAWA,IAAKD,IAC3BF,EAAEG,CAAE,IAAIF,EAAEC,CAAC;AAAA,EACf,IACIqB,IAAsBzF,MAAQA,GAAK,uBAAwB,OAAO,SAAU,SAASkE,GAAG/I,GAAG;AAC3F,WAAO,eAAe+I,GAAG,WAAW,EAAE,YAAY,IAAM,OAAO/I,GAAG;AAAA,EACtE,IAAK,SAAS+I,GAAG/I,GAAG;AAChB,IAAA+I,EAAE,UAAa/I;AAAA,EACnB,IACIuK,IAAgB1F,MAAQA,GAAK,gBAAiB,SAAUmB,GAAK;AAC7D,QAAIA,KAAOA,EAAI,WAAY,QAAOA;AAClC,QAAIxD,IAAS,CAAE;AACf,QAAIwD,KAAO,KAAM,UAASiD,KAAKjD,EAAK,CAAIiD,MAAM,aAAa,OAAO,UAAU,eAAe,KAAKjD,GAAKiD,CAAC,KAAGH,EAAgBtG,GAAQwD,GAAKiD,CAAC;AACvI,WAAAqB,EAAmB9H,GAAQwD,CAAG,GACvBxD;AAAA,EACV;AACD,SAAO,eAAekN,IAAS,cAAc,EAAE,OAAO,IAAM,GAC9CA,GAAA,SAAG;AAIjB,MAAIlJ,IAAc+D,sBAAsC,GACpDoF,IAAgCrG,gBAAAA,GAAA,GAOhCsG,IAAgDhF,gBAAAA,GAAA,GAChDiF,IAAoB,oBAAI,IAAI;AAAA,IAC5B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,CAAC;AACD,WAASC,EAAc5N,GAAO;AAC1B,WAAOA,EAAM,QAAQ,MAAM,QAAQ;AAAA,EACvC;AAIA,WAAS6N,EAAiBC,GAAYX,GAAM;AACxC,QAAIzH;AACJ,QAAKoI,GAEL;AAAA,UAAI/M,MAAW2E,IAAKyH,EAAK,oBAAoB,QAAQzH,MAAO,SAASA,IAAKyH,EAAK,oBAAoB,KAC7FS,IACAT,EAAK,WAAWA,EAAK,mBAAmB,SACpCM,EAAW,YACXA,EAAW;AACrB,aAAO,OAAO,KAAKK,CAAU,EACxB,IAAI,SAAUlQ,GAAK;AACpB,YAAI8H,GAAIK,GACJ/F,KAAS0F,IAAKoI,EAAWlQ,CAAG,OAAO,QAAQ8H,MAAO,SAASA,IAAK;AAKpE,eAJIyH,EAAK,YAAY,cAEjBvP,KAAOmI,IAAK2H,EAAkB,eAAe,IAAI9P,CAAG,OAAO,QAAQmI,MAAO,SAASA,IAAKnI,IAExF,CAACuP,EAAK,cAAc,CAACA,EAAK,WAAWnN,MAAU,KACxCpC,IAEJ,GAAG,OAAOA,GAAK,IAAK,EAAE,OAAOmD,EAAOf,CAAK,GAAG,GAAI;AAAA,MAC1D,CAAA,EACI,KAAK,GAAG;AAAA;AAAA,EACjB;AAIA,MAAI+N,IAAY,oBAAI,IAAI;AAAA,IACpB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,CAAC;AASD,WAASC,EAAO/P,GAAMmC,GAAS;AAC3B,IAAIA,MAAY,WAAUA,IAAU,CAAA;AAGpC,aAFI6N,KAAQ,YAAYhQ,KAAOA,IAAO,CAACA,CAAI,GACvCyC,IAAS,IACJkE,IAAI,GAAGA,IAAIqJ,EAAM,QAAQrJ;AAC9B,MAAAlE,KAAUwN,EAAWD,EAAMrJ,CAAC,GAAGxE,CAAO;AAE1C,WAAOM;AAAA,EACX;AACA8M,EAAAA,GAAA,SAAiBQ,GACjBR,GAAA,UAAkBQ;AAClB,WAASE,EAAWjQ,GAAMmC,GAAS;AAC/B,YAAQnC,EAAK,MAAI;AAAA,MACb,KAAKqG,EAAY;AACb,eAAO0J,EAAO/P,EAAK,UAAUmC,CAAO;AAAA;AAAA,MAExC,KAAKkE,EAAY;AAAA,MACjB,KAAKA,EAAY;AACb,eAAO6J,EAAgBlQ,CAAI;AAAA,MAC/B,KAAKqG,EAAY;AACb,eAAO8J,EAAcnQ,CAAI;AAAA,MAC7B,KAAKqG,EAAY;AACb,eAAO+J,EAAYpQ,CAAI;AAAA,MAC3B,KAAKqG,EAAY;AAAA,MACjB,KAAKA,EAAY;AAAA,MACjB,KAAKA,EAAY;AACb,eAAOgK,EAAUrQ,GAAMmC,CAAO;AAAA,MAClC,KAAKkE,EAAY;AACb,eAAOiK,EAAWtQ,GAAMmC,CAAO;AAAA,IAC3C;AAAA,EACA;AACA,MAAIoO,IAA+B,oBAAI,IAAI;AAAA,IACvC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,CAAC,GACGC,IAAkB,oBAAI,IAAI,CAAC,OAAO,MAAM,CAAC;AAC7C,WAASH,EAAU9J,GAAM2I,GAAM;AAC3B,QAAIzH;AAEJ,IAAIyH,EAAK,YAAY,cAEjB3I,EAAK,QAAQkB,IAAKgI,EAAkB,aAAa,IAAIlJ,EAAK,IAAI,OAAO,QAAQkB,MAAO,SAASA,IAAKlB,EAAK,MAEnGA,EAAK,UACLgK,EAA6B,IAAIhK,EAAK,OAAO,IAAI,MACjD2I,IAAO1I,EAASA,EAAS,CAAE,GAAE0I,CAAI,GAAG,EAAE,SAAS,IAAO,KAG1D,CAACA,EAAK,WAAWsB,EAAgB,IAAIjK,EAAK,IAAI,MAC9C2I,IAAO1I,EAASA,EAAS,CAAE,GAAE0I,CAAI,GAAG,EAAE,SAAS,WAAW;AAE9D,QAAIuB,IAAM,IAAI,OAAOlK,EAAK,IAAI,GAC1BsB,IAAU+H,EAAiBrJ,EAAK,SAAS2I,CAAI;AACjD,WAAIrH,MACA4I,KAAO,IAAI,OAAO5I,CAAO,IAEzBtB,EAAK,SAAS,WAAW,MACxB2I,EAAK;AAAA;AAAA,MAEEA,EAAK,oBAAoB;AAAA;AAAA;AAAA,MAEzBA,EAAK,mBAAmBY,EAAU,IAAIvJ,EAAK,IAAI;AAAA,UAClD2I,EAAK,YACNuB,KAAO,MACXA,KAAO,SAGPA,KAAO,KACHlK,EAAK,SAAS,SAAS,MACvBkK,KAAOV,EAAOxJ,EAAK,UAAU2I,CAAI,KAEjCA,EAAK,WAAW,CAACY,EAAU,IAAIvJ,EAAK,IAAI,OACxCkK,KAAO,KAAK,OAAOlK,EAAK,MAAM,GAAG,KAGlCkK;AAAA,EACX;AACA,WAASP,EAAgB3J,GAAM;AAC3B,WAAO,IAAI,OAAOA,EAAK,MAAM,GAAG;AAAA,EACpC;AACA,WAAS+J,EAAW/J,GAAM2I,GAAM;AAC5B,QAAIzH,GACAN,IAAOZ,EAAK,QAAQ;AAExB,aAAMkB,IAAKyH,EAAK,oBAAoB,QAAQzH,MAAO,SAASA,IAAKyH,EAAK,oBAAoB,MACtF,EAAE,CAACA,EAAK,WACJ3I,EAAK,UACLmJ,EAAkB,IAAInJ,EAAK,OAAO,IAAI,OAC1CY,IACI+H,EAAK,WAAWA,EAAK,mBAAmB,aAC9BM,EAAW,WAAWrI,CAAI,QAC1BqI,EAAW,YAAYrI,CAAI,IAEtCA;AAAA,EACX;AACA,WAASiJ,EAAY7J,GAAM;AACvB,WAAO,YAAY,OAAOA,EAAK,SAAS,CAAC,EAAE,MAAM,KAAK;AAAA,EAC1D;AACA,WAAS4J,EAAc5J,GAAM;AACzB,WAAO,OAAO,OAAOA,EAAK,MAAM,KAAK;AAAA,EACzC;;;;;;;ACnOA,MAAIX,IAAmBlB,MAAQA,GAAK,mBAAoB,SAAUmB,GAAK;AACnE,WAAQA,KAAOA,EAAI,aAAcA,IAAM,EAAE,SAAWA,EAAK;AAAA,EAC5D;AACD,SAAO,eAAe6K,IAAS,cAAc,EAAE,OAAO,IAAM,GAC5DA,GAAA,eAAuBC,GACvBD,GAAA,eAAuBE,GACvBF,GAAA,UAAkBG,GAClBH,GAAA,cAAsBI,GACtBJ,GAAA,YAAoBK;AACpB,MAAIC,IAAoCpM,gBAAAA,GAAA,GACpCqM,IAAmBrL,sBAAyC,GAC5DiB,IAA4C4D,gBAAAA,GAAA;AAQhD,WAASkG,EAAa3Q,GAAMmC,GAAS;AACjC,eAAW8O,EAAiB,SAASjR,GAAMmC,CAAO;AAAA,EACtD;AAQA,WAASyO,EAAa5Q,GAAMmC,GAAS;AACjC,eAAW6O,EAAa,aAAahR,CAAI,IACnCA,EAAK,SAAS,IAAI,SAAUA,GAAM;AAAE,aAAO2Q,EAAa3Q,GAAMmC,CAAO;AAAA,KAAI,EAAE,KAAK,EAAE,IAClF;AAAA,EACV;AASA,WAAS0O,EAAQ7Q,GAAM;AACnB,WAAI,MAAM,QAAQA,CAAI,IACXA,EAAK,IAAI6Q,CAAO,EAAE,KAAK,EAAE,QAC5BG,EAAa,OAAOhR,CAAI,IACrBA,EAAK,SAAS,OAAO;AAAA,IAAO6Q,EAAQ7Q,EAAK,QAAQ,QACpDgR,EAAa,SAAShR,CAAI,IACvB6Q,EAAQ7Q,EAAK,QAAQ,QACxBgR,EAAa,QAAQhR,CAAI,IACtBA,EAAK,OACT;AAAA,EACX;AASA,WAAS8Q,EAAY9Q,GAAM;AACvB,WAAI,MAAM,QAAQA,CAAI,IACXA,EAAK,IAAI8Q,CAAW,EAAE,KAAK,EAAE,QAChCE,EAAa,aAAahR,CAAI,KAAK,KAAKgR,EAAa,WAAWhR,CAAI,IACjE8Q,EAAY9Q,EAAK,QAAQ,QAE5BgR,EAAa,QAAQhR,CAAI,IACtBA,EAAK,OACT;AAAA,EACX;AASA,WAAS+Q,EAAU/Q,GAAM;AACrB,WAAI,MAAM,QAAQA,CAAI,IACXA,EAAK,IAAI+Q,CAAS,EAAE,KAAK,EAAE,QAC9BC,EAAa,aAAahR,CAAI,MAAMA,EAAK,SAAS6G,EAAiB,YAAY,WAAWmK,EAAa,SAAShR,CAAI,KACjH+Q,EAAU/Q,EAAK,QAAQ,QAE1BgR,EAAa,QAAQhR,CAAI,IACtBA,EAAK,OACT;AAAA,EACX;;;;;;UCxFA,OAAO,eAAekR,IAAS,cAAc,EAAE,OAAO,IAAM,GAC5DA,GAAA,cAAsBC,GACtBD,GAAA,YAAoBE,GACpBF,GAAA,cAAsBG,GACtBH,GAAA,oBAA4BI,GAC5BJ,GAAA,YAAoBK,GACpBL,GAAA,UAAkBM,GAClBN,GAAA,qBAA6BO,GAC7BP,GAAA,qBAA6BQ;AAC7B,MAAIV,IAAoCpM,gBAAAA,GAAA;AAQxC,WAASuM,EAAY5K,GAAM;AACvB,eAAWyK,EAAa,aAAazK,CAAI,IAAIA,EAAK,WAAW,CAAE;AAAA,EACnE;AAQA,WAAS6K,EAAU7K,GAAM;AACrB,WAAOA,EAAK,UAAU;AAAA,EAC1B;AAYA,WAAS8K,EAAY9K,GAAM;AACvB,QAAIkB,GAAIK,GACJhB,IAASsK,EAAU7K,CAAI;AAC3B,QAAIO,KAAU;AACV,aAAOqK,EAAYrK,CAAM;AAG7B,aAFI6K,IAAW,CAACpL,CAAI,GAChBQ,IAAOR,EAAK,MAAMhC,IAAOgC,EAAK,MAC3BQ,KAAQ;AACX,MAAA4K,EAAS,QAAQ5K,CAAI,GACpBU,IAAKV,GAAMA,IAAOU,EAAG;AAE1B,WAAOlD,KAAQ;AACX,MAAAoN,EAAS,KAAKpN,CAAI,GACjBuD,IAAKvD,GAAMA,IAAOuD,EAAG;AAE1B,WAAO6J;AAAA,EACX;AASA,WAASL,EAAkB/K,GAAMgB,GAAM;AACnC,QAAIE;AACJ,YAAQA,IAAKlB,EAAK,aAAa,QAAQkB,MAAO,SAAS,SAASA,EAAGF,CAAI;AAAA,EAC3E;AASA,WAASgK,EAAUhL,GAAMgB,GAAM;AAC3B,WAAQhB,EAAK,WAAW,QACpB,OAAO,UAAU,eAAe,KAAKA,EAAK,SAASgB,CAAI,KACvDhB,EAAK,QAAQgB,CAAI,KAAK;AAAA,EAC9B;AAQA,WAASiK,EAAQjL,GAAM;AACnB,WAAOA,EAAK;AAAA,EAChB;AASA,WAASkL,EAAmBlL,GAAM;AAG9B,aAFIkB,GACAlD,IAAOgC,EAAK,MACThC,MAAS,QAAQ,KAAKyM,EAAa,OAAOzM,CAAI;AACjD,MAACkD,IAAKlD,GAAMA,IAAOkD,EAAG;AAC1B,WAAOlD;AAAA,EACX;AASA,WAASmN,EAAmBnL,GAAM;AAG9B,aAFIkB,GACAV,IAAOR,EAAK,MACTQ,MAAS,QAAQ,KAAKiK,EAAa,OAAOjK,CAAI;AACjD,MAACU,IAAKV,GAAMA,IAAOU,EAAG;AAC1B,WAAOV;AAAA,EACX;;;;;;UC1HA,OAAO,eAAe6K,IAAS,cAAc,EAAE,OAAO,IAAM,GAC5DA,GAAA,gBAAwBC,GACxBD,GAAA,iBAAyBE,GACzBF,GAAA,cAAsBG,GACtBH,GAAA,SAAiBI,GACjBJ,GAAA,eAAuBK,GACvBL,GAAA,UAAkBM;AAOlB,WAASL,EAActL,GAAM;AAKzB,QAJIA,EAAK,SACLA,EAAK,KAAK,OAAOA,EAAK,OACtBA,EAAK,SACLA,EAAK,KAAK,OAAOA,EAAK,OACtBA,EAAK,QAAQ;AACb,UAAImC,IAASnC,EAAK,OAAO,UACrB4L,IAAczJ,EAAO,YAAYnC,CAAI;AACzC,MAAI4L,KAAe,KACfzJ,EAAO,OAAOyJ,GAAa,CAAC;AAAA,IAExC;AACI,IAAA5L,EAAK,OAAO,MACZA,EAAK,OAAO,MACZA,EAAK,SAAS;AAAA,EAClB;AAQA,WAASuL,EAAevL,GAAM6L,GAAa;AACvC,QAAIrL,IAAQqL,EAAY,OAAO7L,EAAK;AACpC,IAAIQ,MACAA,EAAK,OAAOqL;AAEhB,QAAI7N,IAAQ6N,EAAY,OAAO7L,EAAK;AACpC,IAAIhC,MACAA,EAAK,OAAO6N;AAEhB,QAAItL,IAAUsL,EAAY,SAAS7L,EAAK;AACxC,QAAIO,GAAQ;AACR,UAAI4B,IAAS5B,EAAO;AACpB,MAAA4B,EAAOA,EAAO,YAAYnC,CAAI,CAAC,IAAI6L,GACnC7L,EAAK,SAAS;AAAA,IACtB;AAAA,EACA;AAQA,WAASwL,EAAYjL,GAAQ5B,GAAO;AAIhC,QAHA2M,EAAc3M,CAAK,GACnBA,EAAM,OAAO,MACbA,EAAM,SAAS4B,GACXA,EAAO,SAAS,KAAK5B,CAAK,IAAI,GAAG;AACjC,UAAImN,IAAUvL,EAAO,SAASA,EAAO,SAAS,SAAS,CAAC;AACxD,MAAAuL,EAAQ,OAAOnN,GACfA,EAAM,OAAOmN;AAAA,IACrB;AAEQ,MAAAnN,EAAM,OAAO;AAAA,EAErB;AAQA,WAAS8M,EAAOzL,GAAMhC,GAAM;AACxB,IAAAsN,EAActN,CAAI;AAClB,QAAIuC,IAASP,EAAK,QACd+L,IAAW/L,EAAK;AAKpB,QAJAhC,EAAK,OAAO+N,GACZ/N,EAAK,OAAOgC,GACZA,EAAK,OAAOhC,GACZA,EAAK,SAASuC,GACVwL;AAEA,UADAA,EAAS,OAAO/N,GACZuC,GAAQ;AACR,YAAI4B,IAAS5B,EAAO;AACpB,QAAA4B,EAAO,OAAOA,EAAO,YAAY4J,CAAQ,GAAG,GAAG/N,CAAI;AAAA,MAC/D;AAAA,UAES,CAAIuC,KACLA,EAAO,SAAS,KAAKvC,CAAI;AAAA,EAEjC;AAQA,WAAS0N,EAAanL,GAAQ5B,GAAO;AAIjC,QAHA2M,EAAc3M,CAAK,GACnBA,EAAM,SAAS4B,GACf5B,EAAM,OAAO,MACT4B,EAAO,SAAS,QAAQ5B,CAAK,MAAM,GAAG;AACtC,UAAImN,IAAUvL,EAAO,SAAS,CAAC;AAC/B,MAAAuL,EAAQ,OAAOnN,GACfA,EAAM,OAAOmN;AAAA,IACrB;AAEQ,MAAAnN,EAAM,OAAO;AAAA,EAErB;AAQA,WAASgN,EAAQ3L,GAAMQ,GAAM;AACzB,IAAA8K,EAAc9K,CAAI;AAClB,QAAID,IAASP,EAAK;AAClB,QAAIO,GAAQ;AACR,UAAI4B,IAAS5B,EAAO;AACpB,MAAA4B,EAAO,OAAOA,EAAO,QAAQnC,CAAI,GAAG,GAAGQ,CAAI;AAAA,IACnD;AACI,IAAIR,EAAK,SACLA,EAAK,KAAK,OAAOQ,IAErBA,EAAK,SAASD,GACdC,EAAK,OAAOR,EAAK,MACjBQ,EAAK,OAAOR,GACZA,EAAK,OAAOQ;AAAA,EAChB;;;;;;UC3IA,OAAO,eAAewL,IAAS,cAAc,EAAE,OAAO,IAAM,GAC5DA,GAAA,SAAiBC,GACjBD,GAAA,OAAeE,GACfF,GAAA,eAAuBG,GACvBH,GAAA,UAAkBI,GAClBJ,GAAA,YAAoBK,GACpBL,GAAA,UAAkBM;AAClB,MAAI7B,IAAoCpM,gBAAAA,GAAA;AAWxC,WAAS4N,EAAOM,GAAM9S,GAAM+S,GAASC,GAAO;AACxC,WAAID,MAAY,WAAUA,IAAU,KAChCC,MAAU,WAAUA,IAAQ,QACzBP,EAAKK,GAAM,MAAM,QAAQ9S,CAAI,IAAIA,IAAO,CAACA,CAAI,GAAG+S,GAASC,CAAK;AAAA,EACzE;AAWA,WAASP,EAAKK,GAAM9C,GAAO+C,GAASC,GAAO;AAMvC,aALI3Q,IAAS,CAAE,GAEX4Q,IAAY,CAAC,MAAM,QAAQjD,CAAK,IAAIA,IAAQ,CAACA,CAAK,CAAC,GAEnDkD,IAAa,CAAC,CAAC,OACV;AAEL,UAAIA,EAAW,CAAC,KAAKD,EAAU,CAAC,EAAE,QAAQ;AAEtC,YAAIC,EAAW,WAAW;AACtB,iBAAO7Q;AAGX,QAAA4Q,EAAU,MAAO,GACjBC,EAAW,MAAO;AAElB;AAAA,MACZ;AACQ,UAAI3M,IAAO0M,EAAU,CAAC,EAAEC,EAAW,CAAC,GAAG;AACvC,UAAIJ,EAAKvM,CAAI,MACTlE,EAAO,KAAKkE,CAAI,GACZ,EAAEyM,KAAS;AACX,eAAO3Q;AAEf,MAAI0Q,SAAe/B,EAAa,aAAazK,CAAI,KAAKA,EAAK,SAAS,SAAS,MAKzE2M,EAAW,QAAQ,CAAC,GACpBD,EAAU,QAAQ1M,EAAK,QAAQ;AAAA,IAE3C;AAAA,EACA;AAUA,WAASmM,EAAaI,GAAM9C,GAAO;AAC/B,WAAOA,EAAM,KAAK8C,CAAI;AAAA,EAC1B;AAUA,WAASH,EAAQG,GAAM9C,GAAO+C,GAAS;AACnC,IAAIA,MAAY,WAAUA,IAAU;AAEpC,aADII,IAAgB,MAAM,QAAQnD,CAAK,IAAIA,IAAQ,CAACA,CAAK,GAChDrJ,IAAI,GAAGA,IAAIwM,EAAc,QAAQxM,KAAK;AAC3C,UAAI3G,IAAOmT,EAAcxM,CAAC;AAC1B,cAAQqK,EAAa,OAAOhR,CAAI,KAAK8S,EAAK9S,CAAI;AAC1C,eAAOA;AAEX,UAAI+S,SAAe/B,EAAa,aAAahR,CAAI,KAAKA,EAAK,SAAS,SAAS,GAAG;AAC5E,YAAIoT,IAAQT,EAAQG,GAAM9S,EAAK,UAAU,EAAI;AAC7C,YAAIoT;AACA,iBAAOA;AAAA,MACvB;AAAA,IACA;AACI,WAAO;AAAA,EACX;AASA,WAASR,EAAUE,GAAM9C,GAAO;AAC5B,YAAQ,MAAM,QAAQA,CAAK,IAAIA,IAAQ,CAACA,CAAK,GAAG,KAAK,SAAUhQ,GAAM;AACjE,iBAAYgR,EAAa,OAAOhR,CAAI,KAAK8S,EAAK9S,CAAI,SACzCgR,EAAa,aAAahR,CAAI,KAAK4S,EAAUE,GAAM9S,EAAK,QAAQ;AAAA,IACjF,CAAK;AAAA,EACL;AAWA,WAAS6S,EAAQC,GAAM9C,GAAO;AAI1B,aAHI3N,IAAS,CAAE,GACX4Q,IAAY,CAAC,MAAM,QAAQjD,CAAK,IAAIA,IAAQ,CAACA,CAAK,CAAC,GACnDkD,IAAa,CAAC,CAAC,OACV;AACL,UAAIA,EAAW,CAAC,KAAKD,EAAU,CAAC,EAAE,QAAQ;AACtC,YAAIA,EAAU,WAAW;AACrB,iBAAO5Q;AAGX,QAAA4Q,EAAU,MAAO,GACjBC,EAAW,MAAO;AAElB;AAAA,MACZ;AACQ,UAAI3M,IAAO0M,EAAU,CAAC,EAAEC,EAAW,CAAC,GAAG;AACvC,UAAQlC,EAAa,OAAOzK,CAAI,KAAKuM,EAAKvM,CAAI,KAC1ClE,EAAO,KAAKkE,CAAI,OACZyK,EAAa,aAAazK,CAAI,KAAKA,EAAK,SAAS,SAAS,MAC9D2M,EAAW,QAAQ,CAAC,GACpBD,EAAU,QAAQ1M,EAAK,QAAQ;AAAA,IAE3C;AAAA,EACA;;;;;;UCxJA,OAAO,eAAe8M,IAAS,cAAc,EAAE,OAAO,IAAM,GAC5DA,GAAA,cAAsBC,GACtBD,GAAA,cAAsBE,GACtBF,GAAA,iBAAyBG,GACzBH,GAAA,uBAA+BI,GAC/BJ,GAAA,yBAAiCK,GACjCL,GAAA,uBAA+BM;AAC/B,MAAI3C,IAAoCpM,gBAAAA,GAAA,GACpCgP,IAAwCzK,gBAAAA,GAAA,GAIxC0K,IAAS;AAAA,IACT,UAAU,SAAUtM,GAAM;AACtB,aAAI,OAAOA,KAAS,aACT,SAAUhB,GAAM;AAAE,mBAAWyK,EAAa,OAAOzK,CAAI,KAAKgB,EAAKhB,EAAK,IAAI;AAAA,MAAI,IAE9EgB,MAAS,MACPyJ,EAAa,QAEjB,SAAUzK,GAAM;AAAE,mBAAWyK,EAAa,OAAOzK,CAAI,KAAKA,EAAK,SAASgB;AAAA,MAAO;AAAA,IACzF;AAAA,IACD,UAAU,SAAUnC,GAAM;AACtB,aAAI,OAAOA,KAAS,aACT,SAAUmB,GAAM;AAAE,eAAOnB,EAAKmB,EAAK,IAAI;AAAA,MAAI,IAE/C,SAAUA,GAAM;AAAE,eAAOA,EAAK,SAASnB;AAAA,MAAO;AAAA,IACxD;AAAA,IACD,cAAc,SAAU+B,GAAM;AAC1B,aAAI,OAAOA,KAAS,aACT,SAAUZ,GAAM;AAAE,mBAAWyK,EAAa,QAAQzK,CAAI,KAAKY,EAAKZ,EAAK,IAAI;AAAA,MAAI,IAEjF,SAAUA,GAAM;AAAE,mBAAWyK,EAAa,QAAQzK,CAAI,KAAKA,EAAK,SAASY;AAAA,MAAO;AAAA,IAC1F;AAAA,EACJ;AAUD,WAAS2M,EAAeC,GAAQhS,GAAO;AACnC,WAAI,OAAOA,KAAU,aACV,SAAUwE,GAAM;AAAE,iBAAWyK,EAAa,OAAOzK,CAAI,KAAKxE,EAAMwE,EAAK,QAAQwN,CAAM,CAAC;AAAA,IAAI,IAE5F,SAAUxN,GAAM;AAAE,iBAAWyK,EAAa,OAAOzK,CAAI,KAAKA,EAAK,QAAQwN,CAAM,MAAMhS;AAAA,IAAQ;AAAA,EACtG;AAUA,WAASiS,EAAaC,GAAGxO,GAAG;AACxB,WAAO,SAAUc,GAAM;AAAE,aAAO0N,EAAE1N,CAAI,KAAKd,EAAEc,CAAI;AAAA,IAAI;AAAA,EACzD;AASA,WAAS2N,EAAY/R,GAAS;AAC1B,QAAIgS,IAAQ,OAAO,KAAKhS,CAAO,EAAE,IAAI,SAAUxC,GAAK;AAChD,UAAIoC,IAAQI,EAAQxC,CAAG;AACvB,aAAO,OAAO,UAAU,eAAe,KAAKkU,GAAQlU,CAAG,IACjDkU,EAAOlU,CAAG,EAAEoC,CAAK,IACjB+R,EAAenU,GAAKoC,CAAK;AAAA,IACvC,CAAK;AACD,WAAOoS,EAAM,WAAW,IAAI,OAAOA,EAAM,OAAOH,CAAY;AAAA,EAChE;AASA,WAASV,EAAYnR,GAASnC,GAAM;AAChC,QAAI8S,IAAOoB,EAAY/R,CAAO;AAC9B,WAAO2Q,IAAOA,EAAK9S,CAAI,IAAI;AAAA,EAC/B;AAWA,WAASuT,EAAYpR,GAAS6N,GAAO+C,GAASC,GAAO;AACjD,IAAIA,MAAU,WAAUA,IAAQ;AAChC,QAAIF,IAAOoB,EAAY/R,CAAO;AAC9B,WAAO2Q,QAAWc,EAAc,QAAQd,GAAM9C,GAAO+C,GAASC,CAAK,IAAI,CAAE;AAAA,EAC7E;AAUA,WAASQ,EAAeY,GAAIpE,GAAO+C,GAAS;AACxC,WAAIA,MAAY,WAAUA,IAAU,KAC/B,MAAM,QAAQ/C,CAAK,MACpBA,IAAQ,CAACA,CAAK,QACP4D,EAAc,SAASE,EAAe,MAAMM,CAAE,GAAGpE,GAAO+C,CAAO;AAAA,EAC9E;AAWA,WAASU,EAAqBY,GAASrE,GAAO+C,GAASC,GAAO;AAC1D,WAAID,MAAY,WAAUA,IAAU,KAChCC,MAAU,WAAUA,IAAQ,YACrBY,EAAc,QAAQC,EAAO,SAAYQ,CAAO,GAAGrE,GAAO+C,GAASC,CAAK;AAAA,EACvF;AAWA,WAASU,EAAuBY,GAAWtE,GAAO+C,GAASC,GAAO;AAC9D,WAAID,MAAY,WAAUA,IAAU,KAChCC,MAAU,WAAUA,IAAQ,YACrBY,EAAc,QAAQE,EAAe,SAASQ,CAAS,GAAGtE,GAAO+C,GAASC,CAAK;AAAA,EAC9F;AAWA,WAASW,EAAqBvO,GAAM4K,GAAO+C,GAASC,GAAO;AACvD,WAAID,MAAY,WAAUA,IAAU,KAChCC,MAAU,WAAUA,IAAQ,YACrBY,EAAc,QAAQC,EAAO,SAAYzO,CAAI,GAAG4K,GAAO+C,GAASC,CAAK;AAAA,EACpF;;;;;;UCrKA,OAAO,eAAeuB,IAAS,cAAc,EAAE,OAAO,IAAM,GACpCA,GAAA,mBAAG,QAC3BA,GAAA,gBAAwBC,GACxBD,GAAA,0BAAkCE,GAClCF,GAAA,aAAqBG;AACrB,MAAI1D,IAAoCpM,gBAAAA,GAAA;AASxC,WAAS4P,EAAcxE,GAAO;AAM1B,aALI2E,IAAM3E,EAAM,QAKT,EAAE2E,KAAO,KAAG;AACf,UAAI3U,IAAOgQ,EAAM2E,CAAG;AAMpB,UAAIA,IAAM,KAAK3E,EAAM,YAAYhQ,GAAM2U,IAAM,CAAC,KAAK,GAAG;AAClD,QAAA3E,EAAM,OAAO2E,GAAK,CAAC;AACnB;AAAA,MACZ;AACQ,eAASC,IAAW5U,EAAK,QAAQ4U,GAAUA,IAAWA,EAAS;AAC3D,YAAI5E,EAAM,SAAS4E,CAAQ,GAAG;AAC1B,UAAA5E,EAAM,OAAO2E,GAAK,CAAC;AACnB;AAAA,QAChB;AAAA,IAEA;AACI,WAAO3E;AAAA,EACX;AAKA,MAAI6E;AACJ,GAAC,SAAUA,GAAkB;AACzB,IAAAA,EAAiBA,EAAiB,eAAkB,CAAC,IAAI,gBACzDA,EAAiBA,EAAiB,YAAe,CAAC,IAAI,aACtDA,EAAiBA,EAAiB,YAAe,CAAC,IAAI,aACtDA,EAAiBA,EAAiB,WAAc,CAAC,IAAI,YACrDA,EAAiBA,EAAiB,eAAkB,EAAE,IAAI;AAAA,EAC7D,GAAEA,MAAqBN,GAAA,mBAA2BM,IAAmB,CAAE,EAAC;AA2BzE,WAASJ,EAAwBK,GAAOC,GAAO;AAC3C,QAAIC,IAAW,CAAE,GACbC,IAAW,CAAE;AACjB,QAAIH,MAAUC;AACV,aAAO;AAGX,aADI7I,QAAc8E,EAAa,aAAa8D,CAAK,IAAIA,IAAQA,EAAM,QAC5D5I;AACH,MAAA8I,EAAS,QAAQ9I,CAAO,GACxBA,IAAUA,EAAQ;AAGtB,SADAA,QAAc8E,EAAa,aAAa+D,CAAK,IAAIA,IAAQA,EAAM,QACxD7I;AACH,MAAA+I,EAAS,QAAQ/I,CAAO,GACxBA,IAAUA,EAAQ;AAItB,aAFIgJ,IAAS,KAAK,IAAIF,EAAS,QAAQC,EAAS,MAAM,GAClDN,IAAM,GACHA,IAAMO,KAAUF,EAASL,CAAG,MAAMM,EAASN,CAAG;AACjD,MAAAA;AAEJ,QAAIA,MAAQ;AACR,aAAOE,EAAiB;AAE5B,QAAIM,IAAeH,EAASL,IAAM,CAAC,GAC/BhD,IAAWwD,EAAa,UACxBC,IAAWJ,EAASL,CAAG,GACvBU,IAAWJ,EAASN,CAAG;AAC3B,WAAIhD,EAAS,QAAQyD,CAAQ,IAAIzD,EAAS,QAAQ0D,CAAQ,IAClDF,MAAiBJ,IACVF,EAAiB,YAAYA,EAAiB,eAElDA,EAAiB,YAExBM,MAAiBL,IACVD,EAAiB,YAAYA,EAAiB,WAElDA,EAAiB;AAAA,EAC5B;AAUA,WAASH,EAAW1E,GAAO;AACvB,WAAAA,IAAQA,EAAM,OAAO,SAAUhQ,GAAM2G,GAAGgH,GAAK;AAAE,aAAO,CAACA,EAAI,SAAS3N,GAAM2G,IAAI,CAAC;AAAA,IAAE,CAAE,GACnFqJ,EAAM,KAAK,SAAU,GAAGvK,GAAG;AACvB,UAAI6P,IAAWb,EAAwB,GAAGhP,CAAC;AAC3C,aAAI6P,IAAWT,EAAiB,YACrB,KAEFS,IAAWT,EAAiB,YAC1B,IAEJ;AAAA,IACf,CAAK,GACM7E;AAAA,EACX;;;;;;UC3IA,OAAO,eAAeuF,IAAS,cAAc,EAAE,OAAO,IAAM,GAC5DA,GAAA,UAAkBC;AAClB,MAAIC,IAA0C7Q,gBAAAA,GAAA,GAC1C8Q,IAAoCvM,gBAAAA,GAAA;AAQxC,WAASqM,EAAQG,GAAK;AAClB,QAAIC,IAAWC,EAAcC,GAAaH,CAAG;AAC7C,WAAQC,IAEFA,EAAS,SAAS,SACdG,EAAYH,CAAQ,IACpBI,EAAWJ,CAAQ,IAHvB;AAAA,EAIV;AAOA,WAASG,EAAYH,GAAU;AAC3B,QAAInO,GACAiB,IAASkN,EAAS,UAClBK,IAAO;AAAA,MACP,MAAM;AAAA,MACN,WAAWP,EAAY,sBAAsB,SAAShN,CAAM,EAAE,IAAI,SAAUwN,GAAM;AAC9E,YAAIzO,GACAxC,IAAWiR,EAAK,UAChBC,IAAQ,EAAE,OAAOC,EAAiBnR,CAAQ,EAAG;AACjD,QAAAoR,EAAiBF,GAAO,MAAM,MAAMlR,CAAQ,GAC5CoR,EAAiBF,GAAO,SAAS,SAASlR,CAAQ;AAClD,YAAIqR,KAAQ7O,IAAKoO,EAAc,QAAQ5Q,CAAQ,OAAO,QAAQwC,MAAO,SAAS,SAASA,EAAG,QAAQ;AAClG,QAAI6O,MACAH,EAAM,OAAOG;AAEjB,YAAIC,IAAcC,EAAM,WAAWvR,CAAQ,KAAKuR,EAAM,WAAWvR,CAAQ;AACzE,QAAIsR,MACAJ,EAAM,cAAcI;AAExB,YAAIE,IAAUD,EAAM,WAAWvR,CAAQ;AACvC,eAAIwR,MACAN,EAAM,UAAU,IAAI,KAAKM,CAAO,IAE7BN;AAAA,MACnB,CAAS;AAAA,IACJ;AACD,IAAAE,EAAiBJ,GAAM,MAAM,MAAMvN,CAAM,GACzC2N,EAAiBJ,GAAM,SAAS,SAASvN,CAAM;AAC/C,QAAI4N,KAAQ7O,IAAKoO,EAAc,QAAQnN,CAAM,OAAO,QAAQjB,MAAO,SAAS,SAASA,EAAG,QAAQ;AAChG,IAAI6O,MACAL,EAAK,OAAOK,IAEhBD,EAAiBJ,GAAM,eAAe,YAAYvN,CAAM;AACxD,QAAIgO,IAAUF,EAAM,WAAW9N,CAAM;AACrC,WAAIgO,MACAT,EAAK,UAAU,IAAI,KAAKS,CAAO,IAEnCL,EAAiBJ,GAAM,UAAU,SAASvN,GAAQ,EAAI,GAC/CuN;AAAA,EACX;AAOA,WAASD,EAAWJ,GAAU;AAC1B,QAAInO,GAAIK,GACJY,KAAUZ,KAAML,IAAKoO,EAAc,WAAWD,EAAS,QAAQ,OAAO,QAAQnO,MAAO,SAAS,SAASA,EAAG,cAAc,QAAQK,MAAO,SAASA,IAAK,CAAE,GACvJmO,IAAO;AAAA,MACP,MAAML,EAAS,KAAK,OAAO,GAAG,CAAC;AAAA,MAC/B,IAAI;AAAA,MACJ,WAAWF,EAAY,sBAAsB,QAAQE,EAAS,QAAQ,EAAE,IAAI,SAAUM,GAAM;AACxF,YAAIjR,IAAWiR,EAAK,UAChBC,IAAQ,EAAE,OAAOC,EAAiBnR,CAAQ,EAAG;AACjD,QAAAoR,EAAiBF,GAAO,MAAM,QAAQlR,CAAQ,GAC9CoR,EAAiBF,GAAO,SAAS,SAASlR,CAAQ,GAClDoR,EAAiBF,GAAO,QAAQ,QAAQlR,CAAQ,GAChDoR,EAAiBF,GAAO,eAAe,eAAelR,CAAQ;AAC9D,YAAIwR,IAAUD,EAAM,WAAWvR,CAAQ,KAAKuR,EAAM,WAAWvR,CAAQ;AACrE,eAAIwR,MACAN,EAAM,UAAU,IAAI,KAAKM,CAAO,IAC7BN;AAAA,MACnB,CAAS;AAAA,IACJ;AACD,IAAAE,EAAiBJ,GAAM,SAAS,SAASvN,CAAM,GAC/C2N,EAAiBJ,GAAM,QAAQ,QAAQvN,CAAM,GAC7C2N,EAAiBJ,GAAM,eAAe,eAAevN,CAAM;AAC3D,QAAIgO,IAAUF,EAAM,iBAAiB9N,CAAM;AAC3C,WAAIgO,MACAT,EAAK,UAAU,IAAI,KAAKS,CAAO,IAEnCL,EAAiBJ,GAAM,UAAU,kBAAkBvN,GAAQ,EAAI,GACxDuN;AAAA,EACX;AACA,MAAIU,IAAoB,CAAC,OAAO,QAAQ,MAAM,GAC1CC,IAAiB;AAAA,IACjB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACH;AAOD,WAASR,EAAiBS,GAAO;AAC7B,eAAWnB,EAAY,sBAAsB,iBAAiBmB,CAAK,EAAE,IAAI,SAAUtQ,GAAM;AAMrF,eALIsB,IAAUtB,EAAK,SACfuQ,IAAQ;AAAA,QACR,QAAQjP,EAAQ;AAAA,QAChB,WAAW,CAAC,CAACA,EAAQ;AAAA,MACxB,GACQkP,IAAK,GAAGC,IAAsBL,GAAmBI,IAAKC,EAAoB,QAAQD,KAAM;AAC7F,YAAIhD,IAASiD,EAAoBD,CAAE;AACnC,QAAIlP,EAAQkM,CAAM,MACd+C,EAAM/C,CAAM,IAAIlM,EAAQkM,CAAM;AAAA,MAE9C;AACQ,eAAStM,IAAK,GAAGwP,IAAmBL,GAAgBnP,IAAKwP,EAAiB,QAAQxP,KAAM;AACpF,YAAIsM,IAASkD,EAAiBxP,CAAE;AAChC,QAAII,EAAQkM,CAAM,MACd+C,EAAM/C,CAAM,IAAI,SAASlM,EAAQkM,CAAM,GAAG,EAAE;AAAA,MAE5D;AACQ,aAAIlM,EAAQ,eACRiP,EAAM,aAAajP,EAAQ,aAExBiP;AAAA,IACf,CAAK;AAAA,EACL;AAQA,WAASjB,EAAcxB,GAASrU,GAAM;AAClC,eAAW0V,EAAY,sBAAsBrB,GAASrU,GAAM,IAAM,CAAC,EAAE,CAAC;AAAA,EAC1E;AASA,WAASwW,EAAMnC,GAASwC,GAAO9D,GAAS;AACpC,WAAIA,MAAY,WAAUA,IAAU,SACzB0C,EAAe,iBAAiBC,EAAY,sBAAsBrB,GAASwC,GAAO9D,GAAS,CAAC,CAAC,EAAE,KAAM;AAAA,EACpH;AAUA,WAASsD,EAAiBa,GAAKC,GAAM9C,GAASwC,GAAO9D,GAAS;AAC1D,IAAIA,MAAY,WAAUA,IAAU;AACpC,QAAI5N,IAAMqR,EAAMnC,GAASwC,GAAO9D,CAAO;AACvC,IAAI5N,MACA+R,EAAIC,CAAI,IAAIhS;AAAA,EACpB;AAOA,WAAS2Q,EAAY/T,GAAO;AACxB,WAAOA,MAAU,SAASA,MAAU,UAAUA,MAAU;AAAA,EAC5D;;;;;;AC3LA,QAAI4G,IAAmBjE,MAAQA,GAAK,oBAAqB,OAAO,SAAU,SAASkE,GAAGC,GAAGC,GAAGC,GAAI;AAC5F,MAAIA,MAAO,WAAWA,IAAKD;AAC3B,UAAIE,IAAO,OAAO,yBAAyBH,GAAGC,CAAC;AAC/C,OAAI,CAACE,MAAS,SAASA,IAAO,CAACH,EAAE,aAAaG,EAAK,YAAYA,EAAK,mBAClEA,IAAO,EAAE,YAAY,IAAM,KAAK,WAAW;AAAE,eAAOH,EAAEC,CAAC;AAAA,QAAM,IAE/D,OAAO,eAAeF,GAAGG,GAAIC,CAAI;AAAA,IACpC,IAAK,SAASJ,GAAGC,GAAGC,GAAGC,GAAI;AACxB,MAAIA,MAAO,WAAWA,IAAKD,IAC3BF,EAAEG,CAAE,IAAIF,EAAEC,CAAC;AAAA,IACf,IACIG,IAAgBvE,MAAQA,GAAK,gBAAiB,SAASmE,GAAG5J,GAAS;AACnE,eAASyG,KAAKmD,EAAG,CAAInD,MAAM,aAAa,CAAC,OAAO,UAAU,eAAe,KAAKzG,GAASyG,CAAC,KAAGiD,EAAgB1J,GAAS4J,GAAGnD,CAAC;AAAA,IAC3H;AACD,WAAO,eAAczG,GAAU,cAAc,EAAE,OAAO,IAAM,GAC5DA,EAAA,cAAsBA,eAAqBA,EAAoB,YAAAA,EAAA,SAAiBA,EAAkB,UAAAA,EAAA,QAAgB,QAClHgK,EAAarE,gBAAAA,GAAyB,GAAE3F,CAAO,GAC/CgK,EAAaE,gBAAAA,GAAyB,GAAElK,CAAO,GAC/CgK,EAAawB,gBAAAA,GAA4B,GAAExL,CAAO,GAClDgK,EAAamO,gBAAAA,GAAwB,GAAEnY,CAAO,GAC9CgK,EAAaoO,gBAAAA,GAAsB,GAAEpY,CAAO,GAC5CgK,EAAaqO,gBAAAA,GAAuB,GAAErY,CAAO,GAC7CgK,EAAasO,gBAAAA,GAAqB,GAAEtY,CAAO;AAE3C,QAAI+R,IAAoCwG,gBAAAA,GAAA;AACxC,WAAO,eAAevY,GAAS,SAAS,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAO+R,EAAa;AAAA,IAAQ,EAAA,CAAE,GAC7G,OAAO,eAAe/R,GAAS,WAAW,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAO+R,EAAa;AAAA,IAAU,EAAA,CAAE,GACjH,OAAO,eAAe/R,GAAS,UAAU,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAO+R,EAAa;AAAA,IAAS,EAAA,CAAE,GAC/G,OAAO,eAAe/R,GAAS,aAAa,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAO+R,EAAa;AAAA,IAAY,EAAA,CAAE,GACrH,OAAO,eAAe/R,GAAS,cAAc,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAO+R,EAAa;AAAA,IAAa,EAAA,CAAE,GACvH,OAAO,eAAe/R,GAAS,eAAe,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAO+R,EAAa;AAAA,IAAc,EAAA,CAAE;AAAA;;;;wBC/BzHyG,KAAiB;AAAA,IAChB,UAAU,WAAmB;AAC5B,aAAO;AAAA,IACP;AAAA,IACD,WAAW,WAAoB;AAC9B,aAAO;AAAA,IACT;AAAA,EACC;;YCPUC;AAAA,CACV,SAAUA,GAAc;AACrB,EAAAA,EAAa,YAAe,aAC5BA,EAAa,SAAY,UACzBA,EAAa,gBAAmB,kBAChCA,EAAa,MAAS,OACtBA,EAAa,YAAe,aAE5BA,EAAa,WAAc,YAC3BA,EAAa,QAAW,SACxBA,EAAa,aAAgB,cAC7BA,EAAa,SAAY,UACzBA,EAAa,UAAa,WAC1BA,EAAa,mBAAsB;AACvC,GAAGA,MAAiBA,IAAe,CAAA,EAAG;AAQ/B,MAAMC,KAAiB;AAAA,EAC1B,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,eAAe;AACnB;AACO,IAAIC;AAAA,CACV,SAAUA,GAAiB;AACxB,EAAAA,EAAgB,MAAS,OACzBA,EAAgB,UAAa,WAC7BA,EAAgB,MAAS,OACzBA,EAAgB,SAAY,UAC5BA,EAAgB,SAAY,UAC5BA,EAAgB,SAAY,UAC5BA,EAAgB,MAAS,OACzBA,EAAgB,QAAW;AAC/B,GAAGA,MAAoBA,IAAkB,CAAA,EAAG;ACrC5C,MAAMC,KAAS,4DACTC,KAAW,gCACXC,KAAc,oBAAI,IAAI;AAAA,EACxB,CAAC,KAAiBH,EAAgB,OAAO;AAAA,EACzC,CAAC,IAAqBA,EAAgB,KAAK;AAAA,EAC3C,CAAC,IAAiBA,EAAgB,GAAG;AAAA,EACrC,CAAC,IAAmBA,EAAgB,GAAG;AAAA,EACvC,CAAC,IAA0BA,EAAgB,GAAG;AAAA,EAC9C,CAAC,KAAgBA,EAAgB,MAAM;AAC3C,CAAC,GAEKI,KAAgB,oBAAI,IAAI;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,CAAC;AAQM,SAASC,GAAYC,GAAU;AAClC,UAAQA,EAAS,MAAI;AAAA,IACjB,KAAKR,EAAa;AAAA,IAClB,KAAKA,EAAa;AAAA,IAClB,KAAKA,EAAa;AAAA,IAClB,KAAKA,EAAa;AAAA,IAClB,KAAKA,EAAa;AAAA,IAClB,KAAKA,EAAa;AACd,aAAO;AAAA,IACX;AACI,aAAO;AAAA,EACnB;AACA;AACA,MAAMS,KAAyB,oBAAI,IAAI,CAAC,YAAY,WAAW,CAAC;AAEhE,SAASC,GAAUC,GAAGC,GAASC,GAAmB;AAC9C,QAAMhV,IAAO,SAAS+U,GAAS,EAAE,IAAI;AAErC,SAAO/U,MAASA,KAAQgV,IAClBD,IACA/U,IAAO;AAAA;AAAA,IAED,OAAO,aAAaA,IAAO,KAAO;AAAA;AAAA;AAAA,IAElC,OAAO,aAAcA,KAAQ,KAAM,OAASA,IAAO,OAAS,KAAM;AAAA;AAClF;AACA,SAASiV,GAAY/M,GAAK;AACtB,SAAOA,EAAI,QAAQqM,IAAUM,EAAS;AAC1C;AACA,SAASK,GAAQ1O,GAAG;AAChB,SAAOA,MAAM,MAAwBA,MAAM;AAC/C;AACA,SAAS2O,GAAa3O,GAAG;AACrB,SAAQA,MAAM,MACVA,MAAM,KACNA,MAAM,MACNA,MAAM,MACNA,MAAM;AACd;AAUO,SAAS4O,GAAMT,GAAU;AAC5B,QAAMU,IAAa,CAAE,GACfC,IAAWC,GAAcF,GAAY,GAAGV,CAAQ,IAAI,CAAC;AAC3D,MAAIW,IAAWX,EAAS;AACpB,UAAM,IAAI,MAAM,uBAAuBA,EAAS,MAAMW,CAAQ,CAAC,EAAE;AAErE,SAAOD;AACX;AACA,SAASE,GAAcF,GAAYV,GAAUa,GAAe;AACxD,MAAIC,IAAS,CAAE;AACf,WAASxH,EAAQ9F,GAAQ;AACrB,UAAMqC,IAAQmK,EAAS,MAAMa,IAAgBrN,CAAM,EAAE,MAAMmM,EAAM;AACjE,QAAI,CAAC9J;AACD,YAAM,IAAI,MAAM,wBAAwBmK,EAAS,MAAMa,CAAa,CAAC,EAAE;AAE3E,UAAM,CAACxR,CAAI,IAAIwG;AACf,WAAAgL,KAAiBrN,IAASnE,EAAK,QACxBiR,GAAYjR,CAAI;AAAA,EAC/B;AACI,WAAS0R,EAAgBvN,GAAQ;AAE7B,SADAqN,KAAiBrN,GACVqN,IAAgBb,EAAS,UAC5BQ,GAAaR,EAAS,WAAWa,CAAa,CAAC;AAC/C,MAAAA;AAAA,EAEZ;AACI,WAASG,IAA2B;AAChC,IAAAH,KAAiB;AACjB,UAAMpN,IAAQoN;AACd,QAAII,IAAU;AACd,WAAOA,IAAU,KAAKJ,IAAgBb,EAAS,QAAQa;AACnD,MAAIb,EAAS,WAAWa,CAAa,MACjC,MACA,CAACK,EAAUL,CAAa,IACxBI,MAEKjB,EAAS,WAAWa,CAAa,MACtC,MACA,CAACK,EAAUL,CAAa,KACxBI;AAGR,QAAIA;AACA,YAAM,IAAI,MAAM,yBAAyB;AAE7C,WAAOX,GAAYN,EAAS,MAAMvM,GAAOoN,IAAgB,CAAC,CAAC;AAAA,EACnE;AACI,WAASK,EAAUC,GAAK;AACpB,QAAIC,IAAa;AACjB,WAAOpB,EAAS,WAAW,EAAEmB,CAAG,MAAM;AAClC,MAAAC;AACJ,YAAQA,IAAa,OAAO;AAAA,EACpC;AACI,WAASC,IAAqB;AAC1B,QAAIP,EAAO,SAAS,KAAKf,GAAYe,EAAOA,EAAO,SAAS,CAAC,CAAC;AAC1D,YAAM,IAAI,MAAM,uCAAuC;AAAA,EAEnE;AACI,WAASQ,EAAapU,GAAM;AACxB,QAAI4T,EAAO,SAAS,KAChBA,EAAOA,EAAO,SAAS,CAAC,EAAE,SAAStB,EAAa,YAAY;AAC5D,MAAAsB,EAAOA,EAAO,SAAS,CAAC,EAAE,OAAO5T;AACjC;AAAA,IACZ;AACQ,IAAAmU,EAAoB,GACpBP,EAAO,KAAK,EAAE,MAAA5T,GAAM;AAAA,EAC5B;AACI,WAASqU,EAAoBlS,GAAMmS,GAAQ;AACvC,IAAAV,EAAO,KAAK;AAAA,MACR,MAAMtB,EAAa;AAAA,MACnB,MAAAnQ;AAAA,MACA,QAAAmS;AAAA,MACA,OAAOlI,EAAQ,CAAC;AAAA,MAChB,WAAW;AAAA,MACX,YAAY;AAAA,IACxB,CAAS;AAAA,EACT;AAQI,WAASmI,IAAsB;AAK3B,QAJIX,EAAO,UACPA,EAAOA,EAAO,SAAS,CAAC,EAAE,SAAStB,EAAa,cAChDsB,EAAO,IAAK,GAEZA,EAAO,WAAW;AAClB,YAAM,IAAI,MAAM,oBAAoB;AAExC,IAAAJ,EAAW,KAAKI,CAAM;AAAA,EAC9B;AAEI,MADAC,EAAgB,CAAC,GACbf,EAAS,WAAWa;AACpB,WAAOA;AAEX,EAAAa,EAAM,QAAOb,IAAgBb,EAAS,UAAQ;AAC1C,UAAM2B,IAAY3B,EAAS,WAAWa,CAAa;AACnD,YAAQc,GAAS;AAAA;AAAA,MAEb,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK,IAAyB;AAC1B,SAAIb,EAAO,WAAW,KAClBA,EAAO,CAAC,EAAE,SAAStB,EAAa,gBAChC6B,EAAoB,GACpBP,EAAO,KAAK,EAAE,MAAMtB,EAAa,WAAU,CAAE,IAEjDuB,EAAgB,CAAC;AACjB;AAAA,MAChB;AAAA;AAAA,MAEY,KAAK,IAAsB;AACvB,QAAAO,EAAa9B,EAAa,KAAK,GAC/BuB,EAAgB,CAAC;AACjB;AAAA,MAChB;AAAA,MACY,KAAK,IAAmB;AACpB,QAAAO,EAAa9B,EAAa,MAAM,GAChCuB,EAAgB,CAAC;AACjB;AAAA,MAChB;AAAA,MACY,KAAK,KAAiB;AAClB,QAAAO,EAAa9B,EAAa,OAAO,GACjCuB,EAAgB,CAAC;AACjB;AAAA,MAChB;AAAA,MACY,KAAK,IAAe;AAChB,QAAAO,EAAa9B,EAAa,QAAQ,GAClCuB,EAAgB,CAAC;AACjB;AAAA,MAChB;AAAA;AAAA,MAEY,KAAK,IAAiB;AAClB,QAAAQ,EAAoB,SAAS7B,EAAgB,OAAO;AACpD;AAAA,MAChB;AAAA,MACY,KAAK,IAAe;AAChB,QAAA6B,EAAoB,MAAM7B,EAAgB,MAAM;AAChD;AAAA,MAChB;AAAA,MACY,KAAK,IAA4B;AAC7B,QAAAqB,EAAgB,CAAC;AAEjB,YAAI1R,GACAuS,IAAY;AAChB,QAAI5B,EAAS,WAAWa,CAAa,MAAM,MAEvCxR,IAAOiK,EAAQ,CAAC,IAEX0G,EAAS,WAAW,MAAMa,CAAa,KAC5Ce,IAAY,KACZvS,IAAOiK,EAAQ,CAAC,MAGhBjK,IAAOiK,EAAQ,CAAC,GACZ0G,EAAS,WAAWa,CAAa,MAAM,OACvCb,EAAS,WAAWa,IAAgB,CAAC,MACjC,OACJe,IAAYvS,GACZA,IAAOiK,EAAQ,CAAC,KAGxByH,EAAgB,CAAC;AAEjB,YAAIS,IAAS9B,EAAgB;AAC7B,cAAMmC,IAAiBhC,GAAY,IAAIG,EAAS,WAAWa,CAAa,CAAC;AACzE,YAAIgB,GAAgB;AAEhB,cADAL,IAASK,GACL7B,EAAS,WAAWa,IAAgB,CAAC,MACrC;AACA,kBAAM,IAAI,MAAM,cAAc;AAElC,UAAAE,EAAgB,CAAC;AAAA,QACrC,MACqB,CAAIf,EAAS,WAAWa,CAAa,MAAM,OAC5CW,IAAS9B,EAAgB,QACzBqB,EAAgB,CAAC;AAGrB,YAAIlX,IAAQ,IACRiY,IAAa;AACjB,YAAIN,MAAW,UAAU;AACrB,cAAIjB,GAAQP,EAAS,WAAWa,CAAa,CAAC,GAAG;AAC7C,kBAAMkB,IAAQ/B,EAAS,WAAWa,CAAa;AAC/C,gBAAImB,IAAanB,IAAgB;AACjC,mBAAOmB,IAAahC,EAAS,WACxBA,EAAS,WAAWgC,CAAU,MAAMD,KACjCb,EAAUc,CAAU;AACxB,cAAAA,KAAc;AAElB,gBAAIhC,EAAS,WAAWgC,CAAU,MAAMD;AACpC,oBAAM,IAAI,MAAM,4BAA4B;AAEhD,YAAAlY,IAAQyW,GAAYN,EAAS,MAAMa,IAAgB,GAAGmB,CAAU,CAAC,GACjEnB,IAAgBmB,IAAa;AAAA,UACrD,OACyB;AACD,kBAAMC,IAAapB;AACnB,mBAAOA,IAAgBb,EAAS,WAC1B,CAACQ,GAAaR,EAAS,WAAWa,CAAa,CAAC,KAC9Cb,EAAS,WAAWa,CAAa,MAC7B,MACJK,EAAUL,CAAa;AAC3B,cAAAA,KAAiB;AAErB,YAAAhX,IAAQyW,GAAYN,EAAS,MAAMiC,GAAYpB,CAAa,CAAC;AAAA,UACrF;AACoB,UAAAE,EAAgB,CAAC;AAEjB,gBAAMmB,IAAclC,EAAS,WAAWa,CAAa,IAAI;AAEzD,UAAIqB,MAAgB,OAChBJ,IAAa,IACbf,EAAgB,CAAC,KAEZmB,MAAgB,QACrBJ,IAAa,IACbf,EAAgB,CAAC;AAAA,QAEzC;AACgB,YAAIf,EAAS,WAAWa,CAAa,MACjC;AACA,gBAAM,IAAI,MAAM,qCAAqC;AAEzD,QAAAA,KAAiB;AACjB,cAAMsB,IAAoB;AAAA,UACtB,MAAM3C,EAAa;AAAA,UACnB,MAAAnQ;AAAA,UACA,QAAAmS;AAAA,UACA,OAAA3X;AAAA,UACA,WAAA+X;AAAA,UACA,YAAAE;AAAA,QACH;AACD,QAAAhB,EAAO,KAAKqB,CAAiB;AAC7B;AAAA,MAChB;AAAA,MACY,KAAK,IAAgB;AACjB,YAAInC,EAAS,WAAWa,IAAgB,CAAC,MAAM,IAAgB;AAC3D,UAAAC,EAAO,KAAK;AAAA,YACR,MAAMtB,EAAa;AAAA,YACnB,MAAMlG,EAAQ,CAAC,EAAE,YAAa;AAAA,YAC9B,MAAM0G,EAAS,WAAWa,CAAa,MACnC,KACEG,EAAwB,IACxB;AAAA,UAC9B,CAAqB;AACD;AAAA,QACpB;AACgB,cAAM3R,IAAOiK,EAAQ,CAAC,EAAE,YAAa;AACrC,YAAIrK,IAAO;AACX,YAAI+Q,EAAS,WAAWa,CAAa,MACjC;AACA,cAAIf,GAAc,IAAIzQ,CAAI,GAAG;AACzB,gBAAIkR,GAAQP,EAAS,WAAWa,IAAgB,CAAC,CAAC;AAC9C,oBAAM,IAAI,MAAM,mBAAmBxR,CAAI,mBAAmB;AAI9D,gBAFAJ,IAAO,CAAE,GACT4R,IAAgBD,GAAc3R,GAAM+Q,GAAUa,IAAgB,CAAC,GAC3Db,EAAS,WAAWa,CAAa,MACjC;AACA,oBAAM,IAAI,MAAM,mCAAmCxR,CAAI,KAAK2Q,CAAQ,GAAG;AAE3E,YAAAa,KAAiB;AAAA,UACzC,OACyB;AAED,gBADA5R,IAAO+R,EAA0B,GAC7Bf,GAAuB,IAAI5Q,CAAI,GAAG;AAClC,oBAAM+S,IAAOnT,EAAK,WAAW,CAAC;AAC9B,cAAImT,MAASnT,EAAK,WAAWA,EAAK,SAAS,CAAC,KACxCsR,GAAQ6B,CAAI,MACZnT,IAAOA,EAAK,MAAM,GAAG,EAAE;AAAA,YAEvD;AACwB,YAAAA,IAAOqR,GAAYrR,CAAI;AAAA,UAC/C;AAEgB,QAAA6R,EAAO,KAAK,EAAE,MAAMtB,EAAa,QAAQ,MAAAnQ,GAAM,MAAAJ,GAAM;AACrD;AAAA,MAChB;AAAA,MACY,KAAK,IAAgB;AACjB,QAAAwS,EAAqB,GACrBX,IAAS,CAAE,GACXC,EAAgB,CAAC;AACjB;AAAA,MAChB;AAAA,MACY,SAAS;AACL,YAAIf,EAAS,WAAW,MAAMa,CAAa,GAAG;AAC1C,gBAAMF,IAAWX,EAAS,QAAQ,MAAMa,IAAgB,CAAC;AACzD,cAAIF,IAAW;AACX,kBAAM,IAAI,MAAM,4BAA4B;AAEhD,UAAAE,IAAgBF,IAAW,GAEvBG,EAAO,WAAW,KAClBC,EAAgB,CAAC;AAErB;AAAA,QACpB;AACgB,YAAIa,IAAY,MACZvS;AACJ,YAAIsS,MAAc;AACd,UAAAd,KAAiB,GACjBxR,IAAO;AAAA,iBAEFsS,MAAc;AAEnB,cADAtS,IAAO,IACH2Q,EAAS,WAAWa,IAAgB,CAAC,MAAM,KAAgB;AAC3D,YAAAS,EAAa9B,EAAa,gBAAgB,GAC1CuB,EAAgB,CAAC;AACjB;AAAA,UACxB;AAAA,mBAEyBpB,GAAO,KAAKK,EAAS,MAAMa,CAAa,CAAC;AAC9C,UAAAxR,IAAOiK,EAAQ,CAAC;AAAA;AAGhB,gBAAMoI;AAEV,QAAI1B,EAAS,WAAWa,CAAa,MAAM,OACvCb,EAAS,WAAWa,IAAgB,CAAC,MAAM,QAC3Ce,IAAYvS,GACR2Q,EAAS,WAAWa,IAAgB,CAAC,MACrC,MACAxR,IAAO,KACPwR,KAAiB,KAGjBxR,IAAOiK,EAAQ,CAAC,IAGxBwH,EAAO,KAAKzR,MAAS,MACf,EAAE,MAAMmQ,EAAa,WAAW,WAAAoC,EAAS,IACzC,EAAE,MAAMpC,EAAa,KAAK,MAAAnQ,GAAM,WAAAuS,EAAS,CAAE;AAAA,MACjE;AAAA,IACA;AAAA,EACA;AACI,SAAAH,EAAqB,GACdZ;AACX;AClaA,MAAMwB,KAAiB,CAAC,MAAM,GAAG,GAC3BC,KAAiB,CAAC,GAAGD,IAAgB,KAAK,GAAG,GAC7CE,KAAgC,IAAI,IAAIF,GAAe,IAAI,CAACxQ,MAAMA,EAAE,WAAW,CAAC,CAAC,CAAC,GAClF2Q,KAA6B,IAAI,IAAIF,GAAe,IAAI,CAACzQ,MAAMA,EAAE,WAAW,CAAC,CAAC,CAAC,GAC/E4Q,KAAsB,IAAI,IAAI;AAAA,EAChC,GAAGH;AAAA,EACH;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,EAAE,IAAI,CAACzQ,MAAMA,EAAE,WAAW,CAAC,CAAC,CAAC;AAMtB,SAAS2G,GAAUwH,GAAU;AAChC,SAAOA,EACF,IAAI,CAAC0C,MAAUA,EAAM,IAAIC,EAAc,EAAE,KAAK,EAAE,CAAC,EACjD,KAAK,IAAI;AAClB;AACA,SAASA,GAAeD,GAAO5Y,GAAO2L,GAAK;AACvC,UAAQiN,EAAM,MAAI;AAAA;AAAA,IAEd,KAAKlD,EAAa;AACd,aAAO1V,MAAU,IAAI,OAAO;AAAA,IAChC,KAAK0V,EAAa;AACd,aAAO1V,MAAU,IAAI,OAAO;AAAA,IAChC,KAAK0V,EAAa;AACd,aAAO1V,MAAU,IAAI,OAAO;AAAA,IAChC,KAAK0V,EAAa;AACd,aAAO1V,MAAU,IAAI,OAAO;AAAA,IAChC,KAAK0V,EAAa;AACd,aAAO;AAAA,IACX,KAAKA,EAAa;AACd,aAAO1V,MAAU,IAAI,QAAQ;AAAA,IACjC,KAAK0V,EAAa;AAEd,aAAOkD,EAAM,cAAc,OACvB5Y,IAAQ,IAAI2L,EAAI,UAChB,UAAUA,EAAI3L,IAAQ,CAAC,IACrB,KACA,GAAG8Y,GAAaF,EAAM,SAAS,CAAC;AAAA,IAC1C,KAAKlD,EAAa;AACd,aAAOqD,GAAkBH,CAAK;AAAA,IAClC,KAAKlD,EAAa;AACd,aAAO,KAAKsD,GAAWJ,EAAM,MAAMD,EAAmB,CAAC,GAAGC,EAAM,SAAS,OACnE,KACA,IAAII,GAAWJ,EAAM,MAAMF,EAA0B,CAAC,GAAG;AAAA,IACnE,KAAKhD,EAAa;AACd,aAAO,IAAIsD,GAAWJ,EAAM,MAAMD,EAAmB,CAAC,GAAGC,EAAM,SAAS,OAClE,KACA,IAAI,OAAOA,EAAM,QAAS,WACtBI,GAAWJ,EAAM,MAAMF,EAA0B,IACjDhK,GAAUkK,EAAM,IAAI,CAAC,GAAG;AAAA,IACtC,KAAKlD,EAAa,WAAW;AACzB,UAAIkD,EAAM,SAAS,QACfA,EAAM,WAAWhD,EAAgB,UACjCgD,EAAM,eAAe,YACrB,CAACA,EAAM;AACP,eAAO,IAAII,GAAWJ,EAAM,OAAOD,EAAmB,CAAC;AAE3D,UAAIC,EAAM,SAAS,WACfA,EAAM,WAAWhD,EAAgB,WACjCgD,EAAM,eAAe,YACrB,CAACA,EAAM;AACP,eAAO,IAAII,GAAWJ,EAAM,OAAOD,EAAmB,CAAC;AAE3D,YAAMpT,IAAOwT,GAAkBH,CAAK;AACpC,aAAIA,EAAM,WAAWhD,EAAgB,SAC1B,IAAIrQ,CAAI,MAEZ,IAAIA,CAAI,GAAG0T,GAAeL,EAAM,MAAM,CAAC,KAAKI,GAAWJ,EAAM,OAAOH,EAA6B,CAAC,IAAIG,EAAM,eAAe,OAAO,KAAKA,EAAM,aAAa,OAAO,IAAI;AAAA,IACxL;AAAA,EACA;AACA;AACA,SAASK,GAAevB,GAAQ;AAC5B,UAAQA,GAAM;AAAA,IACV,KAAK9B,EAAgB;AACjB,aAAO;AAAA,IACX,KAAKA,EAAgB;AACjB,aAAO;AAAA,IACX,KAAKA,EAAgB;AACjB,aAAO;AAAA,IACX,KAAKA,EAAgB;AACjB,aAAO;AAAA,IACX,KAAKA,EAAgB;AACjB,aAAO;AAAA,IACX,KAAKA,EAAgB;AACjB,aAAO;AAAA,IACX,KAAKA,EAAgB;AACjB,aAAO;AAAA,IACX,KAAKA,EAAgB;AACjB,YAAM,IAAI,MAAM,mBAAmB;AAAA,EAC/C;AACA;AACA,SAASmD,GAAkBH,GAAO;AAC9B,SAAO,GAAGE,GAAaF,EAAM,SAAS,CAAC,GAAGI,GAAWJ,EAAM,MAAMD,EAAmB,CAAC;AACzF;AACA,SAASG,GAAahB,GAAW;AAC7B,SAAOA,MAAc,OACf,GAAGA,MAAc,MACb,MACAkB,GAAWlB,GAAWa,EAAmB,CAAC,MAC9C;AACV;AACA,SAASK,GAAWvP,GAAKyP,GAAe;AACpC,MAAIpN,IAAU,GACVvB,IAAM;AACV,WAAS5F,IAAI,GAAGA,IAAI8E,EAAI,QAAQ9E;AAC5B,IAAIuU,EAAc,IAAIzP,EAAI,WAAW9E,CAAC,CAAC,MACnC4F,KAAO,GAAGd,EAAI,MAAMqC,GAASnH,CAAC,CAAC,KAAK8E,EAAI,OAAO9E,CAAC,CAAC,IACjDmH,IAAUnH,IAAI;AAGtB,SAAO4F,EAAI,SAAS,IAAIA,IAAMd,EAAI,MAAMqC,CAAO,IAAIrC;AACvD;;;;;;;;;;;;;;;;;UC5HA,OAAO,eAAe0P,IAAS,cAAc,EAAE,OAAO,IAAM,GACzCA,GAAA,cAAG;AACtB,MAAIC,IAAaxW,IACbyW,IAAY,oBAAI,IAAI;AAAA,IACpB,CAACD,EAAW,aAAa,WAAW,EAAE;AAAA,IACtC,CAACA,EAAW,aAAa,KAAK,EAAE;AAAA,IAChC,CAACA,EAAW,aAAa,WAAW,CAAC;AAAA,IACrC,CAACA,EAAW,aAAa,QAAQ,CAAC;AAAA,EACtC,CAAC;AACD,WAASnD,EAAY2C,GAAO;AACxB,WAAO,CAACS,EAAU,IAAIT,EAAM,IAAI;AAAA,EACpC;AACA,EAAAO,GAAA,cAAsBlD;AACtB,MAAIpI,IAAa,oBAAI,IAAI;AAAA,IACrB,CAACuL,EAAW,gBAAgB,QAAQ,EAAE;AAAA,IACtC,CAACA,EAAW,gBAAgB,QAAQ,CAAC;AAAA,IACrC,CAACA,EAAW,gBAAgB,KAAK,CAAC;AAAA,IAClC,CAACA,EAAW,gBAAgB,OAAO,CAAC;AAAA,IACpC,CAACA,EAAW,gBAAgB,KAAK,CAAC;AAAA,IAClC,CAACA,EAAW,gBAAgB,KAAK,CAAC;AAAA,EACtC,CAAC;AAQD,WAASE,EAAgB3N,GAAK;AAE1B,aADI4N,IAAQ5N,EAAI,IAAI6N,CAAY,GACvB7U,IAAI,GAAGA,IAAIgH,EAAI,QAAQhH,KAAK;AACjC,UAAI8U,IAAUF,EAAM5U,CAAC;AACrB,UAAI,EAAA8U,IAAU;AAEd,iBAASC,IAAI/U,IAAI,GAAG+U,KAAK,KAAKD,IAAUF,EAAMG,CAAC,GAAGA,KAAK;AACnD,cAAId,IAAQjN,EAAI+N,IAAI,CAAC;AACrB,UAAA/N,EAAI+N,IAAI,CAAC,IAAI/N,EAAI+N,CAAC,GAClB/N,EAAI+N,CAAC,IAAId,GACTW,EAAMG,IAAI,CAAC,IAAIH,EAAMG,CAAC,GACtBH,EAAMG,CAAC,IAAID;AAAA,QACvB;AAAA,IACA;AAAA,EACA;AACA,EAAAN,GAAA,UAAkBG;AAClB,WAASE,EAAaZ,GAAO;AACzB,QAAInT,GAAIK,GACJ6T,KAAQlU,IAAK4T,EAAU,IAAIT,EAAM,IAAI,OAAO,QAAQnT,MAAO,SAASA,IAAK;AAC7E,WAAImT,EAAM,SAASQ,EAAW,aAAa,aACvCO,KAAQ7T,IAAK+H,EAAW,IAAI+K,EAAM,MAAM,OAAO,QAAQ9S,MAAO,SAASA,IAAK,GACxE8S,EAAM,WAAWQ,EAAW,gBAAgB,UAAUR,EAAM,SAAS,SAErEe,IAAO,IAEPf,EAAM,eAKNe,MAAS,MAGRf,EAAM,SAASQ,EAAW,aAAa,WACvCR,EAAM,OAGFA,EAAM,SAAS,SAASA,EAAM,SAAS,aAC5Ce,IAAO,IAEF,MAAM,QAAQf,EAAM,IAAI,KAE7Be,IAAO,KAAK,IAAI,MAAM,MAAMf,EAAM,KAAK,IAAI,SAAUpV,GAAG;AAAE,aAAO,KAAK,IAAI,MAAM,MAAMA,EAAE,IAAIgW,CAAY,CAAC;AAAA,IAAE,CAAE,CAAC,GAE1GG,IAAO,MACPA,IAAO,MAIXA,IAAO,IAdPA,IAAO,IAiBRA;AAAA,EACX;;;;;;;ACjFA,MAAI/V,IAAmBlB,MAAQA,GAAK,mBAAoB,SAAUmB,GAAK;AACnE,WAAQA,KAAOA,EAAI,aAAcA,IAAM,EAAE,SAAWA,EAAK;AAAA,EAC5D;AACD,SAAO,eAAegK,IAAS,cAAc,EAAE,OAAO,IAAM,GACtCA,GAAA,iBAAG;AACzB,MAAI+L,IAAahW,EAAgBhB,IAAmB,GAOhDiX,IAAU;AACd,WAASC,EAAY/Z,GAAO;AACxB,WAAOA,EAAM,QAAQ8Z,GAAS,MAAM;AAAA,EACxC;AAOA,MAAIE,IAA4B,oBAAI,IAAI;AAAA,IACpC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,CAAC;AACD,WAASC,EAAiB9D,GAAU/V,GAAS;AACzC,WAAO,OAAO+V,EAAS,cAAe,YAChCA,EAAS,aACTA,EAAS,eAAe,WACpB,CAAC,CAAC/V,EAAQ,aACV,CAACA,EAAQ,WAAW4Z,EAA0B,IAAI7D,EAAS,IAAI;AAAA,EAC7E;AAIA,SAAArI,GAAA,iBAAyB;AAAA,IACrB,QAAQ,SAAUtL,GAAM4C,GAAMhF,GAAS;AACnC,UAAI8Z,IAAU9Z,EAAQ,SAClBoF,IAAOJ,EAAK,MACZpF,IAAQoF,EAAK;AACjB,aAAI6U,EAAiB7U,GAAMhF,CAAO,KAC9BJ,IAAQA,EAAM,YAAa,GACpB,SAAUwE,GAAM;AACnB,YAAI2V,IAAOD,EAAQ,kBAAkB1V,GAAMgB,CAAI;AAC/C,eAAQ2U,KAAQ,QACZA,EAAK,WAAWna,EAAM,UACtBma,EAAK,YAAW,MAAOna,KACvBwC,EAAKgC,CAAI;AAAA,MAChB,KAEE,SAAUA,GAAM;AACnB,eAAO0V,EAAQ,kBAAkB1V,GAAMgB,CAAI,MAAMxF,KAASwC,EAAKgC,CAAI;AAAA,MACtE;AAAA,IACJ;AAAA,IACD,QAAQ,SAAUhC,GAAM4C,GAAMhF,GAAS;AACnC,UAAI8Z,IAAU9Z,EAAQ,SAClBoF,IAAOJ,EAAK,MACZpF,IAAQoF,EAAK,OACbuF,IAAM3K,EAAM;AAChB,aAAIia,EAAiB7U,GAAMhF,CAAO,KAC9BJ,IAAQA,EAAM,YAAa,GACpB,SAAkBwE,GAAM;AAC3B,YAAI2V,IAAOD,EAAQ,kBAAkB1V,GAAMgB,CAAI;AAC/C,eAAQ2U,KAAQ,SACXA,EAAK,WAAWxP,KAAOwP,EAAK,OAAOxP,CAAG,MAAM,QAC7CwP,EAAK,OAAO,GAAGxP,CAAG,EAAE,YAAa,MAAK3K,KACtCwC,EAAKgC,CAAI;AAAA,MAChB,KAEE,SAAgBA,GAAM;AACzB,YAAI2V,IAAOD,EAAQ,kBAAkB1V,GAAMgB,CAAI;AAC/C,eAAQ2U,KAAQ,SACXA,EAAK,WAAWxP,KAAOwP,EAAK,OAAOxP,CAAG,MAAM,QAC7CwP,EAAK,OAAO,GAAGxP,CAAG,MAAM3K,KACxBwC,EAAKgC,CAAI;AAAA,MAChB;AAAA,IACJ;AAAA,IACD,SAAS,SAAUhC,GAAM4C,GAAMhF,GAAS;AACpC,UAAI8Z,IAAU9Z,EAAQ,SAClBoF,IAAOJ,EAAK,MAAMpF,IAAQoF,EAAK;AACnC,UAAI,KAAK,KAAKpF,CAAK;AACf,eAAO6Z,EAAW,QAAQ;AAE9B,UAAI3N,IAAQ,IAAI,OAAO,YAAY,OAAO6N,EAAY/Z,CAAK,GAAG,WAAW,GAAGia,EAAiB7U,GAAMhF,CAAO,IAAI,MAAM,EAAE;AACtH,aAAO,SAAiBoE,GAAM;AAC1B,YAAI2V,IAAOD,EAAQ,kBAAkB1V,GAAMgB,CAAI;AAC/C,eAAQ2U,KAAQ,QACZA,EAAK,UAAUna,EAAM,UACrBkM,EAAM,KAAKiO,CAAI,KACf3X,EAAKgC,CAAI;AAAA,MAChB;AAAA,IACJ;AAAA,IACD,QAAQ,SAAUhC,GAAMkD,GAAIK,GAAI;AAC5B,UAAIP,IAAOE,EAAG,MACVwU,IAAUnU,EAAG;AACjB,aAAO,SAAUvB,GAAM;AAAE,eAAO0V,EAAQ,UAAU1V,GAAMgB,CAAI,KAAKhD,EAAKgC,CAAI;AAAA,MAAI;AAAA,IACjF;AAAA,IACD,OAAO,SAAUhC,GAAM4C,GAAMhF,GAAS;AAClC,UAAI8Z,IAAU9Z,EAAQ,SAClBoF,IAAOJ,EAAK,MACZpF,IAAQoF,EAAK,OACbuF,IAAM3K,EAAM;AAChB,aAAI2K,MAAQ,IACDkP,EAAW,QAAQ,YAE1BI,EAAiB7U,GAAMhF,CAAO,KAC9BJ,IAAQA,EAAM,YAAa,GACpB,SAAUwE,GAAM;AACnB,YAAI2V,IAAOD,EAAQ,kBAAkB1V,GAAMgB,CAAI;AAC/C,eAAQ2U,KAAQ,QACZA,EAAK,UAAUxP,KACfwP,EAAK,OAAO,GAAGxP,CAAG,EAAE,YAAa,MAAK3K,KACtCwC,EAAKgC,CAAI;AAAA,MAChB,KAEE,SAAUA,GAAM;AACnB,YAAIkB;AACJ,eAAO,CAAC,EAAG,GAAAA,IAAKwU,EAAQ,kBAAkB1V,GAAMgB,CAAI,OAAO,QAAQE,MAAO,WAAkBA,EAAG,WAAW1F,CAAK,MAC3GwC,EAAKgC,CAAI;AAAA,MAChB;AAAA,IACJ;AAAA,IACD,KAAK,SAAUhC,GAAM4C,GAAMhF,GAAS;AAChC,UAAI8Z,IAAU9Z,EAAQ,SAClBoF,IAAOJ,EAAK,MACZpF,IAAQoF,EAAK,OACbuF,IAAM,CAAC3K,EAAM;AACjB,aAAI2K,MAAQ,IACDkP,EAAW,QAAQ,YAE1BI,EAAiB7U,GAAMhF,CAAO,KAC9BJ,IAAQA,EAAM,YAAa,GACpB,SAAUwE,GAAM;AACnB,YAAIkB;AACJ,iBAASA,IAAKwU,EACT,kBAAkB1V,GAAMgB,CAAI,OAAO,QAAQE,MAAO,SAAS,SAASA,EAAG,OAAOiF,CAAG,EAAE,YAAa,OAAM3K,KAASwC,EAAKgC,CAAI;AAAA,MAChI,KAEE,SAAUA,GAAM;AACnB,YAAIkB;AACJ,eAAO,CAAC,EAAG,GAAAA,IAAKwU,EAAQ,kBAAkB1V,GAAMgB,CAAI,OAAO,QAAQE,MAAO,WAAkBA,EAAG,SAAS1F,CAAK,MACzGwC,EAAKgC,CAAI;AAAA,MAChB;AAAA,IACJ;AAAA,IACD,KAAK,SAAUhC,GAAM4C,GAAMhF,GAAS;AAChC,UAAI8Z,IAAU9Z,EAAQ,SAClBoF,IAAOJ,EAAK,MAAMpF,IAAQoF,EAAK;AACnC,UAAIpF,MAAU;AACV,eAAO6Z,EAAW,QAAQ;AAE9B,UAAII,EAAiB7U,GAAMhF,CAAO,GAAG;AACjC,YAAIga,IAAU,IAAI,OAAOL,EAAY/Z,CAAK,GAAG,GAAG;AAChD,eAAO,SAAewE,GAAM;AACxB,cAAI2V,IAAOD,EAAQ,kBAAkB1V,GAAMgB,CAAI;AAC/C,iBAAQ2U,KAAQ,QACZA,EAAK,UAAUna,EAAM,UACrBoa,EAAQ,KAAKD,CAAI,KACjB3X,EAAKgC,CAAI;AAAA,QAChB;AAAA,MACb;AACQ,aAAO,SAAUA,GAAM;AACnB,YAAIkB;AACJ,eAAO,CAAC,EAAG,GAAAA,IAAKwU,EAAQ,kBAAkB1V,GAAMgB,CAAI,OAAO,QAAQE,MAAO,WAAkBA,EAAG,SAAS1F,CAAK,MACzGwC,EAAKgC,CAAI;AAAA,MAChB;AAAA,IACJ;AAAA,IACD,KAAK,SAAUhC,GAAM4C,GAAMhF,GAAS;AAChC,UAAI8Z,IAAU9Z,EAAQ,SAClBoF,IAAOJ,EAAK,MACZpF,IAAQoF,EAAK;AACjB,aAAIpF,MAAU,KACH,SAAUwE,GAAM;AACnB,eAAO,CAAC,CAAC0V,EAAQ,kBAAkB1V,GAAMgB,CAAI,KAAKhD,EAAKgC,CAAI;AAAA,MAC9D,IAEIyV,EAAiB7U,GAAMhF,CAAO,KACnCJ,IAAQA,EAAM,YAAa,GACpB,SAAUwE,GAAM;AACnB,YAAI2V,IAAOD,EAAQ,kBAAkB1V,GAAMgB,CAAI;AAC/C,gBAAS2U,KAAQ,QACbA,EAAK,WAAWna,EAAM,UACtBma,EAAK,YAAW,MAAOna,MACvBwC,EAAKgC,CAAI;AAAA,MAChB,KAEE,SAAUA,GAAM;AACnB,eAAO0V,EAAQ,kBAAkB1V,GAAMgB,CAAI,MAAMxF,KAASwC,EAAKgC,CAAI;AAAA,MACtE;AAAA,IACJ;AAAA,EACJ;;;;;UCxOD,OAAO,eAAe6V,IAAS,cAAc,EAAE,OAAO,IAAM,GAC/CA,GAAA,QAAG;AAEhB,MAAIC,IAAa,oBAAI,IAAI,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,GACxCC,IAAO,IACPC,IAAO;AAQX,WAAS5D,EAAM6D,GAAS;AAEpB,QADAA,IAAUA,EAAQ,KAAM,EAAC,YAAa,GAClCA,MAAY;AACZ,aAAO,CAAC,GAAG,CAAC;AAEX,QAAIA,MAAY;AACjB,aAAO,CAAC,GAAG,CAAC;AAGhB,QAAI7H,IAAM,GACN,IAAI,GACJ8H,IAAOC,EAAU,GACjBC,IAASC,EAAY;AAezB,QAdIjI,IAAM6H,EAAQ,UAAUA,EAAQ,OAAO7H,CAAG,MAAM,QAChDA,KACA,IAAI8H,KAAQE,KAAgD,IAC5DE,EAAgB,GACZlI,IAAM6H,EAAQ,UACdC,IAAOC,EAAU,GACjBG,EAAgB,GAChBF,IAASC,EAAY,KAGrBH,IAAOE,IAAS,IAIpBA,MAAW,QAAQhI,IAAM6H,EAAQ;AACjC,YAAM,IAAI,MAAM,kCAAkC,OAAOA,GAAS,IAAI,CAAC;AAE3E,WAAO,CAAC,GAAGC,IAAOE,CAAM;AACxB,aAASD,IAAW;AAChB,aAAIF,EAAQ,OAAO7H,CAAG,MAAM,OACxBA,KACO,OAEP6H,EAAQ,OAAO7H,CAAG,MAAM,OACxBA,KAEG;AAAA,IACf;AACI,aAASiI,IAAa;AAGlB,eAFIjR,IAAQgJ,GACR5S,IAAQ,GACL4S,IAAM6H,EAAQ,UACjBA,EAAQ,WAAW7H,CAAG,KAAK2H,KAC3BE,EAAQ,WAAW7H,CAAG,KAAK4H;AAC3B,QAAAxa,IAAQA,IAAQ,MAAMya,EAAQ,WAAW7H,CAAG,IAAI2H,IAChD3H;AAGJ,aAAOA,MAAQhJ,IAAQ,OAAO5J;AAAA,IACtC;AACI,aAAS8a,IAAiB;AACtB,aAAOlI,IAAM6H,EAAQ,UACjBH,EAAW,IAAIG,EAAQ,WAAW7H,CAAG,CAAC;AACtC,QAAAA;AAAA,IAEZ;AAAA,EACA;AACAyH,SAAAA,GAAA,QAAgBzD;;;;;;AC1EhB,MAAI/S,IAAmBlB,MAAQA,GAAK,mBAAoB,SAAUmB,GAAK;AACnE,WAAQA,KAAOA,EAAI,aAAcA,IAAM,EAAE,SAAWA,EAAK;AAAA,EAC5D;AACD,SAAO,eAAeiX,IAAS,cAAc,EAAE,OAAO,IAAM,GAC5DA,GAAA,WAAmBA,GAAA,UAAkB;AACrC,MAAIlB,IAAahW,EAAgBhB,IAAmB;AAqBpD,WAASmY,EAAQC,GAAQ;AACrB,QAAI/I,IAAI+I,EAAO,CAAC,GAEZvX,IAAIuX,EAAO,CAAC,IAAI;AAQpB,QAAIvX,IAAI,KAAKwO,KAAK;AACd,aAAO2H,EAAW,QAAQ;AAE9B,QAAI3H,MAAM;AACN,aAAO,SAAUjS,GAAO;AAAE,eAAOA,KAASyD;AAAA,MAAI;AAClD,QAAIwO,MAAM;AACN,aAAO,SAAUjS,GAAO;AAAE,eAAOA,MAAUyD;AAAA,MAAI;AAEnD,QAAIwO,MAAM;AACN,aAAOxO,IAAI,IAAImW,EAAW,QAAQ,WAAW,SAAU5Z,GAAO;AAAE,eAAOA,KAASyD;AAAA,MAAI;AAMxF,QAAIwX,IAAO,KAAK,IAAIhJ,CAAC,GAEjBiJ,KAASzX,IAAIwX,IAAQA,KAAQA;AACjC,WAAOhJ,IAAI,IACL,SAAUjS,GAAO;AAAE,aAAOA,KAASyD,KAAKzD,IAAQib,MAASC;AAAA,IAAK,IAC9D,SAAUlb,GAAO;AAAE,aAAOA,KAASyD,KAAKzD,IAAQib,MAASC;AAAA,IAAO;AAAA,EAC1E;AACAJ,EAAAA,GAAA,UAAkBC;AAiClB,WAASI,EAASH,GAAQ;AACtB,QAAI/I,IAAI+I,EAAO,CAAC,GAEZvX,IAAIuX,EAAO,CAAC,IAAI,GAChBpW,IAAI;AAER,QAAIqN,IAAI,GAAG;AACP,UAAImJ,IAAS,CAACnJ,GAEVoJ,KAAe5X,IAAI2X,IAAUA,KAAUA;AAC3C,aAAO,WAAY;AACf,YAAIjY,IAAMkY,IAAaD,IAASxW;AAChC,eAAOzB,IAAMM,IAAI,OAAON;AAAA,MAC3B;AAAA,IACT;AACI,WAAI8O,MAAM,IACCxO,IAAI;AAAA;AAAA,MAEH,WAAY;AAAE,eAAO;AAAA,MAAK;AAAA;AAAA;AAAA,MAE1B,WAAY;AAAE,eAAQmB,QAAQ,IAAInB,IAAI;AAAA,MAAQ;AAAA,SACtDA,IAAI,MACJA,KAAKwO,IAAI,KAAK,KAAK,CAACxO,IAAIwO,CAAC,IAEtB,WAAY;AAAE,aAAOA,IAAIrN,MAAMnB;AAAA,IAAI;AAAA,EAC9C;AACAqX,SAAAA,GAAA,WAAmBK;;;;;ACtHnB,WAAO,eAAcle,GAAU,cAAc,EAAE,OAAO,IAAM,GAC5DA,EAAA,WAAmBA,EAAmB,WAAAA,EAAA,UAAkBA,EAAgB,QAAA;AACxE,QAAIqe,IAAkC1Y,gBAAAA,GAAA;AACtC,WAAO,eAAe3F,GAAS,SAAS,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAOqe,EAAW;AAAA,IAAQ,EAAA,CAAE;AAC3G,QAAIC,IAAsCpU,gBAAAA,GAAA;AAC1C,WAAO,eAAelK,GAAS,WAAW,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAOse,EAAa;AAAA,IAAU,EAAA,CAAE,GACjH,OAAO,eAAete,GAAS,YAAY,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAOse,EAAa;AAAA,IAAW,EAAA,CAAE;AAwBnH,aAASC,EAAShB,GAAS;AACvB,iBAAWe,EAAa,aAAaD,EAAW,OAAOd,CAAO,CAAC;AAAA,IACnE;AACA,IAAAvd,EAAA,UAAkBue;AA+BlB,aAASC,EAASjB,GAAS;AACvB,iBAAWe,EAAa,cAAcD,EAAW,OAAOd,CAAO,CAAC;AAAA,IACpE;AACA,IAAAvd,EAAA,WAAmBwe;AAAA;;;;;ACnEnB,QAAI7X,IAAmBlB,MAAQA,GAAK,mBAAoB,SAAUmB,GAAK;AACnE,aAAQA,KAAOA,EAAI,aAAcA,IAAM,EAAE,SAAWA,EAAK;AAAA,IAC5D;AACD,WAAO,eAAc5G,GAAU,cAAc,EAAE,OAAO,IAAM,GAC5DA,EAAA,UAAkB;AAClB,QAAIye,IAAc9X,sBAAoC,GAClDgW,IAAahW,EAAgBuD,IAAmB;AACpD,aAASwU,EAAapZ,GAAM0X,GAAS;AACjC,aAAO,SAAU1V,GAAM;AACnB,YAAIO,IAASmV,EAAQ,UAAU1V,CAAI;AACnC,eAAOO,KAAU,QAAQmV,EAAQ,MAAMnV,CAAM,KAAKvC,EAAKgC,CAAI;AAAA,MAC9D;AAAA,IACL;AACA,IAAAtH,EAAkB,UAAA;AAAA,MACd,UAAU,SAAUsF,GAAMqF,GAAMnC,GAAI;AAChC,YAAIwU,IAAUxU,EAAG;AACjB,eAAO,SAAkBlB,GAAM;AAC3B,iBAAOhC,EAAKgC,CAAI,KAAK0V,EAAQ,QAAQ1V,CAAI,EAAE,SAASqD,CAAI;AAAA,QAC3D;AAAA,MACJ;AAAA,MACD,WAAW,SAAUrF,GAAMqF,GAAMnC,GAAI;AACjC,YAAIwU,IAAUxU,EAAG,SACbmW,IAAQhU,EAAK,YAAa;AAC9B,eAAO,SAAmBrD,GAAM;AAC5B,iBAAQhC,EAAKgC,CAAI,KACb0V,EAAQ,QAAQ1V,CAAI,EAAE,YAAa,EAAC,SAASqX,CAAK;AAAA,QACzD;AAAA,MACJ;AAAA;AAAA,MAED,aAAa,SAAUrZ,GAAMsZ,GAAMpW,GAAI;AACnC,YAAIwU,IAAUxU,EAAG,SAASqW,IAASrW,EAAG,QAClCsW,QAAWL,EAAY,SAASG,CAAI;AACxC,eAAIE,MAASnC,EAAW,QAAQ,YACrBA,EAAW,QAAQ,YAC1BmC,MAASnC,EAAW,QAAQ,WACrB+B,EAAapZ,GAAM0X,CAAO,IAC9B,SAAkB1V,GAAM;AAG3B,mBAFIoL,IAAWsK,EAAQ,YAAY1V,CAAI,GACnC8S,IAAM,GACD1S,IAAI,GAAGA,IAAIgL,EAAS,UACrB,CAAAmM,EAAOvX,GAAMoL,EAAShL,CAAC,CAAC,GADKA;AAGjC,YAAIsV,EAAQ,MAAMtK,EAAShL,CAAC,CAAC,KACzB0S;AAGR,iBAAO0E,EAAK1E,CAAG,KAAK9U,EAAKgC,CAAI;AAAA,QAChC;AAAA,MACJ;AAAA,MACD,kBAAkB,SAAUhC,GAAMsZ,GAAMpW,GAAI;AACxC,YAAIwU,IAAUxU,EAAG,SAASqW,IAASrW,EAAG,QAClCsW,QAAWL,EAAY,SAASG,CAAI;AACxC,eAAIE,MAASnC,EAAW,QAAQ,YACrBA,EAAW,QAAQ,YAC1BmC,MAASnC,EAAW,QAAQ,WACrB+B,EAAapZ,GAAM0X,CAAO,IAC9B,SAAsB1V,GAAM;AAG/B,mBAFIoL,IAAWsK,EAAQ,YAAY1V,CAAI,GACnC8S,IAAM,GACD1S,IAAIgL,EAAS,SAAS,GAAGhL,KAAK,KAC/B,CAAAmX,EAAOvX,GAAMoL,EAAShL,CAAC,CAAC,GADUA;AAGtC,YAAIsV,EAAQ,MAAMtK,EAAShL,CAAC,CAAC,KACzB0S;AAGR,iBAAO0E,EAAK1E,CAAG,KAAK9U,EAAKgC,CAAI;AAAA,QAChC;AAAA,MACJ;AAAA,MACD,eAAe,SAAUhC,GAAMsZ,GAAMpW,GAAI;AACrC,YAAIwU,IAAUxU,EAAG,SAASqW,IAASrW,EAAG,QAClCsW,QAAWL,EAAY,SAASG,CAAI;AACxC,eAAIE,MAASnC,EAAW,QAAQ,YACrBA,EAAW,QAAQ,YAC1BmC,MAASnC,EAAW,QAAQ,WACrB+B,EAAapZ,GAAM0X,CAAO,IAC9B,SAAmB1V,GAAM;AAG5B,mBAFIoL,IAAWsK,EAAQ,YAAY1V,CAAI,GACnC8S,IAAM,GACD1S,IAAI,GAAGA,IAAIgL,EAAS,QAAQhL,KAAK;AACtC,gBAAIqX,IAAiBrM,EAAShL,CAAC;AAC/B,gBAAImX,EAAOvX,GAAMyX,CAAc;AAC3B;AACJ,YAAI/B,EAAQ,MAAM+B,CAAc,KAC5B/B,EAAQ,QAAQ+B,CAAc,MAAM/B,EAAQ,QAAQ1V,CAAI,KACxD8S;AAAA,UAEpB;AACY,iBAAO0E,EAAK1E,CAAG,KAAK9U,EAAKgC,CAAI;AAAA,QAChC;AAAA,MACJ;AAAA,MACD,oBAAoB,SAAUhC,GAAMsZ,GAAMpW,GAAI;AAC1C,YAAIwU,IAAUxU,EAAG,SAASqW,IAASrW,EAAG,QAClCsW,QAAWL,EAAY,SAASG,CAAI;AACxC,eAAIE,MAASnC,EAAW,QAAQ,YACrBA,EAAW,QAAQ,YAC1BmC,MAASnC,EAAW,QAAQ,WACrB+B,EAAapZ,GAAM0X,CAAO,IAC9B,SAAuB1V,GAAM;AAGhC,mBAFIoL,IAAWsK,EAAQ,YAAY1V,CAAI,GACnC8S,IAAM,GACD1S,IAAIgL,EAAS,SAAS,GAAGhL,KAAK,GAAGA,KAAK;AAC3C,gBAAIqX,IAAiBrM,EAAShL,CAAC;AAC/B,gBAAImX,EAAOvX,GAAMyX,CAAc;AAC3B;AACJ,YAAI/B,EAAQ,MAAM+B,CAAc,KAC5B/B,EAAQ,QAAQ+B,CAAc,MAAM/B,EAAQ,QAAQ1V,CAAI,KACxD8S;AAAA,UAEpB;AACY,iBAAO0E,EAAK1E,CAAG,KAAK9U,EAAKgC,CAAI;AAAA,QAChC;AAAA,MACJ;AAAA;AAAA,MAED,MAAM,SAAUhC,GAAM0Z,GAAOxW,GAAI;AAC7B,YAAIwU,IAAUxU,EAAG;AACjB,eAAO,SAAUlB,GAAM;AACnB,cAAIO,IAASmV,EAAQ,UAAU1V,CAAI;AACnC,kBAAQO,KAAU,QAAQ,CAACmV,EAAQ,MAAMnV,CAAM,MAAMvC,EAAKgC,CAAI;AAAA,QACjE;AAAA,MACJ;AAAA,MACD,OAAO,SAAUhC,GAAMsZ,GAAM1b,GAAS+b,GAAS;AAC3C,YAAIJ,IAAS3b,EAAQ;AACrB,eAAI,CAAC+b,KAAWA,EAAQ,WAAW,IAExBjf,EAAQ,QAAQ,KAAQsF,GAAMsZ,GAAM1b,CAAO,IAElD+b,EAAQ,WAAW,IAEZ,SAAU3X,GAAM;AAAE,iBAAOuX,EAAOI,EAAQ,CAAC,GAAG3X,CAAI,KAAKhC,EAAKgC,CAAI;AAAA,QAAI,IAEtE,SAAUA,GAAM;AAAE,iBAAO2X,EAAQ,SAAS3X,CAAI,KAAKhC,EAAKgC,CAAI;AAAA,QAAI;AAAA,MAC1E;AAAA,MACD,OAAO4X,EAAmB,WAAW;AAAA,MACrC,SAASA,EAAmB,WAAW;AAAA,MACvC,QAAQA,EAAmB,UAAU;AAAA,IACxC;AAOD,aAASA,EAAmB5W,GAAM;AAC9B,aAAO,SAAuBhD,GAAM0Z,GAAOxW,GAAI;AAC3C,YAAIwU,IAAUxU,EAAG,SACbsW,IAAO9B,EAAQ1U,CAAI;AACvB,eAAI,OAAOwW,KAAS,aACTnC,EAAW,QAAQ,YAEvB,SAAgBrV,GAAM;AACzB,iBAAOwX,EAAKxX,CAAI,KAAKhC,EAAKgC,CAAI;AAAA,QACjC;AAAA,MACJ;AAAA,IACL;AAAA;;;;;UC1JA,OAAO,eAAe6X,IAAS,cAAc,EAAE,OAAO,IAAM,GAC5DA,GAAA,mBAA2BA,GAAA,UAAkB,QAE7CA,GAAA,UAAkB;AAAA,IACd,OAAO,SAAU7X,GAAMkB,GAAI;AACvB,UAAIwU,IAAUxU,EAAG;AACjB,aAAO,CAACwU,EAAQ,YAAY1V,CAAI,EAAE,KAAK,SAAUA,GAAM;AAEnD,eAAO0V,EAAQ,MAAM1V,CAAI,KAAK0V,EAAQ,QAAQ1V,CAAI,MAAM;AAAA,MACpE,CAAS;AAAA,IACJ;AAAA,IACD,eAAe,SAAUA,GAAMkB,GAAI;AAC/B,UAAIwU,IAAUxU,EAAG,SAASqW,IAASrW,EAAG;AACtC,UAAIwU,EAAQ;AACR,eAAOA,EAAQ,mBAAmB1V,CAAI,KAAK;AAE/C,UAAI8X,IAAapC,EACZ,YAAY1V,CAAI,EAChB,KAAK,SAAUA,GAAM;AAAE,eAAO0V,EAAQ,MAAM1V,CAAI;AAAA,OAAI;AACzD,aAAO8X,KAAc,QAAQP,EAAOvX,GAAM8X,CAAU;AAAA,IACvD;AAAA,IACD,cAAc,SAAU9X,GAAMkB,GAAI;AAG9B,eAFIwU,IAAUxU,EAAG,SAASqW,IAASrW,EAAG,QAClCkK,IAAWsK,EAAQ,YAAY1V,CAAI,GAC9BI,IAAIgL,EAAS,SAAS,GAAGhL,KAAK,GAAGA,KAAK;AAC3C,YAAImX,EAAOvX,GAAMoL,EAAShL,CAAC,CAAC;AACxB,iBAAO;AACX,YAAIsV,EAAQ,MAAMtK,EAAShL,CAAC,CAAC;AACzB;AAAA,MAChB;AACQ,aAAO;AAAA,IACV;AAAA,IACD,iBAAiB,SAAUJ,GAAMkB,GAAI;AAIjC,eAHIwU,IAAUxU,EAAG,SAASqW,IAASrW,EAAG,QAClCkK,IAAWsK,EAAQ,YAAY1V,CAAI,GACnC+X,IAAWrC,EAAQ,QAAQ1V,CAAI,GAC1BI,IAAI,GAAGA,IAAIgL,EAAS,QAAQhL,KAAK;AACtC,YAAIqX,IAAiBrM,EAAShL,CAAC;AAC/B,YAAImX,EAAOvX,GAAMyX,CAAc;AAC3B,iBAAO;AACX,YAAI/B,EAAQ,MAAM+B,CAAc,KAC5B/B,EAAQ,QAAQ+B,CAAc,MAAMM;AACpC;AAAA,MAEhB;AACQ,aAAO;AAAA,IACV;AAAA,IACD,gBAAgB,SAAU/X,GAAMkB,GAAI;AAIhC,eAHIwU,IAAUxU,EAAG,SAASqW,IAASrW,EAAG,QAClCkK,IAAWsK,EAAQ,YAAY1V,CAAI,GACnC+X,IAAWrC,EAAQ,QAAQ1V,CAAI,GAC1BI,IAAIgL,EAAS,SAAS,GAAGhL,KAAK,GAAGA,KAAK;AAC3C,YAAIqX,IAAiBrM,EAAShL,CAAC;AAC/B,YAAImX,EAAOvX,GAAMyX,CAAc;AAC3B,iBAAO;AACX,YAAI/B,EAAQ,MAAM+B,CAAc,KAC5B/B,EAAQ,QAAQ+B,CAAc,MAAMM;AACpC;AAAA,MAEhB;AACQ,aAAO;AAAA,IACV;AAAA,IACD,gBAAgB,SAAU/X,GAAMkB,GAAI;AAChC,UAAIwU,IAAUxU,EAAG,SAASqW,IAASrW,EAAG,QAClC6W,IAAWrC,EAAQ,QAAQ1V,CAAI;AACnC,aAAO0V,EACF,YAAY1V,CAAI,EAChB,MAAM,SAAU8L,GAAS;AAC1B,eAAOyL,EAAOvX,GAAM8L,CAAO,KACvB,CAAC4J,EAAQ,MAAM5J,CAAO,KACtB4J,EAAQ,QAAQ5J,CAAO,MAAMiM;AAAA,MAC7C,CAAS;AAAA,IACJ;AAAA,IACD,cAAc,SAAU/X,GAAMkB,GAAI;AAC9B,UAAIwU,IAAUxU,EAAG,SAASqW,IAASrW,EAAG;AACtC,aAAOwU,EACF,YAAY1V,CAAI,EAChB,MAAM,SAAU8L,GAAS;AAAE,eAAOyL,EAAOvX,GAAM8L,CAAO,KAAK,CAAC4J,EAAQ,MAAM5J,CAAO;AAAA,MAAE,CAAE;AAAA,IAC7F;AAAA,EACJ;AACD,WAASkM,EAAiBR,GAAMxW,GAAMiX,GAAWC,GAAU;AACvD,QAAID,MAAc;AACd,UAAIT,EAAK,SAASU;AACd,cAAM,IAAI,MAAM,iBAAiB,OAAOlX,GAAM,uBAAuB,CAAC;AAAA,eAGrEwW,EAAK,WAAWU;AACrB,YAAM,IAAI,MAAM,iBAAiB,OAAOlX,GAAM,6BAA6B,CAAC;AAAA,EAEpF;AACA,SAAA6W,GAAA,mBAA2BG;;;;wBC1F3B,OAAO,eAAeG,IAAS,cAAc,EAAE,OAAO,IAAM,GAC7CA,GAAA,UAAG,QAIlBA,GAAA,UAAkB;AAAA;AAAA,IAEd,YAAY;AAAA,IACZ,MAAM;AAAA;AAAA;AAAA,IAGN,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA,IACV,SAAS;AAAA,IACT,SAAS;AAAA,IACT,UAAU;AAAA,IACV,UAAU;AAAA;AAAA;AAAA,IAGV,UAAU;AAAA,IACV,UAAU;AAAA,IACV,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,MAAM;AAAA,EACT;;;;;AC/BD,QAAIC,IAAiBja,MAAQA,GAAK,iBAAkB,SAAUka,GAAIC,GAAMC,GAAM;AAC1E,UAAIA,KAAQ,UAAU,WAAW,EAAG,UAASnY,IAAI,GAAGoY,IAAIF,EAAK,QAAQG,GAAIrY,IAAIoY,GAAGpY;AAC5E,SAAIqY,KAAM,EAAErY,KAAKkY,QACRG,MAAIA,IAAK,MAAM,UAAU,MAAM,KAAKH,GAAM,GAAGlY,CAAC,IACnDqY,EAAGrY,CAAC,IAAIkY,EAAKlY,CAAC;AAGtB,aAAOiY,EAAG,OAAOI,KAAM,MAAM,UAAU,MAAM,KAAKH,CAAI,CAAC;AAAA,IAC1D,GACGjZ,IAAmBlB,MAAQA,GAAK,mBAAoB,SAAUmB,GAAK;AACnE,aAAQA,KAAOA,EAAI,aAAcA,IAAM,EAAE,SAAWA,EAAK;AAAA,IAC5D;AACD,WAAO,eAAc5G,GAAU,cAAc,EAAE,OAAO,IAAM,GAC5DA,EAAA,aAAqBA,EAA0B,kBAAAA,EAAA,cAAsBA,EAA8B,sBAAA;AACnG,QAAI2c,IAAahW,EAAgBhB,IAAmB,GAChDqa,IAAY9V,GAAqB;AAErC,IAAAlK,EAAA,sBAA8B,CAAE;AAChC,aAASigB,EAAY3a,GAAM0X,GAAS;AAChC,aAAI1X,MAASqX,EAAW,QAAQ,YACrBA,EAAW,QAAQ,YACvB,SAAUrV,GAAM;AAAE,eAAO0V,EAAQ,MAAM1V,CAAI,KAAKhC,EAAKgC,CAAI;AAAA,MAAI;AAAA,IACxE;AACA,IAAAtH,EAAA,cAAsBigB;AACtB,aAASC,EAAgB5Y,GAAM0V,GAAS;AACpC,UAAItK,IAAWsK,EAAQ,YAAY1V,CAAI;AACvC,UAAIoL,EAAS,UAAU;AACnB,eAAO,CAAE;AACb,UAAIyN,IAAYzN,EAAS,QAAQpL,CAAI;AACrC,aAAI6Y,IAAY,KAAKA,MAAczN,EAAS,SAAS,IAC1C,CAAE,IACNA,EAAS,MAAMyN,IAAY,CAAC,EAAE,OAAOnD,EAAQ,KAAK;AAAA,IAC7D;AACA,IAAAhd,EAAA,kBAA0BkgB;AAC1B,aAASE,EAAYld,GAAS;AAE1B,aAAO;AAAA,QACH,SAAS,CAAC,CAACA,EAAQ;AAAA,QACnB,yBAAyB,CAAC,CAACA,EAAQ;AAAA,QACnC,eAAe,CAAC,CAACA,EAAQ;AAAA,QACzB,YAAY,CAAC,CAACA,EAAQ;AAAA,QACtB,cAAc,CAAC,CAACA,EAAQ;AAAA,QACxB,SAASA,EAAQ;AAAA,QACjB,SAASA,EAAQ;AAAA,QACjB,QAAQA,EAAQ;AAAA,MACnB;AAAA,IACL;AACA,QAAImd,IAAK,SAAU/a,GAAMqW,GAAOzY,GAAS+b,GAASqB,GAAc;AAC5D,UAAIxB,IAAOwB,EAAa3E,GAAOyE,EAAYld,CAAO,GAAG+b,CAAO;AAC5D,aAAOH,MAASnC,EAAW,QAAQ,WAC7BrX,IACAwZ,MAASnC,EAAW,QAAQ,YACxBA,EAAW,QAAQ,YACnB,SAAUrV,GAAM;AAAE,eAAOwX,EAAKxX,CAAI,KAAKhC,EAAKgC,CAAI;AAAA,MAAI;AAAA,IACjE;AAMD,IAAAtH,EAAqB,aAAA;AAAA,MACjB,IAAIqgB;AAAA;AAAA;AAAA;AAAA,MAIJ,SAASA;AAAA,MACT,OAAOA;AAAA,MACP,KAAK,SAAU/a,GAAMqW,GAAOzY,GAAS+b,GAASqB,GAAc;AACxD,YAAIxB,IAAOwB,EAAa3E,GAAOyE,EAAYld,CAAO,GAAG+b,CAAO;AAC5D,eAAOH,MAASnC,EAAW,QAAQ,YAC7BrX,IACAwZ,MAASnC,EAAW,QAAQ,WACxBA,EAAW,QAAQ,YACnB,SAAUrV,GAAM;AAAE,iBAAO,CAACwX,EAAKxX,CAAI,KAAKhC,EAAKgC,CAAI;AAAA,QAAI;AAAA,MAClE;AAAA,MACD,KAAK,SAAUhC,GAAMia,GAAWrc,GAASqd,GAAUD,GAAc;AAC7D,YAAItD,IAAU9Z,EAAQ,SAClB+M,IAAOmQ,EAAYld,CAAO;AAC9B,QAAA+M,EAAK,mBAAmB;AACxB,YAAIgP,IAAUM,EAAU,KAAK,SAAU9X,GAAG;AAAE,iBAAOA,EAAE,KAAKuY,EAAU,WAAW;AAAA,QAAI,CAAA;AAAA;AAAA,UAE3E,CAAChgB,EAAQ,mBAAmB;AAAA,YAC9B,QACFwgB,IAAWF,EAAaf,GAAWtP,GAAMgP,CAAO;AACpD,YAAIuB,MAAa7D,EAAW,QAAQ;AAChC,iBAAOA,EAAW,QAAQ;AAC9B,YAAI8D,IAAaR,EAAYO,GAAUxD,CAAO;AAE9C,YAAIiC,KAAWuB,MAAa7D,EAAW,QAAQ,UAAU;AAKrD,cAAInU,IAAKgY,EAAS,wBAAwBE,IAA2BlY,MAAO,SAAS,KAAQA;AAC7F,iBAAO,SAAUlB,GAAM;AACnB,gBAAI,CAAChC,EAAKgC,CAAI;AACV,qBAAO;AACX,YAAA2X,EAAQ,CAAC,IAAI3X;AACb,gBAAImC,IAASuT,EAAQ,YAAY1V,CAAI,GACjCqZ,IAAeD,IACbhB,EAAcA,EAAc,IAAIjW,GAAQ,EAAI,GAAGyW,EAAgB5Y,GAAM0V,CAAO,GAAG,EAAI,IAAIvT;AAC7F,mBAAOuT,EAAQ,UAAUyD,GAAYE,CAAY;AAAA,UACpD;AAAA,QACb;AACQ,eAAO,SAAUrZ,GAAM;AACnB,iBAAOhC,EAAKgC,CAAI,KACZ0V,EAAQ,UAAUyD,GAAYzD,EAAQ,YAAY1V,CAAI,CAAC;AAAA,QAC9D;AAAA,MACJ;AAAA,IACJ;AAAA;;;;;AC7GD,WAAO,eAActH,GAAU,cAAc,EAAE,OAAO,IAAM,GAC5DA,EAAA,wBAAgCA,EAAkB,UAAAA,EAAA,UAAkBA,EAAkB,UAAA;AACtF,QAAImc,IAAaxW,IACbib,IAAe1W,GAAuB;AAC1C,WAAO,eAAelK,GAAS,WAAW,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAO4gB,EAAa;AAAA,IAAU,EAAA,CAAE;AACjH,QAAIC,IAAerV,GAAuB;AAC1C,WAAO,eAAexL,GAAS,WAAW,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAO6gB,EAAa;AAAA,IAAU,EAAA,CAAE;AACjH,QAAIC,IAAe3I,GAAuB;AAC1C,WAAO,eAAenY,GAAS,WAAW,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAO8gB,EAAa;AAAA,IAAU,EAAA,CAAE;AACjH,QAAIC,IAAkB3I,GAA0B;AAChD,aAAS4I,EAAsB1b,GAAM2T,GAAU/V,GAAS+b,GAASqB,GAAc;AAC3E,UAAI9X,GACAF,IAAO2Q,EAAS,MAAM/Q,IAAO+Q,EAAS;AAC1C,UAAI,MAAM,QAAQ/Q,CAAI,GAAG;AACrB,YAAI,EAAEI,KAAQyY,EAAgB;AAC1B,gBAAM,IAAI,MAAM,yBAAyB,OAAOzY,GAAM,GAAG,EAAE,OAAOJ,GAAM,GAAG,CAAC;AAEhF,eAAO6Y,EAAgB,WAAWzY,CAAI,EAAEhD,GAAM4C,GAAMhF,GAAS+b,GAASqB,CAAY;AAAA,MAC1F;AACI,UAAIW,KAAczY,IAAKtF,EAAQ,aAAa,QAAQsF,MAAO,SAAS,SAASA,EAAGF,CAAI,GAChF4Y,IAAe,OAAOD,KAAe,WAAWA,IAAaH,EAAa,QAAQxY,CAAI;AAC1F,UAAI,OAAO4Y,KAAiB,UAAU;AAClC,YAAIhZ,KAAQ;AACR,gBAAM,IAAI,MAAM,UAAU,OAAOI,GAAM,6BAA6B,CAAC;AAGzE,YAAI6Y,QAAYhF,EAAW,OAAO+E,CAAY;AAC9C,eAAOH,EAAgB,WAAW,GAAMzb,GAAM6b,GAAOje,GAAS+b,GAASqB,CAAY;AAAA,MAC3F;AACI,UAAI,OAAOW,KAAe;AACtB,mBAAIJ,EAAa,kBAAkBI,GAAY3Y,GAAMJ,GAAM,CAAC,GACrD,SAAUZ,GAAM;AAAE,iBAAO2Z,EAAW3Z,GAAMY,CAAI,KAAK5C,EAAKgC,CAAI;AAAA,QAAI;AAE3E,UAAIgB,KAAQsY,EAAa;AACrB,eAAOA,EAAa,QAAQtY,CAAI,EAAEhD,GAAM4C,GAAMhF,GAAS+b,CAAO;AAElE,UAAI3W,KAAQuY,EAAa,SAAS;AAC9B,YAAIO,IAAWP,EAAa,QAAQvY,CAAI;AACxC,mBAAIuY,EAAa,kBAAkBO,GAAU9Y,GAAMJ,GAAM,CAAC,GACnD,SAAUZ,GAAM;AAAE,iBAAO8Z,EAAS9Z,GAAMpE,GAASgF,CAAI,KAAK5C,EAAKgC,CAAI;AAAA,QAAI;AAAA,MACtF;AACI,YAAM,IAAI,MAAM,yBAAyB,OAAOgB,CAAI,CAAC;AAAA,IACzD;AACA,IAAAtI,EAAA,wBAAgCghB;AAAA;;;;;UC3ChC,OAAO,eAAeK,IAAS,cAAc,EAAE,OAAO,IAAM,GAC9BA,GAAA,yBAAG;AACjC,MAAIC,IAAkB3b,GAA0B,GAC5C4b,IAAarX,GAAsC,GACnDiS,IAAa3Q;AACjB,WAASgW,EAAiBzgB,GAAMic,GAAS;AACrC,QAAInV,IAASmV,EAAQ,UAAUjc,CAAI;AACnC,WAAI8G,KAAUmV,EAAQ,MAAMnV,CAAM,IACvBA,IAEJ;AAAA,EACX;AAIA,WAAS4Z,EAAuBnc,GAAM2T,GAAU/V,GAAS+b,GAASqB,GAAc;AAC5E,QAAItD,IAAU9Z,EAAQ,SAAS2b,IAAS3b,EAAQ;AAChD,YAAQ+V,EAAS,MAAI;AAAA,MACjB,KAAKkD,EAAW,aAAa;AACzB,cAAM,IAAI,MAAM,iDAAiD;AAAA,MAErE,KAAKA,EAAW,aAAa;AACzB,cAAM,IAAI,MAAM,wDAAwD;AAAA,MAE5E,KAAKA,EAAW,aAAa,WAAW;AACpC,YAAIlD,EAAS,aAAa;AACtB,gBAAM,IAAI,MAAM,2DAA2D;AAE/E,gBAAI,CAAC/V,EAAQ,WAAWA,EAAQ,6BAC5B+V,EAAS,OAAOA,EAAS,KAAK,YAAa,IAExCqI,EAAgB,eAAerI,EAAS,MAAM,EAAE3T,GAAM2T,GAAU/V,CAAO;AAAA,MAC1F;AAAA,MACQ,KAAKiZ,EAAW,aAAa;AACzB,mBAAWoF,EAAW,uBAAuBjc,GAAM2T,GAAU/V,GAAS+b,GAASqB,CAAY;AAAA;AAAA,MAG/F,KAAKnE,EAAW,aAAa,KAAK;AAC9B,YAAIlD,EAAS,aAAa;AACtB,gBAAM,IAAI,MAAM,0DAA0D;AAE9E,YAAIyI,IAASzI,EAAS;AACtB,gBAAI,CAAC/V,EAAQ,WAAWA,EAAQ,mBAC5Bwe,IAASA,EAAO,YAAa,IAE1B,SAAapa,GAAM;AACtB,iBAAO0V,EAAQ,QAAQ1V,CAAI,MAAMoa,KAAUpc,EAAKgC,CAAI;AAAA,QACvD;AAAA,MACb;AAAA;AAAA,MAEQ,KAAK6U,EAAW,aAAa,YAAY;AACrC,YAAIjZ,EAAQ,iBAAiB,MACzB,OAAO,UAAY;AACnB,iBAAO,SAAoBoE,GAAM;AAE7B,qBADI2F,IAAU3F,GACN2F,IAAUuU,EAAiBvU,GAAS+P,CAAO;AAC/C,kBAAI1X,EAAK2H,CAAO;AACZ,uBAAO;AAGf,mBAAO;AAAA,UACV;AAGL,YAAI0U,IAAiB,oBAAI,QAAS;AAClC,eAAO,SAA0Bra,GAAM;AAEnC,mBADI2F,IAAU3F,GACN2F,IAAUuU,EAAiBvU,GAAS+P,CAAO;AAC/C,gBAAI,CAAC2E,EAAe,IAAI1U,CAAO,GAAG;AAC9B,kBAAI+P,EAAQ,MAAM/P,CAAO,KAAK3H,EAAK2H,CAAO;AACtC,uBAAO;AAEX,cAAA0U,EAAe,IAAI1U,CAAO;AAAA,YAClD;AAEgB,iBAAO;AAAA,QACV;AAAA,MACb;AAAA,MACQ,KAAK;AAED,eAAO,SAA4B3F,GAAM;AACrC,cAAI2F,IAAU3F;AACd;AACI,gBAAIhC,EAAK2H,CAAO;AACZ,qBAAO;AAAA,iBACLA,IAAUuU,EAAiBvU,GAAS+P,CAAO;AACrD,iBAAO;AAAA,QACV;AAAA,MAEL,KAAKb,EAAW,aAAa;AACzB,eAAO,SAAgB7U,GAAM;AACzB,iBAAO0V,EACF,YAAY1V,CAAI,EAChB,KAAK,SAAUA,GAAM;AAAE,mBAAO0V,EAAQ,MAAM1V,CAAI,KAAKhC,EAAKgC,CAAI;AAAA,WAAI;AAAA,QAC1E;AAAA,MAEL,KAAK6U,EAAW,aAAa;AACzB,eAAO,SAAe7U,GAAM;AACxB,cAAIO,IAASmV,EAAQ,UAAU1V,CAAI;AACnC,iBAAOO,KAAU,QAAQmV,EAAQ,MAAMnV,CAAM,KAAKvC,EAAKuC,CAAM;AAAA,QAChE;AAAA,MAEL,KAAKsU,EAAW,aAAa;AACzB,eAAO,SAAiB7U,GAAM;AAE1B,mBADIoL,IAAWsK,EAAQ,YAAY1V,CAAI,GAC9BI,IAAI,GAAGA,IAAIgL,EAAS,QAAQhL,KAAK;AACtC,gBAAIqX,IAAiBrM,EAAShL,CAAC;AAC/B,gBAAImX,EAAOvX,GAAMyX,CAAc;AAC3B;AACJ,gBAAI/B,EAAQ,MAAM+B,CAAc,KAAKzZ,EAAKyZ,CAAc;AACpD,qBAAO;AAAA,UAE/B;AACgB,iBAAO;AAAA,QACV;AAAA,MAEL,KAAK5C,EAAW,aAAa;AACzB,eAAIa,EAAQ,qBACD,SAAkB1V,GAAM;AAC3B,cAAIsa,IAAW5E,EAAQ,mBAAmB1V,CAAI;AAC9C,iBAAOsa,KAAY,QAAQtc,EAAKsc,CAAQ;AAAA,QAC3C,IAEE,SAAkBta,GAAM;AAG3B,mBAFIoL,IAAWsK,EAAQ,YAAY1V,CAAI,GACnCua,GACKna,IAAI,GAAGA,IAAIgL,EAAS,QAAQhL,KAAK;AACtC,gBAAIqX,IAAiBrM,EAAShL,CAAC;AAC/B,gBAAImX,EAAOvX,GAAMyX,CAAc;AAC3B;AACJ,YAAI/B,EAAQ,MAAM+B,CAAc,MAC5B8C,IAAc9C;AAAA,UAEtC;AACgB,iBAAO,CAAC,CAAC8C,KAAevc,EAAKuc,CAAW;AAAA,QAC3C;AAAA,MAEL,KAAK1F,EAAW,aAAa,WAAW;AACpC,YAAIlD,EAAS,aAAa,QAAQA,EAAS,cAAc;AACrD,gBAAM,IAAI,MAAM,oEAAoE;AAExF,eAAO3T;AAAA,MACnB;AAAA,IACA;AAAA,EACA;AACA,SAAA+b,GAAA,yBAAiCI;;;;;;ACjJjC,MAAI/X,IAAmBjE,KAAQA,EAAK,oBAAqB,OAAO,SAAU,SAASkE,GAAG,GAAGE,GAAGC,GAAI;AAC5F,IAAIA,MAAO,WAAWA,IAAKD;AAC3B,QAAIE,IAAO,OAAO,yBAAyB,GAAGF,CAAC;AAC/C,KAAI,CAACE,MAAS,SAASA,IAAO,CAAC,EAAE,aAAaA,EAAK,YAAYA,EAAK,mBAClEA,IAAO,EAAE,YAAY,IAAM,KAAK,WAAW;AAAE,aAAO,EAAEF,CAAC;AAAA,MAAM,IAE/D,OAAO,eAAeF,GAAGG,GAAIC,CAAI;AAAA,EACpC,IAAK,SAASJ,GAAG,GAAGE,GAAGC,GAAI;AACxB,IAAIA,MAAO,WAAWA,IAAKD,IAC3BF,EAAEG,CAAE,IAAI,EAAED,CAAC;AAAA,EACf,IACIqB,IAAsBzF,KAAQA,EAAK,uBAAwB,OAAO,SAAU,SAASkE,GAAG/I,GAAG;AAC3F,WAAO,eAAe+I,GAAG,WAAW,EAAE,YAAY,IAAM,OAAO/I,GAAG;AAAA,EACtE,IAAK,SAAS+I,GAAG/I,GAAG;AAChB,IAAA+I,EAAE,UAAa/I;AAAA,EACnB,IACIuK,IAAgB1F,KAAQA,EAAK,gBAAiB,SAAUmB,GAAK;AAC7D,QAAIA,KAAOA,EAAI,WAAY,QAAOA;AAClC,QAAIxD,IAAS,CAAE;AACf,QAAIwD,KAAO,KAAM,UAASiD,KAAKjD,EAAK,CAAIiD,MAAM,aAAa,OAAO,UAAU,eAAe,KAAKjD,GAAKiD,CAAC,KAAGH,EAAgBtG,GAAQwD,GAAKiD,CAAC;AACvI,WAAAqB,EAAmB9H,GAAQwD,CAAG,GACvBxD;AAAA,EACV,GACGuD,IAAmBlB,KAAQA,EAAK,mBAAoB,SAAUmB,GAAK;AACnE,WAAQA,KAAOA,EAAI,aAAcA,IAAM,EAAE,SAAWA,EAAK;AAAA,EAC5D;AACD,SAAO,eAAeiX,GAAS,cAAc,EAAE,OAAO,IAAM,GAC5DA,EAAA,eAAuBA,EAAqB,gBAAGA,EAAe,UAAG;AACjE,MAAI1B,IAAaxW,IACbgX,IAAahW,EAAgBuD,IAAmB,GAChD8V,IAAY7U,EAAaK,IAAoB,GAC7CsW,IAAe3J,GAAuB,GACtC4I,IAAkB3I,GAA2C;AAQjE,WAAS0F,EAAQ7E,GAAU/V,GAAS+b,GAAS;AACzC,QAAI3Z,IAAOyc,EAAc9I,GAAU/V,GAAS+b,CAAO;AACnD,eAAW8B,EAAgB,aAAazb,GAAMpC,EAAQ,OAAO;AAAA,EACjE;AACA2a,EAAAA,EAAA,UAAkBC;AAClB,WAASiE,EAAc9I,GAAU/V,GAAS+b,GAAS;AAC/C,QAAItD,IAAQ,OAAO1C,KAAa,eAAekD,EAAW,OAAOlD,CAAQ,IAAIA;AAC7E,WAAOqH,EAAa3E,GAAOzY,GAAS+b,CAAO;AAAA,EAC/C;AACApB,EAAAA,EAAA,gBAAwBkE;AACxB,WAASC,EAAoBxa,GAAG;AAC5B,WAAQA,EAAE,SAAS2U,EAAW,aAAa,WACtC3U,EAAE,SAAS,WACP,MAAM,QAAQA,EAAE,IAAI,KACjBA,EAAE,KAAK,KAAK,SAAUU,GAAM;AAAE,aAAOA,EAAK,KAAK8Z,CAAmB;AAAA,IAAE,CAAE;AAAA,EACtF;AACA,MAAIC,IAAmB,EAAE,MAAM9F,EAAW,aAAa,WAAY,GAC/D+F,IAA4B;AAAA,IAC5B,MAAM;AAAA,EACT,GACGC,IAAc;AAAA,IACd,MAAMhG,EAAW,aAAa;AAAA,IAC9B,MAAM;AAAA,IACN,MAAM;AAAA,EACT;AAKD,WAASiG,EAAWzG,GAAOnT,GAAIyW,GAAS;AAOpC,aANIjC,IAAUxU,EAAG,SAEb6Z,IAAa,CAAC,CAAoDpD,GAAQ,MAAM,SAAUqD,GAAG;AAC7F,UAAIza,IAASmV,EAAQ,MAAMsF,CAAC,KAAKtF,EAAQ,UAAUsF,CAAC;AACpD,aAAOA,MAAMvB,EAAgB,uBAAwBlZ,KAAUmV,EAAQ,MAAMnV,CAAM;AAAA,IAC3F,CAAK,GACQiQ,IAAK,GAAGyK,IAAU5G,GAAO7D,IAAKyK,EAAQ,QAAQzK,KAAM;AACzD,UAAItQ,IAAI+a,EAAQzK,CAAE;AAClB,UAAI,EAAAtQ,EAAE,SAAS,SACPwY,EAAU,aAAaxY,EAAE,CAAC,CAAC,KAC/BA,EAAE,CAAC,EAAE,SAAS2U,EAAW,aAAa,YAGrC,KAAIkG,KAAc,CAAC7a,EAAE,KAAKwa,CAAmB;AAC9C,QAAAxa,EAAE,QAAQya,CAAgB;AAAA;AAG1B;AAEJ,MAAAza,EAAE,QAAQ2a,CAAW;AAAA,IAC7B;AAAA,EACA;AACA,WAAS7B,EAAa3E,GAAOzY,GAAS+b,GAAS;AAC3C,QAAIzW;AACJ,IAAAmT,EAAM,QAAQqE,EAAU,OAAO,GAC/Bf,KAAWzW,IAAKtF,EAAQ,aAAa,QAAQsF,MAAO,SAASA,IAAKyW;AAClE,QAAIuD,IAAiB,MAAM,QAAQvD,CAAO,GACtCwD,IAAexD,MAAY,MAAM,QAAQA,CAAO,IAAIA,IAAU,CAACA,CAAO;AAE1E,QAAI/b,EAAQ,qBAAqB;AAC7B,MAAAkf,EAAWzG,GAAOzY,GAASuf,CAAY;AAAA,aAElC9G,EAAM,KAAK,SAAUnU,GAAG;AAAE,aAAOA,EAAE,SAAS,SAASwY,EAAU,aAAaxY,EAAE,CAAC,CAAC;AAAA,IAAE,CAAE;AACzF,YAAM,IAAI,MAAM,mFAAmF;AAEvG,QAAIkb,IAAyB,IACzBC,IAAQhH,EACP,IAAI,SAAUiH,GAAO;AACtB,UAAIA,EAAM,UAAU,GAAG;AACnB,YAAIC,IAAQD,EAAM,CAAC,GAAGE,IAASF,EAAM,CAAC;AACtC,QAAIC,EAAM,SAAS1G,EAAW,aAAa,UACvC0G,EAAM,SAAS,YAGVL,KACLM,EAAO,SAAS3G,EAAW,aAAa,aACxCyG,EAAM,CAAC,IAAIV,KAENY,EAAO,SAAS3G,EAAW,aAAa,YAC7C2G,EAAO,SAAS3G,EAAW,aAAa,aACxCuG,IAAyB;AAAA,MAEzC;AACQ,aAAOK,EAAaH,GAAO1f,GAASuf,CAAY;AAAA,IACnD,CAAA,EACI,OAAOO,GAAarG,EAAW,QAAQ,SAAS;AACrD,WAAAgG,EAAM,yBAAyBD,GACxBC;AAAA,EACX;AACA9E,EAAAA,EAAA,eAAuByC;AACvB,WAASyC,EAAaH,GAAO1f,GAAS+b,GAAS;AAC3C,QAAIzW;AACJ,WAAOoa,EAAM,OAAO,SAAUhB,GAAUhD,GAAM;AAC1C,aAAOgD,MAAajF,EAAW,QAAQ,YACjCA,EAAW,QAAQ,gBACfmF,EAAa,wBAAwBF,GAAUhD,GAAM1b,GAAS+b,GAASqB,CAAY;AAAA,IAChG,IAAG9X,IAAKtF,EAAQ,cAAc,QAAQsF,MAAO,SAASA,IAAKmU,EAAW,QAAQ,QAAQ;AAAA,EAC3F;AACA,WAASqG,EAAYhO,GAAGxO,GAAG;AACvB,WAAIA,MAAMmW,EAAW,QAAQ,aAAa3H,MAAM2H,EAAW,QAAQ,WACxD3H,IAEPA,MAAM2H,EAAW,QAAQ,aAAanW,MAAMmW,EAAW,QAAQ,WACxDnW,IAEJ,SAAiBc,GAAM;AAC1B,aAAO0N,EAAE1N,CAAI,KAAKd,EAAEc,CAAI;AAAA,IAC3B;AAAA,EACL;;;;;;ACpJA,QAAIoC,IAAmBjE,MAAQA,GAAK,oBAAqB,OAAO,SAAU,SAASkE,GAAGC,GAAGC,GAAGC,GAAI;AAC5F,MAAIA,MAAO,WAAWA,IAAKD;AAC3B,UAAIE,IAAO,OAAO,yBAAyBH,GAAGC,CAAC;AAC/C,OAAI,CAACE,MAAS,SAASA,IAAO,CAACH,EAAE,aAAaG,EAAK,YAAYA,EAAK,mBAClEA,IAAO,EAAE,YAAY,IAAM,KAAK,WAAW;AAAE,eAAOH,EAAEC,CAAC;AAAA,QAAM,IAE/D,OAAO,eAAeF,GAAGG,GAAIC,CAAI;AAAA,IACpC,IAAK,SAASJ,GAAGC,GAAGC,GAAGC,GAAI;AACxB,MAAIA,MAAO,WAAWA,IAAKD,IAC3BF,EAAEG,CAAE,IAAIF,EAAEC,CAAC;AAAA,IACf,IACIqB,IAAsBzF,MAAQA,GAAK,uBAAwB,OAAO,SAAU,SAASkE,GAAG/I,GAAG;AAC3F,aAAO,eAAe+I,GAAG,WAAW,EAAE,YAAY,IAAM,OAAO/I,GAAG;AAAA,IACtE,IAAK,SAAS+I,GAAG/I,GAAG;AAChB,MAAA+I,EAAE,UAAa/I;AAAA,IACnB,IACIuK,IAAgB1F,MAAQA,GAAK,gBAAiB,SAAUmB,GAAK;AAC7D,UAAIA,KAAOA,EAAI,WAAY,QAAOA;AAClC,UAAIxD,IAAS,CAAE;AACf,UAAIwD,KAAO,KAAM,UAASiD,KAAKjD,EAAK,CAAIiD,MAAM,aAAa,OAAO,UAAU,eAAe,KAAKjD,GAAKiD,CAAC,KAAGH,EAAgBtG,GAAQwD,GAAKiD,CAAC;AACvI,aAAAqB,EAAmB9H,GAAQwD,CAAG,GACvBxD;AAAA,IACV,GACGuD,IAAmBlB,MAAQA,GAAK,mBAAoB,SAAUmB,GAAK;AACnE,aAAQA,KAAOA,EAAI,aAAcA,IAAM,EAAE,SAAWA,EAAK;AAAA,IAC5D;AACD,WAAO,eAAc5G,GAAU,cAAc,EAAE,OAAO,IAAM,GAC5DA,EAAkB,UAAAA,EAAA,UAAkBA,EAAkB,UAAAA,EAAA,KAAaA,EAAoB,YAAAA,EAAA,YAAoBA,mBAAyBA,EAAwB,gBAAAA,EAAA,iBAAyBA,EAAkB,UAAA;AACvM,QAAIijB,IAAW9X,sBAAgC,GAC3CwR,IAAahW,EAAgBuD,IAAmB,GAChDoU,IAAe9S,GAAuB,GACtCuV,IAAkB5I,GAA2C,GAC7D+K,IAAgB,SAAUlO,GAAGxO,GAAG;AAAE,aAAOwO,MAAMxO;AAAA,IAAI,GACnD2c,IAAiB;AAAA,MACjB,SAASF;AAAA,MACT,QAAQC;AAAA,IACX;AACD,aAASE,EAAqBlgB,GAAS;AACnC,UAAIsF,GAAIK,GAAIwa,GAAIC,GAKZrT,IAAO/M,KAAmDigB;AAE9D,cAAC3a,IAAKyH,EAAK,aAAa,QAAQzH,MAAO,WAAeyH,EAAK,UAAUgT,KAEpEpa,IAAKoH,EAAK,YAAY,QAAQpH,MAAO,WAAeoH,EAAK,UAAUqT,KAAMD,IAAKpT,EAAK,aAAa,QAAQoT,MAAO,SAAS,SAASA,EAAG,YAAY,QAAQC,MAAO,SAASA,IAAKJ,IACvKjT;AAAA,IACX;AACA,aAASsT,EAAYzE,GAAM;AACvB,aAAO,SAAoB7F,GAAU/V,GAAS+b,GAAS;AACnD,YAAIhP,IAAOmT,EAAqBlgB,CAAO;AACvC,eAAO4b,EAAK7F,GAAUhJ,GAAMgP,CAAO;AAAA,MACtC;AAAA,IACL;AAIA,IAAAjf,EAAA,UAAkBujB,EAAYjF,EAAa,OAAO,GAClDte,EAAA,iBAAyBujB,EAAYjF,EAAa,aAAa,GAC/Dte,EAAA,gBAAwBujB,EAAYjF,EAAa,YAAY;AAC7D,aAASkF,EAAgBC,GAAY;AACjC,aAAO,SAAgBd,GAAOe,GAAUxgB,GAAS;AAC7C,YAAI+M,IAAOmT,EAAqBlgB,CAAO;AACvC,QAAI,OAAOyf,KAAU,eACjBA,QAAYrE,EAAa,eAAeqE,GAAO1S,GAAMyT,CAAQ;AAEjE,YAAIC,IAAmBC,EAAeF,GAAUzT,EAAK,SAAS0S,EAAM,sBAAsB;AAC1F,eAAOc,EAAWd,GAAOgB,GAAkB1T,CAAI;AAAA,MAClD;AAAA,IACL;AACA,aAAS2T,EAAeC,GAAO7G,GAAS0F,GAAwB;AAC5D,aAAIA,MAA2B,WAAUA,IAAyB,KAK9DA,MACAmB,IAAQC,EAAmBD,GAAO7G,CAAO,IAEtC,MAAM,QAAQ6G,CAAK,IACpB7G,EAAQ,cAAc6G,CAAK,IAC3B7G,EAAQ,YAAY6G,CAAK;AAAA,IACnC;AACA,IAAA7jB,EAAA,iBAAyB4jB;AACzB,aAASE,EAAmBxc,GAAM0V,GAAS;AAIvC,eAFI6G,IAAQ,MAAM,QAAQvc,CAAI,IAAIA,EAAK,MAAM,CAAC,IAAI,CAACA,CAAI,GACnDyc,IAAcF,EAAM,QACfnc,IAAI,GAAGA,IAAIqc,GAAarc,KAAK;AAClC,YAAIsc,QAAmBjD,EAAgB,iBAAiB8C,EAAMnc,CAAC,GAAGsV,CAAO;AACzE,QAAA6G,EAAM,KAAK,MAAMA,GAAOG,CAAY;AAAA,MAC5C;AACI,aAAOH;AAAA,IACX;AAWA,IAAA7jB,EAAoB,YAAAwjB,EAAgB,SAAUb,GAAOkB,GAAO3gB,GAAS;AACjE,aAAOyf,MAAUhG,EAAW,QAAQ,aAAa,CAACkH,KAASA,EAAM,WAAW,IACtE,CAAA,IACA3gB,EAAQ,QAAQ,QAAQyf,GAAOkB,CAAK;AAAA,IAC9C,CAAC,GAUD7jB,EAAoB,YAAAwjB,EAAgB,SAAUb,GAAOkB,GAAO3gB,GAAS;AACjE,aAAOyf,MAAUhG,EAAW,QAAQ,aAAa,CAACkH,KAASA,EAAM,WAAW,IACtE,OACA3gB,EAAQ,QAAQ,QAAQyf,GAAOkB,CAAK;AAAA,IAC9C,CAAC;AAYD,aAASxD,EAAG/Y,GAAMqb,GAAOzf,GAAS;AAC9B,UAAI+M,IAAOmT,EAAqBlgB,CAAO;AACvC,cAAQ,OAAOyf,KAAU,aAAaA,QAAYrE,EAAa,SAASqE,GAAO1S,CAAI,GAAG3I,CAAI;AAAA,IAC9F;AACA,IAAAtH,EAAA,KAAaqgB,GAKbrgB,EAAkB,UAAAA,EAAQ;AAG1B,QAAIuhB,IAAanJ,GAAsC;AACvD,WAAO,eAAepY,GAAS,WAAW,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAOuhB,EAAW;AAAA,IAAU,EAAA,CAAE,GAC/G,OAAO,eAAevhB,GAAS,WAAW,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAOuhB,EAAW;AAAA,IAAU,EAAA,CAAE,GAC/G,OAAO,eAAevhB,GAAS,WAAW,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAOuhB,EAAW;AAAA,IAAU,EAAA,CAAE;AAAA;;;;;UCvJ/G,OAAO,eAAe0C,IAAS,cAAc,EAAE,OAAO,IAAM;AAC5D,WAASC,EAASxV,GAAK;AACnB,WAAOA,EAAIA,EAAI,SAAS,CAAC;AAAA,EAC7B;AACA,SAAAuV,GAAA,UAAkBC;;;;;;ACJlB,MAAIvd,IAAmBlB,MAAQA,GAAK,mBAAoB,SAAUmB,GAAK;AACnE,WAAQA,KAAOA,EAAI,aAAcA,IAAM,EAAE,SAAWA,EAAK;AAAA,EAC5D;AACD,SAAO,eAAeud,IAAS,cAAc,EAAE,OAAO,IAAM;AAC5D,MAAIpd,IAASJ,sBAAuC;AACpD,WAASU,EAAMtG,GAAM;AACjB,WAAOA,KAAQA,EAAK,aAAagG,EAAO,QAAQ;AAAA,EACpD;AACA,WAASsL,EAAkB/K,GAAMgB,GAAM;AACnC,WAAOjB,EAAMC,CAAI,IAAIA,EAAK,aAAagB,CAAI,IAAI;AAAA,EACnD;AACA,WAASiK,EAAQjL,GAAM;AACnB,YAASA,KAAQA,EAAK,cAAe,IAAI,YAAa;AAAA,EAC1D;AACA,WAAS4K,EAAYnR,GAAM;AACvB,WAAOA,KAAQA,EAAK;AAAA,EACxB;AACA,WAASoR,EAAUpR,GAAM;AACrB,WAAOA,IAAOA,EAAK,aAAa;AAAA,EACpC;AACA,WAAS6Q,EAAQ7Q,GAAM;AACnB,WAAOA,EAAK;AAAA,EAChB;AACA,WAASwU,EAAcxE,GAAO;AAO1B,aANI2E,IAAM3E,EAAM,QACZhQ,GACA4U,GACAyO,GAGG,EAAE1O,IAAM,MAAI;AAKf,WAJA3U,IAAO4U,IAAW5E,EAAM2E,CAAG,GAE3B3E,EAAM2E,CAAG,IAAI,MACb0O,IAAU,IACHzO,KAAU;AACb,YAAI5E,EAAM,QAAQ4E,CAAQ,IAAI,IAAI;AAC9B,UAAAyO,IAAU,IACVrT,EAAM,OAAO2E,GAAK,CAAC;AACnB;AAAA,QAChB;AACY,QAAAC,IAAWxD,EAAUwD,CAAQ;AAAA,MACzC;AAEQ,MAAIyO,MACArT,EAAM2E,CAAG,IAAI3U;AAAA,IAEzB;AACI,WAAOgQ;AAAA,EACX;AACA,WAAS4C,EAAUE,GAAMgQ,GAAO;AAC5B,WAAOA,EAAM,KAAK,SAAUvc,GAAM;AAC9B,aAAOD,EAAMC,CAAI,IAAIuM,EAAKvM,CAAI,KAAKqM,EAAUE,GAAM3B,EAAY5K,CAAI,CAAC,IAAI;AAAA,IAChF,CAAK;AAAA,EACL;AACA,WAAS8K,EAAYrR,GAAM;AACvB,QAAI8G,IAASsK,EAAUpR,CAAI;AAC3B,WAAO8G,IAASqK,EAAYrK,CAAM,IAAI,CAAE;AAAA,EAC5C;AACA,WAASyK,EAAUhL,GAAMgB,GAAM;AAC3B,WAAO+J,EAAkB/K,GAAMgB,CAAI,MAAM;AAAA,EAC7C;AACA,WAASoL,EAAQG,GAAMgQ,GAAO;AAE1B,aADIvc,IAAO,MACFI,IAAI,GAAGoY,IAAkD+D,GAAM,QAAQnc,IAAIoY,KAAK,CAACxY,GAAMI,KAAK;AACjG,UAAIpH,IAAKujB,EAAMnc,CAAC;AAChB,UAAImM,EAAKvT,CAAE;AACP,QAAAgH,IAAOhH;AAAA,WAEN;AACD,YAAImJ,IAASyI,EAAY5R,CAAE;AAC3B,QAAImJ,KAAUA,EAAO,SAAS,MAC1BnC,IAAOoM,EAAQG,GAAMpK,CAAM;AAAA,MAE3C;AAAA,IACA;AACI,WAAOnC;AAAA,EACX;AACA,WAASsM,EAAQC,GAAM9C,GAAO;AAE1B,aADI3N,IAAS,CAAE,GACNsE,IAAI,GAAG+U,IAAI1L,EAAM,QAAQrJ,IAAI+U,GAAG/U;AACrC,UAAKL,EAAM0J,EAAMrJ,CAAC,CAAC,GAEnB;AAAA,QAAImM,EAAK9C,EAAMrJ,CAAC,CAAC,KACbtE,EAAO,KAAK2N,EAAMrJ,CAAC,CAAC;AACxB,YAAI+B,IAASyI,EAAYnB,EAAMrJ,CAAC,CAAC;AACjC,QAAI+B,MACArG,IAASA,EAAO,OAAOwQ,EAAQC,GAAMpK,CAAM,CAAC;AAAA;AAEpD,WAAOrG;AAAA,EACX;AACA,SAAA+gB,GAAA,UAAkB;AAAA,IACd,OAAO9c;AAAA,IACP,mBAAmBgL;AAAA,IACnB,SAASE;AAAA,IACT,aAAaL;AAAA,IACb,WAAWC;AAAA,IACX,SAASP;AAAA,IACT,eAAe2D;AAAA,IACf,WAAW5B;AAAA,IACX,aAAavB;AAAA,IACb,WAAWE;AAAA,IACX,SAASoB;AAAA,IACT,SAASE;AAAA,EACZ;;;;;UCxGD,OAAO,eAAeyQ,IAAS,cAAc,EAAE,OAAO,IAAM;AAC5D,MAAIC;AAAA;AAAA,IAAyB,WAAY;AACrC,eAASA,EAAQC,GAAiBC,GAAM;AACpC,QAAID,MAAoB,WAAUA,IAAkB,KACpD,KAAK,kBAAkBA,GACnB,MAAM,QAAQC,CAAI,IAClB,KAAK,WAAWA,EAAK,OAAO,SAAUC,GAAKjT,GAAK;AAC5C,iBAAOiT,EAAI,IAAIjT,EAAI,YAAW,CAAE,EAAE,IAAIA,EAAI,YAAW,CAAE,EAAE,IAAIA,CAAG;AAAA,QAChF,GAAe,oBAAI,IAAG,CAAE,IAGZ,KAAK,WAAW,CAAC,QAAQ,QAAQ,MAAM,OAAO,SAAS,MAAM,OAAO,SAAS,QAAQ,QAAQ,SAAS,UAAU,SAAS,KAAK,EAAE,OAAO,SAAUiT,GAAKjT,GAAK;AACvJ,iBAAOiT,EAAI,IAAIjT,EAAI,YAAW,CAAE,EAAE,IAAIA,EAAI,YAAW,CAAE,EAAE,IAAIA,CAAG;AAAA,QAChF,GAAe,oBAAI,IAAG,CAAE;AAAA,MAExB;AACI,aAAA8S,EAAQ,UAAU,aAAa,SAAU9S,GAAKkT,GAAOC,GAAW;AAC5D,YAAIJ,IAAkB,KAAK,iBACvBK,IAAgBL,KAAmBG,KAAS,CAACA,EAAM,SAAS,GAAG,IAAK,MAAM,IAC1EG,IAAeN,IAAkB,GAAG,OAAOK,GAAc,GAAG,IAAI;AACpE,eAAO,KAAK,cAAcpT,EAAI,YAAW,CAAE,IAAI,IAAI,OAAOA,CAAG,EAAE,OAAOkT,CAAK,EAAE,OAAOG,GAAc,GAAG,IAAI,IAAI,OAAOrT,CAAG,EAAE,OAAOkT,GAAO,GAAG,EAAE,OAAOC,GAAW,IAAI,EAAE,OAAOnT,GAAK,GAAG;AAAA,MACtL,GACD8S,EAAQ,UAAU,gBAAgB,SAAU9S,GAAK;AAC7C,eAAO,KAAK,SAAS,IAAIA,CAAG;AAAA,MAC/B,GACM8S;AAAA,IACX;;AACA,SAAAD,GAAA,UAAkBC;;;;;;AC3BlB,MAAIje,IAAaZ,MAAQA,GAAK,aAAe,2BAAY;AACrD,QAAIa,IAAgB,SAAUC,GAAGC,GAAG;AAChC,aAAAF,IAAgB,OAAO,kBAClB,EAAE,WAAW,CAAA,eAAgB,SAAS,SAAUC,GAAGC,GAAG;AAAE,QAAAD,EAAE,YAAYC;AAAA,MAAE,KACzE,SAAUD,GAAGC,GAAG;AAAE,iBAASC,KAAKD,EAAG,CAAI,OAAO,UAAU,eAAe,KAAKA,GAAGC,CAAC,MAAGF,EAAEE,CAAC,IAAID,EAAEC,CAAC;AAAA,MAAI,GAC9FH,EAAcC,GAAGC,CAAC;AAAA,IAC5B;AACD,WAAO,SAAUD,GAAGC,GAAG;AACnB,UAAI,OAAOA,KAAM,cAAcA,MAAM;AACjC,cAAM,IAAI,UAAU,yBAAyB,OAAOA,CAAC,IAAI,+BAA+B;AAC5F,MAAAF,EAAcC,GAAGC,CAAC;AAClB,eAASE,IAAK;AAAE,aAAK,cAAcH;AAAA,MAAE;AACrC,MAAAA,EAAE,YAAYC,MAAM,OAAO,OAAO,OAAOA,CAAC,KAAKE,EAAG,YAAYF,EAAE,WAAW,IAAIE,EAAE;AAAA,IACpF;AAAA,EACL,EAAI,GACAC,IAAmBlB,MAAQA,GAAK,mBAAoB,SAAUmB,GAAK;AACnE,WAAQA,KAAOA,EAAI,aAAcA,IAAM,EAAE,SAAWA,EAAK;AAAA,EAC5D;AACD,SAAO,eAAe+D,IAAS,cAAc,EAAE,OAAO,IAAM;AAC5D,MAAIjF,IAAOC,GAAa,GACpBmB,IAASH,sBAAiC,GAC1CI,IAASJ,sBAAiC,GAK1Cme;AAAA;AAAA,IAA0B,SAAU7d,GAAQ;AAC5C,MAAAZ,EAAUye,GAAU7d,CAAM;AAC1B,eAAS6d,EAAS5d,GAASrB,GAAYC,GAAO;AAC1C,QAAID,MAAe,WAAUA,IAAa;AAC1C,YAAIE,IAAQkB,EAAO,KAAK,MAAMpB,GAAYC,CAAK,KAAK;AAKpD,eAAAC,EAAM,WAAWgB,EAAO,QAAQ,WAChChB,EAAM,aAAa,IACnBA,EAAM,WAAWmB,GACVnB;AAAA,MACf;AACI,aAAA+e,EAAS,UAAU,QAAQ,WAAY;AACnC,eAAO,IAAIA,EAAS,KAAK,UAAU,IAAI;AAAA,MAC1C,GACD,OAAO,eAAeA,EAAS,WAAW,WAAW;AAAA,QACjD,KAAK,WAAY;AACb,iBAAO,KAAK;AAAA,QACf;AAAA;AAAA;AAAA;AAAA,QAID,KAAK,SAAUna,GAAM;AACjB,eAAK,WAAWA,GAChB,KAAK,kBAAkB,QACvB,KAAK,eAAe;AAAA,QACvB;AAAA,QACD,YAAY;AAAA,QACZ,cAAc;AAAA,MACtB,CAAK,GACD,OAAO,eAAema,EAAS,WAAW,kBAAkB;AAAA;AAAA;AAAA;AAAA,QAIxD,KAAK,WAAY;AACb,iBAAI,KAAK,oBAAoB,SAClB,KAAK,mBAChB,KAAK,kBAAkBC,EAAS,KAAK,OAAO,GACrC,KAAK;AAAA,QACf;AAAA,QACD,YAAY;AAAA,QACZ,cAAc;AAAA,MACtB,CAAK,GACD,OAAO,eAAeD,EAAS,WAAW,eAAe;AAAA;AAAA;AAAA;AAAA,QAIrD,KAAK,WAAY;AACb,iBAAI,KAAK,iBAAiB,SACf,KAAK,gBAChB,KAAK,eAAeC,EAAS,KAAK,IAAI,GAC/B,KAAK;AAAA,QACf;AAAA,QACD,YAAY;AAAA,QACZ,cAAc;AAAA,MACtB,CAAK,GACD,OAAO,eAAeD,EAAS,WAAW,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,QAK9C,KAAK,WAAY;AACb,qBAAWpf,EAAK,QAAQ,KAAK,OAAO;AAAA,QACvC;AAAA,QACD,YAAY;AAAA,QACZ,cAAc;AAAA,MACtB,CAAK,GACD,OAAO,eAAeof,EAAS,WAAW,gBAAgB;AAAA;AAAA;AAAA;AAAA;AAAA,QAKtD,KAAK,WAAY;AACb,iBAAO,iBAAiB,KAAK,KAAK,OAAO;AAAA,QAC5C;AAAA,QACD,YAAY;AAAA,QACZ,cAAc;AAAA,MACtB,CAAK,GACDA,EAAS,UAAU,WAAW,WAAY;AACtC,eAAO,KAAK;AAAA,MACf,GACMA;AAAA,IACX,EAAEhe,EAAO,OAAO;AAAA;AAChB,EAAA6D,GAAA,UAAkBma;AAIlB,WAASC,EAASpa,GAAM;AAIpB,aAHIjD,IAAI,GACJsd,GACAC,GACGvd,KAAK,KAAKA,IAAIiD,EAAK;AACtB,MAAI,KAAK,KAAKA,EAAKjD,CAAC,CAAC,MACbsd,MAAa,UACbA,IAAWtd,GACXA,IAAIiD,EAAK,WAGTsa,IAASvd,GACTA,IAAI,UAGRsd,MAAa,SACbtd,MAEAA;AAER,IAAIsd,MAAa,WACbA,IAAW,IACXC,MAAW,WACXA,IAASta,EAAK,SAAS;AAC3B,QAAIua,IAAkBF,IAAW,KAAK,YAAY,KAAKra,EAAKqa,IAAW,CAAC,CAAC,GACrEG,IAAmBF,IAAUta,EAAK,SAAS,KAAM,YAAY,KAAKA,EAAKsa,IAAS,CAAC,CAAC;AACtF,YAAQC,IAAkB,MAAM,MAAMva,EAAK,MAAMqa,GAAUC,IAAS,CAAC,KAAKE,IAAmB,MAAM;AAAA,EACvG;;;;;;;AC9IA,MAAI9e,IAAaZ,KAAQA,EAAK,aAAe,2BAAY;AACrD,QAAIa,IAAgB,SAAUC,GAAGC,GAAG;AAChC,aAAAF,IAAgB,OAAO,kBAClB,EAAE,WAAW,CAAA,eAAgB,SAAS,SAAUC,GAAGC,GAAG;AAAE,QAAAD,EAAE,YAAYC;AAAA,MAAE,KACzE,SAAUD,GAAGC,GAAG;AAAE,iBAASC,KAAKD,EAAG,CAAI,OAAO,UAAU,eAAe,KAAKA,GAAGC,CAAC,MAAGF,EAAEE,CAAC,IAAID,EAAEC,CAAC;AAAA,MAAI,GAC9FH,EAAcC,GAAGC,CAAC;AAAA,IAC5B;AACD,WAAO,SAAUD,GAAGC,GAAG;AACnB,UAAI,OAAOA,KAAM,cAAcA,MAAM;AACjC,cAAM,IAAI,UAAU,yBAAyB,OAAOA,CAAC,IAAI,+BAA+B;AAC5F,MAAAF,EAAcC,GAAGC,CAAC;AAClB,eAASE,IAAK;AAAE,aAAK,cAAcH;AAAA,MAAE;AACrC,MAAAA,EAAE,YAAYC,MAAM,OAAO,OAAO,OAAOA,CAAC,KAAKE,EAAG,YAAYF,EAAE,WAAW,IAAIE,EAAE;AAAA,IACpF;AAAA,EACL,EAAI,GACAa,IAAY9B,KAAQA,EAAK,YAAa,WAAY;AAClD,WAAA8B,IAAW,OAAO,UAAU,SAASC,GAAG;AACpC,eAASC,GAAGC,IAAI,GAAGC,IAAI,UAAU,QAAQD,IAAIC,GAAGD,KAAK;AACjD,QAAAD,IAAI,UAAUC,CAAC;AACf,iBAASjB,KAAKgB,EAAG,CAAI,OAAO,UAAU,eAAe,KAAKA,GAAGhB,CAAC,MAC1De,EAAEf,CAAC,IAAIgB,EAAEhB,CAAC;AAAA,MAC1B;AACQ,aAAOe;AAAA,IACV,GACMD,EAAS,MAAM,MAAM,SAAS;AAAA,EACxC,GACGmY,IAAiBja,KAAQA,EAAK,iBAAkB,SAAUka,GAAIC,GAAMC,GAAM;AAC1E,QAAIA,KAAQ,UAAU,WAAW,EAAG,UAASnY,IAAI,GAAGoY,IAAIF,EAAK,QAAQG,GAAIrY,IAAIoY,GAAGpY;AAC5E,OAAIqY,KAAM,EAAErY,KAAKkY,QACRG,MAAIA,IAAK,MAAM,UAAU,MAAM,KAAKH,GAAM,GAAGlY,CAAC,IACnDqY,EAAGrY,CAAC,IAAIkY,EAAKlY,CAAC;AAGtB,WAAOiY,EAAG,OAAOI,KAAM,MAAM,UAAU,MAAM,KAAKH,CAAI,CAAC;AAAA,EAC1D,GACGjZ,IAAmBlB,KAAQA,EAAK,mBAAoB,SAAUmB,GAAK;AACnE,WAAQA,KAAOA,EAAI,aAAcA,IAAM,EAAE,SAAWA,EAAK;AAAA,EAC5D;AACD,SAAO,eAAenC,GAAS,cAAc,EAAE,OAAO,IAAM,GAC5DA,EAAA,QAAgBA,EAAA,aAAqB;AACrC,MAAI2gB,IAAezf,GAAqB,GACpCD,IAAOiB,EAAgBuD,IAAa,GACpCmb,IAAS1e,sBAAkC,GAC3C2e,IAAY3e,sBAAqC,GACjD4e,IAAa5e,sBAAsC,GACnD6e,IAAY7e,sBAAoC,GAChDG,IAASH,sBAAiC,GAC1C8e,IAAS9e,sBAAiC,GAC1CI,IAASJ,sBAAiC;AAC9C,WAASnC,EAAO0B,GAAK;AAEjB,WAAO,KAAK,MAAM,KAAK,UAAUR,EAAK,QAAQ,OAAOQ,CAAG,CAAC,CAAC;AAAA,EAC9D;AAEA,MAAIwf,IAAQ,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,UAAU,QAAQ,GAC/DC,IAAQ,CAAC,WAAW,UAAU,MAAM,OAAO,IAAI,GAC/CC,IAAQ,CAAC,YAAY,cAAc,UAAU,UAAU,MAAM,GAC7DC,IAAY,CAAC,SAAS,MAAM,IAAI,GAChCC,IAAW,CAAC,WAAW,WAAW,SAAS,cAAc,MAAM,MAAM,MAAM,QAAQ,OAAO,MAAM,KAAK,OAAO,WAAW,IAAI,GAC3HC,IAAiB,oBAAI,IAAK;AAC9B,WAASC,IAAqB;AAE1B,aADIvlB,IAAO,CAAE,GACJqX,IAAK,GAAGA,IAAK,UAAU,QAAQA;AACpC,MAAArX,EAAKqX,CAAE,IAAI,UAAUA,CAAE;AAS3B,aAPImO,IAAW,SAAUpjB,GAAO;AAC5B,eAASE,IAAQ,GAAGA,IAAQF,EAAM,QAAQE,KAAS;AAC/C,YAAI0H,IAAU5H,EAAME,CAAK;AACzB,QAAAgjB,EAAe,IAAItb,CAAO,GAC1Bsb,EAAe,IAAItb,EAAQ,aAAa;AAAA,MACpD;AAAA,IACK,GACQjC,IAAK,GAAG0d,IAASzlB,GAAM+H,IAAK0d,EAAO,QAAQ1d,KAAM;AACtD,UAAI2d,IAAMD,EAAO1d,CAAE;AACnB,MAAAyd,EAASE,CAAG;AAAA,IACpB;AAAA,EACA;AACA,EAAAH,EAAmBN,GAAOC,GAAOC,GAAOC,GAAWC,CAAQ;AAC3D,MAAIM;AAAA;AAAA,IAA8B,WAAY;AAC1C,eAASA,EAAaC,GAAYC,GAAa;AAC3C,QAAID,MAAe,WAAUA,IAAa,CAAA,IACtCC,MAAgB,WAAUA,IAAc,WAAY;AAAE,iBAAO;AAAA,YACjE,KAAK,OAAO,IAAI,IAAID,CAAU,GAC9B,KAAK,eAAeC;AAAA,MAC5B;AACI,aAAAF,EAAa,UAAU,YAAY,SAAUtb,GAAG;AAC5C,YAAI,KAAK,KAAKA,CAAC;AACX,gBAAM,IAAI,MAAM,gDAAgD,OAAOA,GAAG,kEAAkE,CAAC;AAAA,MAEpJ,GACDsb,EAAa,UAAU,MAAM,SAAUtb,GAAG;AACtC,aAAK,UAAUA,CAAC,GAChB,KAAK,KAAK,IAAIA,CAAC,GACf,KAAK,aAAa,IAAI;AAAA,MACzB,GACDsb,EAAa,UAAU,UAAU,SAAUG,GAAIC,GAAI;AAC/C,aAAK,UAAUA,CAAE,GACjB,KAAK,KAAK,OAAOD,CAAE,GACnB,KAAK,KAAK,IAAIC,CAAE,GAChB,KAAK,aAAa,IAAI;AAAA,MACzB,GACDJ,EAAa,UAAU,SAAS,SAAUtb,GAAG;AACzC,aAAK,KAAK,OAAOA,CAAC,KAAK,KAAK,aAAa,IAAI;AAAA,MAChD,GACDsb,EAAa,UAAU,SAAS,SAAUtb,GAAG;AACzC,aAAK,UAAUA,CAAC,GACZ,KAAK,KAAK,IAAIA,CAAC,IACf,KAAK,KAAK,OAAOA,CAAC,IAElB,KAAK,KAAK,IAAIA,CAAC,GACnB,KAAK,aAAa,IAAI;AAAA,MACzB,GACDsb,EAAa,UAAU,WAAW,SAAUtb,GAAG;AAC3C,eAAO,KAAK,KAAK,IAAIA,CAAC;AAAA,MACzB,GACD,OAAO,eAAesb,EAAa,WAAW,UAAU;AAAA,QACpD,KAAK,WAAY;AACb,iBAAO,KAAK,KAAK;AAAA,QACpB;AAAA,QACD,YAAY;AAAA,QACZ,cAAc;AAAA,MACtB,CAAK,GACDA,EAAa,UAAU,SAAS,WAAY;AACxC,eAAO,KAAK,KAAK,OAAQ;AAAA,MAC5B,GACD,OAAO,eAAeA,EAAa,WAAW,SAAS;AAAA,QACnD,KAAK,WAAY;AACb,iBAAO,MAAM,KAAK,KAAK,KAAK,OAAM,CAAE;AAAA,QACvC;AAAA,QACD,YAAY;AAAA,QACZ,cAAc;AAAA,MACtB,CAAK,GACDA,EAAa,UAAU,WAAW,WAAY;AAC1C,eAAO,MAAM,KAAK,KAAK,KAAK,QAAQ,EAAE,KAAK,GAAG;AAAA,MACjD,GACMA;AAAA,IACX;KAUIK;AAAA;AAAA,IAA6B,SAAUxf,GAAQ;AAC/C,MAAAZ,EAAUogB,GAAaxf,CAAM;AAQ7B,eAASwf,EAAYrR,GAASsR,GAAUC,GAAU9gB,GAAYC,GAAOue,GAASuC,GAAe;AACzF,QAAID,MAAa,WAAUA,IAAW,KAClC9gB,MAAe,WAAUA,IAAa,OACtCwe,MAAY,WAAUA,IAAU,IAAIkB,EAAW,YAC/CqB,MAAkB,WAAUA,IAAgB,CAAA;AAChD,YAAI7gB,IAAQkB,EAAO,KAAK,MAAMpB,GAAYC,CAAK,KAAK;AAmBpD,YAlBAC,EAAM,WAAW4gB,GACjB5gB,EAAM,UAAUse,GAIhBte,EAAM,WAAWgB,EAAO,QAAQ,cAChChB,EAAM,aAAaqP,GACnBrP,EAAM,WAAW4gB,KAAY,IAC7B5gB,EAAM,KAAK2gB,EAAS,MAAM,IAC1B3gB,EAAM,aAAa,CAAE,GACrBA,EAAM,gBAAgB6gB,GACtB7gB,EAAM,YAAY,IAAIqgB;AAAA,UAAaM,EAAS,QAAQA,EAAS,MAAM,MAAM,KAAK,IAAI,CAAA;AAAA,UAAI,SAAUG,GAAW;AAAE,mBAAO9gB,EAAM,aAAa,SAAS8gB,EAAU,SAAU,CAAA;AAAA,UAAI;AAAA;AAAA,QACvK,GACGH,EAAS,OACJC,MACD5gB,EAAM,WAAW,OAAQ,OAAO2gB,EAAS,IAAI,GAAI,KAGrDA,EAAS,SACL,CAACC,GAAU;AACX,cAAIG,IAAM,UAAW,OAAO/gB,EAAM,UAAU,SAAU,GAAE,GAAI;AAC5D,UAAIA,EAAM,WACNA,EAAM,YAAY,IAAI,OAAO+gB,CAAG,IAGhC/gB,EAAM,WAAW+gB;AAAA,QAErC;AAEQ,eAAO/gB;AAAA,MACf;AAMI,aAAA0gB,EAAY,UAAU,iBAAiB,SAAUxJ,GAAM;AACnD,eAAIA,KAAQ,OACD,SAEJ,KAAK,UAAUA,EAAK,QAAQ,MAAM,QAAQ,CAAC,EAAE,QAAQ,QAAQ,GAAI,EAAE,QAAQ,QAAQ;AAAA,CAAI,EAAE,QAAQ,QAAQ,IAAI,EAAE,QAAQ,OAAO,EAAE;AAAA,MAC1I,GAKDwJ,EAAY,UAAU,cAAc,SAAU1lB,GAAM;AAChD,oBAAK,aAAa,KAAK,WAAW,OAAO,SAAUkF,GAAO;AACtD,iBAAOA,MAAUlF;AAAA,QAC7B,CAAS,GACM;AAAA,MACV,GAMD0lB,EAAY,UAAU,gBAAgB,SAAUM,GAASC,GAAS;AAC9D,YAAIhhB,IAAW,KAAK;AACpB,oBAAK,aAAaA,EAAS,IAAI,SAAUC,GAAO;AAC5C,iBAAIA,MAAU8gB,IACHC,IAEJ/gB;AAAA,QACnB,CAAS,GACM;AAAA,MACV,GACD,OAAO,eAAewgB,EAAY,WAAW,WAAW;AAAA,QACpD,KAAK,WAAY;AACb,iBAAO,KAAK,aAAa,KAAK,WAAW,YAAW,IAAK,KAAK;AAAA,QACjE;AAAA,QACD,KAAK,SAAUQ,GAAS;AACpB,eAAK,aAAaA,EAAQ,YAAa;AAAA,QAC1C;AAAA,QACD,YAAY;AAAA,QACZ,cAAc;AAAA,MACtB,CAAK,GACD,OAAO,eAAeR,EAAY,WAAW,aAAa;AAAA,QACtD,KAAK,WAAY;AACb,iBAAO,KAAK,WAAW,YAAa;AAAA,QACvC;AAAA,QACD,YAAY;AAAA,QACZ,cAAc;AAAA,MACtB,CAAK,GACD,OAAO,eAAeA,EAAY,WAAW,iBAAiB;AAAA,QAC1D,KAAK,WAAY;AACb,iBAAO,KAAK,QAAQ,cAAc,KAAK,SAAS;AAAA,QACnD;AAAA,QACD,YAAY;AAAA,QACZ,cAAc;AAAA,MACtB,CAAK,GACD,OAAO,eAAeA,EAAY,WAAW,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA,QAKpD,KAAK,WAAY;AAEb,iBAAI,QAAQ,KAAK,KAAK,UAAU,IACrB;AAAA,IAEJ,KAAK,WAAW,OAAO,SAAUS,GAAKC,GAAK;AAC9C,mBAAQD,KAAOC,EAAI;AAAA,UACtB,GAAE,EAAE;AAAA,QACR;AAAA,QACD,YAAY;AAAA,QACZ,cAAc;AAAA,MACtB,CAAK,GACD,OAAO,eAAeV,EAAY,WAAW,eAAe;AAAA,QACxD,KAAK,WAAY;AACb,iBAAOjiB,EAAO,KAAK,OAAO;AAAA,QAC7B;AAAA,QACD,KAAK,SAAU0B,GAAK;AAChB,cAAIkhB,IAAU,CAAC,IAAI3B,EAAO,QAAQvf,GAAK,IAAI,CAAC;AAC5C,eAAK,aAAakhB;AAAA,QACrB;AAAA,QACD,YAAY;AAAA,QACZ,cAAc;AAAA,MACtB,CAAK,GACD,OAAO,eAAeX,EAAY,WAAW,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,QAKjD,KAAK,WAAY;AACb,iBAAOjiB,EAAO,KAAK,OAAO;AAAA,QAC7B;AAAA,QACD,YAAY;AAAA,QACZ,cAAc;AAAA,MACtB,CAAK,GACD,OAAO,eAAeiiB,EAAY,WAAW,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA,QAK3D,KAAK,WAAY;AACb,cAAIY,IAAe,CAAE,GACjBC,IAAS,CAACD,CAAY;AAC1B,mBAASE,EAAIxmB,GAAM;AACf,gBAAIA,EAAK,aAAagG,EAAO,QAAQ;AACjC,cAAIgf,EAAe,IAAIhlB,EAAK,UAAU,KAC9BsmB,EAAa,SAAS,KACtBC,EAAO,KAAMD,IAAe,EAAI,GAEpCtmB,EAAK,WAAW,QAAQwmB,CAAG,GACvBF,EAAa,SAAS,KACtBC,EAAO,KAAMD,IAAe,EAAI,KAIpCtmB,EAAK,WAAW,QAAQwmB,CAAG;AAAA,qBAG1BxmB,EAAK,aAAagG,EAAO,QAAQ;AACtC,kBAAIhG,EAAK;AAEL,gBAAAsmB,EAAa,oBAAoB;AAAA,mBAEhC;AACD,oBAAI1c,IAAO5J,EAAK;AAChB,gBAAIsmB,EAAa,sBACb1c,IAAO,IAAI,OAAOA,CAAI,GACtB0c,EAAa,oBAAoB,KAErCA,EAAa,KAAK1c,CAAI;AAAA,cAC9C;AAAA,UAEA;AACY,iBAAA4c,EAAI,IAAI,GACDD,EACF,IAAI,SAAUE,GAAO;AACtB,mBAAOA,EAAM,KAAK,EAAE,EAAE,QAAQ,WAAW,GAAG;AAAA,UAC/C,CAAA,EACI,KAAK;AAAA,CAAI,EACT,QAAQ,QAAQ,EAAE;AAAA,QAC1B;AAAA,QACD,YAAY;AAAA,QACZ,cAAc;AAAA,MACtB,CAAK,GACDf,EAAY,UAAU,WAAW,WAAY;AACzC,YAAIjV,IAAM,KAAK;AACf,YAAIA,GAAK;AACL,cAAIkT,IAAQ,KAAK,WAAW,IAAI,OAAO,KAAK,QAAQ,IAAI;AACxD,iBAAO,KAAK,QAAQ,WAAWlT,GAAKkT,GAAO,KAAK,SAAS;AAAA,QACrE;AACQ,eAAO,KAAK;AAAA,MACf,GACD,OAAO,eAAe+B,EAAY,WAAW,aAAa;AAAA,QACtD,KAAK,WAAY;AACb,iBAAO,KAAK,WACP,IAAI,SAAUxgB,GAAO;AACtB,mBAAOA,EAAM,SAAU;AAAA,UAC1B,CAAA,EACI,KAAK,EAAE;AAAA,QACf;AAAA,QACD,KAAK,SAAUmhB,GAAS;AACpB,cAAIK,IAAI/N,EAAM0N,GAAS,KAAK,aAAa,GACrCrW,IAAQ0W,EAAE,WAAW,SAASA,EAAE,aAAa,CAAC,IAAIhC,EAAO,QAAQ2B,GAAS,IAAI,CAAC;AACnF,UAAAM,EAAY3W,GAAO,IAAI,GACvB2W,EAAY,KAAK,YAAY,IAAI,GACjC,KAAK,aAAa3W;AAAA,QACrB;AAAA,QACD,YAAY;AAAA,QACZ,cAAc;AAAA,MACtB,CAAK,GACD0V,EAAY,UAAU,cAAc,SAAUW,GAASlkB,GAAS;AAE5D,YADIA,MAAY,WAAUA,IAAU,CAAA,IAChCkkB,aAAmBtgB,EAAO;AAC1B,UAAAsgB,IAAU,CAACA,CAAO;AAAA,iBAEb,OAAOA,KAAW,UAAU;AACjC,UAAAlkB,IAAUqE,EAASA,EAAS,CAAA,GAAI,KAAK,aAAa,GAAGrE,CAAO;AAC5D,cAAIukB,IAAI/N,EAAM0N,GAASlkB,CAAO;AAC9B,UAAAkkB,IAAUK,EAAE,WAAW,SAASA,EAAE,aAAa,CAAC,IAAIhC,EAAO,QAAQgC,EAAE,WAAW,IAAI,CAAC;AAAA,QACjG;AACQ,eAAAC,EAAY,KAAK,YAAY,IAAI,GACjCA,EAAYN,GAAS,IAAI,GACzB,KAAK,aAAaA,GACX;AAAA,MACV,GACDX,EAAY,UAAU,cAAc,WAAY;AAG5C,iBAFI1gB,IAAQ,MACRgL,IAAQ,CAAE,GACL+G,IAAK,GAAGA,IAAK,UAAU,QAAQA;AACpC,UAAA/G,EAAM+G,CAAE,IAAI,UAAUA,CAAE;AAE5B,YAAIjQ,IAAS,KAAK,YACduf,IAAUrW,EACT,IAAI,SAAUhQ,GAAM;AACrB,cAAIA,aAAgB+F,EAAO;AACvB,mBAAO,CAAC/F,CAAI;AAEX,cAAI,OAAOA,KAAQ,UAAU;AAC9B,gBAAI0mB,IAAI/N,EAAM3Y,GAAMgF,EAAM,aAAa;AACvC,mBAAO0hB,EAAE,WAAW,SAASA,EAAE,aAAa,CAAC,IAAIhC,EAAO,QAAQ1kB,GAAMgF,CAAK,CAAC;AAAA,UAC5F;AACY,iBAAO,CAAE;AAAA,QACZ,CAAA,EACI,KAAM,GACP2P,IAAM7N,EAAO,WAAW,UAAU,SAAU5B,GAAO;AACnD,iBAAOA,MAAUF;AAAA,QAC7B,CAAS;AACD,eAAA2hB,EAAY,CAAC,IAAI,GAAG,IAAI,GACxB7f,EAAO,aAAa6X,EAAcA,EAAcA,EAAc,CAAA,GAAI7X,EAAO,WAAW,MAAM,GAAG6N,CAAG,GAAG,EAAI,GAAGgS,EAAYN,GAASvf,CAAM,GAAG,EAAI,GAAGA,EAAO,WAAW,MAAM6N,IAAM,CAAC,GAAG,EAAI,GAC9K;AAAA,MACV,GACD,OAAO,eAAe+Q,EAAY,WAAW,aAAa;AAAA,QACtD,KAAK,WAAY;AACb,iBAAO,KAAK,SAAU;AAAA,QACzB;AAAA,QACD,YAAY;AAAA,QACZ,cAAc;AAAA,MACtB,CAAK,GAMDA,EAAY,UAAU,YAAY,SAAUkB,GAAS;AACjD,iBAASjgB,IAAI,GAAGA,IAAI,KAAK,WAAW,QAAQA,KAAK;AAC7C,cAAIkgB,IAAY,KAAK,WAAWlgB,CAAC;AACjC,cAAIkgB,EAAU,aAAa7gB,EAAO,QAAQ;AACtC,YAAA6gB,EAAU,UAAUD,CAAO;AAAA,eAE1B;AACD,gBAAI5kB,IAAQ6kB,EAAU,QAAQ,OAAOD,CAAO;AAC5C,YAAI5kB,IAAQ,OACR6kB,EAAU,UAAUA,EAAU,QAAQ,OAAO,GAAG7kB,CAAK,GAErD,KAAK,WAAW,SAAS2E,IAAI;AAAA,UAEjD;AAAA,QACA;AACQ,eAAO;AAAA,MACV,GACD,OAAO,eAAe+e,EAAY,WAAW,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA,QAKtD,KAAK,WAAY;AACb,cAAIlmB,IAAM,CAAE,GACRsnB,IAAY;AAChB,mBAASC,EAAMtb,GAAK;AAChB,YAAAjM,EAAI,KAAK,KAAK,OAAOsnB,CAAS,IAAIrb,CAAG;AAAA,UACrD;AACY,mBAAS+a,EAAIxmB,GAAM;AACf,gBAAIgnB,IAAQhnB,EAAK,KAAK,IAAI,OAAOA,EAAK,EAAE,IAAI,IACxCinB,IAAWjnB,EAAK,UAAU,SAAS,IAAI,OAAOA,EAAK,UAAU,MAAM,KAAK,GAAG,CAAC,IAAI;AACpF,YAAA+mB,EAAM,GAAG,OAAO/mB,EAAK,UAAU,EAAE,OAAOgnB,CAAK,EAAE,OAAOC,CAAQ,CAAC,GAC/DH,KACA9mB,EAAK,WAAW,QAAQ,SAAU6mB,GAAW;AACzC,cAAIA,EAAU,aAAa7gB,EAAO,QAAQ,eACtCwgB,EAAIK,CAAS,IAERA,EAAU,aAAa7gB,EAAO,QAAQ,cACtC6gB,EAAU,gBACXE,EAAM,OAAO;AAAA,YAGzC,CAAiB,GACDD;AAAA,UAChB;AACY,iBAAAN,EAAI,IAAI,GACDhnB,EAAI,KAAK;AAAA,CAAI;AAAA,QACvB;AAAA,QACD,YAAY;AAAA,QACZ,cAAc;AAAA,MACtB,CAAK,GAKDkmB,EAAY,UAAU,mBAAmB,WAAY;AACjD,YAAI1gB,IAAQ,MACR4D,IAAI;AACR,oBAAK,WAAW,QAAQ,SAAU5I,GAAM;AACpC,cAAIA,EAAK,aAAagG,EAAO,QAAQ,WAAW;AAC5C,gBAAIhG,EAAK;AACL;AAEJ,YAAAA,EAAK,UAAUA,EAAK;AAAA,UACpC,MACiB,CAAIA,EAAK,aAAagG,EAAO,QAAQ,gBACtChG,EAAK,iBAAkB;AAE3B,UAAAgF,EAAM,WAAW4D,GAAG,IAAI5I;AAAA,QACpC,CAAS,GACD,KAAK,WAAW,SAAS4I,GAClB;AAAA,MACV,GAMD8c,EAAY,UAAU,mBAAmB,SAAUxN,GAAU;AACzD,mBAAWmM,EAAa,WAAWnM,GAAU,MAAM;AAAA,UAC/C,SAAS;AAAA,UACT,SAASqM,EAAU;AAAA,QAC/B,CAAS;AAAA,MACJ,GAMDmB,EAAY,UAAU,gBAAgB,SAAUxN,GAAU;AACtD,mBAAWmM,EAAa,WAAWnM,GAAU,MAAM;AAAA,UAC/C,SAAS;AAAA,UACT,SAASqM,EAAU;AAAA,QAC/B,CAAS;AAAA,MACJ,GAKDmB,EAAY,UAAU,uBAAuB,SAAUrR,GAAS;AAQ5D,iBAPI6S,IAAoB7S,EAAQ,YAAa,GACzC8S,IAAK,CAAE,GACPC,IAAQ,CAAE,GACVC,IAAuB,MACvBrlB,IAAQ,GAGLA,MAAU,UAAW;AACxB,cAAIkD,IAAQ;AAEZ;AACI,YAAAA,IAAQmiB,EAAqB,WAAWrlB,GAAO;AAAA,iBAC1CA,IAAQqlB,EAAqB,WAAW,UAAUniB,MAAU;AAErE,cAAIA,MAAU,QAAW;AACrB,YAAAmiB,IAAuBA,EAAqB,YAC5CrlB,IAAQolB,EAAM,IAAK;AACnB;AAAA,UAChB;AACY,UAAIliB,EAAM,aAAac,EAAO,QAAQ,kBAE9BqO,MAAY,OAAOnP,EAAM,YAAYgiB,MACrCC,EAAG,KAAKjiB,CAAK,GAEbA,EAAM,WAAW,SAAS,MAC1BkiB,EAAM,KAAKplB,CAAK,GAChBqlB,IAAuBniB,GACvBlD,IAAQ;AAAA,QAG5B;AACQ,eAAOmlB;AAAA,MACV,GAMDzB,EAAY,UAAU,iBAAiB,SAAUtR,GAAI;AAMjD,iBALIgT,IAAQ,CAAE,GACVC,IAAuB,MACvBrlB,IAAQ,GAGLA,MAAU,UAAW;AACxB,cAAIkD,IAAQ;AAEZ;AACI,YAAAA,IAAQmiB,EAAqB,WAAWrlB,GAAO;AAAA,iBAC1CA,IAAQqlB,EAAqB,WAAW,UAAUniB,MAAU;AAErE,cAAIA,MAAU,QAAW;AACrB,YAAAmiB,IAAuBA,EAAqB,YAC5CrlB,IAAQolB,EAAM,IAAK;AACnB;AAAA,UAChB;AACY,cAAIliB,EAAM,aAAac,EAAO,QAAQ,cAAc;AAChD,gBAAId,EAAM,OAAOkP;AACb,qBAAOlP;AAIX,YAAIA,EAAM,WAAW,SAAS,MAC1BkiB,EAAM,KAAKplB,CAAK,GAChBqlB,IAAuBniB,GACvBlD,IAAQ;AAAA,UAE5B;AAAA,QACA;AACQ,eAAO;AAAA,MACV,GAMD0jB,EAAY,UAAU,UAAU,SAAUxN,GAAU;AAChD,YAAIoP,IAAW,oBAAI,IAAK,GACpB/nB,IAAK,MACLgoB,IAAM;AACV,iBAAS5U,EAAQG,GAAMgQ,GAAO;AAE1B,mBADIvc,IAAO,MACFI,IAAI,GAAGoY,IAAI+D,EAAM,QAAQnc,IAAIoY,KAAK,CAACxY,GAAMI,KAAK;AACnD,gBAAI6gB,IAAO1E,EAAMnc,CAAC;AAClB,gBAAImM,EAAK0U,CAAI;AACT,cAAAjhB,IAAOihB;AAAA,iBAEN;AACD,kBAAItiB,IAAQoiB,EAAS,IAAIE,CAAI;AAC7B,cAAItiB,MACAqB,IAAOoM,EAAQG,GAAM,CAAC5N,CAAK,CAAC;AAAA,YAEpD;AAAA,UACA;AACY,iBAAOqB;AAAA,QACnB;AACQ,eAAOhH;AACH,UAAA+nB,EAAS,IAAI/nB,GAAIgoB,CAAG,GACpBA,IAAMhoB,GACNA,IAAKA,EAAG;AAGZ,aADAA,IAAK,MACEA,KAAI;AACP,cAAIgiB,QAAQ8C,EAAa,WAAWnM,GAAU3Y,GAAI;AAAA,YAC9C,SAAS;AAAA,YACT,SAASiH,EAASA,EAAS,IAAI+d,EAAU,OAAO,GAAG,EAAE,aAAa,SAAUvkB,GAAM;AAC1E,kBAAIkF,IAAQoiB,EAAS,IAAItnB,CAAI;AAC7B,qBAAOkF,KAAS,CAACA,CAAK;AAAA,YAC9C,GAAuB,aAAa,SAAUlF,GAAM;AAC5B,qBAAO,CAACA,CAAI;AAAA,YACpC,GAAuB,SAAS2S,GAAS,SAAS,WAAY;AACtC,qBAAO,CAAE;AAAA,YACjC,GAAuB;AAAA,UACvB,CAAa;AACD,cAAI4O;AACA,mBAAOA;AAEX,UAAAhiB,IAAKA,EAAG;AAAA,QACpB;AACQ,eAAO;AAAA,MACV,GAMDmmB,EAAY,UAAU,cAAc,SAAU1lB,GAAM;AAEhD,eAAAA,EAAK,OAAQ,GACb,KAAK,WAAW,KAAKA,CAAI,GACzBA,EAAK,aAAa,MACXA;AAAA,MACV,GACD,OAAO,eAAe0lB,EAAY,WAAW,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA,QAKvD,KAAK,WAAY;AACb,iBAAO,KAAK,WAAW,CAAC;AAAA,QAC3B;AAAA,QACD,YAAY;AAAA,QACZ,cAAc;AAAA,MACtB,CAAK,GACD,OAAO,eAAeA,EAAY,WAAW,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA,QAKtD,KAAK,WAAY;AACb,qBAAWpB,EAAO,SAAS,KAAK,UAAU;AAAA,QAC7C;AAAA,QACD,YAAY;AAAA,QACZ,cAAc;AAAA,MACtB,CAAK,GACD,OAAO,eAAeoB,EAAY,WAAW,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAMlD,KAAK,WAAY;AACb,cAAI,KAAK;AACL,mBAAO,KAAK;AAEhB,eAAK,SAAS,CAAE;AAChB,cAAI/B,IAAQ,KAAK;AACjB,mBAAShkB,KAAOgkB,GAAO;AACnB,gBAAIxe,IAAMwe,EAAMhkB,CAAG,KAAK;AACxB,iBAAK,OAAOA,EAAI,YAAW,CAAE,IAAI8D,EAAO0B,CAAG;AAAA,UAC3D;AACY,iBAAO,KAAK;AAAA,QACf;AAAA,QACD,YAAY;AAAA,QACZ,cAAc;AAAA,MACtB,CAAK,GACD,OAAO,eAAeugB,EAAY,WAAW,cAAc;AAAA,QACvD,KAAK,WAAY;AACb,cAAI+B,IAAY,CAAE,GACd9D,IAAQ,KAAK;AACjB,mBAAShkB,KAAOgkB,GAAO;AACnB,gBAAIxe,IAAMwe,EAAMhkB,CAAG,KAAK;AACxB,YAAA8nB,EAAU9nB,CAAG,IAAI8D,EAAO0B,CAAG;AAAA,UAC3C;AACY,iBAAOsiB;AAAA,QACV;AAAA,QACD,YAAY;AAAA,QACZ,cAAc;AAAA,MACtB,CAAK,GACD,OAAO,eAAe/B,EAAY,WAAW,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA,QAK1D,KAAK,WAAY;AACb,cAAI,KAAK;AACL,mBAAO,KAAK;AAEhB,cAAI/B,IAAQ,CAAE;AACd,cAAI,KAAK;AAGL,qBAFIwD,IAAK,wFACLpZ,IAAQ,QACJA,IAAQoZ,EAAG,KAAK,KAAK,QAAQ,KAAI;AACrC,kBAAIxnB,IAAMoO,EAAM,CAAC,GACb5I,IAAM4I,EAAM,CAAC,KAAK;AACtB,cAAI5I,MAAQA,EAAI,CAAC,MAAM,OAAOA,EAAI,CAAC,MAAM,SACrCA,IAAMA,EAAI,MAAM,GAAGA,EAAI,SAAS,CAAC,IACrCwe,EAAMhkB,CAAG,IAAIgkB,EAAMhkB,CAAG,KAAKwF;AAAA,YAC/C;AAEY,sBAAK,YAAYwe,GACVA;AAAA,QACV;AAAA,QACD,YAAY;AAAA,QACZ,cAAc;AAAA,MACtB,CAAK,GACD+B,EAAY,UAAU,kBAAkB,SAAU/lB,GAAK;AACnD,YAAIqF,IAAQ,MACR2e,IAAQ,KAAK;AACjB,sBAAOA,EAAMhkB,CAAG,GAEZ,KAAK,UACL,OAAO,KAAK,OAAOA,CAAG,GAG1B,KAAK,WAAW,OAAO,KAAKgkB,CAAK,EAC5B,IAAI,SAAUpc,GAAM;AACrB,cAAIpC,IAAMH,EAAM,eAAe2e,EAAMpc,CAAI,CAAC;AAC1C,iBAAIpC,MAAQ,UAAUA,MAAQ,OACnBoC,IACJ,GAAG,OAAOA,GAAM,GAAG,EAAE,OAAOpC,CAAG;AAAA,QACzC,CAAA,EACI,KAAK,GAAG,GAETxF,MAAQ,SACR,KAAK,KAAK,KAEP;AAAA,MACV,GACD+lB,EAAY,UAAU,eAAe,SAAU/lB,GAAK;AAChD,eAAOA,EAAI,iBAAiB,KAAK;AAAA,MACpC,GAKD+lB,EAAY,UAAU,eAAe,SAAU/lB,GAAK;AAChD,eAAO,KAAK,MAAMA,EAAI,YAAW,CAAE;AAAA,MACtC,GAMD+lB,EAAY,UAAU,eAAe,SAAU/lB,GAAKoC,GAAO;AACvD,YAAIiD,IAAQ;AACZ,YAAI,UAAU,SAAS;AACnB,gBAAM,IAAI,MAAM,+CAA+C;AAEnE,YAAI+D,IAAKpJ,EAAI,YAAa,GACtBgkB,IAAQ,KAAK;AACjB,iBAAS7a,KAAK6a;AACV,cAAI7a,EAAE,YAAa,MAAKC,GAAI;AACxB,YAAApJ,IAAMmJ;AACN;AAAA,UAChB;AAEQ,eAAA6a,EAAMhkB,CAAG,IAAI,OAAOoC,CAAK,GAErB,KAAK,WACL,KAAK,OAAOgH,CAAE,IAAItF,EAAOkgB,EAAMhkB,CAAG,CAAC,IAGvC,KAAK,WAAW,OAAO,KAAKgkB,CAAK,EAC5B,IAAI,SAAUpc,GAAM;AACrB,cAAIpC,IAAMH,EAAM,eAAe2e,EAAMpc,CAAI,CAAC;AAC1C,iBAAIpC,MAAQ,UAAUA,MAAQ,OACnBoC,IACJ,GAAG,OAAOA,GAAM,GAAG,EAAE,OAAOpC,CAAG;AAAA,QACzC,CAAA,EACI,KAAK,GAAG,GAETxF,MAAQ,SACR,KAAK,KAAKoC,IAEP;AAAA,MACV,GAKD2jB,EAAY,UAAU,gBAAgB,SAAU7V,GAAY;AACxD,YAAI7K,IAAQ;AAEZ,eAAI,KAAK,UACL,OAAO,KAAK,QAGZ,KAAK,aACL,OAAO,KAAK,WAGhB,KAAK,WAAW,OAAO,KAAK6K,CAAU,EACjC,IAAI,SAAUtI,GAAM;AACrB,cAAIpC,IAAM0K,EAAWtI,CAAI;AACzB,iBAAIpC,MAAQ,UAAUA,MAAQ,OACnBoC,IACJ,GAAG,OAAOA,GAAM,GAAG,EAAE,OAAOvC,EAAM,eAAe,OAAOG,CAAG,CAAC,CAAC;AAAA,QACvE,CAAA,EACI,KAAK,GAAG,GACN;AAAA,MACV,GACDugB,EAAY,UAAU,qBAAqB,SAAU7O,GAAOnT,GAAM;AAC9D,YAAI+D,GAAIK,GAAIwa,GACRtd,IAAQ;AACZ,YAAI,UAAU,SAAS;AACnB,gBAAM,IAAI,MAAM,sBAAsB;AAE1C,YAAIU,IAAIiT,EAAMjV,GAAM,KAAK,aAAa;AACtC,YAAImT,MAAU,YAAY;AACtB,cAAIlC,IAAM,KAAK,WAAW,WAAW,UAAU,SAAUzP,GAAO;AAC5D,mBAAOA,MAAUF;AAAA,UACjC,CAAa;AACD,UAAA2hB,EAAYjhB,EAAE,YAAY,KAAK,UAAU,IACxC+B,IAAK,KAAK,WAAW,YAAY,OAAO,MAAMA,GAAIkX,EAAc,CAAChK,IAAM,GAAG,CAAC,GAAGjP,EAAE,YAAY,EAAK,CAAC;AAAA,QAC/G,WACiBmR,MAAU;AACf,UAAA8P,EAAYjhB,EAAE,YAAY,IAAI,IAC7BoC,IAAK,KAAK,YAAY,QAAQ,MAAMA,GAAIpC,EAAE,UAAU;AAAA,iBAEhDmR,MAAU;AACf,UAAAnR,EAAE,WAAW,QAAQ,SAAUkB,GAAG;AAC9B,YAAA5B,EAAM,YAAY4B,CAAC;AAAA,UACnC,CAAa;AAAA,iBAEIiQ,MAAU,eAAe;AAC9B,cAAIlC,IAAM,KAAK,WAAW,WAAW,UAAU,SAAUzP,GAAO;AAC5D,mBAAOA,MAAUF;AAAA,UACjC,CAAa;AACD,UAAA2hB,EAAYjhB,EAAE,YAAY,KAAK,UAAU,IACxC4c,IAAK,KAAK,WAAW,YAAY,OAAO,MAAMA,GAAI3D,EAAc,CAAChK,GAAK,CAAC,GAAGjP,EAAE,YAAY,EAAK,CAAC;AAAA,QAC3G;AAEY,gBAAM,IAAI,MAAM,wBAAwB,OAAOmR,GAAO,0EAA0E,CAAC;AAErI,eAAO;AAAA,MAIV,GACD,OAAO,eAAe6O,EAAY,WAAW,eAAe;AAAA,QACxD,KAAK,WAAY;AACb,cAAI,KAAK,YAAY;AAGjB,qBAFIzgB,IAAW,KAAK,WAAW,YAC3B0B,IAAI,GACDA,IAAI1B,EAAS,UAAQ;AACxB,kBAAIC,IAAQD,EAAS0B,GAAG;AACxB,kBAAI,SAASzB;AACT,uBAAOD,EAAS0B,CAAC,KAAK;AAAA,YAC9C;AACgB,mBAAO;AAAA,UACvB;AAAA,QACS;AAAA,QACD,YAAY;AAAA,QACZ,cAAc;AAAA,MACtB,CAAK,GACD,OAAO,eAAe+e,EAAY,WAAW,sBAAsB;AAAA,QAC/D,KAAK,WAAY;AACb,cAAI,KAAK,YAAY;AAIjB,qBAHIzgB,IAAW,KAAK,WAAW,YAC3B0B,IAAI,GACJ8L,IAAO,IACJ9L,IAAI1B,EAAS,UAAQ;AACxB,kBAAIC,IAAQD,EAAS0B,GAAG;AACxB,kBAAI8L;AACA,oBAAIvN,aAAiBwgB;AACjB,yBAAOxgB,KAAS;AAAA,oBAGnB,CAAI,SAASA,MACduN,IAAO;AAAA,YAE/B;AACgB,mBAAO;AAAA,UACvB;AAAA,QACS;AAAA,QACD,YAAY;AAAA,QACZ,cAAc;AAAA,MACtB,CAAK,GACD,OAAO,eAAeiT,EAAY,WAAW,mBAAmB;AAAA,QAC5D,KAAK,WAAY;AACb,cAAI,KAAK,YAAY;AAGjB,qBAFIzgB,IAAW,KAAK,WAAW,YAC3B0B,IAAI1B,EAAS,QACV0B,IAAI,KAAG;AACV,kBAAIzB,IAAQD,EAAS,EAAE0B,CAAC;AACxB,kBAAI,SAASzB;AACT,uBAAOD,EAAS0B,IAAI,CAAC,KAAK;AAAA,YAClD;AACgB,mBAAO;AAAA,UACvB;AAAA,QACS;AAAA,QACD,YAAY;AAAA,QACZ,cAAc;AAAA,MACtB,CAAK,GACD,OAAO,eAAe+e,EAAY,WAAW,0BAA0B;AAAA,QACnE,KAAK,WAAY;AACb,cAAI,KAAK,YAAY;AAIjB,qBAHIzgB,IAAW,KAAK,WAAW,YAC3B0B,IAAI1B,EAAS,QACbwN,IAAO,IACJ9L,IAAI,KAAG;AACV,kBAAIzB,IAAQD,EAAS,EAAE0B,CAAC;AACxB,kBAAI8L;AACA,oBAAIvN,aAAiBwgB;AACjB,yBAAOxgB,KAAS;AAAA,oBAGnB,CAAI,SAASA,MACduN,IAAO;AAAA,YAE/B;AACgB,mBAAO;AAAA,UACvB;AAAA,QACS;AAAA,QACD,YAAY;AAAA,QACZ,cAAc;AAAA,MACtB,CAAK,GACD,OAAO,eAAeiT,EAAY,WAAW,cAAc;AAAA,QACvD,KAAK,WAAY;AACb,iBAAO,KAAK,UAAU,SAAU;AAAA,QACnC;AAAA,QACD,YAAY;AAAA,QACZ,cAAc;AAAA,MACtB,CAAK,GAIDA,EAAY,UAAU,QAAQ,WAAY;AACtC,eAAO/M,EAAM,KAAK,SAAU,GAAE,KAAK,aAAa,EAAE;AAAA,MACrD,GACM+M;AAAA,IACX,EAAE3f,EAAO,OAAO;AAAA;AAChB,EAAArC,EAAA,UAAkBgiB;AAElB,MAAIgC,IAAiB,0GACjBC,IAAoB,4DACpBC,IAA2B;AAAA,IAC3B,IAAI,EAAE,IAAI,IAAM,IAAI,GAAM;AAAA,IAC1B,IAAI,EAAE,IAAI,IAAM,IAAI,GAAM;AAAA,IAC1B,GAAG,EAAE,GAAG,IAAM,KAAK,IAAM,GAAG,IAAM,KAAK,GAAM;AAAA,IAC7C,GAAG,EAAE,GAAG,IAAM,KAAK,IAAM,GAAG,IAAM,KAAK,GAAM;AAAA,IAC7C,GAAG,EAAE,KAAK,IAAM,KAAK,GAAM;AAAA,IAC3B,GAAG,EAAE,KAAK,IAAM,KAAK,GAAM;AAAA,IAC3B,IAAI,EAAE,IAAI,IAAM,IAAI,IAAM,IAAI,IAAM,IAAI,GAAM;AAAA,IAC9C,IAAI,EAAE,IAAI,IAAM,IAAI,IAAM,IAAI,IAAM,IAAI,GAAM;AAAA,IAC9C,IAAI,EAAE,IAAI,IAAM,IAAI,IAAM,IAAI,IAAM,IAAI,GAAM;AAAA,IAC9C,IAAI,EAAE,IAAI,IAAM,IAAI,IAAM,IAAI,IAAM,IAAI,GAAM;AAAA,IAC9C,IAAI,EAAE,IAAI,IAAM,IAAI,GAAM;AAAA,IAC1B,IAAI,EAAE,IAAI,IAAM,IAAI,GAAM;AAAA,IAC1B,IAAI,EAAE,IAAI,IAAM,IAAI,GAAM;AAAA,IAC1B,IAAI,EAAE,IAAI,IAAM,IAAI,GAAM;AAAA,IAC1B,IAAI,EAAE,IAAI,IAAM,IAAI,GAAM;AAAA,IAC1B,IAAI,EAAE,IAAI,IAAM,IAAI,GAAM;AAAA,IAC1B,IAAI,EAAE,IAAI,IAAM,IAAI,GAAM;AAAA,IAC1B,IAAI,EAAE,IAAI,IAAM,IAAI,GAAM;AAAA,IAC1B,IAAI,EAAE,IAAI,IAAM,IAAI,GAAM;AAAA,IAC1B,IAAI,EAAE,IAAI,IAAM,IAAI,GAAM;AAAA,IAC1B,IAAI,EAAE,IAAI,IAAM,IAAI,GAAM;AAAA,IAC1B,IAAI,EAAE,IAAI,IAAM,IAAI,GAAM;AAAA,EAC7B,GACGC,IAA2B;AAAA,IAC3B,IAAI,EAAE,IAAI,IAAM,IAAI,IAAM,IAAI,IAAM,IAAI,GAAM;AAAA,IAC9C,IAAI,EAAE,IAAI,IAAM,IAAI,IAAM,IAAI,IAAM,IAAI,GAAM;AAAA,IAC9C,GAAG,EAAE,KAAK,IAAM,KAAK,GAAM;AAAA,IAC3B,GAAG,EAAE,KAAK,IAAM,KAAK,GAAM;AAAA,IAC3B,GAAG,EAAE,KAAK,IAAM,KAAK,GAAM;AAAA,IAC3B,GAAG,EAAE,KAAK,IAAM,KAAK,GAAM;AAAA,IAC3B,GAAG,EAAE,KAAK,IAAM,KAAK,GAAM;AAAA,IAC3B,GAAG,EAAE,KAAK,IAAM,KAAK,GAAM;AAAA,IAC3B,GAAG,EAAE,KAAK,IAAM,KAAK,GAAM;AAAA,IAC3B,GAAG,EAAE,KAAK,IAAM,KAAK,GAAM;AAAA,IAC3B,IAAI,EAAE,IAAI,IAAM,OAAO,IAAM,IAAI,IAAM,OAAO,GAAM;AAAA,IACpD,IAAI,EAAE,IAAI,IAAM,OAAO,IAAM,IAAI,IAAM,OAAO,GAAM;AAAA,IACpD,IAAI,EAAE,IAAI,IAAM,OAAO,IAAM,IAAI,IAAM,OAAO,GAAM;AAAA,IACpD,IAAI,EAAE,IAAI,IAAM,OAAO,IAAM,IAAI,IAAM,OAAO,GAAM;AAAA,EACvD,GACGC,IAAY;AAOhB,WAASC,EAAW5gB,GAAMhF,GAAS;AAC/B,QAAIsF,GAAIK;AACR,IAAI3F,MAAY,WAAUA,IAAU,CAAA;AACpC,QAAImhB,IAAU,IAAIkB,EAAW,SAAS/c,IAAuDtF,GAAQ,aAAa,QAAQsF,MAAO,SAAS,SAASA,EAAG,eAAeK,IAAuD3F,GAAQ,aAAa,QAAQ2F,MAAO,SAAS,SAASA,EAAG,IAAI,GACrR6a,IAAWxgB,EAAQ,qBAAqB;AAAA,MACxC,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,OAAO;AAAA,MACP,KAAK;AAAA,IACR,GACG6lB,IAAgB,OAAO,KAAKrF,CAAQ,GACpCsF,IAAqBD,EAAc,IAAI,SAAUE,IAAI;AAAE,aAAO,IAAI,OAAO,IAAI,OAAOA,IAAI,GAAG,GAAG,GAAG;AAAA,IAAE,CAAE,GACrGC,IAAkBH,EAAc,OAAO,SAAUE,IAAI;AAAE,aAAO,EAAQvF,EAASuF,EAAE;AAAA,IAAG,CAAE,EAAE,IAAI,SAAUA,IAAI;AAAE,aAAO,IAAI,OAAO,IAAI,OAAOA,IAAI,GAAG,GAAG,GAAG;AAAA,IAAE,CAAE;AAC9J,aAASE,EAAyB3X,IAAK;AACnC,aAAO0X,EAAgB,KAAK,SAAUD,IAAI;AAAE,eAAOA,GAAG,KAAKzX,EAAG;AAAA,OAAI;AAAA,IAC1E;AACI,aAAS4X,EAAsB5X,IAAK;AAChC,aAAOwX,EAAmB,KAAK,SAAUC,IAAI;AAAE,eAAOA,GAAG,KAAKzX,EAAG;AAAA,OAAI;AAAA,IAC7E;AACI,QAAI6X,IAAc,SAAUrE,IAAUC,IAAQ;AAAE,aAAO,CAACD,KAAWsE,IAAiBrE,KAASqE,EAAe;AAAA,IAAI,GAC5GnoB,IAAO,IAAIslB,EAAY,MAAM,CAAE,GAAE,IAAI,MAAM,CAAC,GAAGve,EAAK,MAAM,GAAGmc,GAASnhB,CAAO,GAC7EqmB,IAAgBpoB,GAChBgnB,IAAQ,CAAChnB,CAAI,GACbqoB,KAAc,IACdC,KAAmB,QACnB3a;AAEJ,IAAA5G,IAAO,IAAI,OAAO2gB,GAAW,GAAG,EAAE,OAAO3gB,GAAM,IAAI,EAAE,OAAO2gB,GAAW,GAAG;AAI1E,aAHIa,KAAmBxmB,EAAQ,kBAAkBymB,KAAiBzmB,EAAQ,gBACtE0mB,KAAa1hB,EAAK,UAAU2gB,EAAU,SAAS,IAC/CS,KAAkBT,EAAU,SAAS,GACjC/Z,KAAQ2Z,EAAe,KAAKvgB,CAAI,KAAI;AAGxC,UAAI2hB,KAAY/a,GAAM,CAAC,GAAGgb,KAAehb,GAAM,CAAC,GAAGsG,IAAUtG,GAAM,CAAC,GAAG8B,KAAa9B,GAAM,CAAC,GAAG+V,KAAe/V,GAAM,CAAC,GAChHib,KAAcF,GAAU,QACxBG,KAAcvB,EAAe,YAAYsB,IACzCE,KAAYxB,EAAe;AAE/B,UAAIe,KAAc,MACVA,KAAcO,KAAcE,IAAW;AACvC,YAAItf,KAAOzC,EAAK,UAAUshB,IAAaQ,EAAW;AAClD,QAAAT,EAAc,YAAY,IAAI9D,EAAO,QAAQ9a,IAAM4e,GAAeF,EAAYG,IAAaQ,EAAW,CAAC,CAAC;AAAA,MACxH;AAKQ,UAHAR,KAAcf,EAAe,WAGzBrT,MAAYyT,GAGhB;AAAA,YAAIgB,GAAU,CAAC,MAAM,KAAK;AACtB,cAAI3mB,EAAQ,SAAS;AAEjB,gBAAIyH,KAAOzC,EAAK,UAAU8hB,KAAc,GAAGC,KAAY,CAAC;AACxD,YAAAV,EAAc,YAAY,IAAI/D,EAAU,QAAQ7a,IAAM4e,GAAeF,EAAYW,IAAaC,EAAS,CAAC,CAAC;AAAA,UACzH;AACY;AAAA,QACZ;AAMQ,YAHIP,OACAtU,IAAUA,EAAQ,YAAa,IAE/B,CAAC0U,IAAc;AAGf,mBADIpF,KAAQ,CAAE,GACLwF,KAAW,QAASA,KAAWxB,EAAkB,KAAK9X,EAAU,KAAK;AAC1E,gBAAIlQ,KAAMwpB,GAAS,CAAC,GAAGhkB,KAAMgkB,GAAS,CAAC,GACnCC,KAAWjkB,GAAI,CAAC,MAAM,OAAOA,GAAI,CAAC,MAAM;AAC5C,YAAAwe,GAAMhkB,GAAI,YAAa,CAAA,IAAIypB,KAAWjkB,GAAI,MAAM,GAAGA,GAAI,SAAS,CAAC,IAAIA;AAAA,UACrF;AACY,cAAIkkB,KAAgBb,EAAc;AAClC,UAAI,CAAC1E,MAAgB8D,EAAyByB,EAAa,KACnDzB,EAAyByB,EAAa,EAAEhV,CAAO,MAC/C+S,EAAM,IAAK,GACXoB,QAAoBlE,EAAO,SAAS8C,CAAK,IAI7CwB,OAAmBvU,MAAY,OAAOA,MAAY,SAC9CqU,OAAqB,WACrBtB,EAAM,OAAOsB,EAAgB,GAC7BF,QAAoBlE,EAAO,SAAS8C,CAAK,IAE7CsB,KAAmBtB,EAAM;AAE7B,cAAIkC,KAAc5B,EAAe,WAC7B6B,KAAgBD,KAAcN;AAKlC,cAJAR,IAAgBA,EAAc;AAAA;AAAA,YAE9B,IAAI9C,EAAYrR,GAASsP,IAAO9T,GAAW,MAAM,CAAC,GAAG,MAAMyY,EAAYiB,IAAeD,EAAW,GAAGhG,GAASnhB,CAAO;AAAA,UAAC,GACrHilB,EAAM,KAAKoB,CAAa,GACpBH,EAAsBhU,CAAO,GAAG;AAEhC,gBAAImV,KAAc,KAAK,OAAOnV,GAAS,GAAG,GACtCoV,KAAad,KACXxhB,EAAK,kBAAmB,EAAC,QAAQqiB,IAAa9B,EAAe,SAAS,IACtEvgB,EAAK,QAAQqiB,IAAa9B,EAAe,SAAS,GACpDgC,KAAaD,OAAe,KAAKZ,KAAaY;AAClD,gBAAIrB,EAAyB/T,CAAO,GAAG;AACnC,kBAAIzK,KAAOzC,EAAK,UAAUmiB,IAAaI,EAAU;AACjD,cAAI9f,GAAK,SAAS,KAAK,KAAK,KAAKA,EAAI,KACjC4e,EAAc,YAAY,IAAI9D,EAAO,QAAQ9a,IAAM4e,GAAeF,EAAYgB,IAAaI,EAAU,CAAC,CAAC;AAAA,YAE/H;AACgB,YAAID,OAAe,KACfhB,KAAcf,EAAe,YAAYvgB,EAAK,SAAS,KAGvDshB,KAAcf,EAAe,YAAY+B,KAAaD,GAAY,QAElET,KAAe;AAAA,UAEnC;AAAA,QACA;AAEQ,YAAIA,MAAgBjF,MAAgBR,EAAQ,cAAcjP,CAAO;AAC7D;AAGI,gBAFIqU,MAAoB,SAASrU,MAAY,OAAOA,MAAY,SAC5DqU,KAAmB,SACnBF,EAAc,eAAenU,GAAS;AAEtC,cAAAmU,EAAc,MAAM,CAAC,IAAIF,EAAY,IAAI,KAAK,IAAIG,IAAaS,EAAS,CAAC,EAAE,CAAC,GAC5E9B,EAAM,IAAK,GACXoB,QAAoBlE,EAAO,SAAS8C,CAAK;AACzC;AAAA,YACpB,OACqB;AACD,kBAAIiC,KAAgBb,EAAc;AAElC,kBAAIX,EAAyBwB,EAAa,KAClCxB,EAAyBwB,EAAa,EAAEhV,CAAO,GAAG;AAClD,gBAAA+S,EAAM,IAAK,GACXoB,QAAoBlE,EAAO,SAAS8C,CAAK;AACzC;AAAA,cAC5B;AAGoB;AAAA,YACpB;AAAA;AAAA,IAGA;AACI,WAAOA;AAAA,EACX;AACA,EAAA1jB,EAAA,aAAqBqkB;AAKrB,WAASpP,EAAMxR,GAAMhF,GAAS;AAC1B,IAAIA,MAAY,WAAUA,IAAU,CAAA;AAmCpC,aAlCIilB,IAAQW,EAAW5gB,GAAMhF,CAAO,GAChC/B,IAAOgnB,EAAM,CAAC,GACduC,IAAU,WAAY;AAEtB,UAAIC,IAAOxC,EAAM,IAAK,GAClByC,QAAgBvF,EAAO,SAAS8C,CAAK;AACzC,MAAIwC,EAAK,cAAcA,EAAK,WAAW,eAC/BA,EAAK,eAAeC,KAAaD,EAAK,YAAYC,EAAU,UAGxD1nB,EAAQ,wBAAwB,OAChC0nB,EAAU,YAAYD,CAAI,GAC1BA,EAAK,WAAW,QAAQ,SAAU1kB,GAAO;AACrC,QAAA2kB,EAAU,WAAW,YAAY3kB,CAAK;AAAA,MAC9D,CAAqB,GACDkiB,EAAM,IAAK,KAOXjlB,EAAQ,wBAAwB,OAChC0nB,EAAU,YAAYD,CAAI,GAC1BA,EAAK,WAAW,QAAQ,SAAU1kB,GAAO;AACrC,QAAA2kB,EAAU,YAAY3kB,CAAK;AAAA,MACnD,CAAqB;AAAA,IAOhB,GACMkiB,EAAM,SAAS;AAClB,MAAAuC,EAAS;AAOb,WAAOvpB;AAAA,EACX;AACA,EAAAsD,EAAA,QAAgBiV;AAChB,WAASgO,EAAY3W,GAAOlJ,GAAQ;AAChC,WAAOkJ,EAAM,IAAI,SAAUhQ,GAAM;AAC7B,aAAAA,EAAK,aAAa8G,GACX9G;AAAA,IACf,CAAK;AAAA,EACL;;;;;;AChsCA,WAAO,eAAcf,GAAU,cAAc,EAAE,OAAO,IAAM,GAC5DA,EAAA,UAAkB;AAClB,QAAI6qB,IAAgCllB,gBAAAA,GAAA;AACpC,WAAO,eAAe3F,GAAS,WAAW,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAO6qB,EAAO;AAAA,IAAM,EAAI,CAAA;AAAA;;;;;UCHzG,OAAO,eAAeC,IAAS,cAAc,EAAE,OAAO,IAAM;AAC5D,MAAID,IAAgCllB,gBAAAA,GAAA;AAKpC,WAASolB,EAAM7iB,GAAMhF,GAAS;AAC1B,IAAIA,MAAY,WAAUA,IAAU,CAAA;AACpC,QAAIilB,QAAY0C,EAAO,YAAY3iB,GAAMhF,CAAO;AAChD,WAAeilB,EAAM,WAAW;AAAA,EACpC;AACA2C,SAAAA,GAAA,UAAkBC;;;;;;ACXlB,MAAIpkB,IAAmBlB,KAAQA,EAAK,mBAAoB,SAAUmB,GAAK;AACnE,WAAQA,KAAOA,EAAI,aAAcA,IAAM,EAAE,SAAWA,EAAK;AAAA,EAC5D;AACD,SAAO,eAAeokB,GAAS,cAAc,EAAE,OAAO,IAAM,GAC5DA,EAAA,WAAmBA,EAAA,WAAmBA,EAAA,OAAeA,EAAa,QAAGA,EAAmB,cAAGA,EAAmB,cAAGA,EAAa,QAAG;AACjI,MAAIxF,IAAY7e,sBAA0C;AACvC,EAAAqkB,EAAA,cAAGxF,EAAU;AAChC,MAAIqF,IAASlkB,sBAAuC;AACjC,EAAAqkB,EAAA,cAAGH,EAAO;AAC7B,MAAI/jB,IAASH,sBAAuC;AACxC,EAAAqkB,EAAA,OAAGlkB,EAAO;AACtB,MAAI2e,IAAS9e,sBAAuC;AACpC,EAAAqkB,EAAA,WAAGvF,EAAO;AAC1B,MAAI1e,IAASJ,sBAAuC;AACpC,EAAAqkB,EAAA,WAAGjkB,EAAO;AAC1B,MAAIoW,IAAUxW,sBAAkC,GAC5CmkB,IAAUnkB,sBAAkC;AACnC,EAAAqkB,EAAA,QAAGF,EAAQ;AACxB,WAASpR,EAAMxR,GAAMhF,GAAS;AAC1B,WAAIA,MAAY,WAAUA,IAAU,CAAA,QACzBia,EAAQ,SAASjV,GAAMhF,CAAO;AAAA,EAC7C;AACA,SAAA8nB,EAAA,UAAkBtR,GAClBsR,EAAA,QAAgBtR,GAChBA,EAAM,QAAQyD,EAAQ,SACtBzD,EAAM,cAAcmR,EAAO,SAC3BnR,EAAM,cAAc8L,EAAU,SAC9B9L,EAAM,QAAQoR,EAAQ,SACtBpR,EAAM,OAAO5S,EAAO,SACpB4S,EAAM,WAAW+L,EAAO,SACxB/L,EAAM,WAAW3S,EAAO;;;;;UC9BxB,OAAO,eAAekkB,GAAS,cAAc,EAAE,OAAO,IAAM,GAC5CA,EAAA,WAAGA,cAAoBA,EAAA,gBAAwBA,EAAiB,YAAGA,EAAiB,YAAGA,EAAiC,4BAAGA,gBAAsBA,EAAA,eAAuBA,EAAwB,mBAAGA,aAAmBA,EAAA,eAAuB;AAC7P,QAAMC,IAAWvlB,GAAmB,GAI9BwlB,IAAe,CAAC1jB,MAAMA,EAAE,QAAQ,cAAc,EAAE;AACtD,EAAAwjB,EAAA,eAAuBE;AACvB,QAAMC,IAAW,CAACC,GAAQC,MAAgB,GAAGA,CAAW,GAAGD,CAAM,GAAGC,CAAW;AAC/E,EAAAL,EAAA,WAAmBG;AACnB,QAAMG,IAAmB,CAAC9jB,MAAM,CAAC,KAAK,KAAKA,CAAC;AAC5C,EAAAwjB,EAAA,mBAA2BM;AAI3B,WAASC,EAAa/jB,GAAG;AACrB,UAAMgkB,IAAQ,CAAE,GACVC,IAASjkB,EAAE;AACjB,aAASC,IAAI,GAAGsd,IAAW,GAAGtd,IAAIgkB,GAAQ,EAAEhkB,GAAG;AAC3C,UAAIoF,IAAOrF,EAAE,OAAOC,CAAC,GACjBikB,IAAc;AAClB,MAAI7e,MAAS,OACT6e,IAAelkB,EAAE,OAAOC,IAAI,CAAC,MAAM;AAAA,IAAQ;AAAA,IAASoF,IAC/CA,MAAS;AAAA,MACd6e,IAAc7e;AAClB,YAAMmY,IAAS0G,IAAcjkB,IACzBA,MAAOgkB,IAAS,IAAKhkB,IAAI,IACrB;AACR,MAAIud,MAAW,WAEfwG,EAAM,KAAK;AAAA,QACP,MAAMhkB,EAAE,MAAMud,GAAUC,CAAM;AAAA,QAC9B,aAAA0G;AAAA,MACZ,CAAS,GACD3G,IAAWC,IAAS0G,EAAY,QAC5BA,EAAY,SAAS,KACrB,EAAEjkB;AAAA,IACd;AACI,WAAO+jB;AAAA,EACX;AACA,EAAAR,EAAA,eAAuBO;AAIvB,WAASI,EAAYxE,GAASkE,GAAa;AAIvC,IAD+BlE,EAAQ,QAAQkE,CAAW,KAC5B,MAC1BlE,IAAUA,EAAQ,QAAQ,IAAI,OAAO,cAAckE,EAAY,MAAM,EAAE,EAAE,KAAK,IAAI,CAAC,IAAI,IAAI,GAAG,IAAI;AACtG,UAAMG,IAAQD,EAAapE,CAAO;AAClC,QAAI7mB,IAAM;AACV,eAAW,EAAE,MAAAoK,GAAM,aAAAghB,EAAW,KAAMF,GAAO;AACvC,UAAI/jB,IAAI,GACJsd,GACAC;AACJ,aAAOvd,KAAK,KAAKA,IAAIiD,EAAK;AACtB,QAAI,OAAO,KAAKA,EAAKjD,CAAC,CAAC,MACfsd,MAAa,UACbA,IAAWtd,GACXA,IAAIiD,EAAK,WAGTsa,IAASvd,GACTA,IAAI,OAGRsd,MAAa,SACb,EAAEtd,IAEF,EAAEA;AAGV,UAAIsd,MAAa,QAAW;AACxB,QAAAzkB,KAAOoK,IAAOghB;AACd;AAAA,MACZ;AACQ,MAAI1G,MAAW,WACXA,IAASta,EAAK,SAAS;AAC3B,YAAMkhB,IAAe7G,IAAW,IAAIra,EAAKqa,IAAW,CAAC,IAAI,IACnD8G,IAAgB7G,IAAUta,EAAK,SAAS,IAAKA,EAAKsa,IAAS,CAAC,IAAI,IAChE8G,IAAaphB,EAAK,MAAMqa,GAAUC,IAAS,CAAC;AAClD,MAAA1kB,KAAOsrB,IAAeP,IAAcS,IAAaT,IAAcQ,IAAgBH;AAAA,IACvF;AACI,WAAOprB;AAAA,EACX;AACA,EAAA0qB,EAAA,cAAsBW;AACtB,QAAMI,IAA4B,CAACvkB,MAAM;AACrC,UAAMlH,IAAM,EAAE,YAAY,GAAG,UAAU,EAAG,GACpC0rB,IAAO,KAAK,IAAIxkB,EAAE,SAAS,IAAI,CAAC;AACtC,aAASC,IAAID,EAAE,SAAS,GAAGC,KAAKukB,GAAM,EAAEvkB,GAAG;AACvC,YAAMiU,IAAQlU,EAAE,MAAMC,GAAGA,IAAI,CAAC;AAC9B,UAAI,CAAC,KAAK,KAAKiU,CAAK;AAChB;AACJ,QAAEpb,EAAI,YACF,CAAC,MAAM;AAAA,CAAI,EAAE,SAASob,CAAK,KAC3B,EAAEpb,EAAI;AAAA,IAClB;AACI,WAAOA;AAAA,EACV;AACD,EAAA0qB,EAAA,4BAAoCe;AAMpC,QAAME,IAAY,CAACtrB,GAAGkC,MAAUlC,IAAMkC,MAAU,SAAaA,IAAQ,OAAOlC,CAAC,IAAK;AAClF,EAAAqqB,EAAA,YAAoBiB;AAKpB,WAASC,EAAsB1nB,GAAM;AACjC,QAAI;AACA,UAAI,EAAmD,QAAO,aAAe,IAAI,OAAO,UAAS,EAAI,gBAAgB,IAAI,WAAW;AAChI;AAAA,IACZ,QACe;AACP;AAAA,IACR;AAEI,QAAIiS;AACJ,QAAI;AACA,MAAAA,IAAM,SAAS,eAAe,mBAAmB,EAAE,EAAE,KAAM;AAAA,IACnE,SACW4L,GAAG;AACN,YAAM,EAAE,eAAA8J,EAAa,IAAK;AAC1B,UAAIA,GAAe;AACf,cAAM1V,IAAM0V,EAAc,UAAU;AACpC,eAAA1V,EAAI,aAAa,MACVA,EAAI,KAAM;AAAA,MAC7B;AACQ,YAAM4L;AAAA,IACd;AAEI,WAAA5L,EAAI,MAAM,yBAAyBjS,IAAO,uBAAuB,GACjEiS,EAAI,MAAO,GACJA,EAAI;AAAA,EACf;AACA,QAAM2V,IAAoB,MAAM;AAC5B,QAAI;AACA,aAAkCniB,GAAA,EAAC;AAAA,IAC3C,QACe;AACP;AAAA,IACR;AAAA,EACC;AAID,WAASoiB,EAAU7nB,GAAMvB,GAAS;AAC9B,QAAIqpB;AAEJ,IAAAC,EAAU,OAAO;AACjB,QAAIlsB;AACJ,QAAI4C,EAAQ;AACR,UAAI;AACA,QAAA5C,IAAK6rB,EAAsB1nB,CAAI;AAAA,MAC3C,SACe6d,GAAG;AAEN,YADAiK,IAAgBF,EAAmB,GAC/BE;AACA,kBAAQ,KAAK,uDAAuDjK,CAAC;AAAA;AAErE,gBAAMA;AAAA,MACtB;AAAA;AAGQ,MAAAiK,IAAgBF,EAAmB;AACvC,WAAK/rB,MACDA,IAAKisB,EAAc9nB,GAAMymB,EAAS,oBAAoB,IAC1DuB,EAAS,OAAO,GACTnsB;AAAA,EACX;AACA,EAAA2qB,EAAA,YAAoBqB;AACpB,WAASI,EAAc3rB,GAAM;AACzB,QAAI,CAAC4rB,EAAW5rB,EAAK,UAAU;AAC3B,aAAOA,EAAK;AAChB,UAAMR,IAAM,CAAE;AACd,WAAAQ,EAAK,WAAW,QAAQ,CAAA4G,MAAKpH,EAAI,KAAKoH,CAAC,CAAC,GACjCpH;AACP,aAASosB,EAAW/rB,GAAG;AACnB,aAAQA,KAAK,QAAU,OAAOA,EAAE,OAAO,QAAQ,KAAM;AAAA,IAC7D;AAAA,EACA;AACA,EAAAqqB,EAAA,gBAAwByB;AACxB,WAASF,EAAUI,GAAO;AACtB,IAAI,QAAQ,IAAI,YACZ,QAAQ,KAAKA,CAAK;AAAA,EAC1B;AACA,EAAA3B,EAAA,YAAoBuB;AACpB,WAASC,EAASG,GAAO;AACrB,IAAI,QAAQ,IAAI,YACZ,QAAQ,QAAQA,CAAK;AAAA,EAC7B;AACA,SAAA3B,EAAA,WAAmBwB;;;;;ACnMnB,WAAO,eAAczsB,GAAU,cAAc,EAAE,OAAO,IAAM,GAC5DA,EAA+B,uBAAAA,EAAA,uBAA+BA,EAAsC,8BAAAA,EAAA,4BAAoCA,EAAmC,2BAAAA,EAAA,wBAAgCA,EAA6B,qBAAAA,EAAA,iBAAyBA,EAA8B,sBAAAA,EAAA,wBAAgCA,EAA+B,uBAAA;AAC9V,UAAM6sB,IAAclnB,GAAsB,GACpCmnB,IAAe5iB,GAAuB;AAI5C,IAAAlK,EAA+B,uBAAA;AAAA,MAC3B;AAAA,MAAW;AAAA,MAAW;AAAA,MAAS;AAAA,MAAS;AAAA,MAAc;AAAA,MAAQ;AAAA,MAAU;AAAA,MAAU;AAAA,MAAM;AAAA,MAAO;AAAA,MAAO;AAAA,MACtG;AAAA,MAAM;AAAA,MAAY;AAAA,MAAc;AAAA,MAAU;AAAA,MAAU;AAAA,MAAQ;AAAA,MAAY;AAAA,MAAM;AAAA,MAAM;AAAA,MAAM;AAAA,MAAM;AAAA,MAAM;AAAA,MACtG;AAAA,MAAU;AAAA,MAAU;AAAA,MAAM;AAAA,MAAQ;AAAA,MAAW;AAAA,MAAM;AAAA,MAAQ;AAAA,MAAQ;AAAA,MAAO;AAAA,MAAY;AAAA,MAAY;AAAA,MAClG;AAAA,MAAU;AAAA,MAAK;AAAA,MAAO;AAAA,MAAW;AAAA,MAAS;AAAA,MAAS;AAAA,MAAM;AAAA,MAAS;AAAA,MAAM;AAAA,MAAS;AAAA,MAAM;AAAA,IAC1F,GACDA,EAAgC,wBAAA;AAAA,MAC5B;AAAA,MAAQ;AAAA,MAAQ;AAAA,MAAO;AAAA,MAAW;AAAA,MAAS;AAAA,MAAQ;AAAA,MAAS;AAAA,MAAU;AAAA,MAAQ;AAAA,MAAQ;AAAA,MAAS;AAAA,MAC/F;AAAA,MAAU;AAAA,MAAS;AAAA,MAAS;AAAA,IAC/B,GACDA,EAAA,sBAA8B,CAAC,MAAM,MAAM,KAAK,GAMhDA,EAAyB,iBAAA,OAAO,OAAO;AAAA,MACnC,oBAAoB;AAAA,MACpB,WAAW;AAAA,MACX,cAAc;AAAA,MACd,QAAQ;AAAA,MACR,gBAAgB;AAAA,MAChB,aAAa;AAAA,MACb,iBAAiB;AAAA,MACjB,iBAAiB;AAAA,MACjB,wBAAwB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAYxB,cAAc,CAAC,kBAAkB,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAcvC,iBAAiB;AAAA,QACb;AAAA,QACA;AAAA,MACH;AAAA,MACD,gBAAgB;AAAA,IACpB,CAAC,GAKDA,EAA6B,qBAAA;AAAA;AAAA,MAEzB,KAAO,EAAE,UAAU,IAAM,oBAAoB,GAAM;AAAA;AAAA,MAEnD,IAAM,EAAE,SAAS;AAAA,GAAQ,SAAS,GAAO;AAAA;AAAA,MAEzC,IAAM,EAAE,SAAS,OAAO,SAAS,GAAO;AAAA;AAAA,MAExC,qBAAqB,CAAC,EAAE,MAAAe,SAAY;AAAA,QAChC,QAAQ,IAAI,OAAO,CAACA,EAAK,QAAQ,OAAO,CAAC,CAAC,IAAI;AAAA,MACtD;AAAA;AAAA,MAEI,YAAY;AAAA,QACR,sBAAsB;AAAA,QACtB,aAAa,CAAC,EAAE,SAAAqmB,GAAS,SAAS,EAAE,iBAAA2F,EAAe,YAAaF,EAAY,kBAAkBzF,CAAO,IAC/F0F,EAAa,kBAAkB,iBAC3BD,EAAY,aAAazF,GAAS2F,CAAe;AAAA,MAC9D;AAAA;AAAA,MAED,gBAAgB;AAAA,QACZ,sBAAsB;AAAA,QACtB,aAAa,CAAC,EAAE,SAAA3F,GAAS,SAAS,EAAE,iBAAA4F,EAAe,YAAaH,EAAY,kBAAkBzF,CAAO,IAC/F0F,EAAa,kBAAkB,iBAC3BD,EAAY,aAAazF,GAAS4F,CAAe;AAAA,MAC9D;AAAA;AAAA,MAED,QAAQ;AAAA,QACJ,sBAAsB;AAAA,QACtB,aAAa,CAAC,EAAE,SAAA5F,GAAS,SAAS,EAAE,aAAA6F,EAAW,YAAaJ,EAAY,kBAAkBzF,CAAO,IAC3F0F,EAAa,kBAAkB,iBAC3BD,EAAY,aAAazF,GAAS6F,CAAW;AAAA,MAC1D;AAAA;AAAA,MAED,SAAS,CAAC,EAAE,UAAAC,SAAgB;AAAA,QACxB,qBAAqBA,IAAW,IAAI;AAAA,MAC5C;AAAA;AAAA,MAEI,IAAM,CAAC,EAAE,SAAS,EAAE,cAAAC,EAAc,GAAE,aAAAC,GAAa,UAAAF,GAAU,gBAAAG,QAAqB;AAC5E,cAAMC,IAAmB,EAAEF,KAAe;AAC1C,eAAO;AAAA,UACH,QAAQ,MAAM,OAAO,EAAEA,KAAe,EAAE,KACjCF,MAAa,QAAUG,MAAmB,SAAc,GAAGA,CAAc,OAAO,GAAGF,CAAY;AAAA,UACtG,qBAAqB;AAAA,UACrB,aAAa,CAAC,EAAE,SAAA/F,EAAO,UAAWyF,EAAY,kBAAkBzF,CAAO,IACjE0F,EAAa,kBAAkB,aAC/B1F,EACG,KAAI,EACJ,QAAQ,wBAAwB;AAAA,EAAS,MAAM,OAAOkG,CAAgB,CAAC,EAAE,EACzE,QAAQ,uBAAuB,MAAM;AAAA,QACjD;AAAA,MACJ;AAAA;AAAA,MAED,YAAc;AAAA,QACV,aAAa,CAAC,EAAE,SAAAlG,EAAS,UAASyF,EAAY,cAAczF,CAAO,EAAE,QAAQ,qBAAqB,MAAM;AAAA,MAC3G;AAAA;AAAA,MAED,MAAQ,CAAC,EAAE,MAAArmB,GAAM,QAAA8G,GAAQ,SAAS,EAAE,WAAA0lB,GAAW,gBAAAC,KAAkB,SAAA1sB,QAAc;AAC3E,YAAI0H,GAAIK;AAGR,YAAI,EAFgB,CAAC,OAAO,aAAa,EAAE,SAAyDhB,GAAO,OAAO,KAAKA,EAAO,WAAW,SAAS;AAG9I,iBAAO;AAAA,YACH,sBAAsB;AAAA,YACtB,UAAU;AAAA,YACV,aAAa,CAAC,EAAE,SAAAuf,QAAc;AAC1B,kBAAI5e,GAAIK;AAER,oBAAM4kB,IAAY,SAAS5kB,KAAML,IAAK4e,EAAQ,MAAM,KAAK,OAAO,QAAQ5e,MAAO,SAAS,SAASA,EAAG,KAAK,CAACwM,GAAGxO,MAAMA,EAAE,SAASwO,EAAE,MAAM,OAAO,QAAQnM,MAAO,SAAS,SAASA,EAAG,CAAC,MAAM,KAClL6kB,IAAUD,EAAU,SAAS,IAAI,MAAM;AAC7C,yBAAWZ,EAAY,cAAcA,EAAY,UAAUzF,GAASsG,CAAO,GAAGD,CAAS;AAAA,YAC3G;AAAA,UACa;AAEL,YAAID,MAAmB,UAAU;AAC7B,gBAAMG,MAAa9kB,KAAML,IAAKzH,EAAK,aAAa,OAAO,OAAO,QAAQyH,MAAO,SAAS,SAASA,EAAG,MAAM,gBAAgB,OAAO,QAAQK,MAAO,SAAS,SAASA,EAAG,CAAC,MAAM;AAC1K,iBAAO;AAAA,YACH,UAAU;AAAA,YACV,QAAQ0kB,IAAYI,IAAW;AAAA;AAAA,YAC/B,SAAS;AAAA,IAAOJ;AAAA,YAChB,kBAAkBzsB,EAAQ,SAAS;AAAA,UACtC;AAAA,QACb;AAEY,iBAAO;AAAA,YACH,UAAU;AAAA,YACV,aAAa,CAAC,EAAE,SAAAsmB,EAAS,MAAKA,EAAQ,QAAQ,OAAO,MAAM;AAAA,YAC3D,kBAAkBtmB,EAAQ,SAAS;AAAA,UACtC;AAAA,MAER;AAAA;AAAA,MAED,OAAS,CAAC,EAAE,SAAAA,SAAe;AAAA,QACvB,qBAAqB;AAAA,QACrB,kBAAkBA,EAAQ,SAAS;AAAA,QACnC,aAAa,CAAC,EAAE,SAAAsmB,GAAS,cAAAlmB,GAAc,MAAAH,EAAI,MAAO;AAE9C,gBAAM6sB,QAAcf,EAAY,cAAczF,CAAO,EAAE,IAAI,CAAC,EAAE,MAAAzc,EAAM,MAAKA,EAAK,QAAQ,4BAA4B,IAAI,CAAC,GAEjHkjB,IAAO,CAAE;AACf,cAAIC,IAAW,CAAE;AACjB,qBAAWC,KAAOH,GAAS;AACvB,gBAAI,CAACG;AACD;AAEJ,kBAAMC,IAAOD,EAAI,MAAM,IAAI,EAAE,IAAI,CAACjjB,GAAGpD,OACjCoD,IAAIA,EAAE,KAAM,IACRgjB,EAAS,SAASpmB,IAAI,KAAKomB,EAASpmB,CAAC,IAAIoD,EAAE,YAC3CgjB,EAASpmB,CAAC,IAAIoD,EAAE,SACbA,EACV;AACD,YAAA+iB,EAAK,KAAKG,CAAI;AAAA,UAC9B;AACY,cAAIH,EAAK,SAAS;AACd,mBAAOf,EAAa,kBAAkB;AAE1C,gBAAMmB,IAAUH,EAAS;AACzB,cAAIvtB,IAAM;AACV,gBAAM2tB,IAAUhtB,EAAa,IAAIH,CAAI,EAAE,UAAU;AACjD,iBAAImtB,MACA3tB,KAAO2tB,IAAU;AAAA,IACrBL,EAAK,QAAQ,CAACG,GAAMG,MAAc;AAC9B,gBAAI3lB;AACJ,YAAAjI,KAAO;AAEP,qBAASmH,IAAI,GAAGA,IAAIumB,GAASvmB,KAAK;AAC9B,kBAAIoD,KAAMtC,IAAKwlB,EAAKtmB,CAAC,OAAO,QAAQc,MAAO,SAASA,IAAK;AACzD,cAAAsC,KAAK,IAAI,OAAO,KAAK,IAAI,GAAIgjB,EAASpmB,CAAC,IAAIoD,EAAE,MAAQ,CAAA,GACrDvK,KAAOuK,IAAI,QAAQpD,IAAIumB,IAAU,IAAI,MAAM;AAAA,YAC/D;AACgB,YAAA1tB,KAAO;AAAA,GAEH4tB,MAAc,MACd5tB,KAAO,MAAMutB,EAAS,IAAI,CAAAM,MAAK,MAAM,IAAI,OAAOA,CAAC,IAAI,IAAI,EAAE,KAAK,EAAE,IAAI;AAAA;AAAA,UAC1F,CAAa,GACM7tB;AAAA,QACnB;AAAA,MACA;AAAA;AAAA,MAEI,GAAK,CAAC,EAAE,MAAAQ,GAAM,SAAAmC,GAAS,SAAApC,EAAO,MAAO;AACjC,cAAMuW,IAAOtW,EAAK,aAAa,MAAM;AACrC,YAAI,CAACsW;AACD,iBAAO,CAAE;AAEb,YAAIgX,IAAc;AAClB,mBAAWC,KAAOjX;AACd,kBAAQiX,GAAG;AAAA,YACP,KAAK;AACD,cAAAD,KAAe;AACf;AAAA,YACJ,KAAK;AACD,cAAAA,KAAe;AACf;AAAA,YACJ,KAAK;AACD,cAAAA,KAAe;AACf;AAAA,YACJ,KAAK;AACD,cAAAA,KAAe;AACf;AAAA,YACJ;AACI,cAAAA,KAAeC;AAAA,UACnC;AAEQ,cAAMC,IAAQxtB,EAAK,aAAa,OAAO;AAGvC,eAAIA,EAAK,gBAAgBsW,KAAQnU,EAAQ,iBAC9B,EAAE,SAAS,IAAImrB,CAAW,IAAK,IACnC;AAAA,UACH,aAAa,CAAC,EAAE,SAAAjH,EAAS,MAAKA,EAAQ,QAAQ,eAAe,GAAG;AAAA,UAChE,kBAAkBtmB,EAAQ,SAAS;AAAA,UACnC,QAAQ;AAAA,UACR,SAAS,OAAQoC,EAAQ,8BAEnB,IAAIpC,EAAQ,sBAAsButB,CAAW,CAAC,MAD9C,IAAIA,CAAW,GAAGE,IAAQ,KAAKA,CAAK,MAAM,EAAE;AAAA,QAErD;AAAA,MACJ;AAAA;AAAA,MAED,KAAO,CAAC,EAAE,MAAAxtB,GAAM,SAAAmC,QAAc;AAC1B,cAAMsrB,IAAMztB,EAAK,aAAa,KAAK,KAAK;AACxC,YAAI,CAACytB,KAAQ,CAACtrB,EAAQ,kBAAkB,UAAU,KAAKsrB,CAAG;AACtD,iBAAO,EAAE,QAAQ,GAAM;AAC3B,cAAMC,IAAM1tB,EAAK,aAAa,KAAK,KAAK,IAClCwtB,IAAQxtB,EAAK,aAAa,OAAO,KAAK;AAC5C,eAAO;AAAA,UACH,SAAS,KAAK0tB,CAAG,KAAKD,CAAG,GAAGD,KAAS,KAAKA,CAAK,GAAG;AAAA,UAClD,SAAS;AAAA,QACZ;AAAA,MACJ;AAAA,IACJ,GACDvuB,EAAgC,wBAAA;AAAA;AAAA,MAE5B,SAAW,CAAC,EAAE,SAAAc,SAAe;AAAA,QACzB,qBAAqB;AAAA,QACrB,kBAAkBA,EAAQ,SAAS;AAAA,QACnC,aAAa,CAAC,EAAE,SAAAsmB,GAAS,cAAAlmB,GAAc,MAAAH,EAAI,MAAO;AAC9C,gBAAMmtB,IAAU9G,EAAQ,QAAQ,eAAe,GAAG,EAAE,KAAM;AAC1D,iBAAI8G,MACAhtB,EAAa,IAAIH,CAAI,EAAE,UAAU,UAAU,OAAOmtB,IAAU,OACzDpB,EAAa,kBAAkB;AAAA,QACzC;AAAA,MACT;AAAA;AAAA,MAEI,IAAM,CAAC,EAAE,SAAAhsB,SAAe;AAAA,QACpB,qBAAqB;AAAA,QACrB,kBAAkBA,EAAQ,SAAS;AAAA,QACnC,SAAS;AAAA;AAAA,QACT,QAAQ;AAAA,QACR,aAAa,CAAC,EAAE,SAAAsmB,EAAS,MAAM,UAAU,KAAKA,CAAO,IAAgDA,IAA5C0F,EAAa,kBAAkB;AAAA,MAChG;AAAA;AAAA,MAEI,SAAS,CAAC,EAAE,SAAAhsB,SAAe;AAAA,QACvB,qBAAqB;AAAA,QACrB,kBAAkBA,EAAQ,SAAS;AAAA,QACnC,QAAQ;AAAA,QACR,SAAS;AAAA,QACT,aAAa,CAAC,EAAE,SAAAsmB,EAAO,UAAWyF,EAAY,cAAczF,CAAO,EAC9D,QAAQ,KAAK,KAAK,EAClB,QAAQ,eAAe,GAAG,EAC1B,KAAI;AAAA,MACjB;AAAA,IACC,GACDpnB,EAAmC,2BAAA;AAAA,MAC/B,SAASA,EAAQ,sBAAsB,OAAO;AAAA,IACjD,GACDA,EAAoC,4BAAA;AAAA,MAChC,GAAKA,EAAQ,mBAAmB;AAAA,MAChC,YAAYA,EAAQ,mBAAmB,UAAU;AAAA,MACjD,gBAAgBA,EAAQ,mBAAmB,cAAc;AAAA,MACzD,QAAQA,EAAQ,mBAAmB,MAAM;AAAA,MACzC,KAAOA,EAAQ,mBAAmB;AAAA,IACrC,GACDA,EAAsC,8BAAA;AAAA,MAClC,IAAM,EAAE,SAAS;AAAA,GAAM,SAAS,GAAO;AAAA,MACvC,IAAM,EAAE,SAAS,OAAO,SAAS,GAAO;AAAA,MACxC,qBAAqB,EAAE,QAAQ,KAAK,SAAS,IAAK;AAAA,MAClD,SAASA,EAAQ,mBAAmB,OAAO;AAAA,MAC3C,IAAMA,EAAQ,mBAAmB;AAAA,MACjC,IAAM,EAAE,qBAAqB,GAAM;AAAA,MACnC,KAAO,EAAE,SAAS,GAAK;AAAA,IAC1B,GACDA,EAA+B,uBAAA;AAAA,MAC3B,IAAM,EAAE,SAAS;AAAA,GAAM,SAAS,GAAO;AAAA,MACvC,IAAM,EAAE,SAAS;AAAA,GAAM,SAAS,GAAO;AAAA,MACvC,KAAOA,EAAQ,mBAAmB;AAAA,MAClC,YAAYA,EAAQ,mBAAmB,UAAU;AAAA,MACjD,gBAAgBA,EAAQ,mBAAmB,cAAc;AAAA,MACzD,QAAQA,EAAQ,mBAAmB,MAAM;AAAA,MACzC,KAAOA,EAAQ,mBAAmB;AAAA,IACrC,GAQDA,EAA+B,uBAAA;AAAA,MAC3B,kBAAkB;AAAA,MAClB,SAAS;AAAA,MACT,gBAAgB;AAAA,MAChB,mBAAmB;AAAA,QACf,QAAQ;AAAA,QACR,UAAU;AAAA,QACV,OAAO;AAAA,MACf;AAAA,IACC;AAAA;;;;;AC7UD,WAAO,eAAcA,GAAU,cAAc,EAAE,OAAO,IAAM,GAC5DA,EAAA,gBAAwBA,EAAwB,gBAAAA,EAAA,aAAqBA,EAAsB,cAAAA,EAAA,WAAmB;AAC9G,UAAM0uB,IAAgD/oB,gBAAAA,GAAA;AACtD,WAAO,eAAe3F,GAAS,eAAe,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAO0uB,EAAmB;AAAA,IAAc,EAAA,CAAE,GAC/H,OAAO,eAAe1uB,GAAS,YAAY,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAO0uB,EAAmB;AAAA,IAAW,EAAA,CAAE;AAKzH,UAAMC,IAAa,CAAC5tB,MAASA,EAAK,aAAa2tB,EAAmB,SAAS;AAC3E,IAAA1uB,EAAA,aAAqB2uB;AACrB,UAAMC,IAAgB,CAAC7tB,MAASA,EAAK,aAAa2tB,EAAmB,SAAS;AAC9E,IAAA1uB,EAAA,gBAAwB4uB;AACxB,UAAMC,IAAgB,CAAC9tB,MAASA,EAAK,aAAa2tB,EAAmB,SAAS;AAC9E,IAAA1uB,EAAA,gBAAwB6uB;AAAA;;;;;UCdxB,OAAO,eAAe/tB,IAAS,cAAc,EAAE,OAAO,IAAM,GAC5DA,GAAA,0BAAkCA,GAAA,UAAkB;AACpD,QAAMguB,IAAUnpB,GAAkB,GAC5BknB,IAAc3iB,GAAsB,GACpC4iB,IAAethB,GAAuB,GACtC0f,IAAW/S,GAAmB;AAAA,EASpC,MAAM4W,EAAQ;AAAA,IACV,YAAY9tB,GAAU+tB,GAAUC,GAAU;AACtC,WAAK,WAAWhuB,GAChB,KAAK,WAAW+tB,GAChB,KAAK,WAAWC,GAChB,KAAK,eAAe,oBAAI,IAAK,GAC7B,KAAK,iBAAiB,CAAE,GACxB,KAAK,SAAS;AAAA,QACV,MAAM;AAAA,QACN,sBAAsB;AAAA,UAClB,YAAY;AAAA,UACZ,UAAU;AAAA,QAC1B;AAAA,MACS,GACD,KAAK,UAAUhuB,EAAS,SACxB,KAAK,aAAa+tB,CAAQ,GAC1B,KAAK,UAAUA,CAAQ;AAAA,IAC/B;AAAA;AAAA;AAAA;AAAA,IAII,sBAAsBE,GAAK;AACvB,UAAI/Z,IAAK,KAAK,eAAe,UAAU,CAAAga,MAAKA,MAAMD,CAAG;AACrD,aAAI/Z,IAAK,MACLA,IAAK,KAAK,eAAe,KAAK+Z,CAAG,IAAI,IAClC/Z,IAAK;AAAA,IACpB;AAAA,IACI,aAAa1N,GAAGud,GAAUoK,GAAsB;AAC5C,UAAI,CAAC3nB,KAAKud,MAAa;AACnB;AACJ,YAAM,EAAE,QAAA5hB,EAAM,IAAK;AACnB,MAAI4hB,MAAa,WACb5hB,EAAO,OAAOA,EAAO,KAAK,OAAO,GAAG4hB,CAAQ,IAChD5hB,EAAO,SAASgsB,KAAwBhsB,EAAO,KAAK,MAAM,EAAE,MAAMqE,EAAE,CAAC,IAAI,MAAM,MAAMA,GACrFrE,EAAO,2BAA2BypB,EAAY,2BAA2BzpB,EAAO,IAAI;AAAA,IAC5F;AAAA,IACI,eAAeisB,GAAO;AAClB,YAAM,EAAE,UAAAC,EAAQ,IAAK,KAAK,OAAO;AACjC,WAAK,aAAa;AAAA,EAAK,OAAO,KAAK,IAAI,GAAI,CAACD,IAAQC,CAAQ,CAAE,CAAC;AAAA,IACvE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQI,aAAavuB,GAAM;AACf,UAAI8rB,EAAY,WAAW,eAAe;AAC1C,YAAM,EAAE,aAAA0C,MAAgB,KAAK;AAC7B,OAAC,SAASC,EAAMzuB,GAAM;AAClB,YAAIR,IAAM;AACV,gBAAQuuB,EAAQ,YAAY/tB,CAAI,SAAU+tB,EAAQ,eAAe/tB,CAAI,KAAKmqB,EAAS,oBAAoB,SAASnqB,EAAK,OAAO;AACxH,UAAAR,IAAM;AAAA,aAEL;AACD,gBAAMkvB,QAAiB5C,EAAY,eAAe9rB,CAAI;AACtD,cAAK0uB,EAAW;AAMZ,uBAAWxpB,KAASwpB;AAChB,cAAKlvB,IAGDivB,EAAMvpB,CAAK,IAFX1F,IAAMivB,EAAMvpB,CAAK;AAAA,eARL;AACpB,kBAAMypB,IAAaH,EAAYxuB,EAAK,OAAO;AAC3C,aAA6D2uB,GAAW,mBAAoB,OAAOA,KAAe,gBAC9GnvB,IAAM;AAAA,UAC9B;AAAA,QAQA;AACY,eAAOQ,EAAK,WAAWR;AAAA,MAC1B,GAAEQ,CAAI,OACH8rB,EAAY,UAAU,eAAe;AAAA,IACjD;AAAA;AAAA;AAAA;AAAA,IAII,YAAYliB,GAAM3J,GAAU;AACxB,UAAIT,IAAMoK;AAGV,UAF0D3J,GAAS,uBAC/DT,IAAMA,EAAI,QAAQ,QAAQ,GAAG,IACuBS,GAAS;AAC7D,eAAOT;AACX,YAAM,EAAE,iBAAAovB,GAAiB,cAAAC,GAAc,aAAAC,EAAa,IAAG,KAAK;AAK5D,UAJAtvB,IAAMA,EACD,QAAQqvB,EAAa,CAAC,GAAGA,EAAa,CAAC,CAAC,EACxC,QAAQD,EAAgB,CAAC,GAAGA,EAAgB,CAAC,CAAC,GAE/CE;AACA,mBAAW,CAAClI,GAASF,CAAC,KAAKoI;AACvB,UAAAtvB,IAAMA,EAAI,QAAQonB,GAASF,CAAC;AACpC,aAAOlnB;AAAA,IACf;AAAA,IACI,UAAUQ,GAAM+uB,GAAU9uB,GAAU;AAChC,UAAIwH,GAAIK,GAAIwa,GAAIC,GACZyM,GAAIC;AACR,YAAM,EAAE,QAAA5sB,EAAM,IAAK;AACnB,UAAI,CAACrC,EAAK;AACN;AAEJ,cAAQ+tB,EAAQ,YAAY/tB,CAAI;AAC5B,eAAIA,EAAK,eACJyH,KAAMunB,IAAKhvB,GAAM,UAAU,QAAQyH,MAAO,WAAeunB,EAAG,OAAOhvB,EAAK,aACxE8H,KAAMmnB,IAAKjvB,GAAM,iBAAiB,QAAQ8H,MAAO,WAAemnB,EAAG,kBAAkBnD,EAAY,cAAc9rB,EAAK,SAAS,KAE3HA,EAAK,gBAAgB,CAAsDC,GAAS,qBACpF,CAACoC,EAAO,KAAK,UAAUA,EAAO,qBAAqB,aAAa,IAAK,SAAS,KAAK,aAAa,GAAG,IACpG,KAAK,aAAa,KAAK,YAAiEpC,GAAS,qBAAsBD,EAAK,OAAOA,EAAK,aAAaC,CAAQ,CAAC;AAExK,UAAI8uB,KAAY,KAAKhB,EAAQ,eAAe/tB,CAAI;AAC5C;AAEJ,YAAMkvB,IAA8EjvB,GAAS,cAAeA,EAAS,YAAYD,EAAK,OAAO,IAAI,KAAK,SAAS,YAAYA,EAAK,OAAO;AAEvL,cAAQA,EAAK,SAAO;AAAA,QAChB,KAAK;AAAA,QACL,KAAK;AACD,UAAAC,IAAW,OAAO,OAAO,OAAO,OAAO,CAAA,GAAIA,CAAQ,GAAG,EAAE,gBAAgB,GAAG,UAAUD,EAAK,SAAS,eAAesiB,IAAyDriB,GAAS,iBAAiB,QAAQqiB,MAAO,SAASA,IAAK,MAAM,EAAC,CAAE;AAC3O;AAAA,QACJ,KAAK;AACD,UAAyDriB,GAAS,aAAc,SAC5EA,EAAS,mBAAmBsiB,IAAKtiB,EAAS,oBAAoB,QAAQsiB,MAAO,SAASA,IAAK,KAAK;AACpG;AAAA,QACJ,KAAK;AACD,UAAAtiB,IAAW,OAAO,OAAO,OAAO,OAAO,IAAIA,CAAQ,GAAG,EAAE,oBAAoB,IAAM;AAClF;AAAA,QACJ,KAAK;AACD,UAAAA,IAAW,OAAO,OAAO,OAAO,OAAO,IAAIA,CAAQ,GAAG,EAAE,WAAW;AAAA,YAC3D,MAAMD;AAAA,UAC9B,GAAuB;AAAA,MACvB;AAIQ,UAHIC,KACA,KAAK,aAAa,IAAID,GAAMC,CAAQ,GAEpC,CAACivB,GAAwB;AACzB,mBAAWhqB,SAAa4mB,EAAY,eAAe9rB,CAAI;AACnD,eAAK,UAAUkF,GAAO6pB,GAAU9uB,CAAQ;AAC5C;AAAA,MACZ;AAEQ,UAAIkvB,GACAC;AAQJ,cAPSrD,EAAa,oBAAoBmD,CAAsB,IAK5DC,IAAMD,KAJNE,QAAUrD,EAAa,yBAAyB,MAAM/rB,GAAMC,GAAUivB,EAAuB,IAAI,GACjGC,IAAM,OAAO,OAAO,OAAO,OAAO,IAAID,EAAuB,IAAI,GAAGA,EAAuBE,CAAG,CAAC,IAK/FD,EAAI;AACJ;AAEJ,MAAIA,EAAI,YAAY,CAAsDlvB,GAAS,aAC/EA,IAAW,OAAO,OAAO,OAAO,OAAO,CAAA,GAAIA,CAAQ,GAAG,EAAE,UAAUkvB,EAAI,SAAQ,CAAE,GAChF,KAAK,aAAa,IAAInvB,GAAMC,CAAQ,IAEpCkvB,EAAI,oBAAqBA,EAAI,qBAA0ElvB,GAAS,gBAChHA,IAAW,OAAO,OAAO,OAAO,OAAO,CAAA,GAAIA,CAAQ,GAAG,EAAE,aAAakvB,EAAI,iBAAgB,CAAE,GAC3F,KAAK,aAAa,IAAInvB,GAAMC,CAAQ;AAExC,YAAMovB,IAAgBhtB,EAAO,KAAK;AAOlC,UALI8sB,EAAI,uBACJ,KAAK,eAAe,CAACA,EAAI,mBAAmB,GAC5CA,EAAI,UACJ,KAAK,aAAaA,EAAI,MAAM,GAE5B,OAAOA,EAAI,WAAY;AACvB,aAAK,aAAaA,EAAI,SAAS,QAAQA,EAAI,oBAAoB;AAAA,WAC9D;AACD,cAAMlL,IAAW5hB,EAAO,KAAK;AAE7B,mBAAW6C,SAAa4mB,EAAY,eAAe9rB,CAAI;AACnD,eAAK,UAAUkF,GAAQiqB,EAAI,YAAY,IAAQlvB,CAAQ;AAE3D,YAAIkvB,EAAI,aAAa;AACjB,gBAAMG,IAAUH,EAAI,YAAY,OAAO,OAAO,OAAO,OAAO,CAAA,GAAKC,SAAWrD,EAAa,yBAAyB,MAAM/rB,GAAMC,CAAQ,CAAC,GAAI,EAAE,SAASoC,EAAO,KAAK,OAAO4hB,CAAQ,EAAG,CAAA,CAAC;AAErL,cAAIqL,MAAYvD,EAAa,kBAAkB;AAC3C,mBAAI/rB,EAAK,YAAY,QAA6DC,GAAS,kBACvF,EAAEA,EAAS,gBACR,KAAK,aAAa,IAAIovB,CAAa;AAE9C,UAAI,OAAOC,KAAY,YACnB,KAAK,aAAaA,GAASrL,GAAUkL,EAAI,oBAAoB;AAAA,QACjF;AAAA,MACA;AAEQ,MAAIA,EAAI,WACJ,KAAK,aAAaA,EAAI,OAAO,GAC7BA,EAAI,uBACJ,KAAK,eAAe,CAACA,EAAI,mBAAmB;AAAA,IACxD;AAAA,EACA;AACA,EAAApvB,GAAA,UAAkBiuB;AAKlB,WAASuB,EAAwBrvB,GAAU+tB,GAAUC,GAAU;AAC3D,QAAIpC,EAAY,WAAW,MAAM;AACjC,UAAM/rB,IAAU,IAAIiuB,EAAQ9tB,GAAU+tB,GAAUC,CAAQ;AACxD,QAAI7rB,IAAStC,EAAQ,OAAO;AAC5B,QAAI+rB,EAAY,UAAU,MAAM,GAG5B5rB,EAAS,QAAQ,gCACb,UAAU,KAAKmC,EAAO,MAAM,EAAE,CAAC,MAC/BA,KAAU;AAAA,IACdtC,EAAQ,eAAe,QAAQ,CAACouB,GAAKxZ,MAAQ;AACzC,MAAAtS,KAAU;AAAA,GAAMsS,IAAM,CAAC,MAAMwZ,CAAG;AAAA,IAC5C,CAAS;AAGL,UAAM,EAAE,wBAAAqB,MAA2BtvB,EAAS;AAC5C,WAAIsvB,MACAntB,IAASA,EAAO,QAAQ,IAAI,OAAO,OAAO,iCAAkCmtB,CAAsB,MAAM,GAAG,GAAG,IAAI,QAC3G1D,EAAY,cAAczpB,CAAM;AAAA,EAC/C;AACA,SAAAtC,GAAA,0BAAkCwvB;;;;;UCzOlC,OAAO,eAAeE,IAAS,cAAc,EAAE,OAAO,IAAM,GACpCA,GAAA,mBAAG;AAC3B,QAAM1D,IAAennB,GAAuB,GACtCulB,IAAWhhB,GAAmB,GAC9B2iB,IAAcrhB,GAAsB,GACpCilB,IAAYtY,GAAoB;AAAA,EAKtC,MAAMuY,EAAiB;AAAA,IACnB,YAAYxtB,GAASytB,GAAmBC,GAA4B;AAChE,UAAIpoB,GAAIK,GAAIwa,GAAIC;AAChB,WAAK,cAAc,IAAIwJ,EAAa,qBAAsB,GAC1D,KAAK,kBAAkB,IAAIA,EAAa,qBAAsB,GAC9D,KAAK,uBAAuB,IAAIA,EAAa,qBAAsB,GACnE,KAAK,mBAAmB,IAAIA,EAAa,qBAAsB,GAC/D,KAAK,sBAAsB,IAAIA,EAAa,qBAAsB,GAClE,KAAK,uBAAuB,IAAIA,EAAa,qBAAsB,GAEnE,KAAK,UAAU,OAAO,OAAO,OAAO,OAAO,CAAA,GAAI5B,EAAS,cAAc,GAAGhoB,CAAO;AAChF,YAAM2tB,KAAmBhoB,KAAML,IAAK,KAAK,QAAQ,YAAY,QAAQA,MAAO,SAAS,SAASA,EAAG,OAAO0iB,EAAS,qBAAqB,OAAO,QAAQriB,MAAO,SAASA,IAAKqiB,EAAS,uBAC7K4F,KAAiBxN,KAAMD,IAAK,KAAK,QAAQ,mBAAmB,QAAQA,MAAO,SAAS,SAASA,EAAG,OAAO6H,EAAS,oBAAoB,OAAO,QAAQ5H,MAAO,SAASA,IAAK4H,EAAS;AAEvL,MAAkE2F,GAAgB,QAAQ,CAAAvwB,MAAM;AAC5F,aAAK,YAAY,IAAIA,GAAI,EAAE,QAAQ,IAAM,SAAS,IAAO,GACzD,KAAK,qBAAqB,IAAIA,GAAI,EAAE,QAAQ,IAAM,SAAS,IAAO;AAAA,MAC9E,CAAS,GAC6DwwB,GAAc,QAAQ,CAAAxwB,MAAM;AACtF,aAAK,YAAY,IAAIA,GAAI,EAAE,qBAAqB,GAAG,GACnD,KAAK,qBAAqB,IAAIA,GAAI,EAAE,qBAAqB,GAAG;AAAA,MACxE,CAAS;AAED,iBAAW,CAACujB,GAAOqM,CAAG,KAAK,OAAO,QAAQ,OAAO,OAAO,OAAO,OAAO,CAAE,GAAEhF,EAAS,kBAAkB,GAAGyF,CAAiB,CAAC;AACtH,aAAK,YAAY,IAAI9M,GAAOqM,GAAK,EAAI;AACzC,iBAAW,CAACrM,GAAOqM,CAAG,KAAK,OAAO,QAAQ,OAAO,OAAO,OAAO,OAAO,CAAE,GAAEhF,EAAS,2BAA2B,GAAG0F,CAA0B,CAAC;AACxI,aAAK,qBAAqB,IAAI/M,GAAOqM,GAAK,EAAI;AAClD,iBAAW,CAACrM,GAAOqM,CAAG,KAAK,OAAO,QAAQhF,EAAS,oBAAoB;AACnE,aAAK,gBAAgB,IAAIrH,GAAOqM,GAAK,EAAI;AAC7C,iBAAW,CAACrM,GAAOqM,CAAG,KAAK,OAAO,QAAQhF,EAAS,qBAAqB;AACpE,aAAK,iBAAiB,IAAIrH,GAAOqM,GAAK,EAAI;AAC9C,iBAAW,CAACrM,GAAOqM,CAAG,KAAK,OAAO,QAAQhF,EAAS,wBAAwB;AACvE,aAAK,oBAAoB,IAAIrH,GAAOqM,GAAK,EAAI;AACjD,iBAAW,CAACrM,GAAOqM,CAAG,KAAK,OAAO,QAAQhF,EAAS,yBAAyB;AACxE,aAAK,qBAAqB,IAAIrH,GAAOqM,GAAK,EAAI;AAElD,MAAK,KAAK,QAAQ,gBACd,KAAK,QAAQ,cAAc,CAAE,IACjC,KAAK,QAAQ,YAAY,KAAK,CAAC,oBAAoB,EAAE,CAAC;AAAA,IAC9D;AAAA,IACI,OAAO,UAAUa,GAAaC,GAAKL,GAAmBC,GAA4B;AAC9E,aAAOF,EAAiB,UAAU,gBAAgB,KAAK,IAAIA,EAAiBM,GAAKL,GAAmBC,CAA0B,GAAGG,CAAW;AAAA,IACpJ;AAAA,IACI,UAAUA,GAAa;AACnB,aAAO,KAAK,gBAAgBA,CAAW;AAAA,IAC/C;AAAA;AAAA;AAAA;AAAA;AAAA,IAKI,gBAAgBA,GAAa;AACzB,YAAME,IAAoB,OAAOF,KAAgB,UAC3CG,IAAcD,IAAiDF,IAA7B,EAAE,SAAWA,EAAa,GAC5DI,IAAc,CAAE;AACtB,iBAAW,CAAClC,GAAUxqB,CAAI,KAAK,OAAO,QAAQysB,CAAU,GAAG;AACvD,cAAME,QAAiBvE,EAAY,WAAWpoB,GAAM,KAAK,OAAO;AAChE,QAAA0sB,EAAYlC,CAAQ,QAAQwB,EAAU,yBAAyB,MAAMW,GAAYnC,MAAa,YAAYA,IAAW,MAAM;AAAA,MACvI;AACQ,aAAOgC,IAAoBE,IAAcA,EAAY;AAAA,IAC7D;AAAA,EACA;AACA,SAAAX,GAAA,mBAA2BE;;;;;ACvE3B,WAAO,eAAc1wB,GAAU,cAAc,EAAE,OAAO,IAAM,GAC5DA,EAA4B,oBAAAA,EAAA,uBAA+BA,EAA2B,mBAAA;AACtF,QAAIqxB,IAAS1rB,GAAiB;AAC9B,WAAO,eAAe3F,GAAS,oBAAoB,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAOqxB,EAAO;AAAA,IAAmB,EAAA,CAAE;AAC7H,QAAIvE,IAAe5iB,GAAuB;AAC1C,WAAO,eAAelK,GAAS,wBAAwB,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAO8sB,EAAa;AAAA,IAAuB,EAAA,CAAE,GAC3I,OAAO,eAAe9sB,GAAS,qBAAqB,EAAE,YAAY,IAAM,KAAK,WAAY;AAAE,aAAO8sB,EAAa;AAAA,IAAoB,EAAA,CAAE;AAAA;;;ACH9H,MAAMwE,KAAsB,CAAC,EAAE,MAAA7wB,QAC9B8wB,GAA2B,OAAOC,MAAW;AAC/C,MAAA;AAEH,UAAMC,IAAW,MAAM,MAAMhxB,EAAK,KAAK,EAAE,QAAA+wB,GAAQ,GAC3CE,IAAW,MAAMD,EAAS,KAAK,GAC/BE,IAAcF,EAAS,QAAQ,IAAI,cAAc,KAAK,IACtDG,IACLF,EAAS,cAAc,SAAS,OAAO,KAAKC,EAAY,SAAS,WAAW;AAGzE,QAAAvK,GACAyK,IAAS;AAGT,IAAAD,KAAU,CAACnxB,EAAK,MAMT2mB,IAJE,IAAIsJ,oBAAiB;AAAA,MAChC,WAAW;AAAA,MACX,gBAAgB;AAAA,IAAA,CAChB,EACa,UAAUgB,CAAQ,KAGtBtK,IAAAsK,GACVG,IAASD,IACN;AAAA,IACA,gBAAgBD,CAAW;AAAA;AAIzB,UAAAG,IAAarxB,EAAK,eAAe,GACjCsxB,IAAYtxB,EAAK,cAAc,KAC/BuxB,IAAiB5K,EAAQ;AAG/B,QAAI0K,KAAcE;AACP,aAAA5K,IAAA,qCACH;AAAA,QACN,QAAQ;AAAA,QACR,QAAQ,GAAGyK,CAAM,eAAepxB,EAAK,GAAG;AAAA,EAAM2mB,CAAO;AAAA,MACtD;AAGD,UAAM6K,IAAmB7K,EAAQ,UAAU0K,GAAYA,IAAaC,CAAS;AAC7E,QAAI,CAACE;AACM,aAAA7K,IAAA,qCACH;AAAA,QACN,QAAQ;AAAA,QACR,QAAQ,GAAGyK,CAAM,eAAepxB,EAAK,GAAG;AAAA,EAAM2mB,CAAO;AAAA,MACtD;AAGS,IAAAA,IAAA6K;AACV,UAAMC,IAAsBD,EAAiB,QACvCE,IAAmBH,KAAkBF,IAAaI;AAGpD,QAAAA,MAAwBH,KAAaI,IAAmB,GAAG;AAC9D,YAAMC,IAAYN,IAAaI;AACpB,MAAA9K,KAAA;AAAA;AAAA,0EAA+EgL,CAAS,mBAAmBL,IAAY,CAAC;AAAA,IAAA;AAG7H,WAAA;AAAA,MACN,QAAQ;AAAA,MACR,QAAQ,GAAGF,CAAM,eAAepxB,EAAK,GAAG;AAAA,EAAM2mB,CAAO;AAAA,IACtD;AAAA,WACQ5c,GAAO;AACf,UAAM,IAAI,MAAM,wBAAyBA,EAAgB,OAAO,EAAE;AAAA,EAAA;AACnE,CACA;","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56]}
|
1
|
+
{"version":3,"file":"node-DPPbAAw0.js","sources":["../../node_modules/.pnpm/node-html-markdown@1.3.0/node_modules/node-html-markdown/dist/translator.js","../../node_modules/.pnpm/he@1.2.0/node_modules/he/he.js","../../node_modules/.pnpm/node-html-parser@6.1.13/node_modules/node-html-parser/dist/nodes/node.js","../../node_modules/.pnpm/node-html-parser@6.1.13/node_modules/node-html-parser/dist/nodes/type.js","../../node_modules/.pnpm/node-html-parser@6.1.13/node_modules/node-html-parser/dist/nodes/comment.js","../../node_modules/.pnpm/domelementtype@2.3.0/node_modules/domelementtype/lib/index.js","../../node_modules/.pnpm/domhandler@5.0.3/node_modules/domhandler/lib/node.js","../../node_modules/.pnpm/domhandler@5.0.3/node_modules/domhandler/lib/index.js","../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/generated/decode-data-html.js","../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/generated/decode-data-xml.js","../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/decode_codepoint.js","../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/decode.js","../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/generated/encode-html.js","../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/escape.js","../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/encode.js","../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/index.js","../../node_modules/.pnpm/dom-serializer@2.0.0/node_modules/dom-serializer/lib/foreignNames.js","../../node_modules/.pnpm/dom-serializer@2.0.0/node_modules/dom-serializer/lib/index.js","../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/stringify.js","../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/traversal.js","../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/manipulation.js","../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/querying.js","../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/legacy.js","../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/helpers.js","../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/feeds.js","../../node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/index.js","../../node_modules/.pnpm/boolbase@1.0.0/node_modules/boolbase/index.js","../../node_modules/.pnpm/css-what@6.1.0/node_modules/css-what/lib/es/types.js","../../node_modules/.pnpm/css-what@6.1.0/node_modules/css-what/lib/es/parse.js","../../node_modules/.pnpm/css-what@6.1.0/node_modules/css-what/lib/es/stringify.js","../../node_modules/.pnpm/css-select@5.1.0/node_modules/css-select/lib/sort.js","../../node_modules/.pnpm/css-select@5.1.0/node_modules/css-select/lib/attributes.js","../../node_modules/.pnpm/nth-check@2.1.1/node_modules/nth-check/lib/parse.js","../../node_modules/.pnpm/nth-check@2.1.1/node_modules/nth-check/lib/compile.js","../../node_modules/.pnpm/nth-check@2.1.1/node_modules/nth-check/lib/index.js","../../node_modules/.pnpm/css-select@5.1.0/node_modules/css-select/lib/pseudo-selectors/filters.js","../../node_modules/.pnpm/css-select@5.1.0/node_modules/css-select/lib/pseudo-selectors/pseudos.js","../../node_modules/.pnpm/css-select@5.1.0/node_modules/css-select/lib/pseudo-selectors/aliases.js","../../node_modules/.pnpm/css-select@5.1.0/node_modules/css-select/lib/pseudo-selectors/subselects.js","../../node_modules/.pnpm/css-select@5.1.0/node_modules/css-select/lib/pseudo-selectors/index.js","../../node_modules/.pnpm/css-select@5.1.0/node_modules/css-select/lib/general.js","../../node_modules/.pnpm/css-select@5.1.0/node_modules/css-select/lib/compile.js","../../node_modules/.pnpm/css-select@5.1.0/node_modules/css-select/lib/index.js","../../node_modules/.pnpm/node-html-parser@6.1.13/node_modules/node-html-parser/dist/back.js","../../node_modules/.pnpm/node-html-parser@6.1.13/node_modules/node-html-parser/dist/matcher.js","../../node_modules/.pnpm/node-html-parser@6.1.13/node_modules/node-html-parser/dist/void-tag.js","../../node_modules/.pnpm/node-html-parser@6.1.13/node_modules/node-html-parser/dist/nodes/text.js","../../node_modules/.pnpm/node-html-parser@6.1.13/node_modules/node-html-parser/dist/nodes/html.js","../../node_modules/.pnpm/node-html-parser@6.1.13/node_modules/node-html-parser/dist/parse.js","../../node_modules/.pnpm/node-html-parser@6.1.13/node_modules/node-html-parser/dist/valid.js","../../node_modules/.pnpm/node-html-parser@6.1.13/node_modules/node-html-parser/dist/index.js","../../node_modules/.pnpm/node-html-markdown@1.3.0/node_modules/node-html-markdown/dist/utilities.js","../../node_modules/.pnpm/node-html-markdown@1.3.0/node_modules/node-html-markdown/dist/config.js","../../node_modules/.pnpm/node-html-markdown@1.3.0/node_modules/node-html-markdown/dist/nodes.js","../../node_modules/.pnpm/node-html-markdown@1.3.0/node_modules/node-html-markdown/dist/visitor.js","../../node_modules/.pnpm/node-html-markdown@1.3.0/node_modules/node-html-markdown/dist/main.js","../../node_modules/.pnpm/node-html-markdown@1.3.0/node_modules/node-html-markdown/dist/index.js","../../core/src/tools/builtin/read_web_page/node.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createTranslatorContext = exports.isTranslatorConfig = exports.TranslatorCollection = exports.PostProcessResult = void 0;\nvar PostProcessResult;\n(function (PostProcessResult) {\n PostProcessResult[PostProcessResult[\"NoChange\"] = 0] = \"NoChange\";\n PostProcessResult[PostProcessResult[\"RemoveNode\"] = 1] = \"RemoveNode\";\n})(PostProcessResult = exports.PostProcessResult || (exports.PostProcessResult = {}));\n// endregion\n/* ****************************************************************************************************************** */\n// region: TranslatorCollection\n/* ****************************************************************************************************************** */\nclass TranslatorCollection {\n get size() { return Object.keys(this).length; }\n /**\n * Add / update translator config for one or more element tags\n */\n set(keys, config, /* @internal */ preserveBase) {\n keys.split(',').forEach(el => {\n el = el.toUpperCase();\n let res = config;\n if (preserveBase) {\n const base = this[el];\n if ((0, exports.isTranslatorConfig)(base))\n res = !(0, exports.isTranslatorConfig)(config)\n ? Object.assign((...args) => config.apply(void 0, args), { base })\n : Object.assign(Object.assign({}, base), config);\n }\n this[el] = res;\n });\n }\n /**\n * Get translator config for element tag\n */\n get(key) {\n return this[key.toUpperCase()];\n }\n /**\n * Returns array of entries\n */\n entries() {\n return Object.entries(this);\n }\n /**\n * Remove translator config for one or more element tags\n */\n remove(keys) {\n keys.split(',').forEach(el => delete this[el.toUpperCase()]);\n }\n}\nexports.TranslatorCollection = TranslatorCollection;\n// endregion\n/* ****************************************************************************************************************** */\n// region: Utilities\n/* ****************************************************************************************************************** */\n/**\n * Only use to narrow union of types where only TranslatorConfig has JS type 'object'\n */\nconst isTranslatorConfig = (v) => typeof v === 'object';\nexports.isTranslatorConfig = isTranslatorConfig;\nfunction createTranslatorContext(visitor, node, metadata, base) {\n const { instance, nodeMetadata, } = visitor;\n return Object.assign({ node, options: instance.options, parent: node.parentNode, nodeMetadata,\n visitor,\n base }, metadata);\n}\nexports.createTranslatorContext = createTranslatorContext;\n// endregion\n//# sourceMappingURL=translator.js.map","/*! https://mths.be/he v1.2.0 by @mathias | MIT license */\n;(function(root) {\n\n\t// Detect free variables `exports`.\n\tvar freeExports = typeof exports == 'object' && exports;\n\n\t// Detect free variable `module`.\n\tvar freeModule = typeof module == 'object' && module &&\n\t\tmodule.exports == freeExports && module;\n\n\t// Detect free variable `global`, from Node.js or Browserified code,\n\t// and use it as `root`.\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t// All astral symbols.\n\tvar regexAstralSymbols = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n\t// All ASCII symbols (not just printable ASCII) except those listed in the\n\t// first column of the overrides table.\n\t// https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides\n\tvar regexAsciiWhitelist = /[\\x01-\\x7F]/g;\n\t// All BMP symbols that are not ASCII newlines, printable ASCII symbols, or\n\t// code points listed in the first column of the overrides table on\n\t// https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides.\n\tvar regexBmpWhitelist = /[\\x01-\\t\\x0B\\f\\x0E-\\x1F\\x7F\\x81\\x8D\\x8F\\x90\\x9D\\xA0-\\uFFFF]/g;\n\n\tvar regexEncodeNonAscii = /<\\u20D2|=\\u20E5|>\\u20D2|\\u205F\\u200A|\\u219D\\u0338|\\u2202\\u0338|\\u2220\\u20D2|\\u2229\\uFE00|\\u222A\\uFE00|\\u223C\\u20D2|\\u223D\\u0331|\\u223E\\u0333|\\u2242\\u0338|\\u224B\\u0338|\\u224D\\u20D2|\\u224E\\u0338|\\u224F\\u0338|\\u2250\\u0338|\\u2261\\u20E5|\\u2264\\u20D2|\\u2265\\u20D2|\\u2266\\u0338|\\u2267\\u0338|\\u2268\\uFE00|\\u2269\\uFE00|\\u226A\\u0338|\\u226A\\u20D2|\\u226B\\u0338|\\u226B\\u20D2|\\u227F\\u0338|\\u2282\\u20D2|\\u2283\\u20D2|\\u228A\\uFE00|\\u228B\\uFE00|\\u228F\\u0338|\\u2290\\u0338|\\u2293\\uFE00|\\u2294\\uFE00|\\u22B4\\u20D2|\\u22B5\\u20D2|\\u22D8\\u0338|\\u22D9\\u0338|\\u22DA\\uFE00|\\u22DB\\uFE00|\\u22F5\\u0338|\\u22F9\\u0338|\\u2933\\u0338|\\u29CF\\u0338|\\u29D0\\u0338|\\u2A6D\\u0338|\\u2A70\\u0338|\\u2A7D\\u0338|\\u2A7E\\u0338|\\u2AA1\\u0338|\\u2AA2\\u0338|\\u2AAC\\uFE00|\\u2AAD\\uFE00|\\u2AAF\\u0338|\\u2AB0\\u0338|\\u2AC5\\u0338|\\u2AC6\\u0338|\\u2ACB\\uFE00|\\u2ACC\\uFE00|\\u2AFD\\u20E5|[\\xA0-\\u0113\\u0116-\\u0122\\u0124-\\u012B\\u012E-\\u014D\\u0150-\\u017E\\u0192\\u01B5\\u01F5\\u0237\\u02C6\\u02C7\\u02D8-\\u02DD\\u0311\\u0391-\\u03A1\\u03A3-\\u03A9\\u03B1-\\u03C9\\u03D1\\u03D2\\u03D5\\u03D6\\u03DC\\u03DD\\u03F0\\u03F1\\u03F5\\u03F6\\u0401-\\u040C\\u040E-\\u044F\\u0451-\\u045C\\u045E\\u045F\\u2002-\\u2005\\u2007-\\u2010\\u2013-\\u2016\\u2018-\\u201A\\u201C-\\u201E\\u2020-\\u2022\\u2025\\u2026\\u2030-\\u2035\\u2039\\u203A\\u203E\\u2041\\u2043\\u2044\\u204F\\u2057\\u205F-\\u2063\\u20AC\\u20DB\\u20DC\\u2102\\u2105\\u210A-\\u2113\\u2115-\\u211E\\u2122\\u2124\\u2127-\\u2129\\u212C\\u212D\\u212F-\\u2131\\u2133-\\u2138\\u2145-\\u2148\\u2153-\\u215E\\u2190-\\u219B\\u219D-\\u21A7\\u21A9-\\u21AE\\u21B0-\\u21B3\\u21B5-\\u21B7\\u21BA-\\u21DB\\u21DD\\u21E4\\u21E5\\u21F5\\u21FD-\\u2205\\u2207-\\u2209\\u220B\\u220C\\u220F-\\u2214\\u2216-\\u2218\\u221A\\u221D-\\u2238\\u223A-\\u2257\\u2259\\u225A\\u225C\\u225F-\\u2262\\u2264-\\u228B\\u228D-\\u229B\\u229D-\\u22A5\\u22A7-\\u22B0\\u22B2-\\u22BB\\u22BD-\\u22DB\\u22DE-\\u22E3\\u22E6-\\u22F7\\u22F9-\\u22FE\\u2305\\u2306\\u2308-\\u2310\\u2312\\u2313\\u2315\\u2316\\u231C-\\u231F\\u2322\\u2323\\u232D\\u232E\\u2336\\u233D\\u233F\\u237C\\u23B0\\u23B1\\u23B4-\\u23B6\\u23DC-\\u23DF\\u23E2\\u23E7\\u2423\\u24C8\\u2500\\u2502\\u250C\\u2510\\u2514\\u2518\\u251C\\u2524\\u252C\\u2534\\u253C\\u2550-\\u256C\\u2580\\u2584\\u2588\\u2591-\\u2593\\u25A1\\u25AA\\u25AB\\u25AD\\u25AE\\u25B1\\u25B3-\\u25B5\\u25B8\\u25B9\\u25BD-\\u25BF\\u25C2\\u25C3\\u25CA\\u25CB\\u25EC\\u25EF\\u25F8-\\u25FC\\u2605\\u2606\\u260E\\u2640\\u2642\\u2660\\u2663\\u2665\\u2666\\u266A\\u266D-\\u266F\\u2713\\u2717\\u2720\\u2736\\u2758\\u2772\\u2773\\u27C8\\u27C9\\u27E6-\\u27ED\\u27F5-\\u27FA\\u27FC\\u27FF\\u2902-\\u2905\\u290C-\\u2913\\u2916\\u2919-\\u2920\\u2923-\\u292A\\u2933\\u2935-\\u2939\\u293C\\u293D\\u2945\\u2948-\\u294B\\u294E-\\u2976\\u2978\\u2979\\u297B-\\u297F\\u2985\\u2986\\u298B-\\u2996\\u299A\\u299C\\u299D\\u29A4-\\u29B7\\u29B9\\u29BB\\u29BC\\u29BE-\\u29C5\\u29C9\\u29CD-\\u29D0\\u29DC-\\u29DE\\u29E3-\\u29E5\\u29EB\\u29F4\\u29F6\\u2A00-\\u2A02\\u2A04\\u2A06\\u2A0C\\u2A0D\\u2A10-\\u2A17\\u2A22-\\u2A27\\u2A29\\u2A2A\\u2A2D-\\u2A31\\u2A33-\\u2A3C\\u2A3F\\u2A40\\u2A42-\\u2A4D\\u2A50\\u2A53-\\u2A58\\u2A5A-\\u2A5D\\u2A5F\\u2A66\\u2A6A\\u2A6D-\\u2A75\\u2A77-\\u2A9A\\u2A9D-\\u2AA2\\u2AA4-\\u2AB0\\u2AB3-\\u2AC8\\u2ACB\\u2ACC\\u2ACF-\\u2ADB\\u2AE4\\u2AE6-\\u2AE9\\u2AEB-\\u2AF3\\u2AFD\\uFB00-\\uFB04]|\\uD835[\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDCCF\\uDD04\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDD6B]/g;\n\tvar encodeMap = {'\\xAD':'shy','\\u200C':'zwnj','\\u200D':'zwj','\\u200E':'lrm','\\u2063':'ic','\\u2062':'it','\\u2061':'af','\\u200F':'rlm','\\u200B':'ZeroWidthSpace','\\u2060':'NoBreak','\\u0311':'DownBreve','\\u20DB':'tdot','\\u20DC':'DotDot','\\t':'Tab','\\n':'NewLine','\\u2008':'puncsp','\\u205F':'MediumSpace','\\u2009':'thinsp','\\u200A':'hairsp','\\u2004':'emsp13','\\u2002':'ensp','\\u2005':'emsp14','\\u2003':'emsp','\\u2007':'numsp','\\xA0':'nbsp','\\u205F\\u200A':'ThickSpace','\\u203E':'oline','_':'lowbar','\\u2010':'dash','\\u2013':'ndash','\\u2014':'mdash','\\u2015':'horbar',',':'comma',';':'semi','\\u204F':'bsemi',':':'colon','\\u2A74':'Colone','!':'excl','\\xA1':'iexcl','?':'quest','\\xBF':'iquest','.':'period','\\u2025':'nldr','\\u2026':'mldr','\\xB7':'middot','\\'':'apos','\\u2018':'lsquo','\\u2019':'rsquo','\\u201A':'sbquo','\\u2039':'lsaquo','\\u203A':'rsaquo','\"':'quot','\\u201C':'ldquo','\\u201D':'rdquo','\\u201E':'bdquo','\\xAB':'laquo','\\xBB':'raquo','(':'lpar',')':'rpar','[':'lsqb',']':'rsqb','{':'lcub','}':'rcub','\\u2308':'lceil','\\u2309':'rceil','\\u230A':'lfloor','\\u230B':'rfloor','\\u2985':'lopar','\\u2986':'ropar','\\u298B':'lbrke','\\u298C':'rbrke','\\u298D':'lbrkslu','\\u298E':'rbrksld','\\u298F':'lbrksld','\\u2990':'rbrkslu','\\u2991':'langd','\\u2992':'rangd','\\u2993':'lparlt','\\u2994':'rpargt','\\u2995':'gtlPar','\\u2996':'ltrPar','\\u27E6':'lobrk','\\u27E7':'robrk','\\u27E8':'lang','\\u27E9':'rang','\\u27EA':'Lang','\\u27EB':'Rang','\\u27EC':'loang','\\u27ED':'roang','\\u2772':'lbbrk','\\u2773':'rbbrk','\\u2016':'Vert','\\xA7':'sect','\\xB6':'para','@':'commat','*':'ast','/':'sol','undefined':null,'&':'amp','#':'num','%':'percnt','\\u2030':'permil','\\u2031':'pertenk','\\u2020':'dagger','\\u2021':'Dagger','\\u2022':'bull','\\u2043':'hybull','\\u2032':'prime','\\u2033':'Prime','\\u2034':'tprime','\\u2057':'qprime','\\u2035':'bprime','\\u2041':'caret','`':'grave','\\xB4':'acute','\\u02DC':'tilde','^':'Hat','\\xAF':'macr','\\u02D8':'breve','\\u02D9':'dot','\\xA8':'die','\\u02DA':'ring','\\u02DD':'dblac','\\xB8':'cedil','\\u02DB':'ogon','\\u02C6':'circ','\\u02C7':'caron','\\xB0':'deg','\\xA9':'copy','\\xAE':'reg','\\u2117':'copysr','\\u2118':'wp','\\u211E':'rx','\\u2127':'mho','\\u2129':'iiota','\\u2190':'larr','\\u219A':'nlarr','\\u2192':'rarr','\\u219B':'nrarr','\\u2191':'uarr','\\u2193':'darr','\\u2194':'harr','\\u21AE':'nharr','\\u2195':'varr','\\u2196':'nwarr','\\u2197':'nearr','\\u2198':'searr','\\u2199':'swarr','\\u219D':'rarrw','\\u219D\\u0338':'nrarrw','\\u219E':'Larr','\\u219F':'Uarr','\\u21A0':'Rarr','\\u21A1':'Darr','\\u21A2':'larrtl','\\u21A3':'rarrtl','\\u21A4':'mapstoleft','\\u21A5':'mapstoup','\\u21A6':'map','\\u21A7':'mapstodown','\\u21A9':'larrhk','\\u21AA':'rarrhk','\\u21AB':'larrlp','\\u21AC':'rarrlp','\\u21AD':'harrw','\\u21B0':'lsh','\\u21B1':'rsh','\\u21B2':'ldsh','\\u21B3':'rdsh','\\u21B5':'crarr','\\u21B6':'cularr','\\u21B7':'curarr','\\u21BA':'olarr','\\u21BB':'orarr','\\u21BC':'lharu','\\u21BD':'lhard','\\u21BE':'uharr','\\u21BF':'uharl','\\u21C0':'rharu','\\u21C1':'rhard','\\u21C2':'dharr','\\u21C3':'dharl','\\u21C4':'rlarr','\\u21C5':'udarr','\\u21C6':'lrarr','\\u21C7':'llarr','\\u21C8':'uuarr','\\u21C9':'rrarr','\\u21CA':'ddarr','\\u21CB':'lrhar','\\u21CC':'rlhar','\\u21D0':'lArr','\\u21CD':'nlArr','\\u21D1':'uArr','\\u21D2':'rArr','\\u21CF':'nrArr','\\u21D3':'dArr','\\u21D4':'iff','\\u21CE':'nhArr','\\u21D5':'vArr','\\u21D6':'nwArr','\\u21D7':'neArr','\\u21D8':'seArr','\\u21D9':'swArr','\\u21DA':'lAarr','\\u21DB':'rAarr','\\u21DD':'zigrarr','\\u21E4':'larrb','\\u21E5':'rarrb','\\u21F5':'duarr','\\u21FD':'loarr','\\u21FE':'roarr','\\u21FF':'hoarr','\\u2200':'forall','\\u2201':'comp','\\u2202':'part','\\u2202\\u0338':'npart','\\u2203':'exist','\\u2204':'nexist','\\u2205':'empty','\\u2207':'Del','\\u2208':'in','\\u2209':'notin','\\u220B':'ni','\\u220C':'notni','\\u03F6':'bepsi','\\u220F':'prod','\\u2210':'coprod','\\u2211':'sum','+':'plus','\\xB1':'pm','\\xF7':'div','\\xD7':'times','<':'lt','\\u226E':'nlt','<\\u20D2':'nvlt','=':'equals','\\u2260':'ne','=\\u20E5':'bne','\\u2A75':'Equal','>':'gt','\\u226F':'ngt','>\\u20D2':'nvgt','\\xAC':'not','|':'vert','\\xA6':'brvbar','\\u2212':'minus','\\u2213':'mp','\\u2214':'plusdo','\\u2044':'frasl','\\u2216':'setmn','\\u2217':'lowast','\\u2218':'compfn','\\u221A':'Sqrt','\\u221D':'prop','\\u221E':'infin','\\u221F':'angrt','\\u2220':'ang','\\u2220\\u20D2':'nang','\\u2221':'angmsd','\\u2222':'angsph','\\u2223':'mid','\\u2224':'nmid','\\u2225':'par','\\u2226':'npar','\\u2227':'and','\\u2228':'or','\\u2229':'cap','\\u2229\\uFE00':'caps','\\u222A':'cup','\\u222A\\uFE00':'cups','\\u222B':'int','\\u222C':'Int','\\u222D':'tint','\\u2A0C':'qint','\\u222E':'oint','\\u222F':'Conint','\\u2230':'Cconint','\\u2231':'cwint','\\u2232':'cwconint','\\u2233':'awconint','\\u2234':'there4','\\u2235':'becaus','\\u2236':'ratio','\\u2237':'Colon','\\u2238':'minusd','\\u223A':'mDDot','\\u223B':'homtht','\\u223C':'sim','\\u2241':'nsim','\\u223C\\u20D2':'nvsim','\\u223D':'bsim','\\u223D\\u0331':'race','\\u223E':'ac','\\u223E\\u0333':'acE','\\u223F':'acd','\\u2240':'wr','\\u2242':'esim','\\u2242\\u0338':'nesim','\\u2243':'sime','\\u2244':'nsime','\\u2245':'cong','\\u2247':'ncong','\\u2246':'simne','\\u2248':'ap','\\u2249':'nap','\\u224A':'ape','\\u224B':'apid','\\u224B\\u0338':'napid','\\u224C':'bcong','\\u224D':'CupCap','\\u226D':'NotCupCap','\\u224D\\u20D2':'nvap','\\u224E':'bump','\\u224E\\u0338':'nbump','\\u224F':'bumpe','\\u224F\\u0338':'nbumpe','\\u2250':'doteq','\\u2250\\u0338':'nedot','\\u2251':'eDot','\\u2252':'efDot','\\u2253':'erDot','\\u2254':'colone','\\u2255':'ecolon','\\u2256':'ecir','\\u2257':'cire','\\u2259':'wedgeq','\\u225A':'veeeq','\\u225C':'trie','\\u225F':'equest','\\u2261':'equiv','\\u2262':'nequiv','\\u2261\\u20E5':'bnequiv','\\u2264':'le','\\u2270':'nle','\\u2264\\u20D2':'nvle','\\u2265':'ge','\\u2271':'nge','\\u2265\\u20D2':'nvge','\\u2266':'lE','\\u2266\\u0338':'nlE','\\u2267':'gE','\\u2267\\u0338':'ngE','\\u2268\\uFE00':'lvnE','\\u2268':'lnE','\\u2269':'gnE','\\u2269\\uFE00':'gvnE','\\u226A':'ll','\\u226A\\u0338':'nLtv','\\u226A\\u20D2':'nLt','\\u226B':'gg','\\u226B\\u0338':'nGtv','\\u226B\\u20D2':'nGt','\\u226C':'twixt','\\u2272':'lsim','\\u2274':'nlsim','\\u2273':'gsim','\\u2275':'ngsim','\\u2276':'lg','\\u2278':'ntlg','\\u2277':'gl','\\u2279':'ntgl','\\u227A':'pr','\\u2280':'npr','\\u227B':'sc','\\u2281':'nsc','\\u227C':'prcue','\\u22E0':'nprcue','\\u227D':'sccue','\\u22E1':'nsccue','\\u227E':'prsim','\\u227F':'scsim','\\u227F\\u0338':'NotSucceedsTilde','\\u2282':'sub','\\u2284':'nsub','\\u2282\\u20D2':'vnsub','\\u2283':'sup','\\u2285':'nsup','\\u2283\\u20D2':'vnsup','\\u2286':'sube','\\u2288':'nsube','\\u2287':'supe','\\u2289':'nsupe','\\u228A\\uFE00':'vsubne','\\u228A':'subne','\\u228B\\uFE00':'vsupne','\\u228B':'supne','\\u228D':'cupdot','\\u228E':'uplus','\\u228F':'sqsub','\\u228F\\u0338':'NotSquareSubset','\\u2290':'sqsup','\\u2290\\u0338':'NotSquareSuperset','\\u2291':'sqsube','\\u22E2':'nsqsube','\\u2292':'sqsupe','\\u22E3':'nsqsupe','\\u2293':'sqcap','\\u2293\\uFE00':'sqcaps','\\u2294':'sqcup','\\u2294\\uFE00':'sqcups','\\u2295':'oplus','\\u2296':'ominus','\\u2297':'otimes','\\u2298':'osol','\\u2299':'odot','\\u229A':'ocir','\\u229B':'oast','\\u229D':'odash','\\u229E':'plusb','\\u229F':'minusb','\\u22A0':'timesb','\\u22A1':'sdotb','\\u22A2':'vdash','\\u22AC':'nvdash','\\u22A3':'dashv','\\u22A4':'top','\\u22A5':'bot','\\u22A7':'models','\\u22A8':'vDash','\\u22AD':'nvDash','\\u22A9':'Vdash','\\u22AE':'nVdash','\\u22AA':'Vvdash','\\u22AB':'VDash','\\u22AF':'nVDash','\\u22B0':'prurel','\\u22B2':'vltri','\\u22EA':'nltri','\\u22B3':'vrtri','\\u22EB':'nrtri','\\u22B4':'ltrie','\\u22EC':'nltrie','\\u22B4\\u20D2':'nvltrie','\\u22B5':'rtrie','\\u22ED':'nrtrie','\\u22B5\\u20D2':'nvrtrie','\\u22B6':'origof','\\u22B7':'imof','\\u22B8':'mumap','\\u22B9':'hercon','\\u22BA':'intcal','\\u22BB':'veebar','\\u22BD':'barvee','\\u22BE':'angrtvb','\\u22BF':'lrtri','\\u22C0':'Wedge','\\u22C1':'Vee','\\u22C2':'xcap','\\u22C3':'xcup','\\u22C4':'diam','\\u22C5':'sdot','\\u22C6':'Star','\\u22C7':'divonx','\\u22C8':'bowtie','\\u22C9':'ltimes','\\u22CA':'rtimes','\\u22CB':'lthree','\\u22CC':'rthree','\\u22CD':'bsime','\\u22CE':'cuvee','\\u22CF':'cuwed','\\u22D0':'Sub','\\u22D1':'Sup','\\u22D2':'Cap','\\u22D3':'Cup','\\u22D4':'fork','\\u22D5':'epar','\\u22D6':'ltdot','\\u22D7':'gtdot','\\u22D8':'Ll','\\u22D8\\u0338':'nLl','\\u22D9':'Gg','\\u22D9\\u0338':'nGg','\\u22DA\\uFE00':'lesg','\\u22DA':'leg','\\u22DB':'gel','\\u22DB\\uFE00':'gesl','\\u22DE':'cuepr','\\u22DF':'cuesc','\\u22E6':'lnsim','\\u22E7':'gnsim','\\u22E8':'prnsim','\\u22E9':'scnsim','\\u22EE':'vellip','\\u22EF':'ctdot','\\u22F0':'utdot','\\u22F1':'dtdot','\\u22F2':'disin','\\u22F3':'isinsv','\\u22F4':'isins','\\u22F5':'isindot','\\u22F5\\u0338':'notindot','\\u22F6':'notinvc','\\u22F7':'notinvb','\\u22F9':'isinE','\\u22F9\\u0338':'notinE','\\u22FA':'nisd','\\u22FB':'xnis','\\u22FC':'nis','\\u22FD':'notnivc','\\u22FE':'notnivb','\\u2305':'barwed','\\u2306':'Barwed','\\u230C':'drcrop','\\u230D':'dlcrop','\\u230E':'urcrop','\\u230F':'ulcrop','\\u2310':'bnot','\\u2312':'profline','\\u2313':'profsurf','\\u2315':'telrec','\\u2316':'target','\\u231C':'ulcorn','\\u231D':'urcorn','\\u231E':'dlcorn','\\u231F':'drcorn','\\u2322':'frown','\\u2323':'smile','\\u232D':'cylcty','\\u232E':'profalar','\\u2336':'topbot','\\u233D':'ovbar','\\u233F':'solbar','\\u237C':'angzarr','\\u23B0':'lmoust','\\u23B1':'rmoust','\\u23B4':'tbrk','\\u23B5':'bbrk','\\u23B6':'bbrktbrk','\\u23DC':'OverParenthesis','\\u23DD':'UnderParenthesis','\\u23DE':'OverBrace','\\u23DF':'UnderBrace','\\u23E2':'trpezium','\\u23E7':'elinters','\\u2423':'blank','\\u2500':'boxh','\\u2502':'boxv','\\u250C':'boxdr','\\u2510':'boxdl','\\u2514':'boxur','\\u2518':'boxul','\\u251C':'boxvr','\\u2524':'boxvl','\\u252C':'boxhd','\\u2534':'boxhu','\\u253C':'boxvh','\\u2550':'boxH','\\u2551':'boxV','\\u2552':'boxdR','\\u2553':'boxDr','\\u2554':'boxDR','\\u2555':'boxdL','\\u2556':'boxDl','\\u2557':'boxDL','\\u2558':'boxuR','\\u2559':'boxUr','\\u255A':'boxUR','\\u255B':'boxuL','\\u255C':'boxUl','\\u255D':'boxUL','\\u255E':'boxvR','\\u255F':'boxVr','\\u2560':'boxVR','\\u2561':'boxvL','\\u2562':'boxVl','\\u2563':'boxVL','\\u2564':'boxHd','\\u2565':'boxhD','\\u2566':'boxHD','\\u2567':'boxHu','\\u2568':'boxhU','\\u2569':'boxHU','\\u256A':'boxvH','\\u256B':'boxVh','\\u256C':'boxVH','\\u2580':'uhblk','\\u2584':'lhblk','\\u2588':'block','\\u2591':'blk14','\\u2592':'blk12','\\u2593':'blk34','\\u25A1':'squ','\\u25AA':'squf','\\u25AB':'EmptyVerySmallSquare','\\u25AD':'rect','\\u25AE':'marker','\\u25B1':'fltns','\\u25B3':'xutri','\\u25B4':'utrif','\\u25B5':'utri','\\u25B8':'rtrif','\\u25B9':'rtri','\\u25BD':'xdtri','\\u25BE':'dtrif','\\u25BF':'dtri','\\u25C2':'ltrif','\\u25C3':'ltri','\\u25CA':'loz','\\u25CB':'cir','\\u25EC':'tridot','\\u25EF':'xcirc','\\u25F8':'ultri','\\u25F9':'urtri','\\u25FA':'lltri','\\u25FB':'EmptySmallSquare','\\u25FC':'FilledSmallSquare','\\u2605':'starf','\\u2606':'star','\\u260E':'phone','\\u2640':'female','\\u2642':'male','\\u2660':'spades','\\u2663':'clubs','\\u2665':'hearts','\\u2666':'diams','\\u266A':'sung','\\u2713':'check','\\u2717':'cross','\\u2720':'malt','\\u2736':'sext','\\u2758':'VerticalSeparator','\\u27C8':'bsolhsub','\\u27C9':'suphsol','\\u27F5':'xlarr','\\u27F6':'xrarr','\\u27F7':'xharr','\\u27F8':'xlArr','\\u27F9':'xrArr','\\u27FA':'xhArr','\\u27FC':'xmap','\\u27FF':'dzigrarr','\\u2902':'nvlArr','\\u2903':'nvrArr','\\u2904':'nvHarr','\\u2905':'Map','\\u290C':'lbarr','\\u290D':'rbarr','\\u290E':'lBarr','\\u290F':'rBarr','\\u2910':'RBarr','\\u2911':'DDotrahd','\\u2912':'UpArrowBar','\\u2913':'DownArrowBar','\\u2916':'Rarrtl','\\u2919':'latail','\\u291A':'ratail','\\u291B':'lAtail','\\u291C':'rAtail','\\u291D':'larrfs','\\u291E':'rarrfs','\\u291F':'larrbfs','\\u2920':'rarrbfs','\\u2923':'nwarhk','\\u2924':'nearhk','\\u2925':'searhk','\\u2926':'swarhk','\\u2927':'nwnear','\\u2928':'toea','\\u2929':'tosa','\\u292A':'swnwar','\\u2933':'rarrc','\\u2933\\u0338':'nrarrc','\\u2935':'cudarrr','\\u2936':'ldca','\\u2937':'rdca','\\u2938':'cudarrl','\\u2939':'larrpl','\\u293C':'curarrm','\\u293D':'cularrp','\\u2945':'rarrpl','\\u2948':'harrcir','\\u2949':'Uarrocir','\\u294A':'lurdshar','\\u294B':'ldrushar','\\u294E':'LeftRightVector','\\u294F':'RightUpDownVector','\\u2950':'DownLeftRightVector','\\u2951':'LeftUpDownVector','\\u2952':'LeftVectorBar','\\u2953':'RightVectorBar','\\u2954':'RightUpVectorBar','\\u2955':'RightDownVectorBar','\\u2956':'DownLeftVectorBar','\\u2957':'DownRightVectorBar','\\u2958':'LeftUpVectorBar','\\u2959':'LeftDownVectorBar','\\u295A':'LeftTeeVector','\\u295B':'RightTeeVector','\\u295C':'RightUpTeeVector','\\u295D':'RightDownTeeVector','\\u295E':'DownLeftTeeVector','\\u295F':'DownRightTeeVector','\\u2960':'LeftUpTeeVector','\\u2961':'LeftDownTeeVector','\\u2962':'lHar','\\u2963':'uHar','\\u2964':'rHar','\\u2965':'dHar','\\u2966':'luruhar','\\u2967':'ldrdhar','\\u2968':'ruluhar','\\u2969':'rdldhar','\\u296A':'lharul','\\u296B':'llhard','\\u296C':'rharul','\\u296D':'lrhard','\\u296E':'udhar','\\u296F':'duhar','\\u2970':'RoundImplies','\\u2971':'erarr','\\u2972':'simrarr','\\u2973':'larrsim','\\u2974':'rarrsim','\\u2975':'rarrap','\\u2976':'ltlarr','\\u2978':'gtrarr','\\u2979':'subrarr','\\u297B':'suplarr','\\u297C':'lfisht','\\u297D':'rfisht','\\u297E':'ufisht','\\u297F':'dfisht','\\u299A':'vzigzag','\\u299C':'vangrt','\\u299D':'angrtvbd','\\u29A4':'ange','\\u29A5':'range','\\u29A6':'dwangle','\\u29A7':'uwangle','\\u29A8':'angmsdaa','\\u29A9':'angmsdab','\\u29AA':'angmsdac','\\u29AB':'angmsdad','\\u29AC':'angmsdae','\\u29AD':'angmsdaf','\\u29AE':'angmsdag','\\u29AF':'angmsdah','\\u29B0':'bemptyv','\\u29B1':'demptyv','\\u29B2':'cemptyv','\\u29B3':'raemptyv','\\u29B4':'laemptyv','\\u29B5':'ohbar','\\u29B6':'omid','\\u29B7':'opar','\\u29B9':'operp','\\u29BB':'olcross','\\u29BC':'odsold','\\u29BE':'olcir','\\u29BF':'ofcir','\\u29C0':'olt','\\u29C1':'ogt','\\u29C2':'cirscir','\\u29C3':'cirE','\\u29C4':'solb','\\u29C5':'bsolb','\\u29C9':'boxbox','\\u29CD':'trisb','\\u29CE':'rtriltri','\\u29CF':'LeftTriangleBar','\\u29CF\\u0338':'NotLeftTriangleBar','\\u29D0':'RightTriangleBar','\\u29D0\\u0338':'NotRightTriangleBar','\\u29DC':'iinfin','\\u29DD':'infintie','\\u29DE':'nvinfin','\\u29E3':'eparsl','\\u29E4':'smeparsl','\\u29E5':'eqvparsl','\\u29EB':'lozf','\\u29F4':'RuleDelayed','\\u29F6':'dsol','\\u2A00':'xodot','\\u2A01':'xoplus','\\u2A02':'xotime','\\u2A04':'xuplus','\\u2A06':'xsqcup','\\u2A0D':'fpartint','\\u2A10':'cirfnint','\\u2A11':'awint','\\u2A12':'rppolint','\\u2A13':'scpolint','\\u2A14':'npolint','\\u2A15':'pointint','\\u2A16':'quatint','\\u2A17':'intlarhk','\\u2A22':'pluscir','\\u2A23':'plusacir','\\u2A24':'simplus','\\u2A25':'plusdu','\\u2A26':'plussim','\\u2A27':'plustwo','\\u2A29':'mcomma','\\u2A2A':'minusdu','\\u2A2D':'loplus','\\u2A2E':'roplus','\\u2A2F':'Cross','\\u2A30':'timesd','\\u2A31':'timesbar','\\u2A33':'smashp','\\u2A34':'lotimes','\\u2A35':'rotimes','\\u2A36':'otimesas','\\u2A37':'Otimes','\\u2A38':'odiv','\\u2A39':'triplus','\\u2A3A':'triminus','\\u2A3B':'tritime','\\u2A3C':'iprod','\\u2A3F':'amalg','\\u2A40':'capdot','\\u2A42':'ncup','\\u2A43':'ncap','\\u2A44':'capand','\\u2A45':'cupor','\\u2A46':'cupcap','\\u2A47':'capcup','\\u2A48':'cupbrcap','\\u2A49':'capbrcup','\\u2A4A':'cupcup','\\u2A4B':'capcap','\\u2A4C':'ccups','\\u2A4D':'ccaps','\\u2A50':'ccupssm','\\u2A53':'And','\\u2A54':'Or','\\u2A55':'andand','\\u2A56':'oror','\\u2A57':'orslope','\\u2A58':'andslope','\\u2A5A':'andv','\\u2A5B':'orv','\\u2A5C':'andd','\\u2A5D':'ord','\\u2A5F':'wedbar','\\u2A66':'sdote','\\u2A6A':'simdot','\\u2A6D':'congdot','\\u2A6D\\u0338':'ncongdot','\\u2A6E':'easter','\\u2A6F':'apacir','\\u2A70':'apE','\\u2A70\\u0338':'napE','\\u2A71':'eplus','\\u2A72':'pluse','\\u2A73':'Esim','\\u2A77':'eDDot','\\u2A78':'equivDD','\\u2A79':'ltcir','\\u2A7A':'gtcir','\\u2A7B':'ltquest','\\u2A7C':'gtquest','\\u2A7D':'les','\\u2A7D\\u0338':'nles','\\u2A7E':'ges','\\u2A7E\\u0338':'nges','\\u2A7F':'lesdot','\\u2A80':'gesdot','\\u2A81':'lesdoto','\\u2A82':'gesdoto','\\u2A83':'lesdotor','\\u2A84':'gesdotol','\\u2A85':'lap','\\u2A86':'gap','\\u2A87':'lne','\\u2A88':'gne','\\u2A89':'lnap','\\u2A8A':'gnap','\\u2A8B':'lEg','\\u2A8C':'gEl','\\u2A8D':'lsime','\\u2A8E':'gsime','\\u2A8F':'lsimg','\\u2A90':'gsiml','\\u2A91':'lgE','\\u2A92':'glE','\\u2A93':'lesges','\\u2A94':'gesles','\\u2A95':'els','\\u2A96':'egs','\\u2A97':'elsdot','\\u2A98':'egsdot','\\u2A99':'el','\\u2A9A':'eg','\\u2A9D':'siml','\\u2A9E':'simg','\\u2A9F':'simlE','\\u2AA0':'simgE','\\u2AA1':'LessLess','\\u2AA1\\u0338':'NotNestedLessLess','\\u2AA2':'GreaterGreater','\\u2AA2\\u0338':'NotNestedGreaterGreater','\\u2AA4':'glj','\\u2AA5':'gla','\\u2AA6':'ltcc','\\u2AA7':'gtcc','\\u2AA8':'lescc','\\u2AA9':'gescc','\\u2AAA':'smt','\\u2AAB':'lat','\\u2AAC':'smte','\\u2AAC\\uFE00':'smtes','\\u2AAD':'late','\\u2AAD\\uFE00':'lates','\\u2AAE':'bumpE','\\u2AAF':'pre','\\u2AAF\\u0338':'npre','\\u2AB0':'sce','\\u2AB0\\u0338':'nsce','\\u2AB3':'prE','\\u2AB4':'scE','\\u2AB5':'prnE','\\u2AB6':'scnE','\\u2AB7':'prap','\\u2AB8':'scap','\\u2AB9':'prnap','\\u2ABA':'scnap','\\u2ABB':'Pr','\\u2ABC':'Sc','\\u2ABD':'subdot','\\u2ABE':'supdot','\\u2ABF':'subplus','\\u2AC0':'supplus','\\u2AC1':'submult','\\u2AC2':'supmult','\\u2AC3':'subedot','\\u2AC4':'supedot','\\u2AC5':'subE','\\u2AC5\\u0338':'nsubE','\\u2AC6':'supE','\\u2AC6\\u0338':'nsupE','\\u2AC7':'subsim','\\u2AC8':'supsim','\\u2ACB\\uFE00':'vsubnE','\\u2ACB':'subnE','\\u2ACC\\uFE00':'vsupnE','\\u2ACC':'supnE','\\u2ACF':'csub','\\u2AD0':'csup','\\u2AD1':'csube','\\u2AD2':'csupe','\\u2AD3':'subsup','\\u2AD4':'supsub','\\u2AD5':'subsub','\\u2AD6':'supsup','\\u2AD7':'suphsub','\\u2AD8':'supdsub','\\u2AD9':'forkv','\\u2ADA':'topfork','\\u2ADB':'mlcp','\\u2AE4':'Dashv','\\u2AE6':'Vdashl','\\u2AE7':'Barv','\\u2AE8':'vBar','\\u2AE9':'vBarv','\\u2AEB':'Vbar','\\u2AEC':'Not','\\u2AED':'bNot','\\u2AEE':'rnmid','\\u2AEF':'cirmid','\\u2AF0':'midcir','\\u2AF1':'topcir','\\u2AF2':'nhpar','\\u2AF3':'parsim','\\u2AFD':'parsl','\\u2AFD\\u20E5':'nparsl','\\u266D':'flat','\\u266E':'natur','\\u266F':'sharp','\\xA4':'curren','\\xA2':'cent','$':'dollar','\\xA3':'pound','\\xA5':'yen','\\u20AC':'euro','\\xB9':'sup1','\\xBD':'half','\\u2153':'frac13','\\xBC':'frac14','\\u2155':'frac15','\\u2159':'frac16','\\u215B':'frac18','\\xB2':'sup2','\\u2154':'frac23','\\u2156':'frac25','\\xB3':'sup3','\\xBE':'frac34','\\u2157':'frac35','\\u215C':'frac38','\\u2158':'frac45','\\u215A':'frac56','\\u215D':'frac58','\\u215E':'frac78','\\uD835\\uDCB6':'ascr','\\uD835\\uDD52':'aopf','\\uD835\\uDD1E':'afr','\\uD835\\uDD38':'Aopf','\\uD835\\uDD04':'Afr','\\uD835\\uDC9C':'Ascr','\\xAA':'ordf','\\xE1':'aacute','\\xC1':'Aacute','\\xE0':'agrave','\\xC0':'Agrave','\\u0103':'abreve','\\u0102':'Abreve','\\xE2':'acirc','\\xC2':'Acirc','\\xE5':'aring','\\xC5':'angst','\\xE4':'auml','\\xC4':'Auml','\\xE3':'atilde','\\xC3':'Atilde','\\u0105':'aogon','\\u0104':'Aogon','\\u0101':'amacr','\\u0100':'Amacr','\\xE6':'aelig','\\xC6':'AElig','\\uD835\\uDCB7':'bscr','\\uD835\\uDD53':'bopf','\\uD835\\uDD1F':'bfr','\\uD835\\uDD39':'Bopf','\\u212C':'Bscr','\\uD835\\uDD05':'Bfr','\\uD835\\uDD20':'cfr','\\uD835\\uDCB8':'cscr','\\uD835\\uDD54':'copf','\\u212D':'Cfr','\\uD835\\uDC9E':'Cscr','\\u2102':'Copf','\\u0107':'cacute','\\u0106':'Cacute','\\u0109':'ccirc','\\u0108':'Ccirc','\\u010D':'ccaron','\\u010C':'Ccaron','\\u010B':'cdot','\\u010A':'Cdot','\\xE7':'ccedil','\\xC7':'Ccedil','\\u2105':'incare','\\uD835\\uDD21':'dfr','\\u2146':'dd','\\uD835\\uDD55':'dopf','\\uD835\\uDCB9':'dscr','\\uD835\\uDC9F':'Dscr','\\uD835\\uDD07':'Dfr','\\u2145':'DD','\\uD835\\uDD3B':'Dopf','\\u010F':'dcaron','\\u010E':'Dcaron','\\u0111':'dstrok','\\u0110':'Dstrok','\\xF0':'eth','\\xD0':'ETH','\\u2147':'ee','\\u212F':'escr','\\uD835\\uDD22':'efr','\\uD835\\uDD56':'eopf','\\u2130':'Escr','\\uD835\\uDD08':'Efr','\\uD835\\uDD3C':'Eopf','\\xE9':'eacute','\\xC9':'Eacute','\\xE8':'egrave','\\xC8':'Egrave','\\xEA':'ecirc','\\xCA':'Ecirc','\\u011B':'ecaron','\\u011A':'Ecaron','\\xEB':'euml','\\xCB':'Euml','\\u0117':'edot','\\u0116':'Edot','\\u0119':'eogon','\\u0118':'Eogon','\\u0113':'emacr','\\u0112':'Emacr','\\uD835\\uDD23':'ffr','\\uD835\\uDD57':'fopf','\\uD835\\uDCBB':'fscr','\\uD835\\uDD09':'Ffr','\\uD835\\uDD3D':'Fopf','\\u2131':'Fscr','\\uFB00':'fflig','\\uFB03':'ffilig','\\uFB04':'ffllig','\\uFB01':'filig','fj':'fjlig','\\uFB02':'fllig','\\u0192':'fnof','\\u210A':'gscr','\\uD835\\uDD58':'gopf','\\uD835\\uDD24':'gfr','\\uD835\\uDCA2':'Gscr','\\uD835\\uDD3E':'Gopf','\\uD835\\uDD0A':'Gfr','\\u01F5':'gacute','\\u011F':'gbreve','\\u011E':'Gbreve','\\u011D':'gcirc','\\u011C':'Gcirc','\\u0121':'gdot','\\u0120':'Gdot','\\u0122':'Gcedil','\\uD835\\uDD25':'hfr','\\u210E':'planckh','\\uD835\\uDCBD':'hscr','\\uD835\\uDD59':'hopf','\\u210B':'Hscr','\\u210C':'Hfr','\\u210D':'Hopf','\\u0125':'hcirc','\\u0124':'Hcirc','\\u210F':'hbar','\\u0127':'hstrok','\\u0126':'Hstrok','\\uD835\\uDD5A':'iopf','\\uD835\\uDD26':'ifr','\\uD835\\uDCBE':'iscr','\\u2148':'ii','\\uD835\\uDD40':'Iopf','\\u2110':'Iscr','\\u2111':'Im','\\xED':'iacute','\\xCD':'Iacute','\\xEC':'igrave','\\xCC':'Igrave','\\xEE':'icirc','\\xCE':'Icirc','\\xEF':'iuml','\\xCF':'Iuml','\\u0129':'itilde','\\u0128':'Itilde','\\u0130':'Idot','\\u012F':'iogon','\\u012E':'Iogon','\\u012B':'imacr','\\u012A':'Imacr','\\u0133':'ijlig','\\u0132':'IJlig','\\u0131':'imath','\\uD835\\uDCBF':'jscr','\\uD835\\uDD5B':'jopf','\\uD835\\uDD27':'jfr','\\uD835\\uDCA5':'Jscr','\\uD835\\uDD0D':'Jfr','\\uD835\\uDD41':'Jopf','\\u0135':'jcirc','\\u0134':'Jcirc','\\u0237':'jmath','\\uD835\\uDD5C':'kopf','\\uD835\\uDCC0':'kscr','\\uD835\\uDD28':'kfr','\\uD835\\uDCA6':'Kscr','\\uD835\\uDD42':'Kopf','\\uD835\\uDD0E':'Kfr','\\u0137':'kcedil','\\u0136':'Kcedil','\\uD835\\uDD29':'lfr','\\uD835\\uDCC1':'lscr','\\u2113':'ell','\\uD835\\uDD5D':'lopf','\\u2112':'Lscr','\\uD835\\uDD0F':'Lfr','\\uD835\\uDD43':'Lopf','\\u013A':'lacute','\\u0139':'Lacute','\\u013E':'lcaron','\\u013D':'Lcaron','\\u013C':'lcedil','\\u013B':'Lcedil','\\u0142':'lstrok','\\u0141':'Lstrok','\\u0140':'lmidot','\\u013F':'Lmidot','\\uD835\\uDD2A':'mfr','\\uD835\\uDD5E':'mopf','\\uD835\\uDCC2':'mscr','\\uD835\\uDD10':'Mfr','\\uD835\\uDD44':'Mopf','\\u2133':'Mscr','\\uD835\\uDD2B':'nfr','\\uD835\\uDD5F':'nopf','\\uD835\\uDCC3':'nscr','\\u2115':'Nopf','\\uD835\\uDCA9':'Nscr','\\uD835\\uDD11':'Nfr','\\u0144':'nacute','\\u0143':'Nacute','\\u0148':'ncaron','\\u0147':'Ncaron','\\xF1':'ntilde','\\xD1':'Ntilde','\\u0146':'ncedil','\\u0145':'Ncedil','\\u2116':'numero','\\u014B':'eng','\\u014A':'ENG','\\uD835\\uDD60':'oopf','\\uD835\\uDD2C':'ofr','\\u2134':'oscr','\\uD835\\uDCAA':'Oscr','\\uD835\\uDD12':'Ofr','\\uD835\\uDD46':'Oopf','\\xBA':'ordm','\\xF3':'oacute','\\xD3':'Oacute','\\xF2':'ograve','\\xD2':'Ograve','\\xF4':'ocirc','\\xD4':'Ocirc','\\xF6':'ouml','\\xD6':'Ouml','\\u0151':'odblac','\\u0150':'Odblac','\\xF5':'otilde','\\xD5':'Otilde','\\xF8':'oslash','\\xD8':'Oslash','\\u014D':'omacr','\\u014C':'Omacr','\\u0153':'oelig','\\u0152':'OElig','\\uD835\\uDD2D':'pfr','\\uD835\\uDCC5':'pscr','\\uD835\\uDD61':'popf','\\u2119':'Popf','\\uD835\\uDD13':'Pfr','\\uD835\\uDCAB':'Pscr','\\uD835\\uDD62':'qopf','\\uD835\\uDD2E':'qfr','\\uD835\\uDCC6':'qscr','\\uD835\\uDCAC':'Qscr','\\uD835\\uDD14':'Qfr','\\u211A':'Qopf','\\u0138':'kgreen','\\uD835\\uDD2F':'rfr','\\uD835\\uDD63':'ropf','\\uD835\\uDCC7':'rscr','\\u211B':'Rscr','\\u211C':'Re','\\u211D':'Ropf','\\u0155':'racute','\\u0154':'Racute','\\u0159':'rcaron','\\u0158':'Rcaron','\\u0157':'rcedil','\\u0156':'Rcedil','\\uD835\\uDD64':'sopf','\\uD835\\uDCC8':'sscr','\\uD835\\uDD30':'sfr','\\uD835\\uDD4A':'Sopf','\\uD835\\uDD16':'Sfr','\\uD835\\uDCAE':'Sscr','\\u24C8':'oS','\\u015B':'sacute','\\u015A':'Sacute','\\u015D':'scirc','\\u015C':'Scirc','\\u0161':'scaron','\\u0160':'Scaron','\\u015F':'scedil','\\u015E':'Scedil','\\xDF':'szlig','\\uD835\\uDD31':'tfr','\\uD835\\uDCC9':'tscr','\\uD835\\uDD65':'topf','\\uD835\\uDCAF':'Tscr','\\uD835\\uDD17':'Tfr','\\uD835\\uDD4B':'Topf','\\u0165':'tcaron','\\u0164':'Tcaron','\\u0163':'tcedil','\\u0162':'Tcedil','\\u2122':'trade','\\u0167':'tstrok','\\u0166':'Tstrok','\\uD835\\uDCCA':'uscr','\\uD835\\uDD66':'uopf','\\uD835\\uDD32':'ufr','\\uD835\\uDD4C':'Uopf','\\uD835\\uDD18':'Ufr','\\uD835\\uDCB0':'Uscr','\\xFA':'uacute','\\xDA':'Uacute','\\xF9':'ugrave','\\xD9':'Ugrave','\\u016D':'ubreve','\\u016C':'Ubreve','\\xFB':'ucirc','\\xDB':'Ucirc','\\u016F':'uring','\\u016E':'Uring','\\xFC':'uuml','\\xDC':'Uuml','\\u0171':'udblac','\\u0170':'Udblac','\\u0169':'utilde','\\u0168':'Utilde','\\u0173':'uogon','\\u0172':'Uogon','\\u016B':'umacr','\\u016A':'Umacr','\\uD835\\uDD33':'vfr','\\uD835\\uDD67':'vopf','\\uD835\\uDCCB':'vscr','\\uD835\\uDD19':'Vfr','\\uD835\\uDD4D':'Vopf','\\uD835\\uDCB1':'Vscr','\\uD835\\uDD68':'wopf','\\uD835\\uDCCC':'wscr','\\uD835\\uDD34':'wfr','\\uD835\\uDCB2':'Wscr','\\uD835\\uDD4E':'Wopf','\\uD835\\uDD1A':'Wfr','\\u0175':'wcirc','\\u0174':'Wcirc','\\uD835\\uDD35':'xfr','\\uD835\\uDCCD':'xscr','\\uD835\\uDD69':'xopf','\\uD835\\uDD4F':'Xopf','\\uD835\\uDD1B':'Xfr','\\uD835\\uDCB3':'Xscr','\\uD835\\uDD36':'yfr','\\uD835\\uDCCE':'yscr','\\uD835\\uDD6A':'yopf','\\uD835\\uDCB4':'Yscr','\\uD835\\uDD1C':'Yfr','\\uD835\\uDD50':'Yopf','\\xFD':'yacute','\\xDD':'Yacute','\\u0177':'ycirc','\\u0176':'Ycirc','\\xFF':'yuml','\\u0178':'Yuml','\\uD835\\uDCCF':'zscr','\\uD835\\uDD37':'zfr','\\uD835\\uDD6B':'zopf','\\u2128':'Zfr','\\u2124':'Zopf','\\uD835\\uDCB5':'Zscr','\\u017A':'zacute','\\u0179':'Zacute','\\u017E':'zcaron','\\u017D':'Zcaron','\\u017C':'zdot','\\u017B':'Zdot','\\u01B5':'imped','\\xFE':'thorn','\\xDE':'THORN','\\u0149':'napos','\\u03B1':'alpha','\\u0391':'Alpha','\\u03B2':'beta','\\u0392':'Beta','\\u03B3':'gamma','\\u0393':'Gamma','\\u03B4':'delta','\\u0394':'Delta','\\u03B5':'epsi','\\u03F5':'epsiv','\\u0395':'Epsilon','\\u03DD':'gammad','\\u03DC':'Gammad','\\u03B6':'zeta','\\u0396':'Zeta','\\u03B7':'eta','\\u0397':'Eta','\\u03B8':'theta','\\u03D1':'thetav','\\u0398':'Theta','\\u03B9':'iota','\\u0399':'Iota','\\u03BA':'kappa','\\u03F0':'kappav','\\u039A':'Kappa','\\u03BB':'lambda','\\u039B':'Lambda','\\u03BC':'mu','\\xB5':'micro','\\u039C':'Mu','\\u03BD':'nu','\\u039D':'Nu','\\u03BE':'xi','\\u039E':'Xi','\\u03BF':'omicron','\\u039F':'Omicron','\\u03C0':'pi','\\u03D6':'piv','\\u03A0':'Pi','\\u03C1':'rho','\\u03F1':'rhov','\\u03A1':'Rho','\\u03C3':'sigma','\\u03A3':'Sigma','\\u03C2':'sigmaf','\\u03C4':'tau','\\u03A4':'Tau','\\u03C5':'upsi','\\u03A5':'Upsilon','\\u03D2':'Upsi','\\u03C6':'phi','\\u03D5':'phiv','\\u03A6':'Phi','\\u03C7':'chi','\\u03A7':'Chi','\\u03C8':'psi','\\u03A8':'Psi','\\u03C9':'omega','\\u03A9':'ohm','\\u0430':'acy','\\u0410':'Acy','\\u0431':'bcy','\\u0411':'Bcy','\\u0432':'vcy','\\u0412':'Vcy','\\u0433':'gcy','\\u0413':'Gcy','\\u0453':'gjcy','\\u0403':'GJcy','\\u0434':'dcy','\\u0414':'Dcy','\\u0452':'djcy','\\u0402':'DJcy','\\u0435':'iecy','\\u0415':'IEcy','\\u0451':'iocy','\\u0401':'IOcy','\\u0454':'jukcy','\\u0404':'Jukcy','\\u0436':'zhcy','\\u0416':'ZHcy','\\u0437':'zcy','\\u0417':'Zcy','\\u0455':'dscy','\\u0405':'DScy','\\u0438':'icy','\\u0418':'Icy','\\u0456':'iukcy','\\u0406':'Iukcy','\\u0457':'yicy','\\u0407':'YIcy','\\u0439':'jcy','\\u0419':'Jcy','\\u0458':'jsercy','\\u0408':'Jsercy','\\u043A':'kcy','\\u041A':'Kcy','\\u045C':'kjcy','\\u040C':'KJcy','\\u043B':'lcy','\\u041B':'Lcy','\\u0459':'ljcy','\\u0409':'LJcy','\\u043C':'mcy','\\u041C':'Mcy','\\u043D':'ncy','\\u041D':'Ncy','\\u045A':'njcy','\\u040A':'NJcy','\\u043E':'ocy','\\u041E':'Ocy','\\u043F':'pcy','\\u041F':'Pcy','\\u0440':'rcy','\\u0420':'Rcy','\\u0441':'scy','\\u0421':'Scy','\\u0442':'tcy','\\u0422':'Tcy','\\u045B':'tshcy','\\u040B':'TSHcy','\\u0443':'ucy','\\u0423':'Ucy','\\u045E':'ubrcy','\\u040E':'Ubrcy','\\u0444':'fcy','\\u0424':'Fcy','\\u0445':'khcy','\\u0425':'KHcy','\\u0446':'tscy','\\u0426':'TScy','\\u0447':'chcy','\\u0427':'CHcy','\\u045F':'dzcy','\\u040F':'DZcy','\\u0448':'shcy','\\u0428':'SHcy','\\u0449':'shchcy','\\u0429':'SHCHcy','\\u044A':'hardcy','\\u042A':'HARDcy','\\u044B':'ycy','\\u042B':'Ycy','\\u044C':'softcy','\\u042C':'SOFTcy','\\u044D':'ecy','\\u042D':'Ecy','\\u044E':'yucy','\\u042E':'YUcy','\\u044F':'yacy','\\u042F':'YAcy','\\u2135':'aleph','\\u2136':'beth','\\u2137':'gimel','\\u2138':'daleth'};\n\n\tvar regexEscape = /[\"&'<>`]/g;\n\tvar escapeMap = {\n\t\t'\"': '"',\n\t\t'&': '&',\n\t\t'\\'': ''',\n\t\t'<': '<',\n\t\t// See https://mathiasbynens.be/notes/ambiguous-ampersands: in HTML, the\n\t\t// following is not strictly necessary unless it’s part of a tag or an\n\t\t// unquoted attribute value. We’re only escaping it to support those\n\t\t// situations, and for XML support.\n\t\t'>': '>',\n\t\t// In Internet Explorer ≤ 8, the backtick character can be used\n\t\t// to break out of (un)quoted attribute values or HTML comments.\n\t\t// See http://html5sec.org/#102, http://html5sec.org/#108, and\n\t\t// http://html5sec.org/#133.\n\t\t'`': '`'\n\t};\n\n\tvar regexInvalidEntity = /&#(?:[xX][^a-fA-F0-9]|[^0-9xX])/;\n\tvar regexInvalidRawCodePoint = /[\\0-\\x08\\x0B\\x0E-\\x1F\\x7F-\\x9F\\uFDD0-\\uFDEF\\uFFFE\\uFFFF]|[\\uD83F\\uD87F\\uD8BF\\uD8FF\\uD93F\\uD97F\\uD9BF\\uD9FF\\uDA3F\\uDA7F\\uDABF\\uDAFF\\uDB3F\\uDB7F\\uDBBF\\uDBFF][\\uDFFE\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\n\tvar regexDecode = /&(CounterClockwiseContourIntegral|DoubleLongLeftRightArrow|ClockwiseContourIntegral|NotNestedGreaterGreater|NotSquareSupersetEqual|DiacriticalDoubleAcute|NotRightTriangleEqual|NotSucceedsSlantEqual|NotPrecedesSlantEqual|CloseCurlyDoubleQuote|NegativeVeryThinSpace|DoubleContourIntegral|FilledVerySmallSquare|CapitalDifferentialD|OpenCurlyDoubleQuote|EmptyVerySmallSquare|NestedGreaterGreater|DoubleLongRightArrow|NotLeftTriangleEqual|NotGreaterSlantEqual|ReverseUpEquilibrium|DoubleLeftRightArrow|NotSquareSubsetEqual|NotDoubleVerticalBar|RightArrowLeftArrow|NotGreaterFullEqual|NotRightTriangleBar|SquareSupersetEqual|DownLeftRightVector|DoubleLongLeftArrow|leftrightsquigarrow|LeftArrowRightArrow|NegativeMediumSpace|blacktriangleright|RightDownVectorBar|PrecedesSlantEqual|RightDoubleBracket|SucceedsSlantEqual|NotLeftTriangleBar|RightTriangleEqual|SquareIntersection|RightDownTeeVector|ReverseEquilibrium|NegativeThickSpace|longleftrightarrow|Longleftrightarrow|LongLeftRightArrow|DownRightTeeVector|DownRightVectorBar|GreaterSlantEqual|SquareSubsetEqual|LeftDownVectorBar|LeftDoubleBracket|VerticalSeparator|rightleftharpoons|NotGreaterGreater|NotSquareSuperset|blacktriangleleft|blacktriangledown|NegativeThinSpace|LeftDownTeeVector|NotLessSlantEqual|leftrightharpoons|DoubleUpDownArrow|DoubleVerticalBar|LeftTriangleEqual|FilledSmallSquare|twoheadrightarrow|NotNestedLessLess|DownLeftTeeVector|DownLeftVectorBar|RightAngleBracket|NotTildeFullEqual|NotReverseElement|RightUpDownVector|DiacriticalTilde|NotSucceedsTilde|circlearrowright|NotPrecedesEqual|rightharpoondown|DoubleRightArrow|NotSucceedsEqual|NonBreakingSpace|NotRightTriangle|LessEqualGreater|RightUpTeeVector|LeftAngleBracket|GreaterFullEqual|DownArrowUpArrow|RightUpVectorBar|twoheadleftarrow|GreaterEqualLess|downharpoonright|RightTriangleBar|ntrianglerighteq|NotSupersetEqual|LeftUpDownVector|DiacriticalAcute|rightrightarrows|vartriangleright|UpArrowDownArrow|DiacriticalGrave|UnderParenthesis|EmptySmallSquare|LeftUpVectorBar|leftrightarrows|DownRightVector|downharpoonleft|trianglerighteq|ShortRightArrow|OverParenthesis|DoubleLeftArrow|DoubleDownArrow|NotSquareSubset|bigtriangledown|ntrianglelefteq|UpperRightArrow|curvearrowright|vartriangleleft|NotLeftTriangle|nleftrightarrow|LowerRightArrow|NotHumpDownHump|NotGreaterTilde|rightthreetimes|LeftUpTeeVector|NotGreaterEqual|straightepsilon|LeftTriangleBar|rightsquigarrow|ContourIntegral|rightleftarrows|CloseCurlyQuote|RightDownVector|LeftRightVector|nLeftrightarrow|leftharpoondown|circlearrowleft|SquareSuperset|OpenCurlyQuote|hookrightarrow|HorizontalLine|DiacriticalDot|NotLessGreater|ntriangleright|DoubleRightTee|InvisibleComma|InvisibleTimes|LowerLeftArrow|DownLeftVector|NotSubsetEqual|curvearrowleft|trianglelefteq|NotVerticalBar|TildeFullEqual|downdownarrows|NotGreaterLess|RightTeeVector|ZeroWidthSpace|looparrowright|LongRightArrow|doublebarwedge|ShortLeftArrow|ShortDownArrow|RightVectorBar|GreaterGreater|ReverseElement|rightharpoonup|LessSlantEqual|leftthreetimes|upharpoonright|rightarrowtail|LeftDownVector|Longrightarrow|NestedLessLess|UpperLeftArrow|nshortparallel|leftleftarrows|leftrightarrow|Leftrightarrow|LeftRightArrow|longrightarrow|upharpoonleft|RightArrowBar|ApplyFunction|LeftTeeVector|leftarrowtail|NotEqualTilde|varsubsetneqq|varsupsetneqq|RightTeeArrow|SucceedsEqual|SucceedsTilde|LeftVectorBar|SupersetEqual|hookleftarrow|DifferentialD|VerticalTilde|VeryThinSpace|blacktriangle|bigtriangleup|LessFullEqual|divideontimes|leftharpoonup|UpEquilibrium|ntriangleleft|RightTriangle|measuredangle|shortparallel|longleftarrow|Longleftarrow|LongLeftArrow|DoubleLeftTee|Poincareplane|PrecedesEqual|triangleright|DoubleUpArrow|RightUpVector|fallingdotseq|looparrowleft|PrecedesTilde|NotTildeEqual|NotTildeTilde|smallsetminus|Proportional|triangleleft|triangledown|UnderBracket|NotHumpEqual|exponentiale|ExponentialE|NotLessTilde|HilbertSpace|RightCeiling|blacklozenge|varsupsetneq|HumpDownHump|GreaterEqual|VerticalLine|LeftTeeArrow|NotLessEqual|DownTeeArrow|LeftTriangle|varsubsetneq|Intersection|NotCongruent|DownArrowBar|LeftUpVector|LeftArrowBar|risingdotseq|GreaterTilde|RoundImplies|SquareSubset|ShortUpArrow|NotSuperset|quaternions|precnapprox|backepsilon|preccurlyeq|OverBracket|blacksquare|MediumSpace|VerticalBar|circledcirc|circleddash|CircleMinus|CircleTimes|LessGreater|curlyeqprec|curlyeqsucc|diamondsuit|UpDownArrow|Updownarrow|RuleDelayed|Rrightarrow|updownarrow|RightVector|nRightarrow|nrightarrow|eqslantless|LeftCeiling|Equilibrium|SmallCircle|expectation|NotSucceeds|thickapprox|GreaterLess|SquareUnion|NotPrecedes|NotLessLess|straightphi|succnapprox|succcurlyeq|SubsetEqual|sqsupseteq|Proportion|Laplacetrf|ImaginaryI|supsetneqq|NotGreater|gtreqqless|NotElement|ThickSpace|TildeEqual|TildeTilde|Fouriertrf|rmoustache|EqualTilde|eqslantgtr|UnderBrace|LeftVector|UpArrowBar|nLeftarrow|nsubseteqq|subsetneqq|nsupseteqq|nleftarrow|succapprox|lessapprox|UpTeeArrow|upuparrows|curlywedge|lesseqqgtr|varepsilon|varnothing|RightFloor|complement|CirclePlus|sqsubseteq|Lleftarrow|circledast|RightArrow|Rightarrow|rightarrow|lmoustache|Bernoullis|precapprox|mapstoleft|mapstodown|longmapsto|dotsquare|downarrow|DoubleDot|nsubseteq|supsetneq|leftarrow|nsupseteq|subsetneq|ThinSpace|ngeqslant|subseteqq|HumpEqual|NotSubset|triangleq|NotCupCap|lesseqgtr|heartsuit|TripleDot|Leftarrow|Coproduct|Congruent|varpropto|complexes|gvertneqq|LeftArrow|LessTilde|supseteqq|MinusPlus|CircleDot|nleqslant|NotExists|gtreqless|nparallel|UnionPlus|LeftFloor|checkmark|CenterDot|centerdot|Mellintrf|gtrapprox|bigotimes|OverBrace|spadesuit|therefore|pitchfork|rationals|PlusMinus|Backslash|Therefore|DownBreve|backsimeq|backprime|DownArrow|nshortmid|Downarrow|lvertneqq|eqvparsl|imagline|imagpart|infintie|integers|Integral|intercal|LessLess|Uarrocir|intlarhk|sqsupset|angmsdaf|sqsubset|llcorner|vartheta|cupbrcap|lnapprox|Superset|SuchThat|succnsim|succneqq|angmsdag|biguplus|curlyvee|trpezium|Succeeds|NotTilde|bigwedge|angmsdah|angrtvbd|triminus|cwconint|fpartint|lrcorner|smeparsl|subseteq|urcorner|lurdshar|laemptyv|DDotrahd|approxeq|ldrushar|awconint|mapstoup|backcong|shortmid|triangle|geqslant|gesdotol|timesbar|circledR|circledS|setminus|multimap|naturals|scpolint|ncongdot|RightTee|boxminus|gnapprox|boxtimes|andslope|thicksim|angmsdaa|varsigma|cirfnint|rtriltri|angmsdab|rppolint|angmsdac|barwedge|drbkarow|clubsuit|thetasym|bsolhsub|capbrcup|dzigrarr|doteqdot|DotEqual|dotminus|UnderBar|NotEqual|realpart|otimesas|ulcorner|hksearow|hkswarow|parallel|PartialD|elinters|emptyset|plusacir|bbrktbrk|angmsdad|pointint|bigoplus|angmsdae|Precedes|bigsqcup|varkappa|notindot|supseteq|precneqq|precnsim|profalar|profline|profsurf|leqslant|lesdotor|raemptyv|subplus|notnivb|notnivc|subrarr|zigrarr|vzigzag|submult|subedot|Element|between|cirscir|larrbfs|larrsim|lotimes|lbrksld|lbrkslu|lozenge|ldrdhar|dbkarow|bigcirc|epsilon|simrarr|simplus|ltquest|Epsilon|luruhar|gtquest|maltese|npolint|eqcolon|npreceq|bigodot|ddagger|gtrless|bnequiv|harrcir|ddotseq|equivDD|backsim|demptyv|nsqsube|nsqsupe|Upsilon|nsubset|upsilon|minusdu|nsucceq|swarrow|nsupset|coloneq|searrow|boxplus|napprox|natural|asympeq|alefsym|congdot|nearrow|bigstar|diamond|supplus|tritime|LeftTee|nvinfin|triplus|NewLine|nvltrie|nvrtrie|nwarrow|nexists|Diamond|ruluhar|Implies|supmult|angzarr|suplarr|suphsub|questeq|because|digamma|Because|olcross|bemptyv|omicron|Omicron|rotimes|NoBreak|intprod|angrtvb|orderof|uwangle|suphsol|lesdoto|orslope|DownTee|realine|cudarrl|rdldhar|OverBar|supedot|lessdot|supdsub|topfork|succsim|rbrkslu|rbrksld|pertenk|cudarrr|isindot|planckh|lessgtr|pluscir|gesdoto|plussim|plustwo|lesssim|cularrp|rarrsim|Cayleys|notinva|notinvb|notinvc|UpArrow|Uparrow|uparrow|NotLess|dwangle|precsim|Product|curarrm|Cconint|dotplus|rarrbfs|ccupssm|Cedilla|cemptyv|notniva|quatint|frac35|frac38|frac45|frac56|frac58|frac78|tridot|xoplus|gacute|gammad|Gammad|lfisht|lfloor|bigcup|sqsupe|gbreve|Gbreve|lharul|sqsube|sqcups|Gcedil|apacir|llhard|lmidot|Lmidot|lmoust|andand|sqcaps|approx|Abreve|spades|circeq|tprime|divide|topcir|Assign|topbot|gesdot|divonx|xuplus|timesd|gesles|atilde|solbar|SOFTcy|loplus|timesb|lowast|lowbar|dlcorn|dlcrop|softcy|dollar|lparlt|thksim|lrhard|Atilde|lsaquo|smashp|bigvee|thinsp|wreath|bkarow|lsquor|lstrok|Lstrok|lthree|ltimes|ltlarr|DotDot|simdot|ltrPar|weierp|xsqcup|angmsd|sigmav|sigmaf|zeetrf|Zcaron|zcaron|mapsto|vsupne|thetav|cirmid|marker|mcomma|Zacute|vsubnE|there4|gtlPar|vsubne|bottom|gtrarr|SHCHcy|shchcy|midast|midcir|middot|minusb|minusd|gtrdot|bowtie|sfrown|mnplus|models|colone|seswar|Colone|mstpos|searhk|gtrsim|nacute|Nacute|boxbox|telrec|hairsp|Tcedil|nbumpe|scnsim|ncaron|Ncaron|ncedil|Ncedil|hamilt|Scedil|nearhk|hardcy|HARDcy|tcedil|Tcaron|commat|nequiv|nesear|tcaron|target|hearts|nexist|varrho|scedil|Scaron|scaron|hellip|Sacute|sacute|hercon|swnwar|compfn|rtimes|rthree|rsquor|rsaquo|zacute|wedgeq|homtht|barvee|barwed|Barwed|rpargt|horbar|conint|swarhk|roplus|nltrie|hslash|hstrok|Hstrok|rmoust|Conint|bprime|hybull|hyphen|iacute|Iacute|supsup|supsub|supsim|varphi|coprod|brvbar|agrave|Supset|supset|igrave|Igrave|notinE|Agrave|iiiint|iinfin|copysr|wedbar|Verbar|vangrt|becaus|incare|verbar|inodot|bullet|drcorn|intcal|drcrop|cularr|vellip|Utilde|bumpeq|cupcap|dstrok|Dstrok|CupCap|cupcup|cupdot|eacute|Eacute|supdot|iquest|easter|ecaron|Ecaron|ecolon|isinsv|utilde|itilde|Itilde|curarr|succeq|Bumpeq|cacute|ulcrop|nparsl|Cacute|nprcue|egrave|Egrave|nrarrc|nrarrw|subsup|subsub|nrtrie|jsercy|nsccue|Jsercy|kappav|kcedil|Kcedil|subsim|ulcorn|nsimeq|egsdot|veebar|kgreen|capand|elsdot|Subset|subset|curren|aacute|lacute|Lacute|emptyv|ntilde|Ntilde|lagran|lambda|Lambda|capcap|Ugrave|langle|subdot|emsp13|numero|emsp14|nvdash|nvDash|nVdash|nVDash|ugrave|ufisht|nvHarr|larrfs|nvlArr|larrhk|larrlp|larrpl|nvrArr|Udblac|nwarhk|larrtl|nwnear|oacute|Oacute|latail|lAtail|sstarf|lbrace|odblac|Odblac|lbrack|udblac|odsold|eparsl|lcaron|Lcaron|ograve|Ograve|lcedil|Lcedil|Aacute|ssmile|ssetmn|squarf|ldquor|capcup|ominus|cylcty|rharul|eqcirc|dagger|rfloor|rfisht|Dagger|daleth|equals|origof|capdot|equest|dcaron|Dcaron|rdquor|oslash|Oslash|otilde|Otilde|otimes|Otimes|urcrop|Ubreve|ubreve|Yacute|Uacute|uacute|Rcedil|rcedil|urcorn|parsim|Rcaron|Vdashl|rcaron|Tstrok|percnt|period|permil|Exists|yacute|rbrack|rbrace|phmmat|ccaron|Ccaron|planck|ccedil|plankv|tstrok|female|plusdo|plusdu|ffilig|plusmn|ffllig|Ccedil|rAtail|dfisht|bernou|ratail|Rarrtl|rarrtl|angsph|rarrpl|rarrlp|rarrhk|xwedge|xotime|forall|ForAll|Vvdash|vsupnE|preceq|bigcap|frac12|frac13|frac14|primes|rarrfs|prnsim|frac15|Square|frac16|square|lesdot|frac18|frac23|propto|prurel|rarrap|rangle|puncsp|frac25|Racute|qprime|racute|lesges|frac34|abreve|AElig|eqsim|utdot|setmn|urtri|Equal|Uring|seArr|uring|searr|dashv|Dashv|mumap|nabla|iogon|Iogon|sdote|sdotb|scsim|napid|napos|equiv|natur|Acirc|dblac|erarr|nbump|iprod|erDot|ucirc|awint|esdot|angrt|ncong|isinE|scnap|Scirc|scirc|ndash|isins|Ubrcy|nearr|neArr|isinv|nedot|ubrcy|acute|Ycirc|iukcy|Iukcy|xutri|nesim|caret|jcirc|Jcirc|caron|twixt|ddarr|sccue|exist|jmath|sbquo|ngeqq|angst|ccaps|lceil|ngsim|UpTee|delta|Delta|rtrif|nharr|nhArr|nhpar|rtrie|jukcy|Jukcy|kappa|rsquo|Kappa|nlarr|nlArr|TSHcy|rrarr|aogon|Aogon|fflig|xrarr|tshcy|ccirc|nleqq|filig|upsih|nless|dharl|nlsim|fjlig|ropar|nltri|dharr|robrk|roarr|fllig|fltns|roang|rnmid|subnE|subne|lAarr|trisb|Ccirc|acirc|ccups|blank|VDash|forkv|Vdash|langd|cedil|blk12|blk14|laquo|strns|diams|notin|vDash|larrb|blk34|block|disin|uplus|vdash|vBarv|aelig|starf|Wedge|check|xrArr|lates|lbarr|lBarr|notni|lbbrk|bcong|frasl|lbrke|frown|vrtri|vprop|vnsup|gamma|Gamma|wedge|xodot|bdquo|srarr|doteq|ldquo|boxdl|boxdL|gcirc|Gcirc|boxDl|boxDL|boxdr|boxdR|boxDr|TRADE|trade|rlhar|boxDR|vnsub|npart|vltri|rlarr|boxhd|boxhD|nprec|gescc|nrarr|nrArr|boxHd|boxHD|boxhu|boxhU|nrtri|boxHu|clubs|boxHU|times|colon|Colon|gimel|xlArr|Tilde|nsime|tilde|nsmid|nspar|THORN|thorn|xlarr|nsube|nsubE|thkap|xhArr|comma|nsucc|boxul|boxuL|nsupe|nsupE|gneqq|gnsim|boxUl|boxUL|grave|boxur|boxuR|boxUr|boxUR|lescc|angle|bepsi|boxvh|varpi|boxvH|numsp|Theta|gsime|gsiml|theta|boxVh|boxVH|boxvl|gtcir|gtdot|boxvL|boxVl|boxVL|crarr|cross|Cross|nvsim|boxvr|nwarr|nwArr|sqsup|dtdot|Uogon|lhard|lharu|dtrif|ocirc|Ocirc|lhblk|duarr|odash|sqsub|Hacek|sqcup|llarr|duhar|oelig|OElig|ofcir|boxvR|uogon|lltri|boxVr|csube|uuarr|ohbar|csupe|ctdot|olarr|olcir|harrw|oline|sqcap|omacr|Omacr|omega|Omega|boxVR|aleph|lneqq|lnsim|loang|loarr|rharu|lobrk|hcirc|operp|oplus|rhard|Hcirc|orarr|Union|order|ecirc|Ecirc|cuepr|szlig|cuesc|breve|reals|eDDot|Breve|hoarr|lopar|utrif|rdquo|Umacr|umacr|efDot|swArr|ultri|alpha|rceil|ovbar|swarr|Wcirc|wcirc|smtes|smile|bsemi|lrarr|aring|parsl|lrhar|bsime|uhblk|lrtri|cupor|Aring|uharr|uharl|slarr|rbrke|bsolb|lsime|rbbrk|RBarr|lsimg|phone|rBarr|rbarr|icirc|lsquo|Icirc|emacr|Emacr|ratio|simne|plusb|simlE|simgE|simeq|pluse|ltcir|ltdot|empty|xharr|xdtri|iexcl|Alpha|ltrie|rarrw|pound|ltrif|xcirc|bumpe|prcue|bumpE|asymp|amacr|cuvee|Sigma|sigma|iiint|udhar|iiota|ijlig|IJlig|supnE|imacr|Imacr|prime|Prime|image|prnap|eogon|Eogon|rarrc|mdash|mDDot|cuwed|imath|supne|imped|Amacr|udarr|prsim|micro|rarrb|cwint|raquo|infin|eplus|range|rangd|Ucirc|radic|minus|amalg|veeeq|rAarr|epsiv|ycirc|quest|sharp|quot|zwnj|Qscr|race|qscr|Qopf|qopf|qint|rang|Rang|Zscr|zscr|Zopf|zopf|rarr|rArr|Rarr|Pscr|pscr|prop|prod|prnE|prec|ZHcy|zhcy|prap|Zeta|zeta|Popf|popf|Zdot|plus|zdot|Yuml|yuml|phiv|YUcy|yucy|Yscr|yscr|perp|Yopf|yopf|part|para|YIcy|Ouml|rcub|yicy|YAcy|rdca|ouml|osol|Oscr|rdsh|yacy|real|oscr|xvee|andd|rect|andv|Xscr|oror|ordm|ordf|xscr|ange|aopf|Aopf|rHar|Xopf|opar|Oopf|xopf|xnis|rhov|oopf|omid|xmap|oint|apid|apos|ogon|ascr|Ascr|odot|odiv|xcup|xcap|ocir|oast|nvlt|nvle|nvgt|nvge|nvap|Wscr|wscr|auml|ntlg|ntgl|nsup|nsub|nsim|Nscr|nscr|nsce|Wopf|ring|npre|wopf|npar|Auml|Barv|bbrk|Nopf|nopf|nmid|nLtv|beta|ropf|Ropf|Beta|beth|nles|rpar|nleq|bnot|bNot|nldr|NJcy|rscr|Rscr|Vscr|vscr|rsqb|njcy|bopf|nisd|Bopf|rtri|Vopf|nGtv|ngtr|vopf|boxh|boxH|boxv|nges|ngeq|boxV|bscr|scap|Bscr|bsim|Vert|vert|bsol|bull|bump|caps|cdot|ncup|scnE|ncap|nbsp|napE|Cdot|cent|sdot|Vbar|nang|vBar|chcy|Mscr|mscr|sect|semi|CHcy|Mopf|mopf|sext|circ|cire|mldr|mlcp|cirE|comp|shcy|SHcy|vArr|varr|cong|copf|Copf|copy|COPY|malt|male|macr|lvnE|cscr|ltri|sime|ltcc|simg|Cscr|siml|csub|Uuml|lsqb|lsim|uuml|csup|Lscr|lscr|utri|smid|lpar|cups|smte|lozf|darr|Lopf|Uscr|solb|lopf|sopf|Sopf|lneq|uscr|spar|dArr|lnap|Darr|dash|Sqrt|LJcy|ljcy|lHar|dHar|Upsi|upsi|diam|lesg|djcy|DJcy|leqq|dopf|Dopf|dscr|Dscr|dscy|ldsh|ldca|squf|DScy|sscr|Sscr|dsol|lcub|late|star|Star|Uopf|Larr|lArr|larr|uopf|dtri|dzcy|sube|subE|Lang|lang|Kscr|kscr|Kopf|kopf|KJcy|kjcy|KHcy|khcy|DZcy|ecir|edot|eDot|Jscr|jscr|succ|Jopf|jopf|Edot|uHar|emsp|ensp|Iuml|iuml|eopf|isin|Iscr|iscr|Eopf|epar|sung|epsi|escr|sup1|sup2|sup3|Iota|iota|supe|supE|Iopf|iopf|IOcy|iocy|Escr|esim|Esim|imof|Uarr|QUOT|uArr|uarr|euml|IEcy|iecy|Idot|Euml|euro|excl|Hscr|hscr|Hopf|hopf|TScy|tscy|Tscr|hbar|tscr|flat|tbrk|fnof|hArr|harr|half|fopf|Fopf|tdot|gvnE|fork|trie|gtcc|fscr|Fscr|gdot|gsim|Gscr|gscr|Gopf|gopf|gneq|Gdot|tosa|gnap|Topf|topf|geqq|toea|GJcy|gjcy|tint|gesl|mid|Sfr|ggg|top|ges|gla|glE|glj|geq|gne|gEl|gel|gnE|Gcy|gcy|gap|Tfr|tfr|Tcy|tcy|Hat|Tau|Ffr|tau|Tab|hfr|Hfr|ffr|Fcy|fcy|icy|Icy|iff|ETH|eth|ifr|Ifr|Eta|eta|int|Int|Sup|sup|ucy|Ucy|Sum|sum|jcy|ENG|ufr|Ufr|eng|Jcy|jfr|els|ell|egs|Efr|efr|Jfr|uml|kcy|Kcy|Ecy|ecy|kfr|Kfr|lap|Sub|sub|lat|lcy|Lcy|leg|Dot|dot|lEg|leq|les|squ|div|die|lfr|Lfr|lgE|Dfr|dfr|Del|deg|Dcy|dcy|lne|lnE|sol|loz|smt|Cup|lrm|cup|lsh|Lsh|sim|shy|map|Map|mcy|Mcy|mfr|Mfr|mho|gfr|Gfr|sfr|cir|Chi|chi|nap|Cfr|vcy|Vcy|cfr|Scy|scy|ncy|Ncy|vee|Vee|Cap|cap|nfr|scE|sce|Nfr|nge|ngE|nGg|vfr|Vfr|ngt|bot|nGt|nis|niv|Rsh|rsh|nle|nlE|bne|Bfr|bfr|nLl|nlt|nLt|Bcy|bcy|not|Not|rlm|wfr|Wfr|npr|nsc|num|ocy|ast|Ocy|ofr|xfr|Xfr|Ofr|ogt|ohm|apE|olt|Rho|ape|rho|Rfr|rfr|ord|REG|ang|reg|orv|And|and|AMP|Rcy|amp|Afr|ycy|Ycy|yen|yfr|Yfr|rcy|par|pcy|Pcy|pfr|Pfr|phi|Phi|afr|Acy|acy|zcy|Zcy|piv|acE|acd|zfr|Zfr|pre|prE|psi|Psi|qfr|Qfr|zwj|Or|ge|Gg|gt|gg|el|oS|lt|Lt|LT|Re|lg|gl|eg|ne|Im|it|le|DD|wp|wr|nu|Nu|dd|lE|Sc|sc|pi|Pi|ee|af|ll|Ll|rx|gE|xi|pm|Xi|ic|pr|Pr|in|ni|mp|mu|ac|Mu|or|ap|Gt|GT|ii);|&(Aacute|Agrave|Atilde|Ccedil|Eacute|Egrave|Iacute|Igrave|Ntilde|Oacute|Ograve|Oslash|Otilde|Uacute|Ugrave|Yacute|aacute|agrave|atilde|brvbar|ccedil|curren|divide|eacute|egrave|frac12|frac14|frac34|iacute|igrave|iquest|middot|ntilde|oacute|ograve|oslash|otilde|plusmn|uacute|ugrave|yacute|AElig|Acirc|Aring|Ecirc|Icirc|Ocirc|THORN|Ucirc|acirc|acute|aelig|aring|cedil|ecirc|icirc|iexcl|laquo|micro|ocirc|pound|raquo|szlig|thorn|times|ucirc|Auml|COPY|Euml|Iuml|Ouml|QUOT|Uuml|auml|cent|copy|euml|iuml|macr|nbsp|ordf|ordm|ouml|para|quot|sect|sup1|sup2|sup3|uuml|yuml|AMP|ETH|REG|amp|deg|eth|not|reg|shy|uml|yen|GT|LT|gt|lt)(?!;)([=a-zA-Z0-9]?)|&#([0-9]+)(;?)|&#[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+)/g;\n\tvar decodeMap = {'aacute':'\\xE1','Aacute':'\\xC1','abreve':'\\u0103','Abreve':'\\u0102','ac':'\\u223E','acd':'\\u223F','acE':'\\u223E\\u0333','acirc':'\\xE2','Acirc':'\\xC2','acute':'\\xB4','acy':'\\u0430','Acy':'\\u0410','aelig':'\\xE6','AElig':'\\xC6','af':'\\u2061','afr':'\\uD835\\uDD1E','Afr':'\\uD835\\uDD04','agrave':'\\xE0','Agrave':'\\xC0','alefsym':'\\u2135','aleph':'\\u2135','alpha':'\\u03B1','Alpha':'\\u0391','amacr':'\\u0101','Amacr':'\\u0100','amalg':'\\u2A3F','amp':'&','AMP':'&','and':'\\u2227','And':'\\u2A53','andand':'\\u2A55','andd':'\\u2A5C','andslope':'\\u2A58','andv':'\\u2A5A','ang':'\\u2220','ange':'\\u29A4','angle':'\\u2220','angmsd':'\\u2221','angmsdaa':'\\u29A8','angmsdab':'\\u29A9','angmsdac':'\\u29AA','angmsdad':'\\u29AB','angmsdae':'\\u29AC','angmsdaf':'\\u29AD','angmsdag':'\\u29AE','angmsdah':'\\u29AF','angrt':'\\u221F','angrtvb':'\\u22BE','angrtvbd':'\\u299D','angsph':'\\u2222','angst':'\\xC5','angzarr':'\\u237C','aogon':'\\u0105','Aogon':'\\u0104','aopf':'\\uD835\\uDD52','Aopf':'\\uD835\\uDD38','ap':'\\u2248','apacir':'\\u2A6F','ape':'\\u224A','apE':'\\u2A70','apid':'\\u224B','apos':'\\'','ApplyFunction':'\\u2061','approx':'\\u2248','approxeq':'\\u224A','aring':'\\xE5','Aring':'\\xC5','ascr':'\\uD835\\uDCB6','Ascr':'\\uD835\\uDC9C','Assign':'\\u2254','ast':'*','asymp':'\\u2248','asympeq':'\\u224D','atilde':'\\xE3','Atilde':'\\xC3','auml':'\\xE4','Auml':'\\xC4','awconint':'\\u2233','awint':'\\u2A11','backcong':'\\u224C','backepsilon':'\\u03F6','backprime':'\\u2035','backsim':'\\u223D','backsimeq':'\\u22CD','Backslash':'\\u2216','Barv':'\\u2AE7','barvee':'\\u22BD','barwed':'\\u2305','Barwed':'\\u2306','barwedge':'\\u2305','bbrk':'\\u23B5','bbrktbrk':'\\u23B6','bcong':'\\u224C','bcy':'\\u0431','Bcy':'\\u0411','bdquo':'\\u201E','becaus':'\\u2235','because':'\\u2235','Because':'\\u2235','bemptyv':'\\u29B0','bepsi':'\\u03F6','bernou':'\\u212C','Bernoullis':'\\u212C','beta':'\\u03B2','Beta':'\\u0392','beth':'\\u2136','between':'\\u226C','bfr':'\\uD835\\uDD1F','Bfr':'\\uD835\\uDD05','bigcap':'\\u22C2','bigcirc':'\\u25EF','bigcup':'\\u22C3','bigodot':'\\u2A00','bigoplus':'\\u2A01','bigotimes':'\\u2A02','bigsqcup':'\\u2A06','bigstar':'\\u2605','bigtriangledown':'\\u25BD','bigtriangleup':'\\u25B3','biguplus':'\\u2A04','bigvee':'\\u22C1','bigwedge':'\\u22C0','bkarow':'\\u290D','blacklozenge':'\\u29EB','blacksquare':'\\u25AA','blacktriangle':'\\u25B4','blacktriangledown':'\\u25BE','blacktriangleleft':'\\u25C2','blacktriangleright':'\\u25B8','blank':'\\u2423','blk12':'\\u2592','blk14':'\\u2591','blk34':'\\u2593','block':'\\u2588','bne':'=\\u20E5','bnequiv':'\\u2261\\u20E5','bnot':'\\u2310','bNot':'\\u2AED','bopf':'\\uD835\\uDD53','Bopf':'\\uD835\\uDD39','bot':'\\u22A5','bottom':'\\u22A5','bowtie':'\\u22C8','boxbox':'\\u29C9','boxdl':'\\u2510','boxdL':'\\u2555','boxDl':'\\u2556','boxDL':'\\u2557','boxdr':'\\u250C','boxdR':'\\u2552','boxDr':'\\u2553','boxDR':'\\u2554','boxh':'\\u2500','boxH':'\\u2550','boxhd':'\\u252C','boxhD':'\\u2565','boxHd':'\\u2564','boxHD':'\\u2566','boxhu':'\\u2534','boxhU':'\\u2568','boxHu':'\\u2567','boxHU':'\\u2569','boxminus':'\\u229F','boxplus':'\\u229E','boxtimes':'\\u22A0','boxul':'\\u2518','boxuL':'\\u255B','boxUl':'\\u255C','boxUL':'\\u255D','boxur':'\\u2514','boxuR':'\\u2558','boxUr':'\\u2559','boxUR':'\\u255A','boxv':'\\u2502','boxV':'\\u2551','boxvh':'\\u253C','boxvH':'\\u256A','boxVh':'\\u256B','boxVH':'\\u256C','boxvl':'\\u2524','boxvL':'\\u2561','boxVl':'\\u2562','boxVL':'\\u2563','boxvr':'\\u251C','boxvR':'\\u255E','boxVr':'\\u255F','boxVR':'\\u2560','bprime':'\\u2035','breve':'\\u02D8','Breve':'\\u02D8','brvbar':'\\xA6','bscr':'\\uD835\\uDCB7','Bscr':'\\u212C','bsemi':'\\u204F','bsim':'\\u223D','bsime':'\\u22CD','bsol':'\\\\','bsolb':'\\u29C5','bsolhsub':'\\u27C8','bull':'\\u2022','bullet':'\\u2022','bump':'\\u224E','bumpe':'\\u224F','bumpE':'\\u2AAE','bumpeq':'\\u224F','Bumpeq':'\\u224E','cacute':'\\u0107','Cacute':'\\u0106','cap':'\\u2229','Cap':'\\u22D2','capand':'\\u2A44','capbrcup':'\\u2A49','capcap':'\\u2A4B','capcup':'\\u2A47','capdot':'\\u2A40','CapitalDifferentialD':'\\u2145','caps':'\\u2229\\uFE00','caret':'\\u2041','caron':'\\u02C7','Cayleys':'\\u212D','ccaps':'\\u2A4D','ccaron':'\\u010D','Ccaron':'\\u010C','ccedil':'\\xE7','Ccedil':'\\xC7','ccirc':'\\u0109','Ccirc':'\\u0108','Cconint':'\\u2230','ccups':'\\u2A4C','ccupssm':'\\u2A50','cdot':'\\u010B','Cdot':'\\u010A','cedil':'\\xB8','Cedilla':'\\xB8','cemptyv':'\\u29B2','cent':'\\xA2','centerdot':'\\xB7','CenterDot':'\\xB7','cfr':'\\uD835\\uDD20','Cfr':'\\u212D','chcy':'\\u0447','CHcy':'\\u0427','check':'\\u2713','checkmark':'\\u2713','chi':'\\u03C7','Chi':'\\u03A7','cir':'\\u25CB','circ':'\\u02C6','circeq':'\\u2257','circlearrowleft':'\\u21BA','circlearrowright':'\\u21BB','circledast':'\\u229B','circledcirc':'\\u229A','circleddash':'\\u229D','CircleDot':'\\u2299','circledR':'\\xAE','circledS':'\\u24C8','CircleMinus':'\\u2296','CirclePlus':'\\u2295','CircleTimes':'\\u2297','cire':'\\u2257','cirE':'\\u29C3','cirfnint':'\\u2A10','cirmid':'\\u2AEF','cirscir':'\\u29C2','ClockwiseContourIntegral':'\\u2232','CloseCurlyDoubleQuote':'\\u201D','CloseCurlyQuote':'\\u2019','clubs':'\\u2663','clubsuit':'\\u2663','colon':':','Colon':'\\u2237','colone':'\\u2254','Colone':'\\u2A74','coloneq':'\\u2254','comma':',','commat':'@','comp':'\\u2201','compfn':'\\u2218','complement':'\\u2201','complexes':'\\u2102','cong':'\\u2245','congdot':'\\u2A6D','Congruent':'\\u2261','conint':'\\u222E','Conint':'\\u222F','ContourIntegral':'\\u222E','copf':'\\uD835\\uDD54','Copf':'\\u2102','coprod':'\\u2210','Coproduct':'\\u2210','copy':'\\xA9','COPY':'\\xA9','copysr':'\\u2117','CounterClockwiseContourIntegral':'\\u2233','crarr':'\\u21B5','cross':'\\u2717','Cross':'\\u2A2F','cscr':'\\uD835\\uDCB8','Cscr':'\\uD835\\uDC9E','csub':'\\u2ACF','csube':'\\u2AD1','csup':'\\u2AD0','csupe':'\\u2AD2','ctdot':'\\u22EF','cudarrl':'\\u2938','cudarrr':'\\u2935','cuepr':'\\u22DE','cuesc':'\\u22DF','cularr':'\\u21B6','cularrp':'\\u293D','cup':'\\u222A','Cup':'\\u22D3','cupbrcap':'\\u2A48','cupcap':'\\u2A46','CupCap':'\\u224D','cupcup':'\\u2A4A','cupdot':'\\u228D','cupor':'\\u2A45','cups':'\\u222A\\uFE00','curarr':'\\u21B7','curarrm':'\\u293C','curlyeqprec':'\\u22DE','curlyeqsucc':'\\u22DF','curlyvee':'\\u22CE','curlywedge':'\\u22CF','curren':'\\xA4','curvearrowleft':'\\u21B6','curvearrowright':'\\u21B7','cuvee':'\\u22CE','cuwed':'\\u22CF','cwconint':'\\u2232','cwint':'\\u2231','cylcty':'\\u232D','dagger':'\\u2020','Dagger':'\\u2021','daleth':'\\u2138','darr':'\\u2193','dArr':'\\u21D3','Darr':'\\u21A1','dash':'\\u2010','dashv':'\\u22A3','Dashv':'\\u2AE4','dbkarow':'\\u290F','dblac':'\\u02DD','dcaron':'\\u010F','Dcaron':'\\u010E','dcy':'\\u0434','Dcy':'\\u0414','dd':'\\u2146','DD':'\\u2145','ddagger':'\\u2021','ddarr':'\\u21CA','DDotrahd':'\\u2911','ddotseq':'\\u2A77','deg':'\\xB0','Del':'\\u2207','delta':'\\u03B4','Delta':'\\u0394','demptyv':'\\u29B1','dfisht':'\\u297F','dfr':'\\uD835\\uDD21','Dfr':'\\uD835\\uDD07','dHar':'\\u2965','dharl':'\\u21C3','dharr':'\\u21C2','DiacriticalAcute':'\\xB4','DiacriticalDot':'\\u02D9','DiacriticalDoubleAcute':'\\u02DD','DiacriticalGrave':'`','DiacriticalTilde':'\\u02DC','diam':'\\u22C4','diamond':'\\u22C4','Diamond':'\\u22C4','diamondsuit':'\\u2666','diams':'\\u2666','die':'\\xA8','DifferentialD':'\\u2146','digamma':'\\u03DD','disin':'\\u22F2','div':'\\xF7','divide':'\\xF7','divideontimes':'\\u22C7','divonx':'\\u22C7','djcy':'\\u0452','DJcy':'\\u0402','dlcorn':'\\u231E','dlcrop':'\\u230D','dollar':'$','dopf':'\\uD835\\uDD55','Dopf':'\\uD835\\uDD3B','dot':'\\u02D9','Dot':'\\xA8','DotDot':'\\u20DC','doteq':'\\u2250','doteqdot':'\\u2251','DotEqual':'\\u2250','dotminus':'\\u2238','dotplus':'\\u2214','dotsquare':'\\u22A1','doublebarwedge':'\\u2306','DoubleContourIntegral':'\\u222F','DoubleDot':'\\xA8','DoubleDownArrow':'\\u21D3','DoubleLeftArrow':'\\u21D0','DoubleLeftRightArrow':'\\u21D4','DoubleLeftTee':'\\u2AE4','DoubleLongLeftArrow':'\\u27F8','DoubleLongLeftRightArrow':'\\u27FA','DoubleLongRightArrow':'\\u27F9','DoubleRightArrow':'\\u21D2','DoubleRightTee':'\\u22A8','DoubleUpArrow':'\\u21D1','DoubleUpDownArrow':'\\u21D5','DoubleVerticalBar':'\\u2225','downarrow':'\\u2193','Downarrow':'\\u21D3','DownArrow':'\\u2193','DownArrowBar':'\\u2913','DownArrowUpArrow':'\\u21F5','DownBreve':'\\u0311','downdownarrows':'\\u21CA','downharpoonleft':'\\u21C3','downharpoonright':'\\u21C2','DownLeftRightVector':'\\u2950','DownLeftTeeVector':'\\u295E','DownLeftVector':'\\u21BD','DownLeftVectorBar':'\\u2956','DownRightTeeVector':'\\u295F','DownRightVector':'\\u21C1','DownRightVectorBar':'\\u2957','DownTee':'\\u22A4','DownTeeArrow':'\\u21A7','drbkarow':'\\u2910','drcorn':'\\u231F','drcrop':'\\u230C','dscr':'\\uD835\\uDCB9','Dscr':'\\uD835\\uDC9F','dscy':'\\u0455','DScy':'\\u0405','dsol':'\\u29F6','dstrok':'\\u0111','Dstrok':'\\u0110','dtdot':'\\u22F1','dtri':'\\u25BF','dtrif':'\\u25BE','duarr':'\\u21F5','duhar':'\\u296F','dwangle':'\\u29A6','dzcy':'\\u045F','DZcy':'\\u040F','dzigrarr':'\\u27FF','eacute':'\\xE9','Eacute':'\\xC9','easter':'\\u2A6E','ecaron':'\\u011B','Ecaron':'\\u011A','ecir':'\\u2256','ecirc':'\\xEA','Ecirc':'\\xCA','ecolon':'\\u2255','ecy':'\\u044D','Ecy':'\\u042D','eDDot':'\\u2A77','edot':'\\u0117','eDot':'\\u2251','Edot':'\\u0116','ee':'\\u2147','efDot':'\\u2252','efr':'\\uD835\\uDD22','Efr':'\\uD835\\uDD08','eg':'\\u2A9A','egrave':'\\xE8','Egrave':'\\xC8','egs':'\\u2A96','egsdot':'\\u2A98','el':'\\u2A99','Element':'\\u2208','elinters':'\\u23E7','ell':'\\u2113','els':'\\u2A95','elsdot':'\\u2A97','emacr':'\\u0113','Emacr':'\\u0112','empty':'\\u2205','emptyset':'\\u2205','EmptySmallSquare':'\\u25FB','emptyv':'\\u2205','EmptyVerySmallSquare':'\\u25AB','emsp':'\\u2003','emsp13':'\\u2004','emsp14':'\\u2005','eng':'\\u014B','ENG':'\\u014A','ensp':'\\u2002','eogon':'\\u0119','Eogon':'\\u0118','eopf':'\\uD835\\uDD56','Eopf':'\\uD835\\uDD3C','epar':'\\u22D5','eparsl':'\\u29E3','eplus':'\\u2A71','epsi':'\\u03B5','epsilon':'\\u03B5','Epsilon':'\\u0395','epsiv':'\\u03F5','eqcirc':'\\u2256','eqcolon':'\\u2255','eqsim':'\\u2242','eqslantgtr':'\\u2A96','eqslantless':'\\u2A95','Equal':'\\u2A75','equals':'=','EqualTilde':'\\u2242','equest':'\\u225F','Equilibrium':'\\u21CC','equiv':'\\u2261','equivDD':'\\u2A78','eqvparsl':'\\u29E5','erarr':'\\u2971','erDot':'\\u2253','escr':'\\u212F','Escr':'\\u2130','esdot':'\\u2250','esim':'\\u2242','Esim':'\\u2A73','eta':'\\u03B7','Eta':'\\u0397','eth':'\\xF0','ETH':'\\xD0','euml':'\\xEB','Euml':'\\xCB','euro':'\\u20AC','excl':'!','exist':'\\u2203','Exists':'\\u2203','expectation':'\\u2130','exponentiale':'\\u2147','ExponentialE':'\\u2147','fallingdotseq':'\\u2252','fcy':'\\u0444','Fcy':'\\u0424','female':'\\u2640','ffilig':'\\uFB03','fflig':'\\uFB00','ffllig':'\\uFB04','ffr':'\\uD835\\uDD23','Ffr':'\\uD835\\uDD09','filig':'\\uFB01','FilledSmallSquare':'\\u25FC','FilledVerySmallSquare':'\\u25AA','fjlig':'fj','flat':'\\u266D','fllig':'\\uFB02','fltns':'\\u25B1','fnof':'\\u0192','fopf':'\\uD835\\uDD57','Fopf':'\\uD835\\uDD3D','forall':'\\u2200','ForAll':'\\u2200','fork':'\\u22D4','forkv':'\\u2AD9','Fouriertrf':'\\u2131','fpartint':'\\u2A0D','frac12':'\\xBD','frac13':'\\u2153','frac14':'\\xBC','frac15':'\\u2155','frac16':'\\u2159','frac18':'\\u215B','frac23':'\\u2154','frac25':'\\u2156','frac34':'\\xBE','frac35':'\\u2157','frac38':'\\u215C','frac45':'\\u2158','frac56':'\\u215A','frac58':'\\u215D','frac78':'\\u215E','frasl':'\\u2044','frown':'\\u2322','fscr':'\\uD835\\uDCBB','Fscr':'\\u2131','gacute':'\\u01F5','gamma':'\\u03B3','Gamma':'\\u0393','gammad':'\\u03DD','Gammad':'\\u03DC','gap':'\\u2A86','gbreve':'\\u011F','Gbreve':'\\u011E','Gcedil':'\\u0122','gcirc':'\\u011D','Gcirc':'\\u011C','gcy':'\\u0433','Gcy':'\\u0413','gdot':'\\u0121','Gdot':'\\u0120','ge':'\\u2265','gE':'\\u2267','gel':'\\u22DB','gEl':'\\u2A8C','geq':'\\u2265','geqq':'\\u2267','geqslant':'\\u2A7E','ges':'\\u2A7E','gescc':'\\u2AA9','gesdot':'\\u2A80','gesdoto':'\\u2A82','gesdotol':'\\u2A84','gesl':'\\u22DB\\uFE00','gesles':'\\u2A94','gfr':'\\uD835\\uDD24','Gfr':'\\uD835\\uDD0A','gg':'\\u226B','Gg':'\\u22D9','ggg':'\\u22D9','gimel':'\\u2137','gjcy':'\\u0453','GJcy':'\\u0403','gl':'\\u2277','gla':'\\u2AA5','glE':'\\u2A92','glj':'\\u2AA4','gnap':'\\u2A8A','gnapprox':'\\u2A8A','gne':'\\u2A88','gnE':'\\u2269','gneq':'\\u2A88','gneqq':'\\u2269','gnsim':'\\u22E7','gopf':'\\uD835\\uDD58','Gopf':'\\uD835\\uDD3E','grave':'`','GreaterEqual':'\\u2265','GreaterEqualLess':'\\u22DB','GreaterFullEqual':'\\u2267','GreaterGreater':'\\u2AA2','GreaterLess':'\\u2277','GreaterSlantEqual':'\\u2A7E','GreaterTilde':'\\u2273','gscr':'\\u210A','Gscr':'\\uD835\\uDCA2','gsim':'\\u2273','gsime':'\\u2A8E','gsiml':'\\u2A90','gt':'>','Gt':'\\u226B','GT':'>','gtcc':'\\u2AA7','gtcir':'\\u2A7A','gtdot':'\\u22D7','gtlPar':'\\u2995','gtquest':'\\u2A7C','gtrapprox':'\\u2A86','gtrarr':'\\u2978','gtrdot':'\\u22D7','gtreqless':'\\u22DB','gtreqqless':'\\u2A8C','gtrless':'\\u2277','gtrsim':'\\u2273','gvertneqq':'\\u2269\\uFE00','gvnE':'\\u2269\\uFE00','Hacek':'\\u02C7','hairsp':'\\u200A','half':'\\xBD','hamilt':'\\u210B','hardcy':'\\u044A','HARDcy':'\\u042A','harr':'\\u2194','hArr':'\\u21D4','harrcir':'\\u2948','harrw':'\\u21AD','Hat':'^','hbar':'\\u210F','hcirc':'\\u0125','Hcirc':'\\u0124','hearts':'\\u2665','heartsuit':'\\u2665','hellip':'\\u2026','hercon':'\\u22B9','hfr':'\\uD835\\uDD25','Hfr':'\\u210C','HilbertSpace':'\\u210B','hksearow':'\\u2925','hkswarow':'\\u2926','hoarr':'\\u21FF','homtht':'\\u223B','hookleftarrow':'\\u21A9','hookrightarrow':'\\u21AA','hopf':'\\uD835\\uDD59','Hopf':'\\u210D','horbar':'\\u2015','HorizontalLine':'\\u2500','hscr':'\\uD835\\uDCBD','Hscr':'\\u210B','hslash':'\\u210F','hstrok':'\\u0127','Hstrok':'\\u0126','HumpDownHump':'\\u224E','HumpEqual':'\\u224F','hybull':'\\u2043','hyphen':'\\u2010','iacute':'\\xED','Iacute':'\\xCD','ic':'\\u2063','icirc':'\\xEE','Icirc':'\\xCE','icy':'\\u0438','Icy':'\\u0418','Idot':'\\u0130','iecy':'\\u0435','IEcy':'\\u0415','iexcl':'\\xA1','iff':'\\u21D4','ifr':'\\uD835\\uDD26','Ifr':'\\u2111','igrave':'\\xEC','Igrave':'\\xCC','ii':'\\u2148','iiiint':'\\u2A0C','iiint':'\\u222D','iinfin':'\\u29DC','iiota':'\\u2129','ijlig':'\\u0133','IJlig':'\\u0132','Im':'\\u2111','imacr':'\\u012B','Imacr':'\\u012A','image':'\\u2111','ImaginaryI':'\\u2148','imagline':'\\u2110','imagpart':'\\u2111','imath':'\\u0131','imof':'\\u22B7','imped':'\\u01B5','Implies':'\\u21D2','in':'\\u2208','incare':'\\u2105','infin':'\\u221E','infintie':'\\u29DD','inodot':'\\u0131','int':'\\u222B','Int':'\\u222C','intcal':'\\u22BA','integers':'\\u2124','Integral':'\\u222B','intercal':'\\u22BA','Intersection':'\\u22C2','intlarhk':'\\u2A17','intprod':'\\u2A3C','InvisibleComma':'\\u2063','InvisibleTimes':'\\u2062','iocy':'\\u0451','IOcy':'\\u0401','iogon':'\\u012F','Iogon':'\\u012E','iopf':'\\uD835\\uDD5A','Iopf':'\\uD835\\uDD40','iota':'\\u03B9','Iota':'\\u0399','iprod':'\\u2A3C','iquest':'\\xBF','iscr':'\\uD835\\uDCBE','Iscr':'\\u2110','isin':'\\u2208','isindot':'\\u22F5','isinE':'\\u22F9','isins':'\\u22F4','isinsv':'\\u22F3','isinv':'\\u2208','it':'\\u2062','itilde':'\\u0129','Itilde':'\\u0128','iukcy':'\\u0456','Iukcy':'\\u0406','iuml':'\\xEF','Iuml':'\\xCF','jcirc':'\\u0135','Jcirc':'\\u0134','jcy':'\\u0439','Jcy':'\\u0419','jfr':'\\uD835\\uDD27','Jfr':'\\uD835\\uDD0D','jmath':'\\u0237','jopf':'\\uD835\\uDD5B','Jopf':'\\uD835\\uDD41','jscr':'\\uD835\\uDCBF','Jscr':'\\uD835\\uDCA5','jsercy':'\\u0458','Jsercy':'\\u0408','jukcy':'\\u0454','Jukcy':'\\u0404','kappa':'\\u03BA','Kappa':'\\u039A','kappav':'\\u03F0','kcedil':'\\u0137','Kcedil':'\\u0136','kcy':'\\u043A','Kcy':'\\u041A','kfr':'\\uD835\\uDD28','Kfr':'\\uD835\\uDD0E','kgreen':'\\u0138','khcy':'\\u0445','KHcy':'\\u0425','kjcy':'\\u045C','KJcy':'\\u040C','kopf':'\\uD835\\uDD5C','Kopf':'\\uD835\\uDD42','kscr':'\\uD835\\uDCC0','Kscr':'\\uD835\\uDCA6','lAarr':'\\u21DA','lacute':'\\u013A','Lacute':'\\u0139','laemptyv':'\\u29B4','lagran':'\\u2112','lambda':'\\u03BB','Lambda':'\\u039B','lang':'\\u27E8','Lang':'\\u27EA','langd':'\\u2991','langle':'\\u27E8','lap':'\\u2A85','Laplacetrf':'\\u2112','laquo':'\\xAB','larr':'\\u2190','lArr':'\\u21D0','Larr':'\\u219E','larrb':'\\u21E4','larrbfs':'\\u291F','larrfs':'\\u291D','larrhk':'\\u21A9','larrlp':'\\u21AB','larrpl':'\\u2939','larrsim':'\\u2973','larrtl':'\\u21A2','lat':'\\u2AAB','latail':'\\u2919','lAtail':'\\u291B','late':'\\u2AAD','lates':'\\u2AAD\\uFE00','lbarr':'\\u290C','lBarr':'\\u290E','lbbrk':'\\u2772','lbrace':'{','lbrack':'[','lbrke':'\\u298B','lbrksld':'\\u298F','lbrkslu':'\\u298D','lcaron':'\\u013E','Lcaron':'\\u013D','lcedil':'\\u013C','Lcedil':'\\u013B','lceil':'\\u2308','lcub':'{','lcy':'\\u043B','Lcy':'\\u041B','ldca':'\\u2936','ldquo':'\\u201C','ldquor':'\\u201E','ldrdhar':'\\u2967','ldrushar':'\\u294B','ldsh':'\\u21B2','le':'\\u2264','lE':'\\u2266','LeftAngleBracket':'\\u27E8','leftarrow':'\\u2190','Leftarrow':'\\u21D0','LeftArrow':'\\u2190','LeftArrowBar':'\\u21E4','LeftArrowRightArrow':'\\u21C6','leftarrowtail':'\\u21A2','LeftCeiling':'\\u2308','LeftDoubleBracket':'\\u27E6','LeftDownTeeVector':'\\u2961','LeftDownVector':'\\u21C3','LeftDownVectorBar':'\\u2959','LeftFloor':'\\u230A','leftharpoondown':'\\u21BD','leftharpoonup':'\\u21BC','leftleftarrows':'\\u21C7','leftrightarrow':'\\u2194','Leftrightarrow':'\\u21D4','LeftRightArrow':'\\u2194','leftrightarrows':'\\u21C6','leftrightharpoons':'\\u21CB','leftrightsquigarrow':'\\u21AD','LeftRightVector':'\\u294E','LeftTee':'\\u22A3','LeftTeeArrow':'\\u21A4','LeftTeeVector':'\\u295A','leftthreetimes':'\\u22CB','LeftTriangle':'\\u22B2','LeftTriangleBar':'\\u29CF','LeftTriangleEqual':'\\u22B4','LeftUpDownVector':'\\u2951','LeftUpTeeVector':'\\u2960','LeftUpVector':'\\u21BF','LeftUpVectorBar':'\\u2958','LeftVector':'\\u21BC','LeftVectorBar':'\\u2952','leg':'\\u22DA','lEg':'\\u2A8B','leq':'\\u2264','leqq':'\\u2266','leqslant':'\\u2A7D','les':'\\u2A7D','lescc':'\\u2AA8','lesdot':'\\u2A7F','lesdoto':'\\u2A81','lesdotor':'\\u2A83','lesg':'\\u22DA\\uFE00','lesges':'\\u2A93','lessapprox':'\\u2A85','lessdot':'\\u22D6','lesseqgtr':'\\u22DA','lesseqqgtr':'\\u2A8B','LessEqualGreater':'\\u22DA','LessFullEqual':'\\u2266','LessGreater':'\\u2276','lessgtr':'\\u2276','LessLess':'\\u2AA1','lesssim':'\\u2272','LessSlantEqual':'\\u2A7D','LessTilde':'\\u2272','lfisht':'\\u297C','lfloor':'\\u230A','lfr':'\\uD835\\uDD29','Lfr':'\\uD835\\uDD0F','lg':'\\u2276','lgE':'\\u2A91','lHar':'\\u2962','lhard':'\\u21BD','lharu':'\\u21BC','lharul':'\\u296A','lhblk':'\\u2584','ljcy':'\\u0459','LJcy':'\\u0409','ll':'\\u226A','Ll':'\\u22D8','llarr':'\\u21C7','llcorner':'\\u231E','Lleftarrow':'\\u21DA','llhard':'\\u296B','lltri':'\\u25FA','lmidot':'\\u0140','Lmidot':'\\u013F','lmoust':'\\u23B0','lmoustache':'\\u23B0','lnap':'\\u2A89','lnapprox':'\\u2A89','lne':'\\u2A87','lnE':'\\u2268','lneq':'\\u2A87','lneqq':'\\u2268','lnsim':'\\u22E6','loang':'\\u27EC','loarr':'\\u21FD','lobrk':'\\u27E6','longleftarrow':'\\u27F5','Longleftarrow':'\\u27F8','LongLeftArrow':'\\u27F5','longleftrightarrow':'\\u27F7','Longleftrightarrow':'\\u27FA','LongLeftRightArrow':'\\u27F7','longmapsto':'\\u27FC','longrightarrow':'\\u27F6','Longrightarrow':'\\u27F9','LongRightArrow':'\\u27F6','looparrowleft':'\\u21AB','looparrowright':'\\u21AC','lopar':'\\u2985','lopf':'\\uD835\\uDD5D','Lopf':'\\uD835\\uDD43','loplus':'\\u2A2D','lotimes':'\\u2A34','lowast':'\\u2217','lowbar':'_','LowerLeftArrow':'\\u2199','LowerRightArrow':'\\u2198','loz':'\\u25CA','lozenge':'\\u25CA','lozf':'\\u29EB','lpar':'(','lparlt':'\\u2993','lrarr':'\\u21C6','lrcorner':'\\u231F','lrhar':'\\u21CB','lrhard':'\\u296D','lrm':'\\u200E','lrtri':'\\u22BF','lsaquo':'\\u2039','lscr':'\\uD835\\uDCC1','Lscr':'\\u2112','lsh':'\\u21B0','Lsh':'\\u21B0','lsim':'\\u2272','lsime':'\\u2A8D','lsimg':'\\u2A8F','lsqb':'[','lsquo':'\\u2018','lsquor':'\\u201A','lstrok':'\\u0142','Lstrok':'\\u0141','lt':'<','Lt':'\\u226A','LT':'<','ltcc':'\\u2AA6','ltcir':'\\u2A79','ltdot':'\\u22D6','lthree':'\\u22CB','ltimes':'\\u22C9','ltlarr':'\\u2976','ltquest':'\\u2A7B','ltri':'\\u25C3','ltrie':'\\u22B4','ltrif':'\\u25C2','ltrPar':'\\u2996','lurdshar':'\\u294A','luruhar':'\\u2966','lvertneqq':'\\u2268\\uFE00','lvnE':'\\u2268\\uFE00','macr':'\\xAF','male':'\\u2642','malt':'\\u2720','maltese':'\\u2720','map':'\\u21A6','Map':'\\u2905','mapsto':'\\u21A6','mapstodown':'\\u21A7','mapstoleft':'\\u21A4','mapstoup':'\\u21A5','marker':'\\u25AE','mcomma':'\\u2A29','mcy':'\\u043C','Mcy':'\\u041C','mdash':'\\u2014','mDDot':'\\u223A','measuredangle':'\\u2221','MediumSpace':'\\u205F','Mellintrf':'\\u2133','mfr':'\\uD835\\uDD2A','Mfr':'\\uD835\\uDD10','mho':'\\u2127','micro':'\\xB5','mid':'\\u2223','midast':'*','midcir':'\\u2AF0','middot':'\\xB7','minus':'\\u2212','minusb':'\\u229F','minusd':'\\u2238','minusdu':'\\u2A2A','MinusPlus':'\\u2213','mlcp':'\\u2ADB','mldr':'\\u2026','mnplus':'\\u2213','models':'\\u22A7','mopf':'\\uD835\\uDD5E','Mopf':'\\uD835\\uDD44','mp':'\\u2213','mscr':'\\uD835\\uDCC2','Mscr':'\\u2133','mstpos':'\\u223E','mu':'\\u03BC','Mu':'\\u039C','multimap':'\\u22B8','mumap':'\\u22B8','nabla':'\\u2207','nacute':'\\u0144','Nacute':'\\u0143','nang':'\\u2220\\u20D2','nap':'\\u2249','napE':'\\u2A70\\u0338','napid':'\\u224B\\u0338','napos':'\\u0149','napprox':'\\u2249','natur':'\\u266E','natural':'\\u266E','naturals':'\\u2115','nbsp':'\\xA0','nbump':'\\u224E\\u0338','nbumpe':'\\u224F\\u0338','ncap':'\\u2A43','ncaron':'\\u0148','Ncaron':'\\u0147','ncedil':'\\u0146','Ncedil':'\\u0145','ncong':'\\u2247','ncongdot':'\\u2A6D\\u0338','ncup':'\\u2A42','ncy':'\\u043D','Ncy':'\\u041D','ndash':'\\u2013','ne':'\\u2260','nearhk':'\\u2924','nearr':'\\u2197','neArr':'\\u21D7','nearrow':'\\u2197','nedot':'\\u2250\\u0338','NegativeMediumSpace':'\\u200B','NegativeThickSpace':'\\u200B','NegativeThinSpace':'\\u200B','NegativeVeryThinSpace':'\\u200B','nequiv':'\\u2262','nesear':'\\u2928','nesim':'\\u2242\\u0338','NestedGreaterGreater':'\\u226B','NestedLessLess':'\\u226A','NewLine':'\\n','nexist':'\\u2204','nexists':'\\u2204','nfr':'\\uD835\\uDD2B','Nfr':'\\uD835\\uDD11','nge':'\\u2271','ngE':'\\u2267\\u0338','ngeq':'\\u2271','ngeqq':'\\u2267\\u0338','ngeqslant':'\\u2A7E\\u0338','nges':'\\u2A7E\\u0338','nGg':'\\u22D9\\u0338','ngsim':'\\u2275','ngt':'\\u226F','nGt':'\\u226B\\u20D2','ngtr':'\\u226F','nGtv':'\\u226B\\u0338','nharr':'\\u21AE','nhArr':'\\u21CE','nhpar':'\\u2AF2','ni':'\\u220B','nis':'\\u22FC','nisd':'\\u22FA','niv':'\\u220B','njcy':'\\u045A','NJcy':'\\u040A','nlarr':'\\u219A','nlArr':'\\u21CD','nldr':'\\u2025','nle':'\\u2270','nlE':'\\u2266\\u0338','nleftarrow':'\\u219A','nLeftarrow':'\\u21CD','nleftrightarrow':'\\u21AE','nLeftrightarrow':'\\u21CE','nleq':'\\u2270','nleqq':'\\u2266\\u0338','nleqslant':'\\u2A7D\\u0338','nles':'\\u2A7D\\u0338','nless':'\\u226E','nLl':'\\u22D8\\u0338','nlsim':'\\u2274','nlt':'\\u226E','nLt':'\\u226A\\u20D2','nltri':'\\u22EA','nltrie':'\\u22EC','nLtv':'\\u226A\\u0338','nmid':'\\u2224','NoBreak':'\\u2060','NonBreakingSpace':'\\xA0','nopf':'\\uD835\\uDD5F','Nopf':'\\u2115','not':'\\xAC','Not':'\\u2AEC','NotCongruent':'\\u2262','NotCupCap':'\\u226D','NotDoubleVerticalBar':'\\u2226','NotElement':'\\u2209','NotEqual':'\\u2260','NotEqualTilde':'\\u2242\\u0338','NotExists':'\\u2204','NotGreater':'\\u226F','NotGreaterEqual':'\\u2271','NotGreaterFullEqual':'\\u2267\\u0338','NotGreaterGreater':'\\u226B\\u0338','NotGreaterLess':'\\u2279','NotGreaterSlantEqual':'\\u2A7E\\u0338','NotGreaterTilde':'\\u2275','NotHumpDownHump':'\\u224E\\u0338','NotHumpEqual':'\\u224F\\u0338','notin':'\\u2209','notindot':'\\u22F5\\u0338','notinE':'\\u22F9\\u0338','notinva':'\\u2209','notinvb':'\\u22F7','notinvc':'\\u22F6','NotLeftTriangle':'\\u22EA','NotLeftTriangleBar':'\\u29CF\\u0338','NotLeftTriangleEqual':'\\u22EC','NotLess':'\\u226E','NotLessEqual':'\\u2270','NotLessGreater':'\\u2278','NotLessLess':'\\u226A\\u0338','NotLessSlantEqual':'\\u2A7D\\u0338','NotLessTilde':'\\u2274','NotNestedGreaterGreater':'\\u2AA2\\u0338','NotNestedLessLess':'\\u2AA1\\u0338','notni':'\\u220C','notniva':'\\u220C','notnivb':'\\u22FE','notnivc':'\\u22FD','NotPrecedes':'\\u2280','NotPrecedesEqual':'\\u2AAF\\u0338','NotPrecedesSlantEqual':'\\u22E0','NotReverseElement':'\\u220C','NotRightTriangle':'\\u22EB','NotRightTriangleBar':'\\u29D0\\u0338','NotRightTriangleEqual':'\\u22ED','NotSquareSubset':'\\u228F\\u0338','NotSquareSubsetEqual':'\\u22E2','NotSquareSuperset':'\\u2290\\u0338','NotSquareSupersetEqual':'\\u22E3','NotSubset':'\\u2282\\u20D2','NotSubsetEqual':'\\u2288','NotSucceeds':'\\u2281','NotSucceedsEqual':'\\u2AB0\\u0338','NotSucceedsSlantEqual':'\\u22E1','NotSucceedsTilde':'\\u227F\\u0338','NotSuperset':'\\u2283\\u20D2','NotSupersetEqual':'\\u2289','NotTilde':'\\u2241','NotTildeEqual':'\\u2244','NotTildeFullEqual':'\\u2247','NotTildeTilde':'\\u2249','NotVerticalBar':'\\u2224','npar':'\\u2226','nparallel':'\\u2226','nparsl':'\\u2AFD\\u20E5','npart':'\\u2202\\u0338','npolint':'\\u2A14','npr':'\\u2280','nprcue':'\\u22E0','npre':'\\u2AAF\\u0338','nprec':'\\u2280','npreceq':'\\u2AAF\\u0338','nrarr':'\\u219B','nrArr':'\\u21CF','nrarrc':'\\u2933\\u0338','nrarrw':'\\u219D\\u0338','nrightarrow':'\\u219B','nRightarrow':'\\u21CF','nrtri':'\\u22EB','nrtrie':'\\u22ED','nsc':'\\u2281','nsccue':'\\u22E1','nsce':'\\u2AB0\\u0338','nscr':'\\uD835\\uDCC3','Nscr':'\\uD835\\uDCA9','nshortmid':'\\u2224','nshortparallel':'\\u2226','nsim':'\\u2241','nsime':'\\u2244','nsimeq':'\\u2244','nsmid':'\\u2224','nspar':'\\u2226','nsqsube':'\\u22E2','nsqsupe':'\\u22E3','nsub':'\\u2284','nsube':'\\u2288','nsubE':'\\u2AC5\\u0338','nsubset':'\\u2282\\u20D2','nsubseteq':'\\u2288','nsubseteqq':'\\u2AC5\\u0338','nsucc':'\\u2281','nsucceq':'\\u2AB0\\u0338','nsup':'\\u2285','nsupe':'\\u2289','nsupE':'\\u2AC6\\u0338','nsupset':'\\u2283\\u20D2','nsupseteq':'\\u2289','nsupseteqq':'\\u2AC6\\u0338','ntgl':'\\u2279','ntilde':'\\xF1','Ntilde':'\\xD1','ntlg':'\\u2278','ntriangleleft':'\\u22EA','ntrianglelefteq':'\\u22EC','ntriangleright':'\\u22EB','ntrianglerighteq':'\\u22ED','nu':'\\u03BD','Nu':'\\u039D','num':'#','numero':'\\u2116','numsp':'\\u2007','nvap':'\\u224D\\u20D2','nvdash':'\\u22AC','nvDash':'\\u22AD','nVdash':'\\u22AE','nVDash':'\\u22AF','nvge':'\\u2265\\u20D2','nvgt':'>\\u20D2','nvHarr':'\\u2904','nvinfin':'\\u29DE','nvlArr':'\\u2902','nvle':'\\u2264\\u20D2','nvlt':'<\\u20D2','nvltrie':'\\u22B4\\u20D2','nvrArr':'\\u2903','nvrtrie':'\\u22B5\\u20D2','nvsim':'\\u223C\\u20D2','nwarhk':'\\u2923','nwarr':'\\u2196','nwArr':'\\u21D6','nwarrow':'\\u2196','nwnear':'\\u2927','oacute':'\\xF3','Oacute':'\\xD3','oast':'\\u229B','ocir':'\\u229A','ocirc':'\\xF4','Ocirc':'\\xD4','ocy':'\\u043E','Ocy':'\\u041E','odash':'\\u229D','odblac':'\\u0151','Odblac':'\\u0150','odiv':'\\u2A38','odot':'\\u2299','odsold':'\\u29BC','oelig':'\\u0153','OElig':'\\u0152','ofcir':'\\u29BF','ofr':'\\uD835\\uDD2C','Ofr':'\\uD835\\uDD12','ogon':'\\u02DB','ograve':'\\xF2','Ograve':'\\xD2','ogt':'\\u29C1','ohbar':'\\u29B5','ohm':'\\u03A9','oint':'\\u222E','olarr':'\\u21BA','olcir':'\\u29BE','olcross':'\\u29BB','oline':'\\u203E','olt':'\\u29C0','omacr':'\\u014D','Omacr':'\\u014C','omega':'\\u03C9','Omega':'\\u03A9','omicron':'\\u03BF','Omicron':'\\u039F','omid':'\\u29B6','ominus':'\\u2296','oopf':'\\uD835\\uDD60','Oopf':'\\uD835\\uDD46','opar':'\\u29B7','OpenCurlyDoubleQuote':'\\u201C','OpenCurlyQuote':'\\u2018','operp':'\\u29B9','oplus':'\\u2295','or':'\\u2228','Or':'\\u2A54','orarr':'\\u21BB','ord':'\\u2A5D','order':'\\u2134','orderof':'\\u2134','ordf':'\\xAA','ordm':'\\xBA','origof':'\\u22B6','oror':'\\u2A56','orslope':'\\u2A57','orv':'\\u2A5B','oS':'\\u24C8','oscr':'\\u2134','Oscr':'\\uD835\\uDCAA','oslash':'\\xF8','Oslash':'\\xD8','osol':'\\u2298','otilde':'\\xF5','Otilde':'\\xD5','otimes':'\\u2297','Otimes':'\\u2A37','otimesas':'\\u2A36','ouml':'\\xF6','Ouml':'\\xD6','ovbar':'\\u233D','OverBar':'\\u203E','OverBrace':'\\u23DE','OverBracket':'\\u23B4','OverParenthesis':'\\u23DC','par':'\\u2225','para':'\\xB6','parallel':'\\u2225','parsim':'\\u2AF3','parsl':'\\u2AFD','part':'\\u2202','PartialD':'\\u2202','pcy':'\\u043F','Pcy':'\\u041F','percnt':'%','period':'.','permil':'\\u2030','perp':'\\u22A5','pertenk':'\\u2031','pfr':'\\uD835\\uDD2D','Pfr':'\\uD835\\uDD13','phi':'\\u03C6','Phi':'\\u03A6','phiv':'\\u03D5','phmmat':'\\u2133','phone':'\\u260E','pi':'\\u03C0','Pi':'\\u03A0','pitchfork':'\\u22D4','piv':'\\u03D6','planck':'\\u210F','planckh':'\\u210E','plankv':'\\u210F','plus':'+','plusacir':'\\u2A23','plusb':'\\u229E','pluscir':'\\u2A22','plusdo':'\\u2214','plusdu':'\\u2A25','pluse':'\\u2A72','PlusMinus':'\\xB1','plusmn':'\\xB1','plussim':'\\u2A26','plustwo':'\\u2A27','pm':'\\xB1','Poincareplane':'\\u210C','pointint':'\\u2A15','popf':'\\uD835\\uDD61','Popf':'\\u2119','pound':'\\xA3','pr':'\\u227A','Pr':'\\u2ABB','prap':'\\u2AB7','prcue':'\\u227C','pre':'\\u2AAF','prE':'\\u2AB3','prec':'\\u227A','precapprox':'\\u2AB7','preccurlyeq':'\\u227C','Precedes':'\\u227A','PrecedesEqual':'\\u2AAF','PrecedesSlantEqual':'\\u227C','PrecedesTilde':'\\u227E','preceq':'\\u2AAF','precnapprox':'\\u2AB9','precneqq':'\\u2AB5','precnsim':'\\u22E8','precsim':'\\u227E','prime':'\\u2032','Prime':'\\u2033','primes':'\\u2119','prnap':'\\u2AB9','prnE':'\\u2AB5','prnsim':'\\u22E8','prod':'\\u220F','Product':'\\u220F','profalar':'\\u232E','profline':'\\u2312','profsurf':'\\u2313','prop':'\\u221D','Proportion':'\\u2237','Proportional':'\\u221D','propto':'\\u221D','prsim':'\\u227E','prurel':'\\u22B0','pscr':'\\uD835\\uDCC5','Pscr':'\\uD835\\uDCAB','psi':'\\u03C8','Psi':'\\u03A8','puncsp':'\\u2008','qfr':'\\uD835\\uDD2E','Qfr':'\\uD835\\uDD14','qint':'\\u2A0C','qopf':'\\uD835\\uDD62','Qopf':'\\u211A','qprime':'\\u2057','qscr':'\\uD835\\uDCC6','Qscr':'\\uD835\\uDCAC','quaternions':'\\u210D','quatint':'\\u2A16','quest':'?','questeq':'\\u225F','quot':'\"','QUOT':'\"','rAarr':'\\u21DB','race':'\\u223D\\u0331','racute':'\\u0155','Racute':'\\u0154','radic':'\\u221A','raemptyv':'\\u29B3','rang':'\\u27E9','Rang':'\\u27EB','rangd':'\\u2992','range':'\\u29A5','rangle':'\\u27E9','raquo':'\\xBB','rarr':'\\u2192','rArr':'\\u21D2','Rarr':'\\u21A0','rarrap':'\\u2975','rarrb':'\\u21E5','rarrbfs':'\\u2920','rarrc':'\\u2933','rarrfs':'\\u291E','rarrhk':'\\u21AA','rarrlp':'\\u21AC','rarrpl':'\\u2945','rarrsim':'\\u2974','rarrtl':'\\u21A3','Rarrtl':'\\u2916','rarrw':'\\u219D','ratail':'\\u291A','rAtail':'\\u291C','ratio':'\\u2236','rationals':'\\u211A','rbarr':'\\u290D','rBarr':'\\u290F','RBarr':'\\u2910','rbbrk':'\\u2773','rbrace':'}','rbrack':']','rbrke':'\\u298C','rbrksld':'\\u298E','rbrkslu':'\\u2990','rcaron':'\\u0159','Rcaron':'\\u0158','rcedil':'\\u0157','Rcedil':'\\u0156','rceil':'\\u2309','rcub':'}','rcy':'\\u0440','Rcy':'\\u0420','rdca':'\\u2937','rdldhar':'\\u2969','rdquo':'\\u201D','rdquor':'\\u201D','rdsh':'\\u21B3','Re':'\\u211C','real':'\\u211C','realine':'\\u211B','realpart':'\\u211C','reals':'\\u211D','rect':'\\u25AD','reg':'\\xAE','REG':'\\xAE','ReverseElement':'\\u220B','ReverseEquilibrium':'\\u21CB','ReverseUpEquilibrium':'\\u296F','rfisht':'\\u297D','rfloor':'\\u230B','rfr':'\\uD835\\uDD2F','Rfr':'\\u211C','rHar':'\\u2964','rhard':'\\u21C1','rharu':'\\u21C0','rharul':'\\u296C','rho':'\\u03C1','Rho':'\\u03A1','rhov':'\\u03F1','RightAngleBracket':'\\u27E9','rightarrow':'\\u2192','Rightarrow':'\\u21D2','RightArrow':'\\u2192','RightArrowBar':'\\u21E5','RightArrowLeftArrow':'\\u21C4','rightarrowtail':'\\u21A3','RightCeiling':'\\u2309','RightDoubleBracket':'\\u27E7','RightDownTeeVector':'\\u295D','RightDownVector':'\\u21C2','RightDownVectorBar':'\\u2955','RightFloor':'\\u230B','rightharpoondown':'\\u21C1','rightharpoonup':'\\u21C0','rightleftarrows':'\\u21C4','rightleftharpoons':'\\u21CC','rightrightarrows':'\\u21C9','rightsquigarrow':'\\u219D','RightTee':'\\u22A2','RightTeeArrow':'\\u21A6','RightTeeVector':'\\u295B','rightthreetimes':'\\u22CC','RightTriangle':'\\u22B3','RightTriangleBar':'\\u29D0','RightTriangleEqual':'\\u22B5','RightUpDownVector':'\\u294F','RightUpTeeVector':'\\u295C','RightUpVector':'\\u21BE','RightUpVectorBar':'\\u2954','RightVector':'\\u21C0','RightVectorBar':'\\u2953','ring':'\\u02DA','risingdotseq':'\\u2253','rlarr':'\\u21C4','rlhar':'\\u21CC','rlm':'\\u200F','rmoust':'\\u23B1','rmoustache':'\\u23B1','rnmid':'\\u2AEE','roang':'\\u27ED','roarr':'\\u21FE','robrk':'\\u27E7','ropar':'\\u2986','ropf':'\\uD835\\uDD63','Ropf':'\\u211D','roplus':'\\u2A2E','rotimes':'\\u2A35','RoundImplies':'\\u2970','rpar':')','rpargt':'\\u2994','rppolint':'\\u2A12','rrarr':'\\u21C9','Rrightarrow':'\\u21DB','rsaquo':'\\u203A','rscr':'\\uD835\\uDCC7','Rscr':'\\u211B','rsh':'\\u21B1','Rsh':'\\u21B1','rsqb':']','rsquo':'\\u2019','rsquor':'\\u2019','rthree':'\\u22CC','rtimes':'\\u22CA','rtri':'\\u25B9','rtrie':'\\u22B5','rtrif':'\\u25B8','rtriltri':'\\u29CE','RuleDelayed':'\\u29F4','ruluhar':'\\u2968','rx':'\\u211E','sacute':'\\u015B','Sacute':'\\u015A','sbquo':'\\u201A','sc':'\\u227B','Sc':'\\u2ABC','scap':'\\u2AB8','scaron':'\\u0161','Scaron':'\\u0160','sccue':'\\u227D','sce':'\\u2AB0','scE':'\\u2AB4','scedil':'\\u015F','Scedil':'\\u015E','scirc':'\\u015D','Scirc':'\\u015C','scnap':'\\u2ABA','scnE':'\\u2AB6','scnsim':'\\u22E9','scpolint':'\\u2A13','scsim':'\\u227F','scy':'\\u0441','Scy':'\\u0421','sdot':'\\u22C5','sdotb':'\\u22A1','sdote':'\\u2A66','searhk':'\\u2925','searr':'\\u2198','seArr':'\\u21D8','searrow':'\\u2198','sect':'\\xA7','semi':';','seswar':'\\u2929','setminus':'\\u2216','setmn':'\\u2216','sext':'\\u2736','sfr':'\\uD835\\uDD30','Sfr':'\\uD835\\uDD16','sfrown':'\\u2322','sharp':'\\u266F','shchcy':'\\u0449','SHCHcy':'\\u0429','shcy':'\\u0448','SHcy':'\\u0428','ShortDownArrow':'\\u2193','ShortLeftArrow':'\\u2190','shortmid':'\\u2223','shortparallel':'\\u2225','ShortRightArrow':'\\u2192','ShortUpArrow':'\\u2191','shy':'\\xAD','sigma':'\\u03C3','Sigma':'\\u03A3','sigmaf':'\\u03C2','sigmav':'\\u03C2','sim':'\\u223C','simdot':'\\u2A6A','sime':'\\u2243','simeq':'\\u2243','simg':'\\u2A9E','simgE':'\\u2AA0','siml':'\\u2A9D','simlE':'\\u2A9F','simne':'\\u2246','simplus':'\\u2A24','simrarr':'\\u2972','slarr':'\\u2190','SmallCircle':'\\u2218','smallsetminus':'\\u2216','smashp':'\\u2A33','smeparsl':'\\u29E4','smid':'\\u2223','smile':'\\u2323','smt':'\\u2AAA','smte':'\\u2AAC','smtes':'\\u2AAC\\uFE00','softcy':'\\u044C','SOFTcy':'\\u042C','sol':'/','solb':'\\u29C4','solbar':'\\u233F','sopf':'\\uD835\\uDD64','Sopf':'\\uD835\\uDD4A','spades':'\\u2660','spadesuit':'\\u2660','spar':'\\u2225','sqcap':'\\u2293','sqcaps':'\\u2293\\uFE00','sqcup':'\\u2294','sqcups':'\\u2294\\uFE00','Sqrt':'\\u221A','sqsub':'\\u228F','sqsube':'\\u2291','sqsubset':'\\u228F','sqsubseteq':'\\u2291','sqsup':'\\u2290','sqsupe':'\\u2292','sqsupset':'\\u2290','sqsupseteq':'\\u2292','squ':'\\u25A1','square':'\\u25A1','Square':'\\u25A1','SquareIntersection':'\\u2293','SquareSubset':'\\u228F','SquareSubsetEqual':'\\u2291','SquareSuperset':'\\u2290','SquareSupersetEqual':'\\u2292','SquareUnion':'\\u2294','squarf':'\\u25AA','squf':'\\u25AA','srarr':'\\u2192','sscr':'\\uD835\\uDCC8','Sscr':'\\uD835\\uDCAE','ssetmn':'\\u2216','ssmile':'\\u2323','sstarf':'\\u22C6','star':'\\u2606','Star':'\\u22C6','starf':'\\u2605','straightepsilon':'\\u03F5','straightphi':'\\u03D5','strns':'\\xAF','sub':'\\u2282','Sub':'\\u22D0','subdot':'\\u2ABD','sube':'\\u2286','subE':'\\u2AC5','subedot':'\\u2AC3','submult':'\\u2AC1','subne':'\\u228A','subnE':'\\u2ACB','subplus':'\\u2ABF','subrarr':'\\u2979','subset':'\\u2282','Subset':'\\u22D0','subseteq':'\\u2286','subseteqq':'\\u2AC5','SubsetEqual':'\\u2286','subsetneq':'\\u228A','subsetneqq':'\\u2ACB','subsim':'\\u2AC7','subsub':'\\u2AD5','subsup':'\\u2AD3','succ':'\\u227B','succapprox':'\\u2AB8','succcurlyeq':'\\u227D','Succeeds':'\\u227B','SucceedsEqual':'\\u2AB0','SucceedsSlantEqual':'\\u227D','SucceedsTilde':'\\u227F','succeq':'\\u2AB0','succnapprox':'\\u2ABA','succneqq':'\\u2AB6','succnsim':'\\u22E9','succsim':'\\u227F','SuchThat':'\\u220B','sum':'\\u2211','Sum':'\\u2211','sung':'\\u266A','sup':'\\u2283','Sup':'\\u22D1','sup1':'\\xB9','sup2':'\\xB2','sup3':'\\xB3','supdot':'\\u2ABE','supdsub':'\\u2AD8','supe':'\\u2287','supE':'\\u2AC6','supedot':'\\u2AC4','Superset':'\\u2283','SupersetEqual':'\\u2287','suphsol':'\\u27C9','suphsub':'\\u2AD7','suplarr':'\\u297B','supmult':'\\u2AC2','supne':'\\u228B','supnE':'\\u2ACC','supplus':'\\u2AC0','supset':'\\u2283','Supset':'\\u22D1','supseteq':'\\u2287','supseteqq':'\\u2AC6','supsetneq':'\\u228B','supsetneqq':'\\u2ACC','supsim':'\\u2AC8','supsub':'\\u2AD4','supsup':'\\u2AD6','swarhk':'\\u2926','swarr':'\\u2199','swArr':'\\u21D9','swarrow':'\\u2199','swnwar':'\\u292A','szlig':'\\xDF','Tab':'\\t','target':'\\u2316','tau':'\\u03C4','Tau':'\\u03A4','tbrk':'\\u23B4','tcaron':'\\u0165','Tcaron':'\\u0164','tcedil':'\\u0163','Tcedil':'\\u0162','tcy':'\\u0442','Tcy':'\\u0422','tdot':'\\u20DB','telrec':'\\u2315','tfr':'\\uD835\\uDD31','Tfr':'\\uD835\\uDD17','there4':'\\u2234','therefore':'\\u2234','Therefore':'\\u2234','theta':'\\u03B8','Theta':'\\u0398','thetasym':'\\u03D1','thetav':'\\u03D1','thickapprox':'\\u2248','thicksim':'\\u223C','ThickSpace':'\\u205F\\u200A','thinsp':'\\u2009','ThinSpace':'\\u2009','thkap':'\\u2248','thksim':'\\u223C','thorn':'\\xFE','THORN':'\\xDE','tilde':'\\u02DC','Tilde':'\\u223C','TildeEqual':'\\u2243','TildeFullEqual':'\\u2245','TildeTilde':'\\u2248','times':'\\xD7','timesb':'\\u22A0','timesbar':'\\u2A31','timesd':'\\u2A30','tint':'\\u222D','toea':'\\u2928','top':'\\u22A4','topbot':'\\u2336','topcir':'\\u2AF1','topf':'\\uD835\\uDD65','Topf':'\\uD835\\uDD4B','topfork':'\\u2ADA','tosa':'\\u2929','tprime':'\\u2034','trade':'\\u2122','TRADE':'\\u2122','triangle':'\\u25B5','triangledown':'\\u25BF','triangleleft':'\\u25C3','trianglelefteq':'\\u22B4','triangleq':'\\u225C','triangleright':'\\u25B9','trianglerighteq':'\\u22B5','tridot':'\\u25EC','trie':'\\u225C','triminus':'\\u2A3A','TripleDot':'\\u20DB','triplus':'\\u2A39','trisb':'\\u29CD','tritime':'\\u2A3B','trpezium':'\\u23E2','tscr':'\\uD835\\uDCC9','Tscr':'\\uD835\\uDCAF','tscy':'\\u0446','TScy':'\\u0426','tshcy':'\\u045B','TSHcy':'\\u040B','tstrok':'\\u0167','Tstrok':'\\u0166','twixt':'\\u226C','twoheadleftarrow':'\\u219E','twoheadrightarrow':'\\u21A0','uacute':'\\xFA','Uacute':'\\xDA','uarr':'\\u2191','uArr':'\\u21D1','Uarr':'\\u219F','Uarrocir':'\\u2949','ubrcy':'\\u045E','Ubrcy':'\\u040E','ubreve':'\\u016D','Ubreve':'\\u016C','ucirc':'\\xFB','Ucirc':'\\xDB','ucy':'\\u0443','Ucy':'\\u0423','udarr':'\\u21C5','udblac':'\\u0171','Udblac':'\\u0170','udhar':'\\u296E','ufisht':'\\u297E','ufr':'\\uD835\\uDD32','Ufr':'\\uD835\\uDD18','ugrave':'\\xF9','Ugrave':'\\xD9','uHar':'\\u2963','uharl':'\\u21BF','uharr':'\\u21BE','uhblk':'\\u2580','ulcorn':'\\u231C','ulcorner':'\\u231C','ulcrop':'\\u230F','ultri':'\\u25F8','umacr':'\\u016B','Umacr':'\\u016A','uml':'\\xA8','UnderBar':'_','UnderBrace':'\\u23DF','UnderBracket':'\\u23B5','UnderParenthesis':'\\u23DD','Union':'\\u22C3','UnionPlus':'\\u228E','uogon':'\\u0173','Uogon':'\\u0172','uopf':'\\uD835\\uDD66','Uopf':'\\uD835\\uDD4C','uparrow':'\\u2191','Uparrow':'\\u21D1','UpArrow':'\\u2191','UpArrowBar':'\\u2912','UpArrowDownArrow':'\\u21C5','updownarrow':'\\u2195','Updownarrow':'\\u21D5','UpDownArrow':'\\u2195','UpEquilibrium':'\\u296E','upharpoonleft':'\\u21BF','upharpoonright':'\\u21BE','uplus':'\\u228E','UpperLeftArrow':'\\u2196','UpperRightArrow':'\\u2197','upsi':'\\u03C5','Upsi':'\\u03D2','upsih':'\\u03D2','upsilon':'\\u03C5','Upsilon':'\\u03A5','UpTee':'\\u22A5','UpTeeArrow':'\\u21A5','upuparrows':'\\u21C8','urcorn':'\\u231D','urcorner':'\\u231D','urcrop':'\\u230E','uring':'\\u016F','Uring':'\\u016E','urtri':'\\u25F9','uscr':'\\uD835\\uDCCA','Uscr':'\\uD835\\uDCB0','utdot':'\\u22F0','utilde':'\\u0169','Utilde':'\\u0168','utri':'\\u25B5','utrif':'\\u25B4','uuarr':'\\u21C8','uuml':'\\xFC','Uuml':'\\xDC','uwangle':'\\u29A7','vangrt':'\\u299C','varepsilon':'\\u03F5','varkappa':'\\u03F0','varnothing':'\\u2205','varphi':'\\u03D5','varpi':'\\u03D6','varpropto':'\\u221D','varr':'\\u2195','vArr':'\\u21D5','varrho':'\\u03F1','varsigma':'\\u03C2','varsubsetneq':'\\u228A\\uFE00','varsubsetneqq':'\\u2ACB\\uFE00','varsupsetneq':'\\u228B\\uFE00','varsupsetneqq':'\\u2ACC\\uFE00','vartheta':'\\u03D1','vartriangleleft':'\\u22B2','vartriangleright':'\\u22B3','vBar':'\\u2AE8','Vbar':'\\u2AEB','vBarv':'\\u2AE9','vcy':'\\u0432','Vcy':'\\u0412','vdash':'\\u22A2','vDash':'\\u22A8','Vdash':'\\u22A9','VDash':'\\u22AB','Vdashl':'\\u2AE6','vee':'\\u2228','Vee':'\\u22C1','veebar':'\\u22BB','veeeq':'\\u225A','vellip':'\\u22EE','verbar':'|','Verbar':'\\u2016','vert':'|','Vert':'\\u2016','VerticalBar':'\\u2223','VerticalLine':'|','VerticalSeparator':'\\u2758','VerticalTilde':'\\u2240','VeryThinSpace':'\\u200A','vfr':'\\uD835\\uDD33','Vfr':'\\uD835\\uDD19','vltri':'\\u22B2','vnsub':'\\u2282\\u20D2','vnsup':'\\u2283\\u20D2','vopf':'\\uD835\\uDD67','Vopf':'\\uD835\\uDD4D','vprop':'\\u221D','vrtri':'\\u22B3','vscr':'\\uD835\\uDCCB','Vscr':'\\uD835\\uDCB1','vsubne':'\\u228A\\uFE00','vsubnE':'\\u2ACB\\uFE00','vsupne':'\\u228B\\uFE00','vsupnE':'\\u2ACC\\uFE00','Vvdash':'\\u22AA','vzigzag':'\\u299A','wcirc':'\\u0175','Wcirc':'\\u0174','wedbar':'\\u2A5F','wedge':'\\u2227','Wedge':'\\u22C0','wedgeq':'\\u2259','weierp':'\\u2118','wfr':'\\uD835\\uDD34','Wfr':'\\uD835\\uDD1A','wopf':'\\uD835\\uDD68','Wopf':'\\uD835\\uDD4E','wp':'\\u2118','wr':'\\u2240','wreath':'\\u2240','wscr':'\\uD835\\uDCCC','Wscr':'\\uD835\\uDCB2','xcap':'\\u22C2','xcirc':'\\u25EF','xcup':'\\u22C3','xdtri':'\\u25BD','xfr':'\\uD835\\uDD35','Xfr':'\\uD835\\uDD1B','xharr':'\\u27F7','xhArr':'\\u27FA','xi':'\\u03BE','Xi':'\\u039E','xlarr':'\\u27F5','xlArr':'\\u27F8','xmap':'\\u27FC','xnis':'\\u22FB','xodot':'\\u2A00','xopf':'\\uD835\\uDD69','Xopf':'\\uD835\\uDD4F','xoplus':'\\u2A01','xotime':'\\u2A02','xrarr':'\\u27F6','xrArr':'\\u27F9','xscr':'\\uD835\\uDCCD','Xscr':'\\uD835\\uDCB3','xsqcup':'\\u2A06','xuplus':'\\u2A04','xutri':'\\u25B3','xvee':'\\u22C1','xwedge':'\\u22C0','yacute':'\\xFD','Yacute':'\\xDD','yacy':'\\u044F','YAcy':'\\u042F','ycirc':'\\u0177','Ycirc':'\\u0176','ycy':'\\u044B','Ycy':'\\u042B','yen':'\\xA5','yfr':'\\uD835\\uDD36','Yfr':'\\uD835\\uDD1C','yicy':'\\u0457','YIcy':'\\u0407','yopf':'\\uD835\\uDD6A','Yopf':'\\uD835\\uDD50','yscr':'\\uD835\\uDCCE','Yscr':'\\uD835\\uDCB4','yucy':'\\u044E','YUcy':'\\u042E','yuml':'\\xFF','Yuml':'\\u0178','zacute':'\\u017A','Zacute':'\\u0179','zcaron':'\\u017E','Zcaron':'\\u017D','zcy':'\\u0437','Zcy':'\\u0417','zdot':'\\u017C','Zdot':'\\u017B','zeetrf':'\\u2128','ZeroWidthSpace':'\\u200B','zeta':'\\u03B6','Zeta':'\\u0396','zfr':'\\uD835\\uDD37','Zfr':'\\u2128','zhcy':'\\u0436','ZHcy':'\\u0416','zigrarr':'\\u21DD','zopf':'\\uD835\\uDD6B','Zopf':'\\u2124','zscr':'\\uD835\\uDCCF','Zscr':'\\uD835\\uDCB5','zwj':'\\u200D','zwnj':'\\u200C'};\n\tvar decodeMapLegacy = {'aacute':'\\xE1','Aacute':'\\xC1','acirc':'\\xE2','Acirc':'\\xC2','acute':'\\xB4','aelig':'\\xE6','AElig':'\\xC6','agrave':'\\xE0','Agrave':'\\xC0','amp':'&','AMP':'&','aring':'\\xE5','Aring':'\\xC5','atilde':'\\xE3','Atilde':'\\xC3','auml':'\\xE4','Auml':'\\xC4','brvbar':'\\xA6','ccedil':'\\xE7','Ccedil':'\\xC7','cedil':'\\xB8','cent':'\\xA2','copy':'\\xA9','COPY':'\\xA9','curren':'\\xA4','deg':'\\xB0','divide':'\\xF7','eacute':'\\xE9','Eacute':'\\xC9','ecirc':'\\xEA','Ecirc':'\\xCA','egrave':'\\xE8','Egrave':'\\xC8','eth':'\\xF0','ETH':'\\xD0','euml':'\\xEB','Euml':'\\xCB','frac12':'\\xBD','frac14':'\\xBC','frac34':'\\xBE','gt':'>','GT':'>','iacute':'\\xED','Iacute':'\\xCD','icirc':'\\xEE','Icirc':'\\xCE','iexcl':'\\xA1','igrave':'\\xEC','Igrave':'\\xCC','iquest':'\\xBF','iuml':'\\xEF','Iuml':'\\xCF','laquo':'\\xAB','lt':'<','LT':'<','macr':'\\xAF','micro':'\\xB5','middot':'\\xB7','nbsp':'\\xA0','not':'\\xAC','ntilde':'\\xF1','Ntilde':'\\xD1','oacute':'\\xF3','Oacute':'\\xD3','ocirc':'\\xF4','Ocirc':'\\xD4','ograve':'\\xF2','Ograve':'\\xD2','ordf':'\\xAA','ordm':'\\xBA','oslash':'\\xF8','Oslash':'\\xD8','otilde':'\\xF5','Otilde':'\\xD5','ouml':'\\xF6','Ouml':'\\xD6','para':'\\xB6','plusmn':'\\xB1','pound':'\\xA3','quot':'\"','QUOT':'\"','raquo':'\\xBB','reg':'\\xAE','REG':'\\xAE','sect':'\\xA7','shy':'\\xAD','sup1':'\\xB9','sup2':'\\xB2','sup3':'\\xB3','szlig':'\\xDF','thorn':'\\xFE','THORN':'\\xDE','times':'\\xD7','uacute':'\\xFA','Uacute':'\\xDA','ucirc':'\\xFB','Ucirc':'\\xDB','ugrave':'\\xF9','Ugrave':'\\xD9','uml':'\\xA8','uuml':'\\xFC','Uuml':'\\xDC','yacute':'\\xFD','Yacute':'\\xDD','yen':'\\xA5','yuml':'\\xFF'};\n\tvar decodeMapNumeric = {'0':'\\uFFFD','128':'\\u20AC','130':'\\u201A','131':'\\u0192','132':'\\u201E','133':'\\u2026','134':'\\u2020','135':'\\u2021','136':'\\u02C6','137':'\\u2030','138':'\\u0160','139':'\\u2039','140':'\\u0152','142':'\\u017D','145':'\\u2018','146':'\\u2019','147':'\\u201C','148':'\\u201D','149':'\\u2022','150':'\\u2013','151':'\\u2014','152':'\\u02DC','153':'\\u2122','154':'\\u0161','155':'\\u203A','156':'\\u0153','158':'\\u017E','159':'\\u0178'};\n\tvar invalidReferenceCodePoints = [1,2,3,4,5,6,7,8,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,64976,64977,64978,64979,64980,64981,64982,64983,64984,64985,64986,64987,64988,64989,64990,64991,64992,64993,64994,64995,64996,64997,64998,64999,65000,65001,65002,65003,65004,65005,65006,65007,65534,65535,131070,131071,196606,196607,262142,262143,327678,327679,393214,393215,458750,458751,524286,524287,589822,589823,655358,655359,720894,720895,786430,786431,851966,851967,917502,917503,983038,983039,1048574,1048575,1114110,1114111];\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar stringFromCharCode = String.fromCharCode;\n\n\tvar object = {};\n\tvar hasOwnProperty = object.hasOwnProperty;\n\tvar has = function(object, propertyName) {\n\t\treturn hasOwnProperty.call(object, propertyName);\n\t};\n\n\tvar contains = function(array, value) {\n\t\tvar index = -1;\n\t\tvar length = array.length;\n\t\twhile (++index < length) {\n\t\t\tif (array[index] == value) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t};\n\n\tvar merge = function(options, defaults) {\n\t\tif (!options) {\n\t\t\treturn defaults;\n\t\t}\n\t\tvar result = {};\n\t\tvar key;\n\t\tfor (key in defaults) {\n\t\t\t// A `hasOwnProperty` check is not needed here, since only recognized\n\t\t\t// option names are used anyway. Any others are ignored.\n\t\t\tresult[key] = has(options, key) ? options[key] : defaults[key];\n\t\t}\n\t\treturn result;\n\t};\n\n\t// Modified version of `ucs2encode`; see https://mths.be/punycode.\n\tvar codePointToSymbol = function(codePoint, strict) {\n\t\tvar output = '';\n\t\tif ((codePoint >= 0xD800 && codePoint <= 0xDFFF) || codePoint > 0x10FFFF) {\n\t\t\t// See issue #4:\n\t\t\t// “Otherwise, if the number is in the range 0xD800 to 0xDFFF or is\n\t\t\t// greater than 0x10FFFF, then this is a parse error. Return a U+FFFD\n\t\t\t// REPLACEMENT CHARACTER.”\n\t\t\tif (strict) {\n\t\t\t\tparseError('character reference outside the permissible Unicode range');\n\t\t\t}\n\t\t\treturn '\\uFFFD';\n\t\t}\n\t\tif (has(decodeMapNumeric, codePoint)) {\n\t\t\tif (strict) {\n\t\t\t\tparseError('disallowed character reference');\n\t\t\t}\n\t\t\treturn decodeMapNumeric[codePoint];\n\t\t}\n\t\tif (strict && contains(invalidReferenceCodePoints, codePoint)) {\n\t\t\tparseError('disallowed character reference');\n\t\t}\n\t\tif (codePoint > 0xFFFF) {\n\t\t\tcodePoint -= 0x10000;\n\t\t\toutput += stringFromCharCode(codePoint >>> 10 & 0x3FF | 0xD800);\n\t\t\tcodePoint = 0xDC00 | codePoint & 0x3FF;\n\t\t}\n\t\toutput += stringFromCharCode(codePoint);\n\t\treturn output;\n\t};\n\n\tvar hexEscape = function(codePoint) {\n\t\treturn '&#x' + codePoint.toString(16).toUpperCase() + ';';\n\t};\n\n\tvar decEscape = function(codePoint) {\n\t\treturn '&#' + codePoint + ';';\n\t};\n\n\tvar parseError = function(message) {\n\t\tthrow Error('Parse error: ' + message);\n\t};\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar encode = function(string, options) {\n\t\toptions = merge(options, encode.options);\n\t\tvar strict = options.strict;\n\t\tif (strict && regexInvalidRawCodePoint.test(string)) {\n\t\t\tparseError('forbidden code point');\n\t\t}\n\t\tvar encodeEverything = options.encodeEverything;\n\t\tvar useNamedReferences = options.useNamedReferences;\n\t\tvar allowUnsafeSymbols = options.allowUnsafeSymbols;\n\t\tvar escapeCodePoint = options.decimal ? decEscape : hexEscape;\n\n\t\tvar escapeBmpSymbol = function(symbol) {\n\t\t\treturn escapeCodePoint(symbol.charCodeAt(0));\n\t\t};\n\n\t\tif (encodeEverything) {\n\t\t\t// Encode ASCII symbols.\n\t\t\tstring = string.replace(regexAsciiWhitelist, function(symbol) {\n\t\t\t\t// Use named references if requested & possible.\n\t\t\t\tif (useNamedReferences && has(encodeMap, symbol)) {\n\t\t\t\t\treturn '&' + encodeMap[symbol] + ';';\n\t\t\t\t}\n\t\t\t\treturn escapeBmpSymbol(symbol);\n\t\t\t});\n\t\t\t// Shorten a few escapes that represent two symbols, of which at least one\n\t\t\t// is within the ASCII range.\n\t\t\tif (useNamedReferences) {\n\t\t\t\tstring = string\n\t\t\t\t\t.replace(/>\\u20D2/g, '>⃒')\n\t\t\t\t\t.replace(/<\\u20D2/g, '<⃒')\n\t\t\t\t\t.replace(/fj/g, 'fj');\n\t\t\t}\n\t\t\t// Encode non-ASCII symbols.\n\t\t\tif (useNamedReferences) {\n\t\t\t\t// Encode non-ASCII symbols that can be replaced with a named reference.\n\t\t\t\tstring = string.replace(regexEncodeNonAscii, function(string) {\n\t\t\t\t\t// Note: there is no need to check `has(encodeMap, string)` here.\n\t\t\t\t\treturn '&' + encodeMap[string] + ';';\n\t\t\t\t});\n\t\t\t}\n\t\t\t// Note: any remaining non-ASCII symbols are handled outside of the `if`.\n\t\t} else if (useNamedReferences) {\n\t\t\t// Apply named character references.\n\t\t\t// Encode `<>\"'&` using named character references.\n\t\t\tif (!allowUnsafeSymbols) {\n\t\t\t\tstring = string.replace(regexEscape, function(string) {\n\t\t\t\t\treturn '&' + encodeMap[string] + ';'; // no need to check `has()` here\n\t\t\t\t});\n\t\t\t}\n\t\t\t// Shorten escapes that represent two symbols, of which at least one is\n\t\t\t// `<>\"'&`.\n\t\t\tstring = string\n\t\t\t\t.replace(/>\\u20D2/g, '>⃒')\n\t\t\t\t.replace(/<\\u20D2/g, '<⃒');\n\t\t\t// Encode non-ASCII symbols that can be replaced with a named reference.\n\t\t\tstring = string.replace(regexEncodeNonAscii, function(string) {\n\t\t\t\t// Note: there is no need to check `has(encodeMap, string)` here.\n\t\t\t\treturn '&' + encodeMap[string] + ';';\n\t\t\t});\n\t\t} else if (!allowUnsafeSymbols) {\n\t\t\t// Encode `<>\"'&` using hexadecimal escapes, now that they’re not handled\n\t\t\t// using named character references.\n\t\t\tstring = string.replace(regexEscape, escapeBmpSymbol);\n\t\t}\n\t\treturn string\n\t\t\t// Encode astral symbols.\n\t\t\t.replace(regexAstralSymbols, function($0) {\n\t\t\t\t// https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n\t\t\t\tvar high = $0.charCodeAt(0);\n\t\t\t\tvar low = $0.charCodeAt(1);\n\t\t\t\tvar codePoint = (high - 0xD800) * 0x400 + low - 0xDC00 + 0x10000;\n\t\t\t\treturn escapeCodePoint(codePoint);\n\t\t\t})\n\t\t\t// Encode any remaining BMP symbols that are not printable ASCII symbols\n\t\t\t// using a hexadecimal escape.\n\t\t\t.replace(regexBmpWhitelist, escapeBmpSymbol);\n\t};\n\t// Expose default options (so they can be overridden globally).\n\tencode.options = {\n\t\t'allowUnsafeSymbols': false,\n\t\t'encodeEverything': false,\n\t\t'strict': false,\n\t\t'useNamedReferences': false,\n\t\t'decimal' : false\n\t};\n\n\tvar decode = function(html, options) {\n\t\toptions = merge(options, decode.options);\n\t\tvar strict = options.strict;\n\t\tif (strict && regexInvalidEntity.test(html)) {\n\t\t\tparseError('malformed character reference');\n\t\t}\n\t\treturn html.replace(regexDecode, function($0, $1, $2, $3, $4, $5, $6, $7, $8) {\n\t\t\tvar codePoint;\n\t\t\tvar semicolon;\n\t\t\tvar decDigits;\n\t\t\tvar hexDigits;\n\t\t\tvar reference;\n\t\t\tvar next;\n\n\t\t\tif ($1) {\n\t\t\t\treference = $1;\n\t\t\t\t// Note: there is no need to check `has(decodeMap, reference)`.\n\t\t\t\treturn decodeMap[reference];\n\t\t\t}\n\n\t\t\tif ($2) {\n\t\t\t\t// Decode named character references without trailing `;`, e.g. `&`.\n\t\t\t\t// This is only a parse error if it gets converted to `&`, or if it is\n\t\t\t\t// followed by `=` in an attribute context.\n\t\t\t\treference = $2;\n\t\t\t\tnext = $3;\n\t\t\t\tif (next && options.isAttributeValue) {\n\t\t\t\t\tif (strict && next == '=') {\n\t\t\t\t\t\tparseError('`&` did not start a character reference');\n\t\t\t\t\t}\n\t\t\t\t\treturn $0;\n\t\t\t\t} else {\n\t\t\t\t\tif (strict) {\n\t\t\t\t\t\tparseError(\n\t\t\t\t\t\t\t'named character reference was not terminated by a semicolon'\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\t// Note: there is no need to check `has(decodeMapLegacy, reference)`.\n\t\t\t\t\treturn decodeMapLegacy[reference] + (next || '');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ($4) {\n\t\t\t\t// Decode decimal escapes, e.g. `𝌆`.\n\t\t\t\tdecDigits = $4;\n\t\t\t\tsemicolon = $5;\n\t\t\t\tif (strict && !semicolon) {\n\t\t\t\t\tparseError('character reference was not terminated by a semicolon');\n\t\t\t\t}\n\t\t\t\tcodePoint = parseInt(decDigits, 10);\n\t\t\t\treturn codePointToSymbol(codePoint, strict);\n\t\t\t}\n\n\t\t\tif ($6) {\n\t\t\t\t// Decode hexadecimal escapes, e.g. `𝌆`.\n\t\t\t\thexDigits = $6;\n\t\t\t\tsemicolon = $7;\n\t\t\t\tif (strict && !semicolon) {\n\t\t\t\t\tparseError('character reference was not terminated by a semicolon');\n\t\t\t\t}\n\t\t\t\tcodePoint = parseInt(hexDigits, 16);\n\t\t\t\treturn codePointToSymbol(codePoint, strict);\n\t\t\t}\n\n\t\t\t// If we’re still here, `if ($7)` is implied; it’s an ambiguous\n\t\t\t// ampersand for sure. https://mths.be/notes/ambiguous-ampersands\n\t\t\tif (strict) {\n\t\t\t\tparseError(\n\t\t\t\t\t'named character reference was not terminated by a semicolon'\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn $0;\n\t\t});\n\t};\n\t// Expose default options (so they can be overridden globally).\n\tdecode.options = {\n\t\t'isAttributeValue': false,\n\t\t'strict': false\n\t};\n\n\tvar escape = function(string) {\n\t\treturn string.replace(regexEscape, function($0) {\n\t\t\t// Note: there is no need to check `has(escapeMap, $0)` here.\n\t\t\treturn escapeMap[$0];\n\t\t});\n\t};\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar he = {\n\t\t'version': '1.2.0',\n\t\t'encode': encode,\n\t\t'decode': decode,\n\t\t'escape': escape,\n\t\t'unescape': decode\n\t};\n\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine(function() {\n\t\t\treturn he;\n\t\t});\n\t}\telse if (freeExports && !freeExports.nodeType) {\n\t\tif (freeModule) { // in Node.js, io.js, or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = he;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (var key in he) {\n\t\t\t\thas(he, key) && (freeExports[key] = he[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.he = he;\n\t}\n\n}(this));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar he_1 = require(\"he\");\n/**\n * Node Class as base class for TextNode and HTMLElement.\n */\nvar Node = /** @class */ (function () {\n function Node(parentNode, range) {\n if (parentNode === void 0) { parentNode = null; }\n this.parentNode = parentNode;\n this.childNodes = [];\n Object.defineProperty(this, 'range', {\n enumerable: false,\n writable: true,\n configurable: true,\n value: range !== null && range !== void 0 ? range : [-1, -1]\n });\n }\n /**\n * Remove current node\n */\n Node.prototype.remove = function () {\n var _this = this;\n if (this.parentNode) {\n var children = this.parentNode.childNodes;\n this.parentNode.childNodes = children.filter(function (child) {\n return _this !== child;\n });\n this.parentNode = null;\n }\n return this;\n };\n Object.defineProperty(Node.prototype, \"innerText\", {\n get: function () {\n return this.rawText;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"textContent\", {\n get: function () {\n return (0, he_1.decode)(this.rawText);\n },\n set: function (val) {\n this.rawText = (0, he_1.encode)(val);\n },\n enumerable: false,\n configurable: true\n });\n return Node;\n}());\nexports.default = Node;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar NodeType;\n(function (NodeType) {\n NodeType[NodeType[\"ELEMENT_NODE\"] = 1] = \"ELEMENT_NODE\";\n NodeType[NodeType[\"TEXT_NODE\"] = 3] = \"TEXT_NODE\";\n NodeType[NodeType[\"COMMENT_NODE\"] = 8] = \"COMMENT_NODE\";\n})(NodeType || (NodeType = {}));\nexports.default = NodeType;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar node_1 = __importDefault(require(\"./node\"));\nvar type_1 = __importDefault(require(\"./type\"));\nvar CommentNode = /** @class */ (function (_super) {\n __extends(CommentNode, _super);\n function CommentNode(rawText, parentNode, range, rawTagName) {\n if (parentNode === void 0) { parentNode = null; }\n if (rawTagName === void 0) { rawTagName = '!--'; }\n var _this = _super.call(this, parentNode, range) || this;\n _this.rawText = rawText;\n _this.rawTagName = rawTagName;\n /**\n * Node Type declaration.\n * @type {Number}\n */\n _this.nodeType = type_1.default.COMMENT_NODE;\n return _this;\n }\n CommentNode.prototype.clone = function () {\n return new CommentNode(this.rawText, null, undefined, this.rawTagName);\n };\n Object.defineProperty(CommentNode.prototype, \"text\", {\n /**\n * Get unescaped text value of current node and its children.\n * @return {string} text content\n */\n get: function () {\n return this.rawText;\n },\n enumerable: false,\n configurable: true\n });\n CommentNode.prototype.toString = function () {\n return \"<!--\".concat(this.rawText, \"-->\");\n };\n return CommentNode;\n}(node_1.default));\nexports.default = CommentNode;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Doctype = exports.CDATA = exports.Tag = exports.Style = exports.Script = exports.Comment = exports.Directive = exports.Text = exports.Root = exports.isTag = exports.ElementType = void 0;\n/** Types of elements found in htmlparser2's DOM */\nvar 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 = exports.ElementType || (exports.ElementType = {}));\n/**\n * Tests whether an element is a tag or not.\n *\n * @param elem Element to test\n */\nfunction isTag(elem) {\n return (elem.type === ElementType.Tag ||\n elem.type === ElementType.Script ||\n elem.type === ElementType.Style);\n}\nexports.isTag = isTag;\n// Exports for backwards compatibility\n/** Type for the root element of a document */\nexports.Root = ElementType.Root;\n/** Type for Text */\nexports.Text = ElementType.Text;\n/** Type for <? ... ?> */\nexports.Directive = ElementType.Directive;\n/** Type for <!-- ... --> */\nexports.Comment = ElementType.Comment;\n/** Type for <script> tags */\nexports.Script = ElementType.Script;\n/** Type for <style> tags */\nexports.Style = ElementType.Style;\n/** Type for Any tag */\nexports.Tag = ElementType.Tag;\n/** Type for <![CDATA[ ... ]]> */\nexports.CDATA = ElementType.CDATA;\n/** Type for <!doctype ...> */\nexports.Doctype = ElementType.Doctype;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.cloneNode = exports.hasChildren = exports.isDocument = exports.isDirective = exports.isComment = exports.isText = exports.isCDATA = exports.isTag = exports.Element = exports.Document = exports.CDATA = exports.NodeWithChildren = exports.ProcessingInstruction = exports.Comment = exports.Text = exports.DataNode = exports.Node = void 0;\nvar domelementtype_1 = require(\"domelementtype\");\n/**\n * This object will be used as the prototype for Nodes when creating a\n * DOM-Level-1-compliant structure.\n */\nvar Node = /** @class */ (function () {\n function Node() {\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 Object.defineProperty(Node.prototype, \"parentNode\", {\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: function () {\n return this.parent;\n },\n set: function (parent) {\n this.parent = parent;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"previousSibling\", {\n /**\n * Same as {@link prev}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.prev;\n },\n set: function (prev) {\n this.prev = prev;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"nextSibling\", {\n /**\n * Same as {@link next}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.next;\n },\n set: function (next) {\n this.next = next;\n },\n enumerable: false,\n configurable: true\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 Node.prototype.cloneNode = function (recursive) {\n if (recursive === void 0) { recursive = false; }\n return cloneNode(this, recursive);\n };\n return Node;\n}());\nexports.Node = Node;\n/**\n * A node that contains some data.\n */\nvar DataNode = /** @class */ (function (_super) {\n __extends(DataNode, _super);\n /**\n * @param data The content of the data node\n */\n function DataNode(data) {\n var _this = _super.call(this) || this;\n _this.data = data;\n return _this;\n }\n Object.defineProperty(DataNode.prototype, \"nodeValue\", {\n /**\n * Same as {@link data}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.data;\n },\n set: function (data) {\n this.data = data;\n },\n enumerable: false,\n configurable: true\n });\n return DataNode;\n}(Node));\nexports.DataNode = DataNode;\n/**\n * Text within the document.\n */\nvar Text = /** @class */ (function (_super) {\n __extends(Text, _super);\n function Text() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.Text;\n return _this;\n }\n Object.defineProperty(Text.prototype, \"nodeType\", {\n get: function () {\n return 3;\n },\n enumerable: false,\n configurable: true\n });\n return Text;\n}(DataNode));\nexports.Text = Text;\n/**\n * Comments within the document.\n */\nvar Comment = /** @class */ (function (_super) {\n __extends(Comment, _super);\n function Comment() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.Comment;\n return _this;\n }\n Object.defineProperty(Comment.prototype, \"nodeType\", {\n get: function () {\n return 8;\n },\n enumerable: false,\n configurable: true\n });\n return Comment;\n}(DataNode));\nexports.Comment = Comment;\n/**\n * Processing instructions, including doc types.\n */\nvar ProcessingInstruction = /** @class */ (function (_super) {\n __extends(ProcessingInstruction, _super);\n function ProcessingInstruction(name, data) {\n var _this = _super.call(this, data) || this;\n _this.name = name;\n _this.type = domelementtype_1.ElementType.Directive;\n return _this;\n }\n Object.defineProperty(ProcessingInstruction.prototype, \"nodeType\", {\n get: function () {\n return 1;\n },\n enumerable: false,\n configurable: true\n });\n return ProcessingInstruction;\n}(DataNode));\nexports.ProcessingInstruction = ProcessingInstruction;\n/**\n * A `Node` that can have children.\n */\nvar NodeWithChildren = /** @class */ (function (_super) {\n __extends(NodeWithChildren, _super);\n /**\n * @param children Children of the node. Only certain node types can have children.\n */\n function NodeWithChildren(children) {\n var _this = _super.call(this) || this;\n _this.children = children;\n return _this;\n }\n Object.defineProperty(NodeWithChildren.prototype, \"firstChild\", {\n // Aliases\n /** First child of the node. */\n get: function () {\n var _a;\n return (_a = this.children[0]) !== null && _a !== void 0 ? _a : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NodeWithChildren.prototype, \"lastChild\", {\n /** Last child of the node. */\n get: function () {\n return this.children.length > 0\n ? this.children[this.children.length - 1]\n : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NodeWithChildren.prototype, \"childNodes\", {\n /**\n * Same as {@link children}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.children;\n },\n set: function (children) {\n this.children = children;\n },\n enumerable: false,\n configurable: true\n });\n return NodeWithChildren;\n}(Node));\nexports.NodeWithChildren = NodeWithChildren;\nvar CDATA = /** @class */ (function (_super) {\n __extends(CDATA, _super);\n function CDATA() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.CDATA;\n return _this;\n }\n Object.defineProperty(CDATA.prototype, \"nodeType\", {\n get: function () {\n return 4;\n },\n enumerable: false,\n configurable: true\n });\n return CDATA;\n}(NodeWithChildren));\nexports.CDATA = CDATA;\n/**\n * The root node of the document.\n */\nvar Document = /** @class */ (function (_super) {\n __extends(Document, _super);\n function Document() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.Root;\n return _this;\n }\n Object.defineProperty(Document.prototype, \"nodeType\", {\n get: function () {\n return 9;\n },\n enumerable: false,\n configurable: true\n });\n return Document;\n}(NodeWithChildren));\nexports.Document = Document;\n/**\n * An element within the DOM.\n */\nvar Element = /** @class */ (function (_super) {\n __extends(Element, _super);\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 function Element(name, attribs, children, type) {\n if (children === void 0) { children = []; }\n if (type === void 0) { type = name === \"script\"\n ? domelementtype_1.ElementType.Script\n : name === \"style\"\n ? domelementtype_1.ElementType.Style\n : domelementtype_1.ElementType.Tag; }\n var _this = _super.call(this, children) || this;\n _this.name = name;\n _this.attribs = attribs;\n _this.type = type;\n return _this;\n }\n Object.defineProperty(Element.prototype, \"nodeType\", {\n get: function () {\n return 1;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Element.prototype, \"tagName\", {\n // DOM Level 1 aliases\n /**\n * Same as {@link name}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.name;\n },\n set: function (name) {\n this.name = name;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Element.prototype, \"attributes\", {\n get: function () {\n var _this = this;\n return Object.keys(this.attribs).map(function (name) {\n var _a, _b;\n return ({\n name: 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 enumerable: false,\n configurable: true\n });\n return Element;\n}(NodeWithChildren));\nexports.Element = Element;\n/**\n * @param node Node to check.\n * @returns `true` if the node is a `Element`, `false` otherwise.\n */\nfunction isTag(node) {\n return (0, domelementtype_1.isTag)(node);\n}\nexports.isTag = isTag;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `CDATA`, `false` otherwise.\n */\nfunction isCDATA(node) {\n return node.type === domelementtype_1.ElementType.CDATA;\n}\nexports.isCDATA = isCDATA;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `Text`, `false` otherwise.\n */\nfunction isText(node) {\n return node.type === domelementtype_1.ElementType.Text;\n}\nexports.isText = isText;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `Comment`, `false` otherwise.\n */\nfunction isComment(node) {\n return node.type === domelementtype_1.ElementType.Comment;\n}\nexports.isComment = isComment;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `ProcessingInstruction`, `false` otherwise.\n */\nfunction isDirective(node) {\n return node.type === domelementtype_1.ElementType.Directive;\n}\nexports.isDirective = isDirective;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `ProcessingInstruction`, `false` otherwise.\n */\nfunction isDocument(node) {\n return node.type === domelementtype_1.ElementType.Root;\n}\nexports.isDocument = isDocument;\n/**\n * @param node Node to check.\n * @returns `true` if the node has children, `false` otherwise.\n */\nfunction hasChildren(node) {\n return Object.prototype.hasOwnProperty.call(node, \"children\");\n}\nexports.hasChildren = hasChildren;\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 */\nfunction cloneNode(node, recursive) {\n if (recursive === void 0) { recursive = false; }\n var 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 var children = recursive ? cloneChildren(node.children) : [];\n var clone_1 = new Element(node.name, __assign({}, node.attribs), children);\n children.forEach(function (child) { return (child.parent = clone_1); });\n if (node.namespace != null) {\n clone_1.namespace = node.namespace;\n }\n if (node[\"x-attribsNamespace\"]) {\n clone_1[\"x-attribsNamespace\"] = __assign({}, node[\"x-attribsNamespace\"]);\n }\n if (node[\"x-attribsPrefix\"]) {\n clone_1[\"x-attribsPrefix\"] = __assign({}, node[\"x-attribsPrefix\"]);\n }\n result = clone_1;\n }\n else if (isCDATA(node)) {\n var children = recursive ? cloneChildren(node.children) : [];\n var clone_2 = new CDATA(children);\n children.forEach(function (child) { return (child.parent = clone_2); });\n result = clone_2;\n }\n else if (isDocument(node)) {\n var children = recursive ? cloneChildren(node.children) : [];\n var clone_3 = new Document(children);\n children.forEach(function (child) { return (child.parent = clone_3); });\n if (node[\"x-mode\"]) {\n clone_3[\"x-mode\"] = node[\"x-mode\"];\n }\n result = clone_3;\n }\n else if (isDirective(node)) {\n var 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: \".concat(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}\nexports.cloneNode = cloneNode;\nfunction cloneChildren(childs) {\n var children = childs.map(function (child) { return cloneNode(child, true); });\n for (var 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","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DomHandler = void 0;\nvar domelementtype_1 = require(\"domelementtype\");\nvar node_js_1 = require(\"./node.js\");\n__exportStar(require(\"./node.js\"), exports);\n// Default options\nvar defaultOpts = {\n withStartIndices: false,\n withEndIndices: false,\n xmlMode: false,\n};\nvar DomHandler = /** @class */ (function () {\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 function DomHandler(callback, options, elementCB) {\n /** The elements of the DOM */\n this.dom = [];\n /** The root element for the DOM */\n this.root = new node_js_1.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 DomHandler.prototype.onparserinit = function (parser) {\n this.parser = parser;\n };\n // Resets the handler back to starting state\n DomHandler.prototype.onreset = function () {\n this.dom = [];\n this.root = new node_js_1.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 DomHandler.prototype.onend = function () {\n if (this.done)\n return;\n this.done = true;\n this.parser = null;\n this.handleCallback(null);\n };\n DomHandler.prototype.onerror = function (error) {\n this.handleCallback(error);\n };\n DomHandler.prototype.onclosetag = function () {\n this.lastNode = null;\n var 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 DomHandler.prototype.onopentag = function (name, attribs) {\n var type = this.options.xmlMode ? domelementtype_1.ElementType.Tag : undefined;\n var element = new node_js_1.Element(name, attribs, undefined, type);\n this.addNode(element);\n this.tagStack.push(element);\n };\n DomHandler.prototype.ontext = function (data) {\n var lastNode = this.lastNode;\n if (lastNode && lastNode.type === domelementtype_1.ElementType.Text) {\n lastNode.data += data;\n if (this.options.withEndIndices) {\n lastNode.endIndex = this.parser.endIndex;\n }\n }\n else {\n var node = new node_js_1.Text(data);\n this.addNode(node);\n this.lastNode = node;\n }\n };\n DomHandler.prototype.oncomment = function (data) {\n if (this.lastNode && this.lastNode.type === domelementtype_1.ElementType.Comment) {\n this.lastNode.data += data;\n return;\n }\n var node = new node_js_1.Comment(data);\n this.addNode(node);\n this.lastNode = node;\n };\n DomHandler.prototype.oncommentend = function () {\n this.lastNode = null;\n };\n DomHandler.prototype.oncdatastart = function () {\n var text = new node_js_1.Text(\"\");\n var node = new node_js_1.CDATA([text]);\n this.addNode(node);\n text.parent = node;\n this.lastNode = text;\n };\n DomHandler.prototype.oncdataend = function () {\n this.lastNode = null;\n };\n DomHandler.prototype.onprocessinginstruction = function (name, data) {\n var node = new node_js_1.ProcessingInstruction(name, data);\n this.addNode(node);\n };\n DomHandler.prototype.handleCallback = function (error) {\n if (typeof this.callback === \"function\") {\n this.callback(error, this.dom);\n }\n else if (error) {\n throw error;\n }\n };\n DomHandler.prototype.addNode = function (node) {\n var parent = this.tagStack[this.tagStack.length - 1];\n var 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 return DomHandler;\n}());\nexports.DomHandler = DomHandler;\nexports.default = DomHandler;\n","\"use strict\";\n// Generated using scripts/write-decode-map.ts\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = new Uint16Array(\n// prettier-ignore\n\"\\u1d41<\\xd5\\u0131\\u028a\\u049d\\u057b\\u05d0\\u0675\\u06de\\u07a2\\u07d6\\u080f\\u0a4a\\u0a91\\u0da1\\u0e6d\\u0f09\\u0f26\\u10ca\\u1228\\u12e1\\u1415\\u149d\\u14c3\\u14df\\u1525\\0\\0\\0\\0\\0\\0\\u156b\\u16cd\\u198d\\u1c12\\u1ddd\\u1f7e\\u2060\\u21b0\\u228d\\u23c0\\u23fb\\u2442\\u2824\\u2912\\u2d08\\u2e48\\u2fce\\u3016\\u32ba\\u3639\\u37ac\\u38fe\\u3a28\\u3a71\\u3ae0\\u3b2e\\u0800EMabcfglmnoprstu\\\\bfms\\x7f\\x84\\x8b\\x90\\x95\\x98\\xa6\\xb3\\xb9\\xc8\\xcflig\\u803b\\xc6\\u40c6P\\u803b&\\u4026cute\\u803b\\xc1\\u40c1reve;\\u4102\\u0100iyx}rc\\u803b\\xc2\\u40c2;\\u4410r;\\uc000\\ud835\\udd04rave\\u803b\\xc0\\u40c0pha;\\u4391acr;\\u4100d;\\u6a53\\u0100gp\\x9d\\xa1on;\\u4104f;\\uc000\\ud835\\udd38plyFunction;\\u6061ing\\u803b\\xc5\\u40c5\\u0100cs\\xbe\\xc3r;\\uc000\\ud835\\udc9cign;\\u6254ilde\\u803b\\xc3\\u40c3ml\\u803b\\xc4\\u40c4\\u0400aceforsu\\xe5\\xfb\\xfe\\u0117\\u011c\\u0122\\u0127\\u012a\\u0100cr\\xea\\xf2kslash;\\u6216\\u0176\\xf6\\xf8;\\u6ae7ed;\\u6306y;\\u4411\\u0180crt\\u0105\\u010b\\u0114ause;\\u6235noullis;\\u612ca;\\u4392r;\\uc000\\ud835\\udd05pf;\\uc000\\ud835\\udd39eve;\\u42d8c\\xf2\\u0113mpeq;\\u624e\\u0700HOacdefhilorsu\\u014d\\u0151\\u0156\\u0180\\u019e\\u01a2\\u01b5\\u01b7\\u01ba\\u01dc\\u0215\\u0273\\u0278\\u027ecy;\\u4427PY\\u803b\\xa9\\u40a9\\u0180cpy\\u015d\\u0162\\u017aute;\\u4106\\u0100;i\\u0167\\u0168\\u62d2talDifferentialD;\\u6145leys;\\u612d\\u0200aeio\\u0189\\u018e\\u0194\\u0198ron;\\u410cdil\\u803b\\xc7\\u40c7rc;\\u4108nint;\\u6230ot;\\u410a\\u0100dn\\u01a7\\u01adilla;\\u40b8terDot;\\u40b7\\xf2\\u017fi;\\u43a7rcle\\u0200DMPT\\u01c7\\u01cb\\u01d1\\u01d6ot;\\u6299inus;\\u6296lus;\\u6295imes;\\u6297o\\u0100cs\\u01e2\\u01f8kwiseContourIntegral;\\u6232eCurly\\u0100DQ\\u0203\\u020foubleQuote;\\u601duote;\\u6019\\u0200lnpu\\u021e\\u0228\\u0247\\u0255on\\u0100;e\\u0225\\u0226\\u6237;\\u6a74\\u0180git\\u022f\\u0236\\u023aruent;\\u6261nt;\\u622fourIntegral;\\u622e\\u0100fr\\u024c\\u024e;\\u6102oduct;\\u6210nterClockwiseContourIntegral;\\u6233oss;\\u6a2fcr;\\uc000\\ud835\\udc9ep\\u0100;C\\u0284\\u0285\\u62d3ap;\\u624d\\u0580DJSZacefios\\u02a0\\u02ac\\u02b0\\u02b4\\u02b8\\u02cb\\u02d7\\u02e1\\u02e6\\u0333\\u048d\\u0100;o\\u0179\\u02a5trahd;\\u6911cy;\\u4402cy;\\u4405cy;\\u440f\\u0180grs\\u02bf\\u02c4\\u02c7ger;\\u6021r;\\u61a1hv;\\u6ae4\\u0100ay\\u02d0\\u02d5ron;\\u410e;\\u4414l\\u0100;t\\u02dd\\u02de\\u6207a;\\u4394r;\\uc000\\ud835\\udd07\\u0100af\\u02eb\\u0327\\u0100cm\\u02f0\\u0322ritical\\u0200ADGT\\u0300\\u0306\\u0316\\u031ccute;\\u40b4o\\u0174\\u030b\\u030d;\\u42d9bleAcute;\\u42ddrave;\\u4060ilde;\\u42dcond;\\u62c4ferentialD;\\u6146\\u0470\\u033d\\0\\0\\0\\u0342\\u0354\\0\\u0405f;\\uc000\\ud835\\udd3b\\u0180;DE\\u0348\\u0349\\u034d\\u40a8ot;\\u60dcqual;\\u6250ble\\u0300CDLRUV\\u0363\\u0372\\u0382\\u03cf\\u03e2\\u03f8ontourIntegra\\xec\\u0239o\\u0274\\u0379\\0\\0\\u037b\\xbb\\u0349nArrow;\\u61d3\\u0100eo\\u0387\\u03a4ft\\u0180ART\\u0390\\u0396\\u03a1rrow;\\u61d0ightArrow;\\u61d4e\\xe5\\u02cang\\u0100LR\\u03ab\\u03c4eft\\u0100AR\\u03b3\\u03b9rrow;\\u67f8ightArrow;\\u67faightArrow;\\u67f9ight\\u0100AT\\u03d8\\u03derrow;\\u61d2ee;\\u62a8p\\u0241\\u03e9\\0\\0\\u03efrrow;\\u61d1ownArrow;\\u61d5erticalBar;\\u6225n\\u0300ABLRTa\\u0412\\u042a\\u0430\\u045e\\u047f\\u037crrow\\u0180;BU\\u041d\\u041e\\u0422\\u6193ar;\\u6913pArrow;\\u61f5reve;\\u4311eft\\u02d2\\u043a\\0\\u0446\\0\\u0450ightVector;\\u6950eeVector;\\u695eector\\u0100;B\\u0459\\u045a\\u61bdar;\\u6956ight\\u01d4\\u0467\\0\\u0471eeVector;\\u695fector\\u0100;B\\u047a\\u047b\\u61c1ar;\\u6957ee\\u0100;A\\u0486\\u0487\\u62a4rrow;\\u61a7\\u0100ct\\u0492\\u0497r;\\uc000\\ud835\\udc9frok;\\u4110\\u0800NTacdfglmopqstux\\u04bd\\u04c0\\u04c4\\u04cb\\u04de\\u04e2\\u04e7\\u04ee\\u04f5\\u0521\\u052f\\u0536\\u0552\\u055d\\u0560\\u0565G;\\u414aH\\u803b\\xd0\\u40d0cute\\u803b\\xc9\\u40c9\\u0180aiy\\u04d2\\u04d7\\u04dcron;\\u411arc\\u803b\\xca\\u40ca;\\u442dot;\\u4116r;\\uc000\\ud835\\udd08rave\\u803b\\xc8\\u40c8ement;\\u6208\\u0100ap\\u04fa\\u04fecr;\\u4112ty\\u0253\\u0506\\0\\0\\u0512mallSquare;\\u65fberySmallSquare;\\u65ab\\u0100gp\\u0526\\u052aon;\\u4118f;\\uc000\\ud835\\udd3csilon;\\u4395u\\u0100ai\\u053c\\u0549l\\u0100;T\\u0542\\u0543\\u6a75ilde;\\u6242librium;\\u61cc\\u0100ci\\u0557\\u055ar;\\u6130m;\\u6a73a;\\u4397ml\\u803b\\xcb\\u40cb\\u0100ip\\u056a\\u056fsts;\\u6203onentialE;\\u6147\\u0280cfios\\u0585\\u0588\\u058d\\u05b2\\u05ccy;\\u4424r;\\uc000\\ud835\\udd09lled\\u0253\\u0597\\0\\0\\u05a3mallSquare;\\u65fcerySmallSquare;\\u65aa\\u0370\\u05ba\\0\\u05bf\\0\\0\\u05c4f;\\uc000\\ud835\\udd3dAll;\\u6200riertrf;\\u6131c\\xf2\\u05cb\\u0600JTabcdfgorst\\u05e8\\u05ec\\u05ef\\u05fa\\u0600\\u0612\\u0616\\u061b\\u061d\\u0623\\u066c\\u0672cy;\\u4403\\u803b>\\u403emma\\u0100;d\\u05f7\\u05f8\\u4393;\\u43dcreve;\\u411e\\u0180eiy\\u0607\\u060c\\u0610dil;\\u4122rc;\\u411c;\\u4413ot;\\u4120r;\\uc000\\ud835\\udd0a;\\u62d9pf;\\uc000\\ud835\\udd3eeater\\u0300EFGLST\\u0635\\u0644\\u064e\\u0656\\u065b\\u0666qual\\u0100;L\\u063e\\u063f\\u6265ess;\\u62dbullEqual;\\u6267reater;\\u6aa2ess;\\u6277lantEqual;\\u6a7eilde;\\u6273cr;\\uc000\\ud835\\udca2;\\u626b\\u0400Aacfiosu\\u0685\\u068b\\u0696\\u069b\\u069e\\u06aa\\u06be\\u06caRDcy;\\u442a\\u0100ct\\u0690\\u0694ek;\\u42c7;\\u405eirc;\\u4124r;\\u610clbertSpace;\\u610b\\u01f0\\u06af\\0\\u06b2f;\\u610dizontalLine;\\u6500\\u0100ct\\u06c3\\u06c5\\xf2\\u06a9rok;\\u4126mp\\u0144\\u06d0\\u06d8ownHum\\xf0\\u012fqual;\\u624f\\u0700EJOacdfgmnostu\\u06fa\\u06fe\\u0703\\u0707\\u070e\\u071a\\u071e\\u0721\\u0728\\u0744\\u0778\\u078b\\u078f\\u0795cy;\\u4415lig;\\u4132cy;\\u4401cute\\u803b\\xcd\\u40cd\\u0100iy\\u0713\\u0718rc\\u803b\\xce\\u40ce;\\u4418ot;\\u4130r;\\u6111rave\\u803b\\xcc\\u40cc\\u0180;ap\\u0720\\u072f\\u073f\\u0100cg\\u0734\\u0737r;\\u412ainaryI;\\u6148lie\\xf3\\u03dd\\u01f4\\u0749\\0\\u0762\\u0100;e\\u074d\\u074e\\u622c\\u0100gr\\u0753\\u0758ral;\\u622bsection;\\u62c2isible\\u0100CT\\u076c\\u0772omma;\\u6063imes;\\u6062\\u0180gpt\\u077f\\u0783\\u0788on;\\u412ef;\\uc000\\ud835\\udd40a;\\u4399cr;\\u6110ilde;\\u4128\\u01eb\\u079a\\0\\u079ecy;\\u4406l\\u803b\\xcf\\u40cf\\u0280cfosu\\u07ac\\u07b7\\u07bc\\u07c2\\u07d0\\u0100iy\\u07b1\\u07b5rc;\\u4134;\\u4419r;\\uc000\\ud835\\udd0dpf;\\uc000\\ud835\\udd41\\u01e3\\u07c7\\0\\u07ccr;\\uc000\\ud835\\udca5rcy;\\u4408kcy;\\u4404\\u0380HJacfos\\u07e4\\u07e8\\u07ec\\u07f1\\u07fd\\u0802\\u0808cy;\\u4425cy;\\u440cppa;\\u439a\\u0100ey\\u07f6\\u07fbdil;\\u4136;\\u441ar;\\uc000\\ud835\\udd0epf;\\uc000\\ud835\\udd42cr;\\uc000\\ud835\\udca6\\u0580JTaceflmost\\u0825\\u0829\\u082c\\u0850\\u0863\\u09b3\\u09b8\\u09c7\\u09cd\\u0a37\\u0a47cy;\\u4409\\u803b<\\u403c\\u0280cmnpr\\u0837\\u083c\\u0841\\u0844\\u084dute;\\u4139bda;\\u439bg;\\u67ealacetrf;\\u6112r;\\u619e\\u0180aey\\u0857\\u085c\\u0861ron;\\u413ddil;\\u413b;\\u441b\\u0100fs\\u0868\\u0970t\\u0500ACDFRTUVar\\u087e\\u08a9\\u08b1\\u08e0\\u08e6\\u08fc\\u092f\\u095b\\u0390\\u096a\\u0100nr\\u0883\\u088fgleBracket;\\u67e8row\\u0180;BR\\u0899\\u089a\\u089e\\u6190ar;\\u61e4ightArrow;\\u61c6eiling;\\u6308o\\u01f5\\u08b7\\0\\u08c3bleBracket;\\u67e6n\\u01d4\\u08c8\\0\\u08d2eeVector;\\u6961ector\\u0100;B\\u08db\\u08dc\\u61c3ar;\\u6959loor;\\u630aight\\u0100AV\\u08ef\\u08f5rrow;\\u6194ector;\\u694e\\u0100er\\u0901\\u0917e\\u0180;AV\\u0909\\u090a\\u0910\\u62a3rrow;\\u61a4ector;\\u695aiangle\\u0180;BE\\u0924\\u0925\\u0929\\u62b2ar;\\u69cfqual;\\u62b4p\\u0180DTV\\u0937\\u0942\\u094cownVector;\\u6951eeVector;\\u6960ector\\u0100;B\\u0956\\u0957\\u61bfar;\\u6958ector\\u0100;B\\u0965\\u0966\\u61bcar;\\u6952ight\\xe1\\u039cs\\u0300EFGLST\\u097e\\u098b\\u0995\\u099d\\u09a2\\u09adqualGreater;\\u62daullEqual;\\u6266reater;\\u6276ess;\\u6aa1lantEqual;\\u6a7dilde;\\u6272r;\\uc000\\ud835\\udd0f\\u0100;e\\u09bd\\u09be\\u62d8ftarrow;\\u61daidot;\\u413f\\u0180npw\\u09d4\\u0a16\\u0a1bg\\u0200LRlr\\u09de\\u09f7\\u0a02\\u0a10eft\\u0100AR\\u09e6\\u09ecrrow;\\u67f5ightArrow;\\u67f7ightArrow;\\u67f6eft\\u0100ar\\u03b3\\u0a0aight\\xe1\\u03bfight\\xe1\\u03caf;\\uc000\\ud835\\udd43er\\u0100LR\\u0a22\\u0a2ceftArrow;\\u6199ightArrow;\\u6198\\u0180cht\\u0a3e\\u0a40\\u0a42\\xf2\\u084c;\\u61b0rok;\\u4141;\\u626a\\u0400acefiosu\\u0a5a\\u0a5d\\u0a60\\u0a77\\u0a7c\\u0a85\\u0a8b\\u0a8ep;\\u6905y;\\u441c\\u0100dl\\u0a65\\u0a6fiumSpace;\\u605flintrf;\\u6133r;\\uc000\\ud835\\udd10nusPlus;\\u6213pf;\\uc000\\ud835\\udd44c\\xf2\\u0a76;\\u439c\\u0480Jacefostu\\u0aa3\\u0aa7\\u0aad\\u0ac0\\u0b14\\u0b19\\u0d91\\u0d97\\u0d9ecy;\\u440acute;\\u4143\\u0180aey\\u0ab4\\u0ab9\\u0aberon;\\u4147dil;\\u4145;\\u441d\\u0180gsw\\u0ac7\\u0af0\\u0b0eative\\u0180MTV\\u0ad3\\u0adf\\u0ae8ediumSpace;\\u600bhi\\u0100cn\\u0ae6\\u0ad8\\xeb\\u0ad9eryThi\\xee\\u0ad9ted\\u0100GL\\u0af8\\u0b06reaterGreate\\xf2\\u0673essLes\\xf3\\u0a48Line;\\u400ar;\\uc000\\ud835\\udd11\\u0200Bnpt\\u0b22\\u0b28\\u0b37\\u0b3areak;\\u6060BreakingSpace;\\u40a0f;\\u6115\\u0680;CDEGHLNPRSTV\\u0b55\\u0b56\\u0b6a\\u0b7c\\u0ba1\\u0beb\\u0c04\\u0c5e\\u0c84\\u0ca6\\u0cd8\\u0d61\\u0d85\\u6aec\\u0100ou\\u0b5b\\u0b64ngruent;\\u6262pCap;\\u626doubleVerticalBar;\\u6226\\u0180lqx\\u0b83\\u0b8a\\u0b9bement;\\u6209ual\\u0100;T\\u0b92\\u0b93\\u6260ilde;\\uc000\\u2242\\u0338ists;\\u6204reater\\u0380;EFGLST\\u0bb6\\u0bb7\\u0bbd\\u0bc9\\u0bd3\\u0bd8\\u0be5\\u626fqual;\\u6271ullEqual;\\uc000\\u2267\\u0338reater;\\uc000\\u226b\\u0338ess;\\u6279lantEqual;\\uc000\\u2a7e\\u0338ilde;\\u6275ump\\u0144\\u0bf2\\u0bfdownHump;\\uc000\\u224e\\u0338qual;\\uc000\\u224f\\u0338e\\u0100fs\\u0c0a\\u0c27tTriangle\\u0180;BE\\u0c1a\\u0c1b\\u0c21\\u62eaar;\\uc000\\u29cf\\u0338qual;\\u62ecs\\u0300;EGLST\\u0c35\\u0c36\\u0c3c\\u0c44\\u0c4b\\u0c58\\u626equal;\\u6270reater;\\u6278ess;\\uc000\\u226a\\u0338lantEqual;\\uc000\\u2a7d\\u0338ilde;\\u6274ested\\u0100GL\\u0c68\\u0c79reaterGreater;\\uc000\\u2aa2\\u0338essLess;\\uc000\\u2aa1\\u0338recedes\\u0180;ES\\u0c92\\u0c93\\u0c9b\\u6280qual;\\uc000\\u2aaf\\u0338lantEqual;\\u62e0\\u0100ei\\u0cab\\u0cb9verseElement;\\u620cghtTriangle\\u0180;BE\\u0ccb\\u0ccc\\u0cd2\\u62ebar;\\uc000\\u29d0\\u0338qual;\\u62ed\\u0100qu\\u0cdd\\u0d0cuareSu\\u0100bp\\u0ce8\\u0cf9set\\u0100;E\\u0cf0\\u0cf3\\uc000\\u228f\\u0338qual;\\u62e2erset\\u0100;E\\u0d03\\u0d06\\uc000\\u2290\\u0338qual;\\u62e3\\u0180bcp\\u0d13\\u0d24\\u0d4eset\\u0100;E\\u0d1b\\u0d1e\\uc000\\u2282\\u20d2qual;\\u6288ceeds\\u0200;EST\\u0d32\\u0d33\\u0d3b\\u0d46\\u6281qual;\\uc000\\u2ab0\\u0338lantEqual;\\u62e1ilde;\\uc000\\u227f\\u0338erset\\u0100;E\\u0d58\\u0d5b\\uc000\\u2283\\u20d2qual;\\u6289ilde\\u0200;EFT\\u0d6e\\u0d6f\\u0d75\\u0d7f\\u6241qual;\\u6244ullEqual;\\u6247ilde;\\u6249erticalBar;\\u6224cr;\\uc000\\ud835\\udca9ilde\\u803b\\xd1\\u40d1;\\u439d\\u0700Eacdfgmoprstuv\\u0dbd\\u0dc2\\u0dc9\\u0dd5\\u0ddb\\u0de0\\u0de7\\u0dfc\\u0e02\\u0e20\\u0e22\\u0e32\\u0e3f\\u0e44lig;\\u4152cute\\u803b\\xd3\\u40d3\\u0100iy\\u0dce\\u0dd3rc\\u803b\\xd4\\u40d4;\\u441eblac;\\u4150r;\\uc000\\ud835\\udd12rave\\u803b\\xd2\\u40d2\\u0180aei\\u0dee\\u0df2\\u0df6cr;\\u414cga;\\u43a9cron;\\u439fpf;\\uc000\\ud835\\udd46enCurly\\u0100DQ\\u0e0e\\u0e1aoubleQuote;\\u601cuote;\\u6018;\\u6a54\\u0100cl\\u0e27\\u0e2cr;\\uc000\\ud835\\udcaaash\\u803b\\xd8\\u40d8i\\u016c\\u0e37\\u0e3cde\\u803b\\xd5\\u40d5es;\\u6a37ml\\u803b\\xd6\\u40d6er\\u0100BP\\u0e4b\\u0e60\\u0100ar\\u0e50\\u0e53r;\\u603eac\\u0100ek\\u0e5a\\u0e5c;\\u63deet;\\u63b4arenthesis;\\u63dc\\u0480acfhilors\\u0e7f\\u0e87\\u0e8a\\u0e8f\\u0e92\\u0e94\\u0e9d\\u0eb0\\u0efcrtialD;\\u6202y;\\u441fr;\\uc000\\ud835\\udd13i;\\u43a6;\\u43a0usMinus;\\u40b1\\u0100ip\\u0ea2\\u0eadncareplan\\xe5\\u069df;\\u6119\\u0200;eio\\u0eb9\\u0eba\\u0ee0\\u0ee4\\u6abbcedes\\u0200;EST\\u0ec8\\u0ec9\\u0ecf\\u0eda\\u627aqual;\\u6aaflantEqual;\\u627cilde;\\u627eme;\\u6033\\u0100dp\\u0ee9\\u0eeeuct;\\u620fortion\\u0100;a\\u0225\\u0ef9l;\\u621d\\u0100ci\\u0f01\\u0f06r;\\uc000\\ud835\\udcab;\\u43a8\\u0200Ufos\\u0f11\\u0f16\\u0f1b\\u0f1fOT\\u803b\\\"\\u4022r;\\uc000\\ud835\\udd14pf;\\u611acr;\\uc000\\ud835\\udcac\\u0600BEacefhiorsu\\u0f3e\\u0f43\\u0f47\\u0f60\\u0f73\\u0fa7\\u0faa\\u0fad\\u1096\\u10a9\\u10b4\\u10bearr;\\u6910G\\u803b\\xae\\u40ae\\u0180cnr\\u0f4e\\u0f53\\u0f56ute;\\u4154g;\\u67ebr\\u0100;t\\u0f5c\\u0f5d\\u61a0l;\\u6916\\u0180aey\\u0f67\\u0f6c\\u0f71ron;\\u4158dil;\\u4156;\\u4420\\u0100;v\\u0f78\\u0f79\\u611cerse\\u0100EU\\u0f82\\u0f99\\u0100lq\\u0f87\\u0f8eement;\\u620builibrium;\\u61cbpEquilibrium;\\u696fr\\xbb\\u0f79o;\\u43a1ght\\u0400ACDFTUVa\\u0fc1\\u0feb\\u0ff3\\u1022\\u1028\\u105b\\u1087\\u03d8\\u0100nr\\u0fc6\\u0fd2gleBracket;\\u67e9row\\u0180;BL\\u0fdc\\u0fdd\\u0fe1\\u6192ar;\\u61e5eftArrow;\\u61c4eiling;\\u6309o\\u01f5\\u0ff9\\0\\u1005bleBracket;\\u67e7n\\u01d4\\u100a\\0\\u1014eeVector;\\u695dector\\u0100;B\\u101d\\u101e\\u61c2ar;\\u6955loor;\\u630b\\u0100er\\u102d\\u1043e\\u0180;AV\\u1035\\u1036\\u103c\\u62a2rrow;\\u61a6ector;\\u695biangle\\u0180;BE\\u1050\\u1051\\u1055\\u62b3ar;\\u69d0qual;\\u62b5p\\u0180DTV\\u1063\\u106e\\u1078ownVector;\\u694feeVector;\\u695cector\\u0100;B\\u1082\\u1083\\u61bear;\\u6954ector\\u0100;B\\u1091\\u1092\\u61c0ar;\\u6953\\u0100pu\\u109b\\u109ef;\\u611dndImplies;\\u6970ightarrow;\\u61db\\u0100ch\\u10b9\\u10bcr;\\u611b;\\u61b1leDelayed;\\u69f4\\u0680HOacfhimoqstu\\u10e4\\u10f1\\u10f7\\u10fd\\u1119\\u111e\\u1151\\u1156\\u1161\\u1167\\u11b5\\u11bb\\u11bf\\u0100Cc\\u10e9\\u10eeHcy;\\u4429y;\\u4428FTcy;\\u442ccute;\\u415a\\u0280;aeiy\\u1108\\u1109\\u110e\\u1113\\u1117\\u6abcron;\\u4160dil;\\u415erc;\\u415c;\\u4421r;\\uc000\\ud835\\udd16ort\\u0200DLRU\\u112a\\u1134\\u113e\\u1149ownArrow\\xbb\\u041eeftArrow\\xbb\\u089aightArrow\\xbb\\u0fddpArrow;\\u6191gma;\\u43a3allCircle;\\u6218pf;\\uc000\\ud835\\udd4a\\u0272\\u116d\\0\\0\\u1170t;\\u621aare\\u0200;ISU\\u117b\\u117c\\u1189\\u11af\\u65a1ntersection;\\u6293u\\u0100bp\\u118f\\u119eset\\u0100;E\\u1197\\u1198\\u628fqual;\\u6291erset\\u0100;E\\u11a8\\u11a9\\u6290qual;\\u6292nion;\\u6294cr;\\uc000\\ud835\\udcaear;\\u62c6\\u0200bcmp\\u11c8\\u11db\\u1209\\u120b\\u0100;s\\u11cd\\u11ce\\u62d0et\\u0100;E\\u11cd\\u11d5qual;\\u6286\\u0100ch\\u11e0\\u1205eeds\\u0200;EST\\u11ed\\u11ee\\u11f4\\u11ff\\u627bqual;\\u6ab0lantEqual;\\u627dilde;\\u627fTh\\xe1\\u0f8c;\\u6211\\u0180;es\\u1212\\u1213\\u1223\\u62d1rset\\u0100;E\\u121c\\u121d\\u6283qual;\\u6287et\\xbb\\u1213\\u0580HRSacfhiors\\u123e\\u1244\\u1249\\u1255\\u125e\\u1271\\u1276\\u129f\\u12c2\\u12c8\\u12d1ORN\\u803b\\xde\\u40deADE;\\u6122\\u0100Hc\\u124e\\u1252cy;\\u440by;\\u4426\\u0100bu\\u125a\\u125c;\\u4009;\\u43a4\\u0180aey\\u1265\\u126a\\u126fron;\\u4164dil;\\u4162;\\u4422r;\\uc000\\ud835\\udd17\\u0100ei\\u127b\\u1289\\u01f2\\u1280\\0\\u1287efore;\\u6234a;\\u4398\\u0100cn\\u128e\\u1298kSpace;\\uc000\\u205f\\u200aSpace;\\u6009lde\\u0200;EFT\\u12ab\\u12ac\\u12b2\\u12bc\\u623cqual;\\u6243ullEqual;\\u6245ilde;\\u6248pf;\\uc000\\ud835\\udd4bipleDot;\\u60db\\u0100ct\\u12d6\\u12dbr;\\uc000\\ud835\\udcafrok;\\u4166\\u0ae1\\u12f7\\u130e\\u131a\\u1326\\0\\u132c\\u1331\\0\\0\\0\\0\\0\\u1338\\u133d\\u1377\\u1385\\0\\u13ff\\u1404\\u140a\\u1410\\u0100cr\\u12fb\\u1301ute\\u803b\\xda\\u40dar\\u0100;o\\u1307\\u1308\\u619fcir;\\u6949r\\u01e3\\u1313\\0\\u1316y;\\u440eve;\\u416c\\u0100iy\\u131e\\u1323rc\\u803b\\xdb\\u40db;\\u4423blac;\\u4170r;\\uc000\\ud835\\udd18rave\\u803b\\xd9\\u40d9acr;\\u416a\\u0100di\\u1341\\u1369er\\u0100BP\\u1348\\u135d\\u0100ar\\u134d\\u1350r;\\u405fac\\u0100ek\\u1357\\u1359;\\u63dfet;\\u63b5arenthesis;\\u63ddon\\u0100;P\\u1370\\u1371\\u62c3lus;\\u628e\\u0100gp\\u137b\\u137fon;\\u4172f;\\uc000\\ud835\\udd4c\\u0400ADETadps\\u1395\\u13ae\\u13b8\\u13c4\\u03e8\\u13d2\\u13d7\\u13f3rrow\\u0180;BD\\u1150\\u13a0\\u13a4ar;\\u6912ownArrow;\\u61c5ownArrow;\\u6195quilibrium;\\u696eee\\u0100;A\\u13cb\\u13cc\\u62a5rrow;\\u61a5own\\xe1\\u03f3er\\u0100LR\\u13de\\u13e8eftArrow;\\u6196ightArrow;\\u6197i\\u0100;l\\u13f9\\u13fa\\u43d2on;\\u43a5ing;\\u416ecr;\\uc000\\ud835\\udcb0ilde;\\u4168ml\\u803b\\xdc\\u40dc\\u0480Dbcdefosv\\u1427\\u142c\\u1430\\u1433\\u143e\\u1485\\u148a\\u1490\\u1496ash;\\u62abar;\\u6aeby;\\u4412ash\\u0100;l\\u143b\\u143c\\u62a9;\\u6ae6\\u0100er\\u1443\\u1445;\\u62c1\\u0180bty\\u144c\\u1450\\u147aar;\\u6016\\u0100;i\\u144f\\u1455cal\\u0200BLST\\u1461\\u1465\\u146a\\u1474ar;\\u6223ine;\\u407ceparator;\\u6758ilde;\\u6240ThinSpace;\\u600ar;\\uc000\\ud835\\udd19pf;\\uc000\\ud835\\udd4dcr;\\uc000\\ud835\\udcb1dash;\\u62aa\\u0280cefos\\u14a7\\u14ac\\u14b1\\u14b6\\u14bcirc;\\u4174dge;\\u62c0r;\\uc000\\ud835\\udd1apf;\\uc000\\ud835\\udd4ecr;\\uc000\\ud835\\udcb2\\u0200fios\\u14cb\\u14d0\\u14d2\\u14d8r;\\uc000\\ud835\\udd1b;\\u439epf;\\uc000\\ud835\\udd4fcr;\\uc000\\ud835\\udcb3\\u0480AIUacfosu\\u14f1\\u14f5\\u14f9\\u14fd\\u1504\\u150f\\u1514\\u151a\\u1520cy;\\u442fcy;\\u4407cy;\\u442ecute\\u803b\\xdd\\u40dd\\u0100iy\\u1509\\u150drc;\\u4176;\\u442br;\\uc000\\ud835\\udd1cpf;\\uc000\\ud835\\udd50cr;\\uc000\\ud835\\udcb4ml;\\u4178\\u0400Hacdefos\\u1535\\u1539\\u153f\\u154b\\u154f\\u155d\\u1560\\u1564cy;\\u4416cute;\\u4179\\u0100ay\\u1544\\u1549ron;\\u417d;\\u4417ot;\\u417b\\u01f2\\u1554\\0\\u155boWidt\\xe8\\u0ad9a;\\u4396r;\\u6128pf;\\u6124cr;\\uc000\\ud835\\udcb5\\u0be1\\u1583\\u158a\\u1590\\0\\u15b0\\u15b6\\u15bf\\0\\0\\0\\0\\u15c6\\u15db\\u15eb\\u165f\\u166d\\0\\u1695\\u169b\\u16b2\\u16b9\\0\\u16becute\\u803b\\xe1\\u40e1reve;\\u4103\\u0300;Ediuy\\u159c\\u159d\\u15a1\\u15a3\\u15a8\\u15ad\\u623e;\\uc000\\u223e\\u0333;\\u623frc\\u803b\\xe2\\u40e2te\\u80bb\\xb4\\u0306;\\u4430lig\\u803b\\xe6\\u40e6\\u0100;r\\xb2\\u15ba;\\uc000\\ud835\\udd1erave\\u803b\\xe0\\u40e0\\u0100ep\\u15ca\\u15d6\\u0100fp\\u15cf\\u15d4sym;\\u6135\\xe8\\u15d3ha;\\u43b1\\u0100ap\\u15dfc\\u0100cl\\u15e4\\u15e7r;\\u4101g;\\u6a3f\\u0264\\u15f0\\0\\0\\u160a\\u0280;adsv\\u15fa\\u15fb\\u15ff\\u1601\\u1607\\u6227nd;\\u6a55;\\u6a5clope;\\u6a58;\\u6a5a\\u0380;elmrsz\\u1618\\u1619\\u161b\\u161e\\u163f\\u164f\\u1659\\u6220;\\u69a4e\\xbb\\u1619sd\\u0100;a\\u1625\\u1626\\u6221\\u0461\\u1630\\u1632\\u1634\\u1636\\u1638\\u163a\\u163c\\u163e;\\u69a8;\\u69a9;\\u69aa;\\u69ab;\\u69ac;\\u69ad;\\u69ae;\\u69aft\\u0100;v\\u1645\\u1646\\u621fb\\u0100;d\\u164c\\u164d\\u62be;\\u699d\\u0100pt\\u1654\\u1657h;\\u6222\\xbb\\xb9arr;\\u637c\\u0100gp\\u1663\\u1667on;\\u4105f;\\uc000\\ud835\\udd52\\u0380;Eaeiop\\u12c1\\u167b\\u167d\\u1682\\u1684\\u1687\\u168a;\\u6a70cir;\\u6a6f;\\u624ad;\\u624bs;\\u4027rox\\u0100;e\\u12c1\\u1692\\xf1\\u1683ing\\u803b\\xe5\\u40e5\\u0180cty\\u16a1\\u16a6\\u16a8r;\\uc000\\ud835\\udcb6;\\u402amp\\u0100;e\\u12c1\\u16af\\xf1\\u0288ilde\\u803b\\xe3\\u40e3ml\\u803b\\xe4\\u40e4\\u0100ci\\u16c2\\u16c8onin\\xf4\\u0272nt;\\u6a11\\u0800Nabcdefiklnoprsu\\u16ed\\u16f1\\u1730\\u173c\\u1743\\u1748\\u1778\\u177d\\u17e0\\u17e6\\u1839\\u1850\\u170d\\u193d\\u1948\\u1970ot;\\u6aed\\u0100cr\\u16f6\\u171ek\\u0200ceps\\u1700\\u1705\\u170d\\u1713ong;\\u624cpsilon;\\u43f6rime;\\u6035im\\u0100;e\\u171a\\u171b\\u623dq;\\u62cd\\u0176\\u1722\\u1726ee;\\u62bded\\u0100;g\\u172c\\u172d\\u6305e\\xbb\\u172drk\\u0100;t\\u135c\\u1737brk;\\u63b6\\u0100oy\\u1701\\u1741;\\u4431quo;\\u601e\\u0280cmprt\\u1753\\u175b\\u1761\\u1764\\u1768aus\\u0100;e\\u010a\\u0109ptyv;\\u69b0s\\xe9\\u170cno\\xf5\\u0113\\u0180ahw\\u176f\\u1771\\u1773;\\u43b2;\\u6136een;\\u626cr;\\uc000\\ud835\\udd1fg\\u0380costuvw\\u178d\\u179d\\u17b3\\u17c1\\u17d5\\u17db\\u17de\\u0180aiu\\u1794\\u1796\\u179a\\xf0\\u0760rc;\\u65efp\\xbb\\u1371\\u0180dpt\\u17a4\\u17a8\\u17adot;\\u6a00lus;\\u6a01imes;\\u6a02\\u0271\\u17b9\\0\\0\\u17becup;\\u6a06ar;\\u6605riangle\\u0100du\\u17cd\\u17d2own;\\u65bdp;\\u65b3plus;\\u6a04e\\xe5\\u1444\\xe5\\u14adarow;\\u690d\\u0180ako\\u17ed\\u1826\\u1835\\u0100cn\\u17f2\\u1823k\\u0180lst\\u17fa\\u05ab\\u1802ozenge;\\u69ebriangle\\u0200;dlr\\u1812\\u1813\\u1818\\u181d\\u65b4own;\\u65beeft;\\u65c2ight;\\u65b8k;\\u6423\\u01b1\\u182b\\0\\u1833\\u01b2\\u182f\\0\\u1831;\\u6592;\\u65914;\\u6593ck;\\u6588\\u0100eo\\u183e\\u184d\\u0100;q\\u1843\\u1846\\uc000=\\u20e5uiv;\\uc000\\u2261\\u20e5t;\\u6310\\u0200ptwx\\u1859\\u185e\\u1867\\u186cf;\\uc000\\ud835\\udd53\\u0100;t\\u13cb\\u1863om\\xbb\\u13cctie;\\u62c8\\u0600DHUVbdhmptuv\\u1885\\u1896\\u18aa\\u18bb\\u18d7\\u18db\\u18ec\\u18ff\\u1905\\u190a\\u1910\\u1921\\u0200LRlr\\u188e\\u1890\\u1892\\u1894;\\u6557;\\u6554;\\u6556;\\u6553\\u0280;DUdu\\u18a1\\u18a2\\u18a4\\u18a6\\u18a8\\u6550;\\u6566;\\u6569;\\u6564;\\u6567\\u0200LRlr\\u18b3\\u18b5\\u18b7\\u18b9;\\u655d;\\u655a;\\u655c;\\u6559\\u0380;HLRhlr\\u18ca\\u18cb\\u18cd\\u18cf\\u18d1\\u18d3\\u18d5\\u6551;\\u656c;\\u6563;\\u6560;\\u656b;\\u6562;\\u655fox;\\u69c9\\u0200LRlr\\u18e4\\u18e6\\u18e8\\u18ea;\\u6555;\\u6552;\\u6510;\\u650c\\u0280;DUdu\\u06bd\\u18f7\\u18f9\\u18fb\\u18fd;\\u6565;\\u6568;\\u652c;\\u6534inus;\\u629flus;\\u629eimes;\\u62a0\\u0200LRlr\\u1919\\u191b\\u191d\\u191f;\\u655b;\\u6558;\\u6518;\\u6514\\u0380;HLRhlr\\u1930\\u1931\\u1933\\u1935\\u1937\\u1939\\u193b\\u6502;\\u656a;\\u6561;\\u655e;\\u653c;\\u6524;\\u651c\\u0100ev\\u0123\\u1942bar\\u803b\\xa6\\u40a6\\u0200ceio\\u1951\\u1956\\u195a\\u1960r;\\uc000\\ud835\\udcb7mi;\\u604fm\\u0100;e\\u171a\\u171cl\\u0180;bh\\u1968\\u1969\\u196b\\u405c;\\u69c5sub;\\u67c8\\u016c\\u1974\\u197el\\u0100;e\\u1979\\u197a\\u6022t\\xbb\\u197ap\\u0180;Ee\\u012f\\u1985\\u1987;\\u6aae\\u0100;q\\u06dc\\u06db\\u0ce1\\u19a7\\0\\u19e8\\u1a11\\u1a15\\u1a32\\0\\u1a37\\u1a50\\0\\0\\u1ab4\\0\\0\\u1ac1\\0\\0\\u1b21\\u1b2e\\u1b4d\\u1b52\\0\\u1bfd\\0\\u1c0c\\u0180cpr\\u19ad\\u19b2\\u19ddute;\\u4107\\u0300;abcds\\u19bf\\u19c0\\u19c4\\u19ca\\u19d5\\u19d9\\u6229nd;\\u6a44rcup;\\u6a49\\u0100au\\u19cf\\u19d2p;\\u6a4bp;\\u6a47ot;\\u6a40;\\uc000\\u2229\\ufe00\\u0100eo\\u19e2\\u19e5t;\\u6041\\xee\\u0693\\u0200aeiu\\u19f0\\u19fb\\u1a01\\u1a05\\u01f0\\u19f5\\0\\u19f8s;\\u6a4don;\\u410ddil\\u803b\\xe7\\u40e7rc;\\u4109ps\\u0100;s\\u1a0c\\u1a0d\\u6a4cm;\\u6a50ot;\\u410b\\u0180dmn\\u1a1b\\u1a20\\u1a26il\\u80bb\\xb8\\u01adptyv;\\u69b2t\\u8100\\xa2;e\\u1a2d\\u1a2e\\u40a2r\\xe4\\u01b2r;\\uc000\\ud835\\udd20\\u0180cei\\u1a3d\\u1a40\\u1a4dy;\\u4447ck\\u0100;m\\u1a47\\u1a48\\u6713ark\\xbb\\u1a48;\\u43c7r\\u0380;Ecefms\\u1a5f\\u1a60\\u1a62\\u1a6b\\u1aa4\\u1aaa\\u1aae\\u65cb;\\u69c3\\u0180;el\\u1a69\\u1a6a\\u1a6d\\u42c6q;\\u6257e\\u0261\\u1a74\\0\\0\\u1a88rrow\\u0100lr\\u1a7c\\u1a81eft;\\u61baight;\\u61bb\\u0280RSacd\\u1a92\\u1a94\\u1a96\\u1a9a\\u1a9f\\xbb\\u0f47;\\u64c8st;\\u629birc;\\u629aash;\\u629dnint;\\u6a10id;\\u6aefcir;\\u69c2ubs\\u0100;u\\u1abb\\u1abc\\u6663it\\xbb\\u1abc\\u02ec\\u1ac7\\u1ad4\\u1afa\\0\\u1b0aon\\u0100;e\\u1acd\\u1ace\\u403a\\u0100;q\\xc7\\xc6\\u026d\\u1ad9\\0\\0\\u1ae2a\\u0100;t\\u1ade\\u1adf\\u402c;\\u4040\\u0180;fl\\u1ae8\\u1ae9\\u1aeb\\u6201\\xee\\u1160e\\u0100mx\\u1af1\\u1af6ent\\xbb\\u1ae9e\\xf3\\u024d\\u01e7\\u1afe\\0\\u1b07\\u0100;d\\u12bb\\u1b02ot;\\u6a6dn\\xf4\\u0246\\u0180fry\\u1b10\\u1b14\\u1b17;\\uc000\\ud835\\udd54o\\xe4\\u0254\\u8100\\xa9;s\\u0155\\u1b1dr;\\u6117\\u0100ao\\u1b25\\u1b29rr;\\u61b5ss;\\u6717\\u0100cu\\u1b32\\u1b37r;\\uc000\\ud835\\udcb8\\u0100bp\\u1b3c\\u1b44\\u0100;e\\u1b41\\u1b42\\u6acf;\\u6ad1\\u0100;e\\u1b49\\u1b4a\\u6ad0;\\u6ad2dot;\\u62ef\\u0380delprvw\\u1b60\\u1b6c\\u1b77\\u1b82\\u1bac\\u1bd4\\u1bf9arr\\u0100lr\\u1b68\\u1b6a;\\u6938;\\u6935\\u0270\\u1b72\\0\\0\\u1b75r;\\u62dec;\\u62dfarr\\u0100;p\\u1b7f\\u1b80\\u61b6;\\u693d\\u0300;bcdos\\u1b8f\\u1b90\\u1b96\\u1ba1\\u1ba5\\u1ba8\\u622arcap;\\u6a48\\u0100au\\u1b9b\\u1b9ep;\\u6a46p;\\u6a4aot;\\u628dr;\\u6a45;\\uc000\\u222a\\ufe00\\u0200alrv\\u1bb5\\u1bbf\\u1bde\\u1be3rr\\u0100;m\\u1bbc\\u1bbd\\u61b7;\\u693cy\\u0180evw\\u1bc7\\u1bd4\\u1bd8q\\u0270\\u1bce\\0\\0\\u1bd2re\\xe3\\u1b73u\\xe3\\u1b75ee;\\u62ceedge;\\u62cfen\\u803b\\xa4\\u40a4earrow\\u0100lr\\u1bee\\u1bf3eft\\xbb\\u1b80ight\\xbb\\u1bbde\\xe4\\u1bdd\\u0100ci\\u1c01\\u1c07onin\\xf4\\u01f7nt;\\u6231lcty;\\u632d\\u0980AHabcdefhijlorstuwz\\u1c38\\u1c3b\\u1c3f\\u1c5d\\u1c69\\u1c75\\u1c8a\\u1c9e\\u1cac\\u1cb7\\u1cfb\\u1cff\\u1d0d\\u1d7b\\u1d91\\u1dab\\u1dbb\\u1dc6\\u1dcdr\\xf2\\u0381ar;\\u6965\\u0200glrs\\u1c48\\u1c4d\\u1c52\\u1c54ger;\\u6020eth;\\u6138\\xf2\\u1133h\\u0100;v\\u1c5a\\u1c5b\\u6010\\xbb\\u090a\\u016b\\u1c61\\u1c67arow;\\u690fa\\xe3\\u0315\\u0100ay\\u1c6e\\u1c73ron;\\u410f;\\u4434\\u0180;ao\\u0332\\u1c7c\\u1c84\\u0100gr\\u02bf\\u1c81r;\\u61catseq;\\u6a77\\u0180glm\\u1c91\\u1c94\\u1c98\\u803b\\xb0\\u40b0ta;\\u43b4ptyv;\\u69b1\\u0100ir\\u1ca3\\u1ca8sht;\\u697f;\\uc000\\ud835\\udd21ar\\u0100lr\\u1cb3\\u1cb5\\xbb\\u08dc\\xbb\\u101e\\u0280aegsv\\u1cc2\\u0378\\u1cd6\\u1cdc\\u1ce0m\\u0180;os\\u0326\\u1cca\\u1cd4nd\\u0100;s\\u0326\\u1cd1uit;\\u6666amma;\\u43ddin;\\u62f2\\u0180;io\\u1ce7\\u1ce8\\u1cf8\\u40f7de\\u8100\\xf7;o\\u1ce7\\u1cf0ntimes;\\u62c7n\\xf8\\u1cf7cy;\\u4452c\\u026f\\u1d06\\0\\0\\u1d0arn;\\u631eop;\\u630d\\u0280lptuw\\u1d18\\u1d1d\\u1d22\\u1d49\\u1d55lar;\\u4024f;\\uc000\\ud835\\udd55\\u0280;emps\\u030b\\u1d2d\\u1d37\\u1d3d\\u1d42q\\u0100;d\\u0352\\u1d33ot;\\u6251inus;\\u6238lus;\\u6214quare;\\u62a1blebarwedg\\xe5\\xfan\\u0180adh\\u112e\\u1d5d\\u1d67ownarrow\\xf3\\u1c83arpoon\\u0100lr\\u1d72\\u1d76ef\\xf4\\u1cb4igh\\xf4\\u1cb6\\u0162\\u1d7f\\u1d85karo\\xf7\\u0f42\\u026f\\u1d8a\\0\\0\\u1d8ern;\\u631fop;\\u630c\\u0180cot\\u1d98\\u1da3\\u1da6\\u0100ry\\u1d9d\\u1da1;\\uc000\\ud835\\udcb9;\\u4455l;\\u69f6rok;\\u4111\\u0100dr\\u1db0\\u1db4ot;\\u62f1i\\u0100;f\\u1dba\\u1816\\u65bf\\u0100ah\\u1dc0\\u1dc3r\\xf2\\u0429a\\xf2\\u0fa6angle;\\u69a6\\u0100ci\\u1dd2\\u1dd5y;\\u445fgrarr;\\u67ff\\u0900Dacdefglmnopqrstux\\u1e01\\u1e09\\u1e19\\u1e38\\u0578\\u1e3c\\u1e49\\u1e61\\u1e7e\\u1ea5\\u1eaf\\u1ebd\\u1ee1\\u1f2a\\u1f37\\u1f44\\u1f4e\\u1f5a\\u0100Do\\u1e06\\u1d34o\\xf4\\u1c89\\u0100cs\\u1e0e\\u1e14ute\\u803b\\xe9\\u40e9ter;\\u6a6e\\u0200aioy\\u1e22\\u1e27\\u1e31\\u1e36ron;\\u411br\\u0100;c\\u1e2d\\u1e2e\\u6256\\u803b\\xea\\u40ealon;\\u6255;\\u444dot;\\u4117\\u0100Dr\\u1e41\\u1e45ot;\\u6252;\\uc000\\ud835\\udd22\\u0180;rs\\u1e50\\u1e51\\u1e57\\u6a9aave\\u803b\\xe8\\u40e8\\u0100;d\\u1e5c\\u1e5d\\u6a96ot;\\u6a98\\u0200;ils\\u1e6a\\u1e6b\\u1e72\\u1e74\\u6a99nters;\\u63e7;\\u6113\\u0100;d\\u1e79\\u1e7a\\u6a95ot;\\u6a97\\u0180aps\\u1e85\\u1e89\\u1e97cr;\\u4113ty\\u0180;sv\\u1e92\\u1e93\\u1e95\\u6205et\\xbb\\u1e93p\\u01001;\\u1e9d\\u1ea4\\u0133\\u1ea1\\u1ea3;\\u6004;\\u6005\\u6003\\u0100gs\\u1eaa\\u1eac;\\u414bp;\\u6002\\u0100gp\\u1eb4\\u1eb8on;\\u4119f;\\uc000\\ud835\\udd56\\u0180als\\u1ec4\\u1ece\\u1ed2r\\u0100;s\\u1eca\\u1ecb\\u62d5l;\\u69e3us;\\u6a71i\\u0180;lv\\u1eda\\u1edb\\u1edf\\u43b5on\\xbb\\u1edb;\\u43f5\\u0200csuv\\u1eea\\u1ef3\\u1f0b\\u1f23\\u0100io\\u1eef\\u1e31rc\\xbb\\u1e2e\\u0269\\u1ef9\\0\\0\\u1efb\\xed\\u0548ant\\u0100gl\\u1f02\\u1f06tr\\xbb\\u1e5dess\\xbb\\u1e7a\\u0180aei\\u1f12\\u1f16\\u1f1als;\\u403dst;\\u625fv\\u0100;D\\u0235\\u1f20D;\\u6a78parsl;\\u69e5\\u0100Da\\u1f2f\\u1f33ot;\\u6253rr;\\u6971\\u0180cdi\\u1f3e\\u1f41\\u1ef8r;\\u612fo\\xf4\\u0352\\u0100ah\\u1f49\\u1f4b;\\u43b7\\u803b\\xf0\\u40f0\\u0100mr\\u1f53\\u1f57l\\u803b\\xeb\\u40ebo;\\u60ac\\u0180cip\\u1f61\\u1f64\\u1f67l;\\u4021s\\xf4\\u056e\\u0100eo\\u1f6c\\u1f74ctatio\\xee\\u0559nential\\xe5\\u0579\\u09e1\\u1f92\\0\\u1f9e\\0\\u1fa1\\u1fa7\\0\\0\\u1fc6\\u1fcc\\0\\u1fd3\\0\\u1fe6\\u1fea\\u2000\\0\\u2008\\u205allingdotse\\xf1\\u1e44y;\\u4444male;\\u6640\\u0180ilr\\u1fad\\u1fb3\\u1fc1lig;\\u8000\\ufb03\\u0269\\u1fb9\\0\\0\\u1fbdg;\\u8000\\ufb00ig;\\u8000\\ufb04;\\uc000\\ud835\\udd23lig;\\u8000\\ufb01lig;\\uc000fj\\u0180alt\\u1fd9\\u1fdc\\u1fe1t;\\u666dig;\\u8000\\ufb02ns;\\u65b1of;\\u4192\\u01f0\\u1fee\\0\\u1ff3f;\\uc000\\ud835\\udd57\\u0100ak\\u05bf\\u1ff7\\u0100;v\\u1ffc\\u1ffd\\u62d4;\\u6ad9artint;\\u6a0d\\u0100ao\\u200c\\u2055\\u0100cs\\u2011\\u2052\\u03b1\\u201a\\u2030\\u2038\\u2045\\u2048\\0\\u2050\\u03b2\\u2022\\u2025\\u2027\\u202a\\u202c\\0\\u202e\\u803b\\xbd\\u40bd;\\u6153\\u803b\\xbc\\u40bc;\\u6155;\\u6159;\\u615b\\u01b3\\u2034\\0\\u2036;\\u6154;\\u6156\\u02b4\\u203e\\u2041\\0\\0\\u2043\\u803b\\xbe\\u40be;\\u6157;\\u615c5;\\u6158\\u01b6\\u204c\\0\\u204e;\\u615a;\\u615d8;\\u615el;\\u6044wn;\\u6322cr;\\uc000\\ud835\\udcbb\\u0880Eabcdefgijlnorstv\\u2082\\u2089\\u209f\\u20a5\\u20b0\\u20b4\\u20f0\\u20f5\\u20fa\\u20ff\\u2103\\u2112\\u2138\\u0317\\u213e\\u2152\\u219e\\u0100;l\\u064d\\u2087;\\u6a8c\\u0180cmp\\u2090\\u2095\\u209dute;\\u41f5ma\\u0100;d\\u209c\\u1cda\\u43b3;\\u6a86reve;\\u411f\\u0100iy\\u20aa\\u20aerc;\\u411d;\\u4433ot;\\u4121\\u0200;lqs\\u063e\\u0642\\u20bd\\u20c9\\u0180;qs\\u063e\\u064c\\u20c4lan\\xf4\\u0665\\u0200;cdl\\u0665\\u20d2\\u20d5\\u20e5c;\\u6aa9ot\\u0100;o\\u20dc\\u20dd\\u6a80\\u0100;l\\u20e2\\u20e3\\u6a82;\\u6a84\\u0100;e\\u20ea\\u20ed\\uc000\\u22db\\ufe00s;\\u6a94r;\\uc000\\ud835\\udd24\\u0100;g\\u0673\\u061bmel;\\u6137cy;\\u4453\\u0200;Eaj\\u065a\\u210c\\u210e\\u2110;\\u6a92;\\u6aa5;\\u6aa4\\u0200Eaes\\u211b\\u211d\\u2129\\u2134;\\u6269p\\u0100;p\\u2123\\u2124\\u6a8arox\\xbb\\u2124\\u0100;q\\u212e\\u212f\\u6a88\\u0100;q\\u212e\\u211bim;\\u62e7pf;\\uc000\\ud835\\udd58\\u0100ci\\u2143\\u2146r;\\u610am\\u0180;el\\u066b\\u214e\\u2150;\\u6a8e;\\u6a90\\u8300>;cdlqr\\u05ee\\u2160\\u216a\\u216e\\u2173\\u2179\\u0100ci\\u2165\\u2167;\\u6aa7r;\\u6a7aot;\\u62d7Par;\\u6995uest;\\u6a7c\\u0280adels\\u2184\\u216a\\u2190\\u0656\\u219b\\u01f0\\u2189\\0\\u218epro\\xf8\\u209er;\\u6978q\\u0100lq\\u063f\\u2196les\\xf3\\u2088i\\xed\\u066b\\u0100en\\u21a3\\u21adrtneqq;\\uc000\\u2269\\ufe00\\xc5\\u21aa\\u0500Aabcefkosy\\u21c4\\u21c7\\u21f1\\u21f5\\u21fa\\u2218\\u221d\\u222f\\u2268\\u227dr\\xf2\\u03a0\\u0200ilmr\\u21d0\\u21d4\\u21d7\\u21dbrs\\xf0\\u1484f\\xbb\\u2024il\\xf4\\u06a9\\u0100dr\\u21e0\\u21e4cy;\\u444a\\u0180;cw\\u08f4\\u21eb\\u21efir;\\u6948;\\u61adar;\\u610firc;\\u4125\\u0180alr\\u2201\\u220e\\u2213rts\\u0100;u\\u2209\\u220a\\u6665it\\xbb\\u220alip;\\u6026con;\\u62b9r;\\uc000\\ud835\\udd25s\\u0100ew\\u2223\\u2229arow;\\u6925arow;\\u6926\\u0280amopr\\u223a\\u223e\\u2243\\u225e\\u2263rr;\\u61fftht;\\u623bk\\u0100lr\\u2249\\u2253eftarrow;\\u61a9ightarrow;\\u61aaf;\\uc000\\ud835\\udd59bar;\\u6015\\u0180clt\\u226f\\u2274\\u2278r;\\uc000\\ud835\\udcbdas\\xe8\\u21f4rok;\\u4127\\u0100bp\\u2282\\u2287ull;\\u6043hen\\xbb\\u1c5b\\u0ae1\\u22a3\\0\\u22aa\\0\\u22b8\\u22c5\\u22ce\\0\\u22d5\\u22f3\\0\\0\\u22f8\\u2322\\u2367\\u2362\\u237f\\0\\u2386\\u23aa\\u23b4cute\\u803b\\xed\\u40ed\\u0180;iy\\u0771\\u22b0\\u22b5rc\\u803b\\xee\\u40ee;\\u4438\\u0100cx\\u22bc\\u22bfy;\\u4435cl\\u803b\\xa1\\u40a1\\u0100fr\\u039f\\u22c9;\\uc000\\ud835\\udd26rave\\u803b\\xec\\u40ec\\u0200;ino\\u073e\\u22dd\\u22e9\\u22ee\\u0100in\\u22e2\\u22e6nt;\\u6a0ct;\\u622dfin;\\u69dcta;\\u6129lig;\\u4133\\u0180aop\\u22fe\\u231a\\u231d\\u0180cgt\\u2305\\u2308\\u2317r;\\u412b\\u0180elp\\u071f\\u230f\\u2313in\\xe5\\u078ear\\xf4\\u0720h;\\u4131f;\\u62b7ed;\\u41b5\\u0280;cfot\\u04f4\\u232c\\u2331\\u233d\\u2341are;\\u6105in\\u0100;t\\u2338\\u2339\\u621eie;\\u69dddo\\xf4\\u2319\\u0280;celp\\u0757\\u234c\\u2350\\u235b\\u2361al;\\u62ba\\u0100gr\\u2355\\u2359er\\xf3\\u1563\\xe3\\u234darhk;\\u6a17rod;\\u6a3c\\u0200cgpt\\u236f\\u2372\\u2376\\u237by;\\u4451on;\\u412ff;\\uc000\\ud835\\udd5aa;\\u43b9uest\\u803b\\xbf\\u40bf\\u0100ci\\u238a\\u238fr;\\uc000\\ud835\\udcben\\u0280;Edsv\\u04f4\\u239b\\u239d\\u23a1\\u04f3;\\u62f9ot;\\u62f5\\u0100;v\\u23a6\\u23a7\\u62f4;\\u62f3\\u0100;i\\u0777\\u23aelde;\\u4129\\u01eb\\u23b8\\0\\u23bccy;\\u4456l\\u803b\\xef\\u40ef\\u0300cfmosu\\u23cc\\u23d7\\u23dc\\u23e1\\u23e7\\u23f5\\u0100iy\\u23d1\\u23d5rc;\\u4135;\\u4439r;\\uc000\\ud835\\udd27ath;\\u4237pf;\\uc000\\ud835\\udd5b\\u01e3\\u23ec\\0\\u23f1r;\\uc000\\ud835\\udcbfrcy;\\u4458kcy;\\u4454\\u0400acfghjos\\u240b\\u2416\\u2422\\u2427\\u242d\\u2431\\u2435\\u243bppa\\u0100;v\\u2413\\u2414\\u43ba;\\u43f0\\u0100ey\\u241b\\u2420dil;\\u4137;\\u443ar;\\uc000\\ud835\\udd28reen;\\u4138cy;\\u4445cy;\\u445cpf;\\uc000\\ud835\\udd5ccr;\\uc000\\ud835\\udcc0\\u0b80ABEHabcdefghjlmnoprstuv\\u2470\\u2481\\u2486\\u248d\\u2491\\u250e\\u253d\\u255a\\u2580\\u264e\\u265e\\u2665\\u2679\\u267d\\u269a\\u26b2\\u26d8\\u275d\\u2768\\u278b\\u27c0\\u2801\\u2812\\u0180art\\u2477\\u247a\\u247cr\\xf2\\u09c6\\xf2\\u0395ail;\\u691barr;\\u690e\\u0100;g\\u0994\\u248b;\\u6a8bar;\\u6962\\u0963\\u24a5\\0\\u24aa\\0\\u24b1\\0\\0\\0\\0\\0\\u24b5\\u24ba\\0\\u24c6\\u24c8\\u24cd\\0\\u24f9ute;\\u413amptyv;\\u69b4ra\\xee\\u084cbda;\\u43bbg\\u0180;dl\\u088e\\u24c1\\u24c3;\\u6991\\xe5\\u088e;\\u6a85uo\\u803b\\xab\\u40abr\\u0400;bfhlpst\\u0899\\u24de\\u24e6\\u24e9\\u24eb\\u24ee\\u24f1\\u24f5\\u0100;f\\u089d\\u24e3s;\\u691fs;\\u691d\\xeb\\u2252p;\\u61abl;\\u6939im;\\u6973l;\\u61a2\\u0180;ae\\u24ff\\u2500\\u2504\\u6aabil;\\u6919\\u0100;s\\u2509\\u250a\\u6aad;\\uc000\\u2aad\\ufe00\\u0180abr\\u2515\\u2519\\u251drr;\\u690crk;\\u6772\\u0100ak\\u2522\\u252cc\\u0100ek\\u2528\\u252a;\\u407b;\\u405b\\u0100es\\u2531\\u2533;\\u698bl\\u0100du\\u2539\\u253b;\\u698f;\\u698d\\u0200aeuy\\u2546\\u254b\\u2556\\u2558ron;\\u413e\\u0100di\\u2550\\u2554il;\\u413c\\xec\\u08b0\\xe2\\u2529;\\u443b\\u0200cqrs\\u2563\\u2566\\u256d\\u257da;\\u6936uo\\u0100;r\\u0e19\\u1746\\u0100du\\u2572\\u2577har;\\u6967shar;\\u694bh;\\u61b2\\u0280;fgqs\\u258b\\u258c\\u0989\\u25f3\\u25ff\\u6264t\\u0280ahlrt\\u2598\\u25a4\\u25b7\\u25c2\\u25e8rrow\\u0100;t\\u0899\\u25a1a\\xe9\\u24f6arpoon\\u0100du\\u25af\\u25b4own\\xbb\\u045ap\\xbb\\u0966eftarrows;\\u61c7ight\\u0180ahs\\u25cd\\u25d6\\u25derrow\\u0100;s\\u08f4\\u08a7arpoon\\xf3\\u0f98quigarro\\xf7\\u21f0hreetimes;\\u62cb\\u0180;qs\\u258b\\u0993\\u25falan\\xf4\\u09ac\\u0280;cdgs\\u09ac\\u260a\\u260d\\u261d\\u2628c;\\u6aa8ot\\u0100;o\\u2614\\u2615\\u6a7f\\u0100;r\\u261a\\u261b\\u6a81;\\u6a83\\u0100;e\\u2622\\u2625\\uc000\\u22da\\ufe00s;\\u6a93\\u0280adegs\\u2633\\u2639\\u263d\\u2649\\u264bppro\\xf8\\u24c6ot;\\u62d6q\\u0100gq\\u2643\\u2645\\xf4\\u0989gt\\xf2\\u248c\\xf4\\u099bi\\xed\\u09b2\\u0180ilr\\u2655\\u08e1\\u265asht;\\u697c;\\uc000\\ud835\\udd29\\u0100;E\\u099c\\u2663;\\u6a91\\u0161\\u2669\\u2676r\\u0100du\\u25b2\\u266e\\u0100;l\\u0965\\u2673;\\u696alk;\\u6584cy;\\u4459\\u0280;acht\\u0a48\\u2688\\u268b\\u2691\\u2696r\\xf2\\u25c1orne\\xf2\\u1d08ard;\\u696bri;\\u65fa\\u0100io\\u269f\\u26a4dot;\\u4140ust\\u0100;a\\u26ac\\u26ad\\u63b0che\\xbb\\u26ad\\u0200Eaes\\u26bb\\u26bd\\u26c9\\u26d4;\\u6268p\\u0100;p\\u26c3\\u26c4\\u6a89rox\\xbb\\u26c4\\u0100;q\\u26ce\\u26cf\\u6a87\\u0100;q\\u26ce\\u26bbim;\\u62e6\\u0400abnoptwz\\u26e9\\u26f4\\u26f7\\u271a\\u272f\\u2741\\u2747\\u2750\\u0100nr\\u26ee\\u26f1g;\\u67ecr;\\u61fdr\\xeb\\u08c1g\\u0180lmr\\u26ff\\u270d\\u2714eft\\u0100ar\\u09e6\\u2707ight\\xe1\\u09f2apsto;\\u67fcight\\xe1\\u09fdparrow\\u0100lr\\u2725\\u2729ef\\xf4\\u24edight;\\u61ac\\u0180afl\\u2736\\u2739\\u273dr;\\u6985;\\uc000\\ud835\\udd5dus;\\u6a2dimes;\\u6a34\\u0161\\u274b\\u274fst;\\u6217\\xe1\\u134e\\u0180;ef\\u2757\\u2758\\u1800\\u65cange\\xbb\\u2758ar\\u0100;l\\u2764\\u2765\\u4028t;\\u6993\\u0280achmt\\u2773\\u2776\\u277c\\u2785\\u2787r\\xf2\\u08a8orne\\xf2\\u1d8car\\u0100;d\\u0f98\\u2783;\\u696d;\\u600eri;\\u62bf\\u0300achiqt\\u2798\\u279d\\u0a40\\u27a2\\u27ae\\u27bbquo;\\u6039r;\\uc000\\ud835\\udcc1m\\u0180;eg\\u09b2\\u27aa\\u27ac;\\u6a8d;\\u6a8f\\u0100bu\\u252a\\u27b3o\\u0100;r\\u0e1f\\u27b9;\\u601arok;\\u4142\\u8400<;cdhilqr\\u082b\\u27d2\\u2639\\u27dc\\u27e0\\u27e5\\u27ea\\u27f0\\u0100ci\\u27d7\\u27d9;\\u6aa6r;\\u6a79re\\xe5\\u25f2mes;\\u62c9arr;\\u6976uest;\\u6a7b\\u0100Pi\\u27f5\\u27f9ar;\\u6996\\u0180;ef\\u2800\\u092d\\u181b\\u65c3r\\u0100du\\u2807\\u280dshar;\\u694ahar;\\u6966\\u0100en\\u2817\\u2821rtneqq;\\uc000\\u2268\\ufe00\\xc5\\u281e\\u0700Dacdefhilnopsu\\u2840\\u2845\\u2882\\u288e\\u2893\\u28a0\\u28a5\\u28a8\\u28da\\u28e2\\u28e4\\u0a83\\u28f3\\u2902Dot;\\u623a\\u0200clpr\\u284e\\u2852\\u2863\\u287dr\\u803b\\xaf\\u40af\\u0100et\\u2857\\u2859;\\u6642\\u0100;e\\u285e\\u285f\\u6720se\\xbb\\u285f\\u0100;s\\u103b\\u2868to\\u0200;dlu\\u103b\\u2873\\u2877\\u287bow\\xee\\u048cef\\xf4\\u090f\\xf0\\u13d1ker;\\u65ae\\u0100oy\\u2887\\u288cmma;\\u6a29;\\u443cash;\\u6014asuredangle\\xbb\\u1626r;\\uc000\\ud835\\udd2ao;\\u6127\\u0180cdn\\u28af\\u28b4\\u28c9ro\\u803b\\xb5\\u40b5\\u0200;acd\\u1464\\u28bd\\u28c0\\u28c4s\\xf4\\u16a7ir;\\u6af0ot\\u80bb\\xb7\\u01b5us\\u0180;bd\\u28d2\\u1903\\u28d3\\u6212\\u0100;u\\u1d3c\\u28d8;\\u6a2a\\u0163\\u28de\\u28e1p;\\u6adb\\xf2\\u2212\\xf0\\u0a81\\u0100dp\\u28e9\\u28eeels;\\u62a7f;\\uc000\\ud835\\udd5e\\u0100ct\\u28f8\\u28fdr;\\uc000\\ud835\\udcc2pos\\xbb\\u159d\\u0180;lm\\u2909\\u290a\\u290d\\u43bctimap;\\u62b8\\u0c00GLRVabcdefghijlmoprstuvw\\u2942\\u2953\\u297e\\u2989\\u2998\\u29da\\u29e9\\u2a15\\u2a1a\\u2a58\\u2a5d\\u2a83\\u2a95\\u2aa4\\u2aa8\\u2b04\\u2b07\\u2b44\\u2b7f\\u2bae\\u2c34\\u2c67\\u2c7c\\u2ce9\\u0100gt\\u2947\\u294b;\\uc000\\u22d9\\u0338\\u0100;v\\u2950\\u0bcf\\uc000\\u226b\\u20d2\\u0180elt\\u295a\\u2972\\u2976ft\\u0100ar\\u2961\\u2967rrow;\\u61cdightarrow;\\u61ce;\\uc000\\u22d8\\u0338\\u0100;v\\u297b\\u0c47\\uc000\\u226a\\u20d2ightarrow;\\u61cf\\u0100Dd\\u298e\\u2993ash;\\u62afash;\\u62ae\\u0280bcnpt\\u29a3\\u29a7\\u29ac\\u29b1\\u29ccla\\xbb\\u02deute;\\u4144g;\\uc000\\u2220\\u20d2\\u0280;Eiop\\u0d84\\u29bc\\u29c0\\u29c5\\u29c8;\\uc000\\u2a70\\u0338d;\\uc000\\u224b\\u0338s;\\u4149ro\\xf8\\u0d84ur\\u0100;a\\u29d3\\u29d4\\u666el\\u0100;s\\u29d3\\u0b38\\u01f3\\u29df\\0\\u29e3p\\u80bb\\xa0\\u0b37mp\\u0100;e\\u0bf9\\u0c00\\u0280aeouy\\u29f4\\u29fe\\u2a03\\u2a10\\u2a13\\u01f0\\u29f9\\0\\u29fb;\\u6a43on;\\u4148dil;\\u4146ng\\u0100;d\\u0d7e\\u2a0aot;\\uc000\\u2a6d\\u0338p;\\u6a42;\\u443dash;\\u6013\\u0380;Aadqsx\\u0b92\\u2a29\\u2a2d\\u2a3b\\u2a41\\u2a45\\u2a50rr;\\u61d7r\\u0100hr\\u2a33\\u2a36k;\\u6924\\u0100;o\\u13f2\\u13f0ot;\\uc000\\u2250\\u0338ui\\xf6\\u0b63\\u0100ei\\u2a4a\\u2a4ear;\\u6928\\xed\\u0b98ist\\u0100;s\\u0ba0\\u0b9fr;\\uc000\\ud835\\udd2b\\u0200Eest\\u0bc5\\u2a66\\u2a79\\u2a7c\\u0180;qs\\u0bbc\\u2a6d\\u0be1\\u0180;qs\\u0bbc\\u0bc5\\u2a74lan\\xf4\\u0be2i\\xed\\u0bea\\u0100;r\\u0bb6\\u2a81\\xbb\\u0bb7\\u0180Aap\\u2a8a\\u2a8d\\u2a91r\\xf2\\u2971rr;\\u61aear;\\u6af2\\u0180;sv\\u0f8d\\u2a9c\\u0f8c\\u0100;d\\u2aa1\\u2aa2\\u62fc;\\u62facy;\\u445a\\u0380AEadest\\u2ab7\\u2aba\\u2abe\\u2ac2\\u2ac5\\u2af6\\u2af9r\\xf2\\u2966;\\uc000\\u2266\\u0338rr;\\u619ar;\\u6025\\u0200;fqs\\u0c3b\\u2ace\\u2ae3\\u2aeft\\u0100ar\\u2ad4\\u2ad9rro\\xf7\\u2ac1ightarro\\xf7\\u2a90\\u0180;qs\\u0c3b\\u2aba\\u2aealan\\xf4\\u0c55\\u0100;s\\u0c55\\u2af4\\xbb\\u0c36i\\xed\\u0c5d\\u0100;r\\u0c35\\u2afei\\u0100;e\\u0c1a\\u0c25i\\xe4\\u0d90\\u0100pt\\u2b0c\\u2b11f;\\uc000\\ud835\\udd5f\\u8180\\xac;in\\u2b19\\u2b1a\\u2b36\\u40acn\\u0200;Edv\\u0b89\\u2b24\\u2b28\\u2b2e;\\uc000\\u22f9\\u0338ot;\\uc000\\u22f5\\u0338\\u01e1\\u0b89\\u2b33\\u2b35;\\u62f7;\\u62f6i\\u0100;v\\u0cb8\\u2b3c\\u01e1\\u0cb8\\u2b41\\u2b43;\\u62fe;\\u62fd\\u0180aor\\u2b4b\\u2b63\\u2b69r\\u0200;ast\\u0b7b\\u2b55\\u2b5a\\u2b5flle\\xec\\u0b7bl;\\uc000\\u2afd\\u20e5;\\uc000\\u2202\\u0338lint;\\u6a14\\u0180;ce\\u0c92\\u2b70\\u2b73u\\xe5\\u0ca5\\u0100;c\\u0c98\\u2b78\\u0100;e\\u0c92\\u2b7d\\xf1\\u0c98\\u0200Aait\\u2b88\\u2b8b\\u2b9d\\u2ba7r\\xf2\\u2988rr\\u0180;cw\\u2b94\\u2b95\\u2b99\\u619b;\\uc000\\u2933\\u0338;\\uc000\\u219d\\u0338ghtarrow\\xbb\\u2b95ri\\u0100;e\\u0ccb\\u0cd6\\u0380chimpqu\\u2bbd\\u2bcd\\u2bd9\\u2b04\\u0b78\\u2be4\\u2bef\\u0200;cer\\u0d32\\u2bc6\\u0d37\\u2bc9u\\xe5\\u0d45;\\uc000\\ud835\\udcc3ort\\u026d\\u2b05\\0\\0\\u2bd6ar\\xe1\\u2b56m\\u0100;e\\u0d6e\\u2bdf\\u0100;q\\u0d74\\u0d73su\\u0100bp\\u2beb\\u2bed\\xe5\\u0cf8\\xe5\\u0d0b\\u0180bcp\\u2bf6\\u2c11\\u2c19\\u0200;Ees\\u2bff\\u2c00\\u0d22\\u2c04\\u6284;\\uc000\\u2ac5\\u0338et\\u0100;e\\u0d1b\\u2c0bq\\u0100;q\\u0d23\\u2c00c\\u0100;e\\u0d32\\u2c17\\xf1\\u0d38\\u0200;Ees\\u2c22\\u2c23\\u0d5f\\u2c27\\u6285;\\uc000\\u2ac6\\u0338et\\u0100;e\\u0d58\\u2c2eq\\u0100;q\\u0d60\\u2c23\\u0200gilr\\u2c3d\\u2c3f\\u2c45\\u2c47\\xec\\u0bd7lde\\u803b\\xf1\\u40f1\\xe7\\u0c43iangle\\u0100lr\\u2c52\\u2c5ceft\\u0100;e\\u0c1a\\u2c5a\\xf1\\u0c26ight\\u0100;e\\u0ccb\\u2c65\\xf1\\u0cd7\\u0100;m\\u2c6c\\u2c6d\\u43bd\\u0180;es\\u2c74\\u2c75\\u2c79\\u4023ro;\\u6116p;\\u6007\\u0480DHadgilrs\\u2c8f\\u2c94\\u2c99\\u2c9e\\u2ca3\\u2cb0\\u2cb6\\u2cd3\\u2ce3ash;\\u62adarr;\\u6904p;\\uc000\\u224d\\u20d2ash;\\u62ac\\u0100et\\u2ca8\\u2cac;\\uc000\\u2265\\u20d2;\\uc000>\\u20d2nfin;\\u69de\\u0180Aet\\u2cbd\\u2cc1\\u2cc5rr;\\u6902;\\uc000\\u2264\\u20d2\\u0100;r\\u2cca\\u2ccd\\uc000<\\u20d2ie;\\uc000\\u22b4\\u20d2\\u0100At\\u2cd8\\u2cdcrr;\\u6903rie;\\uc000\\u22b5\\u20d2im;\\uc000\\u223c\\u20d2\\u0180Aan\\u2cf0\\u2cf4\\u2d02rr;\\u61d6r\\u0100hr\\u2cfa\\u2cfdk;\\u6923\\u0100;o\\u13e7\\u13e5ear;\\u6927\\u1253\\u1a95\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\u2d2d\\0\\u2d38\\u2d48\\u2d60\\u2d65\\u2d72\\u2d84\\u1b07\\0\\0\\u2d8d\\u2dab\\0\\u2dc8\\u2dce\\0\\u2ddc\\u2e19\\u2e2b\\u2e3e\\u2e43\\u0100cs\\u2d31\\u1a97ute\\u803b\\xf3\\u40f3\\u0100iy\\u2d3c\\u2d45r\\u0100;c\\u1a9e\\u2d42\\u803b\\xf4\\u40f4;\\u443e\\u0280abios\\u1aa0\\u2d52\\u2d57\\u01c8\\u2d5alac;\\u4151v;\\u6a38old;\\u69bclig;\\u4153\\u0100cr\\u2d69\\u2d6dir;\\u69bf;\\uc000\\ud835\\udd2c\\u036f\\u2d79\\0\\0\\u2d7c\\0\\u2d82n;\\u42dbave\\u803b\\xf2\\u40f2;\\u69c1\\u0100bm\\u2d88\\u0df4ar;\\u69b5\\u0200acit\\u2d95\\u2d98\\u2da5\\u2da8r\\xf2\\u1a80\\u0100ir\\u2d9d\\u2da0r;\\u69beoss;\\u69bbn\\xe5\\u0e52;\\u69c0\\u0180aei\\u2db1\\u2db5\\u2db9cr;\\u414dga;\\u43c9\\u0180cdn\\u2dc0\\u2dc5\\u01cdron;\\u43bf;\\u69b6pf;\\uc000\\ud835\\udd60\\u0180ael\\u2dd4\\u2dd7\\u01d2r;\\u69b7rp;\\u69b9\\u0380;adiosv\\u2dea\\u2deb\\u2dee\\u2e08\\u2e0d\\u2e10\\u2e16\\u6228r\\xf2\\u1a86\\u0200;efm\\u2df7\\u2df8\\u2e02\\u2e05\\u6a5dr\\u0100;o\\u2dfe\\u2dff\\u6134f\\xbb\\u2dff\\u803b\\xaa\\u40aa\\u803b\\xba\\u40bagof;\\u62b6r;\\u6a56lope;\\u6a57;\\u6a5b\\u0180clo\\u2e1f\\u2e21\\u2e27\\xf2\\u2e01ash\\u803b\\xf8\\u40f8l;\\u6298i\\u016c\\u2e2f\\u2e34de\\u803b\\xf5\\u40f5es\\u0100;a\\u01db\\u2e3as;\\u6a36ml\\u803b\\xf6\\u40f6bar;\\u633d\\u0ae1\\u2e5e\\0\\u2e7d\\0\\u2e80\\u2e9d\\0\\u2ea2\\u2eb9\\0\\0\\u2ecb\\u0e9c\\0\\u2f13\\0\\0\\u2f2b\\u2fbc\\0\\u2fc8r\\u0200;ast\\u0403\\u2e67\\u2e72\\u0e85\\u8100\\xb6;l\\u2e6d\\u2e6e\\u40b6le\\xec\\u0403\\u0269\\u2e78\\0\\0\\u2e7bm;\\u6af3;\\u6afdy;\\u443fr\\u0280cimpt\\u2e8b\\u2e8f\\u2e93\\u1865\\u2e97nt;\\u4025od;\\u402eil;\\u6030enk;\\u6031r;\\uc000\\ud835\\udd2d\\u0180imo\\u2ea8\\u2eb0\\u2eb4\\u0100;v\\u2ead\\u2eae\\u43c6;\\u43d5ma\\xf4\\u0a76ne;\\u660e\\u0180;tv\\u2ebf\\u2ec0\\u2ec8\\u43c0chfork\\xbb\\u1ffd;\\u43d6\\u0100au\\u2ecf\\u2edfn\\u0100ck\\u2ed5\\u2eddk\\u0100;h\\u21f4\\u2edb;\\u610e\\xf6\\u21f4s\\u0480;abcdemst\\u2ef3\\u2ef4\\u1908\\u2ef9\\u2efd\\u2f04\\u2f06\\u2f0a\\u2f0e\\u402bcir;\\u6a23ir;\\u6a22\\u0100ou\\u1d40\\u2f02;\\u6a25;\\u6a72n\\u80bb\\xb1\\u0e9dim;\\u6a26wo;\\u6a27\\u0180ipu\\u2f19\\u2f20\\u2f25ntint;\\u6a15f;\\uc000\\ud835\\udd61nd\\u803b\\xa3\\u40a3\\u0500;Eaceinosu\\u0ec8\\u2f3f\\u2f41\\u2f44\\u2f47\\u2f81\\u2f89\\u2f92\\u2f7e\\u2fb6;\\u6ab3p;\\u6ab7u\\xe5\\u0ed9\\u0100;c\\u0ece\\u2f4c\\u0300;acens\\u0ec8\\u2f59\\u2f5f\\u2f66\\u2f68\\u2f7eppro\\xf8\\u2f43urlye\\xf1\\u0ed9\\xf1\\u0ece\\u0180aes\\u2f6f\\u2f76\\u2f7approx;\\u6ab9qq;\\u6ab5im;\\u62e8i\\xed\\u0edfme\\u0100;s\\u2f88\\u0eae\\u6032\\u0180Eas\\u2f78\\u2f90\\u2f7a\\xf0\\u2f75\\u0180dfp\\u0eec\\u2f99\\u2faf\\u0180als\\u2fa0\\u2fa5\\u2faalar;\\u632eine;\\u6312urf;\\u6313\\u0100;t\\u0efb\\u2fb4\\xef\\u0efbrel;\\u62b0\\u0100ci\\u2fc0\\u2fc5r;\\uc000\\ud835\\udcc5;\\u43c8ncsp;\\u6008\\u0300fiopsu\\u2fda\\u22e2\\u2fdf\\u2fe5\\u2feb\\u2ff1r;\\uc000\\ud835\\udd2epf;\\uc000\\ud835\\udd62rime;\\u6057cr;\\uc000\\ud835\\udcc6\\u0180aeo\\u2ff8\\u3009\\u3013t\\u0100ei\\u2ffe\\u3005rnion\\xf3\\u06b0nt;\\u6a16st\\u0100;e\\u3010\\u3011\\u403f\\xf1\\u1f19\\xf4\\u0f14\\u0a80ABHabcdefhilmnoprstux\\u3040\\u3051\\u3055\\u3059\\u30e0\\u310e\\u312b\\u3147\\u3162\\u3172\\u318e\\u3206\\u3215\\u3224\\u3229\\u3258\\u326e\\u3272\\u3290\\u32b0\\u32b7\\u0180art\\u3047\\u304a\\u304cr\\xf2\\u10b3\\xf2\\u03ddail;\\u691car\\xf2\\u1c65ar;\\u6964\\u0380cdenqrt\\u3068\\u3075\\u3078\\u307f\\u308f\\u3094\\u30cc\\u0100eu\\u306d\\u3071;\\uc000\\u223d\\u0331te;\\u4155i\\xe3\\u116emptyv;\\u69b3g\\u0200;del\\u0fd1\\u3089\\u308b\\u308d;\\u6992;\\u69a5\\xe5\\u0fd1uo\\u803b\\xbb\\u40bbr\\u0580;abcfhlpstw\\u0fdc\\u30ac\\u30af\\u30b7\\u30b9\\u30bc\\u30be\\u30c0\\u30c3\\u30c7\\u30cap;\\u6975\\u0100;f\\u0fe0\\u30b4s;\\u6920;\\u6933s;\\u691e\\xeb\\u225d\\xf0\\u272el;\\u6945im;\\u6974l;\\u61a3;\\u619d\\u0100ai\\u30d1\\u30d5il;\\u691ao\\u0100;n\\u30db\\u30dc\\u6236al\\xf3\\u0f1e\\u0180abr\\u30e7\\u30ea\\u30eer\\xf2\\u17e5rk;\\u6773\\u0100ak\\u30f3\\u30fdc\\u0100ek\\u30f9\\u30fb;\\u407d;\\u405d\\u0100es\\u3102\\u3104;\\u698cl\\u0100du\\u310a\\u310c;\\u698e;\\u6990\\u0200aeuy\\u3117\\u311c\\u3127\\u3129ron;\\u4159\\u0100di\\u3121\\u3125il;\\u4157\\xec\\u0ff2\\xe2\\u30fa;\\u4440\\u0200clqs\\u3134\\u3137\\u313d\\u3144a;\\u6937dhar;\\u6969uo\\u0100;r\\u020e\\u020dh;\\u61b3\\u0180acg\\u314e\\u315f\\u0f44l\\u0200;ips\\u0f78\\u3158\\u315b\\u109cn\\xe5\\u10bbar\\xf4\\u0fa9t;\\u65ad\\u0180ilr\\u3169\\u1023\\u316esht;\\u697d;\\uc000\\ud835\\udd2f\\u0100ao\\u3177\\u3186r\\u0100du\\u317d\\u317f\\xbb\\u047b\\u0100;l\\u1091\\u3184;\\u696c\\u0100;v\\u318b\\u318c\\u43c1;\\u43f1\\u0180gns\\u3195\\u31f9\\u31fcht\\u0300ahlrst\\u31a4\\u31b0\\u31c2\\u31d8\\u31e4\\u31eerrow\\u0100;t\\u0fdc\\u31ada\\xe9\\u30c8arpoon\\u0100du\\u31bb\\u31bfow\\xee\\u317ep\\xbb\\u1092eft\\u0100ah\\u31ca\\u31d0rrow\\xf3\\u0feaarpoon\\xf3\\u0551ightarrows;\\u61c9quigarro\\xf7\\u30cbhreetimes;\\u62ccg;\\u42daingdotse\\xf1\\u1f32\\u0180ahm\\u320d\\u3210\\u3213r\\xf2\\u0feaa\\xf2\\u0551;\\u600foust\\u0100;a\\u321e\\u321f\\u63b1che\\xbb\\u321fmid;\\u6aee\\u0200abpt\\u3232\\u323d\\u3240\\u3252\\u0100nr\\u3237\\u323ag;\\u67edr;\\u61fer\\xeb\\u1003\\u0180afl\\u3247\\u324a\\u324er;\\u6986;\\uc000\\ud835\\udd63us;\\u6a2eimes;\\u6a35\\u0100ap\\u325d\\u3267r\\u0100;g\\u3263\\u3264\\u4029t;\\u6994olint;\\u6a12ar\\xf2\\u31e3\\u0200achq\\u327b\\u3280\\u10bc\\u3285quo;\\u603ar;\\uc000\\ud835\\udcc7\\u0100bu\\u30fb\\u328ao\\u0100;r\\u0214\\u0213\\u0180hir\\u3297\\u329b\\u32a0re\\xe5\\u31f8mes;\\u62cai\\u0200;efl\\u32aa\\u1059\\u1821\\u32ab\\u65b9tri;\\u69celuhar;\\u6968;\\u611e\\u0d61\\u32d5\\u32db\\u32df\\u332c\\u3338\\u3371\\0\\u337a\\u33a4\\0\\0\\u33ec\\u33f0\\0\\u3428\\u3448\\u345a\\u34ad\\u34b1\\u34ca\\u34f1\\0\\u3616\\0\\0\\u3633cute;\\u415bqu\\xef\\u27ba\\u0500;Eaceinpsy\\u11ed\\u32f3\\u32f5\\u32ff\\u3302\\u330b\\u330f\\u331f\\u3326\\u3329;\\u6ab4\\u01f0\\u32fa\\0\\u32fc;\\u6ab8on;\\u4161u\\xe5\\u11fe\\u0100;d\\u11f3\\u3307il;\\u415frc;\\u415d\\u0180Eas\\u3316\\u3318\\u331b;\\u6ab6p;\\u6abaim;\\u62e9olint;\\u6a13i\\xed\\u1204;\\u4441ot\\u0180;be\\u3334\\u1d47\\u3335\\u62c5;\\u6a66\\u0380Aacmstx\\u3346\\u334a\\u3357\\u335b\\u335e\\u3363\\u336drr;\\u61d8r\\u0100hr\\u3350\\u3352\\xeb\\u2228\\u0100;o\\u0a36\\u0a34t\\u803b\\xa7\\u40a7i;\\u403bwar;\\u6929m\\u0100in\\u3369\\xf0nu\\xf3\\xf1t;\\u6736r\\u0100;o\\u3376\\u2055\\uc000\\ud835\\udd30\\u0200acoy\\u3382\\u3386\\u3391\\u33a0rp;\\u666f\\u0100hy\\u338b\\u338fcy;\\u4449;\\u4448rt\\u026d\\u3399\\0\\0\\u339ci\\xe4\\u1464ara\\xec\\u2e6f\\u803b\\xad\\u40ad\\u0100gm\\u33a8\\u33b4ma\\u0180;fv\\u33b1\\u33b2\\u33b2\\u43c3;\\u43c2\\u0400;deglnpr\\u12ab\\u33c5\\u33c9\\u33ce\\u33d6\\u33de\\u33e1\\u33e6ot;\\u6a6a\\u0100;q\\u12b1\\u12b0\\u0100;E\\u33d3\\u33d4\\u6a9e;\\u6aa0\\u0100;E\\u33db\\u33dc\\u6a9d;\\u6a9fe;\\u6246lus;\\u6a24arr;\\u6972ar\\xf2\\u113d\\u0200aeit\\u33f8\\u3408\\u340f\\u3417\\u0100ls\\u33fd\\u3404lsetm\\xe9\\u336ahp;\\u6a33parsl;\\u69e4\\u0100dl\\u1463\\u3414e;\\u6323\\u0100;e\\u341c\\u341d\\u6aaa\\u0100;s\\u3422\\u3423\\u6aac;\\uc000\\u2aac\\ufe00\\u0180flp\\u342e\\u3433\\u3442tcy;\\u444c\\u0100;b\\u3438\\u3439\\u402f\\u0100;a\\u343e\\u343f\\u69c4r;\\u633ff;\\uc000\\ud835\\udd64a\\u0100dr\\u344d\\u0402es\\u0100;u\\u3454\\u3455\\u6660it\\xbb\\u3455\\u0180csu\\u3460\\u3479\\u349f\\u0100au\\u3465\\u346fp\\u0100;s\\u1188\\u346b;\\uc000\\u2293\\ufe00p\\u0100;s\\u11b4\\u3475;\\uc000\\u2294\\ufe00u\\u0100bp\\u347f\\u348f\\u0180;es\\u1197\\u119c\\u3486et\\u0100;e\\u1197\\u348d\\xf1\\u119d\\u0180;es\\u11a8\\u11ad\\u3496et\\u0100;e\\u11a8\\u349d\\xf1\\u11ae\\u0180;af\\u117b\\u34a6\\u05b0r\\u0165\\u34ab\\u05b1\\xbb\\u117car\\xf2\\u1148\\u0200cemt\\u34b9\\u34be\\u34c2\\u34c5r;\\uc000\\ud835\\udcc8tm\\xee\\xf1i\\xec\\u3415ar\\xe6\\u11be\\u0100ar\\u34ce\\u34d5r\\u0100;f\\u34d4\\u17bf\\u6606\\u0100an\\u34da\\u34edight\\u0100ep\\u34e3\\u34eapsilo\\xee\\u1ee0h\\xe9\\u2eafs\\xbb\\u2852\\u0280bcmnp\\u34fb\\u355e\\u1209\\u358b\\u358e\\u0480;Edemnprs\\u350e\\u350f\\u3511\\u3515\\u351e\\u3523\\u352c\\u3531\\u3536\\u6282;\\u6ac5ot;\\u6abd\\u0100;d\\u11da\\u351aot;\\u6ac3ult;\\u6ac1\\u0100Ee\\u3528\\u352a;\\u6acb;\\u628alus;\\u6abfarr;\\u6979\\u0180eiu\\u353d\\u3552\\u3555t\\u0180;en\\u350e\\u3545\\u354bq\\u0100;q\\u11da\\u350feq\\u0100;q\\u352b\\u3528m;\\u6ac7\\u0100bp\\u355a\\u355c;\\u6ad5;\\u6ad3c\\u0300;acens\\u11ed\\u356c\\u3572\\u3579\\u357b\\u3326ppro\\xf8\\u32faurlye\\xf1\\u11fe\\xf1\\u11f3\\u0180aes\\u3582\\u3588\\u331bppro\\xf8\\u331aq\\xf1\\u3317g;\\u666a\\u0680123;Edehlmnps\\u35a9\\u35ac\\u35af\\u121c\\u35b2\\u35b4\\u35c0\\u35c9\\u35d5\\u35da\\u35df\\u35e8\\u35ed\\u803b\\xb9\\u40b9\\u803b\\xb2\\u40b2\\u803b\\xb3\\u40b3;\\u6ac6\\u0100os\\u35b9\\u35bct;\\u6abeub;\\u6ad8\\u0100;d\\u1222\\u35c5ot;\\u6ac4s\\u0100ou\\u35cf\\u35d2l;\\u67c9b;\\u6ad7arr;\\u697bult;\\u6ac2\\u0100Ee\\u35e4\\u35e6;\\u6acc;\\u628blus;\\u6ac0\\u0180eiu\\u35f4\\u3609\\u360ct\\u0180;en\\u121c\\u35fc\\u3602q\\u0100;q\\u1222\\u35b2eq\\u0100;q\\u35e7\\u35e4m;\\u6ac8\\u0100bp\\u3611\\u3613;\\u6ad4;\\u6ad6\\u0180Aan\\u361c\\u3620\\u362drr;\\u61d9r\\u0100hr\\u3626\\u3628\\xeb\\u222e\\u0100;o\\u0a2b\\u0a29war;\\u692alig\\u803b\\xdf\\u40df\\u0be1\\u3651\\u365d\\u3660\\u12ce\\u3673\\u3679\\0\\u367e\\u36c2\\0\\0\\0\\0\\0\\u36db\\u3703\\0\\u3709\\u376c\\0\\0\\0\\u3787\\u0272\\u3656\\0\\0\\u365bget;\\u6316;\\u43c4r\\xeb\\u0e5f\\u0180aey\\u3666\\u366b\\u3670ron;\\u4165dil;\\u4163;\\u4442lrec;\\u6315r;\\uc000\\ud835\\udd31\\u0200eiko\\u3686\\u369d\\u36b5\\u36bc\\u01f2\\u368b\\0\\u3691e\\u01004f\\u1284\\u1281a\\u0180;sv\\u3698\\u3699\\u369b\\u43b8ym;\\u43d1\\u0100cn\\u36a2\\u36b2k\\u0100as\\u36a8\\u36aeppro\\xf8\\u12c1im\\xbb\\u12acs\\xf0\\u129e\\u0100as\\u36ba\\u36ae\\xf0\\u12c1rn\\u803b\\xfe\\u40fe\\u01ec\\u031f\\u36c6\\u22e7es\\u8180\\xd7;bd\\u36cf\\u36d0\\u36d8\\u40d7\\u0100;a\\u190f\\u36d5r;\\u6a31;\\u6a30\\u0180eps\\u36e1\\u36e3\\u3700\\xe1\\u2a4d\\u0200;bcf\\u0486\\u36ec\\u36f0\\u36f4ot;\\u6336ir;\\u6af1\\u0100;o\\u36f9\\u36fc\\uc000\\ud835\\udd65rk;\\u6ada\\xe1\\u3362rime;\\u6034\\u0180aip\\u370f\\u3712\\u3764d\\xe5\\u1248\\u0380adempst\\u3721\\u374d\\u3740\\u3751\\u3757\\u375c\\u375fngle\\u0280;dlqr\\u3730\\u3731\\u3736\\u3740\\u3742\\u65b5own\\xbb\\u1dbbeft\\u0100;e\\u2800\\u373e\\xf1\\u092e;\\u625cight\\u0100;e\\u32aa\\u374b\\xf1\\u105aot;\\u65ecinus;\\u6a3alus;\\u6a39b;\\u69cdime;\\u6a3bezium;\\u63e2\\u0180cht\\u3772\\u377d\\u3781\\u0100ry\\u3777\\u377b;\\uc000\\ud835\\udcc9;\\u4446cy;\\u445brok;\\u4167\\u0100io\\u378b\\u378ex\\xf4\\u1777head\\u0100lr\\u3797\\u37a0eftarro\\xf7\\u084fightarrow\\xbb\\u0f5d\\u0900AHabcdfghlmoprstuw\\u37d0\\u37d3\\u37d7\\u37e4\\u37f0\\u37fc\\u380e\\u381c\\u3823\\u3834\\u3851\\u385d\\u386b\\u38a9\\u38cc\\u38d2\\u38ea\\u38f6r\\xf2\\u03edar;\\u6963\\u0100cr\\u37dc\\u37e2ute\\u803b\\xfa\\u40fa\\xf2\\u1150r\\u01e3\\u37ea\\0\\u37edy;\\u445eve;\\u416d\\u0100iy\\u37f5\\u37farc\\u803b\\xfb\\u40fb;\\u4443\\u0180abh\\u3803\\u3806\\u380br\\xf2\\u13adlac;\\u4171a\\xf2\\u13c3\\u0100ir\\u3813\\u3818sht;\\u697e;\\uc000\\ud835\\udd32rave\\u803b\\xf9\\u40f9\\u0161\\u3827\\u3831r\\u0100lr\\u382c\\u382e\\xbb\\u0957\\xbb\\u1083lk;\\u6580\\u0100ct\\u3839\\u384d\\u026f\\u383f\\0\\0\\u384arn\\u0100;e\\u3845\\u3846\\u631cr\\xbb\\u3846op;\\u630fri;\\u65f8\\u0100al\\u3856\\u385acr;\\u416b\\u80bb\\xa8\\u0349\\u0100gp\\u3862\\u3866on;\\u4173f;\\uc000\\ud835\\udd66\\u0300adhlsu\\u114b\\u3878\\u387d\\u1372\\u3891\\u38a0own\\xe1\\u13b3arpoon\\u0100lr\\u3888\\u388cef\\xf4\\u382digh\\xf4\\u382fi\\u0180;hl\\u3899\\u389a\\u389c\\u43c5\\xbb\\u13faon\\xbb\\u389aparrows;\\u61c8\\u0180cit\\u38b0\\u38c4\\u38c8\\u026f\\u38b6\\0\\0\\u38c1rn\\u0100;e\\u38bc\\u38bd\\u631dr\\xbb\\u38bdop;\\u630eng;\\u416fri;\\u65f9cr;\\uc000\\ud835\\udcca\\u0180dir\\u38d9\\u38dd\\u38e2ot;\\u62f0lde;\\u4169i\\u0100;f\\u3730\\u38e8\\xbb\\u1813\\u0100am\\u38ef\\u38f2r\\xf2\\u38a8l\\u803b\\xfc\\u40fcangle;\\u69a7\\u0780ABDacdeflnoprsz\\u391c\\u391f\\u3929\\u392d\\u39b5\\u39b8\\u39bd\\u39df\\u39e4\\u39e8\\u39f3\\u39f9\\u39fd\\u3a01\\u3a20r\\xf2\\u03f7ar\\u0100;v\\u3926\\u3927\\u6ae8;\\u6ae9as\\xe8\\u03e1\\u0100nr\\u3932\\u3937grt;\\u699c\\u0380eknprst\\u34e3\\u3946\\u394b\\u3952\\u395d\\u3964\\u3996app\\xe1\\u2415othin\\xe7\\u1e96\\u0180hir\\u34eb\\u2ec8\\u3959op\\xf4\\u2fb5\\u0100;h\\u13b7\\u3962\\xef\\u318d\\u0100iu\\u3969\\u396dgm\\xe1\\u33b3\\u0100bp\\u3972\\u3984setneq\\u0100;q\\u397d\\u3980\\uc000\\u228a\\ufe00;\\uc000\\u2acb\\ufe00setneq\\u0100;q\\u398f\\u3992\\uc000\\u228b\\ufe00;\\uc000\\u2acc\\ufe00\\u0100hr\\u399b\\u399fet\\xe1\\u369ciangle\\u0100lr\\u39aa\\u39afeft\\xbb\\u0925ight\\xbb\\u1051y;\\u4432ash\\xbb\\u1036\\u0180elr\\u39c4\\u39d2\\u39d7\\u0180;be\\u2dea\\u39cb\\u39cfar;\\u62bbq;\\u625alip;\\u62ee\\u0100bt\\u39dc\\u1468a\\xf2\\u1469r;\\uc000\\ud835\\udd33tr\\xe9\\u39aesu\\u0100bp\\u39ef\\u39f1\\xbb\\u0d1c\\xbb\\u0d59pf;\\uc000\\ud835\\udd67ro\\xf0\\u0efbtr\\xe9\\u39b4\\u0100cu\\u3a06\\u3a0br;\\uc000\\ud835\\udccb\\u0100bp\\u3a10\\u3a18n\\u0100Ee\\u3980\\u3a16\\xbb\\u397en\\u0100Ee\\u3992\\u3a1e\\xbb\\u3990igzag;\\u699a\\u0380cefoprs\\u3a36\\u3a3b\\u3a56\\u3a5b\\u3a54\\u3a61\\u3a6airc;\\u4175\\u0100di\\u3a40\\u3a51\\u0100bg\\u3a45\\u3a49ar;\\u6a5fe\\u0100;q\\u15fa\\u3a4f;\\u6259erp;\\u6118r;\\uc000\\ud835\\udd34pf;\\uc000\\ud835\\udd68\\u0100;e\\u1479\\u3a66at\\xe8\\u1479cr;\\uc000\\ud835\\udccc\\u0ae3\\u178e\\u3a87\\0\\u3a8b\\0\\u3a90\\u3a9b\\0\\0\\u3a9d\\u3aa8\\u3aab\\u3aaf\\0\\0\\u3ac3\\u3ace\\0\\u3ad8\\u17dc\\u17dftr\\xe9\\u17d1r;\\uc000\\ud835\\udd35\\u0100Aa\\u3a94\\u3a97r\\xf2\\u03c3r\\xf2\\u09f6;\\u43be\\u0100Aa\\u3aa1\\u3aa4r\\xf2\\u03b8r\\xf2\\u09eba\\xf0\\u2713is;\\u62fb\\u0180dpt\\u17a4\\u3ab5\\u3abe\\u0100fl\\u3aba\\u17a9;\\uc000\\ud835\\udd69im\\xe5\\u17b2\\u0100Aa\\u3ac7\\u3acar\\xf2\\u03cer\\xf2\\u0a01\\u0100cq\\u3ad2\\u17b8r;\\uc000\\ud835\\udccd\\u0100pt\\u17d6\\u3adcr\\xe9\\u17d4\\u0400acefiosu\\u3af0\\u3afd\\u3b08\\u3b0c\\u3b11\\u3b15\\u3b1b\\u3b21c\\u0100uy\\u3af6\\u3afbte\\u803b\\xfd\\u40fd;\\u444f\\u0100iy\\u3b02\\u3b06rc;\\u4177;\\u444bn\\u803b\\xa5\\u40a5r;\\uc000\\ud835\\udd36cy;\\u4457pf;\\uc000\\ud835\\udd6acr;\\uc000\\ud835\\udcce\\u0100cm\\u3b26\\u3b29y;\\u444el\\u803b\\xff\\u40ff\\u0500acdefhiosw\\u3b42\\u3b48\\u3b54\\u3b58\\u3b64\\u3b69\\u3b6d\\u3b74\\u3b7a\\u3b80cute;\\u417a\\u0100ay\\u3b4d\\u3b52ron;\\u417e;\\u4437ot;\\u417c\\u0100et\\u3b5d\\u3b61tr\\xe6\\u155fa;\\u43b6r;\\uc000\\ud835\\udd37cy;\\u4436grarr;\\u61ddpf;\\uc000\\ud835\\udd6bcr;\\uc000\\ud835\\udccf\\u0100jn\\u3b85\\u3b87;\\u600dj;\\u600c\"\n .split(\"\")\n .map(function (c) { return c.charCodeAt(0); }));\n//# sourceMappingURL=decode-data-html.js.map","\"use strict\";\n// Generated using scripts/write-decode-map.ts\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = new Uint16Array(\n// prettier-ignore\n\"\\u0200aglq\\t\\x15\\x18\\x1b\\u026d\\x0f\\0\\0\\x12p;\\u4026os;\\u4027t;\\u403et;\\u403cuot;\\u4022\"\n .split(\"\")\n .map(function (c) { return c.charCodeAt(0); }));\n//# sourceMappingURL=decode-data-xml.js.map","\"use strict\";\n// Adapted from https://github.com/mathiasbynens/he/blob/36afe179392226cf1b6ccdb16ebbb7a5a844d93a/src/he.js#L106-L134\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.replaceCodePoint = exports.fromCodePoint = void 0;\nvar 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 */\nexports.fromCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, node/no-unsupported-features/es-builtins\n(_a = String.fromCodePoint) !== null && _a !== void 0 ? _a : function (codePoint) {\n var output = \"\";\n if (codePoint > 0xffff) {\n codePoint -= 0x10000;\n output += String.fromCharCode(((codePoint >>> 10) & 0x3ff) | 0xd800);\n codePoint = 0xdc00 | (codePoint & 0x3ff);\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 */\nfunction replaceCodePoint(codePoint) {\n var _a;\n if ((codePoint >= 0xd800 && codePoint <= 0xdfff) || codePoint > 0x10ffff) {\n return 0xfffd;\n }\n return (_a = decodeMap.get(codePoint)) !== null && _a !== void 0 ? _a : codePoint;\n}\nexports.replaceCodePoint = replaceCodePoint;\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 */\nfunction decodeCodePoint(codePoint) {\n return (0, exports.fromCodePoint)(replaceCodePoint(codePoint));\n}\nexports.default = decodeCodePoint;\n//# sourceMappingURL=decode_codepoint.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decodeXML = exports.decodeHTMLStrict = exports.decodeHTMLAttribute = exports.decodeHTML = exports.determineBranch = exports.EntityDecoder = exports.DecodingMode = exports.BinTrieFlags = exports.fromCodePoint = exports.replaceCodePoint = exports.decodeCodePoint = exports.xmlDecodeTree = exports.htmlDecodeTree = void 0;\nvar decode_data_html_js_1 = __importDefault(require(\"./generated/decode-data-html.js\"));\nexports.htmlDecodeTree = decode_data_html_js_1.default;\nvar decode_data_xml_js_1 = __importDefault(require(\"./generated/decode-data-xml.js\"));\nexports.xmlDecodeTree = decode_data_xml_js_1.default;\nvar decode_codepoint_js_1 = __importStar(require(\"./decode_codepoint.js\"));\nexports.decodeCodePoint = decode_codepoint_js_1.default;\nvar decode_codepoint_js_2 = require(\"./decode_codepoint.js\");\nObject.defineProperty(exports, \"replaceCodePoint\", { enumerable: true, get: function () { return decode_codepoint_js_2.replaceCodePoint; } });\nObject.defineProperty(exports, \"fromCodePoint\", { enumerable: true, get: function () { return decode_codepoint_js_2.fromCodePoint; } });\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 */\nvar TO_LOWER_BIT = 32;\nvar BinTrieFlags;\n(function (BinTrieFlags) {\n BinTrieFlags[BinTrieFlags[\"VALUE_LENGTH\"] = 49152] = \"VALUE_LENGTH\";\n BinTrieFlags[BinTrieFlags[\"BRANCH_LENGTH\"] = 16256] = \"BRANCH_LENGTH\";\n BinTrieFlags[BinTrieFlags[\"JUMP_TABLE\"] = 127] = \"JUMP_TABLE\";\n})(BinTrieFlags = exports.BinTrieFlags || (exports.BinTrieFlags = {}));\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 = {}));\nvar 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 = exports.DecodingMode || (exports.DecodingMode = {}));\n/**\n * Token decoder with support of writing partial entities.\n */\nvar EntityDecoder = /** @class */ (function () {\n function EntityDecoder(\n /** The tree used to decode entities. */\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 }\n /** Resets the instance to make it reusable. */\n EntityDecoder.prototype.startEntity = function (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 };\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 string 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 EntityDecoder.prototype.write = function (str, offset) {\n switch (this.state) {\n case EntityDecoderState.EntityStart: {\n if (str.charCodeAt(offset) === CharCodes.NUM) {\n this.state = EntityDecoderState.NumericStart;\n this.consumed += 1;\n return this.stateNumericStart(str, offset + 1);\n }\n this.state = EntityDecoderState.NamedEntity;\n return this.stateNamedEntity(str, offset);\n }\n case EntityDecoderState.NumericStart: {\n return this.stateNumericStart(str, offset);\n }\n case EntityDecoderState.NumericDecimal: {\n return this.stateNumericDecimal(str, offset);\n }\n case EntityDecoderState.NumericHex: {\n return this.stateNumericHex(str, offset);\n }\n case EntityDecoderState.NamedEntity: {\n return this.stateNamedEntity(str, 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 str 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 EntityDecoder.prototype.stateNumericStart = function (str, offset) {\n if (offset >= str.length) {\n return -1;\n }\n if ((str.charCodeAt(offset) | TO_LOWER_BIT) === CharCodes.LOWER_X) {\n this.state = EntityDecoderState.NumericHex;\n this.consumed += 1;\n return this.stateNumericHex(str, offset + 1);\n }\n this.state = EntityDecoderState.NumericDecimal;\n return this.stateNumericDecimal(str, offset);\n };\n EntityDecoder.prototype.addToNumericResult = function (str, start, end, base) {\n if (start !== end) {\n var digitCount = end - start;\n this.result =\n this.result * Math.pow(base, digitCount) +\n parseInt(str.substr(start, digitCount), base);\n this.consumed += digitCount;\n }\n };\n /**\n * Parses a hexadecimal numeric entity.\n *\n * Equivalent to the `Hexademical character reference state` in the HTML spec.\n *\n * @param str 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 EntityDecoder.prototype.stateNumericHex = function (str, offset) {\n var startIdx = offset;\n while (offset < str.length) {\n var char = str.charCodeAt(offset);\n if (isNumber(char) || isHexadecimalCharacter(char)) {\n offset += 1;\n }\n else {\n this.addToNumericResult(str, startIdx, offset, 16);\n return this.emitNumericEntity(char, 3);\n }\n }\n this.addToNumericResult(str, startIdx, offset, 16);\n return -1;\n };\n /**\n * Parses a decimal numeric entity.\n *\n * Equivalent to the `Decimal character reference state` in the HTML spec.\n *\n * @param str 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 EntityDecoder.prototype.stateNumericDecimal = function (str, offset) {\n var startIdx = offset;\n while (offset < str.length) {\n var char = str.charCodeAt(offset);\n if (isNumber(char)) {\n offset += 1;\n }\n else {\n this.addToNumericResult(str, startIdx, offset, 10);\n return this.emitNumericEntity(char, 2);\n }\n }\n this.addToNumericResult(str, startIdx, offset, 10);\n return -1;\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 EntityDecoder.prototype.emitNumericEntity = function (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((0, decode_codepoint_js_1.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 str 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 EntityDecoder.prototype.stateNamedEntity = function (str, offset) {\n var decodeTree = this.decodeTree;\n var current = decodeTree[this.treeIndex];\n // The mask is the number of bytes of the value, including the current byte.\n var valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\n for (; offset < str.length; offset++, this.excess++) {\n var char = str.charCodeAt(offset);\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 this.result = this.treeIndex;\n this.consumed += this.excess;\n this.excess = 0;\n }\n }\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 EntityDecoder.prototype.emitNotTerminatedNamedEntity = function () {\n var _a;\n var _b = this, result = _b.result, decodeTree = _b.decodeTree;\n var 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 EntityDecoder.prototype.emitNamedEntityData = function (result, valueLength, consumed) {\n var decodeTree = this.decodeTree;\n this.emitCodePoint(valueLength === 1\n ? decodeTree[result] & ~BinTrieFlags.VALUE_LENGTH\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 EntityDecoder.prototype.end = function () {\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 return EntityDecoder;\n}());\nexports.EntityDecoder = EntityDecoder;\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 var ret = \"\";\n var decoder = new EntityDecoder(decodeTree, function (str) { return (ret += (0, decode_codepoint_js_1.fromCodePoint)(str)); });\n return function decodeWithTrie(str, decodeMode) {\n var lastIndex = 0;\n var offset = 0;\n while ((offset = str.indexOf(\"&\", offset)) >= 0) {\n ret += str.slice(lastIndex, offset);\n decoder.startEntity(decodeMode);\n var len = decoder.write(str, \n // Skip the \"&\"\n offset + 1);\n if (len < 0) {\n lastIndex = offset + decoder.end();\n break;\n }\n lastIndex = offset + len;\n // If `len` is 0, skip the current `&` and continue.\n offset = len === 0 ? lastIndex + 1 : lastIndex;\n }\n var result = ret + str.slice(lastIndex);\n // Make sure we don't keep a reference to the final string.\n ret = \"\";\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 */\nfunction determineBranch(decodeTree, current, nodeIdx, char) {\n var branchCount = (current & BinTrieFlags.BRANCH_LENGTH) >> 7;\n var jumpOffset = current & BinTrieFlags.JUMP_TABLE;\n // Case 1: Single branch encoded in jump offset\n if (branchCount === 0) {\n return jumpOffset !== 0 && char === jumpOffset ? nodeIdx : -1;\n }\n // Case 2: Multiple branches encoded in jump table\n if (jumpOffset) {\n var value = char - jumpOffset;\n return value < 0 || value >= branchCount\n ? -1\n : decodeTree[nodeIdx + value] - 1;\n }\n // Case 3: Multiple branches encoded in dictionary\n // Binary search for the character.\n var lo = nodeIdx;\n var hi = lo + branchCount - 1;\n while (lo <= hi) {\n var mid = (lo + hi) >>> 1;\n var midVal = decodeTree[mid];\n if (midVal < char) {\n lo = mid + 1;\n }\n else if (midVal > char) {\n hi = mid - 1;\n }\n else {\n return decodeTree[mid + branchCount];\n }\n }\n return -1;\n}\nexports.determineBranch = determineBranch;\nvar htmlDecoder = getDecoder(decode_data_html_js_1.default);\nvar xmlDecoder = getDecoder(decode_data_xml_js_1.default);\n/**\n * Decodes an HTML string.\n *\n * @param str The string to decode.\n * @param mode The decoding mode.\n * @returns The decoded string.\n */\nfunction decodeHTML(str, mode) {\n if (mode === void 0) { mode = DecodingMode.Legacy; }\n return htmlDecoder(str, mode);\n}\nexports.decodeHTML = decodeHTML;\n/**\n * Decodes an HTML string in an attribute.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nfunction decodeHTMLAttribute(str) {\n return htmlDecoder(str, DecodingMode.Attribute);\n}\nexports.decodeHTMLAttribute = decodeHTMLAttribute;\n/**\n * Decodes an HTML string, requiring all entities to be terminated by a semicolon.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nfunction decodeHTMLStrict(str) {\n return htmlDecoder(str, DecodingMode.Strict);\n}\nexports.decodeHTMLStrict = decodeHTMLStrict;\n/**\n * Decodes an XML string, requiring all entities to be terminated by a semicolon.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nfunction decodeXML(str) {\n return xmlDecoder(str, DecodingMode.Strict);\n}\nexports.decodeXML = decodeXML;\n//# sourceMappingURL=decode.js.map","\"use strict\";\n// Generated using scripts/write-encode-map.ts\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction restoreDiff(arr) {\n for (var i = 1; i < arr.length; i++) {\n arr[i][0] += arr[i - 1][0] + 1;\n }\n return arr;\n}\n// prettier-ignore\nexports.default = new Map(/* #__PURE__ */ restoreDiff([[9, \"	\"], [0, \"
\"], [22, \"!\"], [0, \""\"], [0, \"#\"], [0, \"$\"], [0, \"%\"], [0, \"&\"], [0, \"'\"], [0, \"(\"], [0, \")\"], [0, \"*\"], [0, \"+\"], [0, \",\"], [1, \".\"], [0, \"/\"], [10, \":\"], [0, \";\"], [0, { v: \"<\", n: 8402, o: \"<⃒\" }], [0, { v: \"=\", n: 8421, o: \"=⃥\" }], [0, { v: \">\", n: 8402, o: \">⃒\" }], [0, \"?\"], [0, \"@\"], [26, \"[\"], [0, \"\\"], [0, \"]\"], [0, \"^\"], [0, \"_\"], [0, \"`\"], [5, { n: 106, o: \"fj\" }], [20, \"{\"], [0, \"|\"], [0, \"}\"], [34, \" \"], [0, \"¡\"], [0, \"¢\"], [0, \"£\"], [0, \"¤\"], [0, \"¥\"], [0, \"¦\"], [0, \"§\"], [0, \"¨\"], [0, \"©\"], [0, \"ª\"], [0, \"«\"], [0, \"¬\"], [0, \"­\"], [0, \"®\"], [0, \"¯\"], [0, \"°\"], [0, \"±\"], [0, \"²\"], [0, \"³\"], [0, \"´\"], [0, \"µ\"], [0, \"¶\"], [0, \"·\"], [0, \"¸\"], [0, \"¹\"], [0, \"º\"], [0, \"»\"], [0, \"¼\"], [0, \"½\"], [0, \"¾\"], [0, \"¿\"], [0, \"À\"], [0, \"Á\"], [0, \"Â\"], [0, \"Ã\"], [0, \"Ä\"], [0, \"Å\"], [0, \"Æ\"], [0, \"Ç\"], [0, \"È\"], [0, \"É\"], [0, \"Ê\"], [0, \"Ë\"], [0, \"Ì\"], [0, \"Í\"], [0, \"Î\"], [0, \"Ï\"], [0, \"Ð\"], [0, \"Ñ\"], [0, \"Ò\"], [0, \"Ó\"], [0, \"Ô\"], [0, \"Õ\"], [0, \"Ö\"], [0, \"×\"], [0, \"Ø\"], [0, \"Ù\"], [0, \"Ú\"], [0, \"Û\"], [0, \"Ü\"], [0, \"Ý\"], [0, \"Þ\"], [0, \"ß\"], [0, \"à\"], [0, \"á\"], [0, \"â\"], [0, \"ã\"], [0, \"ä\"], [0, \"å\"], [0, \"æ\"], [0, \"ç\"], [0, \"è\"], [0, \"é\"], [0, \"ê\"], [0, \"ë\"], [0, \"ì\"], [0, \"í\"], [0, \"î\"], [0, \"ï\"], [0, \"ð\"], [0, \"ñ\"], [0, \"ò\"], [0, \"ó\"], [0, \"ô\"], [0, \"õ\"], [0, \"ö\"], [0, \"÷\"], [0, \"ø\"], [0, \"ù\"], [0, \"ú\"], [0, \"û\"], [0, \"ü\"], [0, \"ý\"], [0, \"þ\"], [0, \"ÿ\"], [0, \"Ā\"], [0, \"ā\"], [0, \"Ă\"], [0, \"ă\"], [0, \"Ą\"], [0, \"ą\"], [0, \"Ć\"], [0, \"ć\"], [0, \"Ĉ\"], [0, \"ĉ\"], [0, \"Ċ\"], [0, \"ċ\"], [0, \"Č\"], [0, \"č\"], [0, \"Ď\"], [0, \"ď\"], [0, \"Đ\"], [0, \"đ\"], [0, \"Ē\"], [0, \"ē\"], [2, \"Ė\"], [0, \"ė\"], [0, \"Ę\"], [0, \"ę\"], [0, \"Ě\"], [0, \"ě\"], [0, \"Ĝ\"], [0, \"ĝ\"], [0, \"Ğ\"], [0, \"ğ\"], [0, \"Ġ\"], [0, \"ġ\"], [0, \"Ģ\"], [1, \"Ĥ\"], [0, \"ĥ\"], [0, \"Ħ\"], [0, \"ħ\"], [0, \"Ĩ\"], [0, \"ĩ\"], [0, \"Ī\"], [0, \"ī\"], [2, \"Į\"], [0, \"į\"], [0, \"İ\"], [0, \"ı\"], [0, \"IJ\"], [0, \"ij\"], [0, \"Ĵ\"], [0, \"ĵ\"], [0, \"Ķ\"], [0, \"ķ\"], [0, \"ĸ\"], [0, \"Ĺ\"], [0, \"ĺ\"], [0, \"Ļ\"], [0, \"ļ\"], [0, \"Ľ\"], [0, \"ľ\"], [0, \"Ŀ\"], [0, \"ŀ\"], [0, \"Ł\"], [0, \"ł\"], [0, \"Ń\"], [0, \"ń\"], [0, \"Ņ\"], [0, \"ņ\"], [0, \"Ň\"], [0, \"ň\"], [0, \"ʼn\"], [0, \"Ŋ\"], [0, \"ŋ\"], [0, \"Ō\"], [0, \"ō\"], [2, \"Ő\"], [0, \"ő\"], [0, \"Œ\"], [0, \"œ\"], [0, \"Ŕ\"], [0, \"ŕ\"], [0, \"Ŗ\"], [0, \"ŗ\"], [0, \"Ř\"], [0, \"ř\"], [0, \"Ś\"], [0, \"ś\"], [0, \"Ŝ\"], [0, \"ŝ\"], [0, \"Ş\"], [0, \"ş\"], [0, \"Š\"], [0, \"š\"], [0, \"Ţ\"], [0, \"ţ\"], [0, \"Ť\"], [0, \"ť\"], [0, \"Ŧ\"], [0, \"ŧ\"], [0, \"Ũ\"], [0, \"ũ\"], [0, \"Ū\"], [0, \"ū\"], [0, \"Ŭ\"], [0, \"ŭ\"], [0, \"Ů\"], [0, \"ů\"], [0, \"Ű\"], [0, \"ű\"], [0, \"Ų\"], [0, \"ų\"], [0, \"Ŵ\"], [0, \"ŵ\"], [0, \"Ŷ\"], [0, \"ŷ\"], [0, \"Ÿ\"], [0, \"Ź\"], [0, \"ź\"], [0, \"Ż\"], [0, \"ż\"], [0, \"Ž\"], [0, \"ž\"], [19, \"ƒ\"], [34, \"Ƶ\"], [63, \"ǵ\"], [65, \"ȷ\"], [142, \"ˆ\"], [0, \"ˇ\"], [16, \"˘\"], [0, \"˙\"], [0, \"˚\"], [0, \"˛\"], [0, \"˜\"], [0, \"˝\"], [51, \"̑\"], [127, \"Α\"], [0, \"Β\"], [0, \"Γ\"], [0, \"Δ\"], [0, \"Ε\"], [0, \"Ζ\"], [0, \"Η\"], [0, \"Θ\"], [0, \"Ι\"], [0, \"Κ\"], [0, \"Λ\"], [0, \"Μ\"], [0, \"Ν\"], [0, \"Ξ\"], [0, \"Ο\"], [0, \"Π\"], [0, \"Ρ\"], [1, \"Σ\"], [0, \"Τ\"], [0, \"Υ\"], [0, \"Φ\"], [0, \"Χ\"], [0, \"Ψ\"], [0, \"Ω\"], [7, \"α\"], [0, \"β\"], [0, \"γ\"], [0, \"δ\"], [0, \"ε\"], [0, \"ζ\"], [0, \"η\"], [0, \"θ\"], [0, \"ι\"], [0, \"κ\"], [0, \"λ\"], [0, \"μ\"], [0, \"ν\"], [0, \"ξ\"], [0, \"ο\"], [0, \"π\"], [0, \"ρ\"], [0, \"ς\"], [0, \"σ\"], [0, \"τ\"], [0, \"υ\"], [0, \"φ\"], [0, \"χ\"], [0, \"ψ\"], [0, \"ω\"], [7, \"ϑ\"], [0, \"ϒ\"], [2, \"ϕ\"], [0, \"ϖ\"], [5, \"Ϝ\"], [0, \"ϝ\"], [18, \"ϰ\"], [0, \"ϱ\"], [3, \"ϵ\"], [0, \"϶\"], [10, \"Ё\"], [0, \"Ђ\"], [0, \"Ѓ\"], [0, \"Є\"], [0, \"Ѕ\"], [0, \"І\"], [0, \"Ї\"], [0, \"Ј\"], [0, \"Љ\"], [0, \"Њ\"], [0, \"Ћ\"], [0, \"Ќ\"], [1, \"Ў\"], [0, \"Џ\"], [0, \"А\"], [0, \"Б\"], [0, \"В\"], [0, \"Г\"], [0, \"Д\"], [0, \"Е\"], [0, \"Ж\"], [0, \"З\"], [0, \"И\"], [0, \"Й\"], [0, \"К\"], [0, \"Л\"], [0, \"М\"], [0, \"Н\"], [0, \"О\"], [0, \"П\"], [0, \"Р\"], [0, \"С\"], [0, \"Т\"], [0, \"У\"], [0, \"Ф\"], [0, \"Х\"], [0, \"Ц\"], [0, \"Ч\"], [0, \"Ш\"], [0, \"Щ\"], [0, \"Ъ\"], [0, \"Ы\"], [0, \"Ь\"], [0, \"Э\"], [0, \"Ю\"], [0, \"Я\"], [0, \"а\"], [0, \"б\"], [0, \"в\"], [0, \"г\"], [0, \"д\"], [0, \"е\"], [0, \"ж\"], [0, \"з\"], [0, \"и\"], [0, \"й\"], [0, \"к\"], [0, \"л\"], [0, \"м\"], [0, \"н\"], [0, \"о\"], [0, \"п\"], [0, \"р\"], [0, \"с\"], [0, \"т\"], [0, \"у\"], [0, \"ф\"], [0, \"х\"], [0, \"ц\"], [0, \"ч\"], [0, \"ш\"], [0, \"щ\"], [0, \"ъ\"], [0, \"ы\"], [0, \"ь\"], [0, \"э\"], [0, \"ю\"], [0, \"я\"], [1, \"ё\"], [0, \"ђ\"], [0, \"ѓ\"], [0, \"є\"], [0, \"ѕ\"], [0, \"і\"], [0, \"ї\"], [0, \"ј\"], [0, \"љ\"], [0, \"њ\"], [0, \"ћ\"], [0, \"ќ\"], [1, \"ў\"], [0, \"џ\"], [7074, \" \"], [0, \" \"], [0, \" \"], [0, \" \"], [1, \" \"], [0, \" \"], [0, \" \"], [0, \" \"], [0, \"​\"], [0, \"‌\"], [0, \"‍\"], [0, \"‎\"], [0, \"‏\"], [0, \"‐\"], [2, \"–\"], [0, \"—\"], [0, \"―\"], [0, \"‖\"], [1, \"‘\"], [0, \"’\"], [0, \"‚\"], [1, \"“\"], [0, \"”\"], [0, \"„\"], [1, \"†\"], [0, \"‡\"], [0, \"•\"], [2, \"‥\"], [0, \"…\"], [9, \"‰\"], [0, \"‱\"], [0, \"′\"], [0, \"″\"], [0, \"‴\"], [0, \"‵\"], [3, \"‹\"], [0, \"›\"], [3, \"‾\"], [2, \"⁁\"], [1, \"⁃\"], [0, \"⁄\"], [10, \"⁏\"], [7, \"⁗\"], [7, { v: \" \", n: 8202, o: \"  \" }], [0, \"⁠\"], [0, \"⁡\"], [0, \"⁢\"], [0, \"⁣\"], [72, \"€\"], [46, \"⃛\"], [0, \"⃜\"], [37, \"ℂ\"], [2, \"℅\"], [4, \"ℊ\"], [0, \"ℋ\"], [0, \"ℌ\"], [0, \"ℍ\"], [0, \"ℎ\"], [0, \"ℏ\"], [0, \"ℐ\"], [0, \"ℑ\"], [0, \"ℒ\"], [0, \"ℓ\"], [1, \"ℕ\"], [0, \"№\"], [0, \"℗\"], [0, \"℘\"], [0, \"ℙ\"], [0, \"ℚ\"], [0, \"ℛ\"], [0, \"ℜ\"], [0, \"ℝ\"], [0, \"℞\"], [3, \"™\"], [1, \"ℤ\"], [2, \"℧\"], [0, \"ℨ\"], [0, \"℩\"], [2, \"ℬ\"], [0, \"ℭ\"], [1, \"ℯ\"], [0, \"ℰ\"], [0, \"ℱ\"], [1, \"ℳ\"], [0, \"ℴ\"], [0, \"ℵ\"], [0, \"ℶ\"], [0, \"ℷ\"], [0, \"ℸ\"], [12, \"ⅅ\"], [0, \"ⅆ\"], [0, \"ⅇ\"], [0, \"ⅈ\"], [10, \"⅓\"], [0, \"⅔\"], [0, \"⅕\"], [0, \"⅖\"], [0, \"⅗\"], [0, \"⅘\"], [0, \"⅙\"], [0, \"⅚\"], [0, \"⅛\"], [0, \"⅜\"], [0, \"⅝\"], [0, \"⅞\"], [49, \"←\"], [0, \"↑\"], [0, \"→\"], [0, \"↓\"], [0, \"↔\"], [0, \"↕\"], [0, \"↖\"], [0, \"↗\"], [0, \"↘\"], [0, \"↙\"], [0, \"↚\"], [0, \"↛\"], [1, { v: \"↝\", n: 824, o: \"↝̸\" }], [0, \"↞\"], [0, \"↟\"], [0, \"↠\"], [0, \"↡\"], [0, \"↢\"], [0, \"↣\"], [0, \"↤\"], [0, \"↥\"], [0, \"↦\"], [0, \"↧\"], [1, \"↩\"], [0, \"↪\"], [0, \"↫\"], [0, \"↬\"], [0, \"↭\"], [0, \"↮\"], [1, \"↰\"], [0, \"↱\"], [0, \"↲\"], [0, \"↳\"], [1, \"↵\"], [0, \"↶\"], [0, \"↷\"], [2, \"↺\"], [0, \"↻\"], [0, \"↼\"], [0, \"↽\"], [0, \"↾\"], [0, \"↿\"], [0, \"⇀\"], [0, \"⇁\"], [0, \"⇂\"], [0, \"⇃\"], [0, \"⇄\"], [0, \"⇅\"], [0, \"⇆\"], [0, \"⇇\"], [0, \"⇈\"], [0, \"⇉\"], [0, \"⇊\"], [0, \"⇋\"], [0, \"⇌\"], [0, \"⇍\"], [0, \"⇎\"], [0, \"⇏\"], [0, \"⇐\"], [0, \"⇑\"], [0, \"⇒\"], [0, \"⇓\"], [0, \"⇔\"], [0, \"⇕\"], [0, \"⇖\"], [0, \"⇗\"], [0, \"⇘\"], [0, \"⇙\"], [0, \"⇚\"], [0, \"⇛\"], [1, \"⇝\"], [6, \"⇤\"], [0, \"⇥\"], [15, \"⇵\"], [7, \"⇽\"], [0, \"⇾\"], [0, \"⇿\"], [0, \"∀\"], [0, \"∁\"], [0, { v: \"∂\", n: 824, o: \"∂̸\" }], [0, \"∃\"], [0, \"∄\"], [0, \"∅\"], [1, \"∇\"], [0, \"∈\"], [0, \"∉\"], [1, \"∋\"], [0, \"∌\"], [2, \"∏\"], [0, \"∐\"], [0, \"∑\"], [0, \"−\"], [0, \"∓\"], [0, \"∔\"], [1, \"∖\"], [0, \"∗\"], [0, \"∘\"], [1, \"√\"], [2, \"∝\"], [0, \"∞\"], [0, \"∟\"], [0, { v: \"∠\", n: 8402, o: \"∠⃒\" }], [0, \"∡\"], [0, \"∢\"], [0, \"∣\"], [0, \"∤\"], [0, \"∥\"], [0, \"∦\"], [0, \"∧\"], [0, \"∨\"], [0, { v: \"∩\", n: 65024, o: \"∩︀\" }], [0, { v: \"∪\", n: 65024, o: \"∪︀\" }], [0, \"∫\"], [0, \"∬\"], [0, \"∭\"], [0, \"∮\"], [0, \"∯\"], [0, \"∰\"], [0, \"∱\"], [0, \"∲\"], [0, \"∳\"], [0, \"∴\"], [0, \"∵\"], [0, \"∶\"], [0, \"∷\"], [0, \"∸\"], [1, \"∺\"], [0, \"∻\"], [0, { v: \"∼\", n: 8402, o: \"∼⃒\" }], [0, { v: \"∽\", n: 817, o: \"∽̱\" }], [0, { v: \"∾\", n: 819, o: \"∾̳\" }], [0, \"∿\"], [0, \"≀\"], [0, \"≁\"], [0, { v: \"≂\", n: 824, o: \"≂̸\" }], [0, \"≃\"], [0, \"≄\"], [0, \"≅\"], [0, \"≆\"], [0, \"≇\"], [0, \"≈\"], [0, \"≉\"], [0, \"≊\"], [0, { v: \"≋\", n: 824, o: \"≋̸\" }], [0, \"≌\"], [0, { v: \"≍\", n: 8402, o: \"≍⃒\" }], [0, { v: \"≎\", n: 824, o: \"≎̸\" }], [0, { v: \"≏\", n: 824, o: \"≏̸\" }], [0, { v: \"≐\", n: 824, o: \"≐̸\" }], [0, \"≑\"], [0, \"≒\"], [0, \"≓\"], [0, \"≔\"], [0, \"≕\"], [0, \"≖\"], [0, \"≗\"], [1, \"≙\"], [0, \"≚\"], [1, \"≜\"], [2, \"≟\"], [0, \"≠\"], [0, { v: \"≡\", n: 8421, o: \"≡⃥\" }], [0, \"≢\"], [1, { v: \"≤\", n: 8402, o: \"≤⃒\" }], [0, { v: \"≥\", n: 8402, o: \"≥⃒\" }], [0, { v: \"≦\", n: 824, o: \"≦̸\" }], [0, { v: \"≧\", n: 824, o: \"≧̸\" }], [0, { v: \"≨\", n: 65024, o: \"≨︀\" }], [0, { v: \"≩\", n: 65024, o: \"≩︀\" }], [0, { v: \"≪\", n: new Map(/* #__PURE__ */ restoreDiff([[824, \"≪̸\"], [7577, \"≪⃒\"]])) }], [0, { v: \"≫\", n: new Map(/* #__PURE__ */ restoreDiff([[824, \"≫̸\"], [7577, \"≫⃒\"]])) }], [0, \"≬\"], [0, \"≭\"], [0, \"≮\"], [0, \"≯\"], [0, \"≰\"], [0, \"≱\"], [0, \"≲\"], [0, \"≳\"], [0, \"≴\"], [0, \"≵\"], [0, \"≶\"], [0, \"≷\"], [0, \"≸\"], [0, \"≹\"], [0, \"≺\"], [0, \"≻\"], [0, \"≼\"], [0, \"≽\"], [0, \"≾\"], [0, { v: \"≿\", n: 824, o: \"≿̸\" }], [0, \"⊀\"], [0, \"⊁\"], [0, { v: \"⊂\", n: 8402, o: \"⊂⃒\" }], [0, { v: \"⊃\", n: 8402, o: \"⊃⃒\" }], [0, \"⊄\"], [0, \"⊅\"], [0, \"⊆\"], [0, \"⊇\"], [0, \"⊈\"], [0, \"⊉\"], [0, { v: \"⊊\", n: 65024, o: \"⊊︀\" }], [0, { v: \"⊋\", n: 65024, o: \"⊋︀\" }], [1, \"⊍\"], [0, \"⊎\"], [0, { v: \"⊏\", n: 824, o: \"⊏̸\" }], [0, { v: \"⊐\", n: 824, o: \"⊐̸\" }], [0, \"⊑\"], [0, \"⊒\"], [0, { v: \"⊓\", n: 65024, o: \"⊓︀\" }], [0, { v: \"⊔\", n: 65024, o: \"⊔︀\" }], [0, \"⊕\"], [0, \"⊖\"], [0, \"⊗\"], [0, \"⊘\"], [0, \"⊙\"], [0, \"⊚\"], [0, \"⊛\"], [1, \"⊝\"], [0, \"⊞\"], [0, \"⊟\"], [0, \"⊠\"], [0, \"⊡\"], [0, \"⊢\"], [0, \"⊣\"], [0, \"⊤\"], [0, \"⊥\"], [1, \"⊧\"], [0, \"⊨\"], [0, \"⊩\"], [0, \"⊪\"], [0, \"⊫\"], [0, \"⊬\"], [0, \"⊭\"], [0, \"⊮\"], [0, \"⊯\"], [0, \"⊰\"], [1, \"⊲\"], [0, \"⊳\"], [0, { v: \"⊴\", n: 8402, o: \"⊴⃒\" }], [0, { v: \"⊵\", n: 8402, o: \"⊵⃒\" }], [0, \"⊶\"], [0, \"⊷\"], [0, \"⊸\"], [0, \"⊹\"], [0, \"⊺\"], [0, \"⊻\"], [1, \"⊽\"], [0, \"⊾\"], [0, \"⊿\"], [0, \"⋀\"], [0, \"⋁\"], [0, \"⋂\"], [0, \"⋃\"], [0, \"⋄\"], [0, \"⋅\"], [0, \"⋆\"], [0, \"⋇\"], [0, \"⋈\"], [0, \"⋉\"], [0, \"⋊\"], [0, \"⋋\"], [0, \"⋌\"], [0, \"⋍\"], [0, \"⋎\"], [0, \"⋏\"], [0, \"⋐\"], [0, \"⋑\"], [0, \"⋒\"], [0, \"⋓\"], [0, \"⋔\"], [0, \"⋕\"], [0, \"⋖\"], [0, \"⋗\"], [0, { v: \"⋘\", n: 824, o: \"⋘̸\" }], [0, { v: \"⋙\", n: 824, o: \"⋙̸\" }], [0, { v: \"⋚\", n: 65024, o: \"⋚︀\" }], [0, { v: \"⋛\", n: 65024, o: \"⋛︀\" }], [2, \"⋞\"], [0, \"⋟\"], [0, \"⋠\"], [0, \"⋡\"], [0, \"⋢\"], [0, \"⋣\"], [2, \"⋦\"], [0, \"⋧\"], [0, \"⋨\"], [0, \"⋩\"], [0, \"⋪\"], [0, \"⋫\"], [0, \"⋬\"], [0, \"⋭\"], [0, \"⋮\"], [0, \"⋯\"], [0, \"⋰\"], [0, \"⋱\"], [0, \"⋲\"], [0, \"⋳\"], [0, \"⋴\"], [0, { v: \"⋵\", n: 824, o: \"⋵̸\" }], [0, \"⋶\"], [0, \"⋷\"], [1, { v: \"⋹\", n: 824, o: \"⋹̸\" }], [0, \"⋺\"], [0, \"⋻\"], [0, \"⋼\"], [0, \"⋽\"], [0, \"⋾\"], [6, \"⌅\"], [0, \"⌆\"], [1, \"⌈\"], [0, \"⌉\"], [0, \"⌊\"], [0, \"⌋\"], [0, \"⌌\"], [0, \"⌍\"], [0, \"⌎\"], [0, \"⌏\"], [0, \"⌐\"], [1, \"⌒\"], [0, \"⌓\"], [1, \"⌕\"], [0, \"⌖\"], [5, \"⌜\"], [0, \"⌝\"], [0, \"⌞\"], [0, \"⌟\"], [2, \"⌢\"], [0, \"⌣\"], [9, \"⌭\"], [0, \"⌮\"], [7, \"⌶\"], [6, \"⌽\"], [1, \"⌿\"], [60, \"⍼\"], [51, \"⎰\"], [0, \"⎱\"], [2, \"⎴\"], [0, \"⎵\"], [0, \"⎶\"], [37, \"⏜\"], [0, \"⏝\"], [0, \"⏞\"], [0, \"⏟\"], [2, \"⏢\"], [4, \"⏧\"], [59, \"␣\"], [164, \"Ⓢ\"], [55, \"─\"], [1, \"│\"], [9, \"┌\"], [3, \"┐\"], [3, \"└\"], [3, \"┘\"], [3, \"├\"], [7, \"┤\"], [7, \"┬\"], [7, \"┴\"], [7, \"┼\"], [19, \"═\"], [0, \"║\"], [0, \"╒\"], [0, \"╓\"], [0, \"╔\"], [0, \"╕\"], [0, \"╖\"], [0, \"╗\"], [0, \"╘\"], [0, \"╙\"], [0, \"╚\"], [0, \"╛\"], [0, \"╜\"], [0, \"╝\"], [0, \"╞\"], [0, \"╟\"], [0, \"╠\"], [0, \"╡\"], [0, \"╢\"], [0, \"╣\"], [0, \"╤\"], [0, \"╥\"], [0, \"╦\"], [0, \"╧\"], [0, \"╨\"], [0, \"╩\"], [0, \"╪\"], [0, \"╫\"], [0, \"╬\"], [19, \"▀\"], [3, \"▄\"], [3, \"█\"], [8, \"░\"], [0, \"▒\"], [0, \"▓\"], [13, \"□\"], [8, \"▪\"], [0, \"▫\"], [1, \"▭\"], [0, \"▮\"], [2, \"▱\"], [1, \"△\"], [0, \"▴\"], [0, \"▵\"], [2, \"▸\"], [0, \"▹\"], [3, \"▽\"], [0, \"▾\"], [0, \"▿\"], [2, \"◂\"], [0, \"◃\"], [6, \"◊\"], [0, \"○\"], [32, \"◬\"], [2, \"◯\"], [8, \"◸\"], [0, \"◹\"], [0, \"◺\"], [0, \"◻\"], [0, \"◼\"], [8, \"★\"], [0, \"☆\"], [7, \"☎\"], [49, \"♀\"], [1, \"♂\"], [29, \"♠\"], [2, \"♣\"], [1, \"♥\"], [0, \"♦\"], [3, \"♪\"], [2, \"♭\"], [0, \"♮\"], [0, \"♯\"], [163, \"✓\"], [3, \"✗\"], [8, \"✠\"], [21, \"✶\"], [33, \"❘\"], [25, \"❲\"], [0, \"❳\"], [84, \"⟈\"], [0, \"⟉\"], [28, \"⟦\"], [0, \"⟧\"], [0, \"⟨\"], [0, \"⟩\"], [0, \"⟪\"], [0, \"⟫\"], [0, \"⟬\"], [0, \"⟭\"], [7, \"⟵\"], [0, \"⟶\"], [0, \"⟷\"], [0, \"⟸\"], [0, \"⟹\"], [0, \"⟺\"], [1, \"⟼\"], [2, \"⟿\"], [258, \"⤂\"], [0, \"⤃\"], [0, \"⤄\"], [0, \"⤅\"], [6, \"⤌\"], [0, \"⤍\"], [0, \"⤎\"], [0, \"⤏\"], [0, \"⤐\"], [0, \"⤑\"], [0, \"⤒\"], [0, \"⤓\"], [2, \"⤖\"], [2, \"⤙\"], [0, \"⤚\"], [0, \"⤛\"], [0, \"⤜\"], [0, \"⤝\"], [0, \"⤞\"], [0, \"⤟\"], [0, \"⤠\"], [2, \"⤣\"], [0, \"⤤\"], [0, \"⤥\"], [0, \"⤦\"], [0, \"⤧\"], [0, \"⤨\"], [0, \"⤩\"], [0, \"⤪\"], [8, { v: \"⤳\", n: 824, o: \"⤳̸\" }], [1, \"⤵\"], [0, \"⤶\"], [0, \"⤷\"], [0, \"⤸\"], [0, \"⤹\"], [2, \"⤼\"], [0, \"⤽\"], [7, \"⥅\"], [2, \"⥈\"], [0, \"⥉\"], [0, \"⥊\"], [0, \"⥋\"], [2, \"⥎\"], [0, \"⥏\"], [0, \"⥐\"], [0, \"⥑\"], [0, \"⥒\"], [0, \"⥓\"], [0, \"⥔\"], [0, \"⥕\"], [0, \"⥖\"], [0, \"⥗\"], [0, \"⥘\"], [0, \"⥙\"], [0, \"⥚\"], [0, \"⥛\"], [0, \"⥜\"], [0, \"⥝\"], [0, \"⥞\"], [0, \"⥟\"], [0, \"⥠\"], [0, \"⥡\"], [0, \"⥢\"], [0, \"⥣\"], [0, \"⥤\"], [0, \"⥥\"], [0, \"⥦\"], [0, \"⥧\"], [0, \"⥨\"], [0, \"⥩\"], [0, \"⥪\"], [0, \"⥫\"], [0, \"⥬\"], [0, \"⥭\"], [0, \"⥮\"], [0, \"⥯\"], [0, \"⥰\"], [0, \"⥱\"], [0, \"⥲\"], [0, \"⥳\"], [0, \"⥴\"], [0, \"⥵\"], [0, \"⥶\"], [1, \"⥸\"], [0, \"⥹\"], [1, \"⥻\"], [0, \"⥼\"], [0, \"⥽\"], [0, \"⥾\"], [0, \"⥿\"], [5, \"⦅\"], [0, \"⦆\"], [4, \"⦋\"], [0, \"⦌\"], [0, \"⦍\"], [0, \"⦎\"], [0, \"⦏\"], [0, \"⦐\"], [0, \"⦑\"], [0, \"⦒\"], [0, \"⦓\"], [0, \"⦔\"], [0, \"⦕\"], [0, \"⦖\"], [3, \"⦚\"], [1, \"⦜\"], [0, \"⦝\"], [6, \"⦤\"], [0, \"⦥\"], [0, \"⦦\"], [0, \"⦧\"], [0, \"⦨\"], [0, \"⦩\"], [0, \"⦪\"], [0, \"⦫\"], [0, \"⦬\"], [0, \"⦭\"], [0, \"⦮\"], [0, \"⦯\"], [0, \"⦰\"], [0, \"⦱\"], [0, \"⦲\"], [0, \"⦳\"], [0, \"⦴\"], [0, \"⦵\"], [0, \"⦶\"], [0, \"⦷\"], [1, \"⦹\"], [1, \"⦻\"], [0, \"⦼\"], [1, \"⦾\"], [0, \"⦿\"], [0, \"⧀\"], [0, \"⧁\"], [0, \"⧂\"], [0, \"⧃\"], [0, \"⧄\"], [0, \"⧅\"], [3, \"⧉\"], [3, \"⧍\"], [0, \"⧎\"], [0, { v: \"⧏\", n: 824, o: \"⧏̸\" }], [0, { v: \"⧐\", n: 824, o: \"⧐̸\" }], [11, \"⧜\"], [0, \"⧝\"], [0, \"⧞\"], [4, \"⧣\"], [0, \"⧤\"], [0, \"⧥\"], [5, \"⧫\"], [8, \"⧴\"], [1, \"⧶\"], [9, \"⨀\"], [0, \"⨁\"], [0, \"⨂\"], [1, \"⨄\"], [1, \"⨆\"], [5, \"⨌\"], [0, \"⨍\"], [2, \"⨐\"], [0, \"⨑\"], [0, \"⨒\"], [0, \"⨓\"], [0, \"⨔\"], [0, \"⨕\"], [0, \"⨖\"], [0, \"⨗\"], [10, \"⨢\"], [0, \"⨣\"], [0, \"⨤\"], [0, \"⨥\"], [0, \"⨦\"], [0, \"⨧\"], [1, \"⨩\"], [0, \"⨪\"], [2, \"⨭\"], [0, \"⨮\"], [0, \"⨯\"], [0, \"⨰\"], [0, \"⨱\"], [1, \"⨳\"], [0, \"⨴\"], [0, \"⨵\"], [0, \"⨶\"], [0, \"⨷\"], [0, \"⨸\"], [0, \"⨹\"], [0, \"⨺\"], [0, \"⨻\"], [0, \"⨼\"], [2, \"⨿\"], [0, \"⩀\"], [1, \"⩂\"], [0, \"⩃\"], [0, \"⩄\"], [0, \"⩅\"], [0, \"⩆\"], [0, \"⩇\"], [0, \"⩈\"], [0, \"⩉\"], [0, \"⩊\"], [0, \"⩋\"], [0, \"⩌\"], [0, \"⩍\"], [2, \"⩐\"], [2, \"⩓\"], [0, \"⩔\"], [0, \"⩕\"], [0, \"⩖\"], [0, \"⩗\"], [0, \"⩘\"], [1, \"⩚\"], [0, \"⩛\"], [0, \"⩜\"], [0, \"⩝\"], [1, \"⩟\"], [6, \"⩦\"], [3, \"⩪\"], [2, { v: \"⩭\", n: 824, o: \"⩭̸\" }], [0, \"⩮\"], [0, \"⩯\"], [0, { v: \"⩰\", n: 824, o: \"⩰̸\" }], [0, \"⩱\"], [0, \"⩲\"], [0, \"⩳\"], [0, \"⩴\"], [0, \"⩵\"], [1, \"⩷\"], [0, \"⩸\"], [0, \"⩹\"], [0, \"⩺\"], [0, \"⩻\"], [0, \"⩼\"], [0, { v: \"⩽\", n: 824, o: \"⩽̸\" }], [0, { v: \"⩾\", n: 824, o: \"⩾̸\" }], [0, \"⩿\"], [0, \"⪀\"], [0, \"⪁\"], [0, \"⪂\"], [0, \"⪃\"], [0, \"⪄\"], [0, \"⪅\"], [0, \"⪆\"], [0, \"⪇\"], [0, \"⪈\"], [0, \"⪉\"], [0, \"⪊\"], [0, \"⪋\"], [0, \"⪌\"], [0, \"⪍\"], [0, \"⪎\"], [0, \"⪏\"], [0, \"⪐\"], [0, \"⪑\"], [0, \"⪒\"], [0, \"⪓\"], [0, \"⪔\"], [0, \"⪕\"], [0, \"⪖\"], [0, \"⪗\"], [0, \"⪘\"], [0, \"⪙\"], [0, \"⪚\"], [2, \"⪝\"], [0, \"⪞\"], [0, \"⪟\"], [0, \"⪠\"], [0, { v: \"⪡\", n: 824, o: \"⪡̸\" }], [0, { v: \"⪢\", n: 824, o: \"⪢̸\" }], [1, \"⪤\"], [0, \"⪥\"], [0, \"⪦\"], [0, \"⪧\"], [0, \"⪨\"], [0, \"⪩\"], [0, \"⪪\"], [0, \"⪫\"], [0, { v: \"⪬\", n: 65024, o: \"⪬︀\" }], [0, { v: \"⪭\", n: 65024, o: \"⪭︀\" }], [0, \"⪮\"], [0, { v: \"⪯\", n: 824, o: \"⪯̸\" }], [0, { v: \"⪰\", n: 824, o: \"⪰̸\" }], [2, \"⪳\"], [0, \"⪴\"], [0, \"⪵\"], [0, \"⪶\"], [0, \"⪷\"], [0, \"⪸\"], [0, \"⪹\"], [0, \"⪺\"], [0, \"⪻\"], [0, \"⪼\"], [0, \"⪽\"], [0, \"⪾\"], [0, \"⪿\"], [0, \"⫀\"], [0, \"⫁\"], [0, \"⫂\"], [0, \"⫃\"], [0, \"⫄\"], [0, { v: \"⫅\", n: 824, o: \"⫅̸\" }], [0, { v: \"⫆\", n: 824, o: \"⫆̸\" }], [0, \"⫇\"], [0, \"⫈\"], [2, { v: \"⫋\", n: 65024, o: \"⫋︀\" }], [0, { v: \"⫌\", n: 65024, o: \"⫌︀\" }], [2, \"⫏\"], [0, \"⫐\"], [0, \"⫑\"], [0, \"⫒\"], [0, \"⫓\"], [0, \"⫔\"], [0, \"⫕\"], [0, \"⫖\"], [0, \"⫗\"], [0, \"⫘\"], [0, \"⫙\"], [0, \"⫚\"], [0, \"⫛\"], [8, \"⫤\"], [1, \"⫦\"], [0, \"⫧\"], [0, \"⫨\"], [0, \"⫩\"], [1, \"⫫\"], [0, \"⫬\"], [0, \"⫭\"], [0, \"⫮\"], [0, \"⫯\"], [0, \"⫰\"], [0, \"⫱\"], [0, \"⫲\"], [0, \"⫳\"], [9, { v: \"⫽\", n: 8421, o: \"⫽⃥\" }], [44343, { n: new Map(/* #__PURE__ */ restoreDiff([[56476, \"𝒜\"], [1, \"𝒞\"], [0, \"𝒟\"], [2, \"𝒢\"], [2, \"𝒥\"], [0, \"𝒦\"], [2, \"𝒩\"], [0, \"𝒪\"], [0, \"𝒫\"], [0, \"𝒬\"], [1, \"𝒮\"], [0, \"𝒯\"], [0, \"𝒰\"], [0, \"𝒱\"], [0, \"𝒲\"], [0, \"𝒳\"], [0, \"𝒴\"], [0, \"𝒵\"], [0, \"𝒶\"], [0, \"𝒷\"], [0, \"𝒸\"], [0, \"𝒹\"], [1, \"𝒻\"], [1, \"𝒽\"], [0, \"𝒾\"], [0, \"𝒿\"], [0, \"𝓀\"], [0, \"𝓁\"], [0, \"𝓂\"], [0, \"𝓃\"], [1, \"𝓅\"], [0, \"𝓆\"], [0, \"𝓇\"], [0, \"𝓈\"], [0, \"𝓉\"], [0, \"𝓊\"], [0, \"𝓋\"], [0, \"𝓌\"], [0, \"𝓍\"], [0, \"𝓎\"], [0, \"𝓏\"], [52, \"𝔄\"], [0, \"𝔅\"], [1, \"𝔇\"], [0, \"𝔈\"], [0, \"𝔉\"], [0, \"𝔊\"], [2, \"𝔍\"], [0, \"𝔎\"], [0, \"𝔏\"], [0, \"𝔐\"], [0, \"𝔑\"], [0, \"𝔒\"], [0, \"𝔓\"], [0, \"𝔔\"], [1, \"𝔖\"], [0, \"𝔗\"], [0, \"𝔘\"], [0, \"𝔙\"], [0, \"𝔚\"], [0, \"𝔛\"], [0, \"𝔜\"], [1, \"𝔞\"], [0, \"𝔟\"], [0, \"𝔠\"], [0, \"𝔡\"], [0, \"𝔢\"], [0, \"𝔣\"], [0, \"𝔤\"], [0, \"𝔥\"], [0, \"𝔦\"], [0, \"𝔧\"], [0, \"𝔨\"], [0, \"𝔩\"], [0, \"𝔪\"], [0, \"𝔫\"], [0, \"𝔬\"], [0, \"𝔭\"], [0, \"𝔮\"], [0, \"𝔯\"], [0, \"𝔰\"], [0, \"𝔱\"], [0, \"𝔲\"], [0, \"𝔳\"], [0, \"𝔴\"], [0, \"𝔵\"], [0, \"𝔶\"], [0, \"𝔷\"], [0, \"𝔸\"], [0, \"𝔹\"], [1, \"𝔻\"], [0, \"𝔼\"], [0, \"𝔽\"], [0, \"𝔾\"], [1, \"𝕀\"], [0, \"𝕁\"], [0, \"𝕂\"], [0, \"𝕃\"], [0, \"𝕄\"], [1, \"𝕆\"], [3, \"𝕊\"], [0, \"𝕋\"], [0, \"𝕌\"], [0, \"𝕍\"], [0, \"𝕎\"], [0, \"𝕏\"], [0, \"𝕐\"], [1, \"𝕒\"], [0, \"𝕓\"], [0, \"𝕔\"], [0, \"𝕕\"], [0, \"𝕖\"], [0, \"𝕗\"], [0, \"𝕘\"], [0, \"𝕙\"], [0, \"𝕚\"], [0, \"𝕛\"], [0, \"𝕜\"], [0, \"𝕝\"], [0, \"𝕞\"], [0, \"𝕟\"], [0, \"𝕠\"], [0, \"𝕡\"], [0, \"𝕢\"], [0, \"𝕣\"], [0, \"𝕤\"], [0, \"𝕥\"], [0, \"𝕦\"], [0, \"𝕧\"], [0, \"𝕨\"], [0, \"𝕩\"], [0, \"𝕪\"], [0, \"𝕫\"]])) }], [8906, \"ff\"], [0, \"fi\"], [0, \"fl\"], [0, \"ffi\"], [0, \"ffl\"]]));\n//# sourceMappingURL=encode-html.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.escapeText = exports.escapeAttribute = exports.escapeUTF8 = exports.escape = exports.encodeXML = exports.getCodePoint = exports.xmlReplacer = void 0;\nexports.xmlReplacer = /[\"&'<>$\\x80-\\uFFFF]/g;\nvar xmlCodeMap = new Map([\n [34, \""\"],\n [38, \"&\"],\n [39, \"'\"],\n [60, \"<\"],\n [62, \">\"],\n]);\n// For compatibility with node < 4, we wrap `codePointAt`\nexports.getCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\nString.prototype.codePointAt != null\n ? function (str, index) { return str.codePointAt(index); }\n : // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n function (c, index) {\n return (c.charCodeAt(index) & 0xfc00) === 0xd800\n ? (c.charCodeAt(index) - 0xd800) * 0x400 +\n c.charCodeAt(index + 1) -\n 0xdc00 +\n 0x10000\n : c.charCodeAt(index);\n };\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using XML entities.\n *\n * If a character has no equivalent entity, a\n * numeric hexadecimal reference (eg. `ü`) will be used.\n */\nfunction encodeXML(str) {\n var ret = \"\";\n var lastIdx = 0;\n var match;\n while ((match = exports.xmlReplacer.exec(str)) !== null) {\n var i = match.index;\n var char = str.charCodeAt(i);\n var next = xmlCodeMap.get(char);\n if (next !== undefined) {\n ret += str.substring(lastIdx, i) + next;\n lastIdx = i + 1;\n }\n else {\n ret += \"\".concat(str.substring(lastIdx, i), \"&#x\").concat((0, exports.getCodePoint)(str, i).toString(16), \";\");\n // Increase by 1 if we have a surrogate pair\n lastIdx = exports.xmlReplacer.lastIndex += Number((char & 0xfc00) === 0xd800);\n }\n }\n return ret + str.substr(lastIdx);\n}\nexports.encodeXML = encodeXML;\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using numeric hexadecimal reference (eg. `ü`).\n *\n * Have a look at `escapeUTF8` if you want a more concise output at the expense\n * of reduced transportability.\n *\n * @param data String to escape.\n */\nexports.escape = encodeXML;\n/**\n * Creates a function that escapes all characters matched by the given regular\n * expression using the given map of characters to escape to their entities.\n *\n * @param regex Regular expression to match characters to escape.\n * @param map Map of characters to escape to their entities.\n *\n * @returns Function that escapes all characters matched by the given regular\n * expression using the given map of characters to escape to their entities.\n */\nfunction getEscaper(regex, map) {\n return function escape(data) {\n var match;\n var lastIdx = 0;\n var result = \"\";\n while ((match = regex.exec(data))) {\n if (lastIdx !== match.index) {\n result += data.substring(lastIdx, match.index);\n }\n // We know that this character will be in the map.\n result += map.get(match[0].charCodeAt(0));\n // Every match will be of length 1\n lastIdx = match.index + 1;\n }\n return result + data.substring(lastIdx);\n };\n}\n/**\n * Encodes all characters not valid in XML documents using XML entities.\n *\n * Note that the output will be character-set dependent.\n *\n * @param data String to escape.\n */\nexports.escapeUTF8 = getEscaper(/[&<>'\"]/g, xmlCodeMap);\n/**\n * Encodes all characters that have to be escaped in HTML attributes,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n *\n * @param data String to escape.\n */\nexports.escapeAttribute = getEscaper(/[\"&\\u00A0]/g, new Map([\n [34, \""\"],\n [38, \"&\"],\n [160, \" \"],\n]));\n/**\n * Encodes all characters that have to be escaped in HTML text,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n *\n * @param data String to escape.\n */\nexports.escapeText = getEscaper(/[&<>\\u00A0]/g, new Map([\n [38, \"&\"],\n [60, \"<\"],\n [62, \">\"],\n [160, \" \"],\n]));\n//# sourceMappingURL=escape.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.encodeNonAsciiHTML = exports.encodeHTML = void 0;\nvar encode_html_js_1 = __importDefault(require(\"./generated/encode-html.js\"));\nvar escape_js_1 = require(\"./escape.js\");\nvar htmlReplacer = /[\\t\\n!-,./:-@[-`\\f{-}$\\x80-\\uFFFF]/g;\n/**\n * Encodes all characters in the input using HTML entities. This includes\n * characters that are valid ASCII characters in HTML documents, such as `#`.\n *\n * To get a more compact output, consider using the `encodeNonAsciiHTML`\n * function, which will only encode characters that are not valid in HTML\n * documents, as well as non-ASCII characters.\n *\n * If a character has no equivalent entity, a numeric hexadecimal reference\n * (eg. `ü`) will be used.\n */\nfunction encodeHTML(data) {\n return encodeHTMLTrieRe(htmlReplacer, data);\n}\nexports.encodeHTML = encodeHTML;\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in HTML\n * documents using HTML entities. This function will not encode characters that\n * are valid in HTML documents, such as `#`.\n *\n * If a character has no equivalent entity, a numeric hexadecimal reference\n * (eg. `ü`) will be used.\n */\nfunction encodeNonAsciiHTML(data) {\n return encodeHTMLTrieRe(escape_js_1.xmlReplacer, data);\n}\nexports.encodeNonAsciiHTML = encodeNonAsciiHTML;\nfunction encodeHTMLTrieRe(regExp, str) {\n var ret = \"\";\n var lastIdx = 0;\n var match;\n while ((match = regExp.exec(str)) !== null) {\n var i = match.index;\n ret += str.substring(lastIdx, i);\n var char = str.charCodeAt(i);\n var next = encode_html_js_1.default.get(char);\n if (typeof next === \"object\") {\n // We are in a branch. Try to match the next char.\n if (i + 1 < str.length) {\n var nextChar = str.charCodeAt(i + 1);\n var value = typeof next.n === \"number\"\n ? next.n === nextChar\n ? next.o\n : undefined\n : next.n.get(nextChar);\n if (value !== undefined) {\n ret += value;\n lastIdx = regExp.lastIndex += 1;\n continue;\n }\n }\n next = next.v;\n }\n // We might have a tree node without a value; skip and use a numeric entity.\n if (next !== undefined) {\n ret += next;\n lastIdx = i + 1;\n }\n else {\n var cp = (0, escape_js_1.getCodePoint)(str, i);\n ret += \"&#x\".concat(cp.toString(16), \";\");\n // Increase by 1 if we have a surrogate pair\n lastIdx = regExp.lastIndex += Number(cp !== char);\n }\n }\n return ret + str.substr(lastIdx);\n}\n//# sourceMappingURL=encode.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decodeXMLStrict = exports.decodeHTML5Strict = exports.decodeHTML4Strict = exports.decodeHTML5 = exports.decodeHTML4 = exports.decodeHTMLAttribute = exports.decodeHTMLStrict = exports.decodeHTML = exports.decodeXML = exports.DecodingMode = exports.EntityDecoder = exports.encodeHTML5 = exports.encodeHTML4 = exports.encodeNonAsciiHTML = exports.encodeHTML = exports.escapeText = exports.escapeAttribute = exports.escapeUTF8 = exports.escape = exports.encodeXML = exports.encode = exports.decodeStrict = exports.decode = exports.EncodingMode = exports.EntityLevel = void 0;\nvar decode_js_1 = require(\"./decode.js\");\nvar encode_js_1 = require(\"./encode.js\");\nvar escape_js_1 = require(\"./escape.js\");\n/** The level of entities to support. */\nvar EntityLevel;\n(function (EntityLevel) {\n /** Support only XML entities. */\n EntityLevel[EntityLevel[\"XML\"] = 0] = \"XML\";\n /** Support HTML entities, which are a superset of XML entities. */\n EntityLevel[EntityLevel[\"HTML\"] = 1] = \"HTML\";\n})(EntityLevel = exports.EntityLevel || (exports.EntityLevel = {}));\nvar EncodingMode;\n(function (EncodingMode) {\n /**\n * The output is UTF-8 encoded. Only characters that need escaping within\n * XML will be escaped.\n */\n EncodingMode[EncodingMode[\"UTF8\"] = 0] = \"UTF8\";\n /**\n * The output consists only of ASCII characters. Characters that need\n * escaping within HTML, and characters that aren't ASCII characters will\n * be escaped.\n */\n EncodingMode[EncodingMode[\"ASCII\"] = 1] = \"ASCII\";\n /**\n * Encode all characters that have an equivalent entity, as well as all\n * characters that are not ASCII characters.\n */\n EncodingMode[EncodingMode[\"Extensive\"] = 2] = \"Extensive\";\n /**\n * Encode all characters that have to be escaped in HTML attributes,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n */\n EncodingMode[EncodingMode[\"Attribute\"] = 3] = \"Attribute\";\n /**\n * Encode all characters that have to be escaped in HTML text,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n */\n EncodingMode[EncodingMode[\"Text\"] = 4] = \"Text\";\n})(EncodingMode = exports.EncodingMode || (exports.EncodingMode = {}));\n/**\n * Decodes a string with entities.\n *\n * @param data String to decode.\n * @param options Decoding options.\n */\nfunction decode(data, options) {\n if (options === void 0) { options = EntityLevel.XML; }\n var level = typeof options === \"number\" ? options : options.level;\n if (level === EntityLevel.HTML) {\n var mode = typeof options === \"object\" ? options.mode : undefined;\n return (0, decode_js_1.decodeHTML)(data, mode);\n }\n return (0, decode_js_1.decodeXML)(data);\n}\nexports.decode = decode;\n/**\n * Decodes a string with entities. Does not allow missing trailing semicolons for entities.\n *\n * @param data String to decode.\n * @param options Decoding options.\n * @deprecated Use `decode` with the `mode` set to `Strict`.\n */\nfunction decodeStrict(data, options) {\n var _a;\n if (options === void 0) { options = EntityLevel.XML; }\n var opts = typeof options === \"number\" ? { level: options } : options;\n (_a = opts.mode) !== null && _a !== void 0 ? _a : (opts.mode = decode_js_1.DecodingMode.Strict);\n return decode(data, opts);\n}\nexports.decodeStrict = decodeStrict;\n/**\n * Encodes a string with entities.\n *\n * @param data String to encode.\n * @param options Encoding options.\n */\nfunction encode(data, options) {\n if (options === void 0) { options = EntityLevel.XML; }\n var opts = typeof options === \"number\" ? { level: options } : options;\n // Mode `UTF8` just escapes XML entities\n if (opts.mode === EncodingMode.UTF8)\n return (0, escape_js_1.escapeUTF8)(data);\n if (opts.mode === EncodingMode.Attribute)\n return (0, escape_js_1.escapeAttribute)(data);\n if (opts.mode === EncodingMode.Text)\n return (0, escape_js_1.escapeText)(data);\n if (opts.level === EntityLevel.HTML) {\n if (opts.mode === EncodingMode.ASCII) {\n return (0, encode_js_1.encodeNonAsciiHTML)(data);\n }\n return (0, encode_js_1.encodeHTML)(data);\n }\n // ASCII and Extensive are equivalent\n return (0, escape_js_1.encodeXML)(data);\n}\nexports.encode = encode;\nvar escape_js_2 = require(\"./escape.js\");\nObject.defineProperty(exports, \"encodeXML\", { enumerable: true, get: function () { return escape_js_2.encodeXML; } });\nObject.defineProperty(exports, \"escape\", { enumerable: true, get: function () { return escape_js_2.escape; } });\nObject.defineProperty(exports, \"escapeUTF8\", { enumerable: true, get: function () { return escape_js_2.escapeUTF8; } });\nObject.defineProperty(exports, \"escapeAttribute\", { enumerable: true, get: function () { return escape_js_2.escapeAttribute; } });\nObject.defineProperty(exports, \"escapeText\", { enumerable: true, get: function () { return escape_js_2.escapeText; } });\nvar encode_js_2 = require(\"./encode.js\");\nObject.defineProperty(exports, \"encodeHTML\", { enumerable: true, get: function () { return encode_js_2.encodeHTML; } });\nObject.defineProperty(exports, \"encodeNonAsciiHTML\", { enumerable: true, get: function () { return encode_js_2.encodeNonAsciiHTML; } });\n// Legacy aliases (deprecated)\nObject.defineProperty(exports, \"encodeHTML4\", { enumerable: true, get: function () { return encode_js_2.encodeHTML; } });\nObject.defineProperty(exports, \"encodeHTML5\", { enumerable: true, get: function () { return encode_js_2.encodeHTML; } });\nvar decode_js_2 = require(\"./decode.js\");\nObject.defineProperty(exports, \"EntityDecoder\", { enumerable: true, get: function () { return decode_js_2.EntityDecoder; } });\nObject.defineProperty(exports, \"DecodingMode\", { enumerable: true, get: function () { return decode_js_2.DecodingMode; } });\nObject.defineProperty(exports, \"decodeXML\", { enumerable: true, get: function () { return decode_js_2.decodeXML; } });\nObject.defineProperty(exports, \"decodeHTML\", { enumerable: true, get: function () { return decode_js_2.decodeHTML; } });\nObject.defineProperty(exports, \"decodeHTMLStrict\", { enumerable: true, get: function () { return decode_js_2.decodeHTMLStrict; } });\nObject.defineProperty(exports, \"decodeHTMLAttribute\", { enumerable: true, get: function () { return decode_js_2.decodeHTMLAttribute; } });\n// Legacy aliases (deprecated)\nObject.defineProperty(exports, \"decodeHTML4\", { enumerable: true, get: function () { return decode_js_2.decodeHTML; } });\nObject.defineProperty(exports, \"decodeHTML5\", { enumerable: true, get: function () { return decode_js_2.decodeHTML; } });\nObject.defineProperty(exports, \"decodeHTML4Strict\", { enumerable: true, get: function () { return decode_js_2.decodeHTMLStrict; } });\nObject.defineProperty(exports, \"decodeHTML5Strict\", { enumerable: true, get: function () { return decode_js_2.decodeHTMLStrict; } });\nObject.defineProperty(exports, \"decodeXMLStrict\", { enumerable: true, get: function () { return decode_js_2.decodeXML; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.attributeNames = exports.elementNames = void 0;\nexports.elementNames = new Map([\n \"altGlyph\",\n \"altGlyphDef\",\n \"altGlyphItem\",\n \"animateColor\",\n \"animateMotion\",\n \"animateTransform\",\n \"clipPath\",\n \"feBlend\",\n \"feColorMatrix\",\n \"feComponentTransfer\",\n \"feComposite\",\n \"feConvolveMatrix\",\n \"feDiffuseLighting\",\n \"feDisplacementMap\",\n \"feDistantLight\",\n \"feDropShadow\",\n \"feFlood\",\n \"feFuncA\",\n \"feFuncB\",\n \"feFuncG\",\n \"feFuncR\",\n \"feGaussianBlur\",\n \"feImage\",\n \"feMerge\",\n \"feMergeNode\",\n \"feMorphology\",\n \"feOffset\",\n \"fePointLight\",\n \"feSpecularLighting\",\n \"feSpotLight\",\n \"feTile\",\n \"feTurbulence\",\n \"foreignObject\",\n \"glyphRef\",\n \"linearGradient\",\n \"radialGradient\",\n \"textPath\",\n].map(function (val) { return [val.toLowerCase(), val]; }));\nexports.attributeNames = new Map([\n \"definitionURL\",\n \"attributeName\",\n \"attributeType\",\n \"baseFrequency\",\n \"baseProfile\",\n \"calcMode\",\n \"clipPathUnits\",\n \"diffuseConstant\",\n \"edgeMode\",\n \"filterUnits\",\n \"glyphRef\",\n \"gradientTransform\",\n \"gradientUnits\",\n \"kernelMatrix\",\n \"kernelUnitLength\",\n \"keyPoints\",\n \"keySplines\",\n \"keyTimes\",\n \"lengthAdjust\",\n \"limitingConeAngle\",\n \"markerHeight\",\n \"markerUnits\",\n \"markerWidth\",\n \"maskContentUnits\",\n \"maskUnits\",\n \"numOctaves\",\n \"pathLength\",\n \"patternContentUnits\",\n \"patternTransform\",\n \"patternUnits\",\n \"pointsAtX\",\n \"pointsAtY\",\n \"pointsAtZ\",\n \"preserveAlpha\",\n \"preserveAspectRatio\",\n \"primitiveUnits\",\n \"refX\",\n \"refY\",\n \"repeatCount\",\n \"repeatDur\",\n \"requiredExtensions\",\n \"requiredFeatures\",\n \"specularConstant\",\n \"specularExponent\",\n \"spreadMethod\",\n \"startOffset\",\n \"stdDeviation\",\n \"stitchTiles\",\n \"surfaceScale\",\n \"systemLanguage\",\n \"tableValues\",\n \"targetX\",\n \"targetY\",\n \"textLength\",\n \"viewBox\",\n \"viewTarget\",\n \"xChannelSelector\",\n \"yChannelSelector\",\n \"zoomAndPan\",\n].map(function (val) { return [val.toLowerCase(), val]; }));\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.render = void 0;\n/*\n * Module dependencies\n */\nvar ElementType = __importStar(require(\"domelementtype\"));\nvar entities_1 = require(\"entities\");\n/**\n * Mixed-case SVG and MathML tags & attributes\n * recognized by the HTML parser.\n *\n * @see https://html.spec.whatwg.org/multipage/parsing.html#parsing-main-inforeign\n */\nvar foreignNames_js_1 = require(\"./foreignNames.js\");\nvar unencodedElements = new Set([\n \"style\",\n \"script\",\n \"xmp\",\n \"iframe\",\n \"noembed\",\n \"noframes\",\n \"plaintext\",\n \"noscript\",\n]);\nfunction replaceQuotes(value) {\n return value.replace(/\"/g, \""\");\n}\n/**\n * Format attributes\n */\nfunction formatAttributes(attributes, opts) {\n var _a;\n if (!attributes)\n return;\n var encode = ((_a = opts.encodeEntities) !== null && _a !== void 0 ? _a : opts.decodeEntities) === false\n ? replaceQuotes\n : opts.xmlMode || opts.encodeEntities !== \"utf8\"\n ? entities_1.encodeXML\n : entities_1.escapeAttribute;\n return Object.keys(attributes)\n .map(function (key) {\n var _a, _b;\n var value = (_a = attributes[key]) !== null && _a !== void 0 ? _a : \"\";\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case attribute names */\n key = (_b = foreignNames_js_1.attributeNames.get(key)) !== null && _b !== void 0 ? _b : key;\n }\n if (!opts.emptyAttrs && !opts.xmlMode && value === \"\") {\n return key;\n }\n return \"\".concat(key, \"=\\\"\").concat(encode(value), \"\\\"\");\n })\n .join(\" \");\n}\n/**\n * Self-enclosing tags\n */\nvar singleTag = 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]);\n/**\n * Renders a DOM node or an array of DOM nodes to a string.\n *\n * Can be thought of as the equivalent of the `outerHTML` of the passed node(s).\n *\n * @param node Node to be rendered.\n * @param options Changes serialization behavior\n */\nfunction render(node, options) {\n if (options === void 0) { options = {}; }\n var nodes = \"length\" in node ? node : [node];\n var output = \"\";\n for (var i = 0; i < nodes.length; i++) {\n output += renderNode(nodes[i], options);\n }\n return output;\n}\nexports.render = render;\nexports.default = render;\nfunction renderNode(node, options) {\n switch (node.type) {\n case ElementType.Root:\n return render(node.children, options);\n // @ts-expect-error We don't use `Doctype` yet\n case ElementType.Doctype:\n case ElementType.Directive:\n return renderDirective(node);\n case ElementType.Comment:\n return renderComment(node);\n case ElementType.CDATA:\n return renderCdata(node);\n case ElementType.Script:\n case ElementType.Style:\n case ElementType.Tag:\n return renderTag(node, options);\n case ElementType.Text:\n return renderText(node, options);\n }\n}\nvar foreignModeIntegrationPoints = new Set([\n \"mi\",\n \"mo\",\n \"mn\",\n \"ms\",\n \"mtext\",\n \"annotation-xml\",\n \"foreignObject\",\n \"desc\",\n \"title\",\n]);\nvar foreignElements = new Set([\"svg\", \"math\"]);\nfunction renderTag(elem, opts) {\n var _a;\n // Handle SVG / MathML in HTML\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case element names */\n elem.name = (_a = foreignNames_js_1.elementNames.get(elem.name)) !== null && _a !== void 0 ? _a : elem.name;\n /* Exit foreign mode at integration points */\n if (elem.parent &&\n foreignModeIntegrationPoints.has(elem.parent.name)) {\n opts = __assign(__assign({}, opts), { xmlMode: false });\n }\n }\n if (!opts.xmlMode && foreignElements.has(elem.name)) {\n opts = __assign(__assign({}, opts), { xmlMode: \"foreign\" });\n }\n var tag = \"<\".concat(elem.name);\n var attribs = formatAttributes(elem.attribs, opts);\n if (attribs) {\n tag += \" \".concat(attribs);\n }\n if (elem.children.length === 0 &&\n (opts.xmlMode\n ? // In XML mode or foreign mode, and user hasn't explicitly turned off self-closing tags\n opts.selfClosingTags !== false\n : // User explicitly asked for self-closing tags, even in HTML mode\n opts.selfClosingTags && singleTag.has(elem.name))) {\n if (!opts.xmlMode)\n tag += \" \";\n tag += \"/>\";\n }\n else {\n tag += \">\";\n if (elem.children.length > 0) {\n tag += render(elem.children, opts);\n }\n if (opts.xmlMode || !singleTag.has(elem.name)) {\n tag += \"</\".concat(elem.name, \">\");\n }\n }\n return tag;\n}\nfunction renderDirective(elem) {\n return \"<\".concat(elem.data, \">\");\n}\nfunction renderText(elem, opts) {\n var _a;\n var data = elem.data || \"\";\n // If entities weren't decoded, no need to encode them back\n if (((_a = opts.encodeEntities) !== null && _a !== void 0 ? _a : opts.decodeEntities) !== false &&\n !(!opts.xmlMode &&\n elem.parent &&\n unencodedElements.has(elem.parent.name))) {\n data =\n opts.xmlMode || opts.encodeEntities !== \"utf8\"\n ? (0, entities_1.encodeXML)(data)\n : (0, entities_1.escapeText)(data);\n }\n return data;\n}\nfunction renderCdata(elem) {\n return \"<![CDATA[\".concat(elem.children[0].data, \"]]>\");\n}\nfunction renderComment(elem) {\n return \"<!--\".concat(elem.data, \"-->\");\n}\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOuterHTML = getOuterHTML;\nexports.getInnerHTML = getInnerHTML;\nexports.getText = getText;\nexports.textContent = textContent;\nexports.innerText = innerText;\nvar domhandler_1 = require(\"domhandler\");\nvar dom_serializer_1 = __importDefault(require(\"dom-serializer\"));\nvar domelementtype_1 = require(\"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 */\nfunction getOuterHTML(node, options) {\n return (0, dom_serializer_1.default)(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 */\nfunction getInnerHTML(node, options) {\n return (0, domhandler_1.hasChildren)(node)\n ? node.children.map(function (node) { return 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 */\nfunction getText(node) {\n if (Array.isArray(node))\n return node.map(getText).join(\"\");\n if ((0, domhandler_1.isTag)(node))\n return node.name === \"br\" ? \"\\n\" : getText(node.children);\n if ((0, domhandler_1.isCDATA)(node))\n return getText(node.children);\n if ((0, domhandler_1.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 */\nfunction textContent(node) {\n if (Array.isArray(node))\n return node.map(textContent).join(\"\");\n if ((0, domhandler_1.hasChildren)(node) && !(0, domhandler_1.isComment)(node)) {\n return textContent(node.children);\n }\n if ((0, domhandler_1.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 */\nfunction innerText(node) {\n if (Array.isArray(node))\n return node.map(innerText).join(\"\");\n if ((0, domhandler_1.hasChildren)(node) && (node.type === domelementtype_1.ElementType.Tag || (0, domhandler_1.isCDATA)(node))) {\n return innerText(node.children);\n }\n if ((0, domhandler_1.isText)(node))\n return node.data;\n return \"\";\n}\n//# sourceMappingURL=stringify.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getChildren = getChildren;\nexports.getParent = getParent;\nexports.getSiblings = getSiblings;\nexports.getAttributeValue = getAttributeValue;\nexports.hasAttrib = hasAttrib;\nexports.getName = getName;\nexports.nextElementSibling = nextElementSibling;\nexports.prevElementSibling = prevElementSibling;\nvar domhandler_1 = require(\"domhandler\");\n/**\n * Get a node's children.\n *\n * @category Traversal\n * @param elem Node to get the children of.\n * @returns `elem`'s children, or an empty array.\n */\nfunction getChildren(elem) {\n return (0, domhandler_1.hasChildren)(elem) ? elem.children : [];\n}\n/**\n * Get a node's parent.\n *\n * @category Traversal\n * @param elem Node to get the parent of.\n * @returns `elem`'s parent node, or `null` if `elem` is a root node.\n */\nfunction getParent(elem) {\n return elem.parent || null;\n}\n/**\n * Gets an elements siblings, including the element itself.\n *\n * Attempts to get the children through the element's parent first. If we don't\n * have a parent (the element is a root node), we walk the element's `prev` &\n * `next` to get all remaining nodes.\n *\n * @category Traversal\n * @param elem Element to get the siblings of.\n * @returns `elem`'s siblings, including `elem`.\n */\nfunction getSiblings(elem) {\n var _a, _b;\n var parent = getParent(elem);\n if (parent != null)\n return getChildren(parent);\n var siblings = [elem];\n var prev = elem.prev, next = elem.next;\n while (prev != null) {\n siblings.unshift(prev);\n (_a = prev, prev = _a.prev);\n }\n while (next != null) {\n siblings.push(next);\n (_b = next, next = _b.next);\n }\n return siblings;\n}\n/**\n * Gets an attribute from an element.\n *\n * @category Traversal\n * @param elem Element to check.\n * @param name Attribute name to retrieve.\n * @returns The element's attribute value, or `undefined`.\n */\nfunction getAttributeValue(elem, name) {\n var _a;\n return (_a = elem.attribs) === null || _a === void 0 ? void 0 : _a[name];\n}\n/**\n * Checks whether an element has an attribute.\n *\n * @category Traversal\n * @param elem Element to check.\n * @param name Attribute name to look for.\n * @returns Returns whether `elem` has the attribute `name`.\n */\nfunction hasAttrib(elem, name) {\n return (elem.attribs != null &&\n Object.prototype.hasOwnProperty.call(elem.attribs, name) &&\n elem.attribs[name] != null);\n}\n/**\n * Get the tag name of an element.\n *\n * @category Traversal\n * @param elem The element to get the name for.\n * @returns The tag name of `elem`.\n */\nfunction getName(elem) {\n return elem.name;\n}\n/**\n * Returns the next element sibling of a node.\n *\n * @category Traversal\n * @param elem The element to get the next sibling of.\n * @returns `elem`'s next sibling that is a tag, or `null` if there is no next\n * sibling.\n */\nfunction nextElementSibling(elem) {\n var _a;\n var next = elem.next;\n while (next !== null && !(0, domhandler_1.isTag)(next))\n (_a = next, next = _a.next);\n return next;\n}\n/**\n * Returns the previous element sibling of a node.\n *\n * @category Traversal\n * @param elem The element to get the previous sibling of.\n * @returns `elem`'s previous sibling that is a tag, or `null` if there is no\n * previous sibling.\n */\nfunction prevElementSibling(elem) {\n var _a;\n var prev = elem.prev;\n while (prev !== null && !(0, domhandler_1.isTag)(prev))\n (_a = prev, prev = _a.prev);\n return prev;\n}\n//# sourceMappingURL=traversal.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.removeElement = removeElement;\nexports.replaceElement = replaceElement;\nexports.appendChild = appendChild;\nexports.append = append;\nexports.prependChild = prependChild;\nexports.prepend = prepend;\n/**\n * Remove an element from the dom\n *\n * @category Manipulation\n * @param elem The element to be removed\n */\nfunction removeElement(elem) {\n if (elem.prev)\n elem.prev.next = elem.next;\n if (elem.next)\n elem.next.prev = elem.prev;\n if (elem.parent) {\n var childs = elem.parent.children;\n var childsIndex = childs.lastIndexOf(elem);\n if (childsIndex >= 0) {\n childs.splice(childsIndex, 1);\n }\n }\n elem.next = null;\n elem.prev = null;\n elem.parent = null;\n}\n/**\n * Replace an element in the dom\n *\n * @category Manipulation\n * @param elem The element to be replaced\n * @param replacement The element to be added\n */\nfunction replaceElement(elem, replacement) {\n var prev = (replacement.prev = elem.prev);\n if (prev) {\n prev.next = replacement;\n }\n var next = (replacement.next = elem.next);\n if (next) {\n next.prev = replacement;\n }\n var parent = (replacement.parent = elem.parent);\n if (parent) {\n var childs = parent.children;\n childs[childs.lastIndexOf(elem)] = replacement;\n elem.parent = null;\n }\n}\n/**\n * Append a child to an element.\n *\n * @category Manipulation\n * @param parent The element to append to.\n * @param child The element to be added as a child.\n */\nfunction appendChild(parent, child) {\n removeElement(child);\n child.next = null;\n child.parent = parent;\n if (parent.children.push(child) > 1) {\n var sibling = parent.children[parent.children.length - 2];\n sibling.next = child;\n child.prev = sibling;\n }\n else {\n child.prev = null;\n }\n}\n/**\n * Append an element after another.\n *\n * @category Manipulation\n * @param elem The element to append after.\n * @param next The element be added.\n */\nfunction append(elem, next) {\n removeElement(next);\n var parent = elem.parent;\n var currNext = elem.next;\n next.next = currNext;\n next.prev = elem;\n elem.next = next;\n next.parent = parent;\n if (currNext) {\n currNext.prev = next;\n if (parent) {\n var childs = parent.children;\n childs.splice(childs.lastIndexOf(currNext), 0, next);\n }\n }\n else if (parent) {\n parent.children.push(next);\n }\n}\n/**\n * Prepend a child to an element.\n *\n * @category Manipulation\n * @param parent The element to prepend before.\n * @param child The element to be added as a child.\n */\nfunction prependChild(parent, child) {\n removeElement(child);\n child.parent = parent;\n child.prev = null;\n if (parent.children.unshift(child) !== 1) {\n var sibling = parent.children[1];\n sibling.prev = child;\n child.next = sibling;\n }\n else {\n child.next = null;\n }\n}\n/**\n * Prepend an element before another.\n *\n * @category Manipulation\n * @param elem The element to prepend before.\n * @param prev The element be added.\n */\nfunction prepend(elem, prev) {\n removeElement(prev);\n var parent = elem.parent;\n if (parent) {\n var childs = parent.children;\n childs.splice(childs.indexOf(elem), 0, prev);\n }\n if (elem.prev) {\n elem.prev.next = prev;\n }\n prev.parent = parent;\n prev.prev = elem.prev;\n prev.next = elem;\n elem.prev = prev;\n}\n//# sourceMappingURL=manipulation.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.filter = filter;\nexports.find = find;\nexports.findOneChild = findOneChild;\nexports.findOne = findOne;\nexports.existsOne = existsOne;\nexports.findAll = findAll;\nvar domhandler_1 = require(\"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 */\nfunction filter(test, node, recurse, limit) {\n if (recurse === void 0) { recurse = true; }\n if (limit === void 0) { 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 */\nfunction find(test, nodes, recurse, limit) {\n var result = [];\n /** Stack of the arrays we are looking at. */\n var nodeStack = [Array.isArray(nodes) ? nodes : [nodes]];\n /** Stack of the indices within the arrays. */\n var 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 var elem = nodeStack[0][indexStack[0]++];\n if (test(elem)) {\n result.push(elem);\n if (--limit <= 0)\n return result;\n }\n if (recurse && (0, domhandler_1.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 */\nfunction 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 */\nfunction findOne(test, nodes, recurse) {\n if (recurse === void 0) { recurse = true; }\n var searchedNodes = Array.isArray(nodes) ? nodes : [nodes];\n for (var i = 0; i < searchedNodes.length; i++) {\n var node = searchedNodes[i];\n if ((0, domhandler_1.isTag)(node) && test(node)) {\n return node;\n }\n if (recurse && (0, domhandler_1.hasChildren)(node) && node.children.length > 0) {\n var 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 */\nfunction existsOne(test, nodes) {\n return (Array.isArray(nodes) ? nodes : [nodes]).some(function (node) {\n return ((0, domhandler_1.isTag)(node) && test(node)) ||\n ((0, domhandler_1.hasChildren)(node) && existsOne(test, node.children));\n });\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 */\nfunction findAll(test, nodes) {\n var result = [];\n var nodeStack = [Array.isArray(nodes) ? nodes : [nodes]];\n var 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 var elem = nodeStack[0][indexStack[0]++];\n if ((0, domhandler_1.isTag)(elem) && test(elem))\n result.push(elem);\n if ((0, domhandler_1.hasChildren)(elem) && elem.children.length > 0) {\n indexStack.unshift(0);\n nodeStack.unshift(elem.children);\n }\n }\n}\n//# sourceMappingURL=querying.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.testElement = testElement;\nexports.getElements = getElements;\nexports.getElementById = getElementById;\nexports.getElementsByTagName = getElementsByTagName;\nexports.getElementsByClassName = getElementsByClassName;\nexports.getElementsByTagType = getElementsByTagType;\nvar domhandler_1 = require(\"domhandler\");\nvar querying_js_1 = require(\"./querying.js\");\n/**\n * A map of functions to check nodes against.\n */\nvar Checks = {\n tag_name: function (name) {\n if (typeof name === \"function\") {\n return function (elem) { return (0, domhandler_1.isTag)(elem) && name(elem.name); };\n }\n else if (name === \"*\") {\n return domhandler_1.isTag;\n }\n return function (elem) { return (0, domhandler_1.isTag)(elem) && elem.name === name; };\n },\n tag_type: function (type) {\n if (typeof type === \"function\") {\n return function (elem) { return type(elem.type); };\n }\n return function (elem) { return elem.type === type; };\n },\n tag_contains: function (data) {\n if (typeof data === \"function\") {\n return function (elem) { return (0, domhandler_1.isText)(elem) && data(elem.data); };\n }\n return function (elem) { return (0, domhandler_1.isText)(elem) && elem.data === data; };\n },\n};\n/**\n * Returns a function to check whether a node has an attribute with a particular\n * value.\n *\n * @param attrib Attribute to check.\n * @param value Attribute value to look for.\n * @returns A function to check whether the a node has an attribute with a\n * particular value.\n */\nfunction getAttribCheck(attrib, value) {\n if (typeof value === \"function\") {\n return function (elem) { return (0, domhandler_1.isTag)(elem) && value(elem.attribs[attrib]); };\n }\n return function (elem) { return (0, domhandler_1.isTag)(elem) && elem.attribs[attrib] === value; };\n}\n/**\n * Returns a function that returns `true` if either of the input functions\n * returns `true` for a node.\n *\n * @param a First function to combine.\n * @param b Second function to combine.\n * @returns A function taking a node and returning `true` if either of the input\n * functions returns `true` for the node.\n */\nfunction combineFuncs(a, b) {\n return function (elem) { return a(elem) || b(elem); };\n}\n/**\n * Returns a function that executes all checks in `options` and returns `true`\n * if any of them match a node.\n *\n * @param options An object describing nodes to look for.\n * @returns A function that executes all checks in `options` and returns `true`\n * if any of them match a node.\n */\nfunction compileTest(options) {\n var funcs = Object.keys(options).map(function (key) {\n var value = options[key];\n return Object.prototype.hasOwnProperty.call(Checks, key)\n ? Checks[key](value)\n : getAttribCheck(key, value);\n });\n return funcs.length === 0 ? null : funcs.reduce(combineFuncs);\n}\n/**\n * Checks whether a node matches the description in `options`.\n *\n * @category Legacy Query Functions\n * @param options An object describing nodes to look for.\n * @param node The element to test.\n * @returns Whether the element matches the description in `options`.\n */\nfunction testElement(options, node) {\n var test = compileTest(options);\n return test ? test(node) : true;\n}\n/**\n * Returns all nodes that match `options`.\n *\n * @category Legacy Query Functions\n * @param options An object describing nodes to look for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes that match `options`.\n */\nfunction getElements(options, nodes, recurse, limit) {\n if (limit === void 0) { limit = Infinity; }\n var test = compileTest(options);\n return test ? (0, querying_js_1.filter)(test, nodes, recurse, limit) : [];\n}\n/**\n * Returns the node with the supplied ID.\n *\n * @category Legacy Query Functions\n * @param id The unique ID attribute value to look for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @returns The node with the supplied ID.\n */\nfunction getElementById(id, nodes, recurse) {\n if (recurse === void 0) { recurse = true; }\n if (!Array.isArray(nodes))\n nodes = [nodes];\n return (0, querying_js_1.findOne)(getAttribCheck(\"id\", id), nodes, recurse);\n}\n/**\n * Returns all nodes with the supplied `tagName`.\n *\n * @category Legacy Query Functions\n * @param tagName Tag name to search for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes with the supplied `tagName`.\n */\nfunction getElementsByTagName(tagName, nodes, recurse, limit) {\n if (recurse === void 0) { recurse = true; }\n if (limit === void 0) { limit = Infinity; }\n return (0, querying_js_1.filter)(Checks[\"tag_name\"](tagName), nodes, recurse, limit);\n}\n/**\n * Returns all nodes with the supplied `className`.\n *\n * @category Legacy Query Functions\n * @param className Class name to search for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes with the supplied `className`.\n */\nfunction getElementsByClassName(className, nodes, recurse, limit) {\n if (recurse === void 0) { recurse = true; }\n if (limit === void 0) { limit = Infinity; }\n return (0, querying_js_1.filter)(getAttribCheck(\"class\", className), nodes, recurse, limit);\n}\n/**\n * Returns all nodes with the supplied `type`.\n *\n * @category Legacy Query Functions\n * @param type Element type to look for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes with the supplied `type`.\n */\nfunction getElementsByTagType(type, nodes, recurse, limit) {\n if (recurse === void 0) { recurse = true; }\n if (limit === void 0) { limit = Infinity; }\n return (0, querying_js_1.filter)(Checks[\"tag_type\"](type), nodes, recurse, limit);\n}\n//# sourceMappingURL=legacy.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DocumentPosition = void 0;\nexports.removeSubsets = removeSubsets;\nexports.compareDocumentPosition = compareDocumentPosition;\nexports.uniqueSort = uniqueSort;\nvar domhandler_1 = require(\"domhandler\");\n/**\n * Given an array of nodes, remove any member that is contained by another\n * member.\n *\n * @category Helpers\n * @param nodes Nodes to filter.\n * @returns Remaining nodes that aren't contained by other nodes.\n */\nfunction removeSubsets(nodes) {\n var idx = nodes.length;\n /*\n * Check if each node (or one of its ancestors) is already contained in the\n * array.\n */\n while (--idx >= 0) {\n var node = nodes[idx];\n /*\n * Remove the node if it is not unique.\n * We are going through the array from the end, so we only\n * have to check nodes that preceed the node under consideration in the array.\n */\n if (idx > 0 && nodes.lastIndexOf(node, idx - 1) >= 0) {\n nodes.splice(idx, 1);\n continue;\n }\n for (var ancestor = node.parent; ancestor; ancestor = ancestor.parent) {\n if (nodes.includes(ancestor)) {\n nodes.splice(idx, 1);\n break;\n }\n }\n }\n return nodes;\n}\n/**\n * @category Helpers\n * @see {@link http://dom.spec.whatwg.org/#dom-node-comparedocumentposition}\n */\nvar DocumentPosition;\n(function (DocumentPosition) {\n DocumentPosition[DocumentPosition[\"DISCONNECTED\"] = 1] = \"DISCONNECTED\";\n DocumentPosition[DocumentPosition[\"PRECEDING\"] = 2] = \"PRECEDING\";\n DocumentPosition[DocumentPosition[\"FOLLOWING\"] = 4] = \"FOLLOWING\";\n DocumentPosition[DocumentPosition[\"CONTAINS\"] = 8] = \"CONTAINS\";\n DocumentPosition[DocumentPosition[\"CONTAINED_BY\"] = 16] = \"CONTAINED_BY\";\n})(DocumentPosition || (exports.DocumentPosition = DocumentPosition = {}));\n/**\n * Compare the position of one node against another node in any other document,\n * returning a bitmask with the values from {@link DocumentPosition}.\n *\n * Document order:\n * > There is an ordering, document order, defined on all the nodes in the\n * > document corresponding to the order in which the first character of the\n * > XML representation of each node occurs in the XML representation of the\n * > document after expansion of general entities. Thus, the document element\n * > node will be the first node. Element nodes occur before their children.\n * > Thus, document order orders element nodes in order of the occurrence of\n * > their start-tag in the XML (after expansion of entities). The attribute\n * > nodes of an element occur after the element and before its children. The\n * > relative order of attribute nodes is implementation-dependent.\n *\n * Source:\n * http://www.w3.org/TR/DOM-Level-3-Core/glossary.html#dt-document-order\n *\n * @category Helpers\n * @param nodeA The first node to use in the comparison\n * @param nodeB The second node to use in the comparison\n * @returns A bitmask describing the input nodes' relative position.\n *\n * See http://dom.spec.whatwg.org/#dom-node-comparedocumentposition for\n * a description of these values.\n */\nfunction compareDocumentPosition(nodeA, nodeB) {\n var aParents = [];\n var bParents = [];\n if (nodeA === nodeB) {\n return 0;\n }\n var current = (0, domhandler_1.hasChildren)(nodeA) ? nodeA : nodeA.parent;\n while (current) {\n aParents.unshift(current);\n current = current.parent;\n }\n current = (0, domhandler_1.hasChildren)(nodeB) ? nodeB : nodeB.parent;\n while (current) {\n bParents.unshift(current);\n current = current.parent;\n }\n var maxIdx = Math.min(aParents.length, bParents.length);\n var idx = 0;\n while (idx < maxIdx && aParents[idx] === bParents[idx]) {\n idx++;\n }\n if (idx === 0) {\n return DocumentPosition.DISCONNECTED;\n }\n var sharedParent = aParents[idx - 1];\n var siblings = sharedParent.children;\n var aSibling = aParents[idx];\n var bSibling = bParents[idx];\n if (siblings.indexOf(aSibling) > siblings.indexOf(bSibling)) {\n if (sharedParent === nodeB) {\n return DocumentPosition.FOLLOWING | DocumentPosition.CONTAINED_BY;\n }\n return DocumentPosition.FOLLOWING;\n }\n if (sharedParent === nodeA) {\n return DocumentPosition.PRECEDING | DocumentPosition.CONTAINS;\n }\n return DocumentPosition.PRECEDING;\n}\n/**\n * Sort an array of nodes based on their relative position in the document,\n * removing any duplicate nodes. If the array contains nodes that do not belong\n * to the same document, sort order is unspecified.\n *\n * @category Helpers\n * @param nodes Array of DOM nodes.\n * @returns Collection of unique nodes, sorted in document order.\n */\nfunction uniqueSort(nodes) {\n nodes = nodes.filter(function (node, i, arr) { return !arr.includes(node, i + 1); });\n nodes.sort(function (a, b) {\n var relative = compareDocumentPosition(a, b);\n if (relative & DocumentPosition.PRECEDING) {\n return -1;\n }\n else if (relative & DocumentPosition.FOLLOWING) {\n return 1;\n }\n return 0;\n });\n return nodes;\n}\n//# sourceMappingURL=helpers.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getFeed = getFeed;\nvar stringify_js_1 = require(\"./stringify.js\");\nvar legacy_js_1 = require(\"./legacy.js\");\n/**\n * Get the feed object from the root of a DOM tree.\n *\n * @category Feeds\n * @param doc - The DOM to to extract the feed from.\n * @returns The feed.\n */\nfunction getFeed(doc) {\n var feedRoot = getOneElement(isValidFeed, doc);\n return !feedRoot\n ? null\n : feedRoot.name === \"feed\"\n ? getAtomFeed(feedRoot)\n : getRssFeed(feedRoot);\n}\n/**\n * Parse an Atom feed.\n *\n * @param feedRoot The root of the feed.\n * @returns The parsed feed.\n */\nfunction getAtomFeed(feedRoot) {\n var _a;\n var childs = feedRoot.children;\n var feed = {\n type: \"atom\",\n items: (0, legacy_js_1.getElementsByTagName)(\"entry\", childs).map(function (item) {\n var _a;\n var children = item.children;\n var entry = { media: getMediaElements(children) };\n addConditionally(entry, \"id\", \"id\", children);\n addConditionally(entry, \"title\", \"title\", children);\n var href = (_a = getOneElement(\"link\", children)) === null || _a === void 0 ? void 0 : _a.attribs[\"href\"];\n if (href) {\n entry.link = href;\n }\n var description = fetch(\"summary\", children) || fetch(\"content\", children);\n if (description) {\n entry.description = description;\n }\n var pubDate = fetch(\"updated\", children);\n if (pubDate) {\n entry.pubDate = new Date(pubDate);\n }\n return entry;\n }),\n };\n addConditionally(feed, \"id\", \"id\", childs);\n addConditionally(feed, \"title\", \"title\", childs);\n var href = (_a = getOneElement(\"link\", childs)) === null || _a === void 0 ? void 0 : _a.attribs[\"href\"];\n if (href) {\n feed.link = href;\n }\n addConditionally(feed, \"description\", \"subtitle\", childs);\n var updated = fetch(\"updated\", childs);\n if (updated) {\n feed.updated = new Date(updated);\n }\n addConditionally(feed, \"author\", \"email\", childs, true);\n return feed;\n}\n/**\n * Parse a RSS feed.\n *\n * @param feedRoot The root of the feed.\n * @returns The parsed feed.\n */\nfunction getRssFeed(feedRoot) {\n var _a, _b;\n var childs = (_b = (_a = getOneElement(\"channel\", feedRoot.children)) === null || _a === void 0 ? void 0 : _a.children) !== null && _b !== void 0 ? _b : [];\n var feed = {\n type: feedRoot.name.substr(0, 3),\n id: \"\",\n items: (0, legacy_js_1.getElementsByTagName)(\"item\", feedRoot.children).map(function (item) {\n var children = item.children;\n var entry = { media: getMediaElements(children) };\n addConditionally(entry, \"id\", \"guid\", children);\n addConditionally(entry, \"title\", \"title\", children);\n addConditionally(entry, \"link\", \"link\", children);\n addConditionally(entry, \"description\", \"description\", children);\n var pubDate = fetch(\"pubDate\", children) || fetch(\"dc:date\", children);\n if (pubDate)\n entry.pubDate = new Date(pubDate);\n return entry;\n }),\n };\n addConditionally(feed, \"title\", \"title\", childs);\n addConditionally(feed, \"link\", \"link\", childs);\n addConditionally(feed, \"description\", \"description\", childs);\n var updated = fetch(\"lastBuildDate\", childs);\n if (updated) {\n feed.updated = new Date(updated);\n }\n addConditionally(feed, \"author\", \"managingEditor\", childs, true);\n return feed;\n}\nvar MEDIA_KEYS_STRING = [\"url\", \"type\", \"lang\"];\nvar MEDIA_KEYS_INT = [\n \"fileSize\",\n \"bitrate\",\n \"framerate\",\n \"samplingrate\",\n \"channels\",\n \"duration\",\n \"height\",\n \"width\",\n];\n/**\n * Get all media elements of a feed item.\n *\n * @param where Nodes to search in.\n * @returns Media elements.\n */\nfunction getMediaElements(where) {\n return (0, legacy_js_1.getElementsByTagName)(\"media:content\", where).map(function (elem) {\n var attribs = elem.attribs;\n var media = {\n medium: attribs[\"medium\"],\n isDefault: !!attribs[\"isDefault\"],\n };\n for (var _i = 0, MEDIA_KEYS_STRING_1 = MEDIA_KEYS_STRING; _i < MEDIA_KEYS_STRING_1.length; _i++) {\n var attrib = MEDIA_KEYS_STRING_1[_i];\n if (attribs[attrib]) {\n media[attrib] = attribs[attrib];\n }\n }\n for (var _a = 0, MEDIA_KEYS_INT_1 = MEDIA_KEYS_INT; _a < MEDIA_KEYS_INT_1.length; _a++) {\n var attrib = MEDIA_KEYS_INT_1[_a];\n if (attribs[attrib]) {\n media[attrib] = parseInt(attribs[attrib], 10);\n }\n }\n if (attribs[\"expression\"]) {\n media.expression = attribs[\"expression\"];\n }\n return media;\n });\n}\n/**\n * Get one element by tag name.\n *\n * @param tagName Tag name to look for\n * @param node Node to search in\n * @returns The element or null\n */\nfunction getOneElement(tagName, node) {\n return (0, legacy_js_1.getElementsByTagName)(tagName, node, true, 1)[0];\n}\n/**\n * Get the text content of an element with a certain tag name.\n *\n * @param tagName Tag name to look for.\n * @param where Node to search in.\n * @param recurse Whether to recurse into child nodes.\n * @returns The text content of the element.\n */\nfunction fetch(tagName, where, recurse) {\n if (recurse === void 0) { recurse = false; }\n return (0, stringify_js_1.textContent)((0, legacy_js_1.getElementsByTagName)(tagName, where, recurse, 1)).trim();\n}\n/**\n * Adds a property to an object if it has a value.\n *\n * @param obj Object to be extended\n * @param prop Property name\n * @param tagName Tag name that contains the conditionally added property\n * @param where Element to search for the property\n * @param recurse Whether to recurse into child nodes.\n */\nfunction addConditionally(obj, prop, tagName, where, recurse) {\n if (recurse === void 0) { recurse = false; }\n var val = fetch(tagName, where, recurse);\n if (val)\n obj[prop] = val;\n}\n/**\n * Checks if an element is a feed root node.\n *\n * @param value The name of the element to check.\n * @returns Whether an element is a feed root node.\n */\nfunction isValidFeed(value) {\n return value === \"rss\" || value === \"feed\" || value === \"rdf:RDF\";\n}\n//# sourceMappingURL=feeds.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hasChildren = exports.isDocument = exports.isComment = exports.isText = exports.isCDATA = exports.isTag = void 0;\n__exportStar(require(\"./stringify.js\"), exports);\n__exportStar(require(\"./traversal.js\"), exports);\n__exportStar(require(\"./manipulation.js\"), exports);\n__exportStar(require(\"./querying.js\"), exports);\n__exportStar(require(\"./legacy.js\"), exports);\n__exportStar(require(\"./helpers.js\"), exports);\n__exportStar(require(\"./feeds.js\"), exports);\n/** @deprecated Use these methods from `domhandler` directly. */\nvar domhandler_1 = require(\"domhandler\");\nObject.defineProperty(exports, \"isTag\", { enumerable: true, get: function () { return domhandler_1.isTag; } });\nObject.defineProperty(exports, \"isCDATA\", { enumerable: true, get: function () { return domhandler_1.isCDATA; } });\nObject.defineProperty(exports, \"isText\", { enumerable: true, get: function () { return domhandler_1.isText; } });\nObject.defineProperty(exports, \"isComment\", { enumerable: true, get: function () { return domhandler_1.isComment; } });\nObject.defineProperty(exports, \"isDocument\", { enumerable: true, get: function () { return domhandler_1.isDocument; } });\nObject.defineProperty(exports, \"hasChildren\", { enumerable: true, get: function () { return domhandler_1.hasChildren; } });\n//# sourceMappingURL=index.js.map","module.exports = {\n\ttrueFunc: function trueFunc(){\n\t\treturn true;\n\t},\n\tfalseFunc: function falseFunc(){\n\t\treturn false;\n\t}\n};","export var SelectorType;\n(function (SelectorType) {\n SelectorType[\"Attribute\"] = \"attribute\";\n SelectorType[\"Pseudo\"] = \"pseudo\";\n SelectorType[\"PseudoElement\"] = \"pseudo-element\";\n SelectorType[\"Tag\"] = \"tag\";\n SelectorType[\"Universal\"] = \"universal\";\n // Traversals\n SelectorType[\"Adjacent\"] = \"adjacent\";\n SelectorType[\"Child\"] = \"child\";\n SelectorType[\"Descendant\"] = \"descendant\";\n SelectorType[\"Parent\"] = \"parent\";\n SelectorType[\"Sibling\"] = \"sibling\";\n SelectorType[\"ColumnCombinator\"] = \"column-combinator\";\n})(SelectorType || (SelectorType = {}));\n/**\n * Modes for ignore case.\n *\n * This could be updated to an enum, and the object is\n * the current stand-in that will allow code to be updated\n * without big changes.\n */\nexport const IgnoreCaseMode = {\n Unknown: null,\n QuirksMode: \"quirks\",\n IgnoreCase: true,\n CaseSensitive: false,\n};\nexport var AttributeAction;\n(function (AttributeAction) {\n AttributeAction[\"Any\"] = \"any\";\n AttributeAction[\"Element\"] = \"element\";\n AttributeAction[\"End\"] = \"end\";\n AttributeAction[\"Equals\"] = \"equals\";\n AttributeAction[\"Exists\"] = \"exists\";\n AttributeAction[\"Hyphen\"] = \"hyphen\";\n AttributeAction[\"Not\"] = \"not\";\n AttributeAction[\"Start\"] = \"start\";\n})(AttributeAction || (AttributeAction = {}));\n","import { SelectorType, AttributeAction, } from \"./types\";\nconst reName = /^[^\\\\#]?(?:\\\\(?:[\\da-f]{1,6}\\s?|.)|[\\w\\-\\u00b0-\\uFFFF])+/;\nconst reEscape = /\\\\([\\da-f]{1,6}\\s?|(\\s)|.)/gi;\nconst actionTypes = new Map([\n [126 /* Tilde */, AttributeAction.Element],\n [94 /* Circumflex */, AttributeAction.Start],\n [36 /* Dollar */, AttributeAction.End],\n [42 /* Asterisk */, AttributeAction.Any],\n [33 /* ExclamationMark */, AttributeAction.Not],\n [124 /* Pipe */, AttributeAction.Hyphen],\n]);\n// Pseudos, whose data property is parsed as well.\nconst unpackPseudos = new Set([\n \"has\",\n \"not\",\n \"matches\",\n \"is\",\n \"where\",\n \"host\",\n \"host-context\",\n]);\n/**\n * Checks whether a specific selector is a traversal.\n * This is useful eg. in swapping the order of elements that\n * are not traversals.\n *\n * @param selector Selector to check.\n */\nexport function isTraversal(selector) {\n switch (selector.type) {\n case SelectorType.Adjacent:\n case SelectorType.Child:\n case SelectorType.Descendant:\n case SelectorType.Parent:\n case SelectorType.Sibling:\n case SelectorType.ColumnCombinator:\n return true;\n default:\n return false;\n }\n}\nconst stripQuotesFromPseudos = new Set([\"contains\", \"icontains\"]);\n// Unescape function taken from https://github.com/jquery/sizzle/blob/master/src/sizzle.js#L152\nfunction funescape(_, escaped, escapedWhitespace) {\n const high = parseInt(escaped, 16) - 0x10000;\n // NaN means non-codepoint\n return high !== high || escapedWhitespace\n ? escaped\n : high < 0\n ? // BMP codepoint\n String.fromCharCode(high + 0x10000)\n : // Supplemental Plane codepoint (surrogate pair)\n String.fromCharCode((high >> 10) | 0xd800, (high & 0x3ff) | 0xdc00);\n}\nfunction unescapeCSS(str) {\n return str.replace(reEscape, funescape);\n}\nfunction isQuote(c) {\n return c === 39 /* SingleQuote */ || c === 34 /* DoubleQuote */;\n}\nfunction isWhitespace(c) {\n return (c === 32 /* Space */ ||\n c === 9 /* Tab */ ||\n c === 10 /* NewLine */ ||\n c === 12 /* FormFeed */ ||\n c === 13 /* CarriageReturn */);\n}\n/**\n * Parses `selector`, optionally with the passed `options`.\n *\n * @param selector Selector to parse.\n * @param options Options for parsing.\n * @returns Returns a two-dimensional array.\n * The first dimension represents selectors separated by commas (eg. `sub1, sub2`),\n * the second contains the relevant tokens for that selector.\n */\nexport function parse(selector) {\n const subselects = [];\n const endIndex = parseSelector(subselects, `${selector}`, 0);\n if (endIndex < selector.length) {\n throw new Error(`Unmatched selector: ${selector.slice(endIndex)}`);\n }\n return subselects;\n}\nfunction parseSelector(subselects, selector, selectorIndex) {\n let tokens = [];\n function getName(offset) {\n const match = selector.slice(selectorIndex + offset).match(reName);\n if (!match) {\n throw new Error(`Expected name, found ${selector.slice(selectorIndex)}`);\n }\n const [name] = match;\n selectorIndex += offset + name.length;\n return unescapeCSS(name);\n }\n function stripWhitespace(offset) {\n selectorIndex += offset;\n while (selectorIndex < selector.length &&\n isWhitespace(selector.charCodeAt(selectorIndex))) {\n selectorIndex++;\n }\n }\n function readValueWithParenthesis() {\n selectorIndex += 1;\n const start = selectorIndex;\n let counter = 1;\n for (; counter > 0 && selectorIndex < selector.length; selectorIndex++) {\n if (selector.charCodeAt(selectorIndex) ===\n 40 /* LeftParenthesis */ &&\n !isEscaped(selectorIndex)) {\n counter++;\n }\n else if (selector.charCodeAt(selectorIndex) ===\n 41 /* RightParenthesis */ &&\n !isEscaped(selectorIndex)) {\n counter--;\n }\n }\n if (counter) {\n throw new Error(\"Parenthesis not matched\");\n }\n return unescapeCSS(selector.slice(start, selectorIndex - 1));\n }\n function isEscaped(pos) {\n let slashCount = 0;\n while (selector.charCodeAt(--pos) === 92 /* BackSlash */)\n slashCount++;\n return (slashCount & 1) === 1;\n }\n function ensureNotTraversal() {\n if (tokens.length > 0 && isTraversal(tokens[tokens.length - 1])) {\n throw new Error(\"Did not expect successive traversals.\");\n }\n }\n function addTraversal(type) {\n if (tokens.length > 0 &&\n tokens[tokens.length - 1].type === SelectorType.Descendant) {\n tokens[tokens.length - 1].type = type;\n return;\n }\n ensureNotTraversal();\n tokens.push({ type });\n }\n function addSpecialAttribute(name, action) {\n tokens.push({\n type: SelectorType.Attribute,\n name,\n action,\n value: getName(1),\n namespace: null,\n ignoreCase: \"quirks\",\n });\n }\n /**\n * We have finished parsing the current part of the selector.\n *\n * Remove descendant tokens at the end if they exist,\n * and return the last index, so that parsing can be\n * picked up from here.\n */\n function finalizeSubselector() {\n if (tokens.length &&\n tokens[tokens.length - 1].type === SelectorType.Descendant) {\n tokens.pop();\n }\n if (tokens.length === 0) {\n throw new Error(\"Empty sub-selector\");\n }\n subselects.push(tokens);\n }\n stripWhitespace(0);\n if (selector.length === selectorIndex) {\n return selectorIndex;\n }\n loop: while (selectorIndex < selector.length) {\n const firstChar = selector.charCodeAt(selectorIndex);\n switch (firstChar) {\n // Whitespace\n case 32 /* Space */:\n case 9 /* Tab */:\n case 10 /* NewLine */:\n case 12 /* FormFeed */:\n case 13 /* CarriageReturn */: {\n if (tokens.length === 0 ||\n tokens[0].type !== SelectorType.Descendant) {\n ensureNotTraversal();\n tokens.push({ type: SelectorType.Descendant });\n }\n stripWhitespace(1);\n break;\n }\n // Traversals\n case 62 /* GreaterThan */: {\n addTraversal(SelectorType.Child);\n stripWhitespace(1);\n break;\n }\n case 60 /* LessThan */: {\n addTraversal(SelectorType.Parent);\n stripWhitespace(1);\n break;\n }\n case 126 /* Tilde */: {\n addTraversal(SelectorType.Sibling);\n stripWhitespace(1);\n break;\n }\n case 43 /* Plus */: {\n addTraversal(SelectorType.Adjacent);\n stripWhitespace(1);\n break;\n }\n // Special attribute selectors: .class, #id\n case 46 /* Period */: {\n addSpecialAttribute(\"class\", AttributeAction.Element);\n break;\n }\n case 35 /* Hash */: {\n addSpecialAttribute(\"id\", AttributeAction.Equals);\n break;\n }\n case 91 /* LeftSquareBracket */: {\n stripWhitespace(1);\n // Determine attribute name and namespace\n let name;\n let namespace = null;\n if (selector.charCodeAt(selectorIndex) === 124 /* Pipe */) {\n // Equivalent to no namespace\n name = getName(1);\n }\n else if (selector.startsWith(\"*|\", selectorIndex)) {\n namespace = \"*\";\n name = getName(2);\n }\n else {\n name = getName(0);\n if (selector.charCodeAt(selectorIndex) === 124 /* Pipe */ &&\n selector.charCodeAt(selectorIndex + 1) !==\n 61 /* Equal */) {\n namespace = name;\n name = getName(1);\n }\n }\n stripWhitespace(0);\n // Determine comparison operation\n let action = AttributeAction.Exists;\n const possibleAction = actionTypes.get(selector.charCodeAt(selectorIndex));\n if (possibleAction) {\n action = possibleAction;\n if (selector.charCodeAt(selectorIndex + 1) !==\n 61 /* Equal */) {\n throw new Error(\"Expected `=`\");\n }\n stripWhitespace(2);\n }\n else if (selector.charCodeAt(selectorIndex) === 61 /* Equal */) {\n action = AttributeAction.Equals;\n stripWhitespace(1);\n }\n // Determine value\n let value = \"\";\n let ignoreCase = null;\n if (action !== \"exists\") {\n if (isQuote(selector.charCodeAt(selectorIndex))) {\n const quote = selector.charCodeAt(selectorIndex);\n let sectionEnd = selectorIndex + 1;\n while (sectionEnd < selector.length &&\n (selector.charCodeAt(sectionEnd) !== quote ||\n isEscaped(sectionEnd))) {\n sectionEnd += 1;\n }\n if (selector.charCodeAt(sectionEnd) !== quote) {\n throw new Error(\"Attribute value didn't end\");\n }\n value = unescapeCSS(selector.slice(selectorIndex + 1, sectionEnd));\n selectorIndex = sectionEnd + 1;\n }\n else {\n const valueStart = selectorIndex;\n while (selectorIndex < selector.length &&\n ((!isWhitespace(selector.charCodeAt(selectorIndex)) &&\n selector.charCodeAt(selectorIndex) !==\n 93 /* RightSquareBracket */) ||\n isEscaped(selectorIndex))) {\n selectorIndex += 1;\n }\n value = unescapeCSS(selector.slice(valueStart, selectorIndex));\n }\n stripWhitespace(0);\n // See if we have a force ignore flag\n const forceIgnore = selector.charCodeAt(selectorIndex) | 0x20;\n // If the forceIgnore flag is set (either `i` or `s`), use that value\n if (forceIgnore === 115 /* LowerS */) {\n ignoreCase = false;\n stripWhitespace(1);\n }\n else if (forceIgnore === 105 /* LowerI */) {\n ignoreCase = true;\n stripWhitespace(1);\n }\n }\n if (selector.charCodeAt(selectorIndex) !==\n 93 /* RightSquareBracket */) {\n throw new Error(\"Attribute selector didn't terminate\");\n }\n selectorIndex += 1;\n const attributeSelector = {\n type: SelectorType.Attribute,\n name,\n action,\n value,\n namespace,\n ignoreCase,\n };\n tokens.push(attributeSelector);\n break;\n }\n case 58 /* Colon */: {\n if (selector.charCodeAt(selectorIndex + 1) === 58 /* Colon */) {\n tokens.push({\n type: SelectorType.PseudoElement,\n name: getName(2).toLowerCase(),\n data: selector.charCodeAt(selectorIndex) ===\n 40 /* LeftParenthesis */\n ? readValueWithParenthesis()\n : null,\n });\n continue;\n }\n const name = getName(1).toLowerCase();\n let data = null;\n if (selector.charCodeAt(selectorIndex) ===\n 40 /* LeftParenthesis */) {\n if (unpackPseudos.has(name)) {\n if (isQuote(selector.charCodeAt(selectorIndex + 1))) {\n throw new Error(`Pseudo-selector ${name} cannot be quoted`);\n }\n data = [];\n selectorIndex = parseSelector(data, selector, selectorIndex + 1);\n if (selector.charCodeAt(selectorIndex) !==\n 41 /* RightParenthesis */) {\n throw new Error(`Missing closing parenthesis in :${name} (${selector})`);\n }\n selectorIndex += 1;\n }\n else {\n data = readValueWithParenthesis();\n if (stripQuotesFromPseudos.has(name)) {\n const quot = data.charCodeAt(0);\n if (quot === data.charCodeAt(data.length - 1) &&\n isQuote(quot)) {\n data = data.slice(1, -1);\n }\n }\n data = unescapeCSS(data);\n }\n }\n tokens.push({ type: SelectorType.Pseudo, name, data });\n break;\n }\n case 44 /* Comma */: {\n finalizeSubselector();\n tokens = [];\n stripWhitespace(1);\n break;\n }\n default: {\n if (selector.startsWith(\"/*\", selectorIndex)) {\n const endIndex = selector.indexOf(\"*/\", selectorIndex + 2);\n if (endIndex < 0) {\n throw new Error(\"Comment was not terminated\");\n }\n selectorIndex = endIndex + 2;\n // Remove leading whitespace\n if (tokens.length === 0) {\n stripWhitespace(0);\n }\n break;\n }\n let namespace = null;\n let name;\n if (firstChar === 42 /* Asterisk */) {\n selectorIndex += 1;\n name = \"*\";\n }\n else if (firstChar === 124 /* Pipe */) {\n name = \"\";\n if (selector.charCodeAt(selectorIndex + 1) === 124 /* Pipe */) {\n addTraversal(SelectorType.ColumnCombinator);\n stripWhitespace(2);\n break;\n }\n }\n else if (reName.test(selector.slice(selectorIndex))) {\n name = getName(0);\n }\n else {\n break loop;\n }\n if (selector.charCodeAt(selectorIndex) === 124 /* Pipe */ &&\n selector.charCodeAt(selectorIndex + 1) !== 124 /* Pipe */) {\n namespace = name;\n if (selector.charCodeAt(selectorIndex + 1) ===\n 42 /* Asterisk */) {\n name = \"*\";\n selectorIndex += 2;\n }\n else {\n name = getName(1);\n }\n }\n tokens.push(name === \"*\"\n ? { type: SelectorType.Universal, namespace }\n : { type: SelectorType.Tag, name, namespace });\n }\n }\n }\n finalizeSubselector();\n return selectorIndex;\n}\n","import { SelectorType, AttributeAction } from \"./types\";\nconst attribValChars = [\"\\\\\", '\"'];\nconst pseudoValChars = [...attribValChars, \"(\", \")\"];\nconst charsToEscapeInAttributeValue = new Set(attribValChars.map((c) => c.charCodeAt(0)));\nconst charsToEscapeInPseudoValue = new Set(pseudoValChars.map((c) => c.charCodeAt(0)));\nconst charsToEscapeInName = new Set([\n ...pseudoValChars,\n \"~\",\n \"^\",\n \"$\",\n \"*\",\n \"+\",\n \"!\",\n \"|\",\n \":\",\n \"[\",\n \"]\",\n \" \",\n \".\",\n].map((c) => c.charCodeAt(0)));\n/**\n * Turns `selector` back into a string.\n *\n * @param selector Selector to stringify.\n */\nexport function stringify(selector) {\n return selector\n .map((token) => token.map(stringifyToken).join(\"\"))\n .join(\", \");\n}\nfunction stringifyToken(token, index, arr) {\n switch (token.type) {\n // Simple types\n case SelectorType.Child:\n return index === 0 ? \"> \" : \" > \";\n case SelectorType.Parent:\n return index === 0 ? \"< \" : \" < \";\n case SelectorType.Sibling:\n return index === 0 ? \"~ \" : \" ~ \";\n case SelectorType.Adjacent:\n return index === 0 ? \"+ \" : \" + \";\n case SelectorType.Descendant:\n return \" \";\n case SelectorType.ColumnCombinator:\n return index === 0 ? \"|| \" : \" || \";\n case SelectorType.Universal:\n // Return an empty string if the selector isn't needed.\n return token.namespace === \"*\" &&\n index + 1 < arr.length &&\n \"name\" in arr[index + 1]\n ? \"\"\n : `${getNamespace(token.namespace)}*`;\n case SelectorType.Tag:\n return getNamespacedName(token);\n case SelectorType.PseudoElement:\n return `::${escapeName(token.name, charsToEscapeInName)}${token.data === null\n ? \"\"\n : `(${escapeName(token.data, charsToEscapeInPseudoValue)})`}`;\n case SelectorType.Pseudo:\n return `:${escapeName(token.name, charsToEscapeInName)}${token.data === null\n ? \"\"\n : `(${typeof token.data === \"string\"\n ? escapeName(token.data, charsToEscapeInPseudoValue)\n : stringify(token.data)})`}`;\n case SelectorType.Attribute: {\n if (token.name === \"id\" &&\n token.action === AttributeAction.Equals &&\n token.ignoreCase === \"quirks\" &&\n !token.namespace) {\n return `#${escapeName(token.value, charsToEscapeInName)}`;\n }\n if (token.name === \"class\" &&\n token.action === AttributeAction.Element &&\n token.ignoreCase === \"quirks\" &&\n !token.namespace) {\n return `.${escapeName(token.value, charsToEscapeInName)}`;\n }\n const name = getNamespacedName(token);\n if (token.action === AttributeAction.Exists) {\n return `[${name}]`;\n }\n return `[${name}${getActionValue(token.action)}=\"${escapeName(token.value, charsToEscapeInAttributeValue)}\"${token.ignoreCase === null ? \"\" : token.ignoreCase ? \" i\" : \" s\"}]`;\n }\n }\n}\nfunction getActionValue(action) {\n switch (action) {\n case AttributeAction.Equals:\n return \"\";\n case AttributeAction.Element:\n return \"~\";\n case AttributeAction.Start:\n return \"^\";\n case AttributeAction.End:\n return \"$\";\n case AttributeAction.Any:\n return \"*\";\n case AttributeAction.Not:\n return \"!\";\n case AttributeAction.Hyphen:\n return \"|\";\n case AttributeAction.Exists:\n throw new Error(\"Shouldn't be here\");\n }\n}\nfunction getNamespacedName(token) {\n return `${getNamespace(token.namespace)}${escapeName(token.name, charsToEscapeInName)}`;\n}\nfunction getNamespace(namespace) {\n return namespace !== null\n ? `${namespace === \"*\"\n ? \"*\"\n : escapeName(namespace, charsToEscapeInName)}|`\n : \"\";\n}\nfunction escapeName(str, charsToEscape) {\n let lastIdx = 0;\n let ret = \"\";\n for (let i = 0; i < str.length; i++) {\n if (charsToEscape.has(str.charCodeAt(i))) {\n ret += `${str.slice(lastIdx, i)}\\\\${str.charAt(i)}`;\n lastIdx = i + 1;\n }\n }\n return ret.length > 0 ? ret + str.slice(lastIdx) : str;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isTraversal = void 0;\nvar css_what_1 = require(\"css-what\");\nvar procedure = new Map([\n [css_what_1.SelectorType.Universal, 50],\n [css_what_1.SelectorType.Tag, 30],\n [css_what_1.SelectorType.Attribute, 1],\n [css_what_1.SelectorType.Pseudo, 0],\n]);\nfunction isTraversal(token) {\n return !procedure.has(token.type);\n}\nexports.isTraversal = isTraversal;\nvar attributes = new Map([\n [css_what_1.AttributeAction.Exists, 10],\n [css_what_1.AttributeAction.Equals, 8],\n [css_what_1.AttributeAction.Not, 7],\n [css_what_1.AttributeAction.Start, 6],\n [css_what_1.AttributeAction.End, 6],\n [css_what_1.AttributeAction.Any, 5],\n]);\n/**\n * Sort the parts of the passed selector,\n * as there is potential for optimization\n * (some types of selectors are faster than others)\n *\n * @param arr Selector to sort\n */\nfunction sortByProcedure(arr) {\n var procs = arr.map(getProcedure);\n for (var i = 1; i < arr.length; i++) {\n var procNew = procs[i];\n if (procNew < 0)\n continue;\n for (var j = i - 1; j >= 0 && procNew < procs[j]; j--) {\n var token = arr[j + 1];\n arr[j + 1] = arr[j];\n arr[j] = token;\n procs[j + 1] = procs[j];\n procs[j] = procNew;\n }\n }\n}\nexports.default = sortByProcedure;\nfunction getProcedure(token) {\n var _a, _b;\n var proc = (_a = procedure.get(token.type)) !== null && _a !== void 0 ? _a : -1;\n if (token.type === css_what_1.SelectorType.Attribute) {\n proc = (_b = attributes.get(token.action)) !== null && _b !== void 0 ? _b : 4;\n if (token.action === css_what_1.AttributeAction.Equals && token.name === \"id\") {\n // Prefer ID selectors (eg. #ID)\n proc = 9;\n }\n if (token.ignoreCase) {\n /*\n * IgnoreCase adds some overhead, prefer \"normal\" token\n * this is a binary operation, to ensure it's still an int\n */\n proc >>= 1;\n }\n }\n else if (token.type === css_what_1.SelectorType.Pseudo) {\n if (!token.data) {\n proc = 3;\n }\n else if (token.name === \"has\" || token.name === \"contains\") {\n proc = 0; // Expensive in any case\n }\n else if (Array.isArray(token.data)) {\n // Eg. :matches, :not\n proc = Math.min.apply(Math, token.data.map(function (d) { return Math.min.apply(Math, d.map(getProcedure)); }));\n // If we have traversals, try to avoid executing this selector\n if (proc < 0) {\n proc = 0;\n }\n }\n else {\n proc = 2;\n }\n }\n return proc;\n}\n//# sourceMappingURL=sort.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.attributeRules = void 0;\nvar boolbase_1 = __importDefault(require(\"boolbase\"));\n/**\n * All reserved characters in a regex, used for escaping.\n *\n * Taken from XRegExp, (c) 2007-2020 Steven Levithan under the MIT license\n * https://github.com/slevithan/xregexp/blob/95eeebeb8fac8754d54eafe2b4743661ac1cf028/src/xregexp.js#L794\n */\nvar reChars = /[-[\\]{}()*+?.,\\\\^$|#\\s]/g;\nfunction escapeRegex(value) {\n return value.replace(reChars, \"\\\\$&\");\n}\n/**\n * Attributes that are case-insensitive in HTML.\n *\n * @private\n * @see https://html.spec.whatwg.org/multipage/semantics-other.html#case-sensitivity-of-selectors\n */\nvar caseInsensitiveAttributes = new Set([\n \"accept\",\n \"accept-charset\",\n \"align\",\n \"alink\",\n \"axis\",\n \"bgcolor\",\n \"charset\",\n \"checked\",\n \"clear\",\n \"codetype\",\n \"color\",\n \"compact\",\n \"declare\",\n \"defer\",\n \"dir\",\n \"direction\",\n \"disabled\",\n \"enctype\",\n \"face\",\n \"frame\",\n \"hreflang\",\n \"http-equiv\",\n \"lang\",\n \"language\",\n \"link\",\n \"media\",\n \"method\",\n \"multiple\",\n \"nohref\",\n \"noresize\",\n \"noshade\",\n \"nowrap\",\n \"readonly\",\n \"rel\",\n \"rev\",\n \"rules\",\n \"scope\",\n \"scrolling\",\n \"selected\",\n \"shape\",\n \"target\",\n \"text\",\n \"type\",\n \"valign\",\n \"valuetype\",\n \"vlink\",\n]);\nfunction shouldIgnoreCase(selector, options) {\n return typeof selector.ignoreCase === \"boolean\"\n ? selector.ignoreCase\n : selector.ignoreCase === \"quirks\"\n ? !!options.quirksMode\n : !options.xmlMode && caseInsensitiveAttributes.has(selector.name);\n}\n/**\n * Attribute selectors\n */\nexports.attributeRules = {\n equals: function (next, data, options) {\n var adapter = options.adapter;\n var name = data.name;\n var value = data.value;\n if (shouldIgnoreCase(data, options)) {\n value = value.toLowerCase();\n return function (elem) {\n var attr = adapter.getAttributeValue(elem, name);\n return (attr != null &&\n attr.length === value.length &&\n attr.toLowerCase() === value &&\n next(elem));\n };\n }\n return function (elem) {\n return adapter.getAttributeValue(elem, name) === value && next(elem);\n };\n },\n hyphen: function (next, data, options) {\n var adapter = options.adapter;\n var name = data.name;\n var value = data.value;\n var len = value.length;\n if (shouldIgnoreCase(data, options)) {\n value = value.toLowerCase();\n return function hyphenIC(elem) {\n var attr = adapter.getAttributeValue(elem, name);\n return (attr != null &&\n (attr.length === len || attr.charAt(len) === \"-\") &&\n attr.substr(0, len).toLowerCase() === value &&\n next(elem));\n };\n }\n return function hyphen(elem) {\n var attr = adapter.getAttributeValue(elem, name);\n return (attr != null &&\n (attr.length === len || attr.charAt(len) === \"-\") &&\n attr.substr(0, len) === value &&\n next(elem));\n };\n },\n element: function (next, data, options) {\n var adapter = options.adapter;\n var name = data.name, value = data.value;\n if (/\\s/.test(value)) {\n return boolbase_1.default.falseFunc;\n }\n var regex = new RegExp(\"(?:^|\\\\s)\".concat(escapeRegex(value), \"(?:$|\\\\s)\"), shouldIgnoreCase(data, options) ? \"i\" : \"\");\n return function element(elem) {\n var attr = adapter.getAttributeValue(elem, name);\n return (attr != null &&\n attr.length >= value.length &&\n regex.test(attr) &&\n next(elem));\n };\n },\n exists: function (next, _a, _b) {\n var name = _a.name;\n var adapter = _b.adapter;\n return function (elem) { return adapter.hasAttrib(elem, name) && next(elem); };\n },\n start: function (next, data, options) {\n var adapter = options.adapter;\n var name = data.name;\n var value = data.value;\n var len = value.length;\n if (len === 0) {\n return boolbase_1.default.falseFunc;\n }\n if (shouldIgnoreCase(data, options)) {\n value = value.toLowerCase();\n return function (elem) {\n var attr = adapter.getAttributeValue(elem, name);\n return (attr != null &&\n attr.length >= len &&\n attr.substr(0, len).toLowerCase() === value &&\n next(elem));\n };\n }\n return function (elem) {\n var _a;\n return !!((_a = adapter.getAttributeValue(elem, name)) === null || _a === void 0 ? void 0 : _a.startsWith(value)) &&\n next(elem);\n };\n },\n end: function (next, data, options) {\n var adapter = options.adapter;\n var name = data.name;\n var value = data.value;\n var len = -value.length;\n if (len === 0) {\n return boolbase_1.default.falseFunc;\n }\n if (shouldIgnoreCase(data, options)) {\n value = value.toLowerCase();\n return function (elem) {\n var _a;\n return ((_a = adapter\n .getAttributeValue(elem, name)) === null || _a === void 0 ? void 0 : _a.substr(len).toLowerCase()) === value && next(elem);\n };\n }\n return function (elem) {\n var _a;\n return !!((_a = adapter.getAttributeValue(elem, name)) === null || _a === void 0 ? void 0 : _a.endsWith(value)) &&\n next(elem);\n };\n },\n any: function (next, data, options) {\n var adapter = options.adapter;\n var name = data.name, value = data.value;\n if (value === \"\") {\n return boolbase_1.default.falseFunc;\n }\n if (shouldIgnoreCase(data, options)) {\n var regex_1 = new RegExp(escapeRegex(value), \"i\");\n return function anyIC(elem) {\n var attr = adapter.getAttributeValue(elem, name);\n return (attr != null &&\n attr.length >= value.length &&\n regex_1.test(attr) &&\n next(elem));\n };\n }\n return function (elem) {\n var _a;\n return !!((_a = adapter.getAttributeValue(elem, name)) === null || _a === void 0 ? void 0 : _a.includes(value)) &&\n next(elem);\n };\n },\n not: function (next, data, options) {\n var adapter = options.adapter;\n var name = data.name;\n var value = data.value;\n if (value === \"\") {\n return function (elem) {\n return !!adapter.getAttributeValue(elem, name) && next(elem);\n };\n }\n else if (shouldIgnoreCase(data, options)) {\n value = value.toLowerCase();\n return function (elem) {\n var attr = adapter.getAttributeValue(elem, name);\n return ((attr == null ||\n attr.length !== value.length ||\n attr.toLowerCase() !== value) &&\n next(elem));\n };\n }\n return function (elem) {\n return adapter.getAttributeValue(elem, name) !== value && next(elem);\n };\n },\n};\n//# sourceMappingURL=attributes.js.map","\"use strict\";\n// Following http://www.w3.org/TR/css3-selectors/#nth-child-pseudo\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parse = void 0;\n// Whitespace as per https://www.w3.org/TR/selectors-3/#lex is \" \\t\\r\\n\\f\"\nvar whitespace = new Set([9, 10, 12, 13, 32]);\nvar ZERO = \"0\".charCodeAt(0);\nvar NINE = \"9\".charCodeAt(0);\n/**\n * Parses an expression.\n *\n * @throws An `Error` if parsing fails.\n * @returns An array containing the integer step size and the integer offset of the nth rule.\n * @example nthCheck.parse(\"2n+3\"); // returns [2, 3]\n */\nfunction parse(formula) {\n formula = formula.trim().toLowerCase();\n if (formula === \"even\") {\n return [2, 0];\n }\n else if (formula === \"odd\") {\n return [2, 1];\n }\n // Parse [ ['-'|'+']? INTEGER? {N} [ S* ['-'|'+'] S* INTEGER ]?\n var idx = 0;\n var a = 0;\n var sign = readSign();\n var number = readNumber();\n if (idx < formula.length && formula.charAt(idx) === \"n\") {\n idx++;\n a = sign * (number !== null && number !== void 0 ? number : 1);\n skipWhitespace();\n if (idx < formula.length) {\n sign = readSign();\n skipWhitespace();\n number = readNumber();\n }\n else {\n sign = number = 0;\n }\n }\n // Throw if there is anything else\n if (number === null || idx < formula.length) {\n throw new Error(\"n-th rule couldn't be parsed ('\".concat(formula, \"')\"));\n }\n return [a, sign * number];\n function readSign() {\n if (formula.charAt(idx) === \"-\") {\n idx++;\n return -1;\n }\n if (formula.charAt(idx) === \"+\") {\n idx++;\n }\n return 1;\n }\n function readNumber() {\n var start = idx;\n var value = 0;\n while (idx < formula.length &&\n formula.charCodeAt(idx) >= ZERO &&\n formula.charCodeAt(idx) <= NINE) {\n value = value * 10 + (formula.charCodeAt(idx) - ZERO);\n idx++;\n }\n // Return `null` if we didn't read anything.\n return idx === start ? null : value;\n }\n function skipWhitespace() {\n while (idx < formula.length &&\n whitespace.has(formula.charCodeAt(idx))) {\n idx++;\n }\n }\n}\nexports.parse = parse;\n//# sourceMappingURL=parse.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.generate = exports.compile = void 0;\nvar boolbase_1 = __importDefault(require(\"boolbase\"));\n/**\n * Returns a function that checks if an elements index matches the given rule\n * highly optimized to return the fastest solution.\n *\n * @param parsed A tuple [a, b], as returned by `parse`.\n * @returns A highly optimized function that returns whether an index matches the nth-check.\n * @example\n *\n * ```js\n * const check = nthCheck.compile([2, 3]);\n *\n * check(0); // `false`\n * check(1); // `false`\n * check(2); // `true`\n * check(3); // `false`\n * check(4); // `true`\n * check(5); // `false`\n * check(6); // `true`\n * ```\n */\nfunction compile(parsed) {\n var a = parsed[0];\n // Subtract 1 from `b`, to convert from one- to zero-indexed.\n var b = parsed[1] - 1;\n /*\n * When `b <= 0`, `a * n` won't be lead to any matches for `a < 0`.\n * Besides, the specification states that no elements are\n * matched when `a` and `b` are 0.\n *\n * `b < 0` here as we subtracted 1 from `b` above.\n */\n if (b < 0 && a <= 0)\n return boolbase_1.default.falseFunc;\n // When `a` is in the range -1..1, it matches any element (so only `b` is checked).\n if (a === -1)\n return function (index) { return index <= b; };\n if (a === 0)\n return function (index) { return index === b; };\n // When `b <= 0` and `a === 1`, they match any element.\n if (a === 1)\n return b < 0 ? boolbase_1.default.trueFunc : function (index) { return index >= b; };\n /*\n * Otherwise, modulo can be used to check if there is a match.\n *\n * Modulo doesn't care about the sign, so let's use `a`s absolute value.\n */\n var absA = Math.abs(a);\n // Get `b mod a`, + a if this is negative.\n var bMod = ((b % absA) + absA) % absA;\n return a > 1\n ? function (index) { return index >= b && index % absA === bMod; }\n : function (index) { return index <= b && index % absA === bMod; };\n}\nexports.compile = compile;\n/**\n * Returns a function that produces a monotonously increasing sequence of indices.\n *\n * If the sequence has an end, the returned function will return `null` after\n * the last index in the sequence.\n *\n * @param parsed A tuple [a, b], as returned by `parse`.\n * @returns A function that produces a sequence of indices.\n * @example <caption>Always increasing (2n+3)</caption>\n *\n * ```js\n * const gen = nthCheck.generate([2, 3])\n *\n * gen() // `1`\n * gen() // `3`\n * gen() // `5`\n * gen() // `8`\n * gen() // `11`\n * ```\n *\n * @example <caption>With end value (-2n+10)</caption>\n *\n * ```js\n *\n * const gen = nthCheck.generate([-2, 5]);\n *\n * gen() // 0\n * gen() // 2\n * gen() // 4\n * gen() // null\n * ```\n */\nfunction generate(parsed) {\n var a = parsed[0];\n // Subtract 1 from `b`, to convert from one- to zero-indexed.\n var b = parsed[1] - 1;\n var n = 0;\n // Make sure to always return an increasing sequence\n if (a < 0) {\n var aPos_1 = -a;\n // Get `b mod a`\n var minValue_1 = ((b % aPos_1) + aPos_1) % aPos_1;\n return function () {\n var val = minValue_1 + aPos_1 * n++;\n return val > b ? null : val;\n };\n }\n if (a === 0)\n return b < 0\n ? // There are no result — always return `null`\n function () { return null; }\n : // Return `b` exactly once\n function () { return (n++ === 0 ? b : null); };\n if (b < 0) {\n b += a * Math.ceil(-b / a);\n }\n return function () { return a * n++ + b; };\n}\nexports.generate = generate;\n//# sourceMappingURL=compile.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sequence = exports.generate = exports.compile = exports.parse = void 0;\nvar parse_js_1 = require(\"./parse.js\");\nObject.defineProperty(exports, \"parse\", { enumerable: true, get: function () { return parse_js_1.parse; } });\nvar compile_js_1 = require(\"./compile.js\");\nObject.defineProperty(exports, \"compile\", { enumerable: true, get: function () { return compile_js_1.compile; } });\nObject.defineProperty(exports, \"generate\", { enumerable: true, get: function () { return compile_js_1.generate; } });\n/**\n * Parses and compiles a formula to a highly optimized function.\n * Combination of {@link parse} and {@link compile}.\n *\n * If the formula doesn't match any elements,\n * it returns [`boolbase`](https://github.com/fb55/boolbase)'s `falseFunc`.\n * Otherwise, a function accepting an _index_ is returned, which returns\n * whether or not the passed _index_ matches the formula.\n *\n * Note: The nth-rule starts counting at `1`, the returned function at `0`.\n *\n * @param formula The formula to compile.\n * @example\n * const check = nthCheck(\"2n+3\");\n *\n * check(0); // `false`\n * check(1); // `false`\n * check(2); // `true`\n * check(3); // `false`\n * check(4); // `true`\n * check(5); // `false`\n * check(6); // `true`\n */\nfunction nthCheck(formula) {\n return (0, compile_js_1.compile)((0, parse_js_1.parse)(formula));\n}\nexports.default = nthCheck;\n/**\n * Parses and compiles a formula to a generator that produces a sequence of indices.\n * Combination of {@link parse} and {@link generate}.\n *\n * @param formula The formula to compile.\n * @returns A function that produces a sequence of indices.\n * @example <caption>Always increasing</caption>\n *\n * ```js\n * const gen = nthCheck.sequence('2n+3')\n *\n * gen() // `1`\n * gen() // `3`\n * gen() // `5`\n * gen() // `8`\n * gen() // `11`\n * ```\n *\n * @example <caption>With end value</caption>\n *\n * ```js\n *\n * const gen = nthCheck.sequence('-2n+5');\n *\n * gen() // 0\n * gen() // 2\n * gen() // 4\n * gen() // null\n * ```\n */\nfunction sequence(formula) {\n return (0, compile_js_1.generate)((0, parse_js_1.parse)(formula));\n}\nexports.sequence = sequence;\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.filters = void 0;\nvar nth_check_1 = __importDefault(require(\"nth-check\"));\nvar boolbase_1 = __importDefault(require(\"boolbase\"));\nfunction getChildFunc(next, adapter) {\n return function (elem) {\n var parent = adapter.getParent(elem);\n return parent != null && adapter.isTag(parent) && next(elem);\n };\n}\nexports.filters = {\n contains: function (next, text, _a) {\n var adapter = _a.adapter;\n return function contains(elem) {\n return next(elem) && adapter.getText(elem).includes(text);\n };\n },\n icontains: function (next, text, _a) {\n var adapter = _a.adapter;\n var itext = text.toLowerCase();\n return function icontains(elem) {\n return (next(elem) &&\n adapter.getText(elem).toLowerCase().includes(itext));\n };\n },\n // Location specific methods\n \"nth-child\": function (next, rule, _a) {\n var adapter = _a.adapter, equals = _a.equals;\n var func = (0, nth_check_1.default)(rule);\n if (func === boolbase_1.default.falseFunc)\n return boolbase_1.default.falseFunc;\n if (func === boolbase_1.default.trueFunc)\n return getChildFunc(next, adapter);\n return function nthChild(elem) {\n var siblings = adapter.getSiblings(elem);\n var pos = 0;\n for (var i = 0; i < siblings.length; i++) {\n if (equals(elem, siblings[i]))\n break;\n if (adapter.isTag(siblings[i])) {\n pos++;\n }\n }\n return func(pos) && next(elem);\n };\n },\n \"nth-last-child\": function (next, rule, _a) {\n var adapter = _a.adapter, equals = _a.equals;\n var func = (0, nth_check_1.default)(rule);\n if (func === boolbase_1.default.falseFunc)\n return boolbase_1.default.falseFunc;\n if (func === boolbase_1.default.trueFunc)\n return getChildFunc(next, adapter);\n return function nthLastChild(elem) {\n var siblings = adapter.getSiblings(elem);\n var pos = 0;\n for (var i = siblings.length - 1; i >= 0; i--) {\n if (equals(elem, siblings[i]))\n break;\n if (adapter.isTag(siblings[i])) {\n pos++;\n }\n }\n return func(pos) && next(elem);\n };\n },\n \"nth-of-type\": function (next, rule, _a) {\n var adapter = _a.adapter, equals = _a.equals;\n var func = (0, nth_check_1.default)(rule);\n if (func === boolbase_1.default.falseFunc)\n return boolbase_1.default.falseFunc;\n if (func === boolbase_1.default.trueFunc)\n return getChildFunc(next, adapter);\n return function nthOfType(elem) {\n var siblings = adapter.getSiblings(elem);\n var pos = 0;\n for (var i = 0; i < siblings.length; i++) {\n var currentSibling = siblings[i];\n if (equals(elem, currentSibling))\n break;\n if (adapter.isTag(currentSibling) &&\n adapter.getName(currentSibling) === adapter.getName(elem)) {\n pos++;\n }\n }\n return func(pos) && next(elem);\n };\n },\n \"nth-last-of-type\": function (next, rule, _a) {\n var adapter = _a.adapter, equals = _a.equals;\n var func = (0, nth_check_1.default)(rule);\n if (func === boolbase_1.default.falseFunc)\n return boolbase_1.default.falseFunc;\n if (func === boolbase_1.default.trueFunc)\n return getChildFunc(next, adapter);\n return function nthLastOfType(elem) {\n var siblings = adapter.getSiblings(elem);\n var pos = 0;\n for (var i = siblings.length - 1; i >= 0; i--) {\n var currentSibling = siblings[i];\n if (equals(elem, currentSibling))\n break;\n if (adapter.isTag(currentSibling) &&\n adapter.getName(currentSibling) === adapter.getName(elem)) {\n pos++;\n }\n }\n return func(pos) && next(elem);\n };\n },\n // TODO determine the actual root element\n root: function (next, _rule, _a) {\n var adapter = _a.adapter;\n return function (elem) {\n var parent = adapter.getParent(elem);\n return (parent == null || !adapter.isTag(parent)) && next(elem);\n };\n },\n scope: function (next, rule, options, context) {\n var equals = options.equals;\n if (!context || context.length === 0) {\n // Equivalent to :root\n return exports.filters[\"root\"](next, rule, options);\n }\n if (context.length === 1) {\n // NOTE: can't be unpacked, as :has uses this for side-effects\n return function (elem) { return equals(context[0], elem) && next(elem); };\n }\n return function (elem) { return context.includes(elem) && next(elem); };\n },\n hover: dynamicStatePseudo(\"isHovered\"),\n visited: dynamicStatePseudo(\"isVisited\"),\n active: dynamicStatePseudo(\"isActive\"),\n};\n/**\n * Dynamic state pseudos. These depend on optional Adapter methods.\n *\n * @param name The name of the adapter method to call.\n * @returns Pseudo for the `filters` object.\n */\nfunction dynamicStatePseudo(name) {\n return function dynamicPseudo(next, _rule, _a) {\n var adapter = _a.adapter;\n var func = adapter[name];\n if (typeof func !== \"function\") {\n return boolbase_1.default.falseFunc;\n }\n return function active(elem) {\n return func(elem) && next(elem);\n };\n };\n}\n//# sourceMappingURL=filters.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.verifyPseudoArgs = exports.pseudos = void 0;\n// While filters are precompiled, pseudos get called when they are needed\nexports.pseudos = {\n empty: function (elem, _a) {\n var adapter = _a.adapter;\n return !adapter.getChildren(elem).some(function (elem) {\n // FIXME: `getText` call is potentially expensive.\n return adapter.isTag(elem) || adapter.getText(elem) !== \"\";\n });\n },\n \"first-child\": function (elem, _a) {\n var adapter = _a.adapter, equals = _a.equals;\n if (adapter.prevElementSibling) {\n return adapter.prevElementSibling(elem) == null;\n }\n var firstChild = adapter\n .getSiblings(elem)\n .find(function (elem) { return adapter.isTag(elem); });\n return firstChild != null && equals(elem, firstChild);\n },\n \"last-child\": function (elem, _a) {\n var adapter = _a.adapter, equals = _a.equals;\n var siblings = adapter.getSiblings(elem);\n for (var i = siblings.length - 1; i >= 0; i--) {\n if (equals(elem, siblings[i]))\n return true;\n if (adapter.isTag(siblings[i]))\n break;\n }\n return false;\n },\n \"first-of-type\": function (elem, _a) {\n var adapter = _a.adapter, equals = _a.equals;\n var siblings = adapter.getSiblings(elem);\n var elemName = adapter.getName(elem);\n for (var i = 0; i < siblings.length; i++) {\n var currentSibling = siblings[i];\n if (equals(elem, currentSibling))\n return true;\n if (adapter.isTag(currentSibling) &&\n adapter.getName(currentSibling) === elemName) {\n break;\n }\n }\n return false;\n },\n \"last-of-type\": function (elem, _a) {\n var adapter = _a.adapter, equals = _a.equals;\n var siblings = adapter.getSiblings(elem);\n var elemName = adapter.getName(elem);\n for (var i = siblings.length - 1; i >= 0; i--) {\n var currentSibling = siblings[i];\n if (equals(elem, currentSibling))\n return true;\n if (adapter.isTag(currentSibling) &&\n adapter.getName(currentSibling) === elemName) {\n break;\n }\n }\n return false;\n },\n \"only-of-type\": function (elem, _a) {\n var adapter = _a.adapter, equals = _a.equals;\n var elemName = adapter.getName(elem);\n return adapter\n .getSiblings(elem)\n .every(function (sibling) {\n return equals(elem, sibling) ||\n !adapter.isTag(sibling) ||\n adapter.getName(sibling) !== elemName;\n });\n },\n \"only-child\": function (elem, _a) {\n var adapter = _a.adapter, equals = _a.equals;\n return adapter\n .getSiblings(elem)\n .every(function (sibling) { return equals(elem, sibling) || !adapter.isTag(sibling); });\n },\n};\nfunction verifyPseudoArgs(func, name, subselect, argIndex) {\n if (subselect === null) {\n if (func.length > argIndex) {\n throw new Error(\"Pseudo-class :\".concat(name, \" requires an argument\"));\n }\n }\n else if (func.length === argIndex) {\n throw new Error(\"Pseudo-class :\".concat(name, \" doesn't have any arguments\"));\n }\n}\nexports.verifyPseudoArgs = verifyPseudoArgs;\n//# sourceMappingURL=pseudos.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.aliases = void 0;\n/**\n * Aliases are pseudos that are expressed as selectors.\n */\nexports.aliases = {\n // Links\n \"any-link\": \":is(a, area, link)[href]\",\n link: \":any-link:not(:visited)\",\n // Forms\n // https://html.spec.whatwg.org/multipage/scripting.html#disabled-elements\n disabled: \":is(\\n :is(button, input, select, textarea, optgroup, option)[disabled],\\n optgroup[disabled] > option,\\n fieldset[disabled]:not(fieldset[disabled] legend:first-of-type *)\\n )\",\n enabled: \":not(:disabled)\",\n checked: \":is(:is(input[type=radio], input[type=checkbox])[checked], option:selected)\",\n required: \":is(input, select, textarea)[required]\",\n optional: \":is(input, select, textarea):not([required])\",\n // JQuery extensions\n // https://html.spec.whatwg.org/multipage/form-elements.html#concept-option-selectedness\n selected: \"option:is([selected], select:not([multiple]):not(:has(> option[selected])) > :first-of-type)\",\n checkbox: \"[type=checkbox]\",\n file: \"[type=file]\",\n password: \"[type=password]\",\n radio: \"[type=radio]\",\n reset: \"[type=reset]\",\n image: \"[type=image]\",\n submit: \"[type=submit]\",\n parent: \":not(:empty)\",\n header: \":is(h1, h2, h3, h4, h5, h6)\",\n button: \":is(button, input[type=button])\",\n input: \":is(input, textarea, select, button)\",\n text: \"input:is(:not([type!='']), [type=text])\",\n};\n//# sourceMappingURL=aliases.js.map","\"use strict\";\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.subselects = exports.getNextSiblings = exports.ensureIsTag = exports.PLACEHOLDER_ELEMENT = void 0;\nvar boolbase_1 = __importDefault(require(\"boolbase\"));\nvar sort_js_1 = require(\"../sort.js\");\n/** Used as a placeholder for :has. Will be replaced with the actual element. */\nexports.PLACEHOLDER_ELEMENT = {};\nfunction ensureIsTag(next, adapter) {\n if (next === boolbase_1.default.falseFunc)\n return boolbase_1.default.falseFunc;\n return function (elem) { return adapter.isTag(elem) && next(elem); };\n}\nexports.ensureIsTag = ensureIsTag;\nfunction getNextSiblings(elem, adapter) {\n var siblings = adapter.getSiblings(elem);\n if (siblings.length <= 1)\n return [];\n var elemIndex = siblings.indexOf(elem);\n if (elemIndex < 0 || elemIndex === siblings.length - 1)\n return [];\n return siblings.slice(elemIndex + 1).filter(adapter.isTag);\n}\nexports.getNextSiblings = getNextSiblings;\nfunction copyOptions(options) {\n // Not copied: context, rootFunc\n return {\n xmlMode: !!options.xmlMode,\n lowerCaseAttributeNames: !!options.lowerCaseAttributeNames,\n lowerCaseTags: !!options.lowerCaseTags,\n quirksMode: !!options.quirksMode,\n cacheResults: !!options.cacheResults,\n pseudos: options.pseudos,\n adapter: options.adapter,\n equals: options.equals,\n };\n}\nvar is = function (next, token, options, context, compileToken) {\n var func = compileToken(token, copyOptions(options), context);\n return func === boolbase_1.default.trueFunc\n ? next\n : func === boolbase_1.default.falseFunc\n ? boolbase_1.default.falseFunc\n : function (elem) { return func(elem) && next(elem); };\n};\n/*\n * :not, :has, :is, :matches and :where have to compile selectors\n * doing this in src/pseudos.ts would lead to circular dependencies,\n * so we add them here\n */\nexports.subselects = {\n is: is,\n /**\n * `:matches` and `:where` are aliases for `:is`.\n */\n matches: is,\n where: is,\n not: function (next, token, options, context, compileToken) {\n var func = compileToken(token, copyOptions(options), context);\n return func === boolbase_1.default.falseFunc\n ? next\n : func === boolbase_1.default.trueFunc\n ? boolbase_1.default.falseFunc\n : function (elem) { return !func(elem) && next(elem); };\n },\n has: function (next, subselect, options, _context, compileToken) {\n var adapter = options.adapter;\n var opts = copyOptions(options);\n opts.relativeSelector = true;\n var context = subselect.some(function (s) { return s.some(sort_js_1.isTraversal); })\n ? // Used as a placeholder. Will be replaced with the actual element.\n [exports.PLACEHOLDER_ELEMENT]\n : undefined;\n var compiled = compileToken(subselect, opts, context);\n if (compiled === boolbase_1.default.falseFunc)\n return boolbase_1.default.falseFunc;\n var hasElement = ensureIsTag(compiled, adapter);\n // If `compiled` is `trueFunc`, we can skip this.\n if (context && compiled !== boolbase_1.default.trueFunc) {\n /*\n * `shouldTestNextSiblings` will only be true if the query starts with\n * a traversal (sibling or adjacent). That means we will always have a context.\n */\n var _a = compiled.shouldTestNextSiblings, shouldTestNextSiblings_1 = _a === void 0 ? false : _a;\n return function (elem) {\n if (!next(elem))\n return false;\n context[0] = elem;\n var childs = adapter.getChildren(elem);\n var nextElements = shouldTestNextSiblings_1\n ? __spreadArray(__spreadArray([], childs, true), getNextSiblings(elem, adapter), true) : childs;\n return adapter.existsOne(hasElement, nextElements);\n };\n }\n return function (elem) {\n return next(elem) &&\n adapter.existsOne(hasElement, adapter.getChildren(elem));\n };\n },\n};\n//# sourceMappingURL=subselects.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.compilePseudoSelector = exports.aliases = exports.pseudos = exports.filters = void 0;\nvar css_what_1 = require(\"css-what\");\nvar filters_js_1 = require(\"./filters.js\");\nObject.defineProperty(exports, \"filters\", { enumerable: true, get: function () { return filters_js_1.filters; } });\nvar pseudos_js_1 = require(\"./pseudos.js\");\nObject.defineProperty(exports, \"pseudos\", { enumerable: true, get: function () { return pseudos_js_1.pseudos; } });\nvar aliases_js_1 = require(\"./aliases.js\");\nObject.defineProperty(exports, \"aliases\", { enumerable: true, get: function () { return aliases_js_1.aliases; } });\nvar subselects_js_1 = require(\"./subselects.js\");\nfunction compilePseudoSelector(next, selector, options, context, compileToken) {\n var _a;\n var name = selector.name, data = selector.data;\n if (Array.isArray(data)) {\n if (!(name in subselects_js_1.subselects)) {\n throw new Error(\"Unknown pseudo-class :\".concat(name, \"(\").concat(data, \")\"));\n }\n return subselects_js_1.subselects[name](next, data, options, context, compileToken);\n }\n var userPseudo = (_a = options.pseudos) === null || _a === void 0 ? void 0 : _a[name];\n var stringPseudo = typeof userPseudo === \"string\" ? userPseudo : aliases_js_1.aliases[name];\n if (typeof stringPseudo === \"string\") {\n if (data != null) {\n throw new Error(\"Pseudo \".concat(name, \" doesn't have any arguments\"));\n }\n // The alias has to be parsed here, to make sure options are respected.\n var alias = (0, css_what_1.parse)(stringPseudo);\n return subselects_js_1.subselects[\"is\"](next, alias, options, context, compileToken);\n }\n if (typeof userPseudo === \"function\") {\n (0, pseudos_js_1.verifyPseudoArgs)(userPseudo, name, data, 1);\n return function (elem) { return userPseudo(elem, data) && next(elem); };\n }\n if (name in filters_js_1.filters) {\n return filters_js_1.filters[name](next, data, options, context);\n }\n if (name in pseudos_js_1.pseudos) {\n var pseudo_1 = pseudos_js_1.pseudos[name];\n (0, pseudos_js_1.verifyPseudoArgs)(pseudo_1, name, data, 2);\n return function (elem) { return pseudo_1(elem, options, data) && next(elem); };\n }\n throw new Error(\"Unknown pseudo-class :\".concat(name));\n}\nexports.compilePseudoSelector = compilePseudoSelector;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.compileGeneralSelector = void 0;\nvar attributes_js_1 = require(\"./attributes.js\");\nvar index_js_1 = require(\"./pseudo-selectors/index.js\");\nvar css_what_1 = require(\"css-what\");\nfunction getElementParent(node, adapter) {\n var parent = adapter.getParent(node);\n if (parent && adapter.isTag(parent)) {\n return parent;\n }\n return null;\n}\n/*\n * All available rules\n */\nfunction compileGeneralSelector(next, selector, options, context, compileToken) {\n var adapter = options.adapter, equals = options.equals;\n switch (selector.type) {\n case css_what_1.SelectorType.PseudoElement: {\n throw new Error(\"Pseudo-elements are not supported by css-select\");\n }\n case css_what_1.SelectorType.ColumnCombinator: {\n throw new Error(\"Column combinators are not yet supported by css-select\");\n }\n case css_what_1.SelectorType.Attribute: {\n if (selector.namespace != null) {\n throw new Error(\"Namespaced attributes are not yet supported by css-select\");\n }\n if (!options.xmlMode || options.lowerCaseAttributeNames) {\n selector.name = selector.name.toLowerCase();\n }\n return attributes_js_1.attributeRules[selector.action](next, selector, options);\n }\n case css_what_1.SelectorType.Pseudo: {\n return (0, index_js_1.compilePseudoSelector)(next, selector, options, context, compileToken);\n }\n // Tags\n case css_what_1.SelectorType.Tag: {\n if (selector.namespace != null) {\n throw new Error(\"Namespaced tag names are not yet supported by css-select\");\n }\n var name_1 = selector.name;\n if (!options.xmlMode || options.lowerCaseTags) {\n name_1 = name_1.toLowerCase();\n }\n return function tag(elem) {\n return adapter.getName(elem) === name_1 && next(elem);\n };\n }\n // Traversal\n case css_what_1.SelectorType.Descendant: {\n if (options.cacheResults === false ||\n typeof WeakSet === \"undefined\") {\n return function descendant(elem) {\n var current = elem;\n while ((current = getElementParent(current, adapter))) {\n if (next(current)) {\n return true;\n }\n }\n return false;\n };\n }\n // @ts-expect-error `ElementNode` is not extending object\n var isFalseCache_1 = new WeakSet();\n return function cachedDescendant(elem) {\n var current = elem;\n while ((current = getElementParent(current, adapter))) {\n if (!isFalseCache_1.has(current)) {\n if (adapter.isTag(current) && next(current)) {\n return true;\n }\n isFalseCache_1.add(current);\n }\n }\n return false;\n };\n }\n case \"_flexibleDescendant\": {\n // Include element itself, only used while querying an array\n return function flexibleDescendant(elem) {\n var current = elem;\n do {\n if (next(current))\n return true;\n } while ((current = getElementParent(current, adapter)));\n return false;\n };\n }\n case css_what_1.SelectorType.Parent: {\n return function parent(elem) {\n return adapter\n .getChildren(elem)\n .some(function (elem) { return adapter.isTag(elem) && next(elem); });\n };\n }\n case css_what_1.SelectorType.Child: {\n return function child(elem) {\n var parent = adapter.getParent(elem);\n return parent != null && adapter.isTag(parent) && next(parent);\n };\n }\n case css_what_1.SelectorType.Sibling: {\n return function sibling(elem) {\n var siblings = adapter.getSiblings(elem);\n for (var i = 0; i < siblings.length; i++) {\n var currentSibling = siblings[i];\n if (equals(elem, currentSibling))\n break;\n if (adapter.isTag(currentSibling) && next(currentSibling)) {\n return true;\n }\n }\n return false;\n };\n }\n case css_what_1.SelectorType.Adjacent: {\n if (adapter.prevElementSibling) {\n return function adjacent(elem) {\n var previous = adapter.prevElementSibling(elem);\n return previous != null && next(previous);\n };\n }\n return function adjacent(elem) {\n var siblings = adapter.getSiblings(elem);\n var lastElement;\n for (var i = 0; i < siblings.length; i++) {\n var currentSibling = siblings[i];\n if (equals(elem, currentSibling))\n break;\n if (adapter.isTag(currentSibling)) {\n lastElement = currentSibling;\n }\n }\n return !!lastElement && next(lastElement);\n };\n }\n case css_what_1.SelectorType.Universal: {\n if (selector.namespace != null && selector.namespace !== \"*\") {\n throw new Error(\"Namespaced universal selectors are not yet supported by css-select\");\n }\n return next;\n }\n }\n}\nexports.compileGeneralSelector = compileGeneralSelector;\n//# sourceMappingURL=general.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.compileToken = exports.compileUnsafe = exports.compile = void 0;\nvar css_what_1 = require(\"css-what\");\nvar boolbase_1 = __importDefault(require(\"boolbase\"));\nvar sort_js_1 = __importStar(require(\"./sort.js\"));\nvar general_js_1 = require(\"./general.js\");\nvar subselects_js_1 = require(\"./pseudo-selectors/subselects.js\");\n/**\n * Compiles a selector to an executable function.\n *\n * @param selector Selector to compile.\n * @param options Compilation options.\n * @param context Optional context for the selector.\n */\nfunction compile(selector, options, context) {\n var next = compileUnsafe(selector, options, context);\n return (0, subselects_js_1.ensureIsTag)(next, options.adapter);\n}\nexports.compile = compile;\nfunction compileUnsafe(selector, options, context) {\n var token = typeof selector === \"string\" ? (0, css_what_1.parse)(selector) : selector;\n return compileToken(token, options, context);\n}\nexports.compileUnsafe = compileUnsafe;\nfunction includesScopePseudo(t) {\n return (t.type === css_what_1.SelectorType.Pseudo &&\n (t.name === \"scope\" ||\n (Array.isArray(t.data) &&\n t.data.some(function (data) { return data.some(includesScopePseudo); }))));\n}\nvar DESCENDANT_TOKEN = { type: css_what_1.SelectorType.Descendant };\nvar FLEXIBLE_DESCENDANT_TOKEN = {\n type: \"_flexibleDescendant\",\n};\nvar SCOPE_TOKEN = {\n type: css_what_1.SelectorType.Pseudo,\n name: \"scope\",\n data: null,\n};\n/*\n * CSS 4 Spec (Draft): 3.4.1. Absolutizing a Relative Selector\n * http://www.w3.org/TR/selectors4/#absolutizing\n */\nfunction absolutize(token, _a, context) {\n var adapter = _a.adapter;\n // TODO Use better check if the context is a document\n var hasContext = !!(context === null || context === void 0 ? void 0 : context.every(function (e) {\n var parent = adapter.isTag(e) && adapter.getParent(e);\n return e === subselects_js_1.PLACEHOLDER_ELEMENT || (parent && adapter.isTag(parent));\n }));\n for (var _i = 0, token_1 = token; _i < token_1.length; _i++) {\n var t = token_1[_i];\n if (t.length > 0 &&\n (0, sort_js_1.isTraversal)(t[0]) &&\n t[0].type !== css_what_1.SelectorType.Descendant) {\n // Don't continue in else branch\n }\n else if (hasContext && !t.some(includesScopePseudo)) {\n t.unshift(DESCENDANT_TOKEN);\n }\n else {\n continue;\n }\n t.unshift(SCOPE_TOKEN);\n }\n}\nfunction compileToken(token, options, context) {\n var _a;\n token.forEach(sort_js_1.default);\n context = (_a = options.context) !== null && _a !== void 0 ? _a : context;\n var isArrayContext = Array.isArray(context);\n var finalContext = context && (Array.isArray(context) ? context : [context]);\n // Check if the selector is relative\n if (options.relativeSelector !== false) {\n absolutize(token, options, finalContext);\n }\n else if (token.some(function (t) { return t.length > 0 && (0, sort_js_1.isTraversal)(t[0]); })) {\n throw new Error(\"Relative selectors are not allowed when the `relativeSelector` option is disabled\");\n }\n var shouldTestNextSiblings = false;\n var query = token\n .map(function (rules) {\n if (rules.length >= 2) {\n var first = rules[0], second = rules[1];\n if (first.type !== css_what_1.SelectorType.Pseudo ||\n first.name !== \"scope\") {\n // Ignore\n }\n else if (isArrayContext &&\n second.type === css_what_1.SelectorType.Descendant) {\n rules[1] = FLEXIBLE_DESCENDANT_TOKEN;\n }\n else if (second.type === css_what_1.SelectorType.Adjacent ||\n second.type === css_what_1.SelectorType.Sibling) {\n shouldTestNextSiblings = true;\n }\n }\n return compileRules(rules, options, finalContext);\n })\n .reduce(reduceRules, boolbase_1.default.falseFunc);\n query.shouldTestNextSiblings = shouldTestNextSiblings;\n return query;\n}\nexports.compileToken = compileToken;\nfunction compileRules(rules, options, context) {\n var _a;\n return rules.reduce(function (previous, rule) {\n return previous === boolbase_1.default.falseFunc\n ? boolbase_1.default.falseFunc\n : (0, general_js_1.compileGeneralSelector)(previous, rule, options, context, compileToken);\n }, (_a = options.rootFunc) !== null && _a !== void 0 ? _a : boolbase_1.default.trueFunc);\n}\nfunction reduceRules(a, b) {\n if (b === boolbase_1.default.falseFunc || a === boolbase_1.default.trueFunc) {\n return a;\n }\n if (a === boolbase_1.default.falseFunc || b === boolbase_1.default.trueFunc) {\n return b;\n }\n return function combine(elem) {\n return a(elem) || b(elem);\n };\n}\n//# sourceMappingURL=compile.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.aliases = exports.pseudos = exports.filters = exports.is = exports.selectOne = exports.selectAll = exports.prepareContext = exports._compileToken = exports._compileUnsafe = exports.compile = void 0;\nvar DomUtils = __importStar(require(\"domutils\"));\nvar boolbase_1 = __importDefault(require(\"boolbase\"));\nvar compile_js_1 = require(\"./compile.js\");\nvar subselects_js_1 = require(\"./pseudo-selectors/subselects.js\");\nvar defaultEquals = function (a, b) { return a === b; };\nvar defaultOptions = {\n adapter: DomUtils,\n equals: defaultEquals,\n};\nfunction convertOptionFormats(options) {\n var _a, _b, _c, _d;\n /*\n * We force one format of options to the other one.\n */\n // @ts-expect-error Default options may have incompatible `Node` / `ElementNode`.\n var opts = options !== null && options !== void 0 ? options : defaultOptions;\n // @ts-expect-error Same as above.\n (_a = opts.adapter) !== null && _a !== void 0 ? _a : (opts.adapter = DomUtils);\n // @ts-expect-error `equals` does not exist on `Options`\n (_b = opts.equals) !== null && _b !== void 0 ? _b : (opts.equals = (_d = (_c = opts.adapter) === null || _c === void 0 ? void 0 : _c.equals) !== null && _d !== void 0 ? _d : defaultEquals);\n return opts;\n}\nfunction wrapCompile(func) {\n return function addAdapter(selector, options, context) {\n var opts = convertOptionFormats(options);\n return func(selector, opts, context);\n };\n}\n/**\n * Compiles the query, returns a function.\n */\nexports.compile = wrapCompile(compile_js_1.compile);\nexports._compileUnsafe = wrapCompile(compile_js_1.compileUnsafe);\nexports._compileToken = wrapCompile(compile_js_1.compileToken);\nfunction getSelectorFunc(searchFunc) {\n return function select(query, elements, options) {\n var opts = convertOptionFormats(options);\n if (typeof query !== \"function\") {\n query = (0, compile_js_1.compileUnsafe)(query, opts, elements);\n }\n var filteredElements = prepareContext(elements, opts.adapter, query.shouldTestNextSiblings);\n return searchFunc(query, filteredElements, opts);\n };\n}\nfunction prepareContext(elems, adapter, shouldTestNextSiblings) {\n if (shouldTestNextSiblings === void 0) { shouldTestNextSiblings = false; }\n /*\n * Add siblings if the query requires them.\n * See https://github.com/fb55/css-select/pull/43#issuecomment-225414692\n */\n if (shouldTestNextSiblings) {\n elems = appendNextSiblings(elems, adapter);\n }\n return Array.isArray(elems)\n ? adapter.removeSubsets(elems)\n : adapter.getChildren(elems);\n}\nexports.prepareContext = prepareContext;\nfunction appendNextSiblings(elem, adapter) {\n // Order matters because jQuery seems to check the children before the siblings\n var elems = Array.isArray(elem) ? elem.slice(0) : [elem];\n var elemsLength = elems.length;\n for (var i = 0; i < elemsLength; i++) {\n var nextSiblings = (0, subselects_js_1.getNextSiblings)(elems[i], adapter);\n elems.push.apply(elems, nextSiblings);\n }\n return elems;\n}\n/**\n * @template Node The generic Node type for the DOM adapter being used.\n * @template ElementNode The Node type for elements for the DOM adapter being used.\n * @param elems Elements to query. If it is an element, its children will be queried..\n * @param query can be either a CSS selector string or a compiled query function.\n * @param [options] options for querying the document.\n * @see compile for supported selector queries.\n * @returns All matching elements.\n *\n */\nexports.selectAll = getSelectorFunc(function (query, elems, options) {\n return query === boolbase_1.default.falseFunc || !elems || elems.length === 0\n ? []\n : options.adapter.findAll(query, elems);\n});\n/**\n * @template Node The generic Node type for the DOM adapter being used.\n * @template ElementNode The Node type for elements for the DOM adapter being used.\n * @param elems Elements to query. If it is an element, its children will be queried..\n * @param query can be either a CSS selector string or a compiled query function.\n * @param [options] options for querying the document.\n * @see compile for supported selector queries.\n * @returns the first match, or null if there was no match.\n */\nexports.selectOne = getSelectorFunc(function (query, elems, options) {\n return query === boolbase_1.default.falseFunc || !elems || elems.length === 0\n ? null\n : options.adapter.findOne(query, elems);\n});\n/**\n * Tests whether or not an element is matched by query.\n *\n * @template Node The generic Node type for the DOM adapter being used.\n * @template ElementNode The Node type for elements for the DOM adapter being used.\n * @param elem The element to test if it matches the query.\n * @param query can be either a CSS selector string or a compiled query function.\n * @param [options] options for querying the document.\n * @see compile for supported selector queries.\n * @returns\n */\nfunction is(elem, query, options) {\n var opts = convertOptionFormats(options);\n return (typeof query === \"function\" ? query : (0, compile_js_1.compile)(query, opts))(elem);\n}\nexports.is = is;\n/**\n * Alias for selectAll(query, elems, options).\n * @see [compile] for supported selector queries.\n */\nexports.default = exports.selectAll;\n// Export filters, pseudos and aliases to allow users to supply their own.\n/** @deprecated Use the `pseudos` option instead. */\nvar index_js_1 = require(\"./pseudo-selectors/index.js\");\nObject.defineProperty(exports, \"filters\", { enumerable: true, get: function () { return index_js_1.filters; } });\nObject.defineProperty(exports, \"pseudos\", { enumerable: true, get: function () { return index_js_1.pseudos; } });\nObject.defineProperty(exports, \"aliases\", { enumerable: true, get: function () { return index_js_1.aliases; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction arr_back(arr) {\n return arr[arr.length - 1];\n}\nexports.default = arr_back;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar type_1 = __importDefault(require(\"./nodes/type\"));\nfunction isTag(node) {\n return node && node.nodeType === type_1.default.ELEMENT_NODE;\n}\nfunction getAttributeValue(elem, name) {\n return isTag(elem) ? elem.getAttribute(name) : undefined;\n}\nfunction getName(elem) {\n return ((elem && elem.rawTagName) || '').toLowerCase();\n}\nfunction getChildren(node) {\n return node && node.childNodes;\n}\nfunction getParent(node) {\n return node ? node.parentNode : null;\n}\nfunction getText(node) {\n return node.text;\n}\nfunction removeSubsets(nodes) {\n var idx = nodes.length;\n var node;\n var ancestor;\n var replace;\n // Check if each node (or one of its ancestors) is already contained in the\n // array.\n while (--idx > -1) {\n node = ancestor = nodes[idx];\n // Temporarily remove the node under consideration\n nodes[idx] = null;\n replace = true;\n while (ancestor) {\n if (nodes.indexOf(ancestor) > -1) {\n replace = false;\n nodes.splice(idx, 1);\n break;\n }\n ancestor = getParent(ancestor);\n }\n // If the node has been found to be unique, re-insert it.\n if (replace) {\n nodes[idx] = node;\n }\n }\n return nodes;\n}\nfunction existsOne(test, elems) {\n return elems.some(function (elem) {\n return isTag(elem) ? test(elem) || existsOne(test, getChildren(elem)) : false;\n });\n}\nfunction getSiblings(node) {\n var parent = getParent(node);\n return parent ? getChildren(parent) : [];\n}\nfunction hasAttrib(elem, name) {\n return getAttributeValue(elem, name) !== undefined;\n}\nfunction findOne(test, elems) {\n var elem = null;\n for (var i = 0, l = elems === null || elems === void 0 ? void 0 : elems.length; i < l && !elem; i++) {\n var el = elems[i];\n if (test(el)) {\n elem = el;\n }\n else {\n var childs = getChildren(el);\n if (childs && childs.length > 0) {\n elem = findOne(test, childs);\n }\n }\n }\n return elem;\n}\nfunction findAll(test, nodes) {\n var result = [];\n for (var i = 0, j = nodes.length; i < j; i++) {\n if (!isTag(nodes[i]))\n continue;\n if (test(nodes[i]))\n result.push(nodes[i]);\n var childs = getChildren(nodes[i]);\n if (childs)\n result = result.concat(findAll(test, childs));\n }\n return result;\n}\nexports.default = {\n isTag: isTag,\n getAttributeValue: getAttributeValue,\n getName: getName,\n getChildren: getChildren,\n getParent: getParent,\n getText: getText,\n removeSubsets: removeSubsets,\n existsOne: existsOne,\n getSiblings: getSiblings,\n hasAttrib: hasAttrib,\n findOne: findOne,\n findAll: findAll\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar VoidTag = /** @class */ (function () {\n function VoidTag(addClosingSlash, tags) {\n if (addClosingSlash === void 0) { addClosingSlash = false; }\n this.addClosingSlash = addClosingSlash;\n if (Array.isArray(tags)) {\n this.voidTags = tags.reduce(function (set, tag) {\n return set.add(tag.toLowerCase()).add(tag.toUpperCase()).add(tag);\n }, new Set());\n }\n else {\n this.voidTags = ['area', 'base', 'br', 'col', 'embed', 'hr', 'img', 'input', 'link', 'meta', 'param', 'source', 'track', 'wbr'].reduce(function (set, tag) {\n return set.add(tag.toLowerCase()).add(tag.toUpperCase()).add(tag);\n }, new Set());\n }\n }\n VoidTag.prototype.formatNode = function (tag, attrs, innerHTML) {\n var addClosingSlash = this.addClosingSlash;\n var closingSpace = (addClosingSlash && attrs && !attrs.endsWith(' ')) ? ' ' : '';\n var closingSlash = addClosingSlash ? \"\".concat(closingSpace, \"/\") : '';\n return this.isVoidElement(tag.toLowerCase()) ? \"<\".concat(tag).concat(attrs).concat(closingSlash, \">\") : \"<\".concat(tag).concat(attrs, \">\").concat(innerHTML, \"</\").concat(tag, \">\");\n };\n VoidTag.prototype.isVoidElement = function (tag) {\n return this.voidTags.has(tag);\n };\n return VoidTag;\n}());\nexports.default = VoidTag;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar he_1 = require(\"he\");\nvar node_1 = __importDefault(require(\"./node\"));\nvar type_1 = __importDefault(require(\"./type\"));\n/**\n * TextNode to contain a text element in DOM tree.\n * @param {string} value [description]\n */\nvar TextNode = /** @class */ (function (_super) {\n __extends(TextNode, _super);\n function TextNode(rawText, parentNode, range) {\n if (parentNode === void 0) { parentNode = null; }\n var _this = _super.call(this, parentNode, range) || this;\n /**\n * Node Type declaration.\n * @type {Number}\n */\n _this.nodeType = type_1.default.TEXT_NODE;\n _this.rawTagName = '';\n _this._rawText = rawText;\n return _this;\n }\n TextNode.prototype.clone = function () {\n return new TextNode(this._rawText, null);\n };\n Object.defineProperty(TextNode.prototype, \"rawText\", {\n get: function () {\n return this._rawText;\n },\n /**\n * Set rawText and invalidate trimmed caches\n */\n set: function (text) {\n this._rawText = text;\n this._trimmedRawText = void 0;\n this._trimmedText = void 0;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextNode.prototype, \"trimmedRawText\", {\n /**\n * Returns raw text with all whitespace trimmed except single leading/trailing non-breaking space\n */\n get: function () {\n if (this._trimmedRawText !== undefined)\n return this._trimmedRawText;\n this._trimmedRawText = trimText(this.rawText);\n return this._trimmedRawText;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextNode.prototype, \"trimmedText\", {\n /**\n * Returns text with all whitespace trimmed except single leading/trailing non-breaking space\n */\n get: function () {\n if (this._trimmedText !== undefined)\n return this._trimmedText;\n this._trimmedText = trimText(this.text);\n return this._trimmedText;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextNode.prototype, \"text\", {\n /**\n * Get unescaped text value of current node and its children.\n * @return {string} text content\n */\n get: function () {\n return (0, he_1.decode)(this.rawText);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextNode.prototype, \"isWhitespace\", {\n /**\n * Detect if the node contains only white space.\n * @return {boolean}\n */\n get: function () {\n return /^(\\s| )*$/.test(this.rawText);\n },\n enumerable: false,\n configurable: true\n });\n TextNode.prototype.toString = function () {\n return this.rawText;\n };\n return TextNode;\n}(node_1.default));\nexports.default = TextNode;\n/**\n * Trim whitespace except single leading/trailing non-breaking space\n */\nfunction trimText(text) {\n var i = 0;\n var startPos;\n var endPos;\n while (i >= 0 && i < text.length) {\n if (/\\S/.test(text[i])) {\n if (startPos === undefined) {\n startPos = i;\n i = text.length;\n }\n else {\n endPos = i;\n i = void 0;\n }\n }\n if (startPos === undefined)\n i++;\n else\n i--;\n }\n if (startPos === undefined)\n startPos = 0;\n if (endPos === undefined)\n endPos = text.length - 1;\n var hasLeadingSpace = startPos > 0 && /[^\\S\\r\\n]/.test(text[startPos - 1]);\n var hasTrailingSpace = endPos < (text.length - 1) && /[^\\S\\r\\n]/.test(text[endPos + 1]);\n return (hasLeadingSpace ? ' ' : '') + text.slice(startPos, endPos + 1) + (hasTrailingSpace ? ' ' : '');\n}\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parse = exports.base_parse = void 0;\nvar css_select_1 = require(\"css-select\");\nvar he_1 = __importDefault(require(\"he\"));\nvar back_1 = __importDefault(require(\"../back\"));\nvar matcher_1 = __importDefault(require(\"../matcher\"));\nvar void_tag_1 = __importDefault(require(\"../void-tag\"));\nvar comment_1 = __importDefault(require(\"./comment\"));\nvar node_1 = __importDefault(require(\"./node\"));\nvar text_1 = __importDefault(require(\"./text\"));\nvar type_1 = __importDefault(require(\"./type\"));\nfunction decode(val) {\n // clone string\n return JSON.parse(JSON.stringify(he_1.default.decode(val)));\n}\n// https://developer.mozilla.org/en-US/docs/Web/HTML/Block-level_elements\nvar Htags = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'header', 'hgroup'];\nvar Dtags = ['details', 'dialog', 'dd', 'div', 'dt'];\nvar Ftags = ['fieldset', 'figcaption', 'figure', 'footer', 'form'];\nvar tableTags = ['table', 'td', 'tr'];\nvar htmlTags = ['address', 'article', 'aside', 'blockquote', 'br', 'hr', 'li', 'main', 'nav', 'ol', 'p', 'pre', 'section', 'ul'];\nvar kBlockElements = new Set();\nfunction addToKBlockElement() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var addToSet = function (array) {\n for (var index = 0; index < array.length; index++) {\n var element = array[index];\n kBlockElements.add(element);\n kBlockElements.add(element.toUpperCase());\n }\n };\n for (var _a = 0, args_1 = args; _a < args_1.length; _a++) {\n var arg = args_1[_a];\n addToSet(arg);\n }\n}\naddToKBlockElement(Htags, Dtags, Ftags, tableTags, htmlTags);\nvar DOMTokenList = /** @class */ (function () {\n function DOMTokenList(valuesInit, afterUpdate) {\n if (valuesInit === void 0) { valuesInit = []; }\n if (afterUpdate === void 0) { afterUpdate = function () { return null; }; }\n this._set = new Set(valuesInit);\n this._afterUpdate = afterUpdate;\n }\n DOMTokenList.prototype._validate = function (c) {\n if (/\\s/.test(c)) {\n throw new Error(\"DOMException in DOMTokenList.add: The token '\".concat(c, \"' contains HTML space characters, which are not valid in tokens.\"));\n }\n };\n DOMTokenList.prototype.add = function (c) {\n this._validate(c);\n this._set.add(c);\n this._afterUpdate(this); // eslint-disable-line @typescript-eslint/no-unsafe-call\n };\n DOMTokenList.prototype.replace = function (c1, c2) {\n this._validate(c2);\n this._set.delete(c1);\n this._set.add(c2);\n this._afterUpdate(this); // eslint-disable-line @typescript-eslint/no-unsafe-call\n };\n DOMTokenList.prototype.remove = function (c) {\n this._set.delete(c) && this._afterUpdate(this); // eslint-disable-line @typescript-eslint/no-unsafe-call\n };\n DOMTokenList.prototype.toggle = function (c) {\n this._validate(c);\n if (this._set.has(c))\n this._set.delete(c);\n else\n this._set.add(c);\n this._afterUpdate(this); // eslint-disable-line @typescript-eslint/no-unsafe-call\n };\n DOMTokenList.prototype.contains = function (c) {\n return this._set.has(c);\n };\n Object.defineProperty(DOMTokenList.prototype, \"length\", {\n get: function () {\n return this._set.size;\n },\n enumerable: false,\n configurable: true\n });\n DOMTokenList.prototype.values = function () {\n return this._set.values();\n };\n Object.defineProperty(DOMTokenList.prototype, \"value\", {\n get: function () {\n return Array.from(this._set.values());\n },\n enumerable: false,\n configurable: true\n });\n DOMTokenList.prototype.toString = function () {\n return Array.from(this._set.values()).join(' ');\n };\n return DOMTokenList;\n}());\n/**\n * HTMLElement, which contains a set of children.\n *\n * Note: this is a minimalist implementation, no complete tree\n * structure provided (no parentNode, nextSibling,\n * previousSibling etc).\n * @class HTMLElement\n * @extends {Node}\n */\nvar HTMLElement = /** @class */ (function (_super) {\n __extends(HTMLElement, _super);\n /**\n * Creates an instance of HTMLElement.\n * @param keyAttrs\tid and class attribute\n * @param [rawAttrs]\tattributes in string\n *\n * @memberof HTMLElement\n */\n function HTMLElement(tagName, keyAttrs, rawAttrs, parentNode, range, voidTag, _parseOptions) {\n if (rawAttrs === void 0) { rawAttrs = ''; }\n if (parentNode === void 0) { parentNode = null; }\n if (voidTag === void 0) { voidTag = new void_tag_1.default(); }\n if (_parseOptions === void 0) { _parseOptions = {}; }\n var _this = _super.call(this, parentNode, range) || this;\n _this.rawAttrs = rawAttrs;\n _this.voidTag = voidTag;\n /**\n * Node Type declaration.\n */\n _this.nodeType = type_1.default.ELEMENT_NODE;\n _this.rawTagName = tagName;\n _this.rawAttrs = rawAttrs || '';\n _this.id = keyAttrs.id || '';\n _this.childNodes = [];\n _this._parseOptions = _parseOptions;\n _this.classList = new DOMTokenList(keyAttrs.class ? keyAttrs.class.split(/\\s+/) : [], function (classList) { return _this.setAttribute('class', classList.toString()); } // eslint-disable-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call\n );\n if (keyAttrs.id) {\n if (!rawAttrs) {\n _this.rawAttrs = \"id=\\\"\".concat(keyAttrs.id, \"\\\"\");\n }\n }\n if (keyAttrs.class) {\n if (!rawAttrs) {\n var cls = \"class=\\\"\".concat(_this.classList.toString(), \"\\\"\");\n if (_this.rawAttrs) {\n _this.rawAttrs += \" \".concat(cls);\n }\n else {\n _this.rawAttrs = cls;\n }\n }\n }\n return _this;\n }\n /**\n * Quote attribute values\n * @param attr attribute value\n * @returns {string} quoted value\n */\n HTMLElement.prototype.quoteAttribute = function (attr) {\n if (attr == null) {\n return 'null';\n }\n return JSON.stringify(attr.replace(/\"/g, '"')).replace(/\\\\t/g, '\\t').replace(/\\\\n/g, '\\n').replace(/\\\\r/g, '\\r').replace(/\\\\/g, '');\n };\n /**\n * Remove Child element from childNodes array\n * @param {HTMLElement} node node to remove\n */\n HTMLElement.prototype.removeChild = function (node) {\n this.childNodes = this.childNodes.filter(function (child) {\n return child !== node;\n });\n return this;\n };\n /**\n * Exchanges given child with new child\n * @param {HTMLElement} oldNode node to exchange\n * @param {HTMLElement} newNode new node\n */\n HTMLElement.prototype.exchangeChild = function (oldNode, newNode) {\n var children = this.childNodes;\n this.childNodes = children.map(function (child) {\n if (child === oldNode) {\n return newNode;\n }\n return child;\n });\n return this;\n };\n Object.defineProperty(HTMLElement.prototype, \"tagName\", {\n get: function () {\n return this.rawTagName ? this.rawTagName.toUpperCase() : this.rawTagName;\n },\n set: function (newname) {\n this.rawTagName = newname.toLowerCase();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(HTMLElement.prototype, \"localName\", {\n get: function () {\n return this.rawTagName.toLowerCase();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(HTMLElement.prototype, \"isVoidElement\", {\n get: function () {\n return this.voidTag.isVoidElement(this.localName);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(HTMLElement.prototype, \"rawText\", {\n /**\n * Get escpaed (as-it) text value of current node and its children.\n * @return {string} text content\n */\n get: function () {\n // https://github.com/taoqf/node-html-parser/issues/249\n if (/^br$/i.test(this.rawTagName)) {\n return '\\n';\n }\n return this.childNodes.reduce(function (pre, cur) {\n return (pre += cur.rawText);\n }, '');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(HTMLElement.prototype, \"textContent\", {\n get: function () {\n return decode(this.rawText);\n },\n set: function (val) {\n var content = [new text_1.default(val, this)];\n this.childNodes = content;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(HTMLElement.prototype, \"text\", {\n /**\n * Get unescaped text value of current node and its children.\n * @return {string} text content\n */\n get: function () {\n return decode(this.rawText);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(HTMLElement.prototype, \"structuredText\", {\n /**\n * Get structured Text (with '\\n' etc.)\n * @return {string} structured text\n */\n get: function () {\n var currentBlock = [];\n var blocks = [currentBlock];\n function dfs(node) {\n if (node.nodeType === type_1.default.ELEMENT_NODE) {\n if (kBlockElements.has(node.rawTagName)) {\n if (currentBlock.length > 0) {\n blocks.push((currentBlock = []));\n }\n node.childNodes.forEach(dfs);\n if (currentBlock.length > 0) {\n blocks.push((currentBlock = []));\n }\n }\n else {\n node.childNodes.forEach(dfs);\n }\n }\n else if (node.nodeType === type_1.default.TEXT_NODE) {\n if (node.isWhitespace) {\n // Whitespace node, postponed output\n currentBlock.prependWhitespace = true;\n }\n else {\n var text = node.trimmedText;\n if (currentBlock.prependWhitespace) {\n text = \" \".concat(text);\n currentBlock.prependWhitespace = false;\n }\n currentBlock.push(text);\n }\n }\n }\n dfs(this);\n return blocks\n .map(function (block) {\n return block.join('').replace(/\\s{2,}/g, ' '); // Normalize each line's whitespace\n })\n .join('\\n')\n .replace(/\\s+$/, ''); // trimRight;\n },\n enumerable: false,\n configurable: true\n });\n HTMLElement.prototype.toString = function () {\n var tag = this.rawTagName;\n if (tag) {\n var attrs = this.rawAttrs ? \" \".concat(this.rawAttrs) : '';\n return this.voidTag.formatNode(tag, attrs, this.innerHTML);\n }\n return this.innerHTML;\n };\n Object.defineProperty(HTMLElement.prototype, \"innerHTML\", {\n get: function () {\n return this.childNodes\n .map(function (child) {\n return child.toString();\n })\n .join('');\n },\n set: function (content) {\n var r = parse(content, this._parseOptions);\n var nodes = r.childNodes.length ? r.childNodes : [new text_1.default(content, this)];\n resetParent(nodes, this);\n resetParent(this.childNodes, null);\n this.childNodes = nodes;\n },\n enumerable: false,\n configurable: true\n });\n HTMLElement.prototype.set_content = function (content, options) {\n if (options === void 0) { options = {}; }\n if (content instanceof node_1.default) {\n content = [content];\n }\n else if (typeof content == 'string') {\n options = __assign(__assign({}, this._parseOptions), options);\n var r = parse(content, options);\n content = r.childNodes.length ? r.childNodes : [new text_1.default(r.innerHTML, this)];\n }\n resetParent(this.childNodes, null);\n resetParent(content, this);\n this.childNodes = content;\n return this;\n };\n HTMLElement.prototype.replaceWith = function () {\n var _this = this;\n var nodes = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n nodes[_i] = arguments[_i];\n }\n var parent = this.parentNode;\n var content = nodes\n .map(function (node) {\n if (node instanceof node_1.default) {\n return [node];\n }\n else if (typeof node == 'string') {\n var r = parse(node, _this._parseOptions);\n return r.childNodes.length ? r.childNodes : [new text_1.default(node, _this)];\n }\n return [];\n })\n .flat();\n var idx = parent.childNodes.findIndex(function (child) {\n return child === _this;\n });\n resetParent([this], null);\n parent.childNodes = __spreadArray(__spreadArray(__spreadArray([], parent.childNodes.slice(0, idx), true), resetParent(content, parent), true), parent.childNodes.slice(idx + 1), true);\n return this;\n };\n Object.defineProperty(HTMLElement.prototype, \"outerHTML\", {\n get: function () {\n return this.toString();\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Trim element from right (in block) after seeing pattern in a TextNode.\n * @param {RegExp} pattern pattern to find\n * @return {HTMLElement} reference to current node\n */\n HTMLElement.prototype.trimRight = function (pattern) {\n for (var i = 0; i < this.childNodes.length; i++) {\n var childNode = this.childNodes[i];\n if (childNode.nodeType === type_1.default.ELEMENT_NODE) {\n childNode.trimRight(pattern);\n }\n else {\n var index = childNode.rawText.search(pattern);\n if (index > -1) {\n childNode.rawText = childNode.rawText.substr(0, index);\n // trim all following nodes.\n this.childNodes.length = i + 1;\n }\n }\n }\n return this;\n };\n Object.defineProperty(HTMLElement.prototype, \"structure\", {\n /**\n * Get DOM structure\n * @return {string} structure\n */\n get: function () {\n var res = [];\n var indention = 0;\n function write(str) {\n res.push(' '.repeat(indention) + str);\n }\n function dfs(node) {\n var idStr = node.id ? \"#\".concat(node.id) : '';\n var classStr = node.classList.length ? \".\".concat(node.classList.value.join('.')) : ''; // eslint-disable-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/restrict-template-expressions, @typescript-eslint/no-unsafe-call\n write(\"\".concat(node.rawTagName).concat(idStr).concat(classStr));\n indention++;\n node.childNodes.forEach(function (childNode) {\n if (childNode.nodeType === type_1.default.ELEMENT_NODE) {\n dfs(childNode);\n }\n else if (childNode.nodeType === type_1.default.TEXT_NODE) {\n if (!childNode.isWhitespace) {\n write('#text');\n }\n }\n });\n indention--;\n }\n dfs(this);\n return res.join('\\n');\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Remove whitespaces in this sub tree.\n * @return {HTMLElement} pointer to this\n */\n HTMLElement.prototype.removeWhitespace = function () {\n var _this = this;\n var o = 0;\n this.childNodes.forEach(function (node) {\n if (node.nodeType === type_1.default.TEXT_NODE) {\n if (node.isWhitespace) {\n return;\n }\n node.rawText = node.trimmedRawText;\n }\n else if (node.nodeType === type_1.default.ELEMENT_NODE) {\n node.removeWhitespace();\n }\n _this.childNodes[o++] = node;\n });\n this.childNodes.length = o;\n return this;\n };\n /**\n * Query CSS selector to find matching nodes.\n * @param {string} selector Simplified CSS selector\n * @return {HTMLElement[]} matching elements\n */\n HTMLElement.prototype.querySelectorAll = function (selector) {\n return (0, css_select_1.selectAll)(selector, this, {\n xmlMode: true,\n adapter: matcher_1.default,\n });\n };\n /**\n * Query CSS Selector to find matching node.\n * @param {string} selector Simplified CSS selector\n * @return {(HTMLElement|null)} matching node\n */\n HTMLElement.prototype.querySelector = function (selector) {\n return (0, css_select_1.selectOne)(selector, this, {\n xmlMode: true,\n adapter: matcher_1.default,\n });\n };\n /**\n * find elements by their tagName\n * @param {string} tagName the tagName of the elements to select\n */\n HTMLElement.prototype.getElementsByTagName = function (tagName) {\n var upperCasedTagName = tagName.toUpperCase();\n var re = [];\n var stack = [];\n var currentNodeReference = this;\n var index = 0;\n // index turns to undefined once the stack is empty and the first condition occurs\n // which happens once all relevant children are searched through\n while (index !== undefined) {\n var child = void 0;\n // make it work with sparse arrays\n do {\n child = currentNodeReference.childNodes[index++];\n } while (index < currentNodeReference.childNodes.length && child === undefined);\n // if the child does not exist we move on with the last provided index (which belongs to the parentNode)\n if (child === undefined) {\n currentNodeReference = currentNodeReference.parentNode;\n index = stack.pop();\n continue;\n }\n if (child.nodeType === type_1.default.ELEMENT_NODE) {\n // https://developer.mozilla.org/en-US/docs/Web/API/Element/getElementsByTagName#syntax\n if (tagName === '*' || child.tagName === upperCasedTagName)\n re.push(child);\n // if children are existing push the current status to the stack and keep searching for elements in the level below\n if (child.childNodes.length > 0) {\n stack.push(index);\n currentNodeReference = child;\n index = 0;\n }\n }\n }\n return re;\n };\n /**\n * find element by it's id\n * @param {string} id the id of the element to select\n * @returns {HTMLElement | null} the element with the given id or null if not found\n */\n HTMLElement.prototype.getElementById = function (id) {\n var stack = [];\n var currentNodeReference = this;\n var index = 0;\n // index turns to undefined once the stack is empty and the first condition occurs\n // which happens once all relevant children are searched through\n while (index !== undefined) {\n var child = void 0;\n // make it work with sparse arrays\n do {\n child = currentNodeReference.childNodes[index++];\n } while (index < currentNodeReference.childNodes.length && child === undefined);\n // if the child does not exist we move on with the last provided index (which belongs to the parentNode)\n if (child === undefined) {\n currentNodeReference = currentNodeReference.parentNode;\n index = stack.pop();\n continue;\n }\n if (child.nodeType === type_1.default.ELEMENT_NODE) {\n if (child.id === id) {\n return child;\n }\n ;\n // if children are existing push the current status to the stack and keep searching for elements in the level below\n if (child.childNodes.length > 0) {\n stack.push(index);\n currentNodeReference = child;\n index = 0;\n }\n }\n }\n return null;\n };\n /**\n * traverses the Element and its parents (heading toward the document root) until it finds a node that matches the provided selector string. Will return itself or the matching ancestor. If no such element exists, it returns null.\n * @param selector a DOMString containing a selector list\n * @returns {HTMLElement | null} the element with the given id or null if not found\n */\n HTMLElement.prototype.closest = function (selector) {\n var mapChild = new Map();\n var el = this;\n var old = null;\n function findOne(test, elems) {\n var elem = null;\n for (var i = 0, l = elems.length; i < l && !elem; i++) {\n var el_1 = elems[i];\n if (test(el_1)) {\n elem = el_1;\n }\n else {\n var child = mapChild.get(el_1);\n if (child) {\n elem = findOne(test, [child]);\n }\n }\n }\n return elem;\n }\n while (el) {\n mapChild.set(el, old);\n old = el;\n el = el.parentNode;\n }\n el = this;\n while (el) {\n var e = (0, css_select_1.selectOne)(selector, el, {\n xmlMode: true,\n adapter: __assign(__assign({}, matcher_1.default), { getChildren: function (node) {\n var child = mapChild.get(node);\n return child && [child];\n }, getSiblings: function (node) {\n return [node];\n }, findOne: findOne, findAll: function () {\n return [];\n } }),\n });\n if (e) {\n return e;\n }\n el = el.parentNode;\n }\n return null;\n };\n /**\n * Append a child node to childNodes\n * @param {Node} node node to append\n * @return {Node} node appended\n */\n HTMLElement.prototype.appendChild = function (node) {\n // remove the node from it's parent\n node.remove();\n this.childNodes.push(node);\n node.parentNode = this;\n return node;\n };\n Object.defineProperty(HTMLElement.prototype, \"firstChild\", {\n /**\n * Get first child node\n * @return {Node | undefined} first child node; or undefined if none\n */\n get: function () {\n return this.childNodes[0];\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(HTMLElement.prototype, \"lastChild\", {\n /**\n * Get last child node\n * @return {Node | undefined} last child node; or undefined if none\n */\n get: function () {\n return (0, back_1.default)(this.childNodes);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(HTMLElement.prototype, \"attrs\", {\n /**\n * Get attributes\n * @access private\n * @return {Object} parsed and unescaped attributes\n */\n get: function () {\n if (this._attrs) {\n return this._attrs;\n }\n this._attrs = {};\n var attrs = this.rawAttributes;\n for (var key in attrs) {\n var val = attrs[key] || '';\n this._attrs[key.toLowerCase()] = decode(val);\n }\n return this._attrs;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(HTMLElement.prototype, \"attributes\", {\n get: function () {\n var ret_attrs = {};\n var attrs = this.rawAttributes;\n for (var key in attrs) {\n var val = attrs[key] || '';\n ret_attrs[key] = decode(val);\n }\n return ret_attrs;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(HTMLElement.prototype, \"rawAttributes\", {\n /**\n * Get escaped (as-is) attributes\n * @return {Object} parsed attributes\n */\n get: function () {\n if (this._rawAttrs) {\n return this._rawAttrs;\n }\n var attrs = {};\n if (this.rawAttrs) {\n var re = /([a-zA-Z()[\\]#@$.?:][a-zA-Z0-9-_:()[\\]#]*)(?:\\s*=\\s*((?:'[^']*')|(?:\"[^\"]*\")|\\S+))?/g;\n var match = void 0;\n while ((match = re.exec(this.rawAttrs))) {\n var key = match[1];\n var val = match[2] || null;\n if (val && (val[0] === \"'\" || val[0] === \"\\\"\"))\n val = val.slice(1, val.length - 1);\n attrs[key] = attrs[key] || val;\n }\n }\n this._rawAttrs = attrs;\n return attrs;\n },\n enumerable: false,\n configurable: true\n });\n HTMLElement.prototype.removeAttribute = function (key) {\n var _this = this;\n var attrs = this.rawAttributes;\n delete attrs[key];\n // Update this.attribute\n if (this._attrs) {\n delete this._attrs[key];\n }\n // Update rawString\n this.rawAttrs = Object.keys(attrs)\n .map(function (name) {\n var val = _this.quoteAttribute(attrs[name]);\n if (val === 'null' || val === '\"\"')\n return name;\n return \"\".concat(name, \"=\").concat(val);\n })\n .join(' ');\n // Update this.id\n if (key === 'id') {\n this.id = '';\n }\n return this;\n };\n HTMLElement.prototype.hasAttribute = function (key) {\n return key.toLowerCase() in this.attrs;\n };\n /**\n * Get an attribute\n * @return {string | undefined} value of the attribute; or undefined if not exist\n */\n HTMLElement.prototype.getAttribute = function (key) {\n return this.attrs[key.toLowerCase()];\n };\n /**\n * Set an attribute value to the HTMLElement\n * @param {string} key The attribute name\n * @param {string} value The value to set, or null / undefined to remove an attribute\n */\n HTMLElement.prototype.setAttribute = function (key, value) {\n var _this = this;\n if (arguments.length < 2) {\n throw new Error(\"Failed to execute 'setAttribute' on 'Element'\");\n }\n var k2 = key.toLowerCase();\n var attrs = this.rawAttributes;\n for (var k in attrs) {\n if (k.toLowerCase() === k2) {\n key = k;\n break;\n }\n }\n attrs[key] = String(value);\n // update this.attrs\n if (this._attrs) {\n this._attrs[k2] = decode(attrs[key]);\n }\n // Update rawString\n this.rawAttrs = Object.keys(attrs)\n .map(function (name) {\n var val = _this.quoteAttribute(attrs[name]);\n if (val === 'null' || val === '\"\"')\n return name;\n return \"\".concat(name, \"=\").concat(val);\n })\n .join(' ');\n // Update this.id\n if (key === 'id') {\n this.id = value;\n }\n return this;\n };\n /**\n * Replace all the attributes of the HTMLElement by the provided attributes\n * @param {Attributes} attributes the new attribute set\n */\n HTMLElement.prototype.setAttributes = function (attributes) {\n var _this = this;\n // Invalidate current this.attributes\n if (this._attrs) {\n delete this._attrs;\n }\n // Invalidate current this.rawAttributes\n if (this._rawAttrs) {\n delete this._rawAttrs;\n }\n // Update rawString\n this.rawAttrs = Object.keys(attributes)\n .map(function (name) {\n var val = attributes[name];\n if (val === 'null' || val === '\"\"')\n return name;\n return \"\".concat(name, \"=\").concat(_this.quoteAttribute(String(val)));\n })\n .join(' ');\n return this;\n };\n HTMLElement.prototype.insertAdjacentHTML = function (where, html) {\n var _a, _b, _c;\n var _this = this;\n if (arguments.length < 2) {\n throw new Error('2 arguments required');\n }\n var p = parse(html, this._parseOptions);\n if (where === 'afterend') {\n var idx = this.parentNode.childNodes.findIndex(function (child) {\n return child === _this;\n });\n resetParent(p.childNodes, this.parentNode);\n (_a = this.parentNode.childNodes).splice.apply(_a, __spreadArray([idx + 1, 0], p.childNodes, false));\n }\n else if (where === 'afterbegin') {\n resetParent(p.childNodes, this);\n (_b = this.childNodes).unshift.apply(_b, p.childNodes);\n }\n else if (where === 'beforeend') {\n p.childNodes.forEach(function (n) {\n _this.appendChild(n);\n });\n }\n else if (where === 'beforebegin') {\n var idx = this.parentNode.childNodes.findIndex(function (child) {\n return child === _this;\n });\n resetParent(p.childNodes, this.parentNode);\n (_c = this.parentNode.childNodes).splice.apply(_c, __spreadArray([idx, 0], p.childNodes, false));\n }\n else {\n throw new Error(\"The value provided ('\".concat(where, \"') is not one of 'beforebegin', 'afterbegin', 'beforeend', or 'afterend'\"));\n }\n return this;\n // if (!where || html === undefined || html === null) {\n // \treturn;\n // }\n };\n Object.defineProperty(HTMLElement.prototype, \"nextSibling\", {\n get: function () {\n if (this.parentNode) {\n var children = this.parentNode.childNodes;\n var i = 0;\n while (i < children.length) {\n var child = children[i++];\n if (this === child)\n return children[i] || null;\n }\n return null;\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(HTMLElement.prototype, \"nextElementSibling\", {\n get: function () {\n if (this.parentNode) {\n var children = this.parentNode.childNodes;\n var i = 0;\n var find = false;\n while (i < children.length) {\n var child = children[i++];\n if (find) {\n if (child instanceof HTMLElement) {\n return child || null;\n }\n }\n else if (this === child) {\n find = true;\n }\n }\n return null;\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(HTMLElement.prototype, \"previousSibling\", {\n get: function () {\n if (this.parentNode) {\n var children = this.parentNode.childNodes;\n var i = children.length;\n while (i > 0) {\n var child = children[--i];\n if (this === child)\n return children[i - 1] || null;\n }\n return null;\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(HTMLElement.prototype, \"previousElementSibling\", {\n get: function () {\n if (this.parentNode) {\n var children = this.parentNode.childNodes;\n var i = children.length;\n var find = false;\n while (i > 0) {\n var child = children[--i];\n if (find) {\n if (child instanceof HTMLElement) {\n return child || null;\n }\n }\n else if (this === child) {\n find = true;\n }\n }\n return null;\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(HTMLElement.prototype, \"classNames\", {\n get: function () {\n return this.classList.toString();\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Clone this Node\n */\n HTMLElement.prototype.clone = function () {\n return parse(this.toString(), this._parseOptions).firstChild;\n };\n return HTMLElement;\n}(node_1.default));\nexports.default = HTMLElement;\n// https://html.spec.whatwg.org/multipage/custom-elements.html#valid-custom-element-name\nvar kMarkupPattern = /<!--[\\s\\S]*?-->|<(\\/?)([a-zA-Z][-.:0-9_a-zA-Z]*)((?:\\s+[^>]*?(?:(?:'[^']*')|(?:\"[^\"]*\"))?)*)\\s*(\\/?)>/g;\nvar kAttributePattern = /(?:^|\\s)(id|class)\\s*=\\s*((?:'[^']*')|(?:\"[^\"]*\")|\\S+)/gi;\nvar kElementsClosedByOpening = {\n li: { li: true, LI: true },\n LI: { li: true, LI: true },\n p: { p: true, div: true, P: true, DIV: true },\n P: { p: true, div: true, P: true, DIV: true },\n b: { div: true, DIV: true },\n B: { div: true, DIV: true },\n td: { td: true, th: true, TD: true, TH: true },\n TD: { td: true, th: true, TD: true, TH: true },\n th: { td: true, th: true, TD: true, TH: true },\n TH: { td: true, th: true, TD: true, TH: true },\n h1: { h1: true, H1: true },\n H1: { h1: true, H1: true },\n h2: { h2: true, H2: true },\n H2: { h2: true, H2: true },\n h3: { h3: true, H3: true },\n H3: { h3: true, H3: true },\n h4: { h4: true, H4: true },\n H4: { h4: true, H4: true },\n h5: { h5: true, H5: true },\n H5: { h5: true, H5: true },\n h6: { h6: true, H6: true },\n H6: { h6: true, H6: true },\n};\nvar kElementsClosedByClosing = {\n li: { ul: true, ol: true, UL: true, OL: true },\n LI: { ul: true, ol: true, UL: true, OL: true },\n a: { div: true, DIV: true },\n A: { div: true, DIV: true },\n b: { div: true, DIV: true },\n B: { div: true, DIV: true },\n i: { div: true, DIV: true },\n I: { div: true, DIV: true },\n p: { div: true, DIV: true },\n P: { div: true, DIV: true },\n td: { tr: true, table: true, TR: true, TABLE: true },\n TD: { tr: true, table: true, TR: true, TABLE: true },\n th: { tr: true, table: true, TR: true, TABLE: true },\n TH: { tr: true, table: true, TR: true, TABLE: true },\n};\nvar frameflag = 'documentfragmentcontainer';\n/**\n * Parses HTML and returns a root element\n * Parse a chuck of HTML source.\n * @param {string} data html\n * @return {HTMLElement} root element\n */\nfunction base_parse(data, options) {\n var _a, _b;\n if (options === void 0) { options = {}; }\n var voidTag = new void_tag_1.default((_a = options === null || options === void 0 ? void 0 : options.voidTag) === null || _a === void 0 ? void 0 : _a.closingSlash, (_b = options === null || options === void 0 ? void 0 : options.voidTag) === null || _b === void 0 ? void 0 : _b.tags);\n var elements = options.blockTextElements || {\n script: true,\n noscript: true,\n style: true,\n pre: true,\n };\n var element_names = Object.keys(elements);\n var kBlockTextElements = element_names.map(function (it) { return new RegExp(\"^\".concat(it, \"$\"), 'i'); });\n var kIgnoreElements = element_names.filter(function (it) { return Boolean(elements[it]); }).map(function (it) { return new RegExp(\"^\".concat(it, \"$\"), 'i'); });\n function element_should_be_ignore(tag) {\n return kIgnoreElements.some(function (it) { return it.test(tag); });\n }\n function is_block_text_element(tag) {\n return kBlockTextElements.some(function (it) { return it.test(tag); });\n }\n var createRange = function (startPos, endPos) { return [startPos - frameFlagOffset, endPos - frameFlagOffset]; };\n var root = new HTMLElement(null, {}, '', null, [0, data.length], voidTag, options);\n var currentParent = root;\n var stack = [root];\n var lastTextPos = -1;\n var noNestedTagIndex = undefined;\n var match;\n // https://github.com/taoqf/node-html-parser/issues/38\n data = \"<\".concat(frameflag, \">\").concat(data, \"</\").concat(frameflag, \">\");\n var lowerCaseTagName = options.lowerCaseTagName, fixNestedATags = options.fixNestedATags;\n var dataEndPos = data.length - (frameflag.length + 2);\n var frameFlagOffset = frameflag.length + 2;\n while ((match = kMarkupPattern.exec(data))) {\n // Note: Object destructuring here consistently tests as higher performance than array destructuring\n // eslint-disable-next-line prefer-const\n var matchText = match[0], leadingSlash = match[1], tagName = match[2], attributes = match[3], closingSlash = match[4];\n var matchLength = matchText.length;\n var tagStartPos = kMarkupPattern.lastIndex - matchLength;\n var tagEndPos = kMarkupPattern.lastIndex;\n // Add TextNode if content\n if (lastTextPos > -1) {\n if (lastTextPos + matchLength < tagEndPos) {\n var text = data.substring(lastTextPos, tagStartPos);\n currentParent.appendChild(new text_1.default(text, currentParent, createRange(lastTextPos, tagStartPos)));\n }\n }\n lastTextPos = kMarkupPattern.lastIndex;\n // https://github.com/taoqf/node-html-parser/issues/38\n // Skip frameflag node\n if (tagName === frameflag)\n continue;\n // Handle comments\n if (matchText[1] === '!') {\n if (options.comment) {\n // Only keep what is in between <!-- and -->\n var text = data.substring(tagStartPos + 4, tagEndPos - 3);\n currentParent.appendChild(new comment_1.default(text, currentParent, createRange(tagStartPos, tagEndPos)));\n }\n continue;\n }\n /* -- Handle tag matching -- */\n // Fix tag casing if necessary\n if (lowerCaseTagName)\n tagName = tagName.toLowerCase();\n // Handle opening tags (ie. <this> not </that>)\n if (!leadingSlash) {\n /* Populate attributes */\n var attrs = {};\n for (var attMatch = void 0; (attMatch = kAttributePattern.exec(attributes));) {\n var key = attMatch[1], val = attMatch[2];\n var isQuoted = val[0] === \"'\" || val[0] === \"\\\"\";\n attrs[key.toLowerCase()] = isQuoted ? val.slice(1, val.length - 1) : val;\n }\n var parentTagName = currentParent.rawTagName;\n if (!closingSlash && kElementsClosedByOpening[parentTagName]) {\n if (kElementsClosedByOpening[parentTagName][tagName]) {\n stack.pop();\n currentParent = (0, back_1.default)(stack);\n }\n }\n // Prevent nested A tags by terminating the last A and starting a new one : see issue #144\n if (fixNestedATags && (tagName === 'a' || tagName === 'A')) {\n if (noNestedTagIndex !== undefined) {\n stack.splice(noNestedTagIndex);\n currentParent = (0, back_1.default)(stack);\n }\n noNestedTagIndex = stack.length;\n }\n var tagEndPos_1 = kMarkupPattern.lastIndex;\n var tagStartPos_1 = tagEndPos_1 - matchLength;\n currentParent = currentParent.appendChild(\n // Initialize range (end position updated later for closed tags)\n new HTMLElement(tagName, attrs, attributes.slice(1), null, createRange(tagStartPos_1, tagEndPos_1), voidTag, options));\n stack.push(currentParent);\n if (is_block_text_element(tagName)) {\n // Find closing tag\n var closeMarkup = \"</\".concat(tagName, \">\");\n var closeIndex = lowerCaseTagName\n ? data.toLocaleLowerCase().indexOf(closeMarkup, kMarkupPattern.lastIndex)\n : data.indexOf(closeMarkup, kMarkupPattern.lastIndex);\n var textEndPos = closeIndex === -1 ? dataEndPos : closeIndex;\n if (element_should_be_ignore(tagName)) {\n var text = data.substring(tagEndPos_1, textEndPos);\n if (text.length > 0 && /\\S/.test(text)) {\n currentParent.appendChild(new text_1.default(text, currentParent, createRange(tagEndPos_1, textEndPos)));\n }\n }\n if (closeIndex === -1) {\n lastTextPos = kMarkupPattern.lastIndex = data.length + 1;\n }\n else {\n lastTextPos = kMarkupPattern.lastIndex = closeIndex + closeMarkup.length;\n // Cause to be treated as self-closing, because no close found\n leadingSlash = '/';\n }\n }\n }\n // Handle closing tags or self-closed elements (ie </tag> or <br>)\n if (leadingSlash || closingSlash || voidTag.isVoidElement(tagName)) {\n while (true) {\n if (noNestedTagIndex != null && (tagName === 'a' || tagName === 'A'))\n noNestedTagIndex = undefined;\n if (currentParent.rawTagName === tagName) {\n // Update range end for closed tag\n currentParent.range[1] = createRange(-1, Math.max(lastTextPos, tagEndPos))[1];\n stack.pop();\n currentParent = (0, back_1.default)(stack);\n break;\n }\n else {\n var parentTagName = currentParent.tagName;\n // Trying to close current tag, and move on\n if (kElementsClosedByClosing[parentTagName]) {\n if (kElementsClosedByClosing[parentTagName][tagName]) {\n stack.pop();\n currentParent = (0, back_1.default)(stack);\n continue;\n }\n }\n // Use aggressive strategy to handle unmatching markups.\n break;\n }\n }\n }\n }\n return stack;\n}\nexports.base_parse = base_parse;\n/**\n * Parses HTML and returns a root element\n * Parse a chuck of HTML source.\n */\nfunction parse(data, options) {\n if (options === void 0) { options = {}; }\n var stack = base_parse(data, options);\n var root = stack[0];\n var _loop_1 = function () {\n // Handle each error elements.\n var last = stack.pop();\n var oneBefore = (0, back_1.default)(stack);\n if (last.parentNode && last.parentNode.parentNode) {\n if (last.parentNode === oneBefore && last.tagName === oneBefore.tagName) {\n // Pair error case <h3> <h3> handle : Fixes to <h3> </h3>\n // this is wrong, becouse this will put the H3 outside the current right position which should be inside the current Html Element, see issue 152 for more info\n if (options.parseNoneClosedTags !== true) {\n oneBefore.removeChild(last);\n last.childNodes.forEach(function (child) {\n oneBefore.parentNode.appendChild(child);\n });\n stack.pop();\n }\n }\n else {\n // Single error <div> <h3> </div> handle: Just removes <h3>\n // Why remove? this is already a HtmlElement and the missing <H3> is already added in this case. see issue 152 for more info\n // eslint-disable-next-line no-lonely-if\n if (options.parseNoneClosedTags !== true) {\n oneBefore.removeChild(last);\n last.childNodes.forEach(function (child) {\n oneBefore.appendChild(child);\n });\n }\n }\n }\n else {\n // If it's final element just skip.\n }\n };\n while (stack.length > 1) {\n _loop_1();\n }\n // response.childNodes.forEach((node) => {\n // \tif (node instanceof HTMLElement) {\n // \t\tnode.parentNode = null;\n // \t}\n // });\n return root;\n}\nexports.parse = parse;\nfunction resetParent(nodes, parent) {\n return nodes.map(function (node) {\n node.parentNode = parent;\n return node;\n });\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = void 0;\nvar html_1 = require(\"./nodes/html\");\nObject.defineProperty(exports, \"default\", { enumerable: true, get: function () { return html_1.parse; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar html_1 = require(\"./nodes/html\");\n/**\n * Parses HTML and returns a root element\n * Parse a chuck of HTML source.\n */\nfunction valid(data, options) {\n if (options === void 0) { options = {}; }\n var stack = (0, html_1.base_parse)(data, options);\n return Boolean(stack.length === 1);\n}\nexports.default = valid;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeType = exports.TextNode = exports.Node = exports.valid = exports.CommentNode = exports.HTMLElement = exports.parse = void 0;\nvar comment_1 = __importDefault(require(\"./nodes/comment\"));\nexports.CommentNode = comment_1.default;\nvar html_1 = __importDefault(require(\"./nodes/html\"));\nexports.HTMLElement = html_1.default;\nvar node_1 = __importDefault(require(\"./nodes/node\"));\nexports.Node = node_1.default;\nvar text_1 = __importDefault(require(\"./nodes/text\"));\nexports.TextNode = text_1.default;\nvar type_1 = __importDefault(require(\"./nodes/type\"));\nexports.NodeType = type_1.default;\nvar parse_1 = __importDefault(require(\"./parse\"));\nvar valid_1 = __importDefault(require(\"./valid\"));\nexports.valid = valid_1.default;\nfunction parse(data, options) {\n if (options === void 0) { options = {}; }\n return (0, parse_1.default)(data, options);\n}\nexports.default = parse;\nexports.parse = parse;\nparse.parse = parse_1.default;\nparse.HTMLElement = html_1.default;\nparse.CommentNode = comment_1.default;\nparse.valid = valid_1.default;\nparse.Node = node_1.default;\nparse.TextNode = text_1.default;\nparse.NodeType = type_1.default;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.perfStop = exports.perfStart = exports.getChildNodes = exports.parseHTML = exports.truthyStr = exports.getTrailingWhitespaceInfo = exports.tagSurround = exports.splitSpecial = exports.isWhiteSpaceOnly = exports.surround = exports.trimNewLines = void 0;\nconst config_1 = require(\"./config\");\n/* ****************************************************************************************************************** */\n// region: String Utils\n/* ****************************************************************************************************************** */\nconst trimNewLines = (s) => s.replace(/^\\n+|\\n+$/g, '');\nexports.trimNewLines = trimNewLines;\nconst surround = (source, surroundStr) => `${surroundStr}${source}${surroundStr}`;\nexports.surround = surround;\nconst isWhiteSpaceOnly = (s) => !/\\S/.test(s);\nexports.isWhiteSpaceOnly = isWhiteSpaceOnly;\n/**\n * Split string, preserving specific newline used for each line\n */\nfunction splitSpecial(s) {\n const lines = [];\n const strLen = s.length;\n for (let i = 0, startPos = 0; i < strLen; ++i) {\n let char = s.charAt(i);\n let newLineChar = '';\n if (char === '\\r')\n newLineChar = (s.charAt(i + 1) === '\\n') ? '\\r\\n' : char;\n else if (char === '\\n')\n newLineChar = char;\n const endPos = newLineChar ? i :\n i === (strLen - 1) ? i + 1 :\n undefined;\n if (endPos === undefined)\n continue;\n lines.push({\n text: s.slice(startPos, endPos),\n newLineChar\n });\n startPos = endPos + newLineChar.length;\n if (newLineChar.length > 1)\n ++i;\n }\n return lines;\n}\nexports.splitSpecial = splitSpecial;\n/**\n * Surround tag content with delimiter (moving any leading/trailing space to outside the tag\n */\nfunction tagSurround(content, surroundStr) {\n // If un-escaped surroundStr already occurs, remove all instances\n // See: https://github.com/crosstype/node-html-markdown/issues/18\n const nestedSurroundStrIndex = content.indexOf(surroundStr);\n if (nestedSurroundStrIndex >= 0)\n content = content.replace(new RegExp(`([^\\\\\\\\])\\\\${surroundStr.split('').join('\\\\')}`, 'gm'), '$1');\n const lines = splitSpecial(content);\n let res = '';\n for (const { text, newLineChar } of lines) {\n let i = 0;\n let startPos = undefined;\n let endPos = undefined;\n while (i >= 0 && i < text.length) {\n if (/[\\S]/.test(text[i])) {\n if (startPos === undefined) {\n startPos = i;\n i = text.length;\n }\n else {\n endPos = i;\n i = NaN;\n }\n }\n if (startPos === undefined)\n ++i;\n else\n --i;\n }\n // If whole string is non-breaking whitespace, don't surround it\n if (startPos === undefined) {\n res += text + newLineChar;\n continue;\n }\n if (endPos === undefined)\n endPos = text.length - 1;\n const leadingSpace = startPos > 0 ? text[startPos - 1] : '';\n const trailingSpace = endPos < (text.length - 1) ? text[endPos + 1] : '';\n const slicedText = text.slice(startPos, endPos + 1);\n res += leadingSpace + surroundStr + slicedText + surroundStr + trailingSpace + newLineChar;\n }\n return res;\n}\nexports.tagSurround = tagSurround;\nconst getTrailingWhitespaceInfo = (s) => {\n const res = { whitespace: 0, newLines: 0 };\n const minI = Math.max(s.length - 10, 0);\n for (let i = s.length - 1; i >= minI; --i) {\n const token = s.slice(i, i + 1);\n if (!/\\s/.test(token))\n break;\n ++res.whitespace;\n if (['\\r', '\\n'].includes(token))\n ++res.newLines;\n }\n return res;\n};\nexports.getTrailingWhitespaceInfo = getTrailingWhitespaceInfo;\n/**\n * If value is truthy, returns `value` (or `v` if no `value` provided), otherwise, returns an empty string\n * @param v - Var to check for truthiness\n * @param value - Value to return if true\n */\nconst truthyStr = (v, value) => v ? ((value !== undefined) ? value : String(v)) : '';\nexports.truthyStr = truthyStr;\n// endregion\n/* ****************************************************************************************************************** */\n// region: Parser\n/* ****************************************************************************************************************** */\nfunction tryParseWithNativeDom(html) {\n try {\n if (!((window === null || window === void 0 ? void 0 : window.DOMParser) && (new window.DOMParser()).parseFromString('', 'text/html')))\n return void 0;\n }\n catch (_a) {\n return void 0;\n }\n /* Get a document */\n let doc;\n try {\n doc = document.implementation.createHTMLDocument('').open();\n }\n catch (e) {\n const { ActiveXObject } = window;\n if (ActiveXObject) {\n const doc = ActiveXObject('htmlfile');\n doc.designMode = 'on'; // disable on-page scripts\n return doc.open();\n }\n throw e;\n }\n // Prepare document, ensuring we have a wrapper node\n doc.write('<node-html-markdown>' + html + '</node-html-markdown>');\n doc.close();\n return doc.documentElement;\n}\nconst getNodeHtmlParser = () => {\n try {\n return require('node-html-parser').parse;\n }\n catch (_a) {\n return undefined;\n }\n};\n/**\n * Parser string to HTMLElement\n */\nfunction parseHTML(html, options) {\n let nodeHtmlParse;\n /* If specified, try to parse with native engine, fallback to node-html-parser */\n perfStart('parse');\n let el;\n if (options.preferNativeParser) {\n try {\n el = tryParseWithNativeDom(html);\n }\n catch (e) {\n nodeHtmlParse = getNodeHtmlParser();\n if (nodeHtmlParse)\n console.warn('Native DOM parser encountered an error during parse', e);\n else\n throw e;\n }\n }\n else\n nodeHtmlParse = getNodeHtmlParser();\n if (!el)\n el = nodeHtmlParse(html, config_1.nodeHtmlParserConfig);\n perfStop('parse');\n return el;\n}\nexports.parseHTML = parseHTML;\nfunction getChildNodes(node) {\n if (!isNodeList(node.childNodes))\n return node.childNodes;\n const res = [];\n node.childNodes.forEach(n => res.push(n));\n return res;\n function isNodeList(v) {\n return (v != null) || (typeof v[Symbol.iterator] === 'function');\n }\n}\nexports.getChildNodes = getChildNodes;\nfunction perfStart(label) {\n if (process.env.LOG_PERF)\n console.time(label);\n}\nexports.perfStart = perfStart;\nfunction perfStop(label) {\n if (process.env.LOG_PERF)\n console.timeEnd(label);\n}\nexports.perfStop = perfStop;\n// endregion\n//# sourceMappingURL=utilities.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.nodeHtmlParserConfig = exports.aTagTranslatorConfig = exports.defaultCodeBlockTranslators = exports.tableCellTranslatorConfig = exports.tableRowTranslatorConfig = exports.tableTranslatorConfig = exports.defaultTranslators = exports.defaultOptions = exports.contentlessElements = exports.defaultIgnoreElements = exports.defaultBlockElements = void 0;\nconst utilities_1 = require(\"./utilities\");\nconst translator_1 = require(\"./translator\");\n/* ****************************************************************************************************************** */\n// region: Elements\n/* ****************************************************************************************************************** */\nexports.defaultBlockElements = [\n 'ADDRESS', 'ARTICLE', 'ASIDE', 'AUDIO', 'BLOCKQUOTE', 'BODY', 'CANVAS', 'CENTER', 'DD', 'DIR', 'DIV', 'DL',\n 'DT', 'FIELDSET', 'FIGCAPTION', 'FIGURE', 'FOOTER', 'FORM', 'FRAMESET', 'H1', 'H2', 'H3', 'H4', 'H5', 'H6',\n 'HEADER', 'HGROUP', 'HR', 'HTML', 'ISINDEX', 'LI', 'MAIN', 'MENU', 'NAV', 'NOFRAMES', 'NOSCRIPT', 'OL',\n 'OUTPUT', 'P', 'PRE', 'SECTION', 'TABLE', 'TBODY', 'TD', 'TFOOT', 'TH', 'THEAD', 'TR', 'UL'\n];\nexports.defaultIgnoreElements = [\n 'AREA', 'BASE', 'COL', 'COMMAND', 'EMBED', 'HEAD', 'INPUT', 'KEYGEN', 'LINK', 'META', 'PARAM', 'SCRIPT',\n 'SOURCE', 'STYLE', 'TRACK', 'WBR'\n];\nexports.contentlessElements = ['BR', 'HR', 'IMG'];\n// endregion\n/* ****************************************************************************************************************** */\n// region: Options\n/* ****************************************************************************************************************** */\n// noinspection RegExpUnnecessaryNonCapturingGroup\nexports.defaultOptions = Object.freeze({\n preferNativeParser: false,\n codeFence: '```',\n bulletMarker: '*',\n indent: ' ',\n codeBlockStyle: 'fenced',\n emDelimiter: '_',\n strongDelimiter: '**',\n strikeDelimiter: '~~',\n maxConsecutiveNewlines: 3,\n /**\n * Character: Affects: Example:\n *\n * \\ Escaping \\-\n * ` Code `` code ``, ```lang\\n code block \\n```\n * * Bullet & Separators * item, ***\n * _ Bold, Italics, Separator _italic_, __bold__, ^___\n * ~ Strikethrough, Code ~~strike~~, ~~~lang\\n code block \\n~~~\n * [ Url [caption](url)\n * ] Url [caption](url)\n */\n globalEscape: [/[\\\\`*_~\\[\\]]/gm, '\\\\$&'],\n /**\n * Note: The following compiled pattern was selected after perf testing various alternatives.\n * Please be mindful of performance if updating/changing it.\n *\n * Sequence: Affects: Example:\n *\n * +(space) Bullets + item\n * = Heading heading\\n====\n * #{1,6}(space) Heading ## Heading\n * > Blockquote > quote\n * - Bullet, Header, Separator - item, heading\\n---, ---\n * \\d+\\.(space) Numbered list item 1. Item\n */\n lineStartEscape: [\n /^(\\s*?)((?:\\+\\s)|(?:[=>-])|(?:#{1,6}\\s))|(?:(\\d+)(\\.\\s))/gm,\n '$1$3\\\\$2$4'\n ],\n useInlineLinks: true\n});\n// endregion\n/* ****************************************************************************************************************** */\n// region: Translators\n/* ****************************************************************************************************************** */\nexports.defaultTranslators = {\n /* Pre-formatted text */\n 'pre': { noEscape: true, preserveWhitespace: true },\n /* Line break */\n 'br': { content: ` \\n`, recurse: false },\n /* Horizontal Rule*/\n 'hr': { content: '---', recurse: false },\n /* Headings */\n 'h1,h2,h3,h4,h5,h6': ({ node }) => ({\n prefix: '#'.repeat(+node.tagName.charAt(1)) + ' '\n }),\n /* Bold / Strong */\n 'strong,b': {\n spaceIfRepeatingChar: true,\n postprocess: ({ content, options: { strongDelimiter } }) => (0, utilities_1.isWhiteSpaceOnly)(content)\n ? translator_1.PostProcessResult.RemoveNode\n : (0, utilities_1.tagSurround)(content, strongDelimiter)\n },\n /* Strikethrough */\n 'del,s,strike': {\n spaceIfRepeatingChar: true,\n postprocess: ({ content, options: { strikeDelimiter } }) => (0, utilities_1.isWhiteSpaceOnly)(content)\n ? translator_1.PostProcessResult.RemoveNode\n : (0, utilities_1.tagSurround)(content, strikeDelimiter)\n },\n /* Italic / Emphasis */\n 'em,i': {\n spaceIfRepeatingChar: true,\n postprocess: ({ content, options: { emDelimiter } }) => (0, utilities_1.isWhiteSpaceOnly)(content)\n ? translator_1.PostProcessResult.RemoveNode\n : (0, utilities_1.tagSurround)(content, emDelimiter)\n },\n /* Lists (ordered & unordered) */\n 'ol,ul': ({ listKind }) => ({\n surroundingNewlines: listKind ? 1 : 2,\n }),\n /* List Item */\n 'li': ({ options: { bulletMarker }, indentLevel, listKind, listItemNumber }) => {\n const indentationLevel = +(indentLevel || 0);\n return {\n prefix: ' '.repeat(+(indentLevel || 0)) +\n (((listKind === 'OL') && (listItemNumber !== undefined)) ? `${listItemNumber}. ` : `${bulletMarker} `),\n surroundingNewlines: 1,\n postprocess: ({ content }) => (0, utilities_1.isWhiteSpaceOnly)(content)\n ? translator_1.PostProcessResult.RemoveNode\n : content\n .trim()\n .replace(/([^\\r\\n])(?:\\r?\\n)+/g, `$1 \\n${' '.repeat(indentationLevel)}`)\n .replace(/(\\S+?)[^\\S\\r\\n]+$/gm, '$1 ')\n };\n },\n /* Block Quote */\n 'blockquote': {\n postprocess: ({ content }) => (0, utilities_1.trimNewLines)(content).replace(/^(>*)[^\\S\\r\\n]?/gm, `>$1 `)\n },\n /* Code (block / inline) */\n 'code': ({ node, parent, options: { codeFence, codeBlockStyle }, visitor }) => {\n var _a, _b;\n const isCodeBlock = ['PRE', 'WRAPPED-PRE'].includes(parent === null || parent === void 0 ? void 0 : parent.tagName) && parent.childNodes.length < 2;\n /* Handle code (non-block) */\n if (!isCodeBlock)\n return {\n spaceIfRepeatingChar: true,\n noEscape: true,\n postprocess: ({ content }) => {\n var _a, _b;\n // Find longest occurring sequence of running backticks and add one more (so content is escaped)\n const delimiter = '`' + (((_b = (_a = content.match(/`+/g)) === null || _a === void 0 ? void 0 : _a.sort((a, b) => b.length - a.length)) === null || _b === void 0 ? void 0 : _b[0]) || '');\n const padding = delimiter.length > 1 ? ' ' : '';\n return (0, utilities_1.surround)((0, utilities_1.surround)(content, padding), delimiter);\n }\n };\n /* Handle code block */\n if (codeBlockStyle === 'fenced') {\n const language = ((_b = (_a = node.getAttribute('class')) === null || _a === void 0 ? void 0 : _a.match(/language-(\\S+)/)) === null || _b === void 0 ? void 0 : _b[1]) || '';\n return {\n noEscape: true,\n prefix: codeFence + language + '\\n',\n postfix: '\\n' + codeFence,\n childTranslators: visitor.instance.codeBlockTranslators\n };\n }\n else {\n return {\n noEscape: true,\n postprocess: ({ content }) => content.replace(/^/gm, ' '),\n childTranslators: visitor.instance.codeBlockTranslators\n };\n }\n },\n /* Table */\n 'table': ({ visitor }) => ({\n surroundingNewlines: 2,\n childTranslators: visitor.instance.tableTranslators,\n postprocess: ({ content, nodeMetadata, node }) => {\n // Split and trim leading + trailing pipes\n const rawRows = (0, utilities_1.splitSpecial)(content).map(({ text }) => text.replace(/^(?:\\|\\s+)?(.+)\\s*\\|\\s*$/, '$1'));\n /* Get Row Data */\n const rows = [];\n let colWidth = [];\n for (const row of rawRows) {\n if (!row)\n continue;\n /* Track columns */\n const cols = row.split(' |').map((c, i) => {\n c = c.trim();\n if (colWidth.length < i + 1 || colWidth[i] < c.length)\n colWidth[i] = c.length;\n return c;\n });\n rows.push(cols);\n }\n if (rows.length < 1)\n return translator_1.PostProcessResult.RemoveNode;\n /* Compose Table */\n const maxCols = colWidth.length;\n let res = '';\n const caption = nodeMetadata.get(node).tableMeta.caption;\n if (caption)\n res += caption + '\\n';\n rows.forEach((cols, rowNumber) => {\n var _a;\n res += '| ';\n /* Add Columns */\n for (let i = 0; i < maxCols; i++) {\n let c = ((_a = cols[i]) !== null && _a !== void 0 ? _a : '');\n c += ' '.repeat(Math.max(0, (colWidth[i] - c.length))); // Pad to max length\n res += c + ' |' + (i < maxCols - 1 ? ' ' : '');\n }\n res += '\\n';\n // Add separator row\n if (rowNumber === 0)\n res += '|' + colWidth.map(w => ' ' + '-'.repeat(w) + ' |').join('') + '\\n';\n });\n return res;\n }\n }),\n /* Link */\n 'a': ({ node, options, visitor }) => {\n const href = node.getAttribute('href');\n if (!href)\n return {};\n // Encodes symbols that can cause problems in markdown\n let encodedHref = '';\n for (const chr of href) {\n switch (chr) {\n case '(':\n encodedHref += '%28';\n break;\n case ')':\n encodedHref += '%29';\n break;\n case '_':\n encodedHref += '%5F';\n break;\n case '*':\n encodedHref += '%2A';\n break;\n default:\n encodedHref += chr;\n }\n }\n const title = node.getAttribute('title');\n // Inline link, when possible\n // See: https://github.com/crosstype/node-html-markdown/issues/17\n if (node.textContent === href && options.useInlineLinks)\n return { content: `<${encodedHref}>` };\n return {\n postprocess: ({ content }) => content.replace(/(?:\\r?\\n)+/g, ' '),\n childTranslators: visitor.instance.aTagTranslators,\n prefix: '[',\n postfix: ']' + (!options.useLinkReferenceDefinitions\n ? `(${encodedHref}${title ? ` \"${title}\"` : ''})`\n : `[${visitor.addOrGetUrlDefinition(encodedHref)}]`)\n };\n },\n /* Image */\n 'img': ({ node, options }) => {\n const src = node.getAttribute('src') || '';\n if (!src || (!options.keepDataImages && /^data:/i.test(src)))\n return { ignore: true };\n const alt = node.getAttribute('alt') || '';\n const title = node.getAttribute('title') || '';\n return {\n content: ``,\n recurse: false\n };\n },\n};\nexports.tableTranslatorConfig = {\n /* Table Caption */\n 'caption': ({ visitor }) => ({\n surroundingNewlines: false,\n childTranslators: visitor.instance.tableCellTranslators,\n postprocess: ({ content, nodeMetadata, node }) => {\n const caption = content.replace(/(?:\\r?\\n)+/g, ' ').trim();\n if (caption)\n nodeMetadata.get(node).tableMeta.caption = '__' + caption + '__';\n return translator_1.PostProcessResult.RemoveNode;\n },\n }),\n /* Table row */\n 'tr': ({ visitor }) => ({\n surroundingNewlines: false,\n childTranslators: visitor.instance.tableRowTranslators,\n postfix: '\\n',\n prefix: '| ',\n postprocess: ({ content }) => !/ \\|\\s*$/.test(content) ? translator_1.PostProcessResult.RemoveNode : content\n }),\n /* Table cell, (header cell) */\n 'th,td': ({ visitor }) => ({\n surroundingNewlines: false,\n childTranslators: visitor.instance.tableCellTranslators,\n prefix: ' ',\n postfix: ' |',\n postprocess: ({ content }) => (0, utilities_1.trimNewLines)(content)\n .replace('|', '\\\\|')\n .replace(/(?:\\r?\\n)+/g, ' ')\n .trim()\n }),\n};\nexports.tableRowTranslatorConfig = {\n 'th,td': exports.tableTranslatorConfig['th,td']\n};\nexports.tableCellTranslatorConfig = {\n 'a': exports.defaultTranslators['a'],\n 'strong,b': exports.defaultTranslators['strong,b'],\n 'del,s,strike': exports.defaultTranslators['del,s,strike'],\n 'em,i': exports.defaultTranslators['em,i'],\n 'img': exports.defaultTranslators['img']\n};\nexports.defaultCodeBlockTranslators = {\n 'br': { content: `\\n`, recurse: false },\n 'hr': { content: '---', recurse: false },\n 'h1,h2,h3,h4,h5,h6': { prefix: '[', postfix: ']' },\n 'ol,ul': exports.defaultTranslators['ol,ul'],\n 'li': exports.defaultTranslators['li'],\n 'tr': { surroundingNewlines: true },\n 'img': { recurse: false }\n};\nexports.aTagTranslatorConfig = {\n 'br': { content: '\\n', recurse: false },\n 'hr': { content: '\\n', recurse: false },\n 'pre': exports.defaultTranslators['pre'],\n 'strong,b': exports.defaultTranslators['strong,b'],\n 'del,s,strike': exports.defaultTranslators['del,s,strike'],\n 'em,i': exports.defaultTranslators['em,i'],\n 'img': exports.defaultTranslators['img']\n};\n// endregion\n/* ****************************************************************************************************************** */\n// region: General\n/* ****************************************************************************************************************** */\n/**\n * Note: Do not change - values are tuned for performance\n */\nexports.nodeHtmlParserConfig = {\n lowerCaseTagName: false,\n comment: false,\n fixNestedATags: true,\n blockTextElements: {\n script: false,\n noscript: false,\n style: false\n }\n};\n// endregion\n//# sourceMappingURL=config.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isElementNode = exports.isCommentNode = exports.isTextNode = exports.CommentNode = exports.NodeType = void 0;\nconst node_html_parser_1 = require(\"node-html-parser\");\nObject.defineProperty(exports, \"CommentNode\", { enumerable: true, get: function () { return node_html_parser_1.CommentNode; } });\nObject.defineProperty(exports, \"NodeType\", { enumerable: true, get: function () { return node_html_parser_1.NodeType; } });\n// endregion\n/* ****************************************************************************************************************** */\n// region: TypeGuards\n/* ****************************************************************************************************************** */\nconst isTextNode = (node) => node.nodeType === node_html_parser_1.NodeType.TEXT_NODE;\nexports.isTextNode = isTextNode;\nconst isCommentNode = (node) => node.nodeType === node_html_parser_1.NodeType.COMMENT_NODE;\nexports.isCommentNode = isCommentNode;\nconst isElementNode = (node) => node.nodeType === node_html_parser_1.NodeType.ELEMENT_NODE;\nexports.isElementNode = isElementNode;\n// endregion\n//# sourceMappingURL=nodes.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getMarkdownForHtmlNodes = exports.Visitor = void 0;\nconst nodes_1 = require(\"./nodes\");\nconst utilities_1 = require(\"./utilities\");\nconst translator_1 = require(\"./translator\");\nconst config_1 = require(\"./config\");\n// endregion\n/* ****************************************************************************************************************** */\n// region: Visitor\n/* ****************************************************************************************************************** */\n/**\n * Properties & methods marked public are designated as such due to the fact that we may add middleware / transformer\n * support in the future\n */\nclass Visitor {\n constructor(instance, rootNode, fileName) {\n this.instance = instance;\n this.rootNode = rootNode;\n this.fileName = fileName;\n this.nodeMetadata = new Map();\n this.urlDefinitions = [];\n this.result = {\n text: '',\n trailingNewlineStats: {\n whitespace: 0,\n newLines: 0\n }\n };\n this.options = instance.options;\n this.optimizeTree(rootNode);\n this.visitNode(rootNode);\n }\n /* ********************************************************* */\n // region: Methods\n /* ********************************************************* */\n addOrGetUrlDefinition(url) {\n let id = this.urlDefinitions.findIndex(u => u === url);\n if (id < 0)\n id = this.urlDefinitions.push(url) - 1;\n return id + 1;\n }\n appendResult(s, startPos, spaceIfRepeatingChar) {\n if (!s && startPos === undefined)\n return;\n const { result } = this;\n if (startPos !== undefined)\n result.text = result.text.substr(0, startPos);\n result.text += (spaceIfRepeatingChar && result.text.slice(-1) === s[0] ? ' ' : '') + s;\n result.trailingNewlineStats = (0, utilities_1.getTrailingWhitespaceInfo)(result.text);\n }\n appendNewlines(count) {\n const { newLines } = this.result.trailingNewlineStats;\n this.appendResult('\\n'.repeat(Math.max(0, (+count - newLines))));\n }\n // endregion\n /* ********************************************************* */\n // region: Internal Methods\n /* ********************************************************* */\n /**\n * Optimize tree, flagging nodes that have usable content\n */\n optimizeTree(node) {\n (0, utilities_1.perfStart)('Optimize tree');\n const { translators } = this.instance;\n (function visit(node) {\n let res = false;\n if ((0, nodes_1.isTextNode)(node) || ((0, nodes_1.isElementNode)(node) && config_1.contentlessElements.includes(node.tagName))) {\n res = true;\n }\n else {\n const childNodes = (0, utilities_1.getChildNodes)(node);\n if (!childNodes.length) {\n const translator = translators[node.tagName];\n if ((translator === null || translator === void 0 ? void 0 : translator.preserveIfEmpty) || typeof translator === 'function')\n res = true;\n }\n else\n for (const child of childNodes) {\n if (!res)\n res = visit(child);\n else\n visit(child);\n }\n }\n return node.preserve = res;\n })(node);\n (0, utilities_1.perfStop)('Optimize tree');\n }\n /**\n * Apply escaping and custom replacement rules\n */\n processText(text, metadata) {\n let res = text;\n if (!(metadata === null || metadata === void 0 ? void 0 : metadata.preserveWhitespace))\n res = res.replace(/\\s+/g, ' ');\n if (metadata === null || metadata === void 0 ? void 0 : metadata.noEscape)\n return res;\n const { lineStartEscape, globalEscape, textReplace } = this.options;\n res = res\n .replace(globalEscape[0], globalEscape[1])\n .replace(lineStartEscape[0], lineStartEscape[1]);\n /* If specified, apply custom replacement patterns */\n if (textReplace)\n for (const [pattern, r] of textReplace)\n res = res.replace(pattern, r);\n return res;\n }\n visitNode(node, textOnly, metadata) {\n var _a, _b, _c, _d;\n var _e, _f;\n const { result } = this;\n if (!node.preserve)\n return;\n /* Handle text node */\n if ((0, nodes_1.isTextNode)(node)) {\n if (node.wholeText) {\n (_a = (_e = node).text) !== null && _a !== void 0 ? _a : (_e.text = node.wholeText);\n (_b = (_f = node).trimmedText) !== null && _b !== void 0 ? _b : (_f.trimmedText = (0, utilities_1.trimNewLines)(node.wholeText));\n }\n return node.isWhitespace && !(metadata === null || metadata === void 0 ? void 0 : metadata.preserveWhitespace)\n ? (!result.text.length || result.trailingNewlineStats.whitespace > 0) ? void 0 : this.appendResult(' ')\n : this.appendResult(this.processText((metadata === null || metadata === void 0 ? void 0 : metadata.preserveWhitespace) ? node.text : node.trimmedText, metadata));\n }\n if (textOnly || !(0, nodes_1.isElementNode)(node))\n return;\n /* Handle element node */\n const translatorCfgOrFactory = (metadata === null || metadata === void 0 ? void 0 : metadata.translators) ? metadata.translators[node.tagName] : this.instance.translators[node.tagName];\n /* Update metadata with list detail */\n switch (node.tagName) {\n case 'UL':\n case 'OL':\n metadata = Object.assign(Object.assign({}, metadata), { listItemNumber: 0, listKind: node.tagName, indentLevel: ((_c = metadata === null || metadata === void 0 ? void 0 : metadata.indentLevel) !== null && _c !== void 0 ? _c : -1) + 1 });\n break;\n case 'LI':\n if ((metadata === null || metadata === void 0 ? void 0 : metadata.listKind) === 'OL')\n metadata.listItemNumber = ((_d = metadata.listItemNumber) !== null && _d !== void 0 ? _d : 0) + 1;\n break;\n case 'PRE':\n metadata = Object.assign(Object.assign({}, metadata), { preserveWhitespace: true });\n break;\n case 'TABLE':\n metadata = Object.assign(Object.assign({}, metadata), { tableMeta: {\n node: node\n } });\n }\n if (metadata)\n this.nodeMetadata.set(node, metadata);\n // If no translator for element, visit children\n if (!translatorCfgOrFactory) {\n for (const child of (0, utilities_1.getChildNodes)(node))\n this.visitNode(child, textOnly, metadata);\n return;\n }\n /* Get Translator Config */\n let cfg;\n let ctx;\n if (!(0, translator_1.isTranslatorConfig)(translatorCfgOrFactory)) {\n ctx = (0, translator_1.createTranslatorContext)(this, node, metadata, translatorCfgOrFactory.base);\n cfg = Object.assign(Object.assign({}, translatorCfgOrFactory.base), translatorCfgOrFactory(ctx));\n }\n else\n cfg = translatorCfgOrFactory;\n // Skip and don't check children if ignore flag set\n if (cfg.ignore)\n return;\n /* Update metadata if needed */\n if (cfg.noEscape && !(metadata === null || metadata === void 0 ? void 0 : metadata.noEscape)) {\n metadata = Object.assign(Object.assign({}, metadata), { noEscape: cfg.noEscape });\n this.nodeMetadata.set(node, metadata);\n }\n if (cfg.childTranslators && (cfg.childTranslators !== (metadata === null || metadata === void 0 ? void 0 : metadata.translators))) {\n metadata = Object.assign(Object.assign({}, metadata), { translators: cfg.childTranslators });\n this.nodeMetadata.set(node, metadata);\n }\n const startPosOuter = result.text.length;\n /* Write opening */\n if (cfg.surroundingNewlines)\n this.appendNewlines(+cfg.surroundingNewlines);\n if (cfg.prefix)\n this.appendResult(cfg.prefix);\n /* Write inner content */\n if (typeof cfg.content === 'string')\n this.appendResult(cfg.content, void 0, cfg.spaceIfRepeatingChar);\n else {\n const startPos = result.text.length;\n // Process child nodes\n for (const child of (0, utilities_1.getChildNodes)(node))\n this.visitNode(child, (cfg.recurse === false), metadata);\n /* Apply translator post-processing */\n if (cfg.postprocess) {\n const postRes = cfg.postprocess(Object.assign(Object.assign({}, (ctx || (0, translator_1.createTranslatorContext)(this, node, metadata))), { content: result.text.substr(startPos) }));\n // If remove flag sent, remove / omit everything for this node (prefix, newlines, content, postfix)\n if (postRes === translator_1.PostProcessResult.RemoveNode) {\n if (node.tagName === 'LI' && (metadata === null || metadata === void 0 ? void 0 : metadata.listItemNumber))\n --metadata.listItemNumber;\n return this.appendResult('', startPosOuter);\n }\n if (typeof postRes === 'string')\n this.appendResult(postRes, startPos, cfg.spaceIfRepeatingChar);\n }\n }\n /* Write closing */\n if (cfg.postfix)\n this.appendResult(cfg.postfix);\n if (cfg.surroundingNewlines)\n this.appendNewlines(+cfg.surroundingNewlines);\n }\n}\nexports.Visitor = Visitor;\n// endregion\n/* ****************************************************************************************************************** */\n// region: Utilities\n/* ****************************************************************************************************************** */\nfunction getMarkdownForHtmlNodes(instance, rootNode, fileName) {\n (0, utilities_1.perfStart)('walk');\n const visitor = new Visitor(instance, rootNode, fileName);\n let result = visitor.result.text;\n (0, utilities_1.perfStop)('walk');\n /* Post-processing */\n // Add link references, if set\n if (instance.options.useLinkReferenceDefinitions) {\n if (/[^\\r\\n]/.test(result.slice(-1)))\n result += '\\n';\n visitor.urlDefinitions.forEach((url, idx) => {\n result += `\\n[${idx + 1}]: ${url}`;\n });\n }\n // Fixup repeating newlines\n const { maxConsecutiveNewlines } = instance.options;\n if (maxConsecutiveNewlines)\n result = result.replace(new RegExp(String.raw `(?:\\r?\\n\\s*)+((?:\\r?\\n\\s*){${maxConsecutiveNewlines}})`, 'g'), '$1');\n return (0, utilities_1.trimNewLines)(result);\n}\nexports.getMarkdownForHtmlNodes = getMarkdownForHtmlNodes;\n// endregion\n//# sourceMappingURL=visitor.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeHtmlMarkdown = void 0;\nconst translator_1 = require(\"./translator\");\nconst config_1 = require(\"./config\");\nconst utilities_1 = require(\"./utilities\");\nconst visitor_1 = require(\"./visitor\");\n// endregion\n/* ****************************************************************************************************************** */\n// region: NodeHtmlMarkdown (class)\n/* ****************************************************************************************************************** */\nclass NodeHtmlMarkdown {\n constructor(options, customTranslators, customCodeBlockTranslators) {\n var _a, _b, _c, _d;\n this.translators = new translator_1.TranslatorCollection();\n this.aTagTranslators = new translator_1.TranslatorCollection();\n this.codeBlockTranslators = new translator_1.TranslatorCollection();\n this.tableTranslators = new translator_1.TranslatorCollection();\n this.tableRowTranslators = new translator_1.TranslatorCollection();\n this.tableCellTranslators = new translator_1.TranslatorCollection();\n /* Setup Options */\n this.options = Object.assign(Object.assign({}, config_1.defaultOptions), options);\n const ignoredElements = (_b = (_a = this.options.ignore) === null || _a === void 0 ? void 0 : _a.concat(config_1.defaultIgnoreElements)) !== null && _b !== void 0 ? _b : config_1.defaultIgnoreElements;\n const blockElements = (_d = (_c = this.options.blockElements) === null || _c === void 0 ? void 0 : _c.concat(config_1.defaultBlockElements)) !== null && _d !== void 0 ? _d : config_1.defaultBlockElements;\n /* Setup Translator Bases */\n ignoredElements === null || ignoredElements === void 0 ? void 0 : ignoredElements.forEach(el => {\n this.translators.set(el, { ignore: true, recurse: false });\n this.codeBlockTranslators.set(el, { ignore: true, recurse: false });\n });\n blockElements === null || blockElements === void 0 ? void 0 : blockElements.forEach(el => {\n this.translators.set(el, { surroundingNewlines: 2 });\n this.codeBlockTranslators.set(el, { surroundingNewlines: 2 });\n });\n /* Add and merge bases with default and custom translator configs */\n for (const [elems, cfg] of Object.entries(Object.assign(Object.assign({}, config_1.defaultTranslators), customTranslators)))\n this.translators.set(elems, cfg, true);\n for (const [elems, cfg] of Object.entries(Object.assign(Object.assign({}, config_1.defaultCodeBlockTranslators), customCodeBlockTranslators)))\n this.codeBlockTranslators.set(elems, cfg, true);\n for (const [elems, cfg] of Object.entries(config_1.aTagTranslatorConfig))\n this.aTagTranslators.set(elems, cfg, true);\n for (const [elems, cfg] of Object.entries(config_1.tableTranslatorConfig))\n this.tableTranslators.set(elems, cfg, true);\n for (const [elems, cfg] of Object.entries(config_1.tableRowTranslatorConfig))\n this.tableRowTranslators.set(elems, cfg, true);\n for (const [elems, cfg] of Object.entries(config_1.tableCellTranslatorConfig))\n this.tableCellTranslators.set(elems, cfg, true);\n // TODO - Workaround for upstream issue (may not be fixed) - https://github.com/taoqf/node-html-parser/issues/78\n if (!this.options.textReplace)\n this.options.textReplace = [];\n this.options.textReplace.push([/^<!DOCTYPE.*>/gmi, '']);\n }\n static translate(htmlOrFiles, opt, customTranslators, customCodeBlockTranslators) {\n return NodeHtmlMarkdown.prototype.translateWorker.call(new NodeHtmlMarkdown(opt, customTranslators, customCodeBlockTranslators), htmlOrFiles);\n }\n translate(htmlOrFiles) {\n return this.translateWorker(htmlOrFiles);\n }\n // endregion\n /* ********************************************************* */\n // region: Internal Methods\n /* ********************************************************* */\n translateWorker(htmlOrFiles) {\n const inputIsCollection = typeof htmlOrFiles !== 'string';\n const inputFiles = !inputIsCollection ? { 'default': htmlOrFiles } : htmlOrFiles;\n const outputFiles = {};\n for (const [fileName, html] of Object.entries(inputFiles)) {\n const parsedHtml = (0, utilities_1.parseHTML)(html, this.options);\n outputFiles[fileName] = (0, visitor_1.getMarkdownForHtmlNodes)(this, parsedHtml, fileName !== 'default' ? fileName : void 0);\n }\n return inputIsCollection ? outputFiles : outputFiles['default'];\n }\n}\nexports.NodeHtmlMarkdown = NodeHtmlMarkdown;\n// endregion\n//# sourceMappingURL=main.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PostProcessResult = exports.TranslatorCollection = exports.NodeHtmlMarkdown = void 0;\nvar main_1 = require(\"./main\");\nObject.defineProperty(exports, \"NodeHtmlMarkdown\", { enumerable: true, get: function () { return main_1.NodeHtmlMarkdown; } });\nvar translator_1 = require(\"./translator\");\nObject.defineProperty(exports, \"TranslatorCollection\", { enumerable: true, get: function () { return translator_1.TranslatorCollection; } });\nObject.defineProperty(exports, \"PostProcessResult\", { enumerable: true, get: function () { return translator_1.PostProcessResult; } });\n//# sourceMappingURL=index.js.map","import { promiseFactoryToObservable } from '@sourcegraph/observable'\nimport { NodeHtmlMarkdown } from 'node-html-markdown'\nimport type { ReadWebPageToolDef } from './common'\n\nexport const nodeReadWebPageTool = ({ args }: { args: ReadWebPageToolDef['args'] }) => {\n\treturn promiseFactoryToObservable(async (signal) => {\n\t\ttry {\n\t\t\t// Using built-in fetch API\n\t\t\tconst response = await fetch(args.url, { signal })\n\t\t\tconst htmlText = await response.text()\n\t\t\tconst contentType = response.headers.get('content-type') || ''\n\t\t\tconst isHtml =\n\t\t\t\thtmlText.toLowerCase().includes('<html') || contentType.includes('text/html')\n\n\t\t\t// Process based on content type and raw flag\n\t\t\tlet content: string\n\t\t\tlet prefix = ''\n\n\t\t\t// If it's HTML and not requested as raw, convert to markdown\n\t\t\tif (isHtml && !args.raw) {\n\t\t\t\t// Use NodeHtmlMarkdown to convert HTML to markdown\n\t\t\t\tconst nhm = new NodeHtmlMarkdown({\n\t\t\t\t\tcodeFence: '```',\n\t\t\t\t\tcodeBlockStyle: 'fenced',\n\t\t\t\t})\n\t\t\t\tcontent = nhm.translate(htmlText)\n\t\t\t} else {\n\t\t\t\t// Return raw content with appropriate prefix\n\t\t\t\tcontent = htmlText\n\t\t\t\tprefix = isHtml\n\t\t\t\t\t? `Raw HTML content as requested:\\n`\n\t\t\t\t\t: `Content type ${contentType} cannot be simplified to markdown, returning as-is:\\n`\n\t\t\t}\n\n\t\t\t// Handle pagination with start_index and max_length\n\t\t\tconst startIndex = args.start_index || 0\n\t\t\tconst maxLength = args.max_length || 5000\n\t\t\tconst originalLength = content.length\n\n\t\t\t// No content available if start index is beyond content length\n\t\t\tif (startIndex >= originalLength) {\n\t\t\t\tcontent = '<e>No more content available.</e>'\n\t\t\t\treturn {\n\t\t\t\t\tstatus: 'done' as const,\n\t\t\t\t\tresult: `${prefix}Contents of ${args.url}:\\n${content}`,\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst truncatedContent = content.substring(startIndex, startIndex + maxLength)\n\t\t\tif (!truncatedContent) {\n\t\t\t\tcontent = '<e>No more content available.</e>'\n\t\t\t\treturn {\n\t\t\t\t\tstatus: 'done' as const,\n\t\t\t\t\tresult: `${prefix}Contents of ${args.url}:\\n${content}`,\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcontent = truncatedContent\n\t\t\tconst actualContentLength = truncatedContent.length\n\t\t\tconst remainingContent = originalLength - (startIndex + actualContentLength)\n\n\t\t\t// Add prompt to continue fetching if there's more content\n\t\t\tif (actualContentLength === maxLength && remainingContent > 0) {\n\t\t\t\tconst nextStart = startIndex + actualContentLength\n\t\t\t\tcontent += `\\n\\n<e>Content truncated. Call the read_web_page tool with a start_index of ${nextStart} and max_length ${maxLength * 2} to get more content.</e>`\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tstatus: 'done' as const,\n\t\t\t\tresult: `${prefix}Contents of ${args.url}:\\n${content}`,\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tthrow new Error(`Failed to fetch URL: ${(error as Error).message}`)\n\t\t}\n\t})\n}\n"],"names":["exports","PostProcessResult","TranslatorCollection","keys","config","preserveBase","el","res","base","args","key","isTranslatorConfig","v","createTranslatorContext","visitor","node","metadata","instance","nodeMetadata","root","freeExports","freeModule","module","freeGlobal","global","regexAstralSymbols","regexAsciiWhitelist","regexBmpWhitelist","regexEncodeNonAscii","encodeMap","regexEscape","escapeMap","regexInvalidEntity","regexInvalidRawCodePoint","regexDecode","decodeMap","decodeMapLegacy","decodeMapNumeric","invalidReferenceCodePoints","stringFromCharCode","object","hasOwnProperty","has","propertyName","contains","array","value","index","length","merge","options","defaults","result","codePointToSymbol","codePoint","strict","output","parseError","hexEscape","decEscape","message","encode","string","encodeEverything","useNamedReferences","allowUnsafeSymbols","escapeCodePoint","escapeBmpSymbol","symbol","$0","high","low","decode","html","$1","$2","$3","$4","$5","$6","$7","$8","semicolon","decDigits","hexDigits","reference","next","escape","he","this","he_1","require$$0","Node","parentNode","range","_this","children","child","val","type","NodeType","__extends","extendStatics","d","b","p","__","__importDefault","mod","comment","node_1","type_1","CommentNode","_super","rawText","rawTagName","ElementType","isTag","elem","__assign","t","s","i","n","domelementtype_1","parent","prev","recursive","cloneNode","DataNode","data","Text","Comment","ProcessingInstruction","name","NodeWithChildren","_a","CDATA","Document","Element","attribs","_b","isCDATA","isText","isComment","isDirective","isDocument","hasChildren","cloneChildren","clone_1","clone_2","clone_3","instruction","childs","__createBinding","o","m","k","k2","desc","__exportStar","node_js_1","require$$1","defaultOpts","DomHandler","callback","elementCB","parser","error","element","lastNode","text","previousSibling","decodeDataHtml","c","decodeDataXml","replaceCodePoint","decodeCodePoint","__setModuleDefault","__importStar","decode_data_html_js_1","decode_data_xml_js_1","decode_codepoint_js_1","decode_codepoint_js_2","require$$2","CharCodes","TO_LOWER_BIT","BinTrieFlags","isNumber","code","isHexadecimalCharacter","isAsciiAlphaNumeric","isEntityInAttributeInvalidEnd","EntityDecoderState","DecodingMode","EntityDecoder","decodeTree","emitCodePoint","errors","decodeMode","str","offset","start","end","digitCount","startIdx","char","lastCp","expectedLength","current","valueLength","determineBranch","consumed","getDecoder","ret","decoder","lastIndex","len","nodeIdx","branchCount","jumpOffset","lo","hi","mid","midVal","htmlDecoder","xmlDecoder","decodeHTML","mode","decodeHTMLAttribute","decodeHTMLStrict","decodeXML","encodeHtml","restoreDiff","arr","xmlCodeMap","encodeXML","lastIdx","match","getEscaper","regex","map","encode_html_js_1","escape_js_1","htmlReplacer","encodeHTML","encodeHTMLTrieRe","encodeNonAsciiHTML","regExp","nextChar","cp","decode_js_1","encode_js_1","EntityLevel","EncodingMode","level","decodeStrict","opts","escape_js_2","encode_js_2","decode_js_2","foreignNames","lib","entities_1","foreignNames_js_1","unencodedElements","replaceQuotes","formatAttributes","attributes","singleTag","render","nodes","renderNode","renderDirective","renderComment","renderCdata","renderTag","renderText","foreignModeIntegrationPoints","foreignElements","tag","stringify","getOuterHTML","getInnerHTML","getText","textContent","innerText","domhandler_1","dom_serializer_1","traversal","getChildren","getParent","getSiblings","getAttributeValue","hasAttrib","getName","nextElementSibling","prevElementSibling","siblings","manipulation","removeElement","replaceElement","appendChild","append","prependChild","prepend","childsIndex","replacement","sibling","currNext","querying","filter","find","findOneChild","findOne","existsOne","findAll","test","recurse","limit","nodeStack","indexStack","searchedNodes","found","legacy","testElement","getElements","getElementById","getElementsByTagName","getElementsByClassName","getElementsByTagType","querying_js_1","Checks","getAttribCheck","attrib","combineFuncs","a","compileTest","funcs","id","tagName","className","helpers","removeSubsets","compareDocumentPosition","uniqueSort","idx","ancestor","DocumentPosition","nodeA","nodeB","aParents","bParents","maxIdx","sharedParent","aSibling","bSibling","relative","feeds","getFeed","stringify_js_1","legacy_js_1","doc","feedRoot","getOneElement","isValidFeed","getAtomFeed","getRssFeed","feed","item","entry","getMediaElements","addConditionally","href","description","fetch","pubDate","updated","MEDIA_KEYS_STRING","MEDIA_KEYS_INT","where","media","_i","MEDIA_KEYS_STRING_1","MEDIA_KEYS_INT_1","obj","prop","require$$3","require$$4","require$$5","require$$6","require$$7","boolbase","SelectorType","IgnoreCaseMode","AttributeAction","reName","reEscape","actionTypes","unpackPseudos","isTraversal","selector","stripQuotesFromPseudos","funescape","_","escaped","escapedWhitespace","unescapeCSS","isQuote","isWhitespace","parse","subselects","endIndex","parseSelector","selectorIndex","tokens","stripWhitespace","readValueWithParenthesis","counter","isEscaped","pos","slashCount","ensureNotTraversal","addTraversal","addSpecialAttribute","action","finalizeSubselector","loop","firstChar","namespace","possibleAction","ignoreCase","quote","sectionEnd","valueStart","forceIgnore","attributeSelector","quot","attribValChars","pseudoValChars","charsToEscapeInAttributeValue","charsToEscapeInPseudoValue","charsToEscapeInName","token","stringifyToken","getNamespace","getNamespacedName","escapeName","getActionValue","charsToEscape","sort","css_what_1","procedure","sortByProcedure","procs","getProcedure","procNew","j","proc","boolbase_1","reChars","escapeRegex","caseInsensitiveAttributes","shouldIgnoreCase","adapter","attr","regex_1","parse_1","whitespace","ZERO","NINE","formula","sign","readSign","number","readNumber","skipWhitespace","compile_1","compile","parsed","absA","bMod","generate","aPos_1","minValue_1","parse_js_1","compile_js_1","nthCheck","sequence","nth_check_1","getChildFunc","itext","rule","equals","func","currentSibling","_rule","context","dynamicStatePseudo","pseudos","firstChild","elemName","verifyPseudoArgs","subselect","argIndex","aliases","__spreadArray","to","from","pack","l","ar","sort_js_1","ensureIsTag","getNextSiblings","elemIndex","copyOptions","is","compileToken","_context","compiled","hasElement","shouldTestNextSiblings_1","nextElements","filters_js_1","pseudos_js_1","aliases_js_1","subselects_js_1","compilePseudoSelector","userPseudo","stringPseudo","alias","pseudo_1","general","attributes_js_1","index_js_1","getElementParent","compileGeneralSelector","name_1","isFalseCache_1","previous","lastElement","general_js_1","compileUnsafe","includesScopePseudo","DESCENDANT_TOKEN","FLEXIBLE_DESCENDANT_TOKEN","SCOPE_TOKEN","absolutize","hasContext","e","token_1","isArrayContext","finalContext","shouldTestNextSiblings","query","rules","first","second","compileRules","reduceRules","DomUtils","defaultEquals","defaultOptions","convertOptionFormats","_c","_d","wrapCompile","getSelectorFunc","searchFunc","elements","filteredElements","prepareContext","elems","appendNextSiblings","elemsLength","nextSiblings","back","arr_back","matcher","replace","voidTag","VoidTag","addClosingSlash","tags","set","attrs","innerHTML","closingSpace","closingSlash","TextNode","trimText","startPos","endPos","hasLeadingSpace","hasTrailingSpace","css_select_1","back_1","matcher_1","void_tag_1","comment_1","text_1","Htags","Dtags","Ftags","tableTags","htmlTags","kBlockElements","addToKBlockElement","addToSet","args_1","arg","DOMTokenList","valuesInit","afterUpdate","c1","c2","HTMLElement","keyAttrs","rawAttrs","_parseOptions","classList","cls","oldNode","newNode","newname","pre","cur","content","currentBlock","blocks","dfs","block","r","resetParent","pattern","childNode","indention","write","idStr","classStr","upperCasedTagName","re","stack","currentNodeReference","mapChild","old","el_1","ret_attrs","kMarkupPattern","kAttributePattern","kElementsClosedByOpening","kElementsClosedByClosing","frameflag","base_parse","element_names","kBlockTextElements","it","kIgnoreElements","element_should_be_ignore","is_block_text_element","createRange","frameFlagOffset","currentParent","lastTextPos","noNestedTagIndex","lowerCaseTagName","fixNestedATags","dataEndPos","matchText","leadingSlash","matchLength","tagStartPos","tagEndPos","attMatch","isQuoted","parentTagName","tagEndPos_1","tagStartPos_1","closeMarkup","closeIndex","textEndPos","_loop_1","last","oneBefore","html_1","valid_1","valid","dist","utilities","config_1","trimNewLines","surround","source","surroundStr","isWhiteSpaceOnly","splitSpecial","lines","strLen","newLineChar","tagSurround","leadingSpace","trailingSpace","slicedText","getTrailingWhitespaceInfo","minI","truthyStr","tryParseWithNativeDom","ActiveXObject","getNodeHtmlParser","parseHTML","nodeHtmlParse","perfStart","perfStop","getChildNodes","isNodeList","label","utilities_1","translator_1","strongDelimiter","strikeDelimiter","emDelimiter","listKind","bulletMarker","indentLevel","listItemNumber","indentationLevel","codeFence","codeBlockStyle","delimiter","padding","language","rawRows","rows","colWidth","row","cols","maxCols","caption","rowNumber","w","encodedHref","chr","title","src","alt","node_html_parser_1","isTextNode","isCommentNode","isElementNode","nodes_1","Visitor","rootNode","fileName","url","u","spaceIfRepeatingChar","count","newLines","translators","visit","childNodes","translator","lineStartEscape","globalEscape","textReplace","textOnly","_e","_f","translatorCfgOrFactory","cfg","ctx","startPosOuter","postRes","getMarkdownForHtmlNodes","maxConsecutiveNewlines","main","visitor_1","NodeHtmlMarkdown","customTranslators","customCodeBlockTranslators","ignoredElements","blockElements","htmlOrFiles","opt","inputIsCollection","inputFiles","outputFiles","parsedHtml","main_1","nodeReadWebPageTool","promiseFactoryToObservable","signal","response","htmlText","contentType","isHtml","prefix","startIndex","maxLength","originalLength","truncatedContent","actualContentLength","remainingContent","nextStart"],"mappings":"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QAAO,MAAe,QAAO,MAAe,OAAM,MAAe,QAAO,MAAe,OAAM,MAAe,QAAO,GAAS,SAAQ,GAAS,SAAQ,KAAS,SAAQ,MAAe,QAAO,MAAe,QAAO,MAAe,OAAM,MAAe,QAAO,MAAe,QAAO,MAAe,OAAM,GAAS,UAAS,GAAS,UAAS,MAAe,OAAM,MAAe,QAAO,GAAS,OAAM,MAAe,QAAO,GAAS,QAAO,MAAe,OAAM,MAAe,QAAO,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,MAAe,OAAM,MAAe,QAAO,MAAe,QAAO,MAAe,OAAM,MAAe,QAAO,GAAS,QAAO,MAAe,OAAM,MAAe,QAAO,MAAe,QAAO,GAAS,QAAO,MAAe,QAAO,MAAe,OAAM,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAO,UAAS,GAAO,UAAS,GAAS,UAAS,GAAS,UAAS,KAAS,UAAS,GAAS,OAAM,GAAS,OAAM,MAAe,QAAO,MAAe,OAAM,GAAS,QAAO,MAAe,QAAO,MAAe,OAAM,MAAe,QAAO,GAAO,QAAO,GAAO,UAAS,GAAO,UAAS,GAAO,UAAS,GAAO,UAAS,GAAO,SAAQ,GAAO,SAAQ,GAAO,QAAO,GAAO,QAAO,GAAS,UAAS,GAAS,UAAS,GAAO,UAAS,GAAO,UAAS,GAAO,UAAS,GAAO,UAAS,GAAS,SAAQ,GAAS,SAAQ,GAAS,SAAQ,GAAS,SAAQ,MAAe,OAAM,MAAe,QAAO,MAAe,QAAO,GAAS,QAAO,MAAe,OAAM,MAAe,QAAO,MAAe,QAAO,MAAe,OAAM,MAAe,QAAO,MAAe,QAAO,MAAe,OAAM,GAAS,QAAO,GAAS,UAAS,MAAe,OAAM,MAAe,QAAO,MAAe,QAAO,GAAS,QAAO,GAAS,MAAK,GAAS,QAAO,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,MAAe,QAAO,MAAe,QAAO,MAAe,OAAM,MAAe,QAAO,MAAe,OAAM,MAAe,QAAO,KAAS,MAAK,GAAS,UAAS,GAAS,UAAS,GAAS,SAAQ,GAAS,SAAQ,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAO,SAAQ,MAAe,OAAM,MAAe,QAAO,MAAe,QAAO,MAAe,QAAO,MAAe,OAAM,MAAe,QAAO,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,KAAS,SAAQ,GAAS,UAAS,GAAS,UAAS,MAAe,QAAO,MAAe,QAAO,MAAe,OAAM,MAAe,QAAO,MAAe,OAAM,MAAe,QAAO,GAAO,UAAS,GAAO,UAAS,GAAO,UAAS,GAAO,UAAS,GAAS,UAAS,GAAS,UAAS,GAAO,SAAQ,GAAO,SAAQ,GAAS,SAAQ,GAAS,SAAQ,GAAO,QAAO,GAAO,QAAO,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAS,SAAQ,GAAS,SAAQ,GAAS,SAAQ,GAAS,SAAQ,MAAe,OAAM,MAAe,QAAO,MAAe,QAAO,MAAe,OAAM,MAAe,QAAO,MAAe,QAAO,MAAe,QAAO,MAAe,QAAO,MAAe,OAAM,MAAe,QAAO,MAAe,QAAO,MAAe,OAAM,GAAS,SAAQ,GAAS,SAAQ,MAAe,OAAM,MAAe,QAAO,MAAe,QAAO,MAAe,QAAO,MAAe,OAAM,MAAe,QAAO,MAAe,OAAM,MAAe,QAAO,MAAe,QAAO,MAAe,QAAO,MAAe,OAAM,MAAe,QAAO,GAAO,UAAS,GAAO,UAAS,GAAS,SAAQ,GAAS,SAAQ,GAAO,QAAO,GAAS,QAAO,MAAe,QAAO,MAAe,OAAM,MAAe,QAAO,GAAS,OAAM,GAAS,QAAO,MAAe,QAAO,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAS,QAAO,GAAS,QAAO,GAAS,SAAQ,GAAO,SAAQ,GAAO,SAAQ,GAAS,SAAQ,GAAS,SAAQ,GAAS,SAAQ,GAAS,QAAO,GAAS,QAAO,GAAS,SAAQ,GAAS,SAAQ,GAAS,SAAQ,GAAS,SAAQ,GAAS,QAAO,KAAS,SAAQ,GAAS,WAAU,GAAS,UAAS,GAAS,UAAS,GAAS,QAAO,GAAS,QAAO,GAAS,OAAM,GAAS,OAAM,GAAS,SAAQ,GAAS,UAAS,GAAS,SAAQ,GAAS,QAAO,GAAS,QAAO,GAAS,SAAQ,GAAS,UAAS,GAAS,SAAQ,GAAS,UAAS,GAAS,UAAS,GAAS,MAAK,GAAO,SAAQ,GAAS,MAAK,GAAS,MAAK,GAAS,MAAK,GAAS,MAAK,GAAS,MAAK,GAAS,WAAU,GAAS,WAAU,GAAS,MAAK,GAAS,OAAM,GAAS,MAAK,GAAS,OAAM,GAAS,QAAO,GAAS,OAAM,GAAS,SAAQ,GAAS,SAAQ,GAAS,UAAS,GAAS,OAAM,GAAS,OAAM,GAAS,QAAO,GAAS,WAAU,GAAS,QAAO,GAAS,OAAM,GAAS,QAAO,GAAS,OAAM,GAAS,OAAM,GAAS,OAAM,GAAS,OAAM,GAAS,OAAM,GAAS,SAAQ,GAAS,OAAM,GAAS,OAAM,GAAS,OAAM,GAAS,OAAM,GAAS,OAAM,GAAS,OAAM,GAAS,OAAM,GAAS,OAAM,GAAS,OAAM,GAAS,QAAO,GAAS,QAAO,GAAS,OAAM,GAAS,OAAM,GAAS,QAAO,GAAS,QAAO,GAAS,QAAO,GAAS,QAAO,GAAS,QAAO,GAAS,QAAO,GAAS,SAAQ,GAAS,SAAQ,GAAS,QAAO,GAAS,QAAO,GAAS,OAAM,GAAS,OAAM,GAAS,QAAO,GAAS,QAAO,GAAS,OAAM,GAAS,OAAM,GAAS,SAAQ,GAAS,SAAQ,GAAS,QAAO,GAAS,QAAO,GAAS,OAAM,GAAS,OAAM,GAAS,UAAS,GAAS,UAAS,GAAS,OAAM,GAAS,OAAM,GAAS,QAAO,GAAS,QAAO,GAAS,OAAM,GAAS,OAAM,GAAS,QAAO,GAAS,QAAO,GAAS,OAAM,GAAS,OAAM,GAAS,OAAM,GAAS,OAAM,GAAS,QAAO,GAAS,QAAO,GAAS,OAAM,GAAS,OAAM,GAAS,OAAM,GAAS,OAAM,GAAS,OAAM,GAAS,OAAM,GAAS,OAAM,GAAS,OAAM,GAAS,OAAM,GAAS,OAAM,GAAS,SAAQ,GAAS,SAAQ,GAAS,OAAM,GAAS,OAAM,GAAS,SAAQ,GAAS,SAAQ,GAAS,OAAM,GAAS,OAAM,GAAS,QAAO,GAAS,QAAO,GAAS,QAAO,GAAS,QAAO,GAAS,QAAO,GAAS,QAAO,GAAS,QAAO,GAAS,QAAO,GAAS,QAAO,GAAS,QAAO,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAS,UAAS,GAAS,OAAM,GAAS,OAAM,GAAS,UAAS,GAAS,UAAS,GAAS,OAAM,GAAS,OAAM,GAAS,QAAO,GAAS,QAAO,GAAS,QAAO,GAAS,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,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,aAAa,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,aAAa,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC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CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,UAAU,GAAG,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AAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,G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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56]}
|