weml-monaco 0.5.2 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +10 -0
- package/README.md +42 -0
- package/dist/weml.worker.d.mts +2 -0
- package/dist/weml.worker.mjs +24948 -0
- package/dist/weml.worker.mjs.map +1 -0
- package/dist/worker.cjs +8604 -0
- package/dist/worker.cjs.map +1 -0
- package/dist/worker.d.mts +21 -0
- package/dist/worker.d.ts +21 -0
- package/dist/worker.mjs +8605 -0
- package/dist/worker.mjs.map +1 -0
- package/package.json +17 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../node_modules/he/he.js","../../node_modules/node-html-parser/dist/nodes/node.js","../../node_modules/node-html-parser/dist/nodes/type.js","../../node_modules/node-html-parser/dist/nodes/comment.js","../../node_modules/domelementtype/lib/index.js","../../node_modules/domhandler/lib/node.js","../../node_modules/domhandler/lib/index.js","../../node_modules/entities/lib/generated/decode-data-html.js","../../node_modules/entities/lib/generated/decode-data-xml.js","../../node_modules/entities/lib/decode_codepoint.js","../../node_modules/entities/lib/decode.js","../../node_modules/entities/lib/generated/encode-html.js","../../node_modules/entities/lib/escape.js","../../node_modules/entities/lib/encode.js","../../node_modules/entities/lib/index.js","../../node_modules/dom-serializer/lib/foreignNames.js","../../node_modules/dom-serializer/lib/index.js","../../node_modules/domutils/lib/stringify.js","../../node_modules/domutils/lib/traversal.js","../../node_modules/domutils/lib/manipulation.js","../../node_modules/domutils/lib/querying.js","../../node_modules/domutils/lib/legacy.js","../../node_modules/domutils/lib/helpers.js","../../node_modules/domutils/lib/feeds.js","../../node_modules/domutils/lib/index.js","../../node_modules/boolbase/index.js","../../node_modules/css-what/lib/es/types.js","../../node_modules/css-what/lib/es/parse.js","../../node_modules/css-what/lib/es/stringify.js","../../node_modules/css-what/lib/es/index.js","../../node_modules/css-select/lib/sort.js","../../node_modules/css-select/lib/attributes.js","../../node_modules/nth-check/lib/parse.js","../../node_modules/nth-check/lib/compile.js","../../node_modules/nth-check/lib/index.js","../../node_modules/css-select/lib/pseudo-selectors/filters.js","../../node_modules/css-select/lib/pseudo-selectors/pseudos.js","../../node_modules/css-select/lib/pseudo-selectors/aliases.js","../../node_modules/css-select/lib/pseudo-selectors/subselects.js","../../node_modules/css-select/lib/pseudo-selectors/index.js","../../node_modules/css-select/lib/general.js","../../node_modules/css-select/lib/compile.js","../../node_modules/css-select/lib/index.js","../../node_modules/node-html-parser/dist/back.js","../../node_modules/node-html-parser/dist/matcher.js","../../node_modules/node-html-parser/dist/void-tag.js","../../node_modules/node-html-parser/dist/nodes/text.js","../../node_modules/node-html-parser/dist/nodes/html.js","../../node_modules/node-html-parser/dist/parse.js","../../node_modules/node-html-parser/dist/valid.js","../../node_modules/node-html-parser/dist/index.js","../../wemlContentNormalizeV2.js","../src/wemlContentNormalizeV2.js","../src/worker/register.ts","../src/formatter.ts","../src/language.ts","../src/generated/schema.ts","../src/schema/structureRules.ts"],"sourcesContent":["/*! 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","\"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","\"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","\"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","\"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","\"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","\"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","\"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","\"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","\"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","\"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","\"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","\"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","\"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","\"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","\"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","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","export * from \"./types\";\nexport { isTraversal, parse } from \"./parse\";\nexport { stringify } from \"./stringify\";\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","\"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","\"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","\"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","\"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","\"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","\"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","\"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","\"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","\"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","\"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","\"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","\"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","\"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\";\n\n/** Safe v2 entry point for the deterministic WEML normalizer. */\n\nconst { parse, TextNode } = require(\"node-html-parser\");\n\nconst BLOCK_ELEMENTS = new Set([\n \"div\", \"w-para\", \"w-heading\", \"w-para-group\", \"w-list\", \"w-li\",\n \"table\", \"thead\", \"tbody\", \"tr\", \"td\", \"th\", \"figure\", \"figcaption\",\n \"w-toc\", \"w-note\", \"w-note-body\", \"w-note-para\",\n]);\nconst INLINE_CONTAINERS = new Set([\"w-text-block\", \"w-note-header\"]);\nconst INLINE_ELEMENTS = new Set([\n \"w-format\", \"w-lang\", \"w-entity\", \"w-non-egw\", \"a\", \"w-anchor\",\n \"w-sent\", \"w-page\", \"w-color\",\n]);\nconst VOID_HTML_ELEMENTS = new Set([\n \"area\", \"base\", \"br\", \"col\", \"embed\", \"hr\", \"img\", \"input\",\n \"link\", \"meta\", \"source\", \"track\", \"wbr\", \"param\",\n]);\nconst EMPTY_TEXT_WRAPPERS = new Set([\n \"w-format\", \"w-lang\", \"w-color\", \"w-non-egw\", \"w-sent\",\n]);\nconst ENTITY_RE = /&(#[xX][0-9a-fA-F]+|#[0-9]+|[a-zA-Z][a-zA-Z0-9]*);?/g;\nconst PH_OPEN = \"\\uE000\";\nconst PH_CLOSE = \"\\uE001\";\n\nconst VOID_ELEMENTS = VOID_HTML_ELEMENTS;\nconst SPACE_SEPARATED_ATTRIBUTES = new Set([\"class\", \"headers\", \"rel\", \"rev\"]);\nconst WHITE_SPACE = new Set([\n 0x0009, 0x000A, 0x000B, 0x000C, 0x000D,\n 0x001C, 0x001D, 0x001E, 0x001F, 0x0020, 0x0085, 0x00A0,\n 0x1680, 0x2000, 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006,\n 0x2007, 0x2008, 0x2009, 0x200A, 0x2028, 0x2029, 0x202F, 0x205F,\n 0x3000, 0xFEFF,\n]);\n\n// The canonical formatter lives in this file so the JavaScript v2 implementation\n// can be distributed independently.\nfunction formatWeml(input) {\n const { html, entities, marker } = protectEntities(input);\n const doc = parse(normalizeVoidTagSyntax(html));\n removeEmptyWrappers(doc);\n const title = doc.querySelector(\"head title\");\n if (title) processInlineContent(title, true);\n const body = doc.querySelector(\"body\");\n if (body) processBlockElement(body);\n return restoreEntities(serializeDocument(doc, entities, marker), entities, marker);\n}\n\nfunction protectEntities(input) {\n let markerLength = 1;\n let marker = PH_OPEN.repeat(markerLength) + PH_CLOSE;\n while (input.includes(marker)) {\n markerLength += 1;\n marker = PH_OPEN.repeat(markerLength) + PH_CLOSE;\n }\n const entities = [];\n const html = input.replace(ENTITY_RE, (match) => {\n const index = entities.length;\n entities.push(match);\n return `${marker}${index}${marker}`;\n });\n return { html, entities, marker };\n}\n\nfunction restoreEntities(text, entities, marker) {\n const result = [];\n let position = 0;\n while (position < text.length) {\n const open = text.indexOf(marker, position);\n if (open < 0) {\n result.push(text.slice(position));\n break;\n }\n result.push(text.slice(position, open));\n const indexStart = open + marker.length;\n const close = text.indexOf(marker, indexStart);\n const indexText = close >= 0 ? text.slice(indexStart, close) : \"\";\n const entityIndex = Number(indexText);\n if (close < 0 || !/^[0-9]+$/.test(indexText) ||\n !Number.isSafeInteger(entityIndex) || entityIndex >= entities.length) {\n throw new Error(\"Invalid internal entity placeholder.\");\n }\n result.push(entities[entityIndex]);\n position = close + marker.length;\n }\n return result.join(\"\");\n}\n\nfunction normalizeVoidTagSyntax(input) {\n function slashBelongsToUnquotedValue(attrs) {\n let index = 0;\n const whitespace = new Set([\" \", \"\\t\", \"\\n\", \"\\f\", \"\\r\", \"\\v\"]);\n while (index < attrs.length) {\n while (index < attrs.length && whitespace.has(attrs[index])) index += 1;\n if (index >= attrs.length || attrs[index] === \"/\") return false;\n while (index < attrs.length && !whitespace.has(attrs[index]) &&\n ![\"=\", \"/\"].includes(attrs[index])) index += 1;\n while (index < attrs.length && whitespace.has(attrs[index])) index += 1;\n if (index >= attrs.length || attrs[index] !== \"=\") continue;\n index += 1;\n while (index < attrs.length && whitespace.has(attrs[index])) index += 1;\n if (index >= attrs.length) return false;\n if (attrs[index] === '\"' || attrs[index] === \"'\") {\n const quote = attrs[index];\n index += 1;\n while (index < attrs.length && attrs[index] !== quote) index += 1;\n if (index < attrs.length) index += 1;\n continue;\n }\n const valueStart = index;\n while (index < attrs.length && !whitespace.has(attrs[index])) index += 1;\n if (index === attrs.length) {\n return valueStart < attrs.length && attrs.endsWith(\"/\");\n }\n }\n return false;\n }\n\n const result = [];\n let index = 0;\n while (index < input.length) {\n if (input[index] !== \"<\") {\n result.push(input[index++]);\n continue;\n }\n const start = index;\n if (input.startsWith(\"<!--\", index) || input.startsWith(\"<?\", index)) {\n const delimiter = input.startsWith(\"<!--\", index) ? \"-->\" : \"?>\";\n let end = input.indexOf(delimiter, index + 2);\n end = end < 0 ? input.length : end + delimiter.length;\n result.push(input.slice(start, end));\n index = end;\n continue;\n }\n const { end } = findTagEnd(input, index + 1);\n if (end < 0) {\n result.push(input.slice(index));\n break;\n }\n let cursor = index + 1;\n if (input[cursor] === \"!\") {\n result.push(input.slice(start, end + 1));\n index = end + 1;\n continue;\n }\n const closing = input[cursor] === \"/\";\n if (closing) cursor++;\n if (cursor >= end || !isNameStart(input[cursor])) {\n result.push(input[index++]);\n continue;\n }\n const nameStart = cursor++;\n while (cursor < end && isNameChar(input[cursor])) cursor++;\n const name = input.slice(nameStart, cursor);\n const attributes = [];\n let quote = null;\n let inSpace = false;\n for (let offset = cursor; offset < end; offset++) {\n const character = input[offset];\n if (quote !== null) {\n attributes.push(character);\n if (character === quote) quote = null;\n continue;\n }\n if (isSourceSpace(character)) {\n if (!inSpace) attributes.push(\" \");\n inSpace = true;\n } else {\n inSpace = false;\n attributes.push(character);\n if (character === '\"' || character === \"'\") quote = character;\n }\n }\n let attrs = attributes.join(\"\").replace(/ +$/, \"\");\n if (!closing && VOID_HTML_ELEMENTS.has(name.toLowerCase())) {\n if (attrs.endsWith(\"/\") && !slashBelongsToUnquotedValue(attrs)) {\n attrs = attrs.slice(0, -1).replace(/ +$/, \"\");\n }\n result.push(`<${name.toLowerCase()}${attrs} />`);\n } else {\n result.push(closing ? \"</\" : \"<\", name.toLowerCase(), attrs, \">\");\n }\n index = end + 1;\n }\n return result.join(\"\");\n}\n\nfunction removeEmptyWrappers(node) {\n for (const child of [...node.childNodes]) {\n if (child.nodeType === 8) {\n node.removeChild(child);\n continue;\n }\n if (child.nodeType !== 1) continue;\n removeEmptyWrappers(child);\n const hasId = Object.keys(child.rawAttributes).some(name => name.toLowerCase() === \"id\");\n if (EMPTY_TEXT_WRAPPERS.has(child.rawTagName.toLowerCase()) && !hasId &&\n child.childNodes.every(item => item.nodeType === 3 && isWhitespaceOnly(item.rawText))) {\n const replacement = new TextNode(child.childNodes.some(item => item.rawText.length > 0) ? \" \" : \"\", node);\n node.exchangeChild(child, replacement);\n }\n }\n let previous = null;\n for (const child of [...node.childNodes]) {\n if (child.nodeType === 3) {\n if (previous !== null) {\n previous.rawText += child.rawText;\n node.removeChild(child);\n } else previous = child;\n } else previous = null;\n }\n}\n\nfunction processBlockElement(node) {\n // Removing each separator separately repeatedly scans all sibling blocks.\n node.childNodes = node.childNodes.filter(child => {\n if (child.nodeType !== 3) return true;\n const normalized = trimWhitespace(child.rawText);\n if (normalized) {\n child.rawText = normalized;\n return true;\n }\n child.parentNode = null;\n return false;\n });\n for (const child of [...node.childNodes]) {\n if (child.nodeType !== 1) continue;\n const name = child.rawTagName.toLowerCase();\n if (INLINE_CONTAINERS.has(name)) processInlineContainer(child);\n else if (BLOCK_ELEMENTS.has(name)) processBlockElement(child);\n else if (isInlineTextElement(child)) processInlineContent(child, true);\n }\n}\n\nfunction processInlineContainer(node) {\n processInlineContent(node, true);\n}\n\n// Normalizes inline content, including containers with direct w-sent children:\n// every inline child bleeds its edge spaces into this node.\nfunction processInlineContent(node, trimEdges) {\n for (const child of [...node.childNodes]) {\n if (child.nodeType !== 1) continue;\n const name = child.rawTagName.toLowerCase();\n if (isInlineTextElement(child)) {\n processInlineContent(child, false);\n } else if (BLOCK_ELEMENTS.has(name)) {\n processBlockElement(child);\n } else if (INLINE_CONTAINERS.has(name)) {\n processInlineContainer(child);\n }\n }\n for (const child of [...node.childNodes]) {\n if (child.nodeType === 1 && isInlineTextElement(child)) {\n bleedEdgeSpaces(child);\n }\n }\n for (const child of [...node.childNodes]) {\n if (child.nodeType === 3) child.rawText = collapseWhitespace(child.rawText);\n }\n for (const child of [...node.childNodes]) {\n if (child.nodeType === 1 && child.rawTagName.toLowerCase() === \"br\") {\n const prev = child.previousSibling;\n if (prev && prev.nodeType === 3) prev.rawText = trimEndWhitespace(prev.rawText);\n const next = child.nextSibling;\n if (next && next.nodeType === 3) next.rawText = trimStartWhitespace(next.rawText);\n }\n }\n // Preserve nested inline edges until the parent bleeds their spaces out.\n if (trimEdges) trimEdgeTextNodes(node);\n for (const child of [...node.childNodes]) {\n if (child.nodeType === 3 && child.rawText === \"\") child.remove();\n }\n}\n\n// node-html-parser 6.x has no DOM Node.before()/after() methods\nfunction insertBefore(refNode, newNode) {\n const parent = refNode.parentNode;\n if (!parent) return;\n newNode.parentNode = parent;\n parent.childNodes.splice(parent.childNodes.indexOf(refNode), 0, newNode);\n}\n\nfunction insertAfter(refNode, newNode) {\n const parent = refNode.parentNode;\n if (!parent) return;\n newNode.parentNode = parent;\n parent.childNodes.splice(parent.childNodes.indexOf(refNode) + 1, 0, newNode);\n}\n\nfunction bleedEdgeSpaces(inlineNode) {\n const leading = extractLeading(inlineNode);\n const trailing = extractTrailing(inlineNode);\n if (leading) {\n const prev = inlineNode.previousSibling;\n if (prev && prev.nodeType === 3) prev.rawText += leading;\n else insertBefore(inlineNode, new TextNode(leading));\n }\n if (trailing) {\n const next = inlineNode.nextSibling;\n if (next && next.nodeType === 3) next.rawText = trailing + next.rawText;\n else insertAfter(inlineNode, new TextNode(trailing));\n }\n}\n\nfunction extractLeading(node) {\n const first = getFirstTextNode(node);\n if (!first) return \"\";\n const raw = first.rawText;\n const trimmed = trimStartWhitespace(raw);\n if (trimmed === raw) return \"\";\n first.rawText = trimmed;\n return \" \";\n}\n\nfunction extractTrailing(node) {\n const last = getLastTextNode(node);\n if (!last) return \"\";\n const raw = last.rawText;\n const trimmed = trimEndWhitespace(raw);\n if (trimmed === raw) return \"\";\n last.rawText = trimmed;\n return \" \";\n}\n\nfunction getFirstTextNode(node) {\n for (const child of node.childNodes) {\n if (child.nodeType === 3) return child;\n if (child.nodeType === 8) continue;\n if (child.nodeType === 1) {\n const name = child.rawTagName.toLowerCase();\n if (BLOCK_ELEMENTS.has(name) || VOID_HTML_ELEMENTS.has(name)) return null;\n return getFirstTextNode(child);\n }\n }\n return null;\n}\n\nfunction getLastTextNode(node) {\n const children = [...node.childNodes];\n for (let index = children.length - 1; index >= 0; index--) {\n const child = children[index];\n if (child.nodeType === 3) return child;\n if (child.nodeType === 8) continue;\n if (child.nodeType === 1) {\n const name = child.rawTagName.toLowerCase();\n if (BLOCK_ELEMENTS.has(name) || VOID_HTML_ELEMENTS.has(name)) return null;\n return getLastTextNode(child);\n }\n }\n return null;\n}\n\nfunction trimEdgeTextNodes(node) {\n const children = [...node.childNodes];\n if (children.length === 0) return;\n const first = children[0];\n const last = children[children.length - 1];\n if (first === last) {\n if (first.nodeType === 3) first.rawText = trimWhitespace(first.rawText);\n } else {\n if (first.nodeType === 3) first.rawText = trimStartWhitespace(first.rawText);\n if (last.nodeType === 3) last.rawText = trimEndWhitespace(last.rawText);\n }\n}\n\nfunction isInlineTextElement(node) {\n if (node.nodeType !== 1) return false;\n const name = node.rawTagName.toLowerCase();\n return INLINE_ELEMENTS.has(name) ||\n (!BLOCK_ELEMENTS.has(name) && !INLINE_CONTAINERS.has(name) &&\n !VOID_HTML_ELEMENTS.has(name));\n}\n\nfunction serializeDocument(doc, entities, marker) {\n const parts = [\"<!DOCTYPE html>\\n\"];\n const htmlNode = doc.querySelector(\"html\");\n parts.push(`<html${serializeAttrs(htmlNode ? htmlNode.rawAttrs : \"\", entities, marker)}>\\n\\n`);\n const head = doc.querySelector(\"head\");\n parts.push(\"<head>\\n\");\n if (head) {\n for (const child of head.childNodes) {\n if (child.nodeType === 1) parts.push(serializeNode(child, entities, marker), \"\\n\");\n }\n }\n parts.push(\"</head>\\n\\n\");\n const body = doc.querySelector(\"body\");\n parts.push(\"<body>\\n\");\n if (body) {\n for (const child of body.childNodes) {\n if (child.nodeType === 1) parts.push(serializeNode(child, entities, marker), \"\\n\");\n }\n }\n parts.push(\"</body>\\n</html>\");\n return parts.join(\"\");\n}\n\nfunction serializeNode(node, entities, marker) {\n if (node.nodeType === 3) return node.rawText;\n if (node.nodeType === 8 || node.nodeType !== 1) return \"\";\n const name = node.rawTagName.toLowerCase();\n const attrs = serializeAttrs(node.rawAttrs, entities, marker);\n if (VOID_HTML_ELEMENTS.has(name)) return `<${name}${attrs} />`;\n const isBlock = BLOCK_ELEMENTS.has(name);\n const inner = [];\n for (const child of node.childNodes) {\n if (isBlock && child.nodeType === 3 && isWhitespaceOnly(child.rawText)) continue;\n inner.push(serializeNode(child, entities, marker));\n }\n return `<${name}${attrs}>${inner.join(\"\")}</${name}>`;\n}\n\nfunction serializeAttrs(rawAttrs, entities, marker) {\n const canonical = new Map();\n let index = 0;\n while (index < rawAttrs.length) {\n while (index < rawAttrs.length && isNormalizableWhitespace(rawAttrs[index])) index++;\n if (index >= rawAttrs.length || rawAttrs[index] === \"/\") break;\n\n const nameStart = index;\n while (index < rawAttrs.length && !isNormalizableWhitespace(rawAttrs[index]) &&\n !\"=/>\".includes(rawAttrs[index])) index++;\n if (index === nameStart) {\n index++;\n continue;\n }\n const name = rawAttrs.slice(nameStart, index).toLowerCase();\n while (index < rawAttrs.length && isNormalizableWhitespace(rawAttrs[index])) index++;\n\n let value = \"\";\n if (rawAttrs[index] === \"=\") {\n index++;\n while (index < rawAttrs.length && isNormalizableWhitespace(rawAttrs[index])) index++;\n if (rawAttrs[index] === '\"' || rawAttrs[index] === \"'\") {\n const quote = rawAttrs[index++];\n const valueStart = index;\n while (index < rawAttrs.length && rawAttrs[index] !== quote) index++;\n value = rawAttrs.slice(valueStart, index);\n if (index < rawAttrs.length) index++;\n } else {\n const valueStart = index;\n while (index < rawAttrs.length && !isNormalizableWhitespace(rawAttrs[index])) index++;\n value = rawAttrs.slice(valueStart, index);\n }\n }\n if (!canonical.has(name)) {\n canonical.set(\n name,\n SPACE_SEPARATED_ATTRIBUTES.has(name)\n ? normalizeTokenList(value, entities, marker)\n : trimWhitespace(value),\n );\n }\n }\n return [...canonical.entries()]\n .sort(([left], [right]) => left < right ? -1 : left > right ? 1 : 0)\n .map(([name, value]) => ` ${name}=\"${encodeAttr(String(value))}\"`)\n .join(\"\");\n}\n\nfunction normalizeTokenList(value, entities, marker) {\n const normalized = trimWhitespace(value);\n if (!normalized) return normalized;\n return normalized.split(\" \")\n .sort((left, right) => compareUnicodeScalars(\n restoreEntities(left, entities, marker),\n restoreEntities(right, entities, marker),\n ))\n .join(\" \");\n}\n\nfunction compareUnicodeScalars(left, right) {\n const leftScalars = Array.from(left, (character) => character.codePointAt(0));\n const rightScalars = Array.from(right, (character) => character.codePointAt(0));\n const limit = Math.min(leftScalars.length, rightScalars.length);\n for (let index = 0; index < limit; index++) {\n if (leftScalars[index] !== rightScalars[index]) {\n return leftScalars[index] - rightScalars[index];\n }\n }\n return leftScalars.length - rightScalars.length;\n}\n\nfunction encodeAttr(value) {\n return value.replace(/&/g, \"&\").replace(/</g, \"<\")\n .replace(/>/g, \">\").replace(/\"/g, \""\");\n}\n\nclass WemlNormalizationError extends Error {\n constructor(code, message) {\n super(message);\n this.name = this.constructor.name;\n this.code = code;\n }\n}\n\nclass WemlStructureValidationError extends WemlNormalizationError {\n constructor(code, line, column, expectedTag = null, actualTag = null) {\n super(code, structureMessage(code, line, column, expectedTag, actualTag));\n this.line = line;\n this.column = column;\n this.expectedTag = expectedTag;\n this.actualTag = actualTag;\n }\n}\n\nclass WemlTextContentChangedError extends WemlNormalizationError {\n constructor(inputText, outputText) {\n const inputCharacters = Array.from(inputText);\n const outputCharacters = Array.from(outputText);\n const firstDifferenceIndex = firstDifference(inputCharacters, outputCharacters);\n super(\n \"TEXT_CONTENT_CHANGED\",\n `TEXT_CONTENT_CHANGED: non-whitespace text content changed at character index ${firstDifferenceIndex}.`,\n );\n this.inputCharacterCount = inputCharacters.length;\n this.outputCharacterCount = outputCharacters.length;\n this.inputSha256 = sha256(inputText);\n this.outputSha256 = sha256(outputText);\n this.firstDifferenceIndex = firstDifferenceIndex;\n }\n}\n\nfunction wemlContentNormalize(input, isWemlValid = false) {\n if (input.startsWith(\"\\uFEFF\")) input = input.slice(1);\n const inputText = withoutWhiteSpace(analyze(input, !isWemlValid).text);\n const result = formatWeml(input);\n const outputText = withoutWhiteSpace(analyze(result, true).text);\n if (inputText !== outputText) {\n throw new WemlTextContentChangedError(inputText, outputText);\n }\n return result;\n}\n\nfunction analyze(source, validateStructure) {\n const lineStarts = [0];\n for (let index = 0; index < source.length; index++) {\n if (source[index] === \"\\n\") lineStarts.push(index + 1);\n }\n\n const stack = [];\n const rootTagCounts = new Map([[\"html\", 0], [\"head\", 0], [\"body\", 0]]);\n let seenHead = false;\n let seenBody = false;\n const textParts = [];\n let textStart = 0;\n let index = 0;\n\n function location(offset) {\n let low = 0;\n let high = lineStarts.length;\n while (low < high) {\n const middle = (low + high) >>> 1;\n if (lineStarts[middle] <= offset) low = middle + 1;\n else high = middle;\n }\n const lineIndex = low - 1;\n return {\n line: lineIndex + 1,\n column: Array.from(source.slice(lineStarts[lineIndex], offset)).length + 1,\n };\n }\n\n function fail(code, offset, expectedTag = null, actualTag = null) {\n const position = location(offset);\n throw new WemlStructureValidationError(\n code, position.line, position.column, expectedTag, actualTag,\n );\n }\n\n while (index < source.length) {\n if (source[index] !== \"<\") {\n index++;\n continue;\n }\n\n if (index > textStart) textParts.push(source.slice(textStart, index));\n\n if (source.startsWith(\"<!--\", index)) {\n const end = source.indexOf(\"-->\", index + 4);\n if (end < 0) fail(\"UNTERMINATED_COMMENT\", index);\n index = end + 3;\n textStart = index;\n continue;\n }\n\n if (source.startsWith(\"<!\", index)) {\n const found = findTagEnd(source, index + 2);\n if (found.end < 0) {\n fail(found.quote ? \"UNTERMINATED_QUOTE\" : \"UNTERMINATED_DECLARATION\", index);\n }\n index = found.end + 1;\n textStart = index;\n continue;\n }\n\n if (source.startsWith(\"<?\", index)) {\n const end = source.indexOf(\"?>\", index + 2);\n if (end < 0) fail(\"UNTERMINATED_DECLARATION\", index);\n index = end + 2;\n textStart = index;\n continue;\n }\n\n let cursor = index + 1;\n let closing = false;\n if (cursor < source.length && source[cursor] === \"/\") {\n closing = true;\n cursor++;\n }\n while (cursor < source.length && isSourceSpace(source[cursor])) cursor++;\n if (cursor >= source.length || !isNameStart(source[cursor])) {\n textParts.push(\"<\");\n index++;\n textStart = index;\n continue;\n }\n\n const nameStart = cursor++;\n while (cursor < source.length && isNameChar(source[cursor])) cursor++;\n const name = source.slice(nameStart, cursor).toLowerCase();\n const found = findTagEnd(source, cursor);\n if (found.end < 0) {\n fail(found.quote ? \"UNTERMINATED_QUOTE\" : \"UNTERMINATED_TAG\", index, null, name);\n }\n\n if (validateStructure) {\n if (closing) {\n if (stack.length === 0) fail(\"UNEXPECTED_CLOSING_TAG\", index, null, name);\n const expected = stack[stack.length - 1].name;\n if (expected !== name) fail(\"MISMATCHED_CLOSING_TAG\", index, expected, name);\n stack.pop();\n } else {\n if (rootTagCounts.has(name)) {\n if (rootTagCounts.get(name) > 0) {\n fail(\"DUPLICATE_ROOT_TAG\", index, null, name);\n }\n\n const parent = stack.length > 0 ? stack.at(-1).name : null;\n if (name === \"html\") {\n if (parent !== null) fail(\"INVALID_ROOT_TAG_PARENT\", index, null, name);\n } else if (parent !== \"html\") {\n fail(\"INVALID_ROOT_TAG_PARENT\", index, \"html\", name);\n }\n\n if (name === \"body\" && !seenHead) {\n fail(\"BODY_BEFORE_HEAD\", index, \"head\", \"body\");\n }\n if (name === \"head\" && seenBody) {\n fail(\"HEAD_AFTER_BODY\", index, \"body\", \"head\");\n }\n\n rootTagCounts.set(name, rootTagCounts.get(name) + 1);\n seenHead ||= name === \"head\";\n seenBody ||= name === \"body\";\n }\n\n let last = found.end - 1;\n while (last >= cursor && isSourceSpace(source[last])) last--;\n const selfClosing = last >= cursor && source[last] === \"/\";\n if (!selfClosing && !VOID_ELEMENTS.has(name)) stack.push({ name, offset: index });\n }\n }\n\n index = found.end + 1;\n textStart = index;\n }\n\n if (textStart < source.length) textParts.push(source.slice(textStart));\n if (validateStructure && stack.length > 0) {\n const unclosed = stack[stack.length - 1];\n const position = location(unclosed.offset);\n throw new WemlStructureValidationError(\n \"UNCLOSED_TAG\", position.line, position.column, unclosed.name, null,\n );\n }\n if (validateStructure) {\n for (const name of [\"html\", \"head\", \"body\"]) {\n if (rootTagCounts.get(name) === 0) fail(\"MISSING_ROOT_TAG\", 0, name, null);\n }\n }\n return { text: textParts.join(\"\") };\n}\n\nfunction findTagEnd(source, start) {\n let quote = null;\n for (let index = start; index < source.length; index++) {\n const character = source[index];\n if (quote !== null) {\n if (character === quote) quote = null;\n } else if (character === '\"' || character === \"'\") {\n quote = character;\n } else if (character === \">\") {\n return { end: index, quote: null };\n }\n }\n return { end: -1, quote };\n}\n\nfunction isNameStart(character) {\n return (character >= \"A\" && character <= \"Z\") || (character >= \"a\" && character <= \"z\");\n}\n\nfunction isNameChar(character) {\n return isNameStart(character) || (character >= \"0\" && character <= \"9\")\n || character === \"-\" || character === \"_\" || character === \":\" || character === \".\";\n}\n\nfunction isSourceSpace(character) {\n return isNormalizableWhitespace(character);\n}\n\nfunction withoutWhiteSpace(text) {\n return Array.from(text, (character) => WHITE_SPACE.has(character.codePointAt(0)) ? \"\" : character).join(\"\");\n}\n\nfunction isNormalizableWhitespace(character) {\n return character !== undefined && WHITE_SPACE.has(character.codePointAt(0));\n}\n\nfunction collapseWhitespace(text) {\n const result = [];\n let inWhitespace = false;\n for (const character of text) {\n if (isNormalizableWhitespace(character)) {\n if (!inWhitespace) result.push(\" \");\n inWhitespace = true;\n } else {\n result.push(character);\n inWhitespace = false;\n }\n }\n return result.join(\"\");\n}\n\nfunction trimStartWhitespace(text) {\n return collapseWhitespace(text).replace(/^ +/, \"\");\n}\n\nfunction trimEndWhitespace(text) {\n return collapseWhitespace(text).replace(/ +$/, \"\");\n}\n\nfunction trimWhitespace(text) {\n return collapseWhitespace(text).replace(/^ +| +$/g, \"\");\n}\n\nfunction isWhitespaceOnly(text) {\n return Array.from(text).every(isNormalizableWhitespace);\n}\n\nfunction sha256(text) {\n // Only the Node CLI uses hashes; browser formatting must not load crypto\n const crypto = require(\"crypto\");\n return crypto.createHash(\"sha256\").update(text, \"utf8\").digest(\"hex\");\n}\n\nfunction firstDifference(left, right) {\n const limit = Math.min(left.length, right.length);\n for (let index = 0; index < limit; index++) {\n if (left[index] !== right[index]) return index;\n }\n return limit;\n}\n\nfunction structureMessage(code, line, column, expectedTag, actualTag) {\n let detail;\n if (code === \"MISMATCHED_CLOSING_TAG\") {\n detail = `expected </${expectedTag}> but found </${actualTag}>.`;\n } else if (code === \"UNEXPECTED_CLOSING_TAG\") {\n detail = `unexpected closing tag </${actualTag}>.`;\n } else if (code === \"UNCLOSED_TAG\") {\n detail = `tag <${expectedTag}> is not closed.`;\n } else if (code === \"DUPLICATE_ROOT_TAG\") {\n detail = `document contains more than one <${actualTag}> tag.`;\n } else if (code === \"INVALID_ROOT_TAG_PARENT\") {\n detail = expectedTag ? `tag <${actualTag}> must be a direct child of <${expectedTag}>.` :\n `root tag <${actualTag}> must not be nested.`;\n } else if (code === \"BODY_BEFORE_HEAD\") {\n detail = \"tag <body> appears before <head>.\";\n } else if (code === \"HEAD_AFTER_BODY\") {\n detail = \"tag <head> appears after <body>.\";\n } else if (code === \"MISSING_ROOT_TAG\") {\n detail = `required root tag <${expectedTag}> is missing.`;\n } else if (code === \"UNTERMINATED_COMMENT\") {\n detail = \"comment is not terminated.\";\n } else if (code === \"UNTERMINATED_DECLARATION\") {\n detail = \"declaration is not terminated.\";\n } else if (code === \"UNTERMINATED_QUOTE\") {\n detail = \"quoted attribute value is not terminated.\";\n } else {\n detail = \"tag is not terminated.\";\n }\n return `${code} at ${line}:${column}: ${detail}`;\n}\n\nmodule.exports = {\n WemlNormalizationError,\n WemlStructureValidationError,\n WemlTextContentChangedError,\n wemlContentNormalize,\n};\n\nif (require.main === module) {\n const fs = require(\"fs\");\n for (const file of process.argv.slice(2)) {\n const input = fs.readFileSync(file, \"utf8\");\n try {\n const result = wemlContentNormalize(input);\n console.log(`${file} sha256=${sha256(result)}`);\n } catch (error) {\n process.stderr.write(`${file}: ${error.message}\\n`);\n process.exitCode = 1;\n }\n }\n}\n","// Repository-local bridge to the V2 normalizer shared with the VS Code plugin.\n// esbuild follows this require and includes the implementation in Monaco's\n// browser bundles.\nmodule.exports = require('../../wemlContentNormalizeV2.js');\n","// `registerWemlWorker` — the WEML language for Monaco with its analysis in a Web Worker.\n//\n// import * as monaco from 'monaco-editor/editor/editor.api.js';\n// import { registerWemlWorker } from 'weml-monaco/worker';\n// import WemlWorker from 'weml-monaco/weml.worker?worker'; // Vite\n// registerWemlWorker(monaco, { worker: () => new WemlWorker() });\n//\n// The same language as `registerWeml` (index.ts) — the same providers, run unchanged in\n// the worker (host.ts) — but completion, hover, outline and diagnostics no longer parse the\n// document on the main thread. `registerWeml` parses the whole document for every model\n// version, which on a large file costs tens of milliseconds per keystroke on the thread\n// that handles the keystrokes. Here the main thread only forwards edits and requests.\n//\n// Language registration, tokenizer and formatting stay on the main thread, as in\n// `registerWeml`: they are cheap or run on demand. Use one of the two functions, not both.\n\nimport type * as monaco from 'monaco-editor/editor/editor.api.js';\nimport { canonicalFormattingFailureMessage, formatWemlText } from '../formatter';\nimport type { RegisterWemlOptions } from '../index';\nimport { WEML_LANGUAGE_ID, languageConfiguration, monarchLanguage } from '../language';\nimport { checkStructureRules } from '../schema/structureRules';\nimport type { FromWemlWorker, ToWemlWorker, WemlRequestKind } from './protocol';\n\nconst DEFAULT_DEBOUNCE_MS = 300;\n\n// Copies of two values the main-thread modules hold, so this entry does not pull the parser\n// into the main bundle: `WEML_MARKER_OWNER` (providers/diagnostics.ts) and the completion\n// provider's trigger characters (providers/completion.ts). test/worker.mjs checks they match.\nconst MARKER_OWNER = 'weml';\nconst TRIGGER_CHARACTERS = ['<', '/', ' ', '\"', \"'\", '=', '&'];\n\nexport interface RegisterWemlWorkerOptions extends RegisterWemlOptions {\n /**\n * Starts the WEML worker (the `weml-monaco/weml.worker` module). Called once; the worker\n * is terminated when the returned disposable is disposed.\n */\n worker: () => Worker;\n}\n\nexport function registerWemlWorker(m: typeof monaco, options: RegisterWemlWorkerOptions): monaco.IDisposable {\n const { extensions = ['.weml'], diagnosticsDebounceMs = DEFAULT_DEBOUNCE_MS, diagnostics = true } = options;\n\n for (const warning of checkStructureRules()) {\n // eslint-disable-next-line no-console\n console.warn(`[weml] ${warning}`);\n }\n\n const disposables: monaco.IDisposable[] = [];\n\n const alreadyRegistered = m.languages.getLanguages().some((l) => l.id === WEML_LANGUAGE_ID);\n if (!alreadyRegistered) {\n m.languages.register({ id: WEML_LANGUAGE_ID, extensions, aliases: ['WEML', 'weml'] });\n }\n disposables.push(m.languages.setLanguageConfiguration(WEML_LANGUAGE_ID, languageConfiguration));\n disposables.push(m.languages.setMonarchTokensProvider(WEML_LANGUAGE_ID, monarchLanguage));\n disposables.push(m.languages.registerDocumentFormattingEditProvider(WEML_LANGUAGE_ID, createFormattingProvider()));\n\n // ------------------------------------------------------------------ the worker --\n\n const worker = options.worker();\n const send = (message: ToWemlWorker) => worker.postMessage(message);\n let nextId = 1;\n const waiting = new Map<number, (result: unknown) => void>();\n\n worker.onmessage = (event: MessageEvent<FromWemlWorker>) => {\n const message = event.data;\n const resolve = waiting.get(message.id);\n if (!resolve) return;\n waiting.delete(message.id);\n if (message.type === 'error') {\n // eslint-disable-next-line no-console\n console.error('[weml] worker request failed', message.message);\n resolve(undefined);\n return;\n }\n resolve(message.stale ? undefined : message.result);\n };\n\n send({\n type: 'init',\n enums: {\n MarkerSeverity: m.MarkerSeverity,\n CompletionItemKind: m.languages.CompletionItemKind,\n CompletionItemInsertTextRule: m.languages.CompletionItemInsertTextRule,\n SymbolKind: m.languages.SymbolKind,\n },\n });\n\n /** Asks the worker about a model as it is now; `undefined` when the answer came too late. */\n const request = <T>(model: monaco.editor.ITextModel, kind: WemlRequestKind, position?: monaco.IPosition) =>\n new Promise<T | undefined>((resolve) => {\n const id = nextId++;\n waiting.set(id, resolve as (result: unknown) => void);\n send({\n type: 'request',\n id,\n kind,\n uri: model.uri.toString(),\n version: model.getVersionId(),\n position: position && { lineNumber: position.lineNumber, column: position.column },\n });\n });\n\n // --------------------------------------------------------------- model mirror --\n\n const attached = new Map<string, monaco.IDisposable>();\n const timers = new Map<string, ReturnType<typeof setTimeout>>();\n\n const validate = async (model: monaco.editor.ITextModel) => {\n if (model.isDisposed()) return;\n const version = model.getVersionId();\n const markers = await request<monaco.editor.IMarkerData[]>(model, 'diagnostics');\n // A result for a version the model has left would point at text that is gone.\n if (!markers || model.isDisposed() || model.getVersionId() !== version) return;\n if (!attached.has(model.uri.toString())) return;\n m.editor.setModelMarkers(model, MARKER_OWNER, markers);\n };\n\n const schedule = (model: monaco.editor.ITextModel) => {\n const key = model.uri.toString();\n const existing = timers.get(key);\n if (existing) clearTimeout(existing);\n timers.set(\n key,\n setTimeout(() => {\n timers.delete(key);\n void validate(model);\n }, diagnosticsDebounceMs),\n );\n };\n\n const attach = (model: monaco.editor.ITextModel) => {\n const key = model.uri.toString();\n if (attached.has(key)) return;\n send({ type: 'open', uri: key, version: model.getVersionId(), text: model.getValue() });\n attached.set(\n key,\n model.onDidChangeContent((event) => {\n send({\n type: 'change',\n uri: key,\n version: event.versionId,\n changes: event.changes.map(({ rangeOffset, rangeLength, text }) => ({ rangeOffset, rangeLength, text })),\n });\n if (diagnostics) schedule(model);\n }),\n );\n // Validated at once on first attach, as `registerWeml` does.\n if (diagnostics) void validate(model);\n };\n\n const detach = (model: monaco.editor.ITextModel) => {\n const key = model.uri.toString();\n const timer = timers.get(key);\n if (timer) {\n clearTimeout(timer);\n timers.delete(key);\n }\n const listener = attached.get(key);\n if (!listener) return;\n listener.dispose();\n attached.delete(key);\n send({ type: 'close', uri: key });\n m.editor.setModelMarkers(model, MARKER_OWNER, []);\n };\n\n const sync = (model: monaco.editor.ITextModel) => {\n if (model.getLanguageId() === WEML_LANGUAGE_ID) attach(model);\n else detach(model);\n };\n\n disposables.push(\n m.editor.onDidCreateModel(sync),\n m.editor.onWillDisposeModel(detach),\n m.editor.onDidChangeModelLanguage((event) => sync(event.model)),\n );\n for (const model of m.editor.getModels()) sync(model);\n\n // ------------------------------------------------------------------ providers --\n\n disposables.push(\n m.languages.registerCompletionItemProvider(WEML_LANGUAGE_ID, {\n triggerCharacters: TRIGGER_CHARACTERS,\n async provideCompletionItems(model, position, _context, token) {\n const list = await request<monaco.languages.CompletionList>(model, 'completion', position);\n return token.isCancellationRequested || !list ? { suggestions: [] } : list;\n },\n }),\n m.languages.registerHoverProvider(WEML_LANGUAGE_ID, {\n async provideHover(model, position, token) {\n const hover = await request<monaco.languages.Hover | null>(model, 'hover', position);\n return token.isCancellationRequested ? null : (hover ?? null);\n },\n }),\n m.languages.registerDocumentSymbolProvider(WEML_LANGUAGE_ID, {\n async provideDocumentSymbols(model, token) {\n const symbols = await request<monaco.languages.DocumentSymbol[]>(model, 'symbols');\n return token.isCancellationRequested ? [] : (symbols ?? []);\n },\n }),\n );\n\n return {\n dispose() {\n for (const model of m.editor.getModels()) detach(model);\n for (const d of disposables) d.dispose();\n for (const resolve of waiting.values()) resolve(undefined);\n waiting.clear();\n worker.terminate();\n },\n };\n}\n\n/** Reformats the whole model into the canonical WEML form on \"Format Document\" (as in index.ts). */\nfunction createFormattingProvider(): monaco.languages.DocumentFormattingEditProvider {\n return {\n provideDocumentFormattingEdits(model): monaco.languages.TextEdit[] {\n const original = model.getValue();\n let formatted: string;\n try {\n formatted = formatWemlText(original);\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error('[weml] formatting failed', canonicalFormattingFailureMessage(err), err);\n return [];\n }\n if (formatted === original) return [];\n return [{ range: model.getFullModelRange(), text: formatted }];\n },\n };\n}\n","// Thin wrapper around the safe V2 canonical normalizer shared with the VS Code\n// extension. The local proxy lets Monaco's build bundle the repository source.\n\nimport {\n WemlNormalizationError,\n WemlStructureValidationError,\n wemlContentNormalize,\n} from './wemlContentNormalizeV2.js';\n\nexport interface WemlNormalizationFailure extends Error {\n code: string;\n line?: number;\n column?: number;\n expectedTag?: string | null;\n actualTag?: string | null;\n}\n\n/** Normalises a WEML document string into its canonical, reproducible form. */\nexport function formatWemlText(input: string): string {\n return wemlContentNormalize(input);\n}\n\nexport function isWemlNormalizationFailure(error: unknown): error is WemlNormalizationFailure {\n return error instanceof WemlNormalizationError;\n}\n\nexport function isWemlStructureValidationFailure(error: unknown): error is WemlNormalizationFailure {\n return error instanceof WemlStructureValidationError;\n}\n\n/** User-facing reason shown when canonical formatting is deliberately skipped. */\nexport function canonicalFormattingFailureMessage(error: unknown): string {\n const detail = error instanceof Error ? error.message : String(error);\n if (isWemlStructureValidationFailure(error)) {\n return `WEML structure is invalid: ${detail} Canonical formatting was not applied.`;\n }\n if (isWemlNormalizationFailure(error)) {\n return `WEML normalization was rejected: ${detail} Canonical formatting was not applied.`;\n }\n return `WEML formatting failed: ${detail}`;\n}\n","// Language registration data for WEML in Monaco: the language id, the\n// language configuration (brackets, comments, auto-closing pairs — ported from\n// the VS Code extension's language-configuration.json) and a Monarch\n// tokenizer providing HTML-style syntax highlighting.\n\nimport type * as monaco from 'monaco-editor/editor/editor.api.js';\n\nexport const WEML_LANGUAGE_ID = 'weml';\n\nexport const languageConfiguration: monaco.languages.LanguageConfiguration = {\n comments: {\n blockComment: ['<!--', '-->'],\n },\n brackets: [\n ['<!--', '-->'],\n ['<', '>'],\n ['{', '}'],\n ['(', ')'],\n ],\n autoClosingPairs: [\n { open: '{', close: '}' },\n { open: '[', close: ']' },\n { open: '(', close: ')' },\n { open: \"'\", close: \"'\" },\n { open: '\"', close: '\"' },\n { open: '<!--', close: '-->', notIn: ['comment', 'string'] },\n ],\n surroundingPairs: [\n { open: '{', close: '}' },\n { open: '[', close: ']' },\n { open: '(', close: ')' },\n { open: \"'\", close: \"'\" },\n { open: '\"', close: '\"' },\n { open: '<', close: '>' },\n ],\n autoCloseBefore: ';:.,=}])><`% \\n\\t',\n folding: {\n markers: {\n start: /^\\s*<!--\\s*#region\\b.*-->/,\n end: /^\\s*<!--\\s*#endregion\\b.*-->/,\n },\n },\n // Auto-close tags as the user types `>` / `/`, mirroring Monaco's HTML mode.\n onEnterRules: [\n {\n beforeText: /<([a-zA-Z][\\w-]*)(?:\\s[^>]*)?(?<!\\/)>$/,\n afterText: /^<\\/([a-zA-Z][\\w-]*)>$/,\n action: { indentAction: 2 /* IndentAction.IndentOutdent */ },\n },\n {\n beforeText: /<([a-zA-Z][\\w-]*)(?:\\s[^>]*)?(?<!\\/)>$/,\n action: { indentAction: 1 /* IndentAction.Indent */ },\n },\n ],\n};\n\n// Monarch tokenizer: a compact HTML-flavoured grammar. WEML is HTML5-compatible,\n// so highlighting tags / attributes / strings / comments / entities is enough.\nexport const monarchLanguage: monaco.languages.IMonarchLanguage = {\n defaultToken: '',\n tokenPostfix: '.weml',\n ignoreCase: true,\n\n // eslint-disable-next-line no-useless-escape\n tokenizer: {\n root: [\n [/<!--/, 'comment', '@comment'],\n [/<!DOCTYPE/, { token: 'metatag', next: '@doctype' }],\n // closing tag\n [/(<\\/)([\\w-]+)/, ['delimiter', { token: 'tag', next: '@tag' }]],\n // opening tag\n [/(<)([\\w-]+)/, ['delimiter', { token: 'tag', next: '@tag' }]],\n [/(<)(\\s*)(\\/?>)/, ['delimiter', '', 'delimiter']],\n [/&\\w+;/, 'string.escape'],\n [/&#[xX][0-9a-fA-F]+;/, 'string.escape'],\n [/&#[0-9]+;/, 'string.escape'],\n [/[^<&]+/, ''],\n ],\n\n comment: [\n [/-->/, 'comment', '@pop'],\n [/[^-]+/, 'comment.content'],\n [/./, 'comment.content'],\n ],\n\n doctype: [\n [/[^>]+/, 'metatag.content'],\n [/>/, { token: 'metatag', next: '@pop' }],\n ],\n\n tag: [\n [/[ \\t\\r\\n]+/, ''],\n [/(=)(\")/, ['delimiter', { token: 'attribute.value', next: '@value_double' }]],\n [/(=)(')/, ['delimiter', { token: 'attribute.value', next: '@value_single' }]],\n [/=/, 'delimiter'],\n [/[\\w-]+/, 'attribute.name'],\n [/\\/?>/, { token: 'delimiter', next: '@pop' }],\n ],\n\n value_double: [\n [/[^\"]+/, 'attribute.value'],\n [/\"/, { token: 'attribute.value', next: '@pop' }],\n ],\n\n value_single: [\n [/[^']+/, 'attribute.value'],\n [/'/, { token: 'attribute.value', next: '@pop' }],\n ],\n },\n};\n","// AUTO-GENERATED by tools/generate-schema.mjs from docs/*.md.\n// Do not edit by hand — run `npm run generate-schema` to regenerate.\n\nexport interface EnumValue {\n value: string;\n name: string;\n description: string;\n}\n\nexport interface EnumSchema {\n id: string;\n title: string;\n values: EnumValue[];\n}\n\nexport interface AttributeSchema {\n name: string;\n required: boolean;\n default?: string;\n description: string;\n enumRef?: string;\n}\n\nexport interface TagSchema {\n tag: string;\n description: string;\n attributes: AttributeSchema[];\n notes: string;\n source: string;\n}\n\nexport interface MetaFieldSchema {\n name: string;\n description: string;\n enumRef?: string;\n}\n\nexport const ENUMS: Record<string, EnumSchema> = {\n \"entity-type\": {\n \"id\": \"entity-type\",\n \"title\": \"Entity type\",\n \"values\": [\n {\n \"value\": \"addressee\",\n \"name\": \"Addressee\",\n \"description\": \"For Letter it means person whom this letter is addressed to.\"\n },\n {\n \"value\": \"date\",\n \"name\": \"Date\",\n \"description\": \"Date entity. For LT/MS it means date when document was written. Optional value contains single date, range of dates (two date via `...`) or two different date via `,` — all of dates must be in ISO 8601 format.\"\n },\n {\n \"value\": \"place\",\n \"name\": \"Place\",\n \"description\": \"Place. For Lt/Ms it means place where manuscript was written\"\n },\n {\n \"value\": \"topic\",\n \"name\": \"Topic\",\n \"description\": \"Topic entity. For topical index it marks whole topic. For dictionary it marks topic in the header.\"\n },\n {\n \"value\": \"topic-word\",\n \"name\": \"Topic word\",\n \"description\": \"Topic word entity. For topical index it marks the main term of a topic. For dictionary it marks topic in the regular paragraph.\"\n }\n ]\n },\n \"horizontal-alignment\": {\n \"id\": \"horizontal-alignment\",\n \"title\": \"Horizontal Alignment\",\n \"values\": [\n {\n \"value\": \"left\",\n \"name\": \"Left\",\n \"description\": \"Align text to the left\"\n },\n {\n \"value\": \"center\",\n \"name\": \"Center\",\n \"description\": \"Align text to the center\"\n },\n {\n \"value\": \"right\",\n \"name\": \"Right\",\n \"description\": \"Align text to the right\"\n }\n ]\n },\n \"figure-alignment\": {\n \"id\": \"figure-alignment\",\n \"title\": \"Figure Alignment\",\n \"values\": [\n {\n \"value\": \"left\",\n \"name\": \"Left\",\n \"description\": \"Align to the left\"\n },\n {\n \"value\": \"center\",\n \"name\": \"Center\",\n \"description\": \"Align to the center\"\n },\n {\n \"value\": \"right\",\n \"name\": \"Right\",\n \"description\": \"Align to the right\"\n },\n {\n \"value\": \"justify\",\n \"name\": \"Justify\",\n \"description\": \"Full-width alignment\"\n }\n ]\n },\n \"list-type\": {\n \"id\": \"list-type\",\n \"title\": \"List Type\",\n \"values\": [\n {\n \"value\": \"unordered\",\n \"name\": \"Unordered\",\n \"description\": \"Unordered list. Each item is marked with a bullet.\"\n },\n {\n \"value\": \"ordered\",\n \"name\": \"Ordered\",\n \"description\": \"Ordered list. Each item is marked with a number.\"\n }\n ]\n },\n \"non-egw-type\": {\n \"id\": \"non-egw-type\",\n \"title\": \"Non-EGW Type\",\n \"values\": [\n {\n \"value\": \"appendix\",\n \"name\": \"Appendix\",\n \"description\": \"Non-EGW Appendix\"\n },\n {\n \"value\": \"comment\",\n \"name\": \"Comment\",\n \"description\": \"Non-EGW Commentary\"\n },\n {\n \"value\": \"foreword\",\n \"name\": \"Foreword\",\n \"description\": \"Non-EGW Foreword\"\n },\n {\n \"value\": \"intro\",\n \"name\": \"Intro\",\n \"description\": \"Non-EGW Introduction\"\n },\n {\n \"value\": \"note\",\n \"name\": \"Note\",\n \"description\": \"Non-EGW Note\"\n },\n {\n \"value\": \"preface\",\n \"name\": \"Preface\",\n \"description\": \"Non-EGW Preface\"\n },\n {\n \"value\": \"text\",\n \"name\": \"Text\",\n \"description\": \"Non-EGW Text\"\n }\n ]\n },\n \"note-types\": {\n \"id\": \"note-types\",\n \"title\": \"Note types\",\n \"values\": [\n {\n \"value\": \"footnote\",\n \"name\": \"Footnote\",\n \"description\": \"Placed at the bottom of the page.\"\n },\n {\n \"value\": \"chapter-endnote\",\n \"name\": \"Chapter End Note\",\n \"description\": \"Placed at the end of the chapter.\"\n },\n {\n \"value\": \"book-endnote\",\n \"name\": \"Book End Note\",\n \"description\": \"Placed at the end of the book\"\n }\n ]\n },\n \"paragraph-role\": {\n \"id\": \"paragraph-role\",\n \"title\": \"Paragraph role\",\n \"values\": [\n {\n \"value\": \"address\",\n \"name\": \"Address\",\n \"description\": \"Paragraph contains address. For letter it means address of the addressee\"\n },\n {\n \"value\": \"addressee\",\n \"name\": \"Addressee\",\n \"description\": \"Paragraph contains addressee. For letter it means addressee name\"\n },\n {\n \"value\": \"author\",\n \"name\": \"Author\",\n \"description\": \"Paragraph contains author name.\"\n },\n {\n \"value\": \"date\",\n \"name\": \"Date\",\n \"description\": \"Paragraph contains date.\"\n },\n {\n \"value\": \"place\",\n \"name\": \"Place\",\n \"description\": \"Paragraph contains place.\"\n },\n {\n \"value\": \"introduction\",\n \"name\": \"Introduction\",\n \"description\": \"Paragraph contains introduction text.\"\n },\n {\n \"value\": \"letterhead\",\n \"name\": \"Letterhead\",\n \"description\": \"Paragraph contains letter header.\"\n },\n {\n \"value\": \"salutation\",\n \"name\": \"Salutation\",\n \"description\": \"Paragraph contains salutation.\"\n },\n {\n \"value\": \"signature-date\",\n \"name\": \"Signature Date\",\n \"description\": \"Paragraph contains signature date.\"\n },\n {\n \"value\": \"signature-line\",\n \"name\": \"Signature Line\",\n \"description\": \"Paragraph contains signature line.\"\n },\n {\n \"value\": \"signature-source\",\n \"name\": \"Signature Source\",\n \"description\": \"Paragraph contains signature source.\"\n },\n {\n \"value\": \"bible-text\",\n \"name\": \"Bible Text\",\n \"description\": \"Paragraph contains Bible text.\"\n },\n {\n \"value\": \"devotional-text\",\n \"name\": \"Devotional Text\",\n \"description\": \"Paragraph contains devotional text.\"\n },\n {\n \"value\": \"poem-source\",\n \"name\": \"Poem Source\",\n \"description\": \"Paragraph contains poem source.\"\n },\n {\n \"value\": \"publication-info\",\n \"name\": \"Publication Info\",\n \"description\": \"Paragraph contains publication info.\"\n },\n {\n \"value\": \"title\",\n \"name\": \"Title\",\n \"description\": \"Paragraph contains title.\"\n }\n ]\n },\n \"paragraph-type\": {\n \"id\": \"paragraph-type\",\n \"title\": \"Paragraph type\",\n \"values\": [\n {\n \"value\": \"blockquote\",\n \"name\": \"Blockquote\",\n \"description\": \"Blockquote\"\n },\n {\n \"value\": \"paragraph\",\n \"name\": \"Paragraph\",\n \"description\": \"Paragraph\"\n },\n {\n \"value\": \"poem\",\n \"name\": \"Poem\",\n \"description\": \"Poem. Lines are separated with <br/>\"\n }\n ]\n },\n \"paragraphs-group-type\": {\n \"id\": \"paragraphs-group-type\",\n \"title\": \"Paragraphs group type\",\n \"values\": [\n {\n \"value\": \"frame\",\n \"name\": \"Frame\",\n \"description\": \"Blockquote with several paragraphs\"\n }\n ]\n },\n \"publication-type\": {\n \"id\": \"publication-type\",\n \"title\": \"Publication Type\",\n \"values\": [\n {\n \"value\": \"bible\",\n \"name\": \"Bible\",\n \"description\": \"Bible translation\"\n },\n {\n \"value\": \"bible-commentary\",\n \"name\": \"Bible Commentary\",\n \"description\": \"Bible commentaries\"\n },\n {\n \"value\": \"book\",\n \"name\": \"Book\",\n \"description\": \"Paginated book\"\n },\n {\n \"value\": \"devotional\",\n \"name\": \"Devotional\",\n \"description\": \"Daily devotional\"\n },\n {\n \"value\": \"dictionary\",\n \"name\": \"Dictionary\",\n \"description\": \"Dictionary\"\n },\n {\n \"value\": \"manuscript-volume\",\n \"name\": \"Manuscript Volume\",\n \"description\": \"One of EGW Lt&Ms bound volumes\"\n },\n {\n \"value\": \"periodical/page-break\",\n \"name\": \"Periodical\",\n \"description\": \"Periodical with page markers\"\n },\n {\n \"value\": \"periodical/no-page-break\",\n \"name\": \"Periodical\",\n \"description\": \"Periodical without page markers\"\n },\n {\n \"value\": \"topical-index\",\n \"name\": \"Topical Index\",\n \"description\": \"Topical index\"\n },\n {\n \"value\": \"scripture-index\",\n \"name\": \"Scripture Index\",\n \"description\": \"Scripture index\"\n }\n ]\n },\n \"text-direction\": {\n \"id\": \"text-direction\",\n \"title\": \"Text Direction\",\n \"values\": [\n {\n \"value\": \"ltr\",\n \"name\": \"Left to right\",\n \"description\": \"Text is written from left to right\"\n },\n {\n \"value\": \"rtl\",\n \"name\": \"Right to left\",\n \"description\": \"Text is written from right to left\"\n }\n ]\n },\n \"text-formatting\": {\n \"id\": \"text-formatting\",\n \"title\": \"Text formatting\",\n \"values\": [\n {\n \"value\": \"bold\",\n \"name\": \"Bold\",\n \"description\": \"Bold text\"\n },\n {\n \"value\": \"italic\",\n \"name\": \"Italic\",\n \"description\": \"Italic text\"\n },\n {\n \"value\": \"underline\",\n \"name\": \"Underline\",\n \"description\": \"Underlined text\"\n },\n {\n \"value\": \"superscript\",\n \"name\": \"Superscript\",\n \"description\": \"Superscript text\"\n },\n {\n \"value\": \"subscript\",\n \"name\": \"Subscript\",\n \"description\": \"Subscript text\"\n },\n {\n \"value\": \"small-caps\",\n \"name\": \"Small Caps\",\n \"description\": \"Small caps text\"\n },\n {\n \"value\": \"all-caps\",\n \"name\": \"All Caps\",\n \"description\": \"All caps text\"\n },\n {\n \"value\": \"overline\",\n \"name\": \"Overline\",\n \"description\": \"Overlined text\"\n }\n ]\n },\n \"vertical-alignment\": {\n \"id\": \"vertical-alignment\",\n \"title\": \"Vertical Alignment\",\n \"values\": [\n {\n \"value\": \"top\",\n \"name\": \"Top alignment\",\n \"description\": \"Align text to the top\"\n },\n {\n \"value\": \"center\",\n \"name\": \"Center alignment\",\n \"description\": \"Align text to the center\"\n },\n {\n \"value\": \"bottom\",\n \"name\": \"Bottom alignment\",\n \"description\": \"Align text to the bottom\"\n }\n ]\n }\n};\n\nexport const TAGS: Record<string, TagSchema> = {\n \"figure\": {\n \"tag\": \"figure\",\n \"description\": \"Represents an image with an optional caption.\",\n \"attributes\": [\n {\n \"name\": \"align\",\n \"required\": false,\n \"description\": \"Horizontal alignment. See corresponding page for allowed values. Default `left`\",\n \"enumRef\": \"figure-alignment\"\n },\n {\n \"name\": \"wrap\",\n \"required\": false,\n \"description\": \"Default `1`: text continues to flow beside the image, otherwise `0`\"\n }\n ],\n \"notes\": \"Contains a required `img` tag and an optional `figcaption` tag.\\n\\n`img` tag must contain `src` attribute with a valid image url and an optional `alt`, `width` and `height` and attributes.\\n\\nFigcaption may contain a single Paragraph.\\n\\nIs displayed as a full-width or centered image with caption underneath\",\n \"source\": \"blocks/figure.md\"\n },\n \"hr\": {\n \"tag\": \"hr\",\n \"description\": \"Represents a horizontal ruler with optional foreground and background colors.\",\n \"attributes\": [\n {\n \"name\": \"background\",\n \"required\": false,\n \"description\": \"Background color. See Colors.\"\n },\n {\n \"name\": \"foreground\",\n \"required\": false,\n \"description\": \"Foreground color. See Colors.\"\n }\n ],\n \"notes\": \"Usually displayed as an ornament or three centered asterisks.\",\n \"source\": \"blocks/hr.md\"\n },\n \"w-list\": {\n \"tag\": \"w-list\",\n \"description\": \"Represents a list of text items.\",\n \"attributes\": [\n {\n \"name\": \"type\",\n \"required\": false,\n \"default\": \"unordered\",\n \"description\": \"Type of the list. See corresponding page for possible values\",\n \"enumRef\": \"list-type\"\n },\n {\n \"name\": \"marker\",\n \"required\": false,\n \"default\": \"•\",\n \"description\": \"Based on list type. See extended info\"\n },\n {\n \"name\": \"start\",\n \"required\": false,\n \"default\": \"null\",\n \"description\": \"Based on marker. See extended info\"\n }\n ],\n \"notes\": \"List contains zero or more `w-li` elements, each of them containing one or\\nmore block elements. `w-li` has no attributes.\\n\\n### Valid attribute values\\n\\n**Ordered List**\\n\\n| Marker | Description | Start | Values for first `w-li` |\\n|--------|---------------------------|-------|----------------------------|\\n| `1` | Arabic numerals (default) | 1 | Start from `1` |\\n| `a` | Lowercase letters | 2 | Start from lower `b` |\\n| `A` | Uppercase letters | 3 | Start from upper `C` |\\n| `i` | Lowercase Roman numerals | 5 | Start from lower Roman `v` |\\n| `I` | Uppercase Roman numerals | 10 | Start from upper Roman `X` |\\n\\n**Unordered list**\\n\\nThe `marker` attribute specifies the marker type. Marker must be a unicode string.\\nIf not specified, the default value is `•`. The `start` attribute is not considered.\",\n \"source\": \"blocks/w-list.md\"\n },\n \"w-text-block\": {\n \"tag\": \"w-text-block\",\n \"description\": \"Represents a block of text.\\n\\nMay contain inline elements only.\",\n \"attributes\": [\n {\n \"name\": \"type\",\n \"required\": false,\n \"default\": \"paragraph\",\n \"description\": \"Type of the paragraph. See corresponding page for values\",\n \"enumRef\": \"paragraph-type\"\n },\n {\n \"name\": \"align\",\n \"required\": false,\n \"default\": \"`left` for LTR, `right` for RTL\",\n \"description\": \"Horizontal alignment. See corresponding page for allowed values\",\n \"enumRef\": \"horizontal-alignment\"\n }\n ],\n \"notes\": \"\",\n \"source\": \"blocks/w-text-block.md\"\n },\n \"br\": {\n \"tag\": \"br\",\n \"description\": \"Line breaks are represented by the `br` element. They are used to force a line break\\nin the output.\",\n \"attributes\": [],\n \"notes\": \"Current line is broken and the next line is started. Next line has the same alignment\\nas the current line, and the same indentation level as any line other than the first.\",\n \"source\": \"inlines/br.md\"\n },\n \"w-color\": {\n \"tag\": \"w-color\",\n \"description\": \"Represents an inline span with a foreground color, a background color, or both.\",\n \"attributes\": [\n {\n \"name\": \"background\",\n \"required\": false,\n \"description\": \"Background color. See Colors.\"\n },\n {\n \"name\": \"foreground\",\n \"required\": false,\n \"description\": \"Foreground color. See Colors.\"\n }\n ],\n \"notes\": \"Any inline elements.\",\n \"source\": \"inlines/w-color.md\"\n },\n \"w-entity\": {\n \"tag\": \"w-entity\",\n \"description\": \"An entity is a reference to a person, place, or thing. Entities are used to\",\n \"attributes\": [\n {\n \"name\": \"type\",\n \"required\": true,\n \"description\": \"The type of the entity. See Entity Types for a list of valid values.\",\n \"enumRef\": \"entity-type\"\n },\n {\n \"name\": \"value\",\n \"required\": false,\n \"description\": \"Value of the entity. This is a string that is the real value of the entity, if actual text differs from what it represents.<br><br> For Entity Type `date` value may contains <ul><li>single date</li><li>range of dates (two date via `...`)</li><li>two different date via `,`</li></ul>\"\n }\n ],\n \"notes\": \"Any inline elements.\",\n \"source\": \"inlines/w-entity.md\"\n },\n \"w-format\": {\n \"tag\": \"w-format\",\n \"description\": \"Represents a block of text that is formatted in a special way (bold, italic, etc.).\",\n \"attributes\": [\n {\n \"name\": \"type\",\n \"required\": true,\n \"description\": \"Type of the formatting. See Formatting types for a list of possible values.\",\n \"enumRef\": \"text-formatting\"\n }\n ],\n \"notes\": \"Text is displayed with a different style depending on the formatting type.\",\n \"source\": \"inlines/w-format.md\"\n },\n \"w-lang\": {\n \"tag\": \"w-lang\",\n \"description\": \"Represents a span written in different language.\",\n \"attributes\": [\n {\n \"name\": \"lang\",\n \"required\": false,\n \"description\": \"The language of the text. See BCP 47 for a list of possible values.\"\n },\n {\n \"name\": \"dir\",\n \"required\": false,\n \"description\": \"The direction of the text. See Text directions for a list of possible values.\",\n \"enumRef\": \"text-direction\"\n }\n ],\n \"notes\": \"Any inline elements.\",\n \"source\": \"inlines/w-lang.md\"\n },\n \"w-non-egw\": {\n \"tag\": \"w-non-egw\",\n \"description\": \"Represents a block of text that is not written by EGW herself. This is used to represent\\nquotes from other authors, or other text that is not written by EGW.\",\n \"attributes\": [\n {\n \"name\": \"type\",\n \"required\": true,\n \"description\": \"The type of the non-egw text. See Non-EGW types for a list of valid values.\",\n \"enumRef\": \"non-egw-type\"\n }\n ],\n \"notes\": \"Non-EGW text is drawn as a blue text.\",\n \"source\": \"inlines/w-non-egw.md\"\n },\n \"w-page\": {\n \"tag\": \"w-page\",\n \"description\": \"Page break element represents a page break in the publication.\",\n \"attributes\": [\n {\n \"name\": \"number\",\n \"required\": true,\n \"description\": \"Page number. Usually contains an arabic or roman number.\"\n }\n ],\n \"notes\": \"This element is usually hidden\",\n \"source\": \"inlines/w-page.md\"\n },\n \"w-sent\": {\n \"tag\": \"w-sent\",\n \"description\": \"Sentence element represents a sentence in the publication.\",\n \"attributes\": [],\n \"notes\": \"\",\n \"source\": \"inlines/w-sent.md\"\n },\n \"a\": {\n \"tag\": \"a\",\n \"description\": \"Either a link to another document/resource (`href` attribute) or a named anchor in the text (`id` attribute).\",\n \"attributes\": [\n {\n \"name\": \"href\",\n \"required\": true,\n \"description\": \"The URL of the link. Link must be an absolute URI and have one of the following formats\"\n },\n {\n \"name\": \"title\",\n \"required\": false,\n \"description\": \"The title of the link.\"\n },\n {\n \"name\": \"id\",\n \"required\": true,\n \"description\": \"The identifier of the anchor.\"\n }\n ],\n \"notes\": \"**As a link** (`href` attribute): Represents a link to another document or resource.\\n\\nLink may have any inline elements as children.\\n\\nLink is displayed as a text with a different style depending on the type of the resource\\nto which it points. On mouse over, the title of the link is displayed.\\n\\n**As a named anchor** (`id` attribute): Represents a named anchor in the text.\\n\\nAnchor may not have any children.\\n\\nAnchor is not displayed in the text.\",\n \"source\": \"inlines/a-href.md, inlines/w-anchor.md\"\n },\n \"w-heading\": {\n \"tag\": \"w-heading\",\n \"description\": \"Represents a header of a document.\",\n \"attributes\": [\n {\n \"name\": \"skip\",\n \"required\": false,\n \"description\": \"Non-empty value means that heading is for non-meaningful chapter (preface, epilogue, annotations etc\"\n },\n {\n \"name\": \"level\",\n \"required\": true,\n \"description\": \"Header level. Must be in range 1-6\"\n },\n {\n \"name\": \"alt-text\",\n \"required\": false,\n \"description\": \"Alternative heading text (HTML-encoded text)\"\n },\n {\n \"name\": \"override-chapter-number\",\n \"required\": false,\n \"description\": \"Chapter number for manual set\"\n },\n {\n \"name\": \"background\",\n \"required\": false,\n \"description\": \"Background color. See Colors\"\n },\n {\n \"name\": \"foreground\",\n \"required\": false,\n \"description\": \"Foreground color. See Colors\"\n }\n ],\n \"notes\": \"Must contain a single text block element.\",\n \"source\": \"containers.md\"\n },\n \"w-para\": {\n \"tag\": \"w-para\",\n \"description\": \"Represents a single paragraph of a document\",\n \"attributes\": [\n {\n \"name\": \"skip\",\n \"required\": false,\n \"description\": \"Non-empty value means that paragraph does not affect paragraph numeration\"\n },\n {\n \"name\": \"indent\",\n \"required\": false,\n \"description\": \"Indentation level (from `-4` to `0`+). Default value is `1` (single indentation)\"\n },\n {\n \"name\": \"role\",\n \"required\": false,\n \"description\": \"Paragraph role. See corresponding page for allowed values.\",\n \"enumRef\": \"paragraph-role\"\n },\n {\n \"name\": \"align\",\n \"required\": false,\n \"description\": \"Horizontal alignment. See corresponding page for allowed values. Defaults to `left` for left-to-right languages and `right` to right-to-left\",\n \"enumRef\": \"horizontal-alignment\"\n },\n {\n \"name\": \"background\",\n \"required\": false,\n \"description\": \"Background color. See Colors\"\n },\n {\n \"name\": \"foreground\",\n \"required\": false,\n \"description\": \"Foreground color. See Colors\"\n }\n ],\n \"notes\": \"Must contain a single block element.\",\n \"source\": \"containers.md\"\n },\n \"w-para-group\": {\n \"tag\": \"w-para-group\",\n \"description\": \"Represents a group of paragraphs, formatted as a same entity\",\n \"attributes\": [\n {\n \"name\": \"skip\",\n \"required\": false,\n \"description\": \"Non-empty value means that container does not affect paragraph numeration\"\n },\n {\n \"name\": \"type\",\n \"required\": false,\n \"description\": \"Paragraphs group type. See corresponding page for allowed values.\",\n \"enumRef\": \"paragraphs-group-type\"\n }\n ],\n \"notes\": \"Must contain 1 or more paragraph containers element.\",\n \"source\": \"containers.md\"\n },\n \"w-toc\": {\n \"tag\": \"w-toc\",\n \"description\": \"TOC position marker.\",\n \"attributes\": [],\n \"notes\": \"Must contain a single text block element.\",\n \"source\": \"containers.md\"\n },\n \"table\": {\n \"tag\": \"table\",\n \"description\": \"\",\n \"attributes\": [\n {\n \"name\": \"align\",\n \"required\": false,\n \"description\": \"Horizontal alignment of the table. See corresponding page for possible values\",\n \"enumRef\": \"horizontal-alignment\"\n }\n ],\n \"notes\": \"Contains optional `<thead>` and `<tbody>` sections. Both of them, if specfied, must\\nhave at least one table row.\\n\\n`THEAD` element includes cells from the table header and `TBODY` represents actual\\ntabular data.\\n\\nIs displayed as a table. Borderless or bordered, is determined by the client\",\n \"source\": \"blocks/table.md\"\n },\n \"tr\": {\n \"tag\": \"tr\",\n \"description\": \"Represents a table row\",\n \"attributes\": [],\n \"notes\": \"Contains zero or more table cells\",\n \"source\": \"blocks/table.md\"\n },\n \"th\": {\n \"tag\": \"th\",\n \"description\": \"Table header cell. Represents a table cell\",\n \"attributes\": [\n {\n \"name\": \"align\",\n \"required\": false,\n \"default\": \"`left` for left-to-right languages,<br/>`right` for right-to-left\",\n \"description\": \"Horizontal alignment of the cell content. See corresponding page for possible values\",\n \"enumRef\": \"horizontal-alignment\"\n },\n {\n \"name\": \"valign\",\n \"required\": false,\n \"default\": \"top\",\n \"description\": \"Vertical alignment of the cell content. See corresponding page for possible values. If not specified, defaults to `top`\",\n \"enumRef\": \"vertical-alignment\"\n },\n {\n \"name\": \"indent\",\n \"required\": false,\n \"description\": \"Indentation level (from `-4` to `0`+). Default value is `0` (no indentation)\"\n },\n {\n \"name\": \"colspan\",\n \"required\": false,\n \"default\": \"1\",\n \"description\": \"number of columns this cell spans. If not specified, defaults to `1`\"\n },\n {\n \"name\": \"rowspan\",\n \"required\": false,\n \"default\": \"1\",\n \"description\": \"number of rows this cell spans. If not specified, defaults to `1`\"\n }\n ],\n \"notes\": \"Contains zero or more block nodes\",\n \"source\": \"blocks/table.md\"\n },\n \"td\": {\n \"tag\": \"td\",\n \"description\": \"Table data cell. Represents a table cell\",\n \"attributes\": [\n {\n \"name\": \"align\",\n \"required\": false,\n \"default\": \"`left` for left-to-right languages,<br/>`right` for right-to-left\",\n \"description\": \"Horizontal alignment of the cell content. See corresponding page for possible values\",\n \"enumRef\": \"horizontal-alignment\"\n },\n {\n \"name\": \"valign\",\n \"required\": false,\n \"default\": \"top\",\n \"description\": \"Vertical alignment of the cell content. See corresponding page for possible values. If not specified, defaults to `top`\",\n \"enumRef\": \"vertical-alignment\"\n },\n {\n \"name\": \"indent\",\n \"required\": false,\n \"description\": \"Indentation level (from `-4` to `0`+). Default value is `0` (no indentation)\"\n },\n {\n \"name\": \"colspan\",\n \"required\": false,\n \"default\": \"1\",\n \"description\": \"number of columns this cell spans. If not specified, defaults to `1`\"\n },\n {\n \"name\": \"rowspan\",\n \"required\": false,\n \"default\": \"1\",\n \"description\": \"number of rows this cell spans. If not specified, defaults to `1`\"\n }\n ],\n \"notes\": \"Contains zero or more block nodes\",\n \"source\": \"blocks/table.md\"\n },\n \"w-note\": {\n \"tag\": \"w-note\",\n \"description\": \"A note is a block of text that is not part of the main text flow. It is usually placed at the end of a chapter or book,\\nbut can also be placed inline in the text. Notes are usually numbered sequentially, but can also be given a custom\\nnumber.\",\n \"attributes\": [\n {\n \"name\": \"type\",\n \"required\": false,\n \"default\": \"footnote\",\n \"description\": \"Note type. See corresponding Note Type page\",\n \"enumRef\": \"note-types\"\n }\n ],\n \"notes\": \"Note contains a single `w-note-header` and a single `w-note-body` element. Both of them are required.\\n\\n`w-note-header` contain any number of inline elements. Usually it contains only a single reference to the note body,\\n\\n`w-note-body` contains any number of `w-note-para` elements.\",\n \"source\": \"inlines/w-note.md\"\n },\n \"w-note-para\": {\n \"tag\": \"w-note-para\",\n \"description\": \"Represents a single paragraph of a note\",\n \"attributes\": [\n {\n \"name\": \"indent\",\n \"required\": false,\n \"description\": \"Indentation level (`0`+). Default value is `1` (single indentation)\"\n },\n {\n \"name\": \"align\",\n \"required\": false,\n \"description\": \"Text align (default: `left`)\"\n }\n ],\n \"notes\": \"\",\n \"source\": \"inlines/w-note.md\"\n },\n \"img\": {\n \"tag\": \"img\",\n \"description\": \"Image to display, child of `figure`.\",\n \"attributes\": [\n {\n \"name\": \"src\",\n \"required\": true,\n \"description\": \"A valid image URL.\"\n },\n {\n \"name\": \"alt\",\n \"required\": false,\n \"description\": \"Alternative text for the image.\"\n },\n {\n \"name\": \"width\",\n \"required\": false,\n \"description\": \"Image width.\"\n },\n {\n \"name\": \"height\",\n \"required\": false,\n \"description\": \"Image height.\"\n }\n ],\n \"notes\": \"\",\n \"source\": \"blocks/figure.md\"\n },\n \"figcaption\": {\n \"tag\": \"figcaption\",\n \"description\": \"Optional caption of a `figure`. May contain a single text block.\",\n \"attributes\": [],\n \"notes\": \"\",\n \"source\": \"blocks/figure.md\"\n },\n \"w-li\": {\n \"tag\": \"w-li\",\n \"description\": \"A single item of a `w-list`. Contains one or more block elements.\",\n \"attributes\": [],\n \"notes\": \"\",\n \"source\": \"blocks/w-list.md\"\n },\n \"thead\": {\n \"tag\": \"thead\",\n \"description\": \"Table header section of a `table`. Contains cells from the table header.\",\n \"attributes\": [],\n \"notes\": \"Must contain at least one `tr`, if specified.\",\n \"source\": \"blocks/table.md\"\n },\n \"tbody\": {\n \"tag\": \"tbody\",\n \"description\": \"Table body section of a `table`. Represents the actual tabular data.\",\n \"attributes\": [],\n \"notes\": \"Must contain at least one `tr`, if specified.\",\n \"source\": \"blocks/table.md\"\n },\n \"w-note-header\": {\n \"tag\": \"w-note-header\",\n \"description\": \"Header of a `w-note`. Contains any number of inline elements, usually a single reference to the note body.\",\n \"attributes\": [],\n \"notes\": \"\",\n \"source\": \"inlines/w-note.md\"\n },\n \"w-note-body\": {\n \"tag\": \"w-note-body\",\n \"description\": \"Body of a `w-note`. Contains one or more `w-note-para` elements.\",\n \"attributes\": [],\n \"notes\": \"\",\n \"source\": \"inlines/w-note.md\"\n },\n \"html\": {\n \"tag\": \"html\",\n \"description\": \"Root element of a WEML document. Must be a valid html5 document with a head and a body.\",\n \"attributes\": [\n {\n \"name\": \"lang\",\n \"required\": true,\n \"description\": \"Document language. Must be one of the existing EGW languages (BCP 47 format).\"\n },\n {\n \"name\": \"dir\",\n \"required\": false,\n \"description\": \"Text direction of the document.\",\n \"enumRef\": \"text-direction\",\n \"default\": \"ltr\"\n }\n ],\n \"notes\": \"\",\n \"source\": \"intermediary-format.md\"\n },\n \"head\": {\n \"tag\": \"head\",\n \"description\": \"Document header. Must contain a charset declaration, a title and several meta tags.\",\n \"attributes\": [],\n \"notes\": \"\",\n \"source\": \"intermediary-format.md\"\n },\n \"title\": {\n \"tag\": \"title\",\n \"description\": \"Publication title.\",\n \"attributes\": [],\n \"notes\": \"\",\n \"source\": \"intermediary-format.md\"\n },\n \"meta\": {\n \"tag\": \"meta\",\n \"description\": \"Document metadata. See `name` attribute for supported fields (`pubid`, `code`, `type`, `author`, ...).\",\n \"attributes\": [\n {\n \"name\": \"charset\",\n \"required\": false,\n \"description\": \"Document character set. Must be `UTF-8`.\"\n },\n {\n \"name\": \"name\",\n \"required\": false,\n \"description\": \"Name of the metadata field.\"\n },\n {\n \"name\": \"content\",\n \"required\": false,\n \"description\": \"Value of the metadata field.\"\n }\n ],\n \"notes\": \"\",\n \"source\": \"intermediary-format.md\"\n },\n \"body\": {\n \"tag\": \"body\",\n \"description\": \"Document body. Contains one or more `div` elements, each representing a paragraph.\",\n \"attributes\": [],\n \"notes\": \"\",\n \"source\": \"intermediary-format.md\"\n },\n \"div\": {\n \"tag\": \"div\",\n \"description\": \"Represents a single paragraph of the document. Must contain a single container element or a page break element.\",\n \"attributes\": [\n {\n \"name\": \"id\",\n \"required\": true,\n \"description\": \"Positive 32-bit integer ID (1–2147483647), unique within the document. Should be preserved between imports.\"\n },\n {\n \"name\": \"hash\",\n \"required\": false,\n \"description\": \"Paragraph hash. Preserved without calculation or verification.\"\n },\n {\n \"name\": \"refcode-short\",\n \"required\": false,\n \"description\": \"Short reference code.\"\n },\n {\n \"name\": \"refcode-long\",\n \"required\": false,\n \"description\": \"Long reference code.\"\n },\n {\n \"name\": \"data-skip\",\n \"required\": false,\n \"description\": \"If present, this paragraph is skipped in page numbering (and, for headings, excluded from the TOC).\"\n }\n ],\n \"notes\": \"\",\n \"source\": \"intermediary-format.md\"\n }\n};\n\nexport const META_FIELDS: MetaFieldSchema[] = [\n {\n \"name\": \"pubid\",\n \"description\": \"Publication id. Must be unique for each publication.\"\n },\n {\n \"name\": \"original-id\",\n \"description\": \"Original publication ID for a translation. Optional 32-bit integer, represented by `WemlDocumentHeader.OriginalId` (`int?`). Missing or unparseable WEML values are read as `null`.\"\n },\n {\n \"name\": \"code\",\n \"description\": \"Publication short code.\"\n },\n {\n \"name\": \"type\",\n \"description\": \"Publication type.\",\n \"enumRef\": \"publication-type\"\n },\n {\n \"name\": \"author\",\n \"description\": \"Publication author.\"\n },\n {\n \"name\": \"publication-year\",\n \"description\": \"Publication year.\"\n },\n {\n \"name\": \"publication-start-year\",\n \"description\": \"Publication start year.\"\n },\n {\n \"name\": \"publication-end-year\",\n \"description\": \"Publication end year.\"\n },\n {\n \"name\": \"total-pages\",\n \"description\": \"Total pages.\"\n },\n {\n \"name\": \"publisher\",\n \"description\": \"Publisher\"\n },\n {\n \"name\": \"isbn\",\n \"description\": \"ISBN\"\n },\n {\n \"name\": \"description\",\n \"description\": \"Publication description.\"\n },\n {\n \"name\": \"purchase-link\",\n \"description\": \"Absolute purchase URI.\"\n },\n {\n \"name\": \"version-id\",\n \"description\": \"Publication version GUID.\"\n },\n {\n \"name\": \"hash\",\n \"description\": \"Publication version hash.\"\n }\n];\n\nexport const TEXT_NODE_DESCRIPTION: string = \"Represents html text. Any set of characters.\\n\\nHTML escaping follows standard rules, but on import the only escaped characters are \\n`<` (`<`), `>` (`>`) and `&` (`&`).\";\n","// Manually-maintained nesting/cardinality rules that are impractical to scrape\n// reliably from docs/*.md prose. Used by the completion and diagnostics\n// providers alongside the generated TAGS/ENUMS in src/generated/schema.ts.\n\nimport { ENUMS, META_FIELDS, TAGS } from '../generated/schema';\n\nexport type NodeCategory = 'container' | 'block' | 'inline';\n\n// Order matters for snippet generation: the first tag of each list is used\n// as the default child when scaffolding a new element.\nexport const CONTAINER_TAGS = ['w-para', 'w-heading', 'w-para-group', 'w-toc'] as const;\nexport const BLOCK_TAGS = ['w-text-block', 'figure', 'w-list', 'table', 'hr'] as const;\nexport const INLINE_TAGS = ['a', 'br', 'w-color', 'w-entity', 'w-format', 'w-lang', 'w-non-egw', 'w-note', 'w-page', 'w-sent'] as const;\n\nexport function categoryOf(tag: string): NodeCategory | undefined {\n if ((CONTAINER_TAGS as readonly string[]).includes(tag)) return 'container';\n if ((BLOCK_TAGS as readonly string[]).includes(tag)) return 'block';\n if ((INLINE_TAGS as readonly string[]).includes(tag)) return 'inline';\n return undefined;\n}\n\n/**\n * A group of sibling children that share the same allowed tags and count.\n * Every element child of a node must match exactly one group of its\n * StructureRule; a child that matches no group is \"not allowed here\".\n */\nexport interface ChildGroup {\n tags: string[];\n min: number;\n /** `null` means unbounded. */\n max: number | null;\n description: string;\n}\n\nexport interface StructureRule {\n children: ChildGroup[];\n /** Whether non-whitespace text nodes are allowed as direct children. */\n allowText?: boolean;\n description: string;\n}\n\nexport const STRUCTURE_RULES: Record<string, StructureRule> = {\n html: {\n children: [\n { tags: ['head'], min: 1, max: 1, description: 'document head' },\n { tags: ['body'], min: 1, max: 1, description: 'document body' },\n ],\n description: 'Must contain exactly one <head> and one <body>.',\n },\n head: {\n children: [\n { tags: ['meta'], min: 0, max: null, description: 'metadata tags' },\n { tags: ['title'], min: 1, max: 1, description: 'publication title' },\n ],\n description: 'Must contain a <title> and one or more <meta> tags (including charset and pubid).',\n },\n body: {\n children: [\n { tags: ['div'], min: 1, max: null, description: 'paragraph divs' },\n ],\n description: 'Must contain one or more <div> elements, each representing a paragraph.',\n },\n div: {\n children: [\n { tags: [...CONTAINER_TAGS, 'w-page'], min: 1, max: 1, description: 'container element or page break' },\n ],\n description: 'Must contain exactly one container element (w-heading, w-para, w-para-group, w-toc) or a page break (w-page).',\n },\n\n // ---- containers --------------------------------------------------\n 'w-heading': {\n children: [\n { tags: ['w-text-block'], min: 1, max: 1, description: 'heading text' },\n ],\n description: 'Must contain a single w-text-block element.',\n },\n 'w-para': {\n children: [\n { tags: [...BLOCK_TAGS], min: 1, max: 1, description: 'block element' },\n ],\n description: 'Must contain a single block element (figure, w-list, w-text-block, table or hr).',\n },\n 'w-para-group': {\n children: [\n { tags: ['w-para'], min: 1, max: null, description: 'paragraphs' },\n ],\n description: 'Must contain one or more w-para elements.',\n },\n 'w-toc': {\n children: [\n { tags: ['w-text-block'], min: 1, max: 1, description: 'TOC text' },\n ],\n description: 'Must contain a single w-text-block element.',\n },\n\n // ---- blocks ---------------------------------------------------------\n figure: {\n children: [\n { tags: ['img'], min: 1, max: 1, description: 'image' },\n { tags: ['figcaption'], min: 0, max: 1, description: 'caption' },\n ],\n description: 'Must contain a single img element and an optional figcaption.',\n },\n img: {\n children: [],\n description: 'Empty element (no children); requires a src attribute.',\n },\n figcaption: {\n children: [\n { tags: ['w-text-block'], min: 0, max: 1, description: 'caption text' },\n ],\n description: 'May contain a single w-text-block.',\n },\n 'w-list': {\n children: [\n { tags: ['w-li'], min: 0, max: null, description: 'list items' },\n ],\n description: 'Contains zero or more w-li elements.',\n },\n 'w-li': {\n children: [\n { tags: [...BLOCK_TAGS], min: 1, max: null, description: 'block elements' },\n ],\n description: 'Must contain one or more block elements.',\n },\n table: {\n children: [\n { tags: ['thead'], min: 0, max: 1, description: 'header section' },\n { tags: ['tbody'], min: 0, max: 1, description: 'body section' },\n ],\n description: 'May contain an optional thead and an optional tbody.',\n },\n thead: {\n children: [\n { tags: ['tr'], min: 1, max: null, description: 'rows' },\n ],\n description: 'Must contain one or more tr elements, if present.',\n },\n tbody: {\n children: [\n { tags: ['tr'], min: 1, max: null, description: 'rows' },\n ],\n description: 'Must contain one or more tr elements, if present.',\n },\n tr: {\n children: [\n { tags: ['td', 'th'], min: 0, max: null, description: 'cells' },\n ],\n description: 'Contains zero or more td/th cells.',\n },\n td: {\n children: [\n { tags: [...BLOCK_TAGS], min: 0, max: null, description: 'block elements' },\n ],\n description: 'Contains zero or more block elements.',\n },\n th: {\n children: [\n { tags: [...BLOCK_TAGS], min: 0, max: null, description: 'block elements' },\n ],\n description: 'Contains zero or more block elements.',\n },\n 'w-text-block': {\n children: [\n { tags: [...INLINE_TAGS], min: 0, max: null, description: 'inline elements' },\n ],\n allowText: true,\n description: 'May contain inline elements and text only.',\n },\n hr: {\n children: [],\n description: 'Empty element (no children).',\n },\n\n // ---- inlines ----------------------------------------------------------\n br: {\n children: [],\n description: 'Empty element (no children).',\n },\n 'w-page': {\n children: [],\n description: 'Empty element (no children); requires a number attribute.',\n },\n a: {\n children: [\n { tags: [...INLINE_TAGS], min: 0, max: null, description: 'inline elements' },\n ],\n allowText: true,\n description: 'With href: a link that may contain inline content. With id: a named anchor that must be empty. Exactly one of href/id is required, not both.',\n },\n 'w-color': {\n children: [\n { tags: [...INLINE_TAGS], min: 0, max: null, description: 'inline elements' },\n ],\n allowText: true,\n description: 'May contain inline elements and text; requires a foreground or background color.',\n },\n 'w-entity': {\n children: [\n { tags: [...INLINE_TAGS], min: 0, max: null, description: 'inline elements' },\n ],\n allowText: true,\n description: 'May contain inline elements and text.',\n },\n 'w-format': {\n children: [\n { tags: [...INLINE_TAGS], min: 0, max: null, description: 'inline elements' },\n ],\n allowText: true,\n description: 'May contain inline elements and text.',\n },\n 'w-lang': {\n children: [\n { tags: [...INLINE_TAGS], min: 0, max: null, description: 'inline elements' },\n ],\n allowText: true,\n description: 'May contain inline elements and text.',\n },\n 'w-non-egw': {\n children: [\n { tags: [...INLINE_TAGS], min: 0, max: null, description: 'inline elements' },\n ],\n allowText: true,\n description: 'May contain inline elements and text.',\n },\n 'w-sent': {\n children: [\n { tags: [...INLINE_TAGS], min: 0, max: null, description: 'inline elements' },\n ],\n allowText: true,\n description: 'May contain inline elements and text.',\n },\n 'w-note': {\n children: [\n { tags: ['w-note-header'], min: 1, max: 1, description: 'note header' },\n { tags: ['w-note-body'], min: 1, max: 1, description: 'note body' },\n ],\n description: 'Must contain exactly one w-note-header and one w-note-body.',\n },\n 'w-note-header': {\n children: [\n { tags: [...INLINE_TAGS], min: 0, max: null, description: 'inline elements' },\n ],\n allowText: true,\n description: 'May contain inline elements and text, usually a single reference to the note body.',\n },\n 'w-note-body': {\n children: [\n { tags: ['w-note-para'], min: 1, max: null, description: 'note paragraphs' },\n ],\n description: 'Must contain one or more w-note-para elements.',\n },\n 'w-note-para': {\n children: [\n { tags: [...BLOCK_TAGS], min: 1, max: null, description: 'block elements' },\n ],\n description: 'Must contain one or more block elements.',\n },\n\n // ---- misc -------------------------------------------------------------\n title: {\n children: [],\n allowText: true,\n description: 'Contains the publication title as text.',\n },\n meta: {\n children: [],\n description: 'Empty element (no children).',\n },\n};\n\n// ----------------------------------------------------------- attributes ---\n\nexport interface AttributeConstraint {\n tag: string;\n attribute: string;\n kind: 'integer-range' | 'integer-min' | 'pattern';\n min?: number;\n max?: number;\n /** Used when `kind === 'pattern'`. Empty values are always allowed. */\n pattern?: RegExp;\n /** Defaults to true for backwards compatibility with optional values. */\n allowEmpty?: boolean;\n message: string;\n}\n\n/** Matches an arabic (`12`) or roman (`iii`, `XIV`) number. */\nexport const ARABIC_OR_ROMAN = /^(?:\\d+|[ivxlcdm]+)$/i;\nexport const COLOR_VALUE = /^#(?:[0-9a-f]{3}|[0-9a-f]{4}|[0-9a-f]{6}|[0-9a-f]{8})$/i;\n\nexport const ATTRIBUTE_CONSTRAINTS: AttributeConstraint[] = [\n { tag: 'w-heading', attribute: 'level', kind: 'integer-range', min: 1, max: 6, message: '`level` must be an integer between 1 and 6.' },\n { tag: 'w-heading', attribute: 'override-chapter-number', kind: 'integer-min', min: 0, message: '`override-chapter-number` must be a non-negative integer.' },\n { tag: 'w-heading', attribute: 'background', kind: 'pattern', pattern: COLOR_VALUE, allowEmpty: false, message: '`background` must be a color in #RGB, #RGBA, #RRGGBB or #RRGGBBAA format.' },\n { tag: 'w-heading', attribute: 'foreground', kind: 'pattern', pattern: COLOR_VALUE, allowEmpty: false, message: '`foreground` must be a color in #RGB, #RGBA, #RRGGBB or #RRGGBBAA format.' },\n { tag: 'w-page', attribute: 'number', kind: 'pattern', pattern: ARABIC_OR_ROMAN, message: '`number` must be an arabic or roman number.' },\n { tag: 'w-para', attribute: 'indent', kind: 'integer-min', min: -4, message: '`indent` must be an integer >= -4.' },\n { tag: 'w-para', attribute: 'background', kind: 'pattern', pattern: COLOR_VALUE, allowEmpty: false, message: '`background` must be a color in #RGB, #RGBA, #RRGGBB or #RRGGBBAA format.' },\n { tag: 'w-para', attribute: 'foreground', kind: 'pattern', pattern: COLOR_VALUE, allowEmpty: false, message: '`foreground` must be a color in #RGB, #RGBA, #RRGGBB or #RRGGBBAA format.' },\n { tag: 'w-color', attribute: 'background', kind: 'pattern', pattern: COLOR_VALUE, allowEmpty: false, message: '`background` must be a color in #RGB, #RGBA, #RRGGBB or #RRGGBBAA format.' },\n { tag: 'w-color', attribute: 'foreground', kind: 'pattern', pattern: COLOR_VALUE, allowEmpty: false, message: '`foreground` must be a color in #RGB, #RGBA, #RRGGBB or #RRGGBBAA format.' },\n { tag: 'w-note-para', attribute: 'indent', kind: 'integer-min', min: 0, message: '`indent` must be an integer >= 0.' },\n { tag: 'td', attribute: 'indent', kind: 'integer-min', min: -4, message: '`indent` must be an integer >= -4.' },\n { tag: 'th', attribute: 'indent', kind: 'integer-min', min: -4, message: '`indent` must be an integer >= -4.' },\n { tag: 'td', attribute: 'colspan', kind: 'integer-min', min: 1, message: '`colspan` must be an integer >= 1.' },\n { tag: 'td', attribute: 'rowspan', kind: 'integer-min', min: 1, message: '`rowspan` must be an integer >= 1.' },\n { tag: 'th', attribute: 'colspan', kind: 'integer-min', min: 1, message: '`colspan` must be an integer >= 1.' },\n { tag: 'th', attribute: 'rowspan', kind: 'integer-min', min: 1, message: '`rowspan` must be an integer >= 1.' },\n { tag: 'hr', attribute: 'background', kind: 'pattern', pattern: COLOR_VALUE, allowEmpty: false, message: '`background` must be a color in #RGB, #RGBA, #RRGGBB or #RRGGBBAA format.' },\n { tag: 'hr', attribute: 'foreground', kind: 'pattern', pattern: COLOR_VALUE, allowEmpty: false, message: '`foreground` must be a color in #RGB, #RGBA, #RRGGBB or #RRGGBBAA format.' },\n { tag: 'div', attribute: 'id', kind: 'integer-range', min: 1, max: 2147483647, pattern: /^\\+?\\d+$/, message: '`id` must be a positive 32-bit integer (1–2147483647), unique within the document.' },\n];\n\n// --------------------------------------------------------- meta content ---\n\nexport interface MetaConstraint {\n /** meta[name=...] this rule applies to. */\n name: string;\n kind: 'digits' | 'isbn';\n message: string;\n}\n\n// Empty `content` is always allowed for these fields.\nexport const META_CONSTRAINTS: MetaConstraint[] = [\n { name: 'pubid', kind: 'digits', message: 'meta[name=\"pubid\"] content must contain only digits.' },\n { name: 'publication-year', kind: 'digits', message: 'meta[name=\"publication-year\"] content must contain only digits.' },\n { name: 'publication-start-year', kind: 'digits', message: 'meta[name=\"publication-start-year\"] content must contain only digits.' },\n { name: 'publication-end-year', kind: 'digits', message: 'meta[name=\"publication-end-year\"] content must contain only digits.' },\n { name: 'total-pages', kind: 'digits', message: 'meta[name=\"total-pages\"] content must contain only digits.' },\n { name: 'isbn', kind: 'isbn', message: 'Invalid ISBN: expected a valid ISBN-10 or ISBN-13 (format and checksum).' },\n];\n\n/** True for an empty string or a string consisting only of arabic digits. */\nexport function isDigitsOnly(value: string): boolean {\n return /^\\d*$/.test(value);\n}\n\n/**\n * Validates an ISBN-10 or ISBN-13 by format and checksum. Hyphens and spaces\n * are ignored. An empty string is considered valid (field simply unset).\n */\nexport function isValidIsbn(value: string): boolean {\n const s = value.replace(/[\\s-]/g, '');\n if (s === '') return true;\n\n if (/^\\d{9}[\\dX]$/i.test(s)) {\n let sum = 0;\n for (let i = 0; i < 9; i++) sum += (10 - i) * Number(s[i]);\n sum += s[9].toUpperCase() === 'X' ? 10 : Number(s[9]);\n return sum % 11 === 0;\n }\n\n if (/^\\d{13}$/.test(s)) {\n let sum = 0;\n for (let i = 0; i < 13; i++) sum += (i % 2 === 0 ? 1 : 3) * Number(s[i]);\n return sum % 10 === 0;\n }\n\n return false;\n}\n\n// ----------------------------------------------------------- href format --\n\nexport interface HrefLinkType {\n id: string;\n label: string;\n regex: RegExp;\n description: string;\n example: string;\n}\n\n// See docs/links.md.\nexport const HREF_LINK_TYPES: HrefLinkType[] = [\n {\n id: 'egw-book',\n label: 'EGW publication link',\n regex: /^egw:\\/\\/book\\/\\d+\\.\\d+(#[A-Za-z0-9_.-]+)?$/,\n description: 'Link to a publication in the EGW corpus, identified by `<pubid>.<id>`, with an optional `#anchor`.',\n example: 'egw://book/1274.27',\n },\n {\n id: 'egw-bible',\n label: 'EGW Bible link',\n regex: /^egw:\\/\\/bible\\/\\d+\\.\\d+(#[A-Za-z0-9_.-]+)?$/,\n description: 'Link to a Bible reference in the EGW corpus, identified by `<pubid>.<id>`.',\n example: 'egw://bible/1965.5',\n },\n {\n id: 'egw-missing',\n label: 'Missing resource link',\n regex: /^egw:\\/\\/missing\\/.+$/,\n description: 'Link to a resource not available in the current context; the part after `egw://missing/` is the link title.',\n example: 'egw://missing/5SDABC#page.140',\n },\n {\n id: 'mailto',\n label: 'Email link',\n regex: /^mailto:[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/,\n description: 'Link to an email address.',\n example: 'mailto:user@host.com',\n },\n {\n id: 'external',\n label: 'External link',\n regex: /^https?:\\/\\/\\S+$/,\n description: 'External link; only the http and https protocols are allowed.',\n example: 'https://example.com',\n },\n];\n\nexport function isValidHref(href: string): boolean {\n return HREF_LINK_TYPES.some((t) => t.regex.test(href));\n}\n\n// ------------------------------------------------------- document rules --\n\nexport const DOCUMENT_RULES = {\n html: {\n requiredAttributes: ['lang'],\n dirEnumRef: 'text-direction',\n defaultDir: 'ltr',\n },\n head: {\n requiredMeta: [\n { name: 'charset', description: 'Document character set; must be `UTF-8`.' },\n { name: 'pubid', description: 'Publication id; required meta tag (meta[name=\"pubid\"]).' },\n ],\n metaTypeName: 'type',\n metaTypeEnumRef: 'publication-type',\n },\n};\n\n// ------------------------------------------------------------- self-check --\n\n/**\n * Verifies that every tag name referenced by the rules above exists in the\n * generated TAGS map, so a docs rename that forgets to update this file is\n * caught at activation time instead of silently breaking completions.\n */\nexport function checkStructureRules(): string[] {\n const warnings: string[] = [];\n\n for (const tag of [...CONTAINER_TAGS, ...BLOCK_TAGS, ...INLINE_TAGS]) {\n if (!TAGS[tag]) warnings.push(`Category list references unknown tag <${tag}>`);\n }\n\n for (const [tag, rule] of Object.entries(STRUCTURE_RULES)) {\n if (!TAGS[tag]) warnings.push(`structureRules has a rule for unknown tag <${tag}>`);\n for (const group of rule.children) {\n for (const childTag of group.tags) {\n if (!TAGS[childTag]) warnings.push(`structureRules[${tag}] references unknown child tag <${childTag}>`);\n }\n }\n }\n\n for (const c of ATTRIBUTE_CONSTRAINTS) {\n const tagSchema = TAGS[c.tag];\n if (!tagSchema) {\n warnings.push(`Attribute constraint references unknown tag <${c.tag}>`);\n continue;\n }\n if (!tagSchema.attributes.some((a) => a.name === c.attribute)) {\n warnings.push(`Attribute constraint references unknown attribute ${c.tag}[${c.attribute}]`);\n }\n }\n\n for (const c of META_CONSTRAINTS) {\n if (!META_FIELDS.some((f) => f.name === c.name)) {\n warnings.push(`Meta constraint references unknown meta field \"${c.name}\"`);\n }\n }\n\n if (!ENUMS[DOCUMENT_RULES.html.dirEnumRef]) {\n warnings.push(`DOCUMENT_RULES.html.dirEnumRef references unknown enum \"${DOCUMENT_RULES.html.dirEnumRef}\"`);\n }\n if (!ENUMS[DOCUMENT_RULES.head.metaTypeEnumRef]) {\n warnings.push(`DOCUMENT_RULES.head.metaTypeEnumRef references unknown enum \"${DOCUMENT_RULES.head.metaTypeEnumRef}\"`);\n }\n\n return warnings;\n}\n"],"mappings":"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S,OAAM,UAAS,OAAM,UAAS,QAAO,UAAS,QAAO,UAAS,QAAO,UAAS,QAAO,UAAS,SAAQ,UAAS,SAAQ,UAAS,MAAK,UAAS,MAAK,UAAS,UAAS,UAAS,UAAS,UAAS,WAAU,UAAS,WAAU,UAAS,WAAU,UAAS,WAAU,UAAS,WAAU,UAAS,WAAU,UAAS,QAAO,gBAAe,SAAQ,UAAS,QAAO,gBAAe,SAAQ,UAAS,UAAS,UAAS,UAAS,gBAAe,UAAS,UAAS,SAAQ,gBAAe,UAAS,UAAS,SAAQ,UAAS,QAAO,UAAS,QAAO,UAAS,SAAQ,UAAS,SAAQ,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,WAAU,UAAS,WAAU,UAAS,SAAQ,UAAS,WAAU,UAAS,QAAO,UAAS,SAAQ,UAAS,UAAS,UAAS,QAAO,UAAS,QAAO,UAAS,SAAQ,UAAS,QAAO,UAAS,OAAM,UAAS,QAAO,UAAS,SAAQ,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,SAAQ,UAAS,UAAS,UAAS,SAAQ,gBAAe,UAAS,UAAS,QAAO,UAAS,SAAQ,UAAS,SAAQ,QAAO,UAAS,QAAO,QAAO,KAAI,UAAS,QAAO,SAAQ,QAAO,OAAM,UAAS,QAAO,QAAO,QAAO,QAAO,QAAO,UAAS,UAAS,QAAO,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,QAAO,QAAO,UAAS,UAAS,UAAS,UAAS,QAAO,QAAO,QAAO,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,aAAe,QAAO,aAAe,QAAO,aAAe,OAAM,aAAe,QAAO,aAAe,OAAM,aAAe,QAAO,QAAO,QAAO,QAAO,UAAS,QAAO,UAAS,QAAO,UAAS,QAAO,UAAS,UAAS,UAAS,UAAS,UAAS,QAAO,SAAQ,QAAO,SAAQ,QAAO,SAAQ,QAAO,SAAQ,QAAO,QAAO,QAAO,QAAO,QAAO,UAAS,QAAO,UAAS,UAAS,SAAQ,UAAS,SAAQ,UAAS,SAAQ,UAAS,SAAQ,QAAO,SAAQ,QAAO,SAAQ,aAAe,QAAO,aAAe,QAAO,aAAe,OAAM,aAAe,QAAO,UAAS,QAAO,aAAe,OAAM,aAAe,OAAM,aAAe,QAAO,aAAe,QAAO,UAAS,OAAM,aAAe,QAAO,UAAS,QAAO,UAAS,UAAS,UAAS,UAAS,UAAS,SAAQ,UAAS,SAAQ,UAAS,UAAS,UAAS,UAAS,UAAS,QAAO,UAAS,QAAO,QAAO,UAAS,QAAO,UAAS,UAAS,UAAS,aAAe,OAAM,UAAS,MAAK,aAAe,QAAO,aAAe,QAAO,aAAe,QAAO,aAAe,OAAM,UAAS,MAAK,aAAe,QAAO,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,QAAO,OAAM,QAAO,OAAM,UAAS,MAAK,UAAS,QAAO,aAAe,OAAM,aAAe,QAAO,UAAS,QAAO,aAAe,OAAM,aAAe,QAAO,QAAO,UAAS,QAAO,UAAS,QAAO,UAAS,QAAO,UAAS,QAAO,SAAQ,QAAO,SAAQ,UAAS,UAAS,UAAS,UAAS,QAAO,QAAO,QAAO,QAAO,UAAS,QAAO,UAAS,QAAO,UAAS,SAAQ,UAAS,SAAQ,UAAS,SAAQ,UAAS,SAAQ,aAAe,OAAM,aAAe,QAAO,aAAe,QAAO,aAAe,OAAM,aAAe,QAAO,UAAS,QAAO,UAAS,SAAQ,UAAS,UAAS,UAAS,UAAS,UAAS,SAAQ,MAAK,SAAQ,UAAS,SAAQ,UAAS,QAAO,UAAS,QAAO,aAAe,QAAO,aAAe,OAAM,aAAe,QAAO,aAAe,QAAO,aAAe,OAAM,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,SAAQ,UAAS,SAAQ,UAAS,QAAO,UAAS,QAAO,UAAS,UAAS,aAAe,OAAM,UAAS,WAAU,aAAe,QAAO,aAAe,QAAO,UAAS,QAAO,UAAS,OAAM,UAAS,QAAO,UAAS,SAAQ,UAAS,SAAQ,UAAS,QAAO,UAAS,UAAS,UAAS,UAAS,aAAe,QAAO,aAAe,OAAM,aAAe,QAAO,UAAS,MAAK,aAAe,QAAO,UAAS,QAAO,UAAS,MAAK,QAAO,UAAS,QAAO,UAAS,QAAO,UAAS,QAAO,UAAS,QAAO,SAAQ,QAAO,SAAQ,QAAO,QAAO,QAAO,QAAO,UAAS,UAAS,UAAS,UAAS,UAAS,QAAO,UAAS,SAAQ,UAAS,SAAQ,UAAS,SAAQ,UAAS,SAAQ,UAAS,SAAQ,UAAS,SAAQ,UAAS,SAAQ,aAAe,QAAO,aAAe,QAAO,aAAe,OAAM,aAAe,QAAO,aAAe,OAAM,aAAe,QAAO,UAAS,SAAQ,UAAS,SAAQ,UAAS,SAAQ,aAAe,QAAO,aAAe,QAAO,aAAe,OAAM,aAAe,QAAO,aAAe,QAAO,aAAe,OAAM,UAAS,UAAS,UAAS,UAAS,aAAe,OAAM,aAAe,QAAO,UAAS,OAAM,aAAe,QAAO,UAAS,QAAO,aAAe,OAAM,aAAe,QAAO,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,aAAe,OAAM,aAAe,QAAO,aAAe,QAAO,aAAe,OAAM,aAAe,QAAO,UAAS,QAAO,aAAe,OAAM,aAAe,QAAO,aAAe,QAAO,UAAS,QAAO,aAAe,QAAO,aAAe,OAAM,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,QAAO,UAAS,QAAO,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,OAAM,UAAS,OAAM,aAAe,QAAO,aAAe,OAAM,UAAS,QAAO,aAAe,QAAO,aAAe,OAAM,aAAe,QAAO,QAAO,QAAO,QAAO,UAAS,QAAO,UAAS,QAAO,UAAS,QAAO,UAAS,QAAO,SAAQ,QAAO,SAAQ,QAAO,QAAO,QAAO,QAAO,UAAS,UAAS,UAAS,UAAS,QAAO,UAAS,QAAO,UAAS,QAAO,UAAS,QAAO,UAAS,UAAS,SAAQ,UAAS,SAAQ,UAAS,SAAQ,UAAS,SAAQ,aAAe,OAAM,aAAe,QAAO,aAAe,QAAO,UAAS,QAAO,aAAe,OAAM,aAAe,QAAO,aAAe,QAAO,aAAe,OAAM,aAAe,QAAO,aAAe,QAAO,aAAe,OAAM,UAAS,QAAO,UAAS,UAAS,aAAe,OAAM,aAAe,QAAO,aAAe,QAAO,UAAS,QAAO,UAAS,MAAK,UAAS,QAAO,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,aAAe,QAAO,aAAe,QAAO,aAAe,OAAM,aAAe,QAAO,aAAe,OAAM,aAAe,QAAO,UAAS,MAAK,UAAS,UAAS,UAAS,UAAS,UAAS,SAAQ,UAAS,SAAQ,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,QAAO,SAAQ,aAAe,OAAM,aAAe,QAAO,aAAe,QAAO,aAAe,QAAO,aAAe,OAAM,aAAe,QAAO,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,SAAQ,UAAS,UAAS,UAAS,UAAS,aAAe,QAAO,aAAe,QAAO,aAAe,OAAM,aAAe,QAAO,aAAe,OAAM,aAAe,QAAO,QAAO,UAAS,QAAO,UAAS,QAAO,UAAS,QAAO,UAAS,UAAS,UAAS,UAAS,UAAS,QAAO,SAAQ,QAAO,SAAQ,UAAS,SAAQ,UAAS,SAAQ,QAAO,QAAO,QAAO,QAAO,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,SAAQ,UAAS,SAAQ,UAAS,SAAQ,UAAS,SAAQ,aAAe,OAAM,aAAe,QAAO,aAAe,QAAO,aAAe,OAAM,aAAe,QAAO,aAAe,QAAO,aAAe,QAAO,aAAe,QAAO,aAAe,OAAM,aAAe,QAAO,aAAe,QAAO,aAAe,OAAM,UAAS,SAAQ,UAAS,SAAQ,aAAe,OAAM,aAAe,QAAO,aAAe,QAAO,aAAe,QAAO,aAAe,OAAM,aAAe,QAAO,aAAe,OAAM,aAAe,QAAO,aAAe,QAAO,aAAe,QAAO,aAAe,OAAM,aAAe,QAAO,QAAO,UAAS,QAAO,UAAS,UAAS,SAAQ,UAAS,SAAQ,QAAO,QAAO,UAAS,QAAO,aAAe,QAAO,aAAe,OAAM,aAAe,QAAO,UAAS,OAAM,UAAS,QAAO,aAAe,QAAO,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,QAAO,UAAS,QAAO,UAAS,SAAQ,QAAO,SAAQ,QAAO,SAAQ,UAAS,SAAQ,UAAS,SAAQ,UAAS,SAAQ,UAAS,QAAO,UAAS,QAAO,UAAS,SAAQ,UAAS,SAAQ,UAAS,SAAQ,UAAS,SAAQ,UAAS,QAAO,UAAS,SAAQ,UAAS,WAAU,UAAS,UAAS,UAAS,UAAS,UAAS,QAAO,UAAS,QAAO,UAAS,OAAM,UAAS,OAAM,UAAS,SAAQ,UAAS,UAAS,UAAS,SAAQ,UAAS,QAAO,UAAS,QAAO,UAAS,SAAQ,UAAS,UAAS,UAAS,SAAQ,UAAS,UAAS,UAAS,UAAS,UAAS,MAAK,QAAO,SAAQ,UAAS,MAAK,UAAS,MAAK,UAAS,MAAK,UAAS,MAAK,UAAS,MAAK,UAAS,WAAU,UAAS,WAAU,UAAS,MAAK,UAAS,OAAM,UAAS,MAAK,UAAS,OAAM,UAAS,QAAO,UAAS,OAAM,UAAS,SAAQ,UAAS,SAAQ,UAAS,UAAS,UAAS,OAAM,UAAS,OAAM,UAAS,QAAO,UAAS,WAAU,UAAS,QAAO,UAAS,OAAM,UAAS,QAAO,UAAS,OAAM,UAAS,OAAM,UAAS,OAAM,UAAS,OAAM,UAAS,OAAM,UAAS,SAAQ,UAAS,OAAM,UAAS,OAAM,UAAS,OAAM,UAAS,OAAM,UAAS,OAAM,UAAS,OAAM,UAAS,OAAM,UAAS,OAAM,UAAS,OAAM,UAAS,QAAO,UAAS,QAAO,UAAS,OAAM,UAAS,OAAM,UAAS,QAAO,UAAS,QAAO,UAAS,QAAO,UAAS,QAAO,UAAS,QAAO,UAAS,QAAO,UAAS,SAAQ,UAAS,SAAQ,UAAS,QAAO,UAAS,QAAO,UAAS,OAAM,UAAS,OAAM,UAAS,QAAO,UAAS,QAAO,UAAS,OAAM,UAAS,OAAM,UAAS,SAAQ,UAAS,SAAQ,UAAS,QAAO,UAAS,QAAO,UAAS,OAAM,UAAS,OAAM,UAAS,UAAS,UAAS,UAAS,UAAS,OAAM,UAAS,OAAM,UAAS,QAAO,UAAS,QAAO,UAAS,OAAM,UAAS,OAAM,UAAS,QAAO,UAAS,QAAO,UAAS,OAAM,UAAS,OAAM,UAAS,OAAM,UAAS,OAAM,UAAS,QAAO,UAAS,QAAO,UAAS,OAAM,UAAS,OAAM,UAAS,OAAM,UAAS,OAAM,UAAS,OAAM,UAAS,OAAM,UAAS,OAAM,UAAS,OAAM,UAAS,OAAM,UAAS,OAAM,UAAS,SAAQ,UAAS,SAAQ,UAAS,OAAM,UAAS,OAAM,UAAS,SAAQ,UAAS,SAAQ,UAAS,OAAM,UAAS,OAAM,UAAS,QAAO,UAAS,QAAO,UAAS,QAAO,UAAS,QAAO,UAAS,QAAO,UAAS,QAAO,UAAS,QAAO,UAAS,QAAO,UAAS,QAAO,UAAS,QAAO,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,OAAM,UAAS,OAAM,UAAS,UAAS,UAAS,UAAS,UAAS,OAAM,UAAS,OAAM,UAAS,QAAO,UAAS,QAAO,UAAS,QAAO,UAAS,QAAO,UAAS,SAAQ,UAAS,QAAO,UAAS,SAAQ,UAAS,SAA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,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,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,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,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,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,IAAI,QAAQ,GAAG,CAAC,IAAI,SAAS,GAAG,CAAC,IAAI,UAAU,GAAG,CAAC,IAAI,SAAS,GAAG,CAAC,KAAK,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,IAAI,SAAS,GAAG,CAAC,GAAG,kBAAkB,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,oBAAoB,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,IAAI,aAAa,GAAG,CAAC,KAAK,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,IAAI,UAAU,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,eAAe,GAAG,CAAC,IAAI,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,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,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,eAAe,CAAC,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,WAAW,CAAC,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,UAAU,CAAC,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,SAAS,CAAC,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,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC,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,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,aAAa,GAAG,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,QAAQ,GAAG,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,iBAAiB,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,EAAE,GAAG,WAAW,GAAG,KAAK,GAAG,UAAU,CAAC,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,UAAU,CAAC,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,EAAE,GAAG,aAAa,GAAG,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,UAAU,GAAG,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,WAAW,GAAG,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,WAAW,GAAG,KAAK,GAAG,UAAU,CAAC,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,YAAY,CAAC,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,EAAE,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,QAAQ,GAAG,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,QAAQ,GAAG,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,QAAQ,GAAG,IAAI,IAAoB,4BAAY,CAAC,CAAC,KAAK,QAAQ,GAAG,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,QAAQ,GAAG,IAAI,IAAoB,4BAAY,CAAC,CAAC,KAAK,QAAQ,GAAG,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,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,qBAAqB,CAAC,GAAG,CAAC,GAAG,eAAe,GAAG,CAAC,GAAG,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,MAAM,GAAG,gBAAgB,CAAC,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,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,WAAW,GAAG,OAAO,GAAG,iBAAiB,CAAC,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,aAAa,GAAG,CAAC,GAAG,EAAE,GAAG,WAAW,GAAG,KAAK,GAAG,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,WAAW,GAAG,KAAK,GAAG,sBAAsB,CAAC,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,EAAE,GAAG,WAAW,GAAG,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,WAAW,GAAG,OAAO,GAAG,WAAW,CAAC,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,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,wBAAwB,GAAG,MAAM,GAAG,YAAY,CAAC,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,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,QAAQ,GAAG,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC,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,aAAa,CAAC,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,EAAE,GAAG,WAAW,GAAG,KAAK,GAAG,WAAW,CAAC,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,WAAW,CAAC,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,uBAAuB,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,sBAAsB,GAAG,KAAK,GAAG,wBAAwB,CAAC,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,aAAa,CAAC,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,CAAC,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,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,cAAc,GAAG,KAAK,GAAG,cAAc,CAAC,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,sBAAsB,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,oBAAoB,GAAG,KAAK,GAAG,4BAA4B,CAAC,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,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,UAAU,GAAG,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,EAAE,GAAG,mBAAmB,GAAG,KAAK,GAAG,qBAAqB,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,KAAK,GAAG,qBAAqB,CAAC,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,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,UAAU,GAAG,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,EAAE,GAAG,WAAW,GAAG,OAAO,GAAG,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,WAAW,GAAG,OAAO,GAAG,kBAAkB,CAAC,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,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,IAAoB,4BAAY,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,GAA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","names":["module","object","key","string","Node","NodeType","d","b","CommentNode","ElementType","require_node","d","b","Node","DataNode","Text","Comment","ProcessingInstruction","NodeWithChildren","CDATA","Document","Element","require_lib","exports","DomHandler","_a","CharCodes","BinTrieFlags","EntityDecoderState","DecodingMode","EntityDecoder","require_lib","EntityLevel","EncodingMode","require_lib","_a","node","DocumentPosition","_a","href","require_lib","exports","module","SelectorType","AttributeAction","isTraversal","parse","require_lib","elem","elem","require_compile","require_lib","VoidTag","d","b","TextNode","d","b","DOMTokenList","HTMLElement","parse","require_parse","parse","module","parse","index","end","WemlNormalizationError","WemlStructureValidationError","wemlContentNormalize","found","require_wemlContentNormalizeV2","module"]}
|