mirror of
https://github.com/aminya/setup-cpp
synced 2024-11-30 21:22:30 +08:00
1 line
645 KiB
XML
1 line
645 KiB
XML
{"version":3,"file":"hdi.dcf7929b.js","names":["c","ignoreUnreadableDirectories","p","force","h","o","Entry","sizeComp","uname","gname","constructor","e","archive","size","mode","uid","gid","atime","mtime","rsrcPathRaw","u","pathResourceFork","pathRaw","rsrcPath","pathNormalize","path","d","Archive","FILE_EXTENSIONS","HAS_NAMED_VOLUMES","mounterMac","i","Mounter","nobrowse","read","_read","n","a","each","r","statToPathType","s","f","l","PathType","FILE","t","createReadStream","m","SYMLINK","fsReadlinkRaw","g","type","readData","readSymlink","D","trigger","fsLstatExists","readRsrc","RESOURCE_FORK","attach","readonly","devices","mountPoint","basename","fsWalk","join","eject","hdiutil","_runAttach","_argsAttach","ejectSync","_createEjects","attachSync","_runAttachSync","_runEject","_argsEject","_runEjectSync","push","_fileArg","spawn","stdout","on","Promise","once","Error","_parseDevices","Buffer","concat","toString","status","error","spawnSync","startsWith","Plist","fromXml","valueCastAs","ValueDict","getValue","castAs","ValueArray","value","ValueString","ValueBoolean","get","devEntry","potentiallyMountable","contentHint","unmappedContentHint","volumeKind","_findRootDevice","length","process","off","XML_DECLARATION","XML_DOCTYPE","xmlDeclaration","xmlDoctype","valueCastTo","castTo","TYPE","declaration","doctype","documentElement","xmlDecode","fromXmlElement","tagName","xmlElementChildElements","childFromXmlElement","toXml","indentRoot","INDENT_ROOT","newlineString","NEWLINE_STRING","filter","Boolean","DOMParser","locator","errorHandler","warning","fatalError","parseFromString","childNodes","test","nodeValue","charCodeAt","Uint8Array","DOMImplementation","XMLSerializer","v","w","b","E","y","N","x","T","S","A","C","hasOwnProperty","_","Object","keys","split","reduce","q","prototype","call","R","console","I","message","captureStackTrace","code","k","L","_node","_refresh","O","_inc","ownerDocument","ev","$$length","V","F","M","ownerElement","j","namespaceURI","XMLNS","_nsMap","prefix","localName","U","P","B","G","X","firstChild","nextSibling","H","$","z","previousSibling","lastChild","parentNode","Y","nodeType","DOCUMENT_TYPE_NODE","K","ELEMENT_NODE","W","TEXT_NODE","J","indexOf","Z","Q","DOCUMENT_FRAGMENT_NODE","ee","DOCUMENT_NODE","COMMENT_NODE","PROCESSING_INSTRUCTION_NODE","removeChild","et","er","en","ea","ei","eo","el","es","eu","ec","ep","eh","ed","ef","lookupPrefix","namespace","eD","em","XML","eg","replace","attributes","isHTML","item","name","nodeName","data","slice","publicId","systemId","internalSubset","target","find","NAMESPACE","ATTRIBUTE_NODE","CDATA_SECTION_NODE","ENTITY_REFERENCE_NODE","ENTITY_NODE","NOTATION_NODE","INDEX_SIZE_ERR","DOMSTRING_SIZE_ERR","HIERARCHY_REQUEST_ERR","WRONG_DOCUMENT_ERR","INVALID_CHARACTER_ERR","NO_DATA_ALLOWED_ERR","NO_MODIFICATION_ALLOWED_ERR","NOT_FOUND_ERR","NOT_SUPPORTED_ERR","INUSE_ATTRIBUTE_ERR","INVALID_STATE_ERR","SYNTAX_ERR","INVALID_MODIFICATION_ERR","NAMESPACE_ERR","INVALID_ACCESS_ERR","Array","getNamedItem","setNamedItem","_ownerElement","setNamedItemNS","getNamedItemNS","removeNamedItem","removeNamedItemNS","hasFeature","createDocument","implementation","appendChild","createElementNS","createDocumentType","insertBefore","replaceChild","hasChildNodes","cloneNode","setAttributeNode","normalize","appendData","isSupported","hasAttributes","lookupNamespaceURI","isDefaultNamespace","importNode","getElementById","getAttribute","getElementsByClassName","every","createElement","createDocumentFragment","createTextNode","createComment","createCDATASection","createProcessingInstruction","createAttribute","specified","createEntityReference","createAttributeNS","hasAttribute","getAttributeNode","setAttribute","removeAttribute","removeAttributeNode","setAttributeNodeNS","removeAttributeNS","getAttributeNodeNS","hasAttributeNS","getAttributeNS","setAttributeNS","getElementsByTagName","getElementsByTagNameNS","substringData","substring","insertData","replaceData","deleteData","splitText","serializeToString","defineProperty","set","freeze","HTML","XML_APPLICATION","XML_TEXT","XML_XHTML_APPLICATION","XML_SVG_IMAGE","SVG","options","cdata","lineNumber","columnNumber","substr","java","lang","String","currentElement","doc","ParseError","XMLReader","domBuilder","xmlns","HTML_ENTITIES","XML_ENTITIES","setDocumentLocator","Function","xml","normalizeLineEndings","parse","startDocument","documentURI","startElement","getURI","getQName","getLocator","endElement","startPrefixMapping","endPrefixMapping","processingInstruction","ignorableWhitespace","characters","apply","arguments","skippedEntity","endDocument","comment","startCDATA","endCDATA","startDTD","warn","amp","apos","gt","lt","quot","Aacute","aacute","Abreve","abreve","ac","acd","acE","Acirc","acirc","acute","Acy","acy","AElig","aelig","af","Afr","afr","Agrave","agrave","alefsym","aleph","Alpha","alpha","Amacr","amacr","amalg","AMP","And","and","andand","andd","andslope","andv","ang","ange","angle","angmsd","angmsdaa","angmsdab","angmsdac","angmsdad","angmsdae","angmsdaf","angmsdag","angmsdah","angrt","angrtvb","angrtvbd","angsph","angst","angzarr","Aogon","aogon","Aopf","aopf","ap","apacir","apE","ape","apid","ApplyFunction","approx","approxeq","Aring","aring","Ascr","ascr","Assign","ast","asymp","asympeq","Atilde","atilde","Auml","auml","awconint","awint","backcong","backepsilon","backprime","backsim","backsimeq","Backslash","Barv","barvee","Barwed","barwed","barwedge","bbrk","bbrktbrk","bcong","Bcy","bcy","bdquo","becaus","Because","because","bemptyv","bepsi","bernou","Bernoullis","Beta","beta","beth","between","Bfr","bfr","bigcap","bigcirc","bigcup","bigodot","bigoplus","bigotimes","bigsqcup","bigstar","bigtriangledown","bigtriangleup","biguplus","bigvee","bigwedge","bkarow","blacklozenge","blacksquare","blacktriangle","blacktriangledown","blacktriangleleft","blacktriangleright","blank","blk12","blk14","blk34","block","bne","bnequiv","bNot","bnot","Bopf","bopf","bot","bottom","bowtie","boxbox","boxDL","boxDl","boxdL","boxdl","boxDR","boxDr","boxdR","boxdr","boxH","boxh","boxHD","boxHd","boxhD","boxhd","boxHU","boxHu","boxhU","boxhu","boxminus","boxplus","boxtimes","boxUL","boxUl","boxuL","boxul","boxUR","boxUr","boxuR","boxur","boxV","boxv","boxVH","boxVh","boxvH","boxvh","boxVL","boxVl","boxvL","boxvl","boxVR","boxVr","boxvR","boxvr","bprime","Breve","breve","brvbar","Bscr","bscr","bsemi","bsim","bsime","bsol","bsolb","bsolhsub","bull","bullet","bump","bumpE","bumpe","Bumpeq","bumpeq","Cacute","cacute","Cap","cap","capand","capbrcup","capcap","capcup","capdot","CapitalDifferentialD","caps","caret","caron","Cayleys","ccaps","Ccaron","ccaron","Ccedil","ccedil","Ccirc","ccirc","Cconint","ccups","ccupssm","Cdot","cdot","cedil","Cedilla","cemptyv","cent","CenterDot","centerdot","Cfr","cfr","CHcy","chcy","check","checkmark","Chi","chi","cir","circ","circeq","circlearrowleft","circlearrowright","circledast","circledcirc","circleddash","CircleDot","circledR","circledS","CircleMinus","CirclePlus","CircleTimes","cirE","cire","cirfnint","cirmid","cirscir","ClockwiseContourIntegral","CloseCurlyDoubleQuote","CloseCurlyQuote","clubs","clubsuit","Colon","colon","Colone","colone","coloneq","comma","commat","comp","compfn","complement","complexes","cong","congdot","Congruent","Conint","conint","ContourIntegral","Copf","copf","coprod","Coproduct","COPY","copy","copysr","CounterClockwiseContourIntegral","crarr","Cross","cross","Cscr","cscr","csub","csube","csup","csupe","ctdot","cudarrl","cudarrr","cuepr","cuesc","cularr","cularrp","Cup","cup","cupbrcap","CupCap","cupcap","cupcup","cupdot","cupor","cups","curarr","curarrm","curlyeqprec","curlyeqsucc","curlyvee","curlywedge","curren","curvearrowleft","curvearrowright","cuvee","cuwed","cwconint","cwint","cylcty","Dagger","dagger","daleth","Darr","dArr","darr","dash","Dashv","dashv","dbkarow","dblac","Dcaron","dcaron","Dcy","dcy","DD","dd","ddagger","ddarr","DDotrahd","ddotseq","deg","Del","Delta","delta","demptyv","dfisht","Dfr","dfr","dHar","dharl","dharr","DiacriticalAcute","DiacriticalDot","DiacriticalDoubleAcute","DiacriticalGrave","DiacriticalTilde","diam","Diamond","diamond","diamondsuit","diams","die","DifferentialD","digamma","disin","div","divide","divideontimes","divonx","DJcy","djcy","dlcorn","dlcrop","dollar","Dopf","dopf","Dot","dot","DotDot","doteq","doteqdot","DotEqual","dotminus","dotplus","dotsquare","doublebarwedge","DoubleContourIntegral","DoubleDot","DoubleDownArrow","DoubleLeftArrow","DoubleLeftRightArrow","DoubleLeftTee","DoubleLongLeftArrow","DoubleLongLeftRightArrow","DoubleLongRightArrow","DoubleRightArrow","DoubleRightTee","DoubleUpArrow","DoubleUpDownArrow","DoubleVerticalBar","DownArrow","Downarrow","downarrow","DownArrowBar","DownArrowUpArrow","DownBreve","downdownarrows","downharpoonleft","downharpoonright","DownLeftRightVector","DownLeftTeeVector","DownLeftVector","DownLeftVectorBar","DownRightTeeVector","DownRightVector","DownRightVectorBar","DownTee","DownTeeArrow","drbkarow","drcorn","drcrop","Dscr","dscr","DScy","dscy","dsol","Dstrok","dstrok","dtdot","dtri","dtrif","duarr","duhar","dwangle","DZcy","dzcy","dzigrarr","Eacute","eacute","easter","Ecaron","ecaron","ecir","Ecirc","ecirc","ecolon","Ecy","ecy","eDDot","Edot","eDot","edot","efDot","Efr","efr","Egrave","egrave","egs","egsdot","Element","elinters","ell","els","elsdot","Emacr","emacr","empty","emptyset","EmptySmallSquare","emptyv","EmptyVerySmallSquare","emsp","emsp13","emsp14","ENG","eng","ensp","Eogon","eogon","Eopf","eopf","epar","eparsl","eplus","epsi","Epsilon","epsilon","epsiv","eqcirc","eqcolon","eqsim","eqslantgtr","eqslantless","Equal","equals","EqualTilde","equest","Equilibrium","equiv","equivDD","eqvparsl","erarr","erDot","Escr","escr","esdot","Esim","esim","Eta","eta","ETH","eth","Euml","euml","euro","excl","exist","Exists","expectation","ExponentialE","exponentiale","fallingdotseq","Fcy","fcy","female","ffilig","fflig","ffllig","Ffr","ffr","filig","FilledSmallSquare","FilledVerySmallSquare","fjlig","flat","fllig","fltns","fnof","Fopf","fopf","ForAll","forall","fork","forkv","Fouriertrf","fpartint","frac12","frac13","frac14","frac15","frac16","frac18","frac23","frac25","frac34","frac35","frac38","frac45","frac56","frac58","frac78","frasl","frown","Fscr","fscr","gacute","Gamma","gamma","Gammad","gammad","gap","Gbreve","gbreve","Gcedil","Gcirc","gcirc","Gcy","gcy","Gdot","gdot","gE","ge","gEl","gel","geq","geqq","geqslant","ges","gescc","gesdot","gesdoto","gesdotol","gesl","gesles","Gfr","gfr","Gg","gg","ggg","gimel","GJcy","gjcy","gl","gla","glE","glj","gnap","gnapprox","gnE","gne","gneq","gneqq","gnsim","Gopf","gopf","grave","GreaterEqual","GreaterEqualLess","GreaterFullEqual","GreaterGreater","GreaterLess","GreaterSlantEqual","GreaterTilde","Gscr","gscr","gsim","gsime","gsiml","Gt","GT","gtcc","gtcir","gtdot","gtlPar","gtquest","gtrapprox","gtrarr","gtrdot","gtreqless","gtreqqless","gtrless","gtrsim","gvertneqq","gvnE","Hacek","hairsp","half","hamilt","HARDcy","hardcy","hArr","harr","harrcir","harrw","Hat","hbar","Hcirc","hcirc","hearts","heartsuit","hellip","hercon","Hfr","hfr","HilbertSpace","hksearow","hkswarow","hoarr","homtht","hookleftarrow","hookrightarrow","Hopf","hopf","horbar","HorizontalLine","Hscr","hscr","hslash","Hstrok","hstrok","HumpDownHump","HumpEqual","hybull","hyphen","Iacute","iacute","ic","Icirc","icirc","Icy","icy","Idot","IEcy","iecy","iexcl","iff","Ifr","ifr","Igrave","igrave","ii","iiiint","iiint","iinfin","iiota","IJlig","ijlig","Im","Imacr","imacr","image","ImaginaryI","imagline","imagpart","imath","imof","imped","Implies","in","incare","infin","infintie","inodot","Int","int","intcal","integers","Integral","intercal","Intersection","intlarhk","intprod","InvisibleComma","InvisibleTimes","IOcy","iocy","Iogon","iogon","Iopf","iopf","Iota","iota","iprod","iquest","Iscr","iscr","isin","isindot","isinE","isins","isinsv","isinv","it","Itilde","itilde","Iukcy","iukcy","Iuml","iuml","Jcirc","jcirc","Jcy","jcy","Jfr","jfr","jmath","Jopf","jopf","Jscr","jscr","Jsercy","jsercy","Jukcy","jukcy","Kappa","kappa","kappav","Kcedil","kcedil","Kcy","kcy","Kfr","kfr","kgreen","KHcy","khcy","KJcy","kjcy","Kopf","kopf","Kscr","kscr","lAarr","Lacute","lacute","laemptyv","lagran","Lambda","lambda","Lang","langd","langle","lap","Laplacetrf","laquo","Larr","lArr","larr","larrb","larrbfs","larrfs","larrhk","larrlp","larrpl","larrsim","larrtl","lat","lAtail","latail","late","lates","lBarr","lbarr","lbbrk","lbrace","lbrack","lbrke","lbrksld","lbrkslu","Lcaron","lcaron","Lcedil","lcedil","lceil","lcub","Lcy","lcy","ldca","ldquo","ldquor","ldrdhar","ldrushar","ldsh","lE","le","LeftAngleBracket","LeftArrow","Leftarrow","leftarrow","LeftArrowBar","LeftArrowRightArrow","leftarrowtail","LeftCeiling","LeftDoubleBracket","LeftDownTeeVector","LeftDownVector","LeftDownVectorBar","LeftFloor","leftharpoondown","leftharpoonup","leftleftarrows","LeftRightArrow","Leftrightarrow","leftrightarrow","leftrightarrows","leftrightharpoons","leftrightsquigarrow","LeftRightVector","LeftTee","LeftTeeArrow","LeftTeeVector","leftthreetimes","LeftTriangle","LeftTriangleBar","LeftTriangleEqual","LeftUpDownVector","LeftUpTeeVector","LeftUpVector","LeftUpVectorBar","LeftVector","LeftVectorBar","lEg","leg","leq","leqq","leqslant","les","lescc","lesdot","lesdoto","lesdotor","lesg","lesges","lessapprox","lessdot","lesseqgtr","lesseqqgtr","LessEqualGreater","LessFullEqual","LessGreater","lessgtr","LessLess","lesssim","LessSlantEqual","LessTilde","lfisht","lfloor","Lfr","lfr","lg","lgE","lHar","lhard","lharu","lharul","lhblk","LJcy","ljcy","Ll","ll","llarr","llcorner","Lleftarrow","llhard","lltri","Lmidot","lmidot","lmoust","lmoustache","lnap","lnapprox","lnE","lne","lneq","lneqq","lnsim","loang","loarr","lobrk","LongLeftArrow","Longleftarrow","longleftarrow","LongLeftRightArrow","Longleftrightarrow","longleftrightarrow","longmapsto","LongRightArrow","Longrightarrow","longrightarrow","looparrowleft","looparrowright","lopar","Lopf","lopf","loplus","lotimes","lowast","lowbar","LowerLeftArrow","LowerRightArrow","loz","lozenge","lozf","lpar","lparlt","lrarr","lrcorner","lrhar","lrhard","lrm","lrtri","lsaquo","Lscr","lscr","Lsh","lsh","lsim","lsime","lsimg","lsqb","lsquo","lsquor","Lstrok","lstrok","Lt","LT","ltcc","ltcir","ltdot","lthree","ltimes","ltlarr","ltquest","ltri","ltrie","ltrif","ltrPar","lurdshar","luruhar","lvertneqq","lvnE","macr","male","malt","maltese","Map","map","mapsto","mapstodown","mapstoleft","mapstoup","marker","mcomma","Mcy","mcy","mdash","mDDot","measuredangle","MediumSpace","Mellintrf","Mfr","mfr","mho","micro","mid","midast","midcir","middot","minus","minusb","minusd","minusdu","MinusPlus","mlcp","mldr","mnplus","models","Mopf","mopf","mp","Mscr","mscr","mstpos","Mu","mu","multimap","mumap","nabla","Nacute","nacute","nang","nap","napE","napid","napos","napprox","natur","natural","naturals","nbsp","nbump","nbumpe","ncap","Ncaron","ncaron","Ncedil","ncedil","ncong","ncongdot","ncup","Ncy","ncy","ndash","ne","nearhk","neArr","nearr","nearrow","nedot","NegativeMediumSpace","NegativeThickSpace","NegativeThinSpace","NegativeVeryThinSpace","nequiv","nesear","nesim","NestedGreaterGreater","NestedLessLess","NewLine","nexist","nexists","Nfr","nfr","ngE","nge","ngeq","ngeqq","ngeqslant","nges","nGg","ngsim","nGt","ngt","ngtr","nGtv","nhArr","nharr","nhpar","ni","nis","nisd","niv","NJcy","njcy","nlArr","nlarr","nldr","nlE","nle","nLeftarrow","nleftarrow","nLeftrightarrow","nleftrightarrow","nleq","nleqq","nleqslant","nles","nless","nLl","nlsim","nLt","nlt","nltri","nltrie","nLtv","nmid","NoBreak","NonBreakingSpace","Nopf","nopf","Not","not","NotCongruent","NotCupCap","NotDoubleVerticalBar","NotElement","NotEqual","NotEqualTilde","NotExists","NotGreater","NotGreaterEqual","NotGreaterFullEqual","NotGreaterGreater","NotGreaterLess","NotGreaterSlantEqual","NotGreaterTilde","NotHumpDownHump","NotHumpEqual","notin","notindot","notinE","notinva","notinvb","notinvc","NotLeftTriangle","NotLeftTriangleBar","NotLeftTriangleEqual","NotLess","NotLessEqual","NotLessGreater","NotLessLess","NotLessSlantEqual","NotLessTilde","NotNestedGreaterGreater","NotNestedLessLess","notni","notniva","notnivb","notnivc","NotPrecedes","NotPrecedesEqual","NotPrecedesSlantEqual","NotReverseElement","NotRightTriangle","NotRightTriangleBar","NotRightTriangleEqual","NotSquareSubset","NotSquareSubsetEqual","NotSquareSuperset","NotSquareSupersetEqual","NotSubset","NotSubsetEqual","NotSucceeds","NotSucceedsEqual","NotSucceedsSlantEqual","NotSucceedsTilde","NotSuperset","NotSupersetEqual","NotTilde","NotTildeEqual","NotTildeFullEqual","NotTildeTilde","NotVerticalBar","npar","nparallel","nparsl","npart","npolint","npr","nprcue","npre","nprec","npreceq","nrArr","nrarr","nrarrc","nrarrw","nRightarrow","nrightarrow","nrtri","nrtrie","nsc","nsccue","nsce","Nscr","nscr","nshortmid","nshortparallel","nsim","nsime","nsimeq","nsmid","nspar","nsqsube","nsqsupe","nsub","nsubE","nsube","nsubset","nsubseteq","nsubseteqq","nsucc","nsucceq","nsup","nsupE","nsupe","nsupset","nsupseteq","nsupseteqq","ntgl","Ntilde","ntilde","ntlg","ntriangleleft","ntrianglelefteq","ntriangleright","ntrianglerighteq","Nu","nu","num","numero","numsp","nvap","nVDash","nVdash","nvDash","nvdash","nvge","nvgt","nvHarr","nvinfin","nvlArr","nvle","nvlt","nvltrie","nvrArr","nvrtrie","nvsim","nwarhk","nwArr","nwarr","nwarrow","nwnear","Oacute","oacute","oast","ocir","Ocirc","ocirc","Ocy","ocy","odash","Odblac","odblac","odiv","odot","odsold","OElig","oelig","ofcir","Ofr","ofr","ogon","Ograve","ograve","ogt","ohbar","ohm","oint","olarr","olcir","olcross","oline","olt","Omacr","omacr","Omega","omega","Omicron","omicron","omid","ominus","Oopf","oopf","opar","OpenCurlyDoubleQuote","OpenCurlyQuote","operp","oplus","Or","or","orarr","ord","order","orderof","ordf","ordm","origof","oror","orslope","orv","oS","Oscr","oscr","Oslash","oslash","osol","Otilde","otilde","Otimes","otimes","otimesas","Ouml","ouml","ovbar","OverBar","OverBrace","OverBracket","OverParenthesis","par","para","parallel","parsim","parsl","part","PartialD","Pcy","pcy","percnt","period","permil","perp","pertenk","Pfr","pfr","Phi","phi","phiv","phmmat","phone","Pi","pi","pitchfork","piv","planck","planckh","plankv","plus","plusacir","plusb","pluscir","plusdo","plusdu","pluse","PlusMinus","plusmn","plussim","plustwo","pm","Poincareplane","pointint","Popf","popf","pound","Pr","pr","prap","prcue","prE","pre","prec","precapprox","preccurlyeq","Precedes","PrecedesEqual","PrecedesSlantEqual","PrecedesTilde","preceq","precnapprox","precneqq","precnsim","precsim","Prime","prime","primes","prnap","prnE","prnsim","prod","Product","profalar","profline","profsurf","prop","Proportion","Proportional","propto","prsim","prurel","Pscr","pscr","Psi","psi","puncsp","Qfr","qfr","qint","Qopf","qopf","qprime","Qscr","qscr","quaternions","quatint","quest","questeq","QUOT","rAarr","race","Racute","racute","radic","raemptyv","Rang","rang","rangd","range","rangle","raquo","Rarr","rArr","rarr","rarrap","rarrb","rarrbfs","rarrc","rarrfs","rarrhk","rarrlp","rarrpl","rarrsim","Rarrtl","rarrtl","rarrw","rAtail","ratail","ratio","rationals","RBarr","rBarr","rbarr","rbbrk","rbrace","rbrack","rbrke","rbrksld","rbrkslu","Rcaron","rcaron","Rcedil","rcedil","rceil","rcub","Rcy","rcy","rdca","rdldhar","rdquo","rdquor","rdsh","Re","real","realine","realpart","reals","rect","REG","reg","ReverseElement","ReverseEquilibrium","ReverseUpEquilibrium","rfisht","rfloor","Rfr","rfr","rHar","rhard","rharu","rharul","Rho","rho","rhov","RightAngleBracket","RightArrow","Rightarrow","rightarrow","RightArrowBar","RightArrowLeftArrow","rightarrowtail","RightCeiling","RightDoubleBracket","RightDownTeeVector","RightDownVector","RightDownVectorBar","RightFloor","rightharpoondown","rightharpoonup","rightleftarrows","rightleftharpoons","rightrightarrows","rightsquigarrow","RightTee","RightTeeArrow","RightTeeVector","rightthreetimes","RightTriangle","RightTriangleBar","RightTriangleEqual","RightUpDownVector","RightUpTeeVector","RightUpVector","RightUpVectorBar","RightVector","RightVectorBar","ring","risingdotseq","rlarr","rlhar","rlm","rmoust","rmoustache","rnmid","roang","roarr","robrk","ropar","Ropf","ropf","roplus","rotimes","RoundImplies","rpar","rpargt","rppolint","rrarr","Rrightarrow","rsaquo","Rscr","rscr","Rsh","rsh","rsqb","rsquo","rsquor","rthree","rtimes","rtri","rtrie","rtrif","rtriltri","RuleDelayed","ruluhar","rx","Sacute","sacute","sbquo","Sc","sc","scap","Scaron","scaron","sccue","scE","sce","Scedil","scedil","Scirc","scirc","scnap","scnE","scnsim","scpolint","scsim","Scy","scy","sdot","sdotb","sdote","searhk","seArr","searr","searrow","sect","semi","seswar","setminus","setmn","sext","Sfr","sfr","sfrown","sharp","SHCHcy","shchcy","SHcy","shcy","ShortDownArrow","ShortLeftArrow","shortmid","shortparallel","ShortRightArrow","ShortUpArrow","shy","Sigma","sigma","sigmaf","sigmav","sim","simdot","sime","simeq","simg","simgE","siml","simlE","simne","simplus","simrarr","slarr","SmallCircle","smallsetminus","smashp","smeparsl","smid","smile","smt","smte","smtes","SOFTcy","softcy","sol","solb","solbar","Sopf","sopf","spades","spadesuit","spar","sqcap","sqcaps","sqcup","sqcups","Sqrt","sqsub","sqsube","sqsubset","sqsubseteq","sqsup","sqsupe","sqsupset","sqsupseteq","squ","Square","square","SquareIntersection","SquareSubset","SquareSubsetEqual","SquareSuperset","SquareSupersetEqual","SquareUnion","squarf","squf","srarr","Sscr","sscr","ssetmn","ssmile","sstarf","Star","star","starf","straightepsilon","straightphi","strns","Sub","sub","subdot","subE","sube","subedot","submult","subnE","subne","subplus","subrarr","Subset","subset","subseteq","subseteqq","SubsetEqual","subsetneq","subsetneqq","subsim","subsub","subsup","succ","succapprox","succcurlyeq","Succeeds","SucceedsEqual","SucceedsSlantEqual","SucceedsTilde","succeq","succnapprox","succneqq","succnsim","succsim","SuchThat","Sum","sum","sung","Sup","sup","sup1","sup2","sup3","supdot","supdsub","supE","supe","supedot","Superset","SupersetEqual","suphsol","suphsub","suplarr","supmult","supnE","supne","supplus","Supset","supset","supseteq","supseteqq","supsetneq","supsetneqq","supsim","supsub","supsup","swarhk","swArr","swarr","swarrow","swnwar","szlig","Tab","Tau","tau","tbrk","Tcaron","tcaron","Tcedil","tcedil","Tcy","tcy","tdot","telrec","Tfr","tfr","there4","Therefore","therefore","Theta","theta","thetasym","thetav","thickapprox","thicksim","ThickSpace","thinsp","ThinSpace","thkap","thksim","THORN","thorn","Tilde","tilde","TildeEqual","TildeFullEqual","TildeTilde","times","timesb","timesbar","timesd","tint","toea","top","topbot","topcir","Topf","topf","topfork","tosa","tprime","TRADE","trade","triangle","triangledown","triangleleft","trianglelefteq","triangleq","triangleright","trianglerighteq","tridot","trie","triminus","TripleDot","triplus","trisb","tritime","trpezium","Tscr","tscr","TScy","tscy","TSHcy","tshcy","Tstrok","tstrok","twixt","twoheadleftarrow","twoheadrightarrow","Uacute","uacute","Uarr","uArr","uarr","Uarrocir","Ubrcy","ubrcy","Ubreve","ubreve","Ucirc","ucirc","Ucy","ucy","udarr","Udblac","udblac","udhar","ufisht","Ufr","ufr","Ugrave","ugrave","uHar","uharl","uharr","uhblk","ulcorn","ulcorner","ulcrop","ultri","Umacr","umacr","uml","UnderBar","UnderBrace","UnderBracket","UnderParenthesis","Union","UnionPlus","Uogon","uogon","Uopf","uopf","UpArrow","Uparrow","uparrow","UpArrowBar","UpArrowDownArrow","UpDownArrow","Updownarrow","updownarrow","UpEquilibrium","upharpoonleft","upharpoonright","uplus","UpperLeftArrow","UpperRightArrow","Upsi","upsi","upsih","Upsilon","upsilon","UpTee","UpTeeArrow","upuparrows","urcorn","urcorner","urcrop","Uring","uring","urtri","Uscr","uscr","utdot","Utilde","utilde","utri","utrif","uuarr","Uuml","uuml","uwangle","vangrt","varepsilon","varkappa","varnothing","varphi","varpi","varpropto","vArr","varr","varrho","varsigma","varsubsetneq","varsubsetneqq","varsupsetneq","varsupsetneqq","vartheta","vartriangleleft","vartriangleright","Vbar","vBar","vBarv","Vcy","vcy","VDash","Vdash","vDash","vdash","Vdashl","Vee","vee","veebar","veeeq","vellip","Verbar","verbar","Vert","vert","VerticalBar","VerticalLine","VerticalSeparator","VerticalTilde","VeryThinSpace","Vfr","vfr","vltri","vnsub","vnsup","Vopf","vopf","vprop","vrtri","Vscr","vscr","vsubnE","vsubne","vsupnE","vsupne","Vvdash","vzigzag","Wcirc","wcirc","wedbar","Wedge","wedge","wedgeq","weierp","Wfr","wfr","Wopf","wopf","wp","wr","wreath","Wscr","wscr","xcap","xcirc","xcup","xdtri","Xfr","xfr","xhArr","xharr","Xi","xi","xlArr","xlarr","xmap","xnis","xodot","Xopf","xopf","xoplus","xotime","xrArr","xrarr","Xscr","xscr","xsqcup","xuplus","xutri","xvee","xwedge","Yacute","yacute","YAcy","yacy","Ycirc","ycirc","Ycy","ycy","yen","Yfr","yfr","YIcy","yicy","Yopf","yopf","Yscr","yscr","YUcy","yucy","Yuml","yuml","Zacute","zacute","Zcaron","zcaron","Zcy","zcy","Zdot","zdot","zeetrf","ZeroWidthSpace","Zeta","zeta","Zfr","zfr","ZHcy","zhcy","zigrarr","Zopf","zopf","Zscr","zscr","zwj","zwnj","qName","uri","closed","currentNSMap","localNSMap","attributeNames","RegExp","source","charAt","parseInt","fromCharCode","exec","index","match","pop","toLowerCase","lastIndex","endDTD","addValue","setTagName","lastIndexOf","offset","Math","max","getLocalName","Value","TAG_NAMES","CHILD_TAG_NAMES","ValueData","ValueInteger","ValueReal","has","delete","clear","assertXmlTagName","xmlElementText","indentString","INDENT_STRING","repeat","replaceAll","popValue","shift","shiftValue","assertNoXmlElementChildNodes","base64Decode","dataColumns","DATA_COLUMNS","base64Encode","Number","isInteger","asBigInt","BigInt","asNumber","promisify","pipeline","_triggering","_triggered","_extracted","_readData","_readRsrc","_readSymlink","hasNamedVolume","hasNamedVolumes","volumeName","volumePath","stream","_beginExtract","_stream","streamToBuffer","extract","_extract","setAttributes","ignorePermissions","ignoreTimes","DIRECTORY","fsLchmod","fsChmod","modePermissionBits","fsLutimes","fsUtimes","_errorExtractPathExists","_errorNoResourceFork","afterReadSetAttributesRemove","_extractFile","_extractResourceFork","_extractDirectory","_extractSymlink","_extractStreamToFile","rm","recursive","mkdir","dirname","writeFile","alloc","createWriteStream","resourceForkAsFile","isFile","isDirectory","afterReadSetAttributes","symlinkAsFile","fsSymlink","_streamFile","_streamResourceFork","_streamDirectory","_streamSymlink","Readable","then","emit","_reading","_afterReadSetAttributes","fileExtensions","resolve","entry","_afterReadSetAttributesTrigger","sort","isSymbolicLink","Writable","write","open","chmod","close","utimes","readlink","symlink","readdir","lstat","reverse","O_WRONLY","O_SYMLINK","constants","promises","finished"],"sources":["../../<anon>","../../node_modules/.pnpm/@shockpkg+archive-files@https+++codeload.github.com+aminya+archive-files+tar.gz+54ec59fad46aca736ac6feb6c7bb526528141b9d/node_modules/@shockpkg/archive-files/esm/archive/hdi.mjs","../../node_modules/.pnpm/@shockpkg+archive-files@https+++codeload.github.com+aminya+archive-files+tar.gz+54ec59fad46aca736ac6feb6c7bb526528141b9d/node_modules/@shockpkg/archive-files/src/archive/hdi.ts","../../node_modules/.pnpm/@shockpkg+hdi-mac@3.1.4/node_modules/@shockpkg/hdi-mac/esm/mounter.mjs","../../node_modules/.pnpm/@shockpkg+hdi-mac@3.1.4/node_modules/@shockpkg/hdi-mac/src/mounter.ts","../../node_modules/.pnpm/@shockpkg+plist-dom@4.0.7/node_modules/@shockpkg/plist-dom/esm/plist.mjs","../../node_modules/.pnpm/@shockpkg+plist-dom@4.0.7/node_modules/@shockpkg/plist-dom/src/plist.ts","../../node_modules/.pnpm/@shockpkg+plist-dom@4.0.7/node_modules/@shockpkg/plist-dom/esm/options.mjs","../../node_modules/.pnpm/@shockpkg+plist-dom@4.0.7/node_modules/@shockpkg/plist-dom/src/options.ts","../../node_modules/.pnpm/@shockpkg+plist-dom@4.0.7/node_modules/@shockpkg/plist-dom/esm/util.mjs","../../node_modules/.pnpm/@shockpkg+plist-dom@4.0.7/node_modules/@shockpkg/plist-dom/src/util.ts","../../node_modules/.pnpm/@xmldom+xmldom@0.8.10/node_modules/@xmldom/xmldom/lib/index.js","../../node_modules/.pnpm/@xmldom+xmldom@0.8.10/node_modules/@xmldom/xmldom/lib/dom.js","../../node_modules/.pnpm/@xmldom+xmldom@0.8.10/node_modules/@xmldom/xmldom/lib/conventions.js","../../node_modules/.pnpm/@xmldom+xmldom@0.8.10/node_modules/@xmldom/xmldom/lib/dom-parser.js","../../node_modules/.pnpm/@xmldom+xmldom@0.8.10/node_modules/@xmldom/xmldom/lib/entities.js","../../node_modules/.pnpm/@xmldom+xmldom@0.8.10/node_modules/@xmldom/xmldom/lib/sax.js","../../node_modules/.pnpm/@shockpkg+plist-dom@4.0.7/node_modules/@shockpkg/plist-dom/esm/value/dict.mjs","../../node_modules/.pnpm/@shockpkg+plist-dom@4.0.7/node_modules/@shockpkg/plist-dom/src/value/dict.ts","../../node_modules/.pnpm/@shockpkg+plist-dom@4.0.7/node_modules/@shockpkg/plist-dom/esm/value.mjs","../../node_modules/.pnpm/@shockpkg+plist-dom@4.0.7/node_modules/@shockpkg/plist-dom/src/value.ts","../../node_modules/.pnpm/@shockpkg+plist-dom@4.0.7/node_modules/@shockpkg/plist-dom/esm/value/array.mjs","../../node_modules/.pnpm/@shockpkg+plist-dom@4.0.7/node_modules/@shockpkg/plist-dom/src/value/array.ts","../../node_modules/.pnpm/@shockpkg+plist-dom@4.0.7/node_modules/@shockpkg/plist-dom/esm/value/boolean.mjs","../../node_modules/.pnpm/@shockpkg+plist-dom@4.0.7/node_modules/@shockpkg/plist-dom/src/value/boolean.ts","../../node_modules/.pnpm/@shockpkg+plist-dom@4.0.7/node_modules/@shockpkg/plist-dom/esm/value/data.mjs","../../node_modules/.pnpm/@shockpkg+plist-dom@4.0.7/node_modules/@shockpkg/plist-dom/src/value/data.ts","../../node_modules/.pnpm/@shockpkg+plist-dom@4.0.7/node_modules/@shockpkg/plist-dom/esm/value/integer.mjs","../../node_modules/.pnpm/@shockpkg+plist-dom@4.0.7/node_modules/@shockpkg/plist-dom/src/value/integer.ts","../../node_modules/.pnpm/@shockpkg+plist-dom@4.0.7/node_modules/@shockpkg/plist-dom/esm/value/real.mjs","../../node_modules/.pnpm/@shockpkg+plist-dom@4.0.7/node_modules/@shockpkg/plist-dom/src/value/real.ts","../../node_modules/.pnpm/@shockpkg+plist-dom@4.0.7/node_modules/@shockpkg/plist-dom/esm/value/string.mjs","../../node_modules/.pnpm/@shockpkg+plist-dom@4.0.7/node_modules/@shockpkg/plist-dom/src/value/string.ts","../../node_modules/.pnpm/@shockpkg+archive-files@https+++codeload.github.com+aminya+archive-files+tar.gz+54ec59fad46aca736ac6feb6c7bb526528141b9d/node_modules/@shockpkg/archive-files/esm/archive.mjs","../../node_modules/.pnpm/@shockpkg+archive-files@https+++codeload.github.com+aminya+archive-files+tar.gz+54ec59fad46aca736ac6feb6c7bb526528141b9d/node_modules/@shockpkg/archive-files/src/archive.ts","../../node_modules/.pnpm/@shockpkg+archive-files@https+++codeload.github.com+aminya+archive-files+tar.gz+54ec59fad46aca736ac6feb6c7bb526528141b9d/node_modules/@shockpkg/archive-files/esm/types.mjs","../../node_modules/.pnpm/@shockpkg+archive-files@https+++codeload.github.com+aminya+archive-files+tar.gz+54ec59fad46aca736ac6feb6c7bb526528141b9d/node_modules/@shockpkg/archive-files/src/types.ts","../../node_modules/.pnpm/@shockpkg+archive-files@https+++codeload.github.com+aminya+archive-files+tar.gz+54ec59fad46aca736ac6feb6c7bb526528141b9d/node_modules/@shockpkg/archive-files/esm/util.mjs","../../node_modules/.pnpm/@shockpkg+archive-files@https+++codeload.github.com+aminya+archive-files+tar.gz+54ec59fad46aca736ac6feb6c7bb526528141b9d/node_modules/@shockpkg/archive-files/src/util.ts","../../src/utils/compat/stream/promises.ts"],"sourcesContent":["var $glY73$nodefs = require(\"node:fs\");\nvar $glY73$nodepath = require(\"node:path\");\nvar $glY73$nodechild_process = require(\"node:child_process\");\nvar $glY73$nodestream = require(\"node:stream\");\nvar $glY73$nodeutil = require(\"node:util\");\nvar $glY73$stream = require(\"stream\");\nvar $glY73$util = require(\"util\");\n\n\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\n\n var $parcel$global = globalThis;\n var parcelRequire = $parcel$global[\"parcelRequire94c2\"];\nvar parcelRegister = parcelRequire.register;\nparcelRegister(\"9IkUc\", function(module, exports) {\n\n$parcel$export(module.exports, \"ArchiveHdi\", () => $566cd7d36a4f3dbf$export$c1aa0fd1ad465eab);\n/* eslint-disable max-classes-per-file */ \n\n\nvar $7qMCy = parcelRequire(\"7qMCy\");\n\nvar $jTAms = parcelRequire(\"jTAms\");\n\nvar $3COFC = parcelRequire(\"3COFC\");\n\nvar $cDIKB = parcelRequire(\"cDIKB\");\nconst $566cd7d36a4f3dbf$var$walkOpts = {\n ignoreUnreadableDirectories: true\n};\nconst $566cd7d36a4f3dbf$var$ejectOptions = {\n force: true\n};\nclass $566cd7d36a4f3dbf$export$6bde309da83df86d extends (0, $jTAms.Entry) {\n /**\n * @inheritdoc\n */ /**\n * @inheritdoc\n */ /**\n * @inheritdoc\n */ sizeComp = null;\n /**\n * @inheritdoc\n */ /**\n * @inheritdoc\n */ /**\n * @inheritdoc\n */ /**\n * @inheritdoc\n */ uname = null;\n /**\n * @inheritdoc\n */ gname = null;\n /**\n * @inheritdoc\n */ /**\n * @inheritdoc\n */ /**\n * EntryHdi constructor.\n *\n * @param info Info object.\n */ constructor(info){\n super(info);\n this.archive = info.archive;\n this.size = info.size;\n this.mode = info.mode;\n this.uid = info.uid;\n this.gid = info.gid;\n this.atime = info.atime;\n this.mtime = info.mtime;\n }\n /**\n * Get the path of resource psuedo-file, raw.\n *\n * @returns Path string.\n */ get rsrcPathRaw() {\n return (0, $cDIKB.pathResourceFork)(this.pathRaw);\n }\n /**\n * Get the path of resource psuedo-file, normalized.\n *\n * @returns Path string.\n */ get rsrcPath() {\n return (0, $cDIKB.pathNormalize)((0, $cDIKB.pathResourceFork)(this.path));\n }\n}\nclass $566cd7d36a4f3dbf$export$c1aa0fd1ad465eab extends (0, $jTAms.Archive) {\n /**\n * @inheritdoc\n */ static FILE_EXTENSIONS = [\n '.dmg',\n '.iso',\n '.cdr'\n ];\n /**\n * @inheritdoc\n */ static HAS_NAMED_VOLUMES = true;\n /**\n * @inheritdoc\n */ Entry = $566cd7d36a4f3dbf$export$6bde309da83df86d;\n /**\n * Mounter, Mac.\n */ mounterMac = new (0, $7qMCy.Mounter)();\n /**\n * Hide mounted disk image from the file explorers.\n */ nobrowse = false;\n /**\n * ArchiveHdi constructor.\n *\n * @param path File path.\n */ constructor(path){\n super(path);\n }\n /**\n * @inheritdoc\n */ async read(itter) {\n await super.read(itter);\n }\n /**\n * @inheritdoc\n */ async _read(itter) {\n const { mounterMac: mounterMac, nobrowse: nobrowse } = this;\n /**\n * Each itterator.\n *\n * @param pathFull Full path.\n * @param pathRaw Raw path.\n * @param stat Stat object.\n * @returns Recursion hint.\n */ const each = async (pathFull, pathRaw, stat)=>{\n const type = (0, $cDIKB.statToPathType)(stat);\n if (type === null) return true;\n const { size: size, mode: mode, uid: uid, gid: gid, atime: atime, mtime: mtime } = stat;\n const readData = type === (0, $3COFC.PathType).FILE ? // eslint-disable-next-line max-len\n // eslint-disable-next-line @typescript-eslint/require-await\n async ()=>(0, $glY73$nodefs.createReadStream)(pathFull) : null;\n const readSymlink = type === (0, $3COFC.PathType).SYMLINK ? async ()=>(0, $cDIKB.fsReadlinkRaw)(pathFull) : null;\n const entry = new this.Entry({\n archive: this,\n type: type,\n pathRaw: pathRaw,\n size: size,\n mode: mode,\n uid: uid,\n gid: gid,\n atime: atime,\n mtime: mtime,\n readData: readData,\n readSymlink: readSymlink\n });\n const ret = await entry.trigger(itter);\n if (ret === false) return null;\n if (ret === null) return false;\n if (type === (0, $3COFC.PathType).FILE) {\n const rsrcPathFull = (0, $cDIKB.pathResourceFork)(pathFull);\n const rsrcStat = await (0, $cDIKB.fsLstatExists)(rsrcPathFull);\n if (rsrcStat) {\n const sizeRsrc = rsrcStat.size;\n /**\n * Read RSRC.\n *\n * @returns Read stream.\n */ // eslint-disable-next-line @typescript-eslint/require-await\n const readRsrc = async ()=>(0, $glY73$nodefs.createReadStream)(rsrcPathFull);\n const entryRsrc = new this.Entry({\n archive: this,\n type: (0, $3COFC.PathType).RESOURCE_FORK,\n pathRaw: pathRaw,\n size: sizeRsrc,\n mode: mode,\n uid: uid,\n gid: gid,\n atime: atime,\n mtime: mtime,\n readRsrc: readRsrc\n });\n const ret = await entryRsrc.trigger(itter);\n if (ret === false) return null;\n if (ret === null) return false;\n }\n }\n return true;\n };\n // Using auto-eject on normal exit option.\n const info = await mounterMac.attach(this.path, {\n nobrowse: nobrowse,\n readonly: true\n }, $566cd7d36a4f3dbf$var$ejectOptions);\n // Eject device when done.\n try {\n for (const device of info.devices){\n const { mountPoint: mountPoint } = device;\n if (!mountPoint) continue;\n const volumeName = (0, $glY73$nodepath.basename)(mountPoint);\n // eslint-disable-next-line no-await-in-loop\n await (0, $cDIKB.fsWalk)(mountPoint, async (pathRel, stat)=>{\n const pathFull = (0, $glY73$nodepath.join)(mountPoint, pathRel);\n const pathRaw = (0, $glY73$nodepath.join)(volumeName, pathRel);\n return each(pathFull, pathRaw, stat);\n }, $566cd7d36a4f3dbf$var$walkOpts);\n }\n } finally{\n await info.eject($566cd7d36a4f3dbf$var$ejectOptions);\n }\n }\n}\n\n});\nparcelRegister(\"7qMCy\", function(module, exports) {\n\n$parcel$export(module.exports, \"Mounter\", () => $8ad3490cb8139b3a$export$2109cd350bcf6eda);\n\n\nvar $fymyz = parcelRequire(\"fymyz\");\nvar $dn8IV = parcelRequire(\"dn8IV\");\nvar $lIVux = parcelRequire(\"lIVux\");\nvar $a5KUe = parcelRequire(\"a5KUe\");\nvar $3xNaJ = parcelRequire(\"3xNaJ\");\nclass $8ad3490cb8139b3a$export$2109cd350bcf6eda {\n /**\n * The path to hdiutil.\n */ /**\n * Mounter constructor.\n *\n * @param options Options object.\n */ constructor(options = null){\n this.hdiutil = (options ? options.hdiutil : null) || 'hdiutil';\n }\n /**\n * Attach a disk image.\n *\n * @param file Path to disk image.\n * @param options Options object.\n * @param ejectOnExit Eject on exit options, or null.\n * @returns Info object.\n */ async attach(file, options = null, ejectOnExit = null) {\n const devices = await this._runAttach(this._argsAttach(file, options));\n const { eject: eject, ejectSync: ejectSync } = this._createEjects(devices);\n return {\n devices: devices,\n eject: eject,\n ejectSync: ejectSync\n };\n }\n /**\n * Attach a disk image.\n *\n * @param file Path to disk image.\n * @param options Options object.\n * @param ejectOnExit Eject on exit options, or null.\n * @returns Info object.\n */ attachSync(file, options = null, ejectOnExit = null) {\n // eslint-disable-next-line no-sync\n const devices = this._runAttachSync(this._argsAttach(file, options));\n const { eject: eject, ejectSync: ejectSync } = this._createEjects(devices);\n return {\n devices: devices,\n eject: eject,\n ejectSync: ejectSync\n };\n }\n /**\n * Eject a disk image.\n *\n * @param file Path to device file or volume mount point.\n * @param options Options object.\n */ async eject(file, options = null) {\n await this._runEject(this._argsEject(file, options));\n }\n /**\n * Eject a disk image.\n *\n * @param file Path to device file or volume mount point.\n * @param options Options object.\n */ ejectSync(file, options = null) {\n // eslint-disable-next-line no-sync\n this._runEjectSync(this._argsEject(file, options));\n }\n /**\n * Create args for attach.\n *\n * @param file Path to disk image.\n * @param options Options object.\n * @returns Argument list.\n */ _argsAttach(file, options = null) {\n const args = [\n 'attach',\n '-plist'\n ];\n if (options) {\n if (options.readonly) args.push('-readonly');\n if (options.nobrowse) args.push('-nobrowse');\n }\n args.push(this._fileArg(file));\n return args;\n }\n /**\n * Create args for eject.\n *\n * @param file Path to device file or volume mount point.\n * @param options Options object.\n * @returns Argument list.\n */ _argsEject(file, options = null) {\n const args = [\n 'eject'\n ];\n if (options && options.force) args.push('-force');\n args.push(this._fileArg(file));\n return args;\n }\n /**\n * Run hdiutil attach command, returning the devices list on success.\n *\n * @param args CLI args.\n * @returns Devices list.\n */ async _runAttach(args) {\n const stdouts = [];\n const proc = (0, $glY73$nodechild_process.spawn)(this.hdiutil, args);\n proc.stdout.on('data', (data)=>{\n stdouts.push(data);\n });\n const code = await new Promise((resolve, reject)=>{\n proc.once('exit', resolve);\n proc.once('error', reject);\n });\n if (code) throw new Error(`Attach failed: hdiutil exit code: ${code}`);\n return this._parseDevices(Buffer.concat(stdouts).toString());\n }\n /**\n * Run hdiutil attach command, returning the devices list on success.\n *\n * @param args CLI args.\n * @returns Devices list.\n */ _runAttachSync(args) {\n const { status: status, error: error, stdout: stdout } = (0, $glY73$nodechild_process.spawnSync)(this.hdiutil, args);\n if (error) throw error;\n if (status) throw new Error(`Attach failed: hdiutil exit code: ${status}`);\n return this._parseDevices(stdout.toString());\n }\n /**\n * Run hdiutil eject command.\n *\n * @param args CLI args.\n */ async _runEject(args) {\n const proc = (0, $glY73$nodechild_process.spawn)(this.hdiutil, args);\n const status = await new Promise((resolve, reject)=>{\n proc.once('exit', resolve);\n proc.once('error', reject);\n });\n if (status) throw new Error(`Eject failed: hdiutil exit code: ${status}`);\n }\n /**\n * Run hdiutil eject command.\n *\n * @param args CLI args.\n */ _runEjectSync(args) {\n const { status: status, error: error } = (0, $glY73$nodechild_process.spawnSync)(this.hdiutil, args);\n if (error) throw error;\n if (status) throw new Error(`Eject failed: hdiutil exit code: ${status}`);\n }\n /**\n * Create file argument from file path.\n *\n * @param file File path.\n * @returns A path for use as argument.\n */ _fileArg(file) {\n // Make sure it will not be recognized as option argument.\n return file.startsWith('-') ? `./${file}` : file;\n }\n /**\n * Parse devices plist into devices list.\n *\n * @param xml XML plist.\n * @returns Devices list.\n */ _parseDevices(xml) {\n const plist = new (0, $fymyz.Plist)();\n plist.fromXml(xml);\n const systemEntities = plist.valueCastAs((0, $a5KUe.ValueDict)).getValue('system-entities').castAs((0, $dn8IV.ValueArray));\n const r = [];\n for (const value of systemEntities.value){\n const dict = value.castAs((0, $a5KUe.ValueDict));\n const devEntry = dict.getValue('dev-entry').castAs((0, $3xNaJ.ValueString)).value;\n const potentiallyMountable = dict.getValue('potentially-mountable').castAs((0, $lIVux.ValueBoolean)).value;\n const contentHint = dict.get('content-hint');\n const unmappedContentHint = dict.get('unmapped-content-hint');\n const volumeKind = dict.get('volume-kind');\n const mountPoint = dict.get('mount-point');\n const device = {\n devEntry: devEntry,\n potentiallyMountable: potentiallyMountable\n };\n if (contentHint) device.contentHint = contentHint.castAs((0, $3xNaJ.ValueString)).value;\n if (unmappedContentHint) device.unmappedContentHint = unmappedContentHint.castAs((0, $3xNaJ.ValueString)).value;\n if (volumeKind) device.volumeKind = volumeKind.castAs((0, $3xNaJ.ValueString)).value;\n if (mountPoint) device.mountPoint = mountPoint.castAs((0, $3xNaJ.ValueString)).value;\n r.push(device);\n }\n return r;\n }\n /**\n * Find the root device, null on empty list.\n *\n * @param devices Device list.\n * @returns Root device or null if an empty list.\n */ _findRootDevice(devices) {\n let r = null;\n for (const device of devices)if (r === null || r.devEntry.length > device.devEntry.length) r = device;\n return r;\n }\n /**\n * Create ejects callback from a list of devices.\n *\n * @param devices Device list.\n * @param ejectOnExit Eject on exit options, or null.\n * @returns Callback function.\n */ _createEjects(devices, ejectOnExit = null) {\n var _this__findRootDevice;\n // Find the root device, to use to eject (none possible in theory).\n let devEntry = (_this__findRootDevice = this._findRootDevice(devices)) === null || _this__findRootDevice === void 0 ? void 0 : _this__findRootDevice.devEntry;\n let shutdown = null;\n const info = {\n /**\n * The eject callback function.\n *\n * @param options Eject options.\n */ eject: async (options = null)=>{\n if (devEntry) {\n await this.eject(devEntry, options);\n devEntry = '';\n if (shutdown) process.off('exit', shutdown);\n }\n },\n /**\n * The eject callback function.\n *\n * @param options Eject options.\n */ ejectSync: (options = null)=>{\n if (devEntry) {\n // eslint-disable-next-line no-sync\n this.ejectSync(devEntry, options);\n devEntry = '';\n if (shutdown) process.off('exit', shutdown);\n }\n }\n };\n if (ejectOnExit) {\n /**\n * Attempt to auto-eject on normal shutdown.\n * Does not catch signals (no clean way in a library).\n * Users can explicitly call process.exit() on signals to use this.\n */ shutdown = ()=>{\n // eslint-disable-next-line no-sync\n info.ejectSync(ejectOnExit);\n };\n process.once('exit', shutdown);\n }\n return info;\n }\n}\n\n});\nparcelRegister(\"fymyz\", function(module, exports) {\n\n$parcel$export(module.exports, \"Plist\", () => $ad782c8d8d9ed926$export$2a65c73fe54050b8);\n\nvar $1koBx = parcelRequire(\"1koBx\");\n\nvar $k8bqh = parcelRequire(\"k8bqh\");\n\nvar $a5KUe = parcelRequire(\"a5KUe\");\nconst $ad782c8d8d9ed926$var$xmlDeclaration = '<?xml version=\"1.0\" encoding=\"UTF-8\"?>';\nconst $ad782c8d8d9ed926$var$xmlDoctype = '<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">';\nclass $ad782c8d8d9ed926$export$2a65c73fe54050b8 {\n /**\n * Default XML declaration.\n */ static XML_DECLARATION = $ad782c8d8d9ed926$var$xmlDeclaration;\n /**\n * Default XML doctype.\n */ static XML_DOCTYPE = $ad782c8d8d9ed926$var$xmlDoctype;\n /**\n * XML declaration.\n */ xmlDeclaration = $ad782c8d8d9ed926$var$xmlDeclaration;\n /**\n * XML doctype.\n */ xmlDoctype = $ad782c8d8d9ed926$var$xmlDoctype;\n /**\n * Value element.\n */ value = null;\n /**\n * Plist constructor.\n *\n * @param value The value.\n */ constructor(value = null){\n this.value = value;\n }\n /**\n * Get value or throw if null.\n *\n * @returns The value.\n */ getValue() {\n const { value: value } = this;\n if (!value) throw new Error('Value is null');\n return value;\n }\n /**\n * Cast to specific type or null.\n *\n * @param Type Type constructor.\n * @returns The object or null.\n */ valueCastTo(Type) {\n const { value: value } = this;\n return value ? value.castTo(Type) : null;\n }\n /**\n * Cast to specific type or throw.\n *\n * @param Type Type constructor.\n * @returns The object.\n */ valueCastAs(Type) {\n const casted = this.valueCastTo(Type);\n if (!casted) throw new Error(`Cannot cast value to type '${Type.TYPE}'`);\n return casted;\n }\n /**\n * Decode document from string.\n *\n * @param xml XML string.\n */ fromXml(xml) {\n const { declaration: declaration, doctype: doctype, documentElement: documentElement } = (0, $k8bqh.xmlDecode)(xml);\n this.fromXmlElement(documentElement, declaration, doctype);\n }\n /**\n * Decode document from element.\n *\n * @param element XML element.\n * @param declaration XML declaration.\n * @param doctype XML doctype.\n */ fromXmlElement(element, declaration = null, doctype = null) {\n const { tagName: tagName } = element;\n if (tagName !== 'plist') throw new Error(`Unexpected root plist tag name: ${tagName}`);\n const childElements = (0, $k8bqh.xmlElementChildElements)(element);\n const childElementsL = childElements.length;\n if (childElementsL > 1) throw new Error(`Multiple root plist child tag: ${childElementsL}`);\n this.value = childElementsL ? this.childFromXmlElement(childElements[0]) : null;\n this.xmlDeclaration = declaration || '';\n this.xmlDoctype = doctype || '';\n }\n /**\n * Decode child element from XML element.\n *\n * @param element XML element.\n * @returns Value element.\n */ childFromXmlElement(element) {\n const a = new (0, $a5KUe.ValueDict)();\n return a.childFromXmlElement(element);\n }\n /**\n * Encode documents to string.\n *\n * @param options Options object.\n * @returns XML string.\n */ toXml(options = null) {\n var _options_indentRoot;\n const ir = (_options_indentRoot = options === null || options === void 0 ? void 0 : options.indentRoot) !== null && _options_indentRoot !== void 0 ? _options_indentRoot : (0, $1koBx.INDENT_ROOT);\n var _options_newlineString;\n const n = (_options_newlineString = options === null || options === void 0 ? void 0 : options.newlineString) !== null && _options_newlineString !== void 0 ? _options_newlineString : (0, $1koBx.NEWLINE_STRING);\n const v = this.value;\n return [\n ...[\n this.xmlDeclaration,\n this.xmlDoctype\n ].filter(Boolean),\n '<plist version=\"1.0\">',\n ...v ? [\n v.toXml(options, ir ? 1 : 0)\n ] : [],\n '</plist>',\n ''\n ].join(n);\n }\n}\n\n});\nparcelRegister(\"1koBx\", function(module, exports) {\n\n$parcel$export(module.exports, \"INDENT_STRING\", () => $c209c71ae52fc8ec$export$1e80556a1db28146);\n$parcel$export(module.exports, \"NEWLINE_STRING\", () => $c209c71ae52fc8ec$export$ed174037a9bdff2c);\n$parcel$export(module.exports, \"DATA_COLUMNS\", () => $c209c71ae52fc8ec$export$5c824d2ec83ff619);\n$parcel$export(module.exports, \"INDENT_ROOT\", () => $c209c71ae52fc8ec$export$6d03a526e379b09b);\nconst $c209c71ae52fc8ec$export$1e80556a1db28146 = '\\t';\nconst $c209c71ae52fc8ec$export$ed174037a9bdff2c = '\\n';\nconst $c209c71ae52fc8ec$export$5c824d2ec83ff619 = 68;\nconst $c209c71ae52fc8ec$export$6d03a526e379b09b = false;\n\n});\n\nparcelRegister(\"k8bqh\", function(module, exports) {\n\n$parcel$export(module.exports, \"xmlDecode\", () => $978c79bcf6932ca1$export$18944fc6e74f8282);\n$parcel$export(module.exports, \"xmlElementChildElements\", () => $978c79bcf6932ca1$export$ed00f817df6be0c9);\n$parcel$export(module.exports, \"xmlElementText\", () => $978c79bcf6932ca1$export$17118775901adc6b);\n$parcel$export(module.exports, \"assertXmlTagName\", () => $978c79bcf6932ca1$export$1aae4f5e3a8a9756);\n$parcel$export(module.exports, \"assertNoXmlElementChildNodes\", () => $978c79bcf6932ca1$export$6f0da40b035c9e7a);\n$parcel$export(module.exports, \"base64Encode\", () => $978c79bcf6932ca1$export$e510a73ee562749);\n$parcel$export(module.exports, \"base64Decode\", () => $978c79bcf6932ca1$export$c62426fdd000a97e);\n\nvar $d02Lp = parcelRequire(\"d02Lp\");\nconst $978c79bcf6932ca1$var$B6 = 0x3f;\nconst $978c79bcf6932ca1$var$B8 = 0xff;\nconst $978c79bcf6932ca1$var$C64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\nconst $978c79bcf6932ca1$var$C64M = [\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n 62,\n -1,\n -1,\n -1,\n 63,\n 52,\n 53,\n 54,\n 55,\n 56,\n 57,\n 58,\n 59,\n 60,\n 61,\n -1,\n -1,\n -1,\n 64,\n -1,\n -1,\n -1,\n 0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 16,\n 17,\n 18,\n 19,\n 20,\n 21,\n 22,\n 23,\n 24,\n 25,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n 26,\n 27,\n 28,\n 29,\n 30,\n 31,\n 32,\n 33,\n 34,\n 35,\n 36,\n 37,\n 38,\n 39,\n 40,\n 41,\n 42,\n 43,\n 44,\n 45,\n 46,\n 47,\n 48,\n 49,\n 50,\n 51\n];\nfunction $978c79bcf6932ca1$export$18944fc6e74f8282(xml) {\n let declaration = null;\n let doctype = null;\n const errors = [];\n const parser = new (0, $d02Lp.DOMParser)({\n locator: {},\n errorHandler: {\n /**\n * Warning callback.\n *\n * @param e Error string.\n */ warning: (e)=>{\n // Ignore warnings.\n },\n /**\n * Error callback.\n *\n * @param e Error string.\n */ error: (e)=>{\n errors.push(e);\n },\n /**\n * Fatal error callback.\n *\n * @param e Error string.\n */ fatalError: (e)=>{\n errors.push(e);\n }\n }\n });\n const doc = parser.parseFromString(xml, 'text/xml');\n if (errors.length) throw new Error(`XML decode error: ${errors[0]}`);\n const { childNodes: childNodes } = doc;\n const documentElement = doc.documentElement || null;\n for(let i = 0, l = childNodes.length; i < l; i++){\n const childNode = childNodes[i];\n if (childNode === documentElement) break;\n const str = childNode.toString();\n if (/^<\\?xml[^>]*\\?>$/.test(str)) declaration = str;\n if (/^<!DOCTYPE[^>]*>$/.test(str)) doctype = str;\n }\n if (!documentElement) throw new Error('XML decode error: No document element');\n return {\n declaration: declaration,\n doctype: doctype,\n documentElement: documentElement\n };\n}\nfunction $978c79bcf6932ca1$export$ed00f817df6be0c9(element) {\n const { childNodes: childNodes } = element;\n const r = [];\n for(let i = 0, l = childNodes.length; i < l; i++){\n const childNode = childNodes[i];\n if ('tagName' in childNode) {\n r.push(childNode);\n continue;\n }\n const { nodeValue: nodeValue } = childNode;\n if (nodeValue && !/^\\s*$/.test(nodeValue)) throw new Error(`Found text children of: ${element.tagName}`);\n }\n return r;\n}\nfunction $978c79bcf6932ca1$export$17118775901adc6b(element) {\n const { childNodes: childNodes } = element;\n let r = null;\n for(let i = 0, l = childNodes.length; i < l; i++){\n if (i) throw new Error(`Multiple child elements in: ${element.tagName}`);\n const childNode = childNodes[i];\n if (!('tagName' in childNode) && 'data' in childNode && 'nodeValue' in childNode) r = childNode;\n else throw new Error(`Unexpected child element in: ${element.tagName}`);\n }\n return r;\n}\nfunction $978c79bcf6932ca1$export$1aae4f5e3a8a9756(element, tagName) {\n const tn = element.tagName;\n if (tn !== tagName) throw new Error(`Unexpected tagName: ${tagName}`);\n}\nfunction $978c79bcf6932ca1$export$6f0da40b035c9e7a(element) {\n const { childNodes: childNodes } = element;\n if (childNodes.length) throw new Error(`Unexpected child nodes: ${element.tagName}`);\n}\nfunction $978c79bcf6932ca1$export$e510a73ee562749(data) {\n const l = data.length;\n let r = '';\n for(let i = 0; i < l;){\n const a = data[i++];\n const b = i < l ? data[i++] : null;\n const c = i < l ? data[i++] : null;\n // eslint-disable-next-line no-bitwise\n const o = a << 16 | (b || 0) << 8 | (c || 0);\n r += // eslint-disable-next-line no-bitwise\n $978c79bcf6932ca1$var$C64[o >> 18] + // eslint-disable-next-line no-bitwise\n $978c79bcf6932ca1$var$C64[o >> 12 & $978c79bcf6932ca1$var$B6] + // eslint-disable-next-line no-bitwise\n $978c79bcf6932ca1$var$C64[b === null ? 64 : o >> 6 & $978c79bcf6932ca1$var$B6] + // eslint-disable-next-line no-bitwise\n $978c79bcf6932ca1$var$C64[c === null ? 64 : o & $978c79bcf6932ca1$var$B6];\n }\n return r;\n}\nfunction $978c79bcf6932ca1$export$c62426fdd000a97e(base64) {\n const l = base64.length;\n const r = [];\n OUTER: for(let a, b, c, d, m, z, i = 0; i < l;){\n for(;;){\n // eslint-disable-next-line unicorn/prefer-code-point\n if ((m = $978c79bcf6932ca1$var$C64M[base64.charCodeAt(i++)]) >= 0) {\n a = m;\n break;\n }\n if (i >= l) break OUTER;\n }\n for(;;){\n // eslint-disable-next-line unicorn/prefer-code-point\n if ((m = $978c79bcf6932ca1$var$C64M[base64.charCodeAt(i++)]) >= 0) {\n b = m;\n break;\n }\n if (i >= l) break OUTER;\n }\n for(;;){\n // eslint-disable-next-line unicorn/prefer-code-point\n if ((m = $978c79bcf6932ca1$var$C64M[base64.charCodeAt(i++)]) >= 0) {\n c = m;\n break;\n }\n if (i >= l) break OUTER;\n }\n for(;;){\n // eslint-disable-next-line unicorn/prefer-code-point\n if ((m = $978c79bcf6932ca1$var$C64M[base64.charCodeAt(i++)]) >= 0) {\n d = m;\n break;\n }\n if (i >= l) break OUTER;\n }\n // eslint-disable-next-line no-bitwise\n z = (a & $978c79bcf6932ca1$var$B6) << 18 | (b & $978c79bcf6932ca1$var$B6) << 12 | (c & $978c79bcf6932ca1$var$B6) << 6 | d & $978c79bcf6932ca1$var$B6;\n // eslint-disable-next-line default-case, no-nested-ternary\n switch(c > $978c79bcf6932ca1$var$B6 ? d > $978c79bcf6932ca1$var$B6 ? 2 : 0 : d > $978c79bcf6932ca1$var$B6 ? 1 : 0){\n case 0:\n // eslint-disable-next-line no-bitwise\n r.push(z >> 16 & $978c79bcf6932ca1$var$B8, z >> 8 & $978c79bcf6932ca1$var$B8, z & $978c79bcf6932ca1$var$B8);\n break;\n case 1:\n // eslint-disable-next-line no-bitwise\n r.push(z >> 16 & $978c79bcf6932ca1$var$B8, z >> 8 & $978c79bcf6932ca1$var$B8);\n break;\n case 2:\n // eslint-disable-next-line no-bitwise\n r.push(z >> 16 & $978c79bcf6932ca1$var$B8);\n break;\n }\n }\n return new Uint8Array(r);\n}\n\n});\nparcelRegister(\"d02Lp\", function(module, exports) {\n\n$parcel$export(module.exports, \"DOMParser\", () => $976d6b3ca2cc7972$export$1059c6e7d2ce5669, (v) => $976d6b3ca2cc7972$export$1059c6e7d2ce5669 = v);\nvar $976d6b3ca2cc7972$export$455426655eab1d48;\nvar $976d6b3ca2cc7972$export$64f0bed4ae6f0f24;\nvar $976d6b3ca2cc7972$export$1059c6e7d2ce5669;\n\nvar $g4mEx = parcelRequire(\"g4mEx\");\n$976d6b3ca2cc7972$export$455426655eab1d48 = $g4mEx.DOMImplementation;\n$976d6b3ca2cc7972$export$64f0bed4ae6f0f24 = $g4mEx.XMLSerializer;\n\n$976d6b3ca2cc7972$export$1059c6e7d2ce5669 = (parcelRequire(\"e1wOM\")).DOMParser;\n\n});\nparcelRegister(\"g4mEx\", function(module, exports) {\n\n$parcel$export(module.exports, \"DOMImplementation\", () => $bb2e977174592952$export$455426655eab1d48, (v) => $bb2e977174592952$export$455426655eab1d48 = v);\n$parcel$export(module.exports, \"XMLSerializer\", () => $bb2e977174592952$export$64f0bed4ae6f0f24, (v) => $bb2e977174592952$export$64f0bed4ae6f0f24 = v);\n//if(typeof require == 'function'){\nvar $bb2e977174592952$export$d1d99cf900472499;\nvar $bb2e977174592952$export$fe58bcf938607f6a;\nvar $bb2e977174592952$export$455426655eab1d48;\nvar $bb2e977174592952$export$db77ccec0bb4ccac;\nvar $bb2e977174592952$export$85c928794f8d04d4;\nvar $bb2e977174592952$export$79b41aa5d56abdff;\nvar $bb2e977174592952$export$64f0bed4ae6f0f24;\n\nvar $1lH7b = parcelRequire(\"1lH7b\");\nvar $bb2e977174592952$var$find = $1lH7b.find;\nvar $bb2e977174592952$var$NAMESPACE = $1lH7b.NAMESPACE;\n/**\n * A prerequisite for `[].filter`, to drop elements that are empty\n * @param {string} input\n * @returns {boolean}\n */ function $bb2e977174592952$var$notEmptyString(input) {\n return input !== '';\n}\n/**\n * @see https://infra.spec.whatwg.org/#split-on-ascii-whitespace\n * @see https://infra.spec.whatwg.org/#ascii-whitespace\n *\n * @param {string} input\n * @returns {string[]} (can be empty)\n */ function $bb2e977174592952$var$splitOnASCIIWhitespace(input) {\n // U+0009 TAB, U+000A LF, U+000C FF, U+000D CR, U+0020 SPACE\n return input ? input.split(/[\\t\\n\\f\\r ]+/).filter($bb2e977174592952$var$notEmptyString) : [];\n}\n/**\n * Adds element as a key to current if it is not already present.\n *\n * @param {Record<string, boolean | undefined>} current\n * @param {string} element\n * @returns {Record<string, boolean | undefined>}\n */ function $bb2e977174592952$var$orderedSetReducer(current, element) {\n if (!current.hasOwnProperty(element)) current[element] = true;\n return current;\n}\n/**\n * @see https://infra.spec.whatwg.org/#ordered-set\n * @param {string} input\n * @returns {string[]}\n */ function $bb2e977174592952$var$toOrderedSet(input) {\n if (!input) return [];\n var list = $bb2e977174592952$var$splitOnASCIIWhitespace(input);\n return Object.keys(list.reduce($bb2e977174592952$var$orderedSetReducer, {}));\n}\n/**\n * Uses `list.indexOf` to implement something like `Array.prototype.includes`,\n * which we can not rely on being available.\n *\n * @param {any[]} list\n * @returns {function(any): boolean}\n */ function $bb2e977174592952$var$arrayIncludes(list) {\n return function(element) {\n return list && list.indexOf(element) !== -1;\n };\n}\nfunction $bb2e977174592952$var$copy(src, dest) {\n for(var p in src)if (Object.prototype.hasOwnProperty.call(src, p)) dest[p] = src[p];\n}\n/**\n^\\w+\\.prototype\\.([_\\w]+)\\s*=\\s*((?:.*\\{\\s*?[\\r\\n][\\s\\S]*?^})|\\S.*?(?=[;\\r\\n]));?\n^\\w+\\.prototype\\.([_\\w]+)\\s*=\\s*(\\S.*?(?=[;\\r\\n]));?\n */ function $bb2e977174592952$var$_extends(Class, Super) {\n var pt = Class.prototype;\n if (!(pt instanceof Super)) {\n function t() {}\n t.prototype = Super.prototype;\n t = new t();\n $bb2e977174592952$var$copy(pt, t);\n Class.prototype = pt = t;\n }\n if (pt.constructor != Class) {\n if (typeof Class != 'function') console.error(\"unknown Class:\" + Class);\n pt.constructor = Class;\n }\n}\n// Node Types\nvar $bb2e977174592952$var$NodeType = {};\nvar $bb2e977174592952$var$ELEMENT_NODE = $bb2e977174592952$var$NodeType.ELEMENT_NODE = 1;\nvar $bb2e977174592952$var$ATTRIBUTE_NODE = $bb2e977174592952$var$NodeType.ATTRIBUTE_NODE = 2;\nvar $bb2e977174592952$var$TEXT_NODE = $bb2e977174592952$var$NodeType.TEXT_NODE = 3;\nvar $bb2e977174592952$var$CDATA_SECTION_NODE = $bb2e977174592952$var$NodeType.CDATA_SECTION_NODE = 4;\nvar $bb2e977174592952$var$ENTITY_REFERENCE_NODE = $bb2e977174592952$var$NodeType.ENTITY_REFERENCE_NODE = 5;\nvar $bb2e977174592952$var$ENTITY_NODE = $bb2e977174592952$var$NodeType.ENTITY_NODE = 6;\nvar $bb2e977174592952$var$PROCESSING_INSTRUCTION_NODE = $bb2e977174592952$var$NodeType.PROCESSING_INSTRUCTION_NODE = 7;\nvar $bb2e977174592952$var$COMMENT_NODE = $bb2e977174592952$var$NodeType.COMMENT_NODE = 8;\nvar $bb2e977174592952$var$DOCUMENT_NODE = $bb2e977174592952$var$NodeType.DOCUMENT_NODE = 9;\nvar $bb2e977174592952$var$DOCUMENT_TYPE_NODE = $bb2e977174592952$var$NodeType.DOCUMENT_TYPE_NODE = 10;\nvar $bb2e977174592952$var$DOCUMENT_FRAGMENT_NODE = $bb2e977174592952$var$NodeType.DOCUMENT_FRAGMENT_NODE = 11;\nvar $bb2e977174592952$var$NOTATION_NODE = $bb2e977174592952$var$NodeType.NOTATION_NODE = 12;\n// ExceptionCode\nvar $bb2e977174592952$var$ExceptionCode = {};\nvar $bb2e977174592952$var$ExceptionMessage = {};\nvar $bb2e977174592952$var$INDEX_SIZE_ERR = $bb2e977174592952$var$ExceptionCode.INDEX_SIZE_ERR = ($bb2e977174592952$var$ExceptionMessage[1] = \"Index size error\", 1);\nvar $bb2e977174592952$var$DOMSTRING_SIZE_ERR = $bb2e977174592952$var$ExceptionCode.DOMSTRING_SIZE_ERR = ($bb2e977174592952$var$ExceptionMessage[2] = \"DOMString size error\", 2);\nvar $bb2e977174592952$var$HIERARCHY_REQUEST_ERR = $bb2e977174592952$var$ExceptionCode.HIERARCHY_REQUEST_ERR = ($bb2e977174592952$var$ExceptionMessage[3] = \"Hierarchy request error\", 3);\nvar $bb2e977174592952$var$WRONG_DOCUMENT_ERR = $bb2e977174592952$var$ExceptionCode.WRONG_DOCUMENT_ERR = ($bb2e977174592952$var$ExceptionMessage[4] = \"Wrong document\", 4);\nvar $bb2e977174592952$var$INVALID_CHARACTER_ERR = $bb2e977174592952$var$ExceptionCode.INVALID_CHARACTER_ERR = ($bb2e977174592952$var$ExceptionMessage[5] = \"Invalid character\", 5);\nvar $bb2e977174592952$var$NO_DATA_ALLOWED_ERR = $bb2e977174592952$var$ExceptionCode.NO_DATA_ALLOWED_ERR = ($bb2e977174592952$var$ExceptionMessage[6] = \"No data allowed\", 6);\nvar $bb2e977174592952$var$NO_MODIFICATION_ALLOWED_ERR = $bb2e977174592952$var$ExceptionCode.NO_MODIFICATION_ALLOWED_ERR = ($bb2e977174592952$var$ExceptionMessage[7] = \"No modification allowed\", 7);\nvar $bb2e977174592952$var$NOT_FOUND_ERR = $bb2e977174592952$var$ExceptionCode.NOT_FOUND_ERR = ($bb2e977174592952$var$ExceptionMessage[8] = \"Not found\", 8);\nvar $bb2e977174592952$var$NOT_SUPPORTED_ERR = $bb2e977174592952$var$ExceptionCode.NOT_SUPPORTED_ERR = ($bb2e977174592952$var$ExceptionMessage[9] = \"Not supported\", 9);\nvar $bb2e977174592952$var$INUSE_ATTRIBUTE_ERR = $bb2e977174592952$var$ExceptionCode.INUSE_ATTRIBUTE_ERR = ($bb2e977174592952$var$ExceptionMessage[10] = \"Attribute in use\", 10);\n//level2\nvar $bb2e977174592952$var$INVALID_STATE_ERR = $bb2e977174592952$var$ExceptionCode.INVALID_STATE_ERR = ($bb2e977174592952$var$ExceptionMessage[11] = \"Invalid state\", 11);\nvar $bb2e977174592952$var$SYNTAX_ERR = $bb2e977174592952$var$ExceptionCode.SYNTAX_ERR = ($bb2e977174592952$var$ExceptionMessage[12] = \"Syntax error\", 12);\nvar $bb2e977174592952$var$INVALID_MODIFICATION_ERR = $bb2e977174592952$var$ExceptionCode.INVALID_MODIFICATION_ERR = ($bb2e977174592952$var$ExceptionMessage[13] = \"Invalid modification\", 13);\nvar $bb2e977174592952$var$NAMESPACE_ERR = $bb2e977174592952$var$ExceptionCode.NAMESPACE_ERR = ($bb2e977174592952$var$ExceptionMessage[14] = \"Invalid namespace\", 14);\nvar $bb2e977174592952$var$INVALID_ACCESS_ERR = $bb2e977174592952$var$ExceptionCode.INVALID_ACCESS_ERR = ($bb2e977174592952$var$ExceptionMessage[15] = \"Invalid access\", 15);\n/**\n * DOM Level 2\n * Object DOMException\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/ecma-script-binding.html\n * @see http://www.w3.org/TR/REC-DOM-Level-1/ecma-script-language-binding.html\n */ function $bb2e977174592952$var$DOMException(code, message) {\n if (message instanceof Error) var error = message;\n else {\n error = this;\n Error.call(this, $bb2e977174592952$var$ExceptionMessage[code]);\n this.message = $bb2e977174592952$var$ExceptionMessage[code];\n if (Error.captureStackTrace) Error.captureStackTrace(this, $bb2e977174592952$var$DOMException);\n }\n error.code = code;\n if (message) this.message = this.message + \": \" + message;\n return error;\n}\n$bb2e977174592952$var$DOMException.prototype = Error.prototype;\n$bb2e977174592952$var$copy($bb2e977174592952$var$ExceptionCode, $bb2e977174592952$var$DOMException);\n/**\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-536297177\n * The NodeList interface provides the abstraction of an ordered collection of nodes, without defining or constraining how this collection is implemented. NodeList objects in the DOM are live.\n * The items in the NodeList are accessible via an integral index, starting from 0.\n */ function $bb2e977174592952$var$NodeList() {}\n$bb2e977174592952$var$NodeList.prototype = {\n /**\n\t * The number of nodes in the list. The range of valid child node indices is 0 to length-1 inclusive.\n\t * @standard level1\n\t */ length: 0,\n /**\n\t * Returns the indexth item in the collection. If index is greater than or equal to the number of nodes in the list, this returns null.\n\t * @standard level1\n\t * @param index unsigned long\n\t * Index into the collection.\n\t * @return Node\n\t * \tThe node at the indexth position in the NodeList, or null if that is not a valid index.\n\t */ item: function(index) {\n return index >= 0 && index < this.length ? this[index] : null;\n },\n toString: function(isHTML, nodeFilter) {\n for(var buf = [], i = 0; i < this.length; i++)$bb2e977174592952$var$serializeToString(this[i], buf, isHTML, nodeFilter);\n return buf.join('');\n },\n /**\n\t * @private\n\t * @param {function (Node):boolean} predicate\n\t * @returns {Node[]}\n\t */ filter: function(predicate) {\n return Array.prototype.filter.call(this, predicate);\n },\n /**\n\t * @private\n\t * @param {Node} item\n\t * @returns {number}\n\t */ indexOf: function(item) {\n return Array.prototype.indexOf.call(this, item);\n }\n};\nfunction $bb2e977174592952$var$LiveNodeList(node, refresh) {\n this._node = node;\n this._refresh = refresh;\n $bb2e977174592952$var$_updateLiveList(this);\n}\nfunction $bb2e977174592952$var$_updateLiveList(list) {\n var inc = list._node._inc || list._node.ownerDocument._inc;\n if (list._inc !== inc) {\n var ls = list._refresh(list._node);\n $bb2e977174592952$var$__set__(list, 'length', ls.length);\n if (!list.$$length || ls.length < list.$$length) {\n for(var i = ls.length; (i in list); i++)if (Object.prototype.hasOwnProperty.call(list, i)) delete list[i];\n }\n $bb2e977174592952$var$copy(ls, list);\n list._inc = inc;\n }\n}\n$bb2e977174592952$var$LiveNodeList.prototype.item = function(i) {\n $bb2e977174592952$var$_updateLiveList(this);\n return this[i] || null;\n};\n$bb2e977174592952$var$_extends($bb2e977174592952$var$LiveNodeList, $bb2e977174592952$var$NodeList);\n/**\n * Objects implementing the NamedNodeMap interface are used\n * to represent collections of nodes that can be accessed by name.\n * Note that NamedNodeMap does not inherit from NodeList;\n * NamedNodeMaps are not maintained in any particular order.\n * Objects contained in an object implementing NamedNodeMap may also be accessed by an ordinal index,\n * but this is simply to allow convenient enumeration of the contents of a NamedNodeMap,\n * and does not imply that the DOM specifies an order to these Nodes.\n * NamedNodeMap objects in the DOM are live.\n * used for attributes or DocumentType entities\n */ function $bb2e977174592952$var$NamedNodeMap() {}\nfunction $bb2e977174592952$var$_findNodeIndex(list, node) {\n var i = list.length;\n while(i--){\n if (list[i] === node) return i;\n }\n}\nfunction $bb2e977174592952$var$_addNamedNode(el, list, newAttr, oldAttr) {\n if (oldAttr) list[$bb2e977174592952$var$_findNodeIndex(list, oldAttr)] = newAttr;\n else list[list.length++] = newAttr;\n if (el) {\n newAttr.ownerElement = el;\n var doc = el.ownerDocument;\n if (doc) {\n oldAttr && $bb2e977174592952$var$_onRemoveAttribute(doc, el, oldAttr);\n $bb2e977174592952$var$_onAddAttribute(doc, el, newAttr);\n }\n }\n}\nfunction $bb2e977174592952$var$_removeNamedNode(el, list, attr) {\n //console.log('remove attr:'+attr)\n var i = $bb2e977174592952$var$_findNodeIndex(list, attr);\n if (i >= 0) {\n var lastIndex = list.length - 1;\n while(i < lastIndex)list[i] = list[++i];\n list.length = lastIndex;\n if (el) {\n var doc = el.ownerDocument;\n if (doc) {\n $bb2e977174592952$var$_onRemoveAttribute(doc, el, attr);\n attr.ownerElement = null;\n }\n }\n } else throw new $bb2e977174592952$var$DOMException($bb2e977174592952$var$NOT_FOUND_ERR, new Error(el.tagName + '@' + attr));\n}\n$bb2e977174592952$var$NamedNodeMap.prototype = {\n length: 0,\n item: $bb2e977174592952$var$NodeList.prototype.item,\n getNamedItem: function(key) {\n //\t\tif(key.indexOf(':')>0 || key == 'xmlns'){\n //\t\t\treturn null;\n //\t\t}\n //console.log()\n var i = this.length;\n while(i--){\n var attr = this[i];\n //console.log(attr.nodeName,key)\n if (attr.nodeName == key) return attr;\n }\n },\n setNamedItem: function(attr) {\n var el = attr.ownerElement;\n if (el && el != this._ownerElement) throw new $bb2e977174592952$var$DOMException($bb2e977174592952$var$INUSE_ATTRIBUTE_ERR);\n var oldAttr = this.getNamedItem(attr.nodeName);\n $bb2e977174592952$var$_addNamedNode(this._ownerElement, this, attr, oldAttr);\n return oldAttr;\n },\n /* returns Node */ setNamedItemNS: function(attr) {\n var el = attr.ownerElement, oldAttr;\n if (el && el != this._ownerElement) throw new $bb2e977174592952$var$DOMException($bb2e977174592952$var$INUSE_ATTRIBUTE_ERR);\n oldAttr = this.getNamedItemNS(attr.namespaceURI, attr.localName);\n $bb2e977174592952$var$_addNamedNode(this._ownerElement, this, attr, oldAttr);\n return oldAttr;\n },\n /* returns Node */ removeNamedItem: function(key) {\n var attr = this.getNamedItem(key);\n $bb2e977174592952$var$_removeNamedNode(this._ownerElement, this, attr);\n return attr;\n },\n //for level2\n removeNamedItemNS: function(namespaceURI, localName) {\n var attr = this.getNamedItemNS(namespaceURI, localName);\n $bb2e977174592952$var$_removeNamedNode(this._ownerElement, this, attr);\n return attr;\n },\n getNamedItemNS: function(namespaceURI, localName) {\n var i = this.length;\n while(i--){\n var node = this[i];\n if (node.localName == localName && node.namespaceURI == namespaceURI) return node;\n }\n return null;\n }\n};\n/**\n * The DOMImplementation interface represents an object providing methods\n * which are not dependent on any particular document.\n * Such an object is returned by the `Document.implementation` property.\n *\n * __The individual methods describe the differences compared to the specs.__\n *\n * @constructor\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation MDN\n * @see https://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-102161490 DOM Level 1 Core (Initial)\n * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-102161490 DOM Level 2 Core\n * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-102161490 DOM Level 3 Core\n * @see https://dom.spec.whatwg.org/#domimplementation DOM Living Standard\n */ function $bb2e977174592952$var$DOMImplementation() {}\n$bb2e977174592952$var$DOMImplementation.prototype = {\n /**\n\t * The DOMImplementation.hasFeature() method returns a Boolean flag indicating if a given feature is supported.\n\t * The different implementations fairly diverged in what kind of features were reported.\n\t * The latest version of the spec settled to force this method to always return true, where the functionality was accurate and in use.\n\t *\n\t * @deprecated It is deprecated and modern browsers return true in all cases.\n\t *\n\t * @param {string} feature\n\t * @param {string} [version]\n\t * @returns {boolean} always true\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/hasFeature MDN\n\t * @see https://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-5CED94D7 DOM Level 1 Core\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-hasfeature DOM Living Standard\n\t */ hasFeature: function(feature, version) {\n return true;\n },\n /**\n\t * Creates an XML Document object of the specified type with its document element.\n\t *\n\t * __It behaves slightly different from the description in the living standard__:\n\t * - There is no interface/class `XMLDocument`, it returns a `Document` instance.\n\t * - `contentType`, `encoding`, `mode`, `origin`, `url` fields are currently not declared.\n\t * - this implementation is not validating names or qualified names\n\t * (when parsing XML strings, the SAX parser takes care of that)\n\t *\n\t * @param {string|null} namespaceURI\n\t * @param {string} qualifiedName\n\t * @param {DocumentType=null} doctype\n\t * @returns {Document}\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createDocument MDN\n\t * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#Level-2-Core-DOM-createDocument DOM Level 2 Core (initial)\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocument DOM Level 2 Core\n\t *\n\t * @see https://dom.spec.whatwg.org/#validate-and-extract DOM: Validate and extract\n\t * @see https://www.w3.org/TR/xml/#NT-NameStartChar XML Spec: Names\n\t * @see https://www.w3.org/TR/xml-names/#ns-qualnames XML Namespaces: Qualified names\n\t */ createDocument: function(namespaceURI, qualifiedName, doctype) {\n var doc = new $bb2e977174592952$var$Document();\n doc.implementation = this;\n doc.childNodes = new $bb2e977174592952$var$NodeList();\n doc.doctype = doctype || null;\n if (doctype) doc.appendChild(doctype);\n if (qualifiedName) {\n var root = doc.createElementNS(namespaceURI, qualifiedName);\n doc.appendChild(root);\n }\n return doc;\n },\n /**\n\t * Returns a doctype, with the given `qualifiedName`, `publicId`, and `systemId`.\n\t *\n\t * __This behavior is slightly different from the in the specs__:\n\t * - this implementation is not validating names or qualified names\n\t * (when parsing XML strings, the SAX parser takes care of that)\n\t *\n\t * @param {string} qualifiedName\n\t * @param {string} [publicId]\n\t * @param {string} [systemId]\n\t * @returns {DocumentType} which can either be used with `DOMImplementation.createDocument` upon document creation\n\t * \t\t\t\t or can be put into the document via methods like `Node.insertBefore()` or `Node.replaceChild()`\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createDocumentType MDN\n\t * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#Level-2-Core-DOM-createDocType DOM Level 2 Core\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocumenttype DOM Living Standard\n\t *\n\t * @see https://dom.spec.whatwg.org/#validate-and-extract DOM: Validate and extract\n\t * @see https://www.w3.org/TR/xml/#NT-NameStartChar XML Spec: Names\n\t * @see https://www.w3.org/TR/xml-names/#ns-qualnames XML Namespaces: Qualified names\n\t */ createDocumentType: function(qualifiedName, publicId, systemId) {\n var node = new $bb2e977174592952$var$DocumentType();\n node.name = qualifiedName;\n node.nodeName = qualifiedName;\n node.publicId = publicId || '';\n node.systemId = systemId || '';\n return node;\n }\n};\n/**\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247\n */ function $bb2e977174592952$var$Node() {}\n$bb2e977174592952$var$Node.prototype = {\n firstChild: null,\n lastChild: null,\n previousSibling: null,\n nextSibling: null,\n attributes: null,\n parentNode: null,\n childNodes: null,\n ownerDocument: null,\n nodeValue: null,\n namespaceURI: null,\n prefix: null,\n localName: null,\n // Modified in DOM Level 2:\n insertBefore: function(newChild, refChild) {\n return $bb2e977174592952$var$_insertBefore(this, newChild, refChild);\n },\n replaceChild: function(newChild, oldChild) {\n $bb2e977174592952$var$_insertBefore(this, newChild, oldChild, $bb2e977174592952$var$assertPreReplacementValidityInDocument);\n if (oldChild) this.removeChild(oldChild);\n },\n removeChild: function(oldChild) {\n return $bb2e977174592952$var$_removeChild(this, oldChild);\n },\n appendChild: function(newChild) {\n return this.insertBefore(newChild, null);\n },\n hasChildNodes: function() {\n return this.firstChild != null;\n },\n cloneNode: function(deep) {\n return $bb2e977174592952$var$cloneNode(this.ownerDocument || this, this, deep);\n },\n // Modified in DOM Level 2:\n normalize: function() {\n var child = this.firstChild;\n while(child){\n var next = child.nextSibling;\n if (next && next.nodeType == $bb2e977174592952$var$TEXT_NODE && child.nodeType == $bb2e977174592952$var$TEXT_NODE) {\n this.removeChild(next);\n child.appendData(next.data);\n } else {\n child.normalize();\n child = next;\n }\n }\n },\n // Introduced in DOM Level 2:\n isSupported: function(feature, version) {\n return this.ownerDocument.implementation.hasFeature(feature, version);\n },\n // Introduced in DOM Level 2:\n hasAttributes: function() {\n return this.attributes.length > 0;\n },\n /**\n\t * Look up the prefix associated to the given namespace URI, starting from this node.\n\t * **The default namespace declarations are ignored by this method.**\n\t * See Namespace Prefix Lookup for details on the algorithm used by this method.\n\t *\n\t * _Note: The implementation seems to be incomplete when compared to the algorithm described in the specs._\n\t *\n\t * @param {string | null} namespaceURI\n\t * @returns {string | null}\n\t * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-lookupNamespacePrefix\n\t * @see https://www.w3.org/TR/DOM-Level-3-Core/namespaces-algorithms.html#lookupNamespacePrefixAlgo\n\t * @see https://dom.spec.whatwg.org/#dom-node-lookupprefix\n\t * @see https://github.com/xmldom/xmldom/issues/322\n\t */ lookupPrefix: function(namespaceURI) {\n var el = this;\n while(el){\n var map = el._nsMap;\n //console.dir(map)\n if (map) for(var n in map){\n if (Object.prototype.hasOwnProperty.call(map, n) && map[n] === namespaceURI) return n;\n }\n el = el.nodeType == $bb2e977174592952$var$ATTRIBUTE_NODE ? el.ownerDocument : el.parentNode;\n }\n return null;\n },\n // Introduced in DOM Level 3:\n lookupNamespaceURI: function(prefix) {\n var el = this;\n while(el){\n var map = el._nsMap;\n //console.dir(map)\n if (map) {\n if (Object.prototype.hasOwnProperty.call(map, prefix)) return map[prefix];\n }\n el = el.nodeType == $bb2e977174592952$var$ATTRIBUTE_NODE ? el.ownerDocument : el.parentNode;\n }\n return null;\n },\n // Introduced in DOM Level 3:\n isDefaultNamespace: function(namespaceURI) {\n var prefix = this.lookupPrefix(namespaceURI);\n return prefix == null;\n }\n};\nfunction $bb2e977174592952$var$_xmlEncoder(c) {\n return c == '<' && '<' || c == '>' && '>' || c == '&' && '&' || c == '\"' && '"' || '&#' + c.charCodeAt() + ';';\n}\n$bb2e977174592952$var$copy($bb2e977174592952$var$NodeType, $bb2e977174592952$var$Node);\n$bb2e977174592952$var$copy($bb2e977174592952$var$NodeType, $bb2e977174592952$var$Node.prototype);\n/**\n * @param callback return true for continue,false for break\n * @return boolean true: break visit;\n */ function $bb2e977174592952$var$_visitNode(node, callback) {\n if (callback(node)) return true;\n if (node = node.firstChild) do {\n if ($bb2e977174592952$var$_visitNode(node, callback)) return true;\n }while (node = node.nextSibling);\n}\nfunction $bb2e977174592952$var$Document() {\n this.ownerDocument = this;\n}\nfunction $bb2e977174592952$var$_onAddAttribute(doc, el, newAttr) {\n doc && doc._inc++;\n var ns = newAttr.namespaceURI;\n if (ns === $bb2e977174592952$var$NAMESPACE.XMLNS) //update namespace\n el._nsMap[newAttr.prefix ? newAttr.localName : ''] = newAttr.value;\n}\nfunction $bb2e977174592952$var$_onRemoveAttribute(doc, el, newAttr, remove) {\n doc && doc._inc++;\n var ns = newAttr.namespaceURI;\n if (ns === $bb2e977174592952$var$NAMESPACE.XMLNS) //update namespace\n delete el._nsMap[newAttr.prefix ? newAttr.localName : ''];\n}\n/**\n * Updates `el.childNodes`, updating the indexed items and it's `length`.\n * Passing `newChild` means it will be appended.\n * Otherwise it's assumed that an item has been removed,\n * and `el.firstNode` and it's `.nextSibling` are used\n * to walk the current list of child nodes.\n *\n * @param {Document} doc\n * @param {Node} el\n * @param {Node} [newChild]\n * @private\n */ function $bb2e977174592952$var$_onUpdateChild(doc, el, newChild) {\n if (doc && doc._inc) {\n doc._inc++;\n //update childNodes\n var cs = el.childNodes;\n if (newChild) cs[cs.length++] = newChild;\n else {\n var child = el.firstChild;\n var i = 0;\n while(child){\n cs[i++] = child;\n child = child.nextSibling;\n }\n cs.length = i;\n delete cs[cs.length];\n }\n }\n}\n/**\n * Removes the connections between `parentNode` and `child`\n * and any existing `child.previousSibling` or `child.nextSibling`.\n *\n * @see https://github.com/xmldom/xmldom/issues/135\n * @see https://github.com/xmldom/xmldom/issues/145\n *\n * @param {Node} parentNode\n * @param {Node} child\n * @returns {Node} the child that was removed.\n * @private\n */ function $bb2e977174592952$var$_removeChild(parentNode, child) {\n var previous = child.previousSibling;\n var next = child.nextSibling;\n if (previous) previous.nextSibling = next;\n else parentNode.firstChild = next;\n if (next) next.previousSibling = previous;\n else parentNode.lastChild = previous;\n child.parentNode = null;\n child.previousSibling = null;\n child.nextSibling = null;\n $bb2e977174592952$var$_onUpdateChild(parentNode.ownerDocument, parentNode);\n return child;\n}\n/**\n * Returns `true` if `node` can be a parent for insertion.\n * @param {Node} node\n * @returns {boolean}\n */ function $bb2e977174592952$var$hasValidParentNodeType(node) {\n return node && (node.nodeType === $bb2e977174592952$var$Node.DOCUMENT_NODE || node.nodeType === $bb2e977174592952$var$Node.DOCUMENT_FRAGMENT_NODE || node.nodeType === $bb2e977174592952$var$Node.ELEMENT_NODE);\n}\n/**\n * Returns `true` if `node` can be inserted according to it's `nodeType`.\n * @param {Node} node\n * @returns {boolean}\n */ function $bb2e977174592952$var$hasInsertableNodeType(node) {\n return node && ($bb2e977174592952$var$isElementNode(node) || $bb2e977174592952$var$isTextNode(node) || $bb2e977174592952$var$isDocTypeNode(node) || node.nodeType === $bb2e977174592952$var$Node.DOCUMENT_FRAGMENT_NODE || node.nodeType === $bb2e977174592952$var$Node.COMMENT_NODE || node.nodeType === $bb2e977174592952$var$Node.PROCESSING_INSTRUCTION_NODE);\n}\n/**\n * Returns true if `node` is a DOCTYPE node\n * @param {Node} node\n * @returns {boolean}\n */ function $bb2e977174592952$var$isDocTypeNode(node) {\n return node && node.nodeType === $bb2e977174592952$var$Node.DOCUMENT_TYPE_NODE;\n}\n/**\n * Returns true if the node is an element\n * @param {Node} node\n * @returns {boolean}\n */ function $bb2e977174592952$var$isElementNode(node) {\n return node && node.nodeType === $bb2e977174592952$var$Node.ELEMENT_NODE;\n}\n/**\n * Returns true if `node` is a text node\n * @param {Node} node\n * @returns {boolean}\n */ function $bb2e977174592952$var$isTextNode(node) {\n return node && node.nodeType === $bb2e977174592952$var$Node.TEXT_NODE;\n}\n/**\n * Check if en element node can be inserted before `child`, or at the end if child is falsy,\n * according to the presence and position of a doctype node on the same level.\n *\n * @param {Document} doc The document node\n * @param {Node} child the node that would become the nextSibling if the element would be inserted\n * @returns {boolean} `true` if an element can be inserted before child\n * @private\n * https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */ function $bb2e977174592952$var$isElementInsertionPossible(doc, child) {\n var parentChildNodes = doc.childNodes || [];\n if ($bb2e977174592952$var$find(parentChildNodes, $bb2e977174592952$var$isElementNode) || $bb2e977174592952$var$isDocTypeNode(child)) return false;\n var docTypeNode = $bb2e977174592952$var$find(parentChildNodes, $bb2e977174592952$var$isDocTypeNode);\n return !(child && docTypeNode && parentChildNodes.indexOf(docTypeNode) > parentChildNodes.indexOf(child));\n}\n/**\n * Check if en element node can be inserted before `child`, or at the end if child is falsy,\n * according to the presence and position of a doctype node on the same level.\n *\n * @param {Node} doc The document node\n * @param {Node} child the node that would become the nextSibling if the element would be inserted\n * @returns {boolean} `true` if an element can be inserted before child\n * @private\n * https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */ function $bb2e977174592952$var$isElementReplacementPossible(doc, child) {\n var parentChildNodes = doc.childNodes || [];\n function hasElementChildThatIsNotChild(node) {\n return $bb2e977174592952$var$isElementNode(node) && node !== child;\n }\n if ($bb2e977174592952$var$find(parentChildNodes, hasElementChildThatIsNotChild)) return false;\n var docTypeNode = $bb2e977174592952$var$find(parentChildNodes, $bb2e977174592952$var$isDocTypeNode);\n return !(child && docTypeNode && parentChildNodes.indexOf(docTypeNode) > parentChildNodes.indexOf(child));\n}\n/**\n * @private\n * Steps 1-5 of the checks before inserting and before replacing a child are the same.\n *\n * @param {Node} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node=} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */ function $bb2e977174592952$var$assertPreInsertionValidity1to5(parent, node, child) {\n // 1. If `parent` is not a Document, DocumentFragment, or Element node, then throw a \"HierarchyRequestError\" DOMException.\n if (!$bb2e977174592952$var$hasValidParentNodeType(parent)) throw new $bb2e977174592952$var$DOMException($bb2e977174592952$var$HIERARCHY_REQUEST_ERR, 'Unexpected parent node type ' + parent.nodeType);\n // 2. If `node` is a host-including inclusive ancestor of `parent`, then throw a \"HierarchyRequestError\" DOMException.\n // not implemented!\n // 3. If `child` is non-null and its parent is not `parent`, then throw a \"NotFoundError\" DOMException.\n if (child && child.parentNode !== parent) throw new $bb2e977174592952$var$DOMException($bb2e977174592952$var$NOT_FOUND_ERR, 'child not in parent');\n if (// 4. If `node` is not a DocumentFragment, DocumentType, Element, or CharacterData node, then throw a \"HierarchyRequestError\" DOMException.\n !$bb2e977174592952$var$hasInsertableNodeType(node) || // 5. If either `node` is a Text node and `parent` is a document,\n // the sax parser currently adds top level text nodes, this will be fixed in 0.9.0\n // || (node.nodeType === Node.TEXT_NODE && parent.nodeType === Node.DOCUMENT_NODE)\n // or `node` is a doctype and `parent` is not a document, then throw a \"HierarchyRequestError\" DOMException.\n $bb2e977174592952$var$isDocTypeNode(node) && parent.nodeType !== $bb2e977174592952$var$Node.DOCUMENT_NODE) throw new $bb2e977174592952$var$DOMException($bb2e977174592952$var$HIERARCHY_REQUEST_ERR, 'Unexpected node type ' + node.nodeType + ' for parent node type ' + parent.nodeType);\n}\n/**\n * @private\n * Step 6 of the checks before inserting and before replacing a child are different.\n *\n * @param {Document} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node | undefined} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */ function $bb2e977174592952$var$assertPreInsertionValidityInDocument(parent, node, child) {\n var parentChildNodes = parent.childNodes || [];\n var nodeChildNodes = node.childNodes || [];\n // DocumentFragment\n if (node.nodeType === $bb2e977174592952$var$Node.DOCUMENT_FRAGMENT_NODE) {\n var nodeChildElements = nodeChildNodes.filter($bb2e977174592952$var$isElementNode);\n // If node has more than one element child or has a Text node child.\n if (nodeChildElements.length > 1 || $bb2e977174592952$var$find(nodeChildNodes, $bb2e977174592952$var$isTextNode)) throw new $bb2e977174592952$var$DOMException($bb2e977174592952$var$HIERARCHY_REQUEST_ERR, 'More than one element or text in fragment');\n // Otherwise, if `node` has one element child and either `parent` has an element child,\n // `child` is a doctype, or `child` is non-null and a doctype is following `child`.\n if (nodeChildElements.length === 1 && !$bb2e977174592952$var$isElementInsertionPossible(parent, child)) throw new $bb2e977174592952$var$DOMException($bb2e977174592952$var$HIERARCHY_REQUEST_ERR, 'Element in fragment can not be inserted before doctype');\n }\n // Element\n if ($bb2e977174592952$var$isElementNode(node)) {\n // `parent` has an element child, `child` is a doctype,\n // or `child` is non-null and a doctype is following `child`.\n if (!$bb2e977174592952$var$isElementInsertionPossible(parent, child)) throw new $bb2e977174592952$var$DOMException($bb2e977174592952$var$HIERARCHY_REQUEST_ERR, 'Only one element can be added and only after doctype');\n }\n // DocumentType\n if ($bb2e977174592952$var$isDocTypeNode(node)) {\n // `parent` has a doctype child,\n if ($bb2e977174592952$var$find(parentChildNodes, $bb2e977174592952$var$isDocTypeNode)) throw new $bb2e977174592952$var$DOMException($bb2e977174592952$var$HIERARCHY_REQUEST_ERR, 'Only one doctype is allowed');\n var parentElementChild = $bb2e977174592952$var$find(parentChildNodes, $bb2e977174592952$var$isElementNode);\n // `child` is non-null and an element is preceding `child`,\n if (child && parentChildNodes.indexOf(parentElementChild) < parentChildNodes.indexOf(child)) throw new $bb2e977174592952$var$DOMException($bb2e977174592952$var$HIERARCHY_REQUEST_ERR, 'Doctype can only be inserted before an element');\n // or `child` is null and `parent` has an element child.\n if (!child && parentElementChild) throw new $bb2e977174592952$var$DOMException($bb2e977174592952$var$HIERARCHY_REQUEST_ERR, 'Doctype can not be appended since element is present');\n }\n}\n/**\n * @private\n * Step 6 of the checks before inserting and before replacing a child are different.\n *\n * @param {Document} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node | undefined} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */ function $bb2e977174592952$var$assertPreReplacementValidityInDocument(parent, node, child) {\n var parentChildNodes = parent.childNodes || [];\n var nodeChildNodes = node.childNodes || [];\n // DocumentFragment\n if (node.nodeType === $bb2e977174592952$var$Node.DOCUMENT_FRAGMENT_NODE) {\n var nodeChildElements = nodeChildNodes.filter($bb2e977174592952$var$isElementNode);\n // If `node` has more than one element child or has a Text node child.\n if (nodeChildElements.length > 1 || $bb2e977174592952$var$find(nodeChildNodes, $bb2e977174592952$var$isTextNode)) throw new $bb2e977174592952$var$DOMException($bb2e977174592952$var$HIERARCHY_REQUEST_ERR, 'More than one element or text in fragment');\n // Otherwise, if `node` has one element child and either `parent` has an element child that is not `child` or a doctype is following `child`.\n if (nodeChildElements.length === 1 && !$bb2e977174592952$var$isElementReplacementPossible(parent, child)) throw new $bb2e977174592952$var$DOMException($bb2e977174592952$var$HIERARCHY_REQUEST_ERR, 'Element in fragment can not be inserted before doctype');\n }\n // Element\n if ($bb2e977174592952$var$isElementNode(node)) {\n // `parent` has an element child that is not `child` or a doctype is following `child`.\n if (!$bb2e977174592952$var$isElementReplacementPossible(parent, child)) throw new $bb2e977174592952$var$DOMException($bb2e977174592952$var$HIERARCHY_REQUEST_ERR, 'Only one element can be added and only after doctype');\n }\n // DocumentType\n if ($bb2e977174592952$var$isDocTypeNode(node)) {\n function hasDoctypeChildThatIsNotChild(node) {\n return $bb2e977174592952$var$isDocTypeNode(node) && node !== child;\n }\n // `parent` has a doctype child that is not `child`,\n if ($bb2e977174592952$var$find(parentChildNodes, hasDoctypeChildThatIsNotChild)) throw new $bb2e977174592952$var$DOMException($bb2e977174592952$var$HIERARCHY_REQUEST_ERR, 'Only one doctype is allowed');\n var parentElementChild = $bb2e977174592952$var$find(parentChildNodes, $bb2e977174592952$var$isElementNode);\n // or an element is preceding `child`.\n if (child && parentChildNodes.indexOf(parentElementChild) < parentChildNodes.indexOf(child)) throw new $bb2e977174592952$var$DOMException($bb2e977174592952$var$HIERARCHY_REQUEST_ERR, 'Doctype can only be inserted before an element');\n }\n}\n/**\n * @private\n * @param {Node} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node=} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */ function $bb2e977174592952$var$_insertBefore(parent, node, child, _inDocumentAssertion) {\n // To ensure pre-insertion validity of a node into a parent before a child, run these steps:\n $bb2e977174592952$var$assertPreInsertionValidity1to5(parent, node, child);\n // If parent is a document, and any of the statements below, switched on the interface node implements,\n // are true, then throw a \"HierarchyRequestError\" DOMException.\n if (parent.nodeType === $bb2e977174592952$var$Node.DOCUMENT_NODE) (_inDocumentAssertion || $bb2e977174592952$var$assertPreInsertionValidityInDocument)(parent, node, child);\n var cp = node.parentNode;\n if (cp) cp.removeChild(node); //remove and update\n if (node.nodeType === $bb2e977174592952$var$DOCUMENT_FRAGMENT_NODE) {\n var newFirst = node.firstChild;\n if (newFirst == null) return node;\n var newLast = node.lastChild;\n } else newFirst = newLast = node;\n var pre = child ? child.previousSibling : parent.lastChild;\n newFirst.previousSibling = pre;\n newLast.nextSibling = child;\n if (pre) pre.nextSibling = newFirst;\n else parent.firstChild = newFirst;\n if (child == null) parent.lastChild = newLast;\n else child.previousSibling = newLast;\n do newFirst.parentNode = parent;\n while (newFirst !== newLast && (newFirst = newFirst.nextSibling));\n $bb2e977174592952$var$_onUpdateChild(parent.ownerDocument || parent, parent);\n //console.log(parent.lastChild.nextSibling == null)\n if (node.nodeType == $bb2e977174592952$var$DOCUMENT_FRAGMENT_NODE) node.firstChild = node.lastChild = null;\n return node;\n}\n/**\n * Appends `newChild` to `parentNode`.\n * If `newChild` is already connected to a `parentNode` it is first removed from it.\n *\n * @see https://github.com/xmldom/xmldom/issues/135\n * @see https://github.com/xmldom/xmldom/issues/145\n * @param {Node} parentNode\n * @param {Node} newChild\n * @returns {Node}\n * @private\n */ function $bb2e977174592952$var$_appendSingleChild(parentNode, newChild) {\n if (newChild.parentNode) newChild.parentNode.removeChild(newChild);\n newChild.parentNode = parentNode;\n newChild.previousSibling = parentNode.lastChild;\n newChild.nextSibling = null;\n if (newChild.previousSibling) newChild.previousSibling.nextSibling = newChild;\n else parentNode.firstChild = newChild;\n parentNode.lastChild = newChild;\n $bb2e977174592952$var$_onUpdateChild(parentNode.ownerDocument, parentNode, newChild);\n return newChild;\n}\n$bb2e977174592952$var$Document.prototype = {\n //implementation : null,\n nodeName: '#document',\n nodeType: $bb2e977174592952$var$DOCUMENT_NODE,\n /**\n\t * The DocumentType node of the document.\n\t *\n\t * @readonly\n\t * @type DocumentType\n\t */ doctype: null,\n documentElement: null,\n _inc: 1,\n insertBefore: function(newChild, refChild) {\n if (newChild.nodeType == $bb2e977174592952$var$DOCUMENT_FRAGMENT_NODE) {\n var child = newChild.firstChild;\n while(child){\n var next = child.nextSibling;\n this.insertBefore(child, refChild);\n child = next;\n }\n return newChild;\n }\n $bb2e977174592952$var$_insertBefore(this, newChild, refChild);\n newChild.ownerDocument = this;\n if (this.documentElement === null && newChild.nodeType === $bb2e977174592952$var$ELEMENT_NODE) this.documentElement = newChild;\n return newChild;\n },\n removeChild: function(oldChild) {\n if (this.documentElement == oldChild) this.documentElement = null;\n return $bb2e977174592952$var$_removeChild(this, oldChild);\n },\n replaceChild: function(newChild, oldChild) {\n //raises\n $bb2e977174592952$var$_insertBefore(this, newChild, oldChild, $bb2e977174592952$var$assertPreReplacementValidityInDocument);\n newChild.ownerDocument = this;\n if (oldChild) this.removeChild(oldChild);\n if ($bb2e977174592952$var$isElementNode(newChild)) this.documentElement = newChild;\n },\n // Introduced in DOM Level 2:\n importNode: function(importedNode, deep) {\n return $bb2e977174592952$var$importNode(this, importedNode, deep);\n },\n // Introduced in DOM Level 2:\n getElementById: function(id) {\n var rtv = null;\n $bb2e977174592952$var$_visitNode(this.documentElement, function(node) {\n if (node.nodeType == $bb2e977174592952$var$ELEMENT_NODE) {\n if (node.getAttribute('id') == id) {\n rtv = node;\n return true;\n }\n }\n });\n return rtv;\n },\n /**\n\t * The `getElementsByClassName` method of `Document` interface returns an array-like object\n\t * of all child elements which have **all** of the given class name(s).\n\t *\n\t * Returns an empty list if `classeNames` is an empty string or only contains HTML white space characters.\n\t *\n\t *\n\t * Warning: This is a live LiveNodeList.\n\t * Changes in the DOM will reflect in the array as the changes occur.\n\t * If an element selected by this array no longer qualifies for the selector,\n\t * it will automatically be removed. Be aware of this for iteration purposes.\n\t *\n\t * @param {string} classNames is a string representing the class name(s) to match; multiple class names are separated by (ASCII-)whitespace\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementsByClassName\n\t * @see https://dom.spec.whatwg.org/#concept-getelementsbyclassname\n\t */ getElementsByClassName: function(classNames) {\n var classNamesSet = $bb2e977174592952$var$toOrderedSet(classNames);\n return new $bb2e977174592952$var$LiveNodeList(this, function(base) {\n var ls = [];\n if (classNamesSet.length > 0) $bb2e977174592952$var$_visitNode(base.documentElement, function(node) {\n if (node !== base && node.nodeType === $bb2e977174592952$var$ELEMENT_NODE) {\n var nodeClassNames = node.getAttribute('class');\n // can be null if the attribute does not exist\n if (nodeClassNames) {\n // before splitting and iterating just compare them for the most common case\n var matches = classNames === nodeClassNames;\n if (!matches) {\n var nodeClassNamesSet = $bb2e977174592952$var$toOrderedSet(nodeClassNames);\n matches = classNamesSet.every($bb2e977174592952$var$arrayIncludes(nodeClassNamesSet));\n }\n if (matches) ls.push(node);\n }\n }\n });\n return ls;\n });\n },\n //document factory method:\n createElement: function(tagName) {\n var node = new $bb2e977174592952$var$Element();\n node.ownerDocument = this;\n node.nodeName = tagName;\n node.tagName = tagName;\n node.localName = tagName;\n node.childNodes = new $bb2e977174592952$var$NodeList();\n var attrs = node.attributes = new $bb2e977174592952$var$NamedNodeMap();\n attrs._ownerElement = node;\n return node;\n },\n createDocumentFragment: function() {\n var node = new $bb2e977174592952$var$DocumentFragment();\n node.ownerDocument = this;\n node.childNodes = new $bb2e977174592952$var$NodeList();\n return node;\n },\n createTextNode: function(data) {\n var node = new $bb2e977174592952$var$Text();\n node.ownerDocument = this;\n node.appendData(data);\n return node;\n },\n createComment: function(data) {\n var node = new $bb2e977174592952$var$Comment();\n node.ownerDocument = this;\n node.appendData(data);\n return node;\n },\n createCDATASection: function(data) {\n var node = new $bb2e977174592952$var$CDATASection();\n node.ownerDocument = this;\n node.appendData(data);\n return node;\n },\n createProcessingInstruction: function(target, data) {\n var node = new $bb2e977174592952$var$ProcessingInstruction();\n node.ownerDocument = this;\n node.tagName = node.nodeName = node.target = target;\n node.nodeValue = node.data = data;\n return node;\n },\n createAttribute: function(name) {\n var node = new $bb2e977174592952$var$Attr();\n node.ownerDocument = this;\n node.name = name;\n node.nodeName = name;\n node.localName = name;\n node.specified = true;\n return node;\n },\n createEntityReference: function(name) {\n var node = new $bb2e977174592952$var$EntityReference();\n node.ownerDocument = this;\n node.nodeName = name;\n return node;\n },\n // Introduced in DOM Level 2:\n createElementNS: function(namespaceURI, qualifiedName) {\n var node = new $bb2e977174592952$var$Element();\n var pl = qualifiedName.split(':');\n var attrs = node.attributes = new $bb2e977174592952$var$NamedNodeMap();\n node.childNodes = new $bb2e977174592952$var$NodeList();\n node.ownerDocument = this;\n node.nodeName = qualifiedName;\n node.tagName = qualifiedName;\n node.namespaceURI = namespaceURI;\n if (pl.length == 2) {\n node.prefix = pl[0];\n node.localName = pl[1];\n } else //el.prefix = null;\n node.localName = qualifiedName;\n attrs._ownerElement = node;\n return node;\n },\n // Introduced in DOM Level 2:\n createAttributeNS: function(namespaceURI, qualifiedName) {\n var node = new $bb2e977174592952$var$Attr();\n var pl = qualifiedName.split(':');\n node.ownerDocument = this;\n node.nodeName = qualifiedName;\n node.name = qualifiedName;\n node.namespaceURI = namespaceURI;\n node.specified = true;\n if (pl.length == 2) {\n node.prefix = pl[0];\n node.localName = pl[1];\n } else //el.prefix = null;\n node.localName = qualifiedName;\n return node;\n }\n};\n$bb2e977174592952$var$_extends($bb2e977174592952$var$Document, $bb2e977174592952$var$Node);\nfunction $bb2e977174592952$var$Element() {\n this._nsMap = {};\n}\n$bb2e977174592952$var$Element.prototype = {\n nodeType: $bb2e977174592952$var$ELEMENT_NODE,\n hasAttribute: function(name) {\n return this.getAttributeNode(name) != null;\n },\n getAttribute: function(name) {\n var attr = this.getAttributeNode(name);\n return attr && attr.value || '';\n },\n getAttributeNode: function(name) {\n return this.attributes.getNamedItem(name);\n },\n setAttribute: function(name, value) {\n var attr = this.ownerDocument.createAttribute(name);\n attr.value = attr.nodeValue = \"\" + value;\n this.setAttributeNode(attr);\n },\n removeAttribute: function(name) {\n var attr = this.getAttributeNode(name);\n attr && this.removeAttributeNode(attr);\n },\n //four real opeartion method\n appendChild: function(newChild) {\n if (newChild.nodeType === $bb2e977174592952$var$DOCUMENT_FRAGMENT_NODE) return this.insertBefore(newChild, null);\n else return $bb2e977174592952$var$_appendSingleChild(this, newChild);\n },\n setAttributeNode: function(newAttr) {\n return this.attributes.setNamedItem(newAttr);\n },\n setAttributeNodeNS: function(newAttr) {\n return this.attributes.setNamedItemNS(newAttr);\n },\n removeAttributeNode: function(oldAttr) {\n //console.log(this == oldAttr.ownerElement)\n return this.attributes.removeNamedItem(oldAttr.nodeName);\n },\n //get real attribute name,and remove it by removeAttributeNode\n removeAttributeNS: function(namespaceURI, localName) {\n var old = this.getAttributeNodeNS(namespaceURI, localName);\n old && this.removeAttributeNode(old);\n },\n hasAttributeNS: function(namespaceURI, localName) {\n return this.getAttributeNodeNS(namespaceURI, localName) != null;\n },\n getAttributeNS: function(namespaceURI, localName) {\n var attr = this.getAttributeNodeNS(namespaceURI, localName);\n return attr && attr.value || '';\n },\n setAttributeNS: function(namespaceURI, qualifiedName, value) {\n var attr = this.ownerDocument.createAttributeNS(namespaceURI, qualifiedName);\n attr.value = attr.nodeValue = \"\" + value;\n this.setAttributeNode(attr);\n },\n getAttributeNodeNS: function(namespaceURI, localName) {\n return this.attributes.getNamedItemNS(namespaceURI, localName);\n },\n getElementsByTagName: function(tagName) {\n return new $bb2e977174592952$var$LiveNodeList(this, function(base) {\n var ls = [];\n $bb2e977174592952$var$_visitNode(base, function(node) {\n if (node !== base && node.nodeType == $bb2e977174592952$var$ELEMENT_NODE && (tagName === '*' || node.tagName == tagName)) ls.push(node);\n });\n return ls;\n });\n },\n getElementsByTagNameNS: function(namespaceURI, localName) {\n return new $bb2e977174592952$var$LiveNodeList(this, function(base) {\n var ls = [];\n $bb2e977174592952$var$_visitNode(base, function(node) {\n if (node !== base && node.nodeType === $bb2e977174592952$var$ELEMENT_NODE && (namespaceURI === '*' || node.namespaceURI === namespaceURI) && (localName === '*' || node.localName == localName)) ls.push(node);\n });\n return ls;\n });\n }\n};\n$bb2e977174592952$var$Document.prototype.getElementsByTagName = $bb2e977174592952$var$Element.prototype.getElementsByTagName;\n$bb2e977174592952$var$Document.prototype.getElementsByTagNameNS = $bb2e977174592952$var$Element.prototype.getElementsByTagNameNS;\n$bb2e977174592952$var$_extends($bb2e977174592952$var$Element, $bb2e977174592952$var$Node);\nfunction $bb2e977174592952$var$Attr() {}\n$bb2e977174592952$var$Attr.prototype.nodeType = $bb2e977174592952$var$ATTRIBUTE_NODE;\n$bb2e977174592952$var$_extends($bb2e977174592952$var$Attr, $bb2e977174592952$var$Node);\nfunction $bb2e977174592952$var$CharacterData() {}\n$bb2e977174592952$var$CharacterData.prototype = {\n data: '',\n substringData: function(offset, count) {\n return this.data.substring(offset, offset + count);\n },\n appendData: function(text) {\n text = this.data + text;\n this.nodeValue = this.data = text;\n this.length = text.length;\n },\n insertData: function(offset, text) {\n this.replaceData(offset, 0, text);\n },\n appendChild: function(newChild) {\n throw new Error($bb2e977174592952$var$ExceptionMessage[$bb2e977174592952$var$HIERARCHY_REQUEST_ERR]);\n },\n deleteData: function(offset, count) {\n this.replaceData(offset, count, \"\");\n },\n replaceData: function(offset, count, text) {\n var start = this.data.substring(0, offset);\n var end = this.data.substring(offset + count);\n text = start + text + end;\n this.nodeValue = this.data = text;\n this.length = text.length;\n }\n};\n$bb2e977174592952$var$_extends($bb2e977174592952$var$CharacterData, $bb2e977174592952$var$Node);\nfunction $bb2e977174592952$var$Text() {}\n$bb2e977174592952$var$Text.prototype = {\n nodeName: \"#text\",\n nodeType: $bb2e977174592952$var$TEXT_NODE,\n splitText: function(offset) {\n var text = this.data;\n var newText = text.substring(offset);\n text = text.substring(0, offset);\n this.data = this.nodeValue = text;\n this.length = text.length;\n var newNode = this.ownerDocument.createTextNode(newText);\n if (this.parentNode) this.parentNode.insertBefore(newNode, this.nextSibling);\n return newNode;\n }\n};\n$bb2e977174592952$var$_extends($bb2e977174592952$var$Text, $bb2e977174592952$var$CharacterData);\nfunction $bb2e977174592952$var$Comment() {}\n$bb2e977174592952$var$Comment.prototype = {\n nodeName: \"#comment\",\n nodeType: $bb2e977174592952$var$COMMENT_NODE\n};\n$bb2e977174592952$var$_extends($bb2e977174592952$var$Comment, $bb2e977174592952$var$CharacterData);\nfunction $bb2e977174592952$var$CDATASection() {}\n$bb2e977174592952$var$CDATASection.prototype = {\n nodeName: \"#cdata-section\",\n nodeType: $bb2e977174592952$var$CDATA_SECTION_NODE\n};\n$bb2e977174592952$var$_extends($bb2e977174592952$var$CDATASection, $bb2e977174592952$var$CharacterData);\nfunction $bb2e977174592952$var$DocumentType() {}\n$bb2e977174592952$var$DocumentType.prototype.nodeType = $bb2e977174592952$var$DOCUMENT_TYPE_NODE;\n$bb2e977174592952$var$_extends($bb2e977174592952$var$DocumentType, $bb2e977174592952$var$Node);\nfunction $bb2e977174592952$var$Notation() {}\n$bb2e977174592952$var$Notation.prototype.nodeType = $bb2e977174592952$var$NOTATION_NODE;\n$bb2e977174592952$var$_extends($bb2e977174592952$var$Notation, $bb2e977174592952$var$Node);\nfunction $bb2e977174592952$var$Entity() {}\n$bb2e977174592952$var$Entity.prototype.nodeType = $bb2e977174592952$var$ENTITY_NODE;\n$bb2e977174592952$var$_extends($bb2e977174592952$var$Entity, $bb2e977174592952$var$Node);\nfunction $bb2e977174592952$var$EntityReference() {}\n$bb2e977174592952$var$EntityReference.prototype.nodeType = $bb2e977174592952$var$ENTITY_REFERENCE_NODE;\n$bb2e977174592952$var$_extends($bb2e977174592952$var$EntityReference, $bb2e977174592952$var$Node);\nfunction $bb2e977174592952$var$DocumentFragment() {}\n$bb2e977174592952$var$DocumentFragment.prototype.nodeName = \"#document-fragment\";\n$bb2e977174592952$var$DocumentFragment.prototype.nodeType = $bb2e977174592952$var$DOCUMENT_FRAGMENT_NODE;\n$bb2e977174592952$var$_extends($bb2e977174592952$var$DocumentFragment, $bb2e977174592952$var$Node);\nfunction $bb2e977174592952$var$ProcessingInstruction() {}\n$bb2e977174592952$var$ProcessingInstruction.prototype.nodeType = $bb2e977174592952$var$PROCESSING_INSTRUCTION_NODE;\n$bb2e977174592952$var$_extends($bb2e977174592952$var$ProcessingInstruction, $bb2e977174592952$var$Node);\nfunction $bb2e977174592952$var$XMLSerializer() {}\n$bb2e977174592952$var$XMLSerializer.prototype.serializeToString = function(node, isHtml, nodeFilter) {\n return $bb2e977174592952$var$nodeSerializeToString.call(node, isHtml, nodeFilter);\n};\n$bb2e977174592952$var$Node.prototype.toString = $bb2e977174592952$var$nodeSerializeToString;\nfunction $bb2e977174592952$var$nodeSerializeToString(isHtml, nodeFilter) {\n var buf = [];\n var refNode = this.nodeType == 9 && this.documentElement || this;\n var prefix = refNode.prefix;\n var uri = refNode.namespaceURI;\n if (uri && prefix == null) {\n //console.log(prefix)\n var prefix = refNode.lookupPrefix(uri);\n if (prefix == null) //isHTML = true;\n var visibleNamespaces = [\n {\n namespace: uri,\n prefix: null\n }\n ];\n }\n $bb2e977174592952$var$serializeToString(this, buf, isHtml, nodeFilter, visibleNamespaces);\n //console.log('###',this.nodeType,uri,prefix,buf.join(''))\n return buf.join('');\n}\nfunction $bb2e977174592952$var$needNamespaceDefine(node, isHTML, visibleNamespaces) {\n var prefix = node.prefix || '';\n var uri = node.namespaceURI;\n // According to [Namespaces in XML 1.0](https://www.w3.org/TR/REC-xml-names/#ns-using) ,\n // and more specifically https://www.w3.org/TR/REC-xml-names/#nsc-NoPrefixUndecl :\n // > In a namespace declaration for a prefix [...], the attribute value MUST NOT be empty.\n // in a similar manner [Namespaces in XML 1.1](https://www.w3.org/TR/xml-names11/#ns-using)\n // and more specifically https://www.w3.org/TR/xml-names11/#nsc-NSDeclared :\n // > [...] Furthermore, the attribute value [...] must not be an empty string.\n // so serializing empty namespace value like xmlns:ds=\"\" would produce an invalid XML document.\n if (!uri) return false;\n if (prefix === \"xml\" && uri === $bb2e977174592952$var$NAMESPACE.XML || uri === $bb2e977174592952$var$NAMESPACE.XMLNS) return false;\n var i = visibleNamespaces.length;\n while(i--){\n var ns = visibleNamespaces[i];\n // get namespace prefix\n if (ns.prefix === prefix) return ns.namespace !== uri;\n }\n return true;\n}\n/**\n * Well-formed constraint: No < in Attribute Values\n * > The replacement text of any entity referred to directly or indirectly\n * > in an attribute value must not contain a <.\n * @see https://www.w3.org/TR/xml11/#CleanAttrVals\n * @see https://www.w3.org/TR/xml11/#NT-AttValue\n *\n * Literal whitespace other than space that appear in attribute values\n * are serialized as their entity references, so they will be preserved.\n * (In contrast to whitespace literals in the input which are normalized to spaces)\n * @see https://www.w3.org/TR/xml11/#AVNormalize\n * @see https://w3c.github.io/DOM-Parsing/#serializing-an-element-s-attributes\n */ function $bb2e977174592952$var$addSerializedAttribute(buf, qualifiedName, value) {\n buf.push(' ', qualifiedName, '=\"', value.replace(/[<>&\"\\t\\n\\r]/g, $bb2e977174592952$var$_xmlEncoder), '\"');\n}\nfunction $bb2e977174592952$var$serializeToString(node, buf, isHTML, nodeFilter, visibleNamespaces) {\n if (!visibleNamespaces) visibleNamespaces = [];\n if (nodeFilter) {\n node = nodeFilter(node);\n if (node) {\n if (typeof node == 'string') {\n buf.push(node);\n return;\n }\n } else return;\n //buf.sort.apply(attrs, attributeSorter);\n }\n switch(node.nodeType){\n case $bb2e977174592952$var$ELEMENT_NODE:\n var attrs = node.attributes;\n var len = attrs.length;\n var child = node.firstChild;\n var nodeName = node.tagName;\n isHTML = $bb2e977174592952$var$NAMESPACE.isHTML(node.namespaceURI) || isHTML;\n var prefixedNodeName = nodeName;\n if (!isHTML && !node.prefix && node.namespaceURI) {\n var defaultNS;\n // lookup current default ns from `xmlns` attribute\n for(var ai = 0; ai < attrs.length; ai++)if (attrs.item(ai).name === 'xmlns') {\n defaultNS = attrs.item(ai).value;\n break;\n }\n if (!defaultNS) // lookup current default ns in visibleNamespaces\n for(var nsi = visibleNamespaces.length - 1; nsi >= 0; nsi--){\n var namespace = visibleNamespaces[nsi];\n if (namespace.prefix === '' && namespace.namespace === node.namespaceURI) {\n defaultNS = namespace.namespace;\n break;\n }\n }\n if (defaultNS !== node.namespaceURI) for(var nsi = visibleNamespaces.length - 1; nsi >= 0; nsi--){\n var namespace = visibleNamespaces[nsi];\n if (namespace.namespace === node.namespaceURI) {\n if (namespace.prefix) prefixedNodeName = namespace.prefix + ':' + nodeName;\n break;\n }\n }\n }\n buf.push('<', prefixedNodeName);\n for(var i = 0; i < len; i++){\n // add namespaces for attributes\n var attr = attrs.item(i);\n if (attr.prefix == 'xmlns') visibleNamespaces.push({\n prefix: attr.localName,\n namespace: attr.value\n });\n else if (attr.nodeName == 'xmlns') visibleNamespaces.push({\n prefix: '',\n namespace: attr.value\n });\n }\n for(var i = 0; i < len; i++){\n var attr = attrs.item(i);\n if ($bb2e977174592952$var$needNamespaceDefine(attr, isHTML, visibleNamespaces)) {\n var prefix = attr.prefix || '';\n var uri = attr.namespaceURI;\n $bb2e977174592952$var$addSerializedAttribute(buf, prefix ? 'xmlns:' + prefix : \"xmlns\", uri);\n visibleNamespaces.push({\n prefix: prefix,\n namespace: uri\n });\n }\n $bb2e977174592952$var$serializeToString(attr, buf, isHTML, nodeFilter, visibleNamespaces);\n }\n // add namespace for current node\n if (nodeName === prefixedNodeName && $bb2e977174592952$var$needNamespaceDefine(node, isHTML, visibleNamespaces)) {\n var prefix = node.prefix || '';\n var uri = node.namespaceURI;\n $bb2e977174592952$var$addSerializedAttribute(buf, prefix ? 'xmlns:' + prefix : \"xmlns\", uri);\n visibleNamespaces.push({\n prefix: prefix,\n namespace: uri\n });\n }\n if (child || isHTML && !/^(?:meta|link|img|br|hr|input)$/i.test(nodeName)) {\n buf.push('>');\n //if is cdata child node\n if (isHTML && /^script$/i.test(nodeName)) while(child){\n if (child.data) buf.push(child.data);\n else $bb2e977174592952$var$serializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n child = child.nextSibling;\n }\n else while(child){\n $bb2e977174592952$var$serializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n child = child.nextSibling;\n }\n buf.push('</', prefixedNodeName, '>');\n } else buf.push('/>');\n // remove added visible namespaces\n //visibleNamespaces.length = startVisibleNamespaces;\n return;\n case $bb2e977174592952$var$DOCUMENT_NODE:\n case $bb2e977174592952$var$DOCUMENT_FRAGMENT_NODE:\n var child = node.firstChild;\n while(child){\n $bb2e977174592952$var$serializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n child = child.nextSibling;\n }\n return;\n case $bb2e977174592952$var$ATTRIBUTE_NODE:\n return $bb2e977174592952$var$addSerializedAttribute(buf, node.name, node.value);\n case $bb2e977174592952$var$TEXT_NODE:\n /**\n\t\t * The ampersand character (&) and the left angle bracket (<) must not appear in their literal form,\n\t\t * except when used as markup delimiters, or within a comment, a processing instruction, or a CDATA section.\n\t\t * If they are needed elsewhere, they must be escaped using either numeric character references or the strings\n\t\t * `&` and `<` respectively.\n\t\t * The right angle bracket (>) may be represented using the string \" > \", and must, for compatibility,\n\t\t * be escaped using either `>` or a character reference when it appears in the string `]]>` in content,\n\t\t * when that string is not marking the end of a CDATA section.\n\t\t *\n\t\t * In the content of elements, character data is any string of characters\n\t\t * which does not contain the start-delimiter of any markup\n\t\t * and does not include the CDATA-section-close delimiter, `]]>`.\n\t\t *\n\t\t * @see https://www.w3.org/TR/xml/#NT-CharData\n\t\t * @see https://w3c.github.io/DOM-Parsing/#xml-serializing-a-text-node\n\t\t */ return buf.push(node.data.replace(/[<&>]/g, $bb2e977174592952$var$_xmlEncoder));\n case $bb2e977174592952$var$CDATA_SECTION_NODE:\n return buf.push('<![CDATA[', node.data, ']]>');\n case $bb2e977174592952$var$COMMENT_NODE:\n return buf.push(\"<!--\", node.data, \"-->\");\n case $bb2e977174592952$var$DOCUMENT_TYPE_NODE:\n var pubid = node.publicId;\n var sysid = node.systemId;\n buf.push('<!DOCTYPE ', node.name);\n if (pubid) {\n buf.push(' PUBLIC ', pubid);\n if (sysid && sysid != '.') buf.push(' ', sysid);\n buf.push('>');\n } else if (sysid && sysid != '.') buf.push(' SYSTEM ', sysid, '>');\n else {\n var sub = node.internalSubset;\n if (sub) buf.push(\" [\", sub, \"]\");\n buf.push(\">\");\n }\n return;\n case $bb2e977174592952$var$PROCESSING_INSTRUCTION_NODE:\n return buf.push(\"<?\", node.target, \" \", node.data, \"?>\");\n case $bb2e977174592952$var$ENTITY_REFERENCE_NODE:\n return buf.push('&', node.nodeName, ';');\n //case ENTITY_NODE:\n //case NOTATION_NODE:\n default:\n buf.push('??', node.nodeName);\n }\n}\nfunction $bb2e977174592952$var$importNode(doc, node, deep) {\n var node2;\n switch(node.nodeType){\n case $bb2e977174592952$var$ELEMENT_NODE:\n node2 = node.cloneNode(false);\n node2.ownerDocument = doc;\n //var attrs = node2.attributes;\n //var len = attrs.length;\n //for(var i=0;i<len;i++){\n //node2.setAttributeNodeNS(importNode(doc,attrs.item(i),deep));\n //}\n case $bb2e977174592952$var$DOCUMENT_FRAGMENT_NODE:\n break;\n case $bb2e977174592952$var$ATTRIBUTE_NODE:\n deep = true;\n break;\n }\n if (!node2) node2 = node.cloneNode(false); //false\n node2.ownerDocument = doc;\n node2.parentNode = null;\n if (deep) {\n var child = node.firstChild;\n while(child){\n node2.appendChild($bb2e977174592952$var$importNode(doc, child, deep));\n child = child.nextSibling;\n }\n }\n return node2;\n}\n//\n//var _relationMap = {firstChild:1,lastChild:1,previousSibling:1,nextSibling:1,\n//\t\t\t\t\tattributes:1,childNodes:1,parentNode:1,documentElement:1,doctype,};\nfunction $bb2e977174592952$var$cloneNode(doc, node, deep) {\n var node2 = new node.constructor();\n for(var n in node)if (Object.prototype.hasOwnProperty.call(node, n)) {\n var v = node[n];\n if (typeof v != \"object\") {\n if (v != node2[n]) node2[n] = v;\n }\n }\n if (node.childNodes) node2.childNodes = new $bb2e977174592952$var$NodeList();\n node2.ownerDocument = doc;\n switch(node2.nodeType){\n case $bb2e977174592952$var$ELEMENT_NODE:\n var attrs = node.attributes;\n var attrs2 = node2.attributes = new $bb2e977174592952$var$NamedNodeMap();\n var len = attrs.length;\n attrs2._ownerElement = node2;\n for(var i = 0; i < len; i++)node2.setAttributeNode($bb2e977174592952$var$cloneNode(doc, attrs.item(i), true));\n break;\n case $bb2e977174592952$var$ATTRIBUTE_NODE:\n deep = true;\n }\n if (deep) {\n var child = node.firstChild;\n while(child){\n node2.appendChild($bb2e977174592952$var$cloneNode(doc, child, deep));\n child = child.nextSibling;\n }\n }\n return node2;\n}\nfunction $bb2e977174592952$var$__set__(object, key, value) {\n object[key] = value;\n}\n//do dynamic\ntry {\n if (Object.defineProperty) {\n Object.defineProperty($bb2e977174592952$var$LiveNodeList.prototype, 'length', {\n get: function() {\n $bb2e977174592952$var$_updateLiveList(this);\n return this.$$length;\n }\n });\n Object.defineProperty($bb2e977174592952$var$Node.prototype, 'textContent', {\n get: function() {\n return getTextContent(this);\n },\n set: function(data) {\n switch(this.nodeType){\n case $bb2e977174592952$var$ELEMENT_NODE:\n case $bb2e977174592952$var$DOCUMENT_FRAGMENT_NODE:\n while(this.firstChild)this.removeChild(this.firstChild);\n if (data || String(data)) this.appendChild(this.ownerDocument.createTextNode(data));\n break;\n default:\n this.data = data;\n this.value = data;\n this.nodeValue = data;\n }\n }\n });\n function getTextContent(node) {\n switch(node.nodeType){\n case $bb2e977174592952$var$ELEMENT_NODE:\n case $bb2e977174592952$var$DOCUMENT_FRAGMENT_NODE:\n var buf = [];\n node = node.firstChild;\n while(node){\n if (node.nodeType !== 7 && node.nodeType !== 8) buf.push(getTextContent(node));\n node = node.nextSibling;\n }\n return buf.join('');\n default:\n return node.nodeValue;\n }\n }\n $bb2e977174592952$var$__set__ = function(object, key, value) {\n //console.log(value)\n object['$$' + key] = value;\n };\n }\n} catch (e) {}\n$bb2e977174592952$export$d1d99cf900472499 = $bb2e977174592952$var$DocumentType;\n$bb2e977174592952$export$fe58bcf938607f6a = $bb2e977174592952$var$DOMException;\n$bb2e977174592952$export$455426655eab1d48 = $bb2e977174592952$var$DOMImplementation;\n$bb2e977174592952$export$db77ccec0bb4ccac = $bb2e977174592952$var$Element;\n$bb2e977174592952$export$85c928794f8d04d4 = $bb2e977174592952$var$Node;\n$bb2e977174592952$export$79b41aa5d56abdff = $bb2e977174592952$var$NodeList;\n$bb2e977174592952$export$64f0bed4ae6f0f24 = $bb2e977174592952$var$XMLSerializer; //}\n\n});\nparcelRegister(\"1lH7b\", function(module, exports) {\n\n$parcel$export(module.exports, \"find\", () => $0fb9324db38cb335$export$71aa6c912b956294, (v) => $0fb9324db38cb335$export$71aa6c912b956294 = v);\n$parcel$export(module.exports, \"freeze\", () => $0fb9324db38cb335$export$792f3d81ea979f55, (v) => $0fb9324db38cb335$export$792f3d81ea979f55 = v);\n$parcel$export(module.exports, \"NAMESPACE\", () => $0fb9324db38cb335$export$6aad947bda0f3f46, (v) => $0fb9324db38cb335$export$6aad947bda0f3f46 = v);\nvar $0fb9324db38cb335$export$e6e34fd1f2686227;\nvar $0fb9324db38cb335$export$71aa6c912b956294;\nvar $0fb9324db38cb335$export$792f3d81ea979f55;\nvar $0fb9324db38cb335$export$c6cb9dd1e3ada1aa;\nvar $0fb9324db38cb335$export$6aad947bda0f3f46;\n'use strict';\n/**\n * Ponyfill for `Array.prototype.find` which is only available in ES6 runtimes.\n *\n * Works with anything that has a `length` property and index access properties, including NodeList.\n *\n * @template {unknown} T\n * @param {Array<T> | ({length:number, [number]: T})} list\n * @param {function (item: T, index: number, list:Array<T> | ({length:number, [number]: T})):boolean} predicate\n * @param {Partial<Pick<ArrayConstructor['prototype'], 'find'>>?} ac `Array.prototype` by default,\n * \t\t\t\tallows injecting a custom implementation in tests\n * @returns {T | undefined}\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find\n * @see https://tc39.es/ecma262/multipage/indexed-collections.html#sec-array.prototype.find\n */ function $0fb9324db38cb335$var$find(list, predicate, ac) {\n if (ac === undefined) ac = Array.prototype;\n if (list && typeof ac.find === 'function') return ac.find.call(list, predicate);\n for(var i = 0; i < list.length; i++)if (Object.prototype.hasOwnProperty.call(list, i)) {\n var item = list[i];\n if (predicate.call(undefined, item, i, list)) return item;\n }\n}\n/**\n * \"Shallow freezes\" an object to render it immutable.\n * Uses `Object.freeze` if available,\n * otherwise the immutability is only in the type.\n *\n * Is used to create \"enum like\" objects.\n *\n * @template T\n * @param {T} object the object to freeze\n * @param {Pick<ObjectConstructor, 'freeze'> = Object} oc `Object` by default,\n * \t\t\t\tallows to inject custom object constructor for tests\n * @returns {Readonly<T>}\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze\n */ function $0fb9324db38cb335$var$freeze(object, oc) {\n if (oc === undefined) oc = Object;\n return oc && typeof oc.freeze === 'function' ? oc.freeze(object) : object;\n}\n/**\n * Since we can not rely on `Object.assign` we provide a simplified version\n * that is sufficient for our needs.\n *\n * @param {Object} target\n * @param {Object | null | undefined} source\n *\n * @returns {Object} target\n * @throws TypeError if target is not an object\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\n * @see https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-object.assign\n */ function $0fb9324db38cb335$var$assign(target, source) {\n if (target === null || typeof target !== 'object') throw new TypeError('target is not an object');\n for(var key in source)if (Object.prototype.hasOwnProperty.call(source, key)) target[key] = source[key];\n return target;\n}\n/**\n * All mime types that are allowed as input to `DOMParser.parseFromString`\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString#Argument02 MDN\n * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#domparsersupportedtype WHATWG HTML Spec\n * @see DOMParser.prototype.parseFromString\n */ var $0fb9324db38cb335$var$MIME_TYPE = $0fb9324db38cb335$var$freeze({\n /**\n\t * `text/html`, the only mime type that triggers treating an XML document as HTML.\n\t *\n\t * @see DOMParser.SupportedType.isHTML\n\t * @see https://www.iana.org/assignments/media-types/text/html IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/HTML Wikipedia\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString MDN\n\t * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-domparser-parsefromstring WHATWG HTML Spec\n\t */ HTML: 'text/html',\n /**\n\t * Helper method to check a mime type if it indicates an HTML document\n\t *\n\t * @param {string} [value]\n\t * @returns {boolean}\n\t *\n\t * @see https://www.iana.org/assignments/media-types/text/html IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/HTML Wikipedia\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString MDN\n\t * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-domparser-parsefromstring \t */ isHTML: function(value) {\n return value === $0fb9324db38cb335$var$MIME_TYPE.HTML;\n },\n /**\n\t * `application/xml`, the standard mime type for XML documents.\n\t *\n\t * @see https://www.iana.org/assignments/media-types/application/xml IANA MimeType registration\n\t * @see https://tools.ietf.org/html/rfc7303#section-9.1 RFC 7303\n\t * @see https://en.wikipedia.org/wiki/XML_and_MIME Wikipedia\n\t */ XML_APPLICATION: 'application/xml',\n /**\n\t * `text/html`, an alias for `application/xml`.\n\t *\n\t * @see https://tools.ietf.org/html/rfc7303#section-9.2 RFC 7303\n\t * @see https://www.iana.org/assignments/media-types/text/xml IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/XML_and_MIME Wikipedia\n\t */ XML_TEXT: 'text/xml',\n /**\n\t * `application/xhtml+xml`, indicates an XML document that has the default HTML namespace,\n\t * but is parsed as an XML document.\n\t *\n\t * @see https://www.iana.org/assignments/media-types/application/xhtml+xml IANA MimeType registration\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocument WHATWG DOM Spec\n\t * @see https://en.wikipedia.org/wiki/XHTML Wikipedia\n\t */ XML_XHTML_APPLICATION: 'application/xhtml+xml',\n /**\n\t * `image/svg+xml`,\n\t *\n\t * @see https://www.iana.org/assignments/media-types/image/svg+xml IANA MimeType registration\n\t * @see https://www.w3.org/TR/SVG11/ W3C SVG 1.1\n\t * @see https://en.wikipedia.org/wiki/Scalable_Vector_Graphics Wikipedia\n\t */ XML_SVG_IMAGE: 'image/svg+xml'\n});\n/**\n * Namespaces that are used in this code base.\n *\n * @see http://www.w3.org/TR/REC-xml-names\n */ var $0fb9324db38cb335$var$NAMESPACE = $0fb9324db38cb335$var$freeze({\n /**\n\t * The XHTML namespace.\n\t *\n\t * @see http://www.w3.org/1999/xhtml\n\t */ HTML: 'http://www.w3.org/1999/xhtml',\n /**\n\t * Checks if `uri` equals `NAMESPACE.HTML`.\n\t *\n\t * @param {string} [uri]\n\t *\n\t * @see NAMESPACE.HTML\n\t */ isHTML: function(uri) {\n return uri === $0fb9324db38cb335$var$NAMESPACE.HTML;\n },\n /**\n\t * The SVG namespace.\n\t *\n\t * @see http://www.w3.org/2000/svg\n\t */ SVG: 'http://www.w3.org/2000/svg',\n /**\n\t * The `xml:` namespace.\n\t *\n\t * @see http://www.w3.org/XML/1998/namespace\n\t */ XML: 'http://www.w3.org/XML/1998/namespace',\n /**\n\t * The `xmlns:` namespace\n\t *\n\t * @see https://www.w3.org/2000/xmlns/\n\t */ XMLNS: 'http://www.w3.org/2000/xmlns/'\n});\n$0fb9324db38cb335$export$e6e34fd1f2686227 = $0fb9324db38cb335$var$assign;\n$0fb9324db38cb335$export$71aa6c912b956294 = $0fb9324db38cb335$var$find;\n$0fb9324db38cb335$export$792f3d81ea979f55 = $0fb9324db38cb335$var$freeze;\n$0fb9324db38cb335$export$c6cb9dd1e3ada1aa = $0fb9324db38cb335$var$MIME_TYPE;\n$0fb9324db38cb335$export$6aad947bda0f3f46 = $0fb9324db38cb335$var$NAMESPACE;\n\n});\n\n\nparcelRegister(\"e1wOM\", function(module, exports) {\n\n$parcel$export(module.exports, \"DOMParser\", () => $a35a9da3924a3c76$export$1059c6e7d2ce5669, (v) => $a35a9da3924a3c76$export$1059c6e7d2ce5669 = v);\nvar $a35a9da3924a3c76$export$181392475aa39887;\nvar $a35a9da3924a3c76$export$ba13e0e2f19e61a1;\nvar $a35a9da3924a3c76$export$1059c6e7d2ce5669;\n\nvar $1lH7b = parcelRequire(\"1lH7b\");\n\nvar $g4mEx = parcelRequire(\"g4mEx\");\n\nvar $gH85p = parcelRequire(\"gH85p\");\n\nvar $ktUTz = parcelRequire(\"ktUTz\");\nvar $a35a9da3924a3c76$var$DOMImplementation = $g4mEx.DOMImplementation;\nvar $a35a9da3924a3c76$var$NAMESPACE = $1lH7b.NAMESPACE;\nvar $a35a9da3924a3c76$var$ParseError = $ktUTz.ParseError;\nvar $a35a9da3924a3c76$var$XMLReader = $ktUTz.XMLReader;\n/**\n * Normalizes line ending according to https://www.w3.org/TR/xml11/#sec-line-ends:\n *\n * > XML parsed entities are often stored in computer files which,\n * > for editing convenience, are organized into lines.\n * > These lines are typically separated by some combination\n * > of the characters CARRIAGE RETURN (#xD) and LINE FEED (#xA).\n * >\n * > To simplify the tasks of applications, the XML processor must behave\n * > as if it normalized all line breaks in external parsed entities (including the document entity)\n * > on input, before parsing, by translating all of the following to a single #xA character:\n * >\n * > 1. the two-character sequence #xD #xA\n * > 2. the two-character sequence #xD #x85\n * > 3. the single character #x85\n * > 4. the single character #x2028\n * > 5. any #xD character that is not immediately followed by #xA or #x85.\n *\n * @param {string} input\n * @returns {string}\n */ function $a35a9da3924a3c76$var$normalizeLineEndings(input) {\n return input.replace(/\\r[\\n\\u0085]/g, '\\n').replace(/[\\r\\u0085\\u2028]/g, '\\n');\n}\n/**\n * @typedef Locator\n * @property {number} [columnNumber]\n * @property {number} [lineNumber]\n */ /**\n * @typedef DOMParserOptions\n * @property {DOMHandler} [domBuilder]\n * @property {Function} [errorHandler]\n * @property {(string) => string} [normalizeLineEndings] used to replace line endings before parsing\n * \t\t\t\t\t\tdefaults to `normalizeLineEndings`\n * @property {Locator} [locator]\n * @property {Record<string, string>} [xmlns]\n *\n * @see normalizeLineEndings\n */ /**\n * The DOMParser interface provides the ability to parse XML or HTML source code\n * from a string into a DOM `Document`.\n *\n * _xmldom is different from the spec in that it allows an `options` parameter,\n * to override the default behavior._\n *\n * @param {DOMParserOptions} [options]\n * @constructor\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser\n * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-parsing-and-serialization\n */ function $a35a9da3924a3c76$var$DOMParser(options) {\n this.options = options || {\n locator: {}\n };\n}\n$a35a9da3924a3c76$var$DOMParser.prototype.parseFromString = function(source, mimeType) {\n var options = this.options;\n var sax = new $a35a9da3924a3c76$var$XMLReader();\n var domBuilder = options.domBuilder || new $a35a9da3924a3c76$var$DOMHandler(); //contentHandler and LexicalHandler\n var errorHandler = options.errorHandler;\n var locator = options.locator;\n var defaultNSMap = options.xmlns || {};\n var isHTML = /\\/x?html?$/.test(mimeType); //mimeType.toLowerCase().indexOf('html') > -1;\n var entityMap = isHTML ? $gH85p.HTML_ENTITIES : $gH85p.XML_ENTITIES;\n if (locator) domBuilder.setDocumentLocator(locator);\n sax.errorHandler = $a35a9da3924a3c76$var$buildErrorHandler(errorHandler, domBuilder, locator);\n sax.domBuilder = options.domBuilder || domBuilder;\n if (isHTML) defaultNSMap[''] = $a35a9da3924a3c76$var$NAMESPACE.HTML;\n defaultNSMap.xml = defaultNSMap.xml || $a35a9da3924a3c76$var$NAMESPACE.XML;\n var normalize = options.normalizeLineEndings || $a35a9da3924a3c76$var$normalizeLineEndings;\n if (source && typeof source === 'string') sax.parse(normalize(source), defaultNSMap, entityMap);\n else sax.errorHandler.error('invalid doc source');\n return domBuilder.doc;\n};\nfunction $a35a9da3924a3c76$var$buildErrorHandler(errorImpl, domBuilder, locator) {\n if (!errorImpl) {\n if (domBuilder instanceof $a35a9da3924a3c76$var$DOMHandler) return domBuilder;\n errorImpl = domBuilder;\n }\n var errorHandler = {};\n var isCallback = errorImpl instanceof Function;\n locator = locator || {};\n function build(key) {\n var fn = errorImpl[key];\n if (!fn && isCallback) fn = errorImpl.length == 2 ? function(msg) {\n errorImpl(key, msg);\n } : errorImpl;\n errorHandler[key] = fn && function(msg) {\n fn('[xmldom ' + key + ']\\t' + msg + $a35a9da3924a3c76$var$_locator(locator));\n } || function() {};\n }\n build('warning');\n build('error');\n build('fatalError');\n return errorHandler;\n}\n//console.log('#\\n\\n\\n\\n\\n\\n\\n####')\n/**\n * +ContentHandler+ErrorHandler\n * +LexicalHandler+EntityResolver2\n * -DeclHandler-DTDHandler\n *\n * DefaultHandler:EntityResolver, DTDHandler, ContentHandler, ErrorHandler\n * DefaultHandler2:DefaultHandler,LexicalHandler, DeclHandler, EntityResolver2\n * @link http://www.saxproject.org/apidoc/org/xml/sax/helpers/DefaultHandler.html\n */ function $a35a9da3924a3c76$var$DOMHandler() {\n this.cdata = false;\n}\nfunction $a35a9da3924a3c76$var$position(locator, node) {\n node.lineNumber = locator.lineNumber;\n node.columnNumber = locator.columnNumber;\n}\n/**\n * @see org.xml.sax.ContentHandler#startDocument\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ContentHandler.html\n */ $a35a9da3924a3c76$var$DOMHandler.prototype = {\n startDocument: function() {\n this.doc = new $a35a9da3924a3c76$var$DOMImplementation().createDocument(null, null, null);\n if (this.locator) this.doc.documentURI = this.locator.systemId;\n },\n startElement: function(namespaceURI, localName, qName, attrs) {\n var doc = this.doc;\n var el = doc.createElementNS(namespaceURI, qName || localName);\n var len = attrs.length;\n $a35a9da3924a3c76$var$appendElement(this, el);\n this.currentElement = el;\n this.locator && $a35a9da3924a3c76$var$position(this.locator, el);\n for(var i = 0; i < len; i++){\n var namespaceURI = attrs.getURI(i);\n var value = attrs.getValue(i);\n var qName = attrs.getQName(i);\n var attr = doc.createAttributeNS(namespaceURI, qName);\n this.locator && $a35a9da3924a3c76$var$position(attrs.getLocator(i), attr);\n attr.value = attr.nodeValue = value;\n el.setAttributeNode(attr);\n }\n },\n endElement: function(namespaceURI, localName, qName) {\n var current = this.currentElement;\n var tagName = current.tagName;\n this.currentElement = current.parentNode;\n },\n startPrefixMapping: function(prefix, uri) {},\n endPrefixMapping: function(prefix) {},\n processingInstruction: function(target, data) {\n var ins = this.doc.createProcessingInstruction(target, data);\n this.locator && $a35a9da3924a3c76$var$position(this.locator, ins);\n $a35a9da3924a3c76$var$appendElement(this, ins);\n },\n ignorableWhitespace: function(ch, start, length) {},\n characters: function(chars, start, length) {\n chars = $a35a9da3924a3c76$var$_toString.apply(this, arguments);\n //console.log(chars)\n if (chars) {\n if (this.cdata) var charNode = this.doc.createCDATASection(chars);\n else var charNode = this.doc.createTextNode(chars);\n if (this.currentElement) this.currentElement.appendChild(charNode);\n else if (/^\\s*$/.test(chars)) this.doc.appendChild(charNode);\n this.locator && $a35a9da3924a3c76$var$position(this.locator, charNode);\n }\n },\n skippedEntity: function(name) {},\n endDocument: function() {\n this.doc.normalize();\n },\n setDocumentLocator: function(locator) {\n if (this.locator = locator) locator.lineNumber = 0;\n },\n //LexicalHandler\n comment: function(chars, start, length) {\n chars = $a35a9da3924a3c76$var$_toString.apply(this, arguments);\n var comm = this.doc.createComment(chars);\n this.locator && $a35a9da3924a3c76$var$position(this.locator, comm);\n $a35a9da3924a3c76$var$appendElement(this, comm);\n },\n startCDATA: function() {\n //used in characters() methods\n this.cdata = true;\n },\n endCDATA: function() {\n this.cdata = false;\n },\n startDTD: function(name, publicId, systemId) {\n var impl = this.doc.implementation;\n if (impl && impl.createDocumentType) {\n var dt = impl.createDocumentType(name, publicId, systemId);\n this.locator && $a35a9da3924a3c76$var$position(this.locator, dt);\n $a35a9da3924a3c76$var$appendElement(this, dt);\n this.doc.doctype = dt;\n }\n },\n /**\n\t * @see org.xml.sax.ErrorHandler\n\t * @link http://www.saxproject.org/apidoc/org/xml/sax/ErrorHandler.html\n\t */ warning: function(error) {\n console.warn('[xmldom warning]\\t' + error, $a35a9da3924a3c76$var$_locator(this.locator));\n },\n error: function(error) {\n console.error('[xmldom error]\\t' + error, $a35a9da3924a3c76$var$_locator(this.locator));\n },\n fatalError: function(error) {\n throw new $a35a9da3924a3c76$var$ParseError(error, this.locator);\n }\n};\nfunction $a35a9da3924a3c76$var$_locator(l) {\n if (l) return '\\n@' + (l.systemId || '') + '#[line:' + l.lineNumber + ',col:' + l.columnNumber + ']';\n}\nfunction $a35a9da3924a3c76$var$_toString(chars, start, length) {\n if (typeof chars == 'string') return chars.substr(start, length);\n else {\n if (chars.length >= start + length || start) return new java.lang.String(chars, start, length) + '';\n return chars;\n }\n}\n/*\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/LexicalHandler.html\n * used method of org.xml.sax.ext.LexicalHandler:\n * #comment(chars, start, length)\n * #startCDATA()\n * #endCDATA()\n * #startDTD(name, publicId, systemId)\n *\n *\n * IGNORED method of org.xml.sax.ext.LexicalHandler:\n * #endDTD()\n * #startEntity(name)\n * #endEntity(name)\n *\n *\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/DeclHandler.html\n * IGNORED method of org.xml.sax.ext.DeclHandler\n * \t#attributeDecl(eName, aName, type, mode, value)\n * #elementDecl(name, model)\n * #externalEntityDecl(name, publicId, systemId)\n * #internalEntityDecl(name, value)\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/EntityResolver2.html\n * IGNORED method of org.xml.sax.EntityResolver2\n * #resolveEntity(String name,String publicId,String baseURI,String systemId)\n * #resolveEntity(publicId, systemId)\n * #getExternalSubset(name, baseURI)\n * @link http://www.saxproject.org/apidoc/org/xml/sax/DTDHandler.html\n * IGNORED method of org.xml.sax.DTDHandler\n * #notationDecl(name, publicId, systemId) {};\n * #unparsedEntityDecl(name, publicId, systemId, notationName) {};\n */ \"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl\".replace(/\\w+/g, function(key) {\n $a35a9da3924a3c76$var$DOMHandler.prototype[key] = function() {\n return null;\n };\n});\n/* Private static helpers treated below as private instance methods, so don't need to add these to the public API; we might use a Relator to also get rid of non-standard public properties */ function $a35a9da3924a3c76$var$appendElement(hander, node) {\n if (!hander.currentElement) hander.doc.appendChild(node);\n else hander.currentElement.appendChild(node);\n} //appendChild and setAttributeNS are preformance key\n$a35a9da3924a3c76$export$181392475aa39887 = $a35a9da3924a3c76$var$DOMHandler;\n$a35a9da3924a3c76$export$ba13e0e2f19e61a1 = $a35a9da3924a3c76$var$normalizeLineEndings;\n$a35a9da3924a3c76$export$1059c6e7d2ce5669 = $a35a9da3924a3c76$var$DOMParser;\n\n});\nparcelRegister(\"gH85p\", function(module, exports) {\n\n$parcel$export(module.exports, \"XML_ENTITIES\", () => $c276ef3f9204b1e9$export$91f0e5ff03dc84f, (v) => $c276ef3f9204b1e9$export$91f0e5ff03dc84f = v);\n$parcel$export(module.exports, \"HTML_ENTITIES\", () => $c276ef3f9204b1e9$export$b7e4d4631df36afa, (v) => $c276ef3f9204b1e9$export$b7e4d4631df36afa = v);\n/**\n * The entities that are predefined in every XML document.\n *\n * @see https://www.w3.org/TR/2006/REC-xml11-20060816/#sec-predefined-ent W3C XML 1.1\n * @see https://www.w3.org/TR/2008/REC-xml-20081126/#sec-predefined-ent W3C XML 1.0\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Predefined_entities_in_XML Wikipedia\n */ var $c276ef3f9204b1e9$export$91f0e5ff03dc84f;\n/**\n * A map of all entities that are detected in an HTML document.\n * They contain all entries from `XML_ENTITIES`.\n *\n * @see XML_ENTITIES\n * @see DOMParser.parseFromString\n * @see DOMImplementation.prototype.createHTMLDocument\n * @see https://html.spec.whatwg.org/#named-character-references WHATWG HTML(5) Spec\n * @see https://html.spec.whatwg.org/entities.json JSON\n * @see https://www.w3.org/TR/xml-entity-names/ W3C XML Entity Names\n * @see https://www.w3.org/TR/html4/sgml/entities.html W3C HTML4/SGML\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Character_entity_references_in_HTML Wikipedia (HTML)\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Entities_representing_special_characters_in_XHTML Wikpedia (XHTML)\n */ var $c276ef3f9204b1e9$export$b7e4d4631df36afa;\n/**\n * @deprecated use `HTML_ENTITIES` instead\n * @see HTML_ENTITIES\n */ var $c276ef3f9204b1e9$export$79451380caed3f98;\n'use strict';\n\nvar $1lH7b = parcelRequire(\"1lH7b\");\nvar $c276ef3f9204b1e9$require$freeze = $1lH7b.freeze;\n$c276ef3f9204b1e9$export$91f0e5ff03dc84f = $c276ef3f9204b1e9$require$freeze({\n amp: '&',\n apos: \"'\",\n gt: '>',\n lt: '<',\n quot: '\"'\n});\n$c276ef3f9204b1e9$export$b7e4d4631df36afa = $c276ef3f9204b1e9$require$freeze({\n Aacute: '\\u00C1',\n aacute: '\\u00E1',\n Abreve: '\\u0102',\n abreve: '\\u0103',\n ac: '\\u223E',\n acd: '\\u223F',\n acE: '\\u223E\\u0333',\n Acirc: '\\u00C2',\n acirc: '\\u00E2',\n acute: '\\u00B4',\n Acy: '\\u0410',\n acy: '\\u0430',\n AElig: '\\u00C6',\n aelig: '\\u00E6',\n af: '\\u2061',\n Afr: '\\uD835\\uDD04',\n afr: '\\uD835\\uDD1E',\n Agrave: '\\u00C0',\n agrave: '\\u00E0',\n alefsym: '\\u2135',\n aleph: '\\u2135',\n Alpha: '\\u0391',\n alpha: '\\u03B1',\n Amacr: '\\u0100',\n amacr: '\\u0101',\n amalg: '\\u2A3F',\n AMP: '\\u0026',\n amp: '\\u0026',\n And: '\\u2A53',\n and: '\\u2227',\n andand: '\\u2A55',\n andd: '\\u2A5C',\n andslope: '\\u2A58',\n andv: '\\u2A5A',\n ang: '\\u2220',\n ange: '\\u29A4',\n angle: '\\u2220',\n angmsd: '\\u2221',\n angmsdaa: '\\u29A8',\n angmsdab: '\\u29A9',\n angmsdac: '\\u29AA',\n angmsdad: '\\u29AB',\n angmsdae: '\\u29AC',\n angmsdaf: '\\u29AD',\n angmsdag: '\\u29AE',\n angmsdah: '\\u29AF',\n angrt: '\\u221F',\n angrtvb: '\\u22BE',\n angrtvbd: '\\u299D',\n angsph: '\\u2222',\n angst: '\\u00C5',\n angzarr: '\\u237C',\n Aogon: '\\u0104',\n aogon: '\\u0105',\n Aopf: '\\uD835\\uDD38',\n aopf: '\\uD835\\uDD52',\n ap: '\\u2248',\n apacir: '\\u2A6F',\n apE: '\\u2A70',\n ape: '\\u224A',\n apid: '\\u224B',\n apos: '\\u0027',\n ApplyFunction: '\\u2061',\n approx: '\\u2248',\n approxeq: '\\u224A',\n Aring: '\\u00C5',\n aring: '\\u00E5',\n Ascr: '\\uD835\\uDC9C',\n ascr: '\\uD835\\uDCB6',\n Assign: '\\u2254',\n ast: '\\u002A',\n asymp: '\\u2248',\n asympeq: '\\u224D',\n Atilde: '\\u00C3',\n atilde: '\\u00E3',\n Auml: '\\u00C4',\n auml: '\\u00E4',\n awconint: '\\u2233',\n awint: '\\u2A11',\n backcong: '\\u224C',\n backepsilon: '\\u03F6',\n backprime: '\\u2035',\n backsim: '\\u223D',\n backsimeq: '\\u22CD',\n Backslash: '\\u2216',\n Barv: '\\u2AE7',\n barvee: '\\u22BD',\n Barwed: '\\u2306',\n barwed: '\\u2305',\n barwedge: '\\u2305',\n bbrk: '\\u23B5',\n bbrktbrk: '\\u23B6',\n bcong: '\\u224C',\n Bcy: '\\u0411',\n bcy: '\\u0431',\n bdquo: '\\u201E',\n becaus: '\\u2235',\n Because: '\\u2235',\n because: '\\u2235',\n bemptyv: '\\u29B0',\n bepsi: '\\u03F6',\n bernou: '\\u212C',\n Bernoullis: '\\u212C',\n Beta: '\\u0392',\n beta: '\\u03B2',\n beth: '\\u2136',\n between: '\\u226C',\n Bfr: '\\uD835\\uDD05',\n bfr: '\\uD835\\uDD1F',\n bigcap: '\\u22C2',\n bigcirc: '\\u25EF',\n bigcup: '\\u22C3',\n bigodot: '\\u2A00',\n bigoplus: '\\u2A01',\n bigotimes: '\\u2A02',\n bigsqcup: '\\u2A06',\n bigstar: '\\u2605',\n bigtriangledown: '\\u25BD',\n bigtriangleup: '\\u25B3',\n biguplus: '\\u2A04',\n bigvee: '\\u22C1',\n bigwedge: '\\u22C0',\n bkarow: '\\u290D',\n blacklozenge: '\\u29EB',\n blacksquare: '\\u25AA',\n blacktriangle: '\\u25B4',\n blacktriangledown: '\\u25BE',\n blacktriangleleft: '\\u25C2',\n blacktriangleright: '\\u25B8',\n blank: '\\u2423',\n blk12: '\\u2592',\n blk14: '\\u2591',\n blk34: '\\u2593',\n block: '\\u2588',\n bne: '\\u003D\\u20E5',\n bnequiv: '\\u2261\\u20E5',\n bNot: '\\u2AED',\n bnot: '\\u2310',\n Bopf: '\\uD835\\uDD39',\n bopf: '\\uD835\\uDD53',\n bot: '\\u22A5',\n bottom: '\\u22A5',\n bowtie: '\\u22C8',\n boxbox: '\\u29C9',\n boxDL: '\\u2557',\n boxDl: '\\u2556',\n boxdL: '\\u2555',\n boxdl: '\\u2510',\n boxDR: '\\u2554',\n boxDr: '\\u2553',\n boxdR: '\\u2552',\n boxdr: '\\u250C',\n boxH: '\\u2550',\n boxh: '\\u2500',\n boxHD: '\\u2566',\n boxHd: '\\u2564',\n boxhD: '\\u2565',\n boxhd: '\\u252C',\n boxHU: '\\u2569',\n boxHu: '\\u2567',\n boxhU: '\\u2568',\n boxhu: '\\u2534',\n boxminus: '\\u229F',\n boxplus: '\\u229E',\n boxtimes: '\\u22A0',\n boxUL: '\\u255D',\n boxUl: '\\u255C',\n boxuL: '\\u255B',\n boxul: '\\u2518',\n boxUR: '\\u255A',\n boxUr: '\\u2559',\n boxuR: '\\u2558',\n boxur: '\\u2514',\n boxV: '\\u2551',\n boxv: '\\u2502',\n boxVH: '\\u256C',\n boxVh: '\\u256B',\n boxvH: '\\u256A',\n boxvh: '\\u253C',\n boxVL: '\\u2563',\n boxVl: '\\u2562',\n boxvL: '\\u2561',\n boxvl: '\\u2524',\n boxVR: '\\u2560',\n boxVr: '\\u255F',\n boxvR: '\\u255E',\n boxvr: '\\u251C',\n bprime: '\\u2035',\n Breve: '\\u02D8',\n breve: '\\u02D8',\n brvbar: '\\u00A6',\n Bscr: '\\u212C',\n bscr: '\\uD835\\uDCB7',\n bsemi: '\\u204F',\n bsim: '\\u223D',\n bsime: '\\u22CD',\n bsol: '\\u005C',\n bsolb: '\\u29C5',\n bsolhsub: '\\u27C8',\n bull: '\\u2022',\n bullet: '\\u2022',\n bump: '\\u224E',\n bumpE: '\\u2AAE',\n bumpe: '\\u224F',\n Bumpeq: '\\u224E',\n bumpeq: '\\u224F',\n Cacute: '\\u0106',\n cacute: '\\u0107',\n Cap: '\\u22D2',\n cap: '\\u2229',\n capand: '\\u2A44',\n capbrcup: '\\u2A49',\n capcap: '\\u2A4B',\n capcup: '\\u2A47',\n capdot: '\\u2A40',\n CapitalDifferentialD: '\\u2145',\n caps: '\\u2229\\uFE00',\n caret: '\\u2041',\n caron: '\\u02C7',\n Cayleys: '\\u212D',\n ccaps: '\\u2A4D',\n Ccaron: '\\u010C',\n ccaron: '\\u010D',\n Ccedil: '\\u00C7',\n ccedil: '\\u00E7',\n Ccirc: '\\u0108',\n ccirc: '\\u0109',\n Cconint: '\\u2230',\n ccups: '\\u2A4C',\n ccupssm: '\\u2A50',\n Cdot: '\\u010A',\n cdot: '\\u010B',\n cedil: '\\u00B8',\n Cedilla: '\\u00B8',\n cemptyv: '\\u29B2',\n cent: '\\u00A2',\n CenterDot: '\\u00B7',\n centerdot: '\\u00B7',\n Cfr: '\\u212D',\n cfr: '\\uD835\\uDD20',\n CHcy: '\\u0427',\n chcy: '\\u0447',\n check: '\\u2713',\n checkmark: '\\u2713',\n Chi: '\\u03A7',\n chi: '\\u03C7',\n cir: '\\u25CB',\n circ: '\\u02C6',\n circeq: '\\u2257',\n circlearrowleft: '\\u21BA',\n circlearrowright: '\\u21BB',\n circledast: '\\u229B',\n circledcirc: '\\u229A',\n circleddash: '\\u229D',\n CircleDot: '\\u2299',\n circledR: '\\u00AE',\n circledS: '\\u24C8',\n CircleMinus: '\\u2296',\n CirclePlus: '\\u2295',\n CircleTimes: '\\u2297',\n cirE: '\\u29C3',\n cire: '\\u2257',\n cirfnint: '\\u2A10',\n cirmid: '\\u2AEF',\n cirscir: '\\u29C2',\n ClockwiseContourIntegral: '\\u2232',\n CloseCurlyDoubleQuote: '\\u201D',\n CloseCurlyQuote: '\\u2019',\n clubs: '\\u2663',\n clubsuit: '\\u2663',\n Colon: '\\u2237',\n colon: '\\u003A',\n Colone: '\\u2A74',\n colone: '\\u2254',\n coloneq: '\\u2254',\n comma: '\\u002C',\n commat: '\\u0040',\n comp: '\\u2201',\n compfn: '\\u2218',\n complement: '\\u2201',\n complexes: '\\u2102',\n cong: '\\u2245',\n congdot: '\\u2A6D',\n Congruent: '\\u2261',\n Conint: '\\u222F',\n conint: '\\u222E',\n ContourIntegral: '\\u222E',\n Copf: '\\u2102',\n copf: '\\uD835\\uDD54',\n coprod: '\\u2210',\n Coproduct: '\\u2210',\n COPY: '\\u00A9',\n copy: '\\u00A9',\n copysr: '\\u2117',\n CounterClockwiseContourIntegral: '\\u2233',\n crarr: '\\u21B5',\n Cross: '\\u2A2F',\n cross: '\\u2717',\n Cscr: '\\uD835\\uDC9E',\n cscr: '\\uD835\\uDCB8',\n csub: '\\u2ACF',\n csube: '\\u2AD1',\n csup: '\\u2AD0',\n csupe: '\\u2AD2',\n ctdot: '\\u22EF',\n cudarrl: '\\u2938',\n cudarrr: '\\u2935',\n cuepr: '\\u22DE',\n cuesc: '\\u22DF',\n cularr: '\\u21B6',\n cularrp: '\\u293D',\n Cup: '\\u22D3',\n cup: '\\u222A',\n cupbrcap: '\\u2A48',\n CupCap: '\\u224D',\n cupcap: '\\u2A46',\n cupcup: '\\u2A4A',\n cupdot: '\\u228D',\n cupor: '\\u2A45',\n cups: '\\u222A\\uFE00',\n curarr: '\\u21B7',\n curarrm: '\\u293C',\n curlyeqprec: '\\u22DE',\n curlyeqsucc: '\\u22DF',\n curlyvee: '\\u22CE',\n curlywedge: '\\u22CF',\n curren: '\\u00A4',\n curvearrowleft: '\\u21B6',\n curvearrowright: '\\u21B7',\n cuvee: '\\u22CE',\n cuwed: '\\u22CF',\n cwconint: '\\u2232',\n cwint: '\\u2231',\n cylcty: '\\u232D',\n Dagger: '\\u2021',\n dagger: '\\u2020',\n daleth: '\\u2138',\n Darr: '\\u21A1',\n dArr: '\\u21D3',\n darr: '\\u2193',\n dash: '\\u2010',\n Dashv: '\\u2AE4',\n dashv: '\\u22A3',\n dbkarow: '\\u290F',\n dblac: '\\u02DD',\n Dcaron: '\\u010E',\n dcaron: '\\u010F',\n Dcy: '\\u0414',\n dcy: '\\u0434',\n DD: '\\u2145',\n dd: '\\u2146',\n ddagger: '\\u2021',\n ddarr: '\\u21CA',\n DDotrahd: '\\u2911',\n ddotseq: '\\u2A77',\n deg: '\\u00B0',\n Del: '\\u2207',\n Delta: '\\u0394',\n delta: '\\u03B4',\n demptyv: '\\u29B1',\n dfisht: '\\u297F',\n Dfr: '\\uD835\\uDD07',\n dfr: '\\uD835\\uDD21',\n dHar: '\\u2965',\n dharl: '\\u21C3',\n dharr: '\\u21C2',\n DiacriticalAcute: '\\u00B4',\n DiacriticalDot: '\\u02D9',\n DiacriticalDoubleAcute: '\\u02DD',\n DiacriticalGrave: '\\u0060',\n DiacriticalTilde: '\\u02DC',\n diam: '\\u22C4',\n Diamond: '\\u22C4',\n diamond: '\\u22C4',\n diamondsuit: '\\u2666',\n diams: '\\u2666',\n die: '\\u00A8',\n DifferentialD: '\\u2146',\n digamma: '\\u03DD',\n disin: '\\u22F2',\n div: '\\u00F7',\n divide: '\\u00F7',\n divideontimes: '\\u22C7',\n divonx: '\\u22C7',\n DJcy: '\\u0402',\n djcy: '\\u0452',\n dlcorn: '\\u231E',\n dlcrop: '\\u230D',\n dollar: '\\u0024',\n Dopf: '\\uD835\\uDD3B',\n dopf: '\\uD835\\uDD55',\n Dot: '\\u00A8',\n dot: '\\u02D9',\n DotDot: '\\u20DC',\n doteq: '\\u2250',\n doteqdot: '\\u2251',\n DotEqual: '\\u2250',\n dotminus: '\\u2238',\n dotplus: '\\u2214',\n dotsquare: '\\u22A1',\n doublebarwedge: '\\u2306',\n DoubleContourIntegral: '\\u222F',\n DoubleDot: '\\u00A8',\n DoubleDownArrow: '\\u21D3',\n DoubleLeftArrow: '\\u21D0',\n DoubleLeftRightArrow: '\\u21D4',\n DoubleLeftTee: '\\u2AE4',\n DoubleLongLeftArrow: '\\u27F8',\n DoubleLongLeftRightArrow: '\\u27FA',\n DoubleLongRightArrow: '\\u27F9',\n DoubleRightArrow: '\\u21D2',\n DoubleRightTee: '\\u22A8',\n DoubleUpArrow: '\\u21D1',\n DoubleUpDownArrow: '\\u21D5',\n DoubleVerticalBar: '\\u2225',\n DownArrow: '\\u2193',\n Downarrow: '\\u21D3',\n downarrow: '\\u2193',\n DownArrowBar: '\\u2913',\n DownArrowUpArrow: '\\u21F5',\n DownBreve: '\\u0311',\n downdownarrows: '\\u21CA',\n downharpoonleft: '\\u21C3',\n downharpoonright: '\\u21C2',\n DownLeftRightVector: '\\u2950',\n DownLeftTeeVector: '\\u295E',\n DownLeftVector: '\\u21BD',\n DownLeftVectorBar: '\\u2956',\n DownRightTeeVector: '\\u295F',\n DownRightVector: '\\u21C1',\n DownRightVectorBar: '\\u2957',\n DownTee: '\\u22A4',\n DownTeeArrow: '\\u21A7',\n drbkarow: '\\u2910',\n drcorn: '\\u231F',\n drcrop: '\\u230C',\n Dscr: '\\uD835\\uDC9F',\n dscr: '\\uD835\\uDCB9',\n DScy: '\\u0405',\n dscy: '\\u0455',\n dsol: '\\u29F6',\n Dstrok: '\\u0110',\n dstrok: '\\u0111',\n dtdot: '\\u22F1',\n dtri: '\\u25BF',\n dtrif: '\\u25BE',\n duarr: '\\u21F5',\n duhar: '\\u296F',\n dwangle: '\\u29A6',\n DZcy: '\\u040F',\n dzcy: '\\u045F',\n dzigrarr: '\\u27FF',\n Eacute: '\\u00C9',\n eacute: '\\u00E9',\n easter: '\\u2A6E',\n Ecaron: '\\u011A',\n ecaron: '\\u011B',\n ecir: '\\u2256',\n Ecirc: '\\u00CA',\n ecirc: '\\u00EA',\n ecolon: '\\u2255',\n Ecy: '\\u042D',\n ecy: '\\u044D',\n eDDot: '\\u2A77',\n Edot: '\\u0116',\n eDot: '\\u2251',\n edot: '\\u0117',\n ee: '\\u2147',\n efDot: '\\u2252',\n Efr: '\\uD835\\uDD08',\n efr: '\\uD835\\uDD22',\n eg: '\\u2A9A',\n Egrave: '\\u00C8',\n egrave: '\\u00E8',\n egs: '\\u2A96',\n egsdot: '\\u2A98',\n el: '\\u2A99',\n Element: '\\u2208',\n elinters: '\\u23E7',\n ell: '\\u2113',\n els: '\\u2A95',\n elsdot: '\\u2A97',\n Emacr: '\\u0112',\n emacr: '\\u0113',\n empty: '\\u2205',\n emptyset: '\\u2205',\n EmptySmallSquare: '\\u25FB',\n emptyv: '\\u2205',\n EmptyVerySmallSquare: '\\u25AB',\n emsp: '\\u2003',\n emsp13: '\\u2004',\n emsp14: '\\u2005',\n ENG: '\\u014A',\n eng: '\\u014B',\n ensp: '\\u2002',\n Eogon: '\\u0118',\n eogon: '\\u0119',\n Eopf: '\\uD835\\uDD3C',\n eopf: '\\uD835\\uDD56',\n epar: '\\u22D5',\n eparsl: '\\u29E3',\n eplus: '\\u2A71',\n epsi: '\\u03B5',\n Epsilon: '\\u0395',\n epsilon: '\\u03B5',\n epsiv: '\\u03F5',\n eqcirc: '\\u2256',\n eqcolon: '\\u2255',\n eqsim: '\\u2242',\n eqslantgtr: '\\u2A96',\n eqslantless: '\\u2A95',\n Equal: '\\u2A75',\n equals: '\\u003D',\n EqualTilde: '\\u2242',\n equest: '\\u225F',\n Equilibrium: '\\u21CC',\n equiv: '\\u2261',\n equivDD: '\\u2A78',\n eqvparsl: '\\u29E5',\n erarr: '\\u2971',\n erDot: '\\u2253',\n Escr: '\\u2130',\n escr: '\\u212F',\n esdot: '\\u2250',\n Esim: '\\u2A73',\n esim: '\\u2242',\n Eta: '\\u0397',\n eta: '\\u03B7',\n ETH: '\\u00D0',\n eth: '\\u00F0',\n Euml: '\\u00CB',\n euml: '\\u00EB',\n euro: '\\u20AC',\n excl: '\\u0021',\n exist: '\\u2203',\n Exists: '\\u2203',\n expectation: '\\u2130',\n ExponentialE: '\\u2147',\n exponentiale: '\\u2147',\n fallingdotseq: '\\u2252',\n Fcy: '\\u0424',\n fcy: '\\u0444',\n female: '\\u2640',\n ffilig: '\\uFB03',\n fflig: '\\uFB00',\n ffllig: '\\uFB04',\n Ffr: '\\uD835\\uDD09',\n ffr: '\\uD835\\uDD23',\n filig: '\\uFB01',\n FilledSmallSquare: '\\u25FC',\n FilledVerySmallSquare: '\\u25AA',\n fjlig: '\\u0066\\u006A',\n flat: '\\u266D',\n fllig: '\\uFB02',\n fltns: '\\u25B1',\n fnof: '\\u0192',\n Fopf: '\\uD835\\uDD3D',\n fopf: '\\uD835\\uDD57',\n ForAll: '\\u2200',\n forall: '\\u2200',\n fork: '\\u22D4',\n forkv: '\\u2AD9',\n Fouriertrf: '\\u2131',\n fpartint: '\\u2A0D',\n frac12: '\\u00BD',\n frac13: '\\u2153',\n frac14: '\\u00BC',\n frac15: '\\u2155',\n frac16: '\\u2159',\n frac18: '\\u215B',\n frac23: '\\u2154',\n frac25: '\\u2156',\n frac34: '\\u00BE',\n frac35: '\\u2157',\n frac38: '\\u215C',\n frac45: '\\u2158',\n frac56: '\\u215A',\n frac58: '\\u215D',\n frac78: '\\u215E',\n frasl: '\\u2044',\n frown: '\\u2322',\n Fscr: '\\u2131',\n fscr: '\\uD835\\uDCBB',\n gacute: '\\u01F5',\n Gamma: '\\u0393',\n gamma: '\\u03B3',\n Gammad: '\\u03DC',\n gammad: '\\u03DD',\n gap: '\\u2A86',\n Gbreve: '\\u011E',\n gbreve: '\\u011F',\n Gcedil: '\\u0122',\n Gcirc: '\\u011C',\n gcirc: '\\u011D',\n Gcy: '\\u0413',\n gcy: '\\u0433',\n Gdot: '\\u0120',\n gdot: '\\u0121',\n gE: '\\u2267',\n ge: '\\u2265',\n gEl: '\\u2A8C',\n gel: '\\u22DB',\n geq: '\\u2265',\n geqq: '\\u2267',\n geqslant: '\\u2A7E',\n ges: '\\u2A7E',\n gescc: '\\u2AA9',\n gesdot: '\\u2A80',\n gesdoto: '\\u2A82',\n gesdotol: '\\u2A84',\n gesl: '\\u22DB\\uFE00',\n gesles: '\\u2A94',\n Gfr: '\\uD835\\uDD0A',\n gfr: '\\uD835\\uDD24',\n Gg: '\\u22D9',\n gg: '\\u226B',\n ggg: '\\u22D9',\n gimel: '\\u2137',\n GJcy: '\\u0403',\n gjcy: '\\u0453',\n gl: '\\u2277',\n gla: '\\u2AA5',\n glE: '\\u2A92',\n glj: '\\u2AA4',\n gnap: '\\u2A8A',\n gnapprox: '\\u2A8A',\n gnE: '\\u2269',\n gne: '\\u2A88',\n gneq: '\\u2A88',\n gneqq: '\\u2269',\n gnsim: '\\u22E7',\n Gopf: '\\uD835\\uDD3E',\n gopf: '\\uD835\\uDD58',\n grave: '\\u0060',\n GreaterEqual: '\\u2265',\n GreaterEqualLess: '\\u22DB',\n GreaterFullEqual: '\\u2267',\n GreaterGreater: '\\u2AA2',\n GreaterLess: '\\u2277',\n GreaterSlantEqual: '\\u2A7E',\n GreaterTilde: '\\u2273',\n Gscr: '\\uD835\\uDCA2',\n gscr: '\\u210A',\n gsim: '\\u2273',\n gsime: '\\u2A8E',\n gsiml: '\\u2A90',\n Gt: '\\u226B',\n GT: '\\u003E',\n gt: '\\u003E',\n gtcc: '\\u2AA7',\n gtcir: '\\u2A7A',\n gtdot: '\\u22D7',\n gtlPar: '\\u2995',\n gtquest: '\\u2A7C',\n gtrapprox: '\\u2A86',\n gtrarr: '\\u2978',\n gtrdot: '\\u22D7',\n gtreqless: '\\u22DB',\n gtreqqless: '\\u2A8C',\n gtrless: '\\u2277',\n gtrsim: '\\u2273',\n gvertneqq: '\\u2269\\uFE00',\n gvnE: '\\u2269\\uFE00',\n Hacek: '\\u02C7',\n hairsp: '\\u200A',\n half: '\\u00BD',\n hamilt: '\\u210B',\n HARDcy: '\\u042A',\n hardcy: '\\u044A',\n hArr: '\\u21D4',\n harr: '\\u2194',\n harrcir: '\\u2948',\n harrw: '\\u21AD',\n Hat: '\\u005E',\n hbar: '\\u210F',\n Hcirc: '\\u0124',\n hcirc: '\\u0125',\n hearts: '\\u2665',\n heartsuit: '\\u2665',\n hellip: '\\u2026',\n hercon: '\\u22B9',\n Hfr: '\\u210C',\n hfr: '\\uD835\\uDD25',\n HilbertSpace: '\\u210B',\n hksearow: '\\u2925',\n hkswarow: '\\u2926',\n hoarr: '\\u21FF',\n homtht: '\\u223B',\n hookleftarrow: '\\u21A9',\n hookrightarrow: '\\u21AA',\n Hopf: '\\u210D',\n hopf: '\\uD835\\uDD59',\n horbar: '\\u2015',\n HorizontalLine: '\\u2500',\n Hscr: '\\u210B',\n hscr: '\\uD835\\uDCBD',\n hslash: '\\u210F',\n Hstrok: '\\u0126',\n hstrok: '\\u0127',\n HumpDownHump: '\\u224E',\n HumpEqual: '\\u224F',\n hybull: '\\u2043',\n hyphen: '\\u2010',\n Iacute: '\\u00CD',\n iacute: '\\u00ED',\n ic: '\\u2063',\n Icirc: '\\u00CE',\n icirc: '\\u00EE',\n Icy: '\\u0418',\n icy: '\\u0438',\n Idot: '\\u0130',\n IEcy: '\\u0415',\n iecy: '\\u0435',\n iexcl: '\\u00A1',\n iff: '\\u21D4',\n Ifr: '\\u2111',\n ifr: '\\uD835\\uDD26',\n Igrave: '\\u00CC',\n igrave: '\\u00EC',\n ii: '\\u2148',\n iiiint: '\\u2A0C',\n iiint: '\\u222D',\n iinfin: '\\u29DC',\n iiota: '\\u2129',\n IJlig: '\\u0132',\n ijlig: '\\u0133',\n Im: '\\u2111',\n Imacr: '\\u012A',\n imacr: '\\u012B',\n image: '\\u2111',\n ImaginaryI: '\\u2148',\n imagline: '\\u2110',\n imagpart: '\\u2111',\n imath: '\\u0131',\n imof: '\\u22B7',\n imped: '\\u01B5',\n Implies: '\\u21D2',\n in: '\\u2208',\n incare: '\\u2105',\n infin: '\\u221E',\n infintie: '\\u29DD',\n inodot: '\\u0131',\n Int: '\\u222C',\n int: '\\u222B',\n intcal: '\\u22BA',\n integers: '\\u2124',\n Integral: '\\u222B',\n intercal: '\\u22BA',\n Intersection: '\\u22C2',\n intlarhk: '\\u2A17',\n intprod: '\\u2A3C',\n InvisibleComma: '\\u2063',\n InvisibleTimes: '\\u2062',\n IOcy: '\\u0401',\n iocy: '\\u0451',\n Iogon: '\\u012E',\n iogon: '\\u012F',\n Iopf: '\\uD835\\uDD40',\n iopf: '\\uD835\\uDD5A',\n Iota: '\\u0399',\n iota: '\\u03B9',\n iprod: '\\u2A3C',\n iquest: '\\u00BF',\n Iscr: '\\u2110',\n iscr: '\\uD835\\uDCBE',\n isin: '\\u2208',\n isindot: '\\u22F5',\n isinE: '\\u22F9',\n isins: '\\u22F4',\n isinsv: '\\u22F3',\n isinv: '\\u2208',\n it: '\\u2062',\n Itilde: '\\u0128',\n itilde: '\\u0129',\n Iukcy: '\\u0406',\n iukcy: '\\u0456',\n Iuml: '\\u00CF',\n iuml: '\\u00EF',\n Jcirc: '\\u0134',\n jcirc: '\\u0135',\n Jcy: '\\u0419',\n jcy: '\\u0439',\n Jfr: '\\uD835\\uDD0D',\n jfr: '\\uD835\\uDD27',\n jmath: '\\u0237',\n Jopf: '\\uD835\\uDD41',\n jopf: '\\uD835\\uDD5B',\n Jscr: '\\uD835\\uDCA5',\n jscr: '\\uD835\\uDCBF',\n Jsercy: '\\u0408',\n jsercy: '\\u0458',\n Jukcy: '\\u0404',\n jukcy: '\\u0454',\n Kappa: '\\u039A',\n kappa: '\\u03BA',\n kappav: '\\u03F0',\n Kcedil: '\\u0136',\n kcedil: '\\u0137',\n Kcy: '\\u041A',\n kcy: '\\u043A',\n Kfr: '\\uD835\\uDD0E',\n kfr: '\\uD835\\uDD28',\n kgreen: '\\u0138',\n KHcy: '\\u0425',\n khcy: '\\u0445',\n KJcy: '\\u040C',\n kjcy: '\\u045C',\n Kopf: '\\uD835\\uDD42',\n kopf: '\\uD835\\uDD5C',\n Kscr: '\\uD835\\uDCA6',\n kscr: '\\uD835\\uDCC0',\n lAarr: '\\u21DA',\n Lacute: '\\u0139',\n lacute: '\\u013A',\n laemptyv: '\\u29B4',\n lagran: '\\u2112',\n Lambda: '\\u039B',\n lambda: '\\u03BB',\n Lang: '\\u27EA',\n lang: '\\u27E8',\n langd: '\\u2991',\n langle: '\\u27E8',\n lap: '\\u2A85',\n Laplacetrf: '\\u2112',\n laquo: '\\u00AB',\n Larr: '\\u219E',\n lArr: '\\u21D0',\n larr: '\\u2190',\n larrb: '\\u21E4',\n larrbfs: '\\u291F',\n larrfs: '\\u291D',\n larrhk: '\\u21A9',\n larrlp: '\\u21AB',\n larrpl: '\\u2939',\n larrsim: '\\u2973',\n larrtl: '\\u21A2',\n lat: '\\u2AAB',\n lAtail: '\\u291B',\n latail: '\\u2919',\n late: '\\u2AAD',\n lates: '\\u2AAD\\uFE00',\n lBarr: '\\u290E',\n lbarr: '\\u290C',\n lbbrk: '\\u2772',\n lbrace: '\\u007B',\n lbrack: '\\u005B',\n lbrke: '\\u298B',\n lbrksld: '\\u298F',\n lbrkslu: '\\u298D',\n Lcaron: '\\u013D',\n lcaron: '\\u013E',\n Lcedil: '\\u013B',\n lcedil: '\\u013C',\n lceil: '\\u2308',\n lcub: '\\u007B',\n Lcy: '\\u041B',\n lcy: '\\u043B',\n ldca: '\\u2936',\n ldquo: '\\u201C',\n ldquor: '\\u201E',\n ldrdhar: '\\u2967',\n ldrushar: '\\u294B',\n ldsh: '\\u21B2',\n lE: '\\u2266',\n le: '\\u2264',\n LeftAngleBracket: '\\u27E8',\n LeftArrow: '\\u2190',\n Leftarrow: '\\u21D0',\n leftarrow: '\\u2190',\n LeftArrowBar: '\\u21E4',\n LeftArrowRightArrow: '\\u21C6',\n leftarrowtail: '\\u21A2',\n LeftCeiling: '\\u2308',\n LeftDoubleBracket: '\\u27E6',\n LeftDownTeeVector: '\\u2961',\n LeftDownVector: '\\u21C3',\n LeftDownVectorBar: '\\u2959',\n LeftFloor: '\\u230A',\n leftharpoondown: '\\u21BD',\n leftharpoonup: '\\u21BC',\n leftleftarrows: '\\u21C7',\n LeftRightArrow: '\\u2194',\n Leftrightarrow: '\\u21D4',\n leftrightarrow: '\\u2194',\n leftrightarrows: '\\u21C6',\n leftrightharpoons: '\\u21CB',\n leftrightsquigarrow: '\\u21AD',\n LeftRightVector: '\\u294E',\n LeftTee: '\\u22A3',\n LeftTeeArrow: '\\u21A4',\n LeftTeeVector: '\\u295A',\n leftthreetimes: '\\u22CB',\n LeftTriangle: '\\u22B2',\n LeftTriangleBar: '\\u29CF',\n LeftTriangleEqual: '\\u22B4',\n LeftUpDownVector: '\\u2951',\n LeftUpTeeVector: '\\u2960',\n LeftUpVector: '\\u21BF',\n LeftUpVectorBar: '\\u2958',\n LeftVector: '\\u21BC',\n LeftVectorBar: '\\u2952',\n lEg: '\\u2A8B',\n leg: '\\u22DA',\n leq: '\\u2264',\n leqq: '\\u2266',\n leqslant: '\\u2A7D',\n les: '\\u2A7D',\n lescc: '\\u2AA8',\n lesdot: '\\u2A7F',\n lesdoto: '\\u2A81',\n lesdotor: '\\u2A83',\n lesg: '\\u22DA\\uFE00',\n lesges: '\\u2A93',\n lessapprox: '\\u2A85',\n lessdot: '\\u22D6',\n lesseqgtr: '\\u22DA',\n lesseqqgtr: '\\u2A8B',\n LessEqualGreater: '\\u22DA',\n LessFullEqual: '\\u2266',\n LessGreater: '\\u2276',\n lessgtr: '\\u2276',\n LessLess: '\\u2AA1',\n lesssim: '\\u2272',\n LessSlantEqual: '\\u2A7D',\n LessTilde: '\\u2272',\n lfisht: '\\u297C',\n lfloor: '\\u230A',\n Lfr: '\\uD835\\uDD0F',\n lfr: '\\uD835\\uDD29',\n lg: '\\u2276',\n lgE: '\\u2A91',\n lHar: '\\u2962',\n lhard: '\\u21BD',\n lharu: '\\u21BC',\n lharul: '\\u296A',\n lhblk: '\\u2584',\n LJcy: '\\u0409',\n ljcy: '\\u0459',\n Ll: '\\u22D8',\n ll: '\\u226A',\n llarr: '\\u21C7',\n llcorner: '\\u231E',\n Lleftarrow: '\\u21DA',\n llhard: '\\u296B',\n lltri: '\\u25FA',\n Lmidot: '\\u013F',\n lmidot: '\\u0140',\n lmoust: '\\u23B0',\n lmoustache: '\\u23B0',\n lnap: '\\u2A89',\n lnapprox: '\\u2A89',\n lnE: '\\u2268',\n lne: '\\u2A87',\n lneq: '\\u2A87',\n lneqq: '\\u2268',\n lnsim: '\\u22E6',\n loang: '\\u27EC',\n loarr: '\\u21FD',\n lobrk: '\\u27E6',\n LongLeftArrow: '\\u27F5',\n Longleftarrow: '\\u27F8',\n longleftarrow: '\\u27F5',\n LongLeftRightArrow: '\\u27F7',\n Longleftrightarrow: '\\u27FA',\n longleftrightarrow: '\\u27F7',\n longmapsto: '\\u27FC',\n LongRightArrow: '\\u27F6',\n Longrightarrow: '\\u27F9',\n longrightarrow: '\\u27F6',\n looparrowleft: '\\u21AB',\n looparrowright: '\\u21AC',\n lopar: '\\u2985',\n Lopf: '\\uD835\\uDD43',\n lopf: '\\uD835\\uDD5D',\n loplus: '\\u2A2D',\n lotimes: '\\u2A34',\n lowast: '\\u2217',\n lowbar: '\\u005F',\n LowerLeftArrow: '\\u2199',\n LowerRightArrow: '\\u2198',\n loz: '\\u25CA',\n lozenge: '\\u25CA',\n lozf: '\\u29EB',\n lpar: '\\u0028',\n lparlt: '\\u2993',\n lrarr: '\\u21C6',\n lrcorner: '\\u231F',\n lrhar: '\\u21CB',\n lrhard: '\\u296D',\n lrm: '\\u200E',\n lrtri: '\\u22BF',\n lsaquo: '\\u2039',\n Lscr: '\\u2112',\n lscr: '\\uD835\\uDCC1',\n Lsh: '\\u21B0',\n lsh: '\\u21B0',\n lsim: '\\u2272',\n lsime: '\\u2A8D',\n lsimg: '\\u2A8F',\n lsqb: '\\u005B',\n lsquo: '\\u2018',\n lsquor: '\\u201A',\n Lstrok: '\\u0141',\n lstrok: '\\u0142',\n Lt: '\\u226A',\n LT: '\\u003C',\n lt: '\\u003C',\n ltcc: '\\u2AA6',\n ltcir: '\\u2A79',\n ltdot: '\\u22D6',\n lthree: '\\u22CB',\n ltimes: '\\u22C9',\n ltlarr: '\\u2976',\n ltquest: '\\u2A7B',\n ltri: '\\u25C3',\n ltrie: '\\u22B4',\n ltrif: '\\u25C2',\n ltrPar: '\\u2996',\n lurdshar: '\\u294A',\n luruhar: '\\u2966',\n lvertneqq: '\\u2268\\uFE00',\n lvnE: '\\u2268\\uFE00',\n macr: '\\u00AF',\n male: '\\u2642',\n malt: '\\u2720',\n maltese: '\\u2720',\n Map: '\\u2905',\n map: '\\u21A6',\n mapsto: '\\u21A6',\n mapstodown: '\\u21A7',\n mapstoleft: '\\u21A4',\n mapstoup: '\\u21A5',\n marker: '\\u25AE',\n mcomma: '\\u2A29',\n Mcy: '\\u041C',\n mcy: '\\u043C',\n mdash: '\\u2014',\n mDDot: '\\u223A',\n measuredangle: '\\u2221',\n MediumSpace: '\\u205F',\n Mellintrf: '\\u2133',\n Mfr: '\\uD835\\uDD10',\n mfr: '\\uD835\\uDD2A',\n mho: '\\u2127',\n micro: '\\u00B5',\n mid: '\\u2223',\n midast: '\\u002A',\n midcir: '\\u2AF0',\n middot: '\\u00B7',\n minus: '\\u2212',\n minusb: '\\u229F',\n minusd: '\\u2238',\n minusdu: '\\u2A2A',\n MinusPlus: '\\u2213',\n mlcp: '\\u2ADB',\n mldr: '\\u2026',\n mnplus: '\\u2213',\n models: '\\u22A7',\n Mopf: '\\uD835\\uDD44',\n mopf: '\\uD835\\uDD5E',\n mp: '\\u2213',\n Mscr: '\\u2133',\n mscr: '\\uD835\\uDCC2',\n mstpos: '\\u223E',\n Mu: '\\u039C',\n mu: '\\u03BC',\n multimap: '\\u22B8',\n mumap: '\\u22B8',\n nabla: '\\u2207',\n Nacute: '\\u0143',\n nacute: '\\u0144',\n nang: '\\u2220\\u20D2',\n nap: '\\u2249',\n napE: '\\u2A70\\u0338',\n napid: '\\u224B\\u0338',\n napos: '\\u0149',\n napprox: '\\u2249',\n natur: '\\u266E',\n natural: '\\u266E',\n naturals: '\\u2115',\n nbsp: '\\u00A0',\n nbump: '\\u224E\\u0338',\n nbumpe: '\\u224F\\u0338',\n ncap: '\\u2A43',\n Ncaron: '\\u0147',\n ncaron: '\\u0148',\n Ncedil: '\\u0145',\n ncedil: '\\u0146',\n ncong: '\\u2247',\n ncongdot: '\\u2A6D\\u0338',\n ncup: '\\u2A42',\n Ncy: '\\u041D',\n ncy: '\\u043D',\n ndash: '\\u2013',\n ne: '\\u2260',\n nearhk: '\\u2924',\n neArr: '\\u21D7',\n nearr: '\\u2197',\n nearrow: '\\u2197',\n nedot: '\\u2250\\u0338',\n NegativeMediumSpace: '\\u200B',\n NegativeThickSpace: '\\u200B',\n NegativeThinSpace: '\\u200B',\n NegativeVeryThinSpace: '\\u200B',\n nequiv: '\\u2262',\n nesear: '\\u2928',\n nesim: '\\u2242\\u0338',\n NestedGreaterGreater: '\\u226B',\n NestedLessLess: '\\u226A',\n NewLine: '\\u000A',\n nexist: '\\u2204',\n nexists: '\\u2204',\n Nfr: '\\uD835\\uDD11',\n nfr: '\\uD835\\uDD2B',\n ngE: '\\u2267\\u0338',\n nge: '\\u2271',\n ngeq: '\\u2271',\n ngeqq: '\\u2267\\u0338',\n ngeqslant: '\\u2A7E\\u0338',\n nges: '\\u2A7E\\u0338',\n nGg: '\\u22D9\\u0338',\n ngsim: '\\u2275',\n nGt: '\\u226B\\u20D2',\n ngt: '\\u226F',\n ngtr: '\\u226F',\n nGtv: '\\u226B\\u0338',\n nhArr: '\\u21CE',\n nharr: '\\u21AE',\n nhpar: '\\u2AF2',\n ni: '\\u220B',\n nis: '\\u22FC',\n nisd: '\\u22FA',\n niv: '\\u220B',\n NJcy: '\\u040A',\n njcy: '\\u045A',\n nlArr: '\\u21CD',\n nlarr: '\\u219A',\n nldr: '\\u2025',\n nlE: '\\u2266\\u0338',\n nle: '\\u2270',\n nLeftarrow: '\\u21CD',\n nleftarrow: '\\u219A',\n nLeftrightarrow: '\\u21CE',\n nleftrightarrow: '\\u21AE',\n nleq: '\\u2270',\n nleqq: '\\u2266\\u0338',\n nleqslant: '\\u2A7D\\u0338',\n nles: '\\u2A7D\\u0338',\n nless: '\\u226E',\n nLl: '\\u22D8\\u0338',\n nlsim: '\\u2274',\n nLt: '\\u226A\\u20D2',\n nlt: '\\u226E',\n nltri: '\\u22EA',\n nltrie: '\\u22EC',\n nLtv: '\\u226A\\u0338',\n nmid: '\\u2224',\n NoBreak: '\\u2060',\n NonBreakingSpace: '\\u00A0',\n Nopf: '\\u2115',\n nopf: '\\uD835\\uDD5F',\n Not: '\\u2AEC',\n not: '\\u00AC',\n NotCongruent: '\\u2262',\n NotCupCap: '\\u226D',\n NotDoubleVerticalBar: '\\u2226',\n NotElement: '\\u2209',\n NotEqual: '\\u2260',\n NotEqualTilde: '\\u2242\\u0338',\n NotExists: '\\u2204',\n NotGreater: '\\u226F',\n NotGreaterEqual: '\\u2271',\n NotGreaterFullEqual: '\\u2267\\u0338',\n NotGreaterGreater: '\\u226B\\u0338',\n NotGreaterLess: '\\u2279',\n NotGreaterSlantEqual: '\\u2A7E\\u0338',\n NotGreaterTilde: '\\u2275',\n NotHumpDownHump: '\\u224E\\u0338',\n NotHumpEqual: '\\u224F\\u0338',\n notin: '\\u2209',\n notindot: '\\u22F5\\u0338',\n notinE: '\\u22F9\\u0338',\n notinva: '\\u2209',\n notinvb: '\\u22F7',\n notinvc: '\\u22F6',\n NotLeftTriangle: '\\u22EA',\n NotLeftTriangleBar: '\\u29CF\\u0338',\n NotLeftTriangleEqual: '\\u22EC',\n NotLess: '\\u226E',\n NotLessEqual: '\\u2270',\n NotLessGreater: '\\u2278',\n NotLessLess: '\\u226A\\u0338',\n NotLessSlantEqual: '\\u2A7D\\u0338',\n NotLessTilde: '\\u2274',\n NotNestedGreaterGreater: '\\u2AA2\\u0338',\n NotNestedLessLess: '\\u2AA1\\u0338',\n notni: '\\u220C',\n notniva: '\\u220C',\n notnivb: '\\u22FE',\n notnivc: '\\u22FD',\n NotPrecedes: '\\u2280',\n NotPrecedesEqual: '\\u2AAF\\u0338',\n NotPrecedesSlantEqual: '\\u22E0',\n NotReverseElement: '\\u220C',\n NotRightTriangle: '\\u22EB',\n NotRightTriangleBar: '\\u29D0\\u0338',\n NotRightTriangleEqual: '\\u22ED',\n NotSquareSubset: '\\u228F\\u0338',\n NotSquareSubsetEqual: '\\u22E2',\n NotSquareSuperset: '\\u2290\\u0338',\n NotSquareSupersetEqual: '\\u22E3',\n NotSubset: '\\u2282\\u20D2',\n NotSubsetEqual: '\\u2288',\n NotSucceeds: '\\u2281',\n NotSucceedsEqual: '\\u2AB0\\u0338',\n NotSucceedsSlantEqual: '\\u22E1',\n NotSucceedsTilde: '\\u227F\\u0338',\n NotSuperset: '\\u2283\\u20D2',\n NotSupersetEqual: '\\u2289',\n NotTilde: '\\u2241',\n NotTildeEqual: '\\u2244',\n NotTildeFullEqual: '\\u2247',\n NotTildeTilde: '\\u2249',\n NotVerticalBar: '\\u2224',\n npar: '\\u2226',\n nparallel: '\\u2226',\n nparsl: '\\u2AFD\\u20E5',\n npart: '\\u2202\\u0338',\n npolint: '\\u2A14',\n npr: '\\u2280',\n nprcue: '\\u22E0',\n npre: '\\u2AAF\\u0338',\n nprec: '\\u2280',\n npreceq: '\\u2AAF\\u0338',\n nrArr: '\\u21CF',\n nrarr: '\\u219B',\n nrarrc: '\\u2933\\u0338',\n nrarrw: '\\u219D\\u0338',\n nRightarrow: '\\u21CF',\n nrightarrow: '\\u219B',\n nrtri: '\\u22EB',\n nrtrie: '\\u22ED',\n nsc: '\\u2281',\n nsccue: '\\u22E1',\n nsce: '\\u2AB0\\u0338',\n Nscr: '\\uD835\\uDCA9',\n nscr: '\\uD835\\uDCC3',\n nshortmid: '\\u2224',\n nshortparallel: '\\u2226',\n nsim: '\\u2241',\n nsime: '\\u2244',\n nsimeq: '\\u2244',\n nsmid: '\\u2224',\n nspar: '\\u2226',\n nsqsube: '\\u22E2',\n nsqsupe: '\\u22E3',\n nsub: '\\u2284',\n nsubE: '\\u2AC5\\u0338',\n nsube: '\\u2288',\n nsubset: '\\u2282\\u20D2',\n nsubseteq: '\\u2288',\n nsubseteqq: '\\u2AC5\\u0338',\n nsucc: '\\u2281',\n nsucceq: '\\u2AB0\\u0338',\n nsup: '\\u2285',\n nsupE: '\\u2AC6\\u0338',\n nsupe: '\\u2289',\n nsupset: '\\u2283\\u20D2',\n nsupseteq: '\\u2289',\n nsupseteqq: '\\u2AC6\\u0338',\n ntgl: '\\u2279',\n Ntilde: '\\u00D1',\n ntilde: '\\u00F1',\n ntlg: '\\u2278',\n ntriangleleft: '\\u22EA',\n ntrianglelefteq: '\\u22EC',\n ntriangleright: '\\u22EB',\n ntrianglerighteq: '\\u22ED',\n Nu: '\\u039D',\n nu: '\\u03BD',\n num: '\\u0023',\n numero: '\\u2116',\n numsp: '\\u2007',\n nvap: '\\u224D\\u20D2',\n nVDash: '\\u22AF',\n nVdash: '\\u22AE',\n nvDash: '\\u22AD',\n nvdash: '\\u22AC',\n nvge: '\\u2265\\u20D2',\n nvgt: '\\u003E\\u20D2',\n nvHarr: '\\u2904',\n nvinfin: '\\u29DE',\n nvlArr: '\\u2902',\n nvle: '\\u2264\\u20D2',\n nvlt: '\\u003C\\u20D2',\n nvltrie: '\\u22B4\\u20D2',\n nvrArr: '\\u2903',\n nvrtrie: '\\u22B5\\u20D2',\n nvsim: '\\u223C\\u20D2',\n nwarhk: '\\u2923',\n nwArr: '\\u21D6',\n nwarr: '\\u2196',\n nwarrow: '\\u2196',\n nwnear: '\\u2927',\n Oacute: '\\u00D3',\n oacute: '\\u00F3',\n oast: '\\u229B',\n ocir: '\\u229A',\n Ocirc: '\\u00D4',\n ocirc: '\\u00F4',\n Ocy: '\\u041E',\n ocy: '\\u043E',\n odash: '\\u229D',\n Odblac: '\\u0150',\n odblac: '\\u0151',\n odiv: '\\u2A38',\n odot: '\\u2299',\n odsold: '\\u29BC',\n OElig: '\\u0152',\n oelig: '\\u0153',\n ofcir: '\\u29BF',\n Ofr: '\\uD835\\uDD12',\n ofr: '\\uD835\\uDD2C',\n ogon: '\\u02DB',\n Ograve: '\\u00D2',\n ograve: '\\u00F2',\n ogt: '\\u29C1',\n ohbar: '\\u29B5',\n ohm: '\\u03A9',\n oint: '\\u222E',\n olarr: '\\u21BA',\n olcir: '\\u29BE',\n olcross: '\\u29BB',\n oline: '\\u203E',\n olt: '\\u29C0',\n Omacr: '\\u014C',\n omacr: '\\u014D',\n Omega: '\\u03A9',\n omega: '\\u03C9',\n Omicron: '\\u039F',\n omicron: '\\u03BF',\n omid: '\\u29B6',\n ominus: '\\u2296',\n Oopf: '\\uD835\\uDD46',\n oopf: '\\uD835\\uDD60',\n opar: '\\u29B7',\n OpenCurlyDoubleQuote: '\\u201C',\n OpenCurlyQuote: '\\u2018',\n operp: '\\u29B9',\n oplus: '\\u2295',\n Or: '\\u2A54',\n or: '\\u2228',\n orarr: '\\u21BB',\n ord: '\\u2A5D',\n order: '\\u2134',\n orderof: '\\u2134',\n ordf: '\\u00AA',\n ordm: '\\u00BA',\n origof: '\\u22B6',\n oror: '\\u2A56',\n orslope: '\\u2A57',\n orv: '\\u2A5B',\n oS: '\\u24C8',\n Oscr: '\\uD835\\uDCAA',\n oscr: '\\u2134',\n Oslash: '\\u00D8',\n oslash: '\\u00F8',\n osol: '\\u2298',\n Otilde: '\\u00D5',\n otilde: '\\u00F5',\n Otimes: '\\u2A37',\n otimes: '\\u2297',\n otimesas: '\\u2A36',\n Ouml: '\\u00D6',\n ouml: '\\u00F6',\n ovbar: '\\u233D',\n OverBar: '\\u203E',\n OverBrace: '\\u23DE',\n OverBracket: '\\u23B4',\n OverParenthesis: '\\u23DC',\n par: '\\u2225',\n para: '\\u00B6',\n parallel: '\\u2225',\n parsim: '\\u2AF3',\n parsl: '\\u2AFD',\n part: '\\u2202',\n PartialD: '\\u2202',\n Pcy: '\\u041F',\n pcy: '\\u043F',\n percnt: '\\u0025',\n period: '\\u002E',\n permil: '\\u2030',\n perp: '\\u22A5',\n pertenk: '\\u2031',\n Pfr: '\\uD835\\uDD13',\n pfr: '\\uD835\\uDD2D',\n Phi: '\\u03A6',\n phi: '\\u03C6',\n phiv: '\\u03D5',\n phmmat: '\\u2133',\n phone: '\\u260E',\n Pi: '\\u03A0',\n pi: '\\u03C0',\n pitchfork: '\\u22D4',\n piv: '\\u03D6',\n planck: '\\u210F',\n planckh: '\\u210E',\n plankv: '\\u210F',\n plus: '\\u002B',\n plusacir: '\\u2A23',\n plusb: '\\u229E',\n pluscir: '\\u2A22',\n plusdo: '\\u2214',\n plusdu: '\\u2A25',\n pluse: '\\u2A72',\n PlusMinus: '\\u00B1',\n plusmn: '\\u00B1',\n plussim: '\\u2A26',\n plustwo: '\\u2A27',\n pm: '\\u00B1',\n Poincareplane: '\\u210C',\n pointint: '\\u2A15',\n Popf: '\\u2119',\n popf: '\\uD835\\uDD61',\n pound: '\\u00A3',\n Pr: '\\u2ABB',\n pr: '\\u227A',\n prap: '\\u2AB7',\n prcue: '\\u227C',\n prE: '\\u2AB3',\n pre: '\\u2AAF',\n prec: '\\u227A',\n precapprox: '\\u2AB7',\n preccurlyeq: '\\u227C',\n Precedes: '\\u227A',\n PrecedesEqual: '\\u2AAF',\n PrecedesSlantEqual: '\\u227C',\n PrecedesTilde: '\\u227E',\n preceq: '\\u2AAF',\n precnapprox: '\\u2AB9',\n precneqq: '\\u2AB5',\n precnsim: '\\u22E8',\n precsim: '\\u227E',\n Prime: '\\u2033',\n prime: '\\u2032',\n primes: '\\u2119',\n prnap: '\\u2AB9',\n prnE: '\\u2AB5',\n prnsim: '\\u22E8',\n prod: '\\u220F',\n Product: '\\u220F',\n profalar: '\\u232E',\n profline: '\\u2312',\n profsurf: '\\u2313',\n prop: '\\u221D',\n Proportion: '\\u2237',\n Proportional: '\\u221D',\n propto: '\\u221D',\n prsim: '\\u227E',\n prurel: '\\u22B0',\n Pscr: '\\uD835\\uDCAB',\n pscr: '\\uD835\\uDCC5',\n Psi: '\\u03A8',\n psi: '\\u03C8',\n puncsp: '\\u2008',\n Qfr: '\\uD835\\uDD14',\n qfr: '\\uD835\\uDD2E',\n qint: '\\u2A0C',\n Qopf: '\\u211A',\n qopf: '\\uD835\\uDD62',\n qprime: '\\u2057',\n Qscr: '\\uD835\\uDCAC',\n qscr: '\\uD835\\uDCC6',\n quaternions: '\\u210D',\n quatint: '\\u2A16',\n quest: '\\u003F',\n questeq: '\\u225F',\n QUOT: '\\u0022',\n quot: '\\u0022',\n rAarr: '\\u21DB',\n race: '\\u223D\\u0331',\n Racute: '\\u0154',\n racute: '\\u0155',\n radic: '\\u221A',\n raemptyv: '\\u29B3',\n Rang: '\\u27EB',\n rang: '\\u27E9',\n rangd: '\\u2992',\n range: '\\u29A5',\n rangle: '\\u27E9',\n raquo: '\\u00BB',\n Rarr: '\\u21A0',\n rArr: '\\u21D2',\n rarr: '\\u2192',\n rarrap: '\\u2975',\n rarrb: '\\u21E5',\n rarrbfs: '\\u2920',\n rarrc: '\\u2933',\n rarrfs: '\\u291E',\n rarrhk: '\\u21AA',\n rarrlp: '\\u21AC',\n rarrpl: '\\u2945',\n rarrsim: '\\u2974',\n Rarrtl: '\\u2916',\n rarrtl: '\\u21A3',\n rarrw: '\\u219D',\n rAtail: '\\u291C',\n ratail: '\\u291A',\n ratio: '\\u2236',\n rationals: '\\u211A',\n RBarr: '\\u2910',\n rBarr: '\\u290F',\n rbarr: '\\u290D',\n rbbrk: '\\u2773',\n rbrace: '\\u007D',\n rbrack: '\\u005D',\n rbrke: '\\u298C',\n rbrksld: '\\u298E',\n rbrkslu: '\\u2990',\n Rcaron: '\\u0158',\n rcaron: '\\u0159',\n Rcedil: '\\u0156',\n rcedil: '\\u0157',\n rceil: '\\u2309',\n rcub: '\\u007D',\n Rcy: '\\u0420',\n rcy: '\\u0440',\n rdca: '\\u2937',\n rdldhar: '\\u2969',\n rdquo: '\\u201D',\n rdquor: '\\u201D',\n rdsh: '\\u21B3',\n Re: '\\u211C',\n real: '\\u211C',\n realine: '\\u211B',\n realpart: '\\u211C',\n reals: '\\u211D',\n rect: '\\u25AD',\n REG: '\\u00AE',\n reg: '\\u00AE',\n ReverseElement: '\\u220B',\n ReverseEquilibrium: '\\u21CB',\n ReverseUpEquilibrium: '\\u296F',\n rfisht: '\\u297D',\n rfloor: '\\u230B',\n Rfr: '\\u211C',\n rfr: '\\uD835\\uDD2F',\n rHar: '\\u2964',\n rhard: '\\u21C1',\n rharu: '\\u21C0',\n rharul: '\\u296C',\n Rho: '\\u03A1',\n rho: '\\u03C1',\n rhov: '\\u03F1',\n RightAngleBracket: '\\u27E9',\n RightArrow: '\\u2192',\n Rightarrow: '\\u21D2',\n rightarrow: '\\u2192',\n RightArrowBar: '\\u21E5',\n RightArrowLeftArrow: '\\u21C4',\n rightarrowtail: '\\u21A3',\n RightCeiling: '\\u2309',\n RightDoubleBracket: '\\u27E7',\n RightDownTeeVector: '\\u295D',\n RightDownVector: '\\u21C2',\n RightDownVectorBar: '\\u2955',\n RightFloor: '\\u230B',\n rightharpoondown: '\\u21C1',\n rightharpoonup: '\\u21C0',\n rightleftarrows: '\\u21C4',\n rightleftharpoons: '\\u21CC',\n rightrightarrows: '\\u21C9',\n rightsquigarrow: '\\u219D',\n RightTee: '\\u22A2',\n RightTeeArrow: '\\u21A6',\n RightTeeVector: '\\u295B',\n rightthreetimes: '\\u22CC',\n RightTriangle: '\\u22B3',\n RightTriangleBar: '\\u29D0',\n RightTriangleEqual: '\\u22B5',\n RightUpDownVector: '\\u294F',\n RightUpTeeVector: '\\u295C',\n RightUpVector: '\\u21BE',\n RightUpVectorBar: '\\u2954',\n RightVector: '\\u21C0',\n RightVectorBar: '\\u2953',\n ring: '\\u02DA',\n risingdotseq: '\\u2253',\n rlarr: '\\u21C4',\n rlhar: '\\u21CC',\n rlm: '\\u200F',\n rmoust: '\\u23B1',\n rmoustache: '\\u23B1',\n rnmid: '\\u2AEE',\n roang: '\\u27ED',\n roarr: '\\u21FE',\n robrk: '\\u27E7',\n ropar: '\\u2986',\n Ropf: '\\u211D',\n ropf: '\\uD835\\uDD63',\n roplus: '\\u2A2E',\n rotimes: '\\u2A35',\n RoundImplies: '\\u2970',\n rpar: '\\u0029',\n rpargt: '\\u2994',\n rppolint: '\\u2A12',\n rrarr: '\\u21C9',\n Rrightarrow: '\\u21DB',\n rsaquo: '\\u203A',\n Rscr: '\\u211B',\n rscr: '\\uD835\\uDCC7',\n Rsh: '\\u21B1',\n rsh: '\\u21B1',\n rsqb: '\\u005D',\n rsquo: '\\u2019',\n rsquor: '\\u2019',\n rthree: '\\u22CC',\n rtimes: '\\u22CA',\n rtri: '\\u25B9',\n rtrie: '\\u22B5',\n rtrif: '\\u25B8',\n rtriltri: '\\u29CE',\n RuleDelayed: '\\u29F4',\n ruluhar: '\\u2968',\n rx: '\\u211E',\n Sacute: '\\u015A',\n sacute: '\\u015B',\n sbquo: '\\u201A',\n Sc: '\\u2ABC',\n sc: '\\u227B',\n scap: '\\u2AB8',\n Scaron: '\\u0160',\n scaron: '\\u0161',\n sccue: '\\u227D',\n scE: '\\u2AB4',\n sce: '\\u2AB0',\n Scedil: '\\u015E',\n scedil: '\\u015F',\n Scirc: '\\u015C',\n scirc: '\\u015D',\n scnap: '\\u2ABA',\n scnE: '\\u2AB6',\n scnsim: '\\u22E9',\n scpolint: '\\u2A13',\n scsim: '\\u227F',\n Scy: '\\u0421',\n scy: '\\u0441',\n sdot: '\\u22C5',\n sdotb: '\\u22A1',\n sdote: '\\u2A66',\n searhk: '\\u2925',\n seArr: '\\u21D8',\n searr: '\\u2198',\n searrow: '\\u2198',\n sect: '\\u00A7',\n semi: '\\u003B',\n seswar: '\\u2929',\n setminus: '\\u2216',\n setmn: '\\u2216',\n sext: '\\u2736',\n Sfr: '\\uD835\\uDD16',\n sfr: '\\uD835\\uDD30',\n sfrown: '\\u2322',\n sharp: '\\u266F',\n SHCHcy: '\\u0429',\n shchcy: '\\u0449',\n SHcy: '\\u0428',\n shcy: '\\u0448',\n ShortDownArrow: '\\u2193',\n ShortLeftArrow: '\\u2190',\n shortmid: '\\u2223',\n shortparallel: '\\u2225',\n ShortRightArrow: '\\u2192',\n ShortUpArrow: '\\u2191',\n shy: '\\u00AD',\n Sigma: '\\u03A3',\n sigma: '\\u03C3',\n sigmaf: '\\u03C2',\n sigmav: '\\u03C2',\n sim: '\\u223C',\n simdot: '\\u2A6A',\n sime: '\\u2243',\n simeq: '\\u2243',\n simg: '\\u2A9E',\n simgE: '\\u2AA0',\n siml: '\\u2A9D',\n simlE: '\\u2A9F',\n simne: '\\u2246',\n simplus: '\\u2A24',\n simrarr: '\\u2972',\n slarr: '\\u2190',\n SmallCircle: '\\u2218',\n smallsetminus: '\\u2216',\n smashp: '\\u2A33',\n smeparsl: '\\u29E4',\n smid: '\\u2223',\n smile: '\\u2323',\n smt: '\\u2AAA',\n smte: '\\u2AAC',\n smtes: '\\u2AAC\\uFE00',\n SOFTcy: '\\u042C',\n softcy: '\\u044C',\n sol: '\\u002F',\n solb: '\\u29C4',\n solbar: '\\u233F',\n Sopf: '\\uD835\\uDD4A',\n sopf: '\\uD835\\uDD64',\n spades: '\\u2660',\n spadesuit: '\\u2660',\n spar: '\\u2225',\n sqcap: '\\u2293',\n sqcaps: '\\u2293\\uFE00',\n sqcup: '\\u2294',\n sqcups: '\\u2294\\uFE00',\n Sqrt: '\\u221A',\n sqsub: '\\u228F',\n sqsube: '\\u2291',\n sqsubset: '\\u228F',\n sqsubseteq: '\\u2291',\n sqsup: '\\u2290',\n sqsupe: '\\u2292',\n sqsupset: '\\u2290',\n sqsupseteq: '\\u2292',\n squ: '\\u25A1',\n Square: '\\u25A1',\n square: '\\u25A1',\n SquareIntersection: '\\u2293',\n SquareSubset: '\\u228F',\n SquareSubsetEqual: '\\u2291',\n SquareSuperset: '\\u2290',\n SquareSupersetEqual: '\\u2292',\n SquareUnion: '\\u2294',\n squarf: '\\u25AA',\n squf: '\\u25AA',\n srarr: '\\u2192',\n Sscr: '\\uD835\\uDCAE',\n sscr: '\\uD835\\uDCC8',\n ssetmn: '\\u2216',\n ssmile: '\\u2323',\n sstarf: '\\u22C6',\n Star: '\\u22C6',\n star: '\\u2606',\n starf: '\\u2605',\n straightepsilon: '\\u03F5',\n straightphi: '\\u03D5',\n strns: '\\u00AF',\n Sub: '\\u22D0',\n sub: '\\u2282',\n subdot: '\\u2ABD',\n subE: '\\u2AC5',\n sube: '\\u2286',\n subedot: '\\u2AC3',\n submult: '\\u2AC1',\n subnE: '\\u2ACB',\n subne: '\\u228A',\n subplus: '\\u2ABF',\n subrarr: '\\u2979',\n Subset: '\\u22D0',\n subset: '\\u2282',\n subseteq: '\\u2286',\n subseteqq: '\\u2AC5',\n SubsetEqual: '\\u2286',\n subsetneq: '\\u228A',\n subsetneqq: '\\u2ACB',\n subsim: '\\u2AC7',\n subsub: '\\u2AD5',\n subsup: '\\u2AD3',\n succ: '\\u227B',\n succapprox: '\\u2AB8',\n succcurlyeq: '\\u227D',\n Succeeds: '\\u227B',\n SucceedsEqual: '\\u2AB0',\n SucceedsSlantEqual: '\\u227D',\n SucceedsTilde: '\\u227F',\n succeq: '\\u2AB0',\n succnapprox: '\\u2ABA',\n succneqq: '\\u2AB6',\n succnsim: '\\u22E9',\n succsim: '\\u227F',\n SuchThat: '\\u220B',\n Sum: '\\u2211',\n sum: '\\u2211',\n sung: '\\u266A',\n Sup: '\\u22D1',\n sup: '\\u2283',\n sup1: '\\u00B9',\n sup2: '\\u00B2',\n sup3: '\\u00B3',\n supdot: '\\u2ABE',\n supdsub: '\\u2AD8',\n supE: '\\u2AC6',\n supe: '\\u2287',\n supedot: '\\u2AC4',\n Superset: '\\u2283',\n SupersetEqual: '\\u2287',\n suphsol: '\\u27C9',\n suphsub: '\\u2AD7',\n suplarr: '\\u297B',\n supmult: '\\u2AC2',\n supnE: '\\u2ACC',\n supne: '\\u228B',\n supplus: '\\u2AC0',\n Supset: '\\u22D1',\n supset: '\\u2283',\n supseteq: '\\u2287',\n supseteqq: '\\u2AC6',\n supsetneq: '\\u228B',\n supsetneqq: '\\u2ACC',\n supsim: '\\u2AC8',\n supsub: '\\u2AD4',\n supsup: '\\u2AD6',\n swarhk: '\\u2926',\n swArr: '\\u21D9',\n swarr: '\\u2199',\n swarrow: '\\u2199',\n swnwar: '\\u292A',\n szlig: '\\u00DF',\n Tab: '\\u0009',\n target: '\\u2316',\n Tau: '\\u03A4',\n tau: '\\u03C4',\n tbrk: '\\u23B4',\n Tcaron: '\\u0164',\n tcaron: '\\u0165',\n Tcedil: '\\u0162',\n tcedil: '\\u0163',\n Tcy: '\\u0422',\n tcy: '\\u0442',\n tdot: '\\u20DB',\n telrec: '\\u2315',\n Tfr: '\\uD835\\uDD17',\n tfr: '\\uD835\\uDD31',\n there4: '\\u2234',\n Therefore: '\\u2234',\n therefore: '\\u2234',\n Theta: '\\u0398',\n theta: '\\u03B8',\n thetasym: '\\u03D1',\n thetav: '\\u03D1',\n thickapprox: '\\u2248',\n thicksim: '\\u223C',\n ThickSpace: '\\u205F\\u200A',\n thinsp: '\\u2009',\n ThinSpace: '\\u2009',\n thkap: '\\u2248',\n thksim: '\\u223C',\n THORN: '\\u00DE',\n thorn: '\\u00FE',\n Tilde: '\\u223C',\n tilde: '\\u02DC',\n TildeEqual: '\\u2243',\n TildeFullEqual: '\\u2245',\n TildeTilde: '\\u2248',\n times: '\\u00D7',\n timesb: '\\u22A0',\n timesbar: '\\u2A31',\n timesd: '\\u2A30',\n tint: '\\u222D',\n toea: '\\u2928',\n top: '\\u22A4',\n topbot: '\\u2336',\n topcir: '\\u2AF1',\n Topf: '\\uD835\\uDD4B',\n topf: '\\uD835\\uDD65',\n topfork: '\\u2ADA',\n tosa: '\\u2929',\n tprime: '\\u2034',\n TRADE: '\\u2122',\n trade: '\\u2122',\n triangle: '\\u25B5',\n triangledown: '\\u25BF',\n triangleleft: '\\u25C3',\n trianglelefteq: '\\u22B4',\n triangleq: '\\u225C',\n triangleright: '\\u25B9',\n trianglerighteq: '\\u22B5',\n tridot: '\\u25EC',\n trie: '\\u225C',\n triminus: '\\u2A3A',\n TripleDot: '\\u20DB',\n triplus: '\\u2A39',\n trisb: '\\u29CD',\n tritime: '\\u2A3B',\n trpezium: '\\u23E2',\n Tscr: '\\uD835\\uDCAF',\n tscr: '\\uD835\\uDCC9',\n TScy: '\\u0426',\n tscy: '\\u0446',\n TSHcy: '\\u040B',\n tshcy: '\\u045B',\n Tstrok: '\\u0166',\n tstrok: '\\u0167',\n twixt: '\\u226C',\n twoheadleftarrow: '\\u219E',\n twoheadrightarrow: '\\u21A0',\n Uacute: '\\u00DA',\n uacute: '\\u00FA',\n Uarr: '\\u219F',\n uArr: '\\u21D1',\n uarr: '\\u2191',\n Uarrocir: '\\u2949',\n Ubrcy: '\\u040E',\n ubrcy: '\\u045E',\n Ubreve: '\\u016C',\n ubreve: '\\u016D',\n Ucirc: '\\u00DB',\n ucirc: '\\u00FB',\n Ucy: '\\u0423',\n ucy: '\\u0443',\n udarr: '\\u21C5',\n Udblac: '\\u0170',\n udblac: '\\u0171',\n udhar: '\\u296E',\n ufisht: '\\u297E',\n Ufr: '\\uD835\\uDD18',\n ufr: '\\uD835\\uDD32',\n Ugrave: '\\u00D9',\n ugrave: '\\u00F9',\n uHar: '\\u2963',\n uharl: '\\u21BF',\n uharr: '\\u21BE',\n uhblk: '\\u2580',\n ulcorn: '\\u231C',\n ulcorner: '\\u231C',\n ulcrop: '\\u230F',\n ultri: '\\u25F8',\n Umacr: '\\u016A',\n umacr: '\\u016B',\n uml: '\\u00A8',\n UnderBar: '\\u005F',\n UnderBrace: '\\u23DF',\n UnderBracket: '\\u23B5',\n UnderParenthesis: '\\u23DD',\n Union: '\\u22C3',\n UnionPlus: '\\u228E',\n Uogon: '\\u0172',\n uogon: '\\u0173',\n Uopf: '\\uD835\\uDD4C',\n uopf: '\\uD835\\uDD66',\n UpArrow: '\\u2191',\n Uparrow: '\\u21D1',\n uparrow: '\\u2191',\n UpArrowBar: '\\u2912',\n UpArrowDownArrow: '\\u21C5',\n UpDownArrow: '\\u2195',\n Updownarrow: '\\u21D5',\n updownarrow: '\\u2195',\n UpEquilibrium: '\\u296E',\n upharpoonleft: '\\u21BF',\n upharpoonright: '\\u21BE',\n uplus: '\\u228E',\n UpperLeftArrow: '\\u2196',\n UpperRightArrow: '\\u2197',\n Upsi: '\\u03D2',\n upsi: '\\u03C5',\n upsih: '\\u03D2',\n Upsilon: '\\u03A5',\n upsilon: '\\u03C5',\n UpTee: '\\u22A5',\n UpTeeArrow: '\\u21A5',\n upuparrows: '\\u21C8',\n urcorn: '\\u231D',\n urcorner: '\\u231D',\n urcrop: '\\u230E',\n Uring: '\\u016E',\n uring: '\\u016F',\n urtri: '\\u25F9',\n Uscr: '\\uD835\\uDCB0',\n uscr: '\\uD835\\uDCCA',\n utdot: '\\u22F0',\n Utilde: '\\u0168',\n utilde: '\\u0169',\n utri: '\\u25B5',\n utrif: '\\u25B4',\n uuarr: '\\u21C8',\n Uuml: '\\u00DC',\n uuml: '\\u00FC',\n uwangle: '\\u29A7',\n vangrt: '\\u299C',\n varepsilon: '\\u03F5',\n varkappa: '\\u03F0',\n varnothing: '\\u2205',\n varphi: '\\u03D5',\n varpi: '\\u03D6',\n varpropto: '\\u221D',\n vArr: '\\u21D5',\n varr: '\\u2195',\n varrho: '\\u03F1',\n varsigma: '\\u03C2',\n varsubsetneq: '\\u228A\\uFE00',\n varsubsetneqq: '\\u2ACB\\uFE00',\n varsupsetneq: '\\u228B\\uFE00',\n varsupsetneqq: '\\u2ACC\\uFE00',\n vartheta: '\\u03D1',\n vartriangleleft: '\\u22B2',\n vartriangleright: '\\u22B3',\n Vbar: '\\u2AEB',\n vBar: '\\u2AE8',\n vBarv: '\\u2AE9',\n Vcy: '\\u0412',\n vcy: '\\u0432',\n VDash: '\\u22AB',\n Vdash: '\\u22A9',\n vDash: '\\u22A8',\n vdash: '\\u22A2',\n Vdashl: '\\u2AE6',\n Vee: '\\u22C1',\n vee: '\\u2228',\n veebar: '\\u22BB',\n veeeq: '\\u225A',\n vellip: '\\u22EE',\n Verbar: '\\u2016',\n verbar: '\\u007C',\n Vert: '\\u2016',\n vert: '\\u007C',\n VerticalBar: '\\u2223',\n VerticalLine: '\\u007C',\n VerticalSeparator: '\\u2758',\n VerticalTilde: '\\u2240',\n VeryThinSpace: '\\u200A',\n Vfr: '\\uD835\\uDD19',\n vfr: '\\uD835\\uDD33',\n vltri: '\\u22B2',\n vnsub: '\\u2282\\u20D2',\n vnsup: '\\u2283\\u20D2',\n Vopf: '\\uD835\\uDD4D',\n vopf: '\\uD835\\uDD67',\n vprop: '\\u221D',\n vrtri: '\\u22B3',\n Vscr: '\\uD835\\uDCB1',\n vscr: '\\uD835\\uDCCB',\n vsubnE: '\\u2ACB\\uFE00',\n vsubne: '\\u228A\\uFE00',\n vsupnE: '\\u2ACC\\uFE00',\n vsupne: '\\u228B\\uFE00',\n Vvdash: '\\u22AA',\n vzigzag: '\\u299A',\n Wcirc: '\\u0174',\n wcirc: '\\u0175',\n wedbar: '\\u2A5F',\n Wedge: '\\u22C0',\n wedge: '\\u2227',\n wedgeq: '\\u2259',\n weierp: '\\u2118',\n Wfr: '\\uD835\\uDD1A',\n wfr: '\\uD835\\uDD34',\n Wopf: '\\uD835\\uDD4E',\n wopf: '\\uD835\\uDD68',\n wp: '\\u2118',\n wr: '\\u2240',\n wreath: '\\u2240',\n Wscr: '\\uD835\\uDCB2',\n wscr: '\\uD835\\uDCCC',\n xcap: '\\u22C2',\n xcirc: '\\u25EF',\n xcup: '\\u22C3',\n xdtri: '\\u25BD',\n Xfr: '\\uD835\\uDD1B',\n xfr: '\\uD835\\uDD35',\n xhArr: '\\u27FA',\n xharr: '\\u27F7',\n Xi: '\\u039E',\n xi: '\\u03BE',\n xlArr: '\\u27F8',\n xlarr: '\\u27F5',\n xmap: '\\u27FC',\n xnis: '\\u22FB',\n xodot: '\\u2A00',\n Xopf: '\\uD835\\uDD4F',\n xopf: '\\uD835\\uDD69',\n xoplus: '\\u2A01',\n xotime: '\\u2A02',\n xrArr: '\\u27F9',\n xrarr: '\\u27F6',\n Xscr: '\\uD835\\uDCB3',\n xscr: '\\uD835\\uDCCD',\n xsqcup: '\\u2A06',\n xuplus: '\\u2A04',\n xutri: '\\u25B3',\n xvee: '\\u22C1',\n xwedge: '\\u22C0',\n Yacute: '\\u00DD',\n yacute: '\\u00FD',\n YAcy: '\\u042F',\n yacy: '\\u044F',\n Ycirc: '\\u0176',\n ycirc: '\\u0177',\n Ycy: '\\u042B',\n ycy: '\\u044B',\n yen: '\\u00A5',\n Yfr: '\\uD835\\uDD1C',\n yfr: '\\uD835\\uDD36',\n YIcy: '\\u0407',\n yicy: '\\u0457',\n Yopf: '\\uD835\\uDD50',\n yopf: '\\uD835\\uDD6A',\n Yscr: '\\uD835\\uDCB4',\n yscr: '\\uD835\\uDCCE',\n YUcy: '\\u042E',\n yucy: '\\u044E',\n Yuml: '\\u0178',\n yuml: '\\u00FF',\n Zacute: '\\u0179',\n zacute: '\\u017A',\n Zcaron: '\\u017D',\n zcaron: '\\u017E',\n Zcy: '\\u0417',\n zcy: '\\u0437',\n Zdot: '\\u017B',\n zdot: '\\u017C',\n zeetrf: '\\u2128',\n ZeroWidthSpace: '\\u200B',\n Zeta: '\\u0396',\n zeta: '\\u03B6',\n Zfr: '\\u2128',\n zfr: '\\uD835\\uDD37',\n ZHcy: '\\u0416',\n zhcy: '\\u0436',\n zigrarr: '\\u21DD',\n Zopf: '\\u2124',\n zopf: '\\uD835\\uDD6B',\n Zscr: '\\uD835\\uDCB5',\n zscr: '\\uD835\\uDCCF',\n zwj: '\\u200D',\n zwnj: '\\u200C'\n});\n$c276ef3f9204b1e9$export$79451380caed3f98 = $c276ef3f9204b1e9$export$b7e4d4631df36afa;\n\n});\n\nparcelRegister(\"ktUTz\", function(module, exports) {\n\n$parcel$export(module.exports, \"XMLReader\", () => $ee92a64c72e6623b$export$ccbc9f9f018333e9, (v) => $ee92a64c72e6623b$export$ccbc9f9f018333e9 = v);\n$parcel$export(module.exports, \"ParseError\", () => $ee92a64c72e6623b$export$f9c837a54db411d, (v) => $ee92a64c72e6623b$export$f9c837a54db411d = v);\nvar $ee92a64c72e6623b$export$ccbc9f9f018333e9;\nvar $ee92a64c72e6623b$export$f9c837a54db411d;\n\nvar $1lH7b = parcelRequire(\"1lH7b\");\nvar $ee92a64c72e6623b$require$NAMESPACE = $1lH7b.NAMESPACE;\n//[4] \tNameStartChar\t ::= \t\":\" | [A-Z] | \"_\" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\n//[4a] \tNameChar\t ::= \tNameStartChar | \"-\" | \".\" | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]\n//[5] \tName\t ::= \tNameStartChar (NameChar)*\nvar $ee92a64c72e6623b$var$nameStartChar = /[A-Z_a-z\\xC0-\\xD6\\xD8-\\xF6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/ //\\u10000-\\uEFFFF\n;\nvar $ee92a64c72e6623b$var$nameChar = new RegExp(\"[\\\\-\\\\.0-9\" + $ee92a64c72e6623b$var$nameStartChar.source.slice(1, -1) + \"\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]\");\nvar $ee92a64c72e6623b$var$tagNamePattern = new RegExp('^' + $ee92a64c72e6623b$var$nameStartChar.source + $ee92a64c72e6623b$var$nameChar.source + '*(?:\\:' + $ee92a64c72e6623b$var$nameStartChar.source + $ee92a64c72e6623b$var$nameChar.source + '*)?$');\n//var tagNamePattern = /^[a-zA-Z_][\\w\\-\\.]*(?:\\:[a-zA-Z_][\\w\\-\\.]*)?$/\n//var handlers = 'resolveEntity,getExternalSubset,characters,endDocument,endElement,endPrefixMapping,ignorableWhitespace,processingInstruction,setDocumentLocator,skippedEntity,startDocument,startElement,startPrefixMapping,notationDecl,unparsedEntityDecl,error,fatalError,warning,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,comment,endCDATA,endDTD,endEntity,startCDATA,startDTD,startEntity'.split(',')\n//S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\n//S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\nvar $ee92a64c72e6623b$var$S_TAG = 0; //tag name offerring\nvar $ee92a64c72e6623b$var$S_ATTR = 1; //attr name offerring\nvar $ee92a64c72e6623b$var$S_ATTR_SPACE = 2; //attr name end and space offer\nvar $ee92a64c72e6623b$var$S_EQ = 3; //=space?\nvar $ee92a64c72e6623b$var$S_ATTR_NOQUOT_VALUE = 4; //attr value(no quot value only)\nvar $ee92a64c72e6623b$var$S_ATTR_END = 5; //attr value end and no space(quot end)\nvar $ee92a64c72e6623b$var$S_TAG_SPACE = 6; //(attr value end || tag end ) && (space offer)\nvar $ee92a64c72e6623b$var$S_TAG_CLOSE = 7; //closed el<el />\n/**\n * Creates an error that will not be caught by XMLReader aka the SAX parser.\n *\n * @param {string} message\n * @param {any?} locator Optional, can provide details about the location in the source\n * @constructor\n */ function $ee92a64c72e6623b$var$ParseError(message, locator) {\n this.message = message;\n this.locator = locator;\n if (Error.captureStackTrace) Error.captureStackTrace(this, $ee92a64c72e6623b$var$ParseError);\n}\n$ee92a64c72e6623b$var$ParseError.prototype = new Error();\n$ee92a64c72e6623b$var$ParseError.prototype.name = $ee92a64c72e6623b$var$ParseError.name;\nfunction $ee92a64c72e6623b$var$XMLReader() {}\n$ee92a64c72e6623b$var$XMLReader.prototype = {\n parse: function(source, defaultNSMap, entityMap) {\n var domBuilder = this.domBuilder;\n domBuilder.startDocument();\n $ee92a64c72e6623b$var$_copy(defaultNSMap, defaultNSMap = {});\n $ee92a64c72e6623b$var$parse(source, defaultNSMap, entityMap, domBuilder, this.errorHandler);\n domBuilder.endDocument();\n }\n};\nfunction $ee92a64c72e6623b$var$parse(source, defaultNSMapCopy, entityMap, domBuilder, errorHandler) {\n function fixedFromCharCode(code) {\n // String.prototype.fromCharCode does not supports\n // > 2 bytes unicode chars directly\n if (code > 0xffff) {\n code -= 0x10000;\n var surrogate1 = 0xd800 + (code >> 10), surrogate2 = 0xdc00 + (code & 0x3ff);\n return String.fromCharCode(surrogate1, surrogate2);\n } else return String.fromCharCode(code);\n }\n function entityReplacer(a) {\n var k = a.slice(1, -1);\n if (Object.hasOwnProperty.call(entityMap, k)) return entityMap[k];\n else if (k.charAt(0) === '#') return fixedFromCharCode(parseInt(k.substr(1).replace('x', '0x')));\n else {\n errorHandler.error('entity not found:' + a);\n return a;\n }\n }\n function appendText(end) {\n if (end > start) {\n var xt = source.substring(start, end).replace(/&#?\\w+;/g, entityReplacer);\n locator && position(start);\n domBuilder.characters(xt, 0, end - start);\n start = end;\n }\n }\n function position(p, m) {\n while(p >= lineEnd && (m = linePattern.exec(source))){\n lineStart = m.index;\n lineEnd = lineStart + m[0].length;\n locator.lineNumber++;\n //console.log('line++:',locator,startPos,endPos)\n }\n locator.columnNumber = p - lineStart + 1;\n }\n var lineStart = 0;\n var lineEnd = 0;\n var linePattern = /.*(?:\\r\\n?|\\n)|.*$/g;\n var locator = domBuilder.locator;\n var parseStack = [\n {\n currentNSMap: defaultNSMapCopy\n }\n ];\n var closeMap = {};\n var start = 0;\n while(true){\n try {\n var tagStart = source.indexOf('<', start);\n if (tagStart < 0) {\n if (!source.substr(start).match(/^\\s*$/)) {\n var doc = domBuilder.doc;\n var text = doc.createTextNode(source.substr(start));\n doc.appendChild(text);\n domBuilder.currentElement = text;\n }\n return;\n }\n if (tagStart > start) appendText(tagStart);\n switch(source.charAt(tagStart + 1)){\n case '/':\n var end = source.indexOf('>', tagStart + 3);\n var tagName = source.substring(tagStart + 2, end).replace(/[ \\t\\n\\r]+$/g, '');\n var config = parseStack.pop();\n if (end < 0) {\n tagName = source.substring(tagStart + 2).replace(/[\\s<].*/, '');\n errorHandler.error(\"end tag name: \" + tagName + ' is not complete:' + config.tagName);\n end = tagStart + 1 + tagName.length;\n } else if (tagName.match(/\\s</)) {\n tagName = tagName.replace(/[\\s<].*/, '');\n errorHandler.error(\"end tag name: \" + tagName + ' maybe not complete');\n end = tagStart + 1 + tagName.length;\n }\n var localNSMap = config.localNSMap;\n var endMatch = config.tagName == tagName;\n var endIgnoreCaseMach = endMatch || config.tagName && config.tagName.toLowerCase() == tagName.toLowerCase();\n if (endIgnoreCaseMach) {\n domBuilder.endElement(config.uri, config.localName, tagName);\n if (localNSMap) {\n for(var prefix in localNSMap)if (Object.prototype.hasOwnProperty.call(localNSMap, prefix)) domBuilder.endPrefixMapping(prefix);\n }\n if (!endMatch) errorHandler.fatalError(\"end tag name: \" + tagName + ' is not match the current start tagName:' + config.tagName); // No known test case\n } else parseStack.push(config);\n end++;\n break;\n // end elment\n case '?':\n locator && position(tagStart);\n end = $ee92a64c72e6623b$var$parseInstruction(source, tagStart, domBuilder);\n break;\n case '!':\n locator && position(tagStart);\n end = $ee92a64c72e6623b$var$parseDCC(source, tagStart, domBuilder, errorHandler);\n break;\n default:\n locator && position(tagStart);\n var el = new $ee92a64c72e6623b$var$ElementAttributes();\n var currentNSMap = parseStack[parseStack.length - 1].currentNSMap;\n //elStartEnd\n var end = $ee92a64c72e6623b$var$parseElementStartPart(source, tagStart, el, currentNSMap, entityReplacer, errorHandler);\n var len = el.length;\n if (!el.closed && $ee92a64c72e6623b$var$fixSelfClosed(source, end, el.tagName, closeMap)) {\n el.closed = true;\n if (!entityMap.nbsp) errorHandler.warning('unclosed xml attribute');\n }\n if (locator && len) {\n var locator2 = $ee92a64c72e6623b$var$copyLocator(locator, {});\n //try{//attribute position fixed\n for(var i = 0; i < len; i++){\n var a = el[i];\n position(a.offset);\n a.locator = $ee92a64c72e6623b$var$copyLocator(locator, {});\n }\n domBuilder.locator = locator2;\n if ($ee92a64c72e6623b$var$appendElement(el, domBuilder, currentNSMap)) parseStack.push(el);\n domBuilder.locator = locator;\n } else if ($ee92a64c72e6623b$var$appendElement(el, domBuilder, currentNSMap)) parseStack.push(el);\n if ($ee92a64c72e6623b$require$NAMESPACE.isHTML(el.uri) && !el.closed) end = $ee92a64c72e6623b$var$parseHtmlSpecialContent(source, end, el.tagName, entityReplacer, domBuilder);\n else end++;\n }\n } catch (e) {\n if (e instanceof $ee92a64c72e6623b$var$ParseError) throw e;\n errorHandler.error('element parse error: ' + e);\n end = -1;\n }\n if (end > start) start = end;\n else //TODO: 这里有可能sax回退,有位置错误风险\n appendText(Math.max(tagStart, start) + 1);\n }\n}\nfunction $ee92a64c72e6623b$var$copyLocator(f, t) {\n t.lineNumber = f.lineNumber;\n t.columnNumber = f.columnNumber;\n return t;\n}\n/**\n * @see #appendElement(source,elStartEnd,el,selfClosed,entityReplacer,domBuilder,parseStack);\n * @return end of the elementStartPart(end of elementEndPart for selfClosed el)\n */ function $ee92a64c72e6623b$var$parseElementStartPart(source, start, el, currentNSMap, entityReplacer, errorHandler) {\n /**\n\t * @param {string} qname\n\t * @param {string} value\n\t * @param {number} startIndex\n\t */ function addAttribute(qname, value, startIndex) {\n if (el.attributeNames.hasOwnProperty(qname)) errorHandler.fatalError('Attribute ' + qname + ' redefined');\n el.addValue(qname, // @see https://www.w3.org/TR/xml/#AVNormalize\n // since the xmldom sax parser does not \"interpret\" DTD the following is not implemented:\n // - recursive replacement of (DTD) entity references\n // - trimming and collapsing multiple spaces into a single one for attributes that are not of type CDATA\n value.replace(/[\\t\\n\\r]/g, ' ').replace(/&#?\\w+;/g, entityReplacer), startIndex);\n }\n var attrName;\n var value;\n var p = ++start;\n var s = $ee92a64c72e6623b$var$S_TAG; //status\n while(true){\n var c = source.charAt(p);\n switch(c){\n case '=':\n if (s === $ee92a64c72e6623b$var$S_ATTR) {\n attrName = source.slice(start, p);\n s = $ee92a64c72e6623b$var$S_EQ;\n } else if (s === $ee92a64c72e6623b$var$S_ATTR_SPACE) s = $ee92a64c72e6623b$var$S_EQ;\n else //fatalError: equal must after attrName or space after attrName\n throw new Error('attribute equal must after attrName'); // No known test case\n break;\n case '\\'':\n case '\"':\n if (s === $ee92a64c72e6623b$var$S_EQ || s === $ee92a64c72e6623b$var$S_ATTR //|| s == S_ATTR_SPACE\n ) {\n if (s === $ee92a64c72e6623b$var$S_ATTR) {\n errorHandler.warning('attribute value must after \"=\"');\n attrName = source.slice(start, p);\n }\n start = p + 1;\n p = source.indexOf(c, start);\n if (p > 0) {\n value = source.slice(start, p);\n addAttribute(attrName, value, start - 1);\n s = $ee92a64c72e6623b$var$S_ATTR_END;\n } else //fatalError: no end quot match\n throw new Error('attribute value no end \\'' + c + '\\' match');\n } else if (s == $ee92a64c72e6623b$var$S_ATTR_NOQUOT_VALUE) {\n value = source.slice(start, p);\n addAttribute(attrName, value, start);\n errorHandler.warning('attribute \"' + attrName + '\" missed start quot(' + c + ')!!');\n start = p + 1;\n s = $ee92a64c72e6623b$var$S_ATTR_END;\n } else //fatalError: no equal before\n throw new Error('attribute value must after \"=\"'); // No known test case\n break;\n case '/':\n switch(s){\n case $ee92a64c72e6623b$var$S_TAG:\n el.setTagName(source.slice(start, p));\n case $ee92a64c72e6623b$var$S_ATTR_END:\n case $ee92a64c72e6623b$var$S_TAG_SPACE:\n case $ee92a64c72e6623b$var$S_TAG_CLOSE:\n s = $ee92a64c72e6623b$var$S_TAG_CLOSE;\n el.closed = true;\n case $ee92a64c72e6623b$var$S_ATTR_NOQUOT_VALUE:\n case $ee92a64c72e6623b$var$S_ATTR:\n break;\n case $ee92a64c72e6623b$var$S_ATTR_SPACE:\n el.closed = true;\n break;\n //case S_EQ:\n default:\n throw new Error(\"attribute invalid close char('/')\") // No known test case\n ;\n }\n break;\n case '':\n errorHandler.error('unexpected end of input');\n if (s == $ee92a64c72e6623b$var$S_TAG) el.setTagName(source.slice(start, p));\n return p;\n case '>':\n switch(s){\n case $ee92a64c72e6623b$var$S_TAG:\n el.setTagName(source.slice(start, p));\n case $ee92a64c72e6623b$var$S_ATTR_END:\n case $ee92a64c72e6623b$var$S_TAG_SPACE:\n case $ee92a64c72e6623b$var$S_TAG_CLOSE:\n break; //normal\n case $ee92a64c72e6623b$var$S_ATTR_NOQUOT_VALUE:\n case $ee92a64c72e6623b$var$S_ATTR:\n value = source.slice(start, p);\n if (value.slice(-1) === '/') {\n el.closed = true;\n value = value.slice(0, -1);\n }\n case $ee92a64c72e6623b$var$S_ATTR_SPACE:\n if (s === $ee92a64c72e6623b$var$S_ATTR_SPACE) value = attrName;\n if (s == $ee92a64c72e6623b$var$S_ATTR_NOQUOT_VALUE) {\n errorHandler.warning('attribute \"' + value + '\" missed quot(\")!');\n addAttribute(attrName, value, start);\n } else {\n if (!$ee92a64c72e6623b$require$NAMESPACE.isHTML(currentNSMap['']) || !value.match(/^(?:disabled|checked|selected)$/i)) errorHandler.warning('attribute \"' + value + '\" missed value!! \"' + value + '\" instead!!');\n addAttribute(value, value, start);\n }\n break;\n case $ee92a64c72e6623b$var$S_EQ:\n throw new Error('attribute value missed!!');\n }\n //\t\t\tconsole.log(tagName,tagNamePattern,tagNamePattern.test(tagName))\n return p;\n /*xml space '\\x20' | #x9 | #xD | #xA; */ case '\\u0080':\n c = ' ';\n default:\n if (c <= ' ') switch(s){\n case $ee92a64c72e6623b$var$S_TAG:\n el.setTagName(source.slice(start, p)); //tagName\n s = $ee92a64c72e6623b$var$S_TAG_SPACE;\n break;\n case $ee92a64c72e6623b$var$S_ATTR:\n attrName = source.slice(start, p);\n s = $ee92a64c72e6623b$var$S_ATTR_SPACE;\n break;\n case $ee92a64c72e6623b$var$S_ATTR_NOQUOT_VALUE:\n var value = source.slice(start, p);\n errorHandler.warning('attribute \"' + value + '\" missed quot(\")!!');\n addAttribute(attrName, value, start);\n case $ee92a64c72e6623b$var$S_ATTR_END:\n s = $ee92a64c72e6623b$var$S_TAG_SPACE;\n break;\n }\n else //S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\n //S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\n switch(s){\n //case S_TAG:void();break;\n //case S_ATTR:void();break;\n //case S_ATTR_NOQUOT_VALUE:void();break;\n case $ee92a64c72e6623b$var$S_ATTR_SPACE:\n var tagName = el.tagName;\n if (!$ee92a64c72e6623b$require$NAMESPACE.isHTML(currentNSMap['']) || !attrName.match(/^(?:disabled|checked|selected)$/i)) errorHandler.warning('attribute \"' + attrName + '\" missed value!! \"' + attrName + '\" instead2!!');\n addAttribute(attrName, attrName, start);\n start = p;\n s = $ee92a64c72e6623b$var$S_ATTR;\n break;\n case $ee92a64c72e6623b$var$S_ATTR_END:\n errorHandler.warning('attribute space is required\"' + attrName + '\"!!');\n case $ee92a64c72e6623b$var$S_TAG_SPACE:\n s = $ee92a64c72e6623b$var$S_ATTR;\n start = p;\n break;\n case $ee92a64c72e6623b$var$S_EQ:\n s = $ee92a64c72e6623b$var$S_ATTR_NOQUOT_VALUE;\n start = p;\n break;\n case $ee92a64c72e6623b$var$S_TAG_CLOSE:\n throw new Error(\"elements closed character '/' and '>' must be connected to\");\n }\n } //end outer switch\n //console.log('p++',p)\n p++;\n }\n}\n/**\n * @return true if has new namespace define\n */ function $ee92a64c72e6623b$var$appendElement(el, domBuilder, currentNSMap) {\n var tagName = el.tagName;\n var localNSMap = null;\n //var currentNSMap = parseStack[parseStack.length-1].currentNSMap;\n var i = el.length;\n while(i--){\n var a = el[i];\n var qName = a.qName;\n var value = a.value;\n var nsp = qName.indexOf(':');\n if (nsp > 0) {\n var prefix = a.prefix = qName.slice(0, nsp);\n var localName = qName.slice(nsp + 1);\n var nsPrefix = prefix === 'xmlns' && localName;\n } else {\n localName = qName;\n prefix = null;\n nsPrefix = qName === 'xmlns' && '';\n }\n //can not set prefix,because prefix !== ''\n a.localName = localName;\n //prefix == null for no ns prefix attribute\n if (nsPrefix !== false) {\n if (localNSMap == null) {\n localNSMap = {};\n //console.log(currentNSMap,0)\n $ee92a64c72e6623b$var$_copy(currentNSMap, currentNSMap = {});\n //console.log(currentNSMap,1)\n }\n currentNSMap[nsPrefix] = localNSMap[nsPrefix] = value;\n a.uri = $ee92a64c72e6623b$require$NAMESPACE.XMLNS;\n domBuilder.startPrefixMapping(nsPrefix, value);\n }\n }\n var i = el.length;\n while(i--){\n a = el[i];\n var prefix = a.prefix;\n if (prefix) {\n if (prefix === 'xml') a.uri = $ee92a64c72e6623b$require$NAMESPACE.XML;\n if (prefix !== 'xmlns') a.uri = currentNSMap[prefix || ''];\n }\n }\n var nsp = tagName.indexOf(':');\n if (nsp > 0) {\n prefix = el.prefix = tagName.slice(0, nsp);\n localName = el.localName = tagName.slice(nsp + 1);\n } else {\n prefix = null; //important!!\n localName = el.localName = tagName;\n }\n //no prefix element has default namespace\n var ns = el.uri = currentNSMap[prefix || ''];\n domBuilder.startElement(ns, localName, tagName, el);\n //endPrefixMapping and startPrefixMapping have not any help for dom builder\n //localNSMap = null\n if (el.closed) {\n domBuilder.endElement(ns, localName, tagName);\n if (localNSMap) {\n for(prefix in localNSMap)if (Object.prototype.hasOwnProperty.call(localNSMap, prefix)) domBuilder.endPrefixMapping(prefix);\n }\n } else {\n el.currentNSMap = currentNSMap;\n el.localNSMap = localNSMap;\n //parseStack.push(el);\n return true;\n }\n}\nfunction $ee92a64c72e6623b$var$parseHtmlSpecialContent(source, elStartEnd, tagName, entityReplacer, domBuilder) {\n if (/^(?:script|textarea)$/i.test(tagName)) {\n var elEndStart = source.indexOf('</' + tagName + '>', elStartEnd);\n var text = source.substring(elStartEnd + 1, elEndStart);\n if (/[&<]/.test(text)) {\n if (/^script$/i.test(tagName)) {\n //if(!/\\]\\]>/.test(text)){\n //lexHandler.startCDATA();\n domBuilder.characters(text, 0, text.length);\n //lexHandler.endCDATA();\n return elEndStart;\n //}\n } //}else{//text area\n text = text.replace(/&#?\\w+;/g, entityReplacer);\n domBuilder.characters(text, 0, text.length);\n return elEndStart;\n //}\n }\n }\n return elStartEnd + 1;\n}\nfunction $ee92a64c72e6623b$var$fixSelfClosed(source, elStartEnd, tagName, closeMap) {\n //if(tagName in closeMap){\n var pos = closeMap[tagName];\n if (pos == null) {\n //console.log(tagName)\n pos = source.lastIndexOf('</' + tagName + '>');\n if (pos < elStartEnd) pos = source.lastIndexOf('</' + tagName);\n closeMap[tagName] = pos;\n }\n return pos < elStartEnd;\n//}\n}\nfunction $ee92a64c72e6623b$var$_copy(source, target) {\n for(var n in source)if (Object.prototype.hasOwnProperty.call(source, n)) target[n] = source[n];\n}\nfunction $ee92a64c72e6623b$var$parseDCC(source, start, domBuilder, errorHandler) {\n var next = source.charAt(start + 2);\n switch(next){\n case '-':\n if (source.charAt(start + 3) === '-') {\n var end = source.indexOf('-->', start + 4);\n //append comment source.substring(4,end)//<!--\n if (end > start) {\n domBuilder.comment(source, start + 4, end - start - 4);\n return end + 3;\n } else {\n errorHandler.error(\"Unclosed comment\");\n return -1;\n }\n } else //error\n return -1;\n default:\n if (source.substr(start + 3, 6) == 'CDATA[') {\n var end = source.indexOf(']]>', start + 9);\n domBuilder.startCDATA();\n domBuilder.characters(source, start + 9, end - start - 9);\n domBuilder.endCDATA();\n return end + 3;\n }\n //<!DOCTYPE\n //startDTD(java.lang.String name, java.lang.String publicId, java.lang.String systemId)\n var matchs = $ee92a64c72e6623b$var$split(source, start);\n var len = matchs.length;\n if (len > 1 && /!doctype/i.test(matchs[0][0])) {\n var name = matchs[1][0];\n var pubid = false;\n var sysid = false;\n if (len > 3) {\n if (/^public$/i.test(matchs[2][0])) {\n pubid = matchs[3][0];\n sysid = len > 4 && matchs[4][0];\n } else if (/^system$/i.test(matchs[2][0])) sysid = matchs[3][0];\n }\n var lastMatch = matchs[len - 1];\n domBuilder.startDTD(name, pubid, sysid);\n domBuilder.endDTD();\n return lastMatch.index + lastMatch[0].length;\n }\n }\n return -1;\n}\nfunction $ee92a64c72e6623b$var$parseInstruction(source, start, domBuilder) {\n var end = source.indexOf('?>', start);\n if (end) {\n var match = source.substring(start, end).match(/^<\\?(\\S*)\\s*([\\s\\S]*?)\\s*$/);\n if (match) {\n var len = match[0].length;\n domBuilder.processingInstruction(match[1], match[2]);\n return end + 2;\n } else return -1;\n }\n return -1;\n}\nfunction $ee92a64c72e6623b$var$ElementAttributes() {\n this.attributeNames = {};\n}\n$ee92a64c72e6623b$var$ElementAttributes.prototype = {\n setTagName: function(tagName) {\n if (!$ee92a64c72e6623b$var$tagNamePattern.test(tagName)) throw new Error('invalid tagName:' + tagName);\n this.tagName = tagName;\n },\n addValue: function(qName, value, offset) {\n if (!$ee92a64c72e6623b$var$tagNamePattern.test(qName)) throw new Error('invalid attribute:' + qName);\n this.attributeNames[qName] = this.length;\n this[this.length++] = {\n qName: qName,\n value: value,\n offset: offset\n };\n },\n length: 0,\n getLocalName: function(i) {\n return this[i].localName;\n },\n getLocator: function(i) {\n return this[i].locator;\n },\n getQName: function(i) {\n return this[i].qName;\n },\n getURI: function(i) {\n return this[i].uri;\n },\n getValue: function(i) {\n return this[i].value;\n }\n};\nfunction $ee92a64c72e6623b$var$split(source, start) {\n var match;\n var buf = [];\n var reg = /'[^']+'|\"[^\"]+\"|[^\\s<>\\/=]+=?|(\\/?\\s*>|<)/g;\n reg.lastIndex = start;\n reg.exec(source); //skip <\n while(match = reg.exec(source)){\n buf.push(match);\n if (match[1]) return buf;\n }\n}\n$ee92a64c72e6623b$export$ccbc9f9f018333e9 = $ee92a64c72e6623b$var$XMLReader;\n$ee92a64c72e6623b$export$f9c837a54db411d = $ee92a64c72e6623b$var$ParseError;\n\n});\n\n\n\n\nparcelRegister(\"a5KUe\", function(module, exports) {\n\n$parcel$export(module.exports, \"ValueDict\", () => $af6a76b75560ed44$export$eb6d03473e8f6fd);\n\nvar $1koBx = parcelRequire(\"1koBx\");\n\nvar $k8bqh = parcelRequire(\"k8bqh\");\n\nvar $oVVei = parcelRequire(\"oVVei\");\n\nvar $dn8IV = parcelRequire(\"dn8IV\");\n\nvar $lIVux = parcelRequire(\"lIVux\");\n\nvar $42Eit = parcelRequire(\"42Eit\");\n\nvar $fUSyK = parcelRequire(\"fUSyK\");\n\nvar $7Rrzx = parcelRequire(\"7Rrzx\");\n\nvar $3xNaJ = parcelRequire(\"3xNaJ\");\nlet $af6a76b75560ed44$var$childTagNames;\nclass $af6a76b75560ed44$export$eb6d03473e8f6fd extends (0, $oVVei.Value) {\n /**\n * Value type.\n */ static TYPE = 'dict';\n /**\n * Tag names.\n */ static TAG_NAMES = [\n 'dict'\n ];\n /**\n * Child tag names.\n *\n * @returns Child tag names map.\n */ // eslint-disable-next-line @typescript-eslint/naming-convention\n static get CHILD_TAG_NAMES() {\n if (!$af6a76b75560ed44$var$childTagNames) {\n $af6a76b75560ed44$var$childTagNames = new Map();\n for (const ValueType of [\n (0, $dn8IV.ValueArray),\n (0, $lIVux.ValueBoolean),\n (0, $42Eit.ValueData),\n $af6a76b75560ed44$export$eb6d03473e8f6fd,\n (0, $fUSyK.ValueInteger),\n (0, $7Rrzx.ValueReal),\n (0, $3xNaJ.ValueString)\n ])for (const t of ValueType.TAG_NAMES)$af6a76b75560ed44$var$childTagNames.set(t, ValueType);\n }\n return $af6a76b75560ed44$var$childTagNames;\n }\n /**\n * Value value.\n */ value = new Map();\n /**\n * ValueDict constructor.\n *\n * @param value The value.\n */ constructor(value = new Map()){\n super();\n this.value = value;\n }\n /**\n * Dictionary size.\n *\n * @returns The size.\n */ get size() {\n return this.value.size;\n }\n /**\n * Check if key exists.\n *\n * @param key Dictionary key.\n * @returns The value or null.\n */ has(key) {\n return this.value.has(key);\n }\n /**\n * Get value for key or null if does not exist.\n *\n * @param key Dictionary key.\n * @returns The value or null.\n */ get(key) {\n return this.value.get(key) || null;\n }\n /**\n * Get value for key or throw.\n *\n * @param key Dictionary key.\n * @returns The value.\n */ getValue(key) {\n const r = this.get(key);\n if (!r) throw new Error(`Key is null: ${key}`);\n return r;\n }\n /**\n * Set value for key.\n *\n * @param key Dictionary key.\n * @param value Value object.\n */ set(key, value) {\n this.value.set(key, value);\n }\n /**\n * Delete value for key.\n *\n * @param key Dictionary key.\n */ delete(key) {\n this.value.delete(key);\n }\n /**\n * Clear dictionary.\n */ clear() {\n this.value.clear();\n }\n /**\n * @inheritdoc\n */ fromXmlElement(element) {\n (0, $k8bqh.assertXmlTagName)(element, 'dict');\n const children = (0, $k8bqh.xmlElementChildElements)(element);\n const l = children.length;\n if (l % 2) throw new Error(`Uneven number of child elements: ${l}`);\n const v = new Map();\n for(let i = 0; i < l; i += 2){\n var _xmlElementText;\n const eK = children[i];\n const eV = children[i + 1];\n (0, $k8bqh.assertXmlTagName)(eK, 'key');\n const key = ((_xmlElementText = (0, $k8bqh.xmlElementText)(eK)) === null || _xmlElementText === void 0 ? void 0 : _xmlElementText.nodeValue) || '';\n const value = this.childFromXmlElement(eV);\n v.set(key, value);\n }\n this.value = v;\n }\n /**\n * Decode child element from XML element.\n *\n * @param element XML element.\n * @returns Value element.\n */ childFromXmlElement(element) {\n const { tagName: tagName } = element;\n const { CHILD_TAG_NAMES: CHILD_TAG_NAMES } = this.constructor;\n const Value = CHILD_TAG_NAMES.get(tagName) || null;\n if (!Value) throw new Error(`Unknown element type: ${tagName}`);\n const r = new Value();\n r.fromXmlElement(element);\n return r;\n }\n /**\n * @inheritdoc\n */ toXml(options = null, depth = 0) {\n var _options_indentString;\n const i = (_options_indentString = options === null || options === void 0 ? void 0 : options.indentString) !== null && _options_indentString !== void 0 ? _options_indentString : (0, $1koBx.INDENT_STRING);\n var _options_newlineString;\n const n = (_options_newlineString = options === null || options === void 0 ? void 0 : options.newlineString) !== null && _options_newlineString !== void 0 ? _options_newlineString : (0, $1koBx.NEWLINE_STRING);\n const p = i.repeat(depth);\n const v = this.value;\n if (!v.size) return `${p}<dict/>`;\n const p2 = i.repeat(depth + 1);\n let r = `${p}<dict>`;\n for (const [key, val] of v){\n const e = key.replaceAll('&', '&').replaceAll('<', '<').replaceAll('>', '>');\n r += `${n}${p2}<key>${e}</key>${n}${val.toXml(options, depth + 1)}`;\n }\n r += `${n}${p}</dict>`;\n return r;\n }\n}\n\n});\nparcelRegister(\"oVVei\", function(module, exports) {\n\n$parcel$export(module.exports, \"Value\", () => $2537d34632da441d$export$4c8d1a57a761ef94);\n\nvar $k8bqh = parcelRequire(\"k8bqh\");\nclass $2537d34632da441d$export$4c8d1a57a761ef94 {\n /**\n * Value type.\n */ /**\n * Tag names.\n */ /**\n * Value constructor.\n */ constructor(){}\n /**\n * Value type.\n *\n * @returns Type string.\n */ get type() {\n return this.constructor.TYPE;\n }\n /**\n * Cast to specific type or null.\n *\n * @param Type Type constructor.\n * @returns This object or null.\n */ castTo(Type) {\n return this.type === Type.TYPE ? this : null;\n }\n /**\n * Cast to specific type or throw.\n *\n * @param Type Type constructor.\n * @returns This object.\n */ castAs(Type) {\n const casted = this.castTo(Type);\n if (!casted) throw new Error(`Cannot cast type '${this.type}' to '${Type.TYPE}'`);\n return casted;\n }\n /**\n * Decode document from string.\n *\n * @param xml XML string.\n */ fromXml(xml) {\n const { documentElement: documentElement } = (0, $k8bqh.xmlDecode)(xml);\n this.fromXmlElement(documentElement);\n }\n}\n\n});\n\nparcelRegister(\"dn8IV\", function(module, exports) {\n\n$parcel$export(module.exports, \"ValueArray\", () => $93aea20e6f592620$export$efd6342825622772);\n\nvar $1koBx = parcelRequire(\"1koBx\");\n\nvar $k8bqh = parcelRequire(\"k8bqh\");\n\nvar $oVVei = parcelRequire(\"oVVei\");\n\nvar $lIVux = parcelRequire(\"lIVux\");\n\nvar $42Eit = parcelRequire(\"42Eit\");\n\nvar $a5KUe = parcelRequire(\"a5KUe\");\n\nvar $fUSyK = parcelRequire(\"fUSyK\");\n\nvar $7Rrzx = parcelRequire(\"7Rrzx\");\n\nvar $3xNaJ = parcelRequire(\"3xNaJ\");\nlet $93aea20e6f592620$var$childTagNames;\nclass $93aea20e6f592620$export$efd6342825622772 extends (0, $oVVei.Value) {\n /**\n * Value type.\n */ static TYPE = 'array';\n /**\n * Tag names.\n */ static TAG_NAMES = [\n 'array'\n ];\n /**\n * Child tag names.\n *\n * @returns Child tag names map.\n */ // eslint-disable-next-line @typescript-eslint/naming-convention\n static get CHILD_TAG_NAMES() {\n if (!$93aea20e6f592620$var$childTagNames) {\n $93aea20e6f592620$var$childTagNames = new Map();\n for (const ValueType of [\n $93aea20e6f592620$export$efd6342825622772,\n (0, $lIVux.ValueBoolean),\n (0, $42Eit.ValueData),\n (0, $a5KUe.ValueDict),\n (0, $fUSyK.ValueInteger),\n (0, $7Rrzx.ValueReal),\n (0, $3xNaJ.ValueString)\n ])for (const t of ValueType.TAG_NAMES)$93aea20e6f592620$var$childTagNames.set(t, ValueType);\n }\n return $93aea20e6f592620$var$childTagNames;\n }\n /**\n * Value value.\n */ value = [];\n /**\n * ValueArray constructor.\n *\n * @param value The value.\n */ constructor(value = []){\n super();\n this.value = value;\n }\n /**\n * Array length.\n *\n * @returns The length.\n */ get length() {\n return this.value.length;\n }\n /**\n * Get value at index or null if out of bounds.\n *\n * @param index Array index.\n * @returns The value or null.\n */ get(index) {\n const { value: value } = this;\n return index < this.length ? value[index] : null;\n }\n /**\n * Get value at index or throw.\n *\n * @param index Array index.\n * @returns The value.\n */ getValue(index) {\n const r = this.get(index);\n if (!r) throw new Error(`Index out of bounds: ${index}`);\n return r;\n }\n /**\n * Set value at index.\n *\n * @param index Array index.\n * @param value Value object.\n */ set(index, value) {\n this.value[index] = value;\n }\n /**\n * Push values onto array.\n *\n * @param values Value objects.\n */ push(...values) {\n this.value.push(...values);\n }\n /**\n * Pop value off array or null.\n *\n * @returns Value object or null.\n */ pop() {\n return this.value.pop() || null;\n }\n /**\n * Pop value off array or throw.\n *\n * @returns Value object or null.\n */ popValue() {\n const r = this.pop();\n if (!r) throw new Error('Cannot pop empty array');\n return r;\n }\n /**\n * Shift value off array or null.\n *\n * @returns Value object or null.\n */ shift() {\n return this.value.shift() || null;\n }\n /**\n * Pop value off array or throw.\n *\n * @returns Value object or null.\n */ shiftValue() {\n const r = this.shift();\n if (!r) throw new Error('Cannot shift empty array');\n return r;\n }\n /**\n * @inheritdoc\n */ fromXmlElement(element) {\n (0, $k8bqh.assertXmlTagName)(element, 'array');\n const children = (0, $k8bqh.xmlElementChildElements)(element);\n this.value = children.map((el)=>this.childFromXmlElement(el));\n }\n /**\n * Decode child element from XML element.\n *\n * @param element XML element.\n * @returns Value element.\n */ childFromXmlElement(element) {\n const { tagName: tagName } = element;\n const { CHILD_TAG_NAMES: CHILD_TAG_NAMES } = this.constructor;\n const Value = CHILD_TAG_NAMES.get(tagName) || null;\n if (!Value) throw new Error(`Unknown element type: ${tagName}`);\n const r = new Value();\n r.fromXmlElement(element);\n return r;\n }\n /**\n * @inheritdoc\n */ toXml(options = null, depth = 0) {\n var _options_newlineString;\n const n = (_options_newlineString = options === null || options === void 0 ? void 0 : options.newlineString) !== null && _options_newlineString !== void 0 ? _options_newlineString : (0, $1koBx.NEWLINE_STRING);\n var _options_indentString;\n const p = ((_options_indentString = options === null || options === void 0 ? void 0 : options.indentString) !== null && _options_indentString !== void 0 ? _options_indentString : (0, $1koBx.INDENT_STRING)).repeat(depth);\n const v = this.value;\n if (!v.length) return `${p}<array/>`;\n let r = `${p}<array>`;\n for (const el of v)r += `${n}${el.toXml(options, depth + 1)}`;\n r += `${n}${p}</array>`;\n return r;\n }\n}\n\n});\nparcelRegister(\"lIVux\", function(module, exports) {\n\n$parcel$export(module.exports, \"ValueBoolean\", () => $09cc10f001bb1440$export$70ba2e51e03d3dca);\n\nvar $1koBx = parcelRequire(\"1koBx\");\n\nvar $k8bqh = parcelRequire(\"k8bqh\");\n\nvar $oVVei = parcelRequire(\"oVVei\");\nclass $09cc10f001bb1440$export$70ba2e51e03d3dca extends (0, $oVVei.Value) {\n /**\n * Value type.\n */ static TYPE = 'boolean';\n /**\n * Tag names.\n */ static TAG_NAMES = [\n 'true',\n 'false'\n ];\n /**\n * Value value.\n */ value = false;\n /**\n * ValueBoolean constructor.\n *\n * @param value The value.\n */ constructor(value = false){\n super();\n this.value = value;\n }\n /**\n * @inheritdoc\n */ fromXmlElement(element) {\n (0, $k8bqh.assertNoXmlElementChildNodes)(element);\n switch(element.tagName){\n case 'true':\n this.value = true;\n return;\n case 'false':\n this.value = false;\n return;\n default:\n throw (0, $k8bqh.assertXmlTagName)(element, '');\n }\n }\n /**\n * @inheritdoc\n */ toXml(options = null, depth = 0) {\n var _options_indentString;\n const p = ((_options_indentString = options === null || options === void 0 ? void 0 : options.indentString) !== null && _options_indentString !== void 0 ? _options_indentString : (0, $1koBx.INDENT_STRING)).repeat(depth);\n return this.value ? `${p}<true/>` : `${p}<false/>`;\n }\n}\n\n});\n\nparcelRegister(\"42Eit\", function(module, exports) {\n\n$parcel$export(module.exports, \"ValueData\", () => $55f39165b596f6f2$export$b52eba92ad5c7245);\n\nvar $1koBx = parcelRequire(\"1koBx\");\n\nvar $k8bqh = parcelRequire(\"k8bqh\");\n\nvar $oVVei = parcelRequire(\"oVVei\");\nclass $55f39165b596f6f2$export$b52eba92ad5c7245 extends (0, $oVVei.Value) {\n /**\n * Value type.\n */ static TYPE = 'data';\n /**\n * Tag names.\n */ static TAG_NAMES = [\n 'data'\n ];\n /**\n * Value value.\n */ /**\n * ValueData constructor.\n *\n * @param value The value.\n */ constructor(value = new Uint8Array(0)){\n super();\n this.value = value;\n }\n /**\n * @inheritdoc\n */ fromXmlElement(element) {\n var _xmlElementText;\n (0, $k8bqh.assertXmlTagName)(element, 'data');\n const text = ((_xmlElementText = (0, $k8bqh.xmlElementText)(element)) === null || _xmlElementText === void 0 ? void 0 : _xmlElementText.nodeValue) || '';\n this.value = (0, $k8bqh.base64Decode)(text);\n }\n /**\n * @inheritdoc\n */ toXml(options = null, depth = 0) {\n var _options_newlineString;\n const n = (_options_newlineString = options === null || options === void 0 ? void 0 : options.newlineString) !== null && _options_newlineString !== void 0 ? _options_newlineString : (0, $1koBx.NEWLINE_STRING);\n var _options_dataColumns;\n const c = (_options_dataColumns = options === null || options === void 0 ? void 0 : options.dataColumns) !== null && _options_dataColumns !== void 0 ? _options_dataColumns : (0, $1koBx.DATA_COLUMNS);\n var _options_indentString;\n const p = ((_options_indentString = options === null || options === void 0 ? void 0 : options.indentString) !== null && _options_indentString !== void 0 ? _options_indentString : (0, $1koBx.INDENT_STRING)).repeat(depth);\n let r = `${p}<data>`;\n if (c > 0) for(let s = (0, $k8bqh.base64Encode)(this.value); s; s = s.slice(c))r += `${n}${p}${s.slice(0, c)}`;\n else r += `${n}${p}${(0, $k8bqh.base64Encode)(this.value)}`;\n r += `${n}${p}</data>`;\n return r;\n }\n}\n\n});\n\nparcelRegister(\"fUSyK\", function(module, exports) {\n\n$parcel$export(module.exports, \"ValueInteger\", () => $a94823238d6991e3$export$28790b87716bcc55);\n\nvar $1koBx = parcelRequire(\"1koBx\");\n\nvar $k8bqh = parcelRequire(\"k8bqh\");\n\nvar $oVVei = parcelRequire(\"oVVei\");\nconst $a94823238d6991e3$var$MAX_NUM = 0x1fffffffffffff;\n/**\n * Assert number is integer.\n *\n * @param value Number value.\n */ function $a94823238d6991e3$var$assertInteger(value) {\n if (typeof value === 'number' && !Number.isInteger(value)) // eslint-disable-next-line unicorn/prefer-type-error\n throw new Error(`Value not an integer: ${value}`);\n}\nclass $a94823238d6991e3$export$28790b87716bcc55 extends (0, $oVVei.Value) {\n /**\n * Value type.\n */ static TYPE = 'integer';\n /**\n * Tag names.\n */ static TAG_NAMES = [\n 'integer'\n ];\n /**\n * Value value.\n */ value = 0;\n /**\n * ValueInteger constructor.\n *\n * @param value The value.\n */ constructor(value = 0){\n super();\n $a94823238d6991e3$var$assertInteger(value);\n this.value = value;\n }\n /**\n * Get value as BigInt.\n *\n * @returns Value as a BigInt.\n */ asBigInt() {\n return BigInt(this.value);\n }\n /**\n * Get value as Number, possibly losing some precision.\n *\n * @returns Value as a Number.\n */ asNumber() {\n return Number(this.value);\n }\n /**\n * @inheritdoc\n */ fromXmlElement(element) {\n var _xmlElementText;\n (0, $k8bqh.assertXmlTagName)(element, 'integer');\n const text = ((_xmlElementText = (0, $k8bqh.xmlElementText)(element)) === null || _xmlElementText === void 0 ? void 0 : _xmlElementText.nodeValue) || '';\n if (!/^[+-]?\\d+$/.test(text)) throw new Error(`Invalid integer data: ${text}`);\n const num = +text;\n this.value = num > $a94823238d6991e3$var$MAX_NUM || num < -$a94823238d6991e3$var$MAX_NUM ? BigInt(text) : num;\n }\n /**\n * @inheritdoc\n */ toXml(options = null, depth = 0) {\n var _options_indentString;\n const p = ((_options_indentString = options === null || options === void 0 ? void 0 : options.indentString) !== null && _options_indentString !== void 0 ? _options_indentString : (0, $1koBx.INDENT_STRING)).repeat(depth);\n const v = this.value;\n $a94823238d6991e3$var$assertInteger(v);\n return `${p}<integer>${v}</integer>`;\n }\n}\n\n});\n\nparcelRegister(\"7Rrzx\", function(module, exports) {\n\n$parcel$export(module.exports, \"ValueReal\", () => $a3a4217608094182$export$7870216e9baa6b53);\n\nvar $1koBx = parcelRequire(\"1koBx\");\n\nvar $k8bqh = parcelRequire(\"k8bqh\");\n\nvar $oVVei = parcelRequire(\"oVVei\");\nclass $a3a4217608094182$export$7870216e9baa6b53 extends (0, $oVVei.Value) {\n /**\n * Value type.\n */ static TYPE = 'real';\n /**\n * Tag names.\n */ static TAG_NAMES = [\n 'real'\n ];\n /**\n * Value value.\n */ value = 0;\n /**\n * ValueReal constructor.\n *\n * @param value The value.\n */ constructor(value = 0){\n super();\n this.value = value;\n }\n /**\n * @inheritdoc\n */ fromXmlElement(element) {\n var _xmlElementText;\n (0, $k8bqh.assertXmlTagName)(element, 'real');\n const text = ((_xmlElementText = (0, $k8bqh.xmlElementText)(element)) === null || _xmlElementText === void 0 ? void 0 : _xmlElementText.nodeValue) || '';\n if (!/^[+-]?(\\d+|\\d*\\.\\d+)$/.test(text)) throw new Error(`Invalid real data: ${text}`);\n this.value = +text;\n }\n /**\n * @inheritdoc\n */ toXml(options = null, depth = 0) {\n var _options_indentString;\n const p = ((_options_indentString = options === null || options === void 0 ? void 0 : options.indentString) !== null && _options_indentString !== void 0 ? _options_indentString : (0, $1koBx.INDENT_STRING)).repeat(depth);\n const v = this.value;\n return `${p}<real>${v}</real>`;\n }\n}\n\n});\n\nparcelRegister(\"3xNaJ\", function(module, exports) {\n\n$parcel$export(module.exports, \"ValueString\", () => $9b883b8b404b04f1$export$a5a3bdd166fb5151);\n\nvar $1koBx = parcelRequire(\"1koBx\");\n\nvar $k8bqh = parcelRequire(\"k8bqh\");\n\nvar $oVVei = parcelRequire(\"oVVei\");\nclass $9b883b8b404b04f1$export$a5a3bdd166fb5151 extends (0, $oVVei.Value) {\n /**\n * Value type.\n */ static TYPE = 'string';\n /**\n * Tag names.\n */ static TAG_NAMES = [\n 'string'\n ];\n /**\n * Value value.\n */ value = '';\n /**\n * ValueString constructor.\n *\n * @param value The value.\n */ constructor(value = ''){\n super();\n this.value = value;\n }\n /**\n * @inheritdoc\n */ fromXmlElement(element) {\n var _xmlElementText;\n (0, $k8bqh.assertXmlTagName)(element, 'string');\n this.value = ((_xmlElementText = (0, $k8bqh.xmlElementText)(element)) === null || _xmlElementText === void 0 ? void 0 : _xmlElementText.nodeValue) || '';\n }\n /**\n * @inheritdoc\n */ toXml(options = null, depth = 0) {\n var _options_indentString;\n const p = ((_options_indentString = options === null || options === void 0 ? void 0 : options.indentString) !== null && _options_indentString !== void 0 ? _options_indentString : (0, $1koBx.INDENT_STRING)).repeat(depth);\n const e = this.value.replaceAll('&', '&').replaceAll('<', '<').replaceAll('>', '>');\n return `${p}<string>${e}</string>`;\n }\n}\n\n});\n\n\n\n\n\nparcelRegister(\"jTAms\", function(module, exports) {\n\n$parcel$export(module.exports, \"Entry\", () => $814f6735d4a2c72f$export$3bb977b3ba9d3b59);\n$parcel$export(module.exports, \"Archive\", () => $814f6735d4a2c72f$export$767c3cfd836ab901);\n/* eslint-disable max-classes-per-file */ \n\nvar $6vN83 = parcelRequire(\"6vN83\");\n\n\n\n\nvar $3COFC = parcelRequire(\"3COFC\");\n\nvar $cDIKB = parcelRequire(\"cDIKB\");\nconst $814f6735d4a2c72f$var$pipe = (0, $glY73$nodeutil.promisify)((0, $glY73$nodestream.pipeline));\nclass $814f6735d4a2c72f$export$3bb977b3ba9d3b59 {\n /**\n * Entry archive.\n */ /**\n * Entry type.\n */ /**\n * Entry path.\n */ /**\n * Entry path, raw.\n */ /**\n * Entry size.\n */ /**\n * Entry size, compressed.\n */ /**\n * Entry mode.\n */ /**\n * Entry uid.\n */ /**\n * Entry gid.\n */ /**\n * Entry uname.\n */ /**\n * Entry gname.\n */ /**\n * Entry atime.\n */ /**\n * Entry mtime.\n */ /**\n * Read data.\n */ /**\n * Read rsrc.\n */ /**\n * Read symlink.\n */ /**\n * Entry triggering.\n */ _triggering = false;\n /**\n * Entry triggered.\n */ _triggered = false;\n /**\n * Entry extracted.\n */ _extracted = false;\n /**\n * Entry constructor.\n *\n * @param info Info object.\n */ constructor(info){\n this.archive = info.archive;\n this.type = info.type;\n this.pathRaw = info.pathRaw;\n this.path = (0, $cDIKB.pathNormalize)(info.pathRaw);\n var _info_size;\n this.size = (_info_size = info.size) !== null && _info_size !== void 0 ? _info_size : null;\n var _info_sizeComp;\n this.sizeComp = (_info_sizeComp = info.sizeComp) !== null && _info_sizeComp !== void 0 ? _info_sizeComp : null;\n var _info_mode;\n this.mode = (_info_mode = info.mode) !== null && _info_mode !== void 0 ? _info_mode : null;\n var _info_uid;\n this.uid = (_info_uid = info.uid) !== null && _info_uid !== void 0 ? _info_uid : null;\n var _info_gid;\n this.gid = (_info_gid = info.gid) !== null && _info_gid !== void 0 ? _info_gid : null;\n var _info_uname;\n this.uname = (_info_uname = info.uname) !== null && _info_uname !== void 0 ? _info_uname : null;\n var _info_gname;\n this.gname = (_info_gname = info.gname) !== null && _info_gname !== void 0 ? _info_gname : null;\n var _info_atime;\n this.atime = (_info_atime = info.atime) !== null && _info_atime !== void 0 ? _info_atime : null;\n var _info_mtime;\n this.mtime = (_info_mtime = info.mtime) !== null && _info_mtime !== void 0 ? _info_mtime : null;\n var _info_readData;\n this._readData = (_info_readData = info.readData) !== null && _info_readData !== void 0 ? _info_readData : null;\n var _info_readRsrc;\n this._readRsrc = (_info_readRsrc = info.readRsrc) !== null && _info_readRsrc !== void 0 ? _info_readRsrc : null;\n var _info_readSymlink;\n this._readSymlink = (_info_readSymlink = info.readSymlink) !== null && _info_readSymlink !== void 0 ? _info_readSymlink : null;\n }\n /**\n * This entry path includes named volume.\n *\n * @returns Entry has volume name in path.\n */ get hasNamedVolume() {\n return this.archive.hasNamedVolumes;\n }\n /**\n * This entry volume name, or null.\n *\n * @returns Entry path volume name.\n */ get volumeName() {\n if (this.hasNamedVolume) {\n const { path: path } = this;\n return path.substring(0, path.indexOf('/'));\n }\n return null;\n }\n /**\n * This entry path without any possible volume name.\n *\n * @returns Entry path without the volume name.\n */ get volumePath() {\n const { path: path } = this;\n if (this.hasNamedVolume) return path.substring(path.indexOf('/') + 1);\n return path;\n }\n /**\n * Read entry as stream, or null if nothing to read.\n * Consuming function will need to wait for stream to close.\n *\n * @returns Readable stream or null if nothing to read.\n */ async stream() {\n this._beginExtract();\n return this._stream();\n }\n /**\n * Read entire entry into a Buffer.\n *\n * @returns Buffer or null if nothing to be read.\n */ async read() {\n this._beginExtract();\n const stream = await this._stream();\n return stream ? (0, $cDIKB.streamToBuffer)(stream) : null;\n }\n /**\n * Extract entry.\n *\n * @param path Extract path.\n * @param options Extract options.\n */ async extract(path, options = {}) {\n this._beginExtract();\n await this._extract(path, options);\n }\n /**\n * Trigger on itterator function.\n *\n * @param itter Itterator function.\n * @returns Return value.\n */ async trigger(itter) {\n let r;\n if (this._triggered) throw new Error('Archive entry already triggered');\n this._triggered = this._triggering = true;\n try {\n r = await itter(this);\n } finally{\n this._triggering = false;\n }\n return r;\n }\n /**\n * Run again after reading.\n *\n * @param path Extract path, relative.\n * @param pathFull An optional full path to be used.\n * @param options Extract options.\n */ async setAttributes(path, pathFull = null, options = {}) {\n const pathSet = pathFull === null ? path : pathFull;\n const { ignorePermissions: ignorePermissions, ignoreTimes: ignoreTimes } = options;\n const { type: type, mode: mode, atime: atime, mtime: mtime } = this;\n let link = false;\n switch(type){\n case (0, $3COFC.PathType).FILE:\n break;\n case (0, $3COFC.PathType).RESOURCE_FORK:\n break;\n case (0, $3COFC.PathType).DIRECTORY:\n break;\n case (0, $3COFC.PathType).SYMLINK:\n link = true;\n break;\n default:\n throw new Error(`Unsupported path type: ${type}`);\n }\n const atimeSet = atime || mtime || null;\n const mtimeSet = mtime || atime || null;\n if (!ignorePermissions && mode !== null) {\n const chmod = link ? (0, $cDIKB.fsLchmod) : (0, $cDIKB.fsChmod);\n const modeSet = (0, $cDIKB.modePermissionBits)(mode);\n await chmod(pathSet, modeSet);\n }\n if (!ignoreTimes && atimeSet && mtimeSet) {\n const utimes = link ? (0, $cDIKB.fsLutimes) : (0, $cDIKB.fsUtimes);\n await utimes(pathSet, atimeSet, mtimeSet);\n }\n }\n /**\n * Method to call before begining extraction.\n * Throws error if extraction already started or entry not active.\n */ _beginExtract() {\n if (!this._triggering) throw new Error('Archive entry is not active');\n if (this._extracted) throw new Error('Archive entry can only be extracted once');\n this._extracted = true;\n }\n /**\n * Create an extract error for path that exists.\n *\n * @param path Extract path.\n * @returns Error object.\n */ _errorExtractPathExists(path) {\n return new Error(`Extract path already exists: ${path}`);\n }\n /**\n * Create an extract error for a resource fork not going to a file.\n *\n * @param path Extract path.\n * @returns Error object.\n */ _errorNoResourceFork(path) {\n return new Error(`Extract path for resource fork not a file: ${path}`);\n }\n /**\n * Extract entry.\n *\n * @param path Extract path.\n * @param options Extract options.\n */ async _extract(path, options) {\n this.archive.afterReadSetAttributesRemove(path);\n const { type: type } = this;\n switch(type){\n case (0, $3COFC.PathType).FILE:\n await this._extractFile(path, options);\n break;\n case (0, $3COFC.PathType).RESOURCE_FORK:\n await this._extractResourceFork(path, options);\n break;\n case (0, $3COFC.PathType).DIRECTORY:\n await this._extractDirectory(path, options);\n break;\n case (0, $3COFC.PathType).SYMLINK:\n await this._extractSymlink(path, options);\n break;\n default:\n throw new Error(`Unsupported path type: ${type}`);\n }\n }\n /**\n * Base function for extracting stream to a file.\n *\n * @param path Extract path.\n * @param reader Reader function.\n * @param options Extract options.\n */ async _extractStreamToFile(path, reader, options) {\n const { replace: replace } = options;\n // Check if something exists at path, optionally removing.\n const stat = await (0, $cDIKB.fsLstatExists)(path);\n if (stat) {\n // If replacing, then remove, else throw.\n if (replace) await (0, $6vN83.rm)(path, {\n recursive: true,\n force: true\n });\n else throw this._errorExtractPathExists(path);\n } else await (0, $6vN83.mkdir)((0, $glY73$nodepath.dirname)(path), {\n recursive: true\n });\n // Write file.\n await (0, $6vN83.writeFile)(path, Buffer.alloc(0));\n const stream = await reader();\n if (stream) await $814f6735d4a2c72f$var$pipe(stream, (0, $glY73$nodefs.createWriteStream)(path));\n // Set attributes.\n await this.setAttributes(path, null, options);\n }\n /**\n * Extract as a file.\n *\n * @param path Extract path.\n * @param options Extract options.\n */ async _extractFile(path, options) {\n const readData = this._readData;\n if (!readData) throw new Error('Internal error');\n await this._extractStreamToFile(path, readData, options);\n }\n /**\n * Extract as resource fork to an existing file.\n *\n * @param path Extract path.\n * @param options Extract options.\n */ async _extractResourceFork(path, options) {\n const readRsrc = this._readRsrc;\n if (!readRsrc) throw new Error('Internal error');\n // Optionally extract as a data file.\n if (options.resourceForkAsFile) {\n await this._extractStreamToFile(path, readRsrc, options);\n return;\n }\n // Check if file exists at path, else throw.\n const stat = await (0, $cDIKB.fsLstatExists)(path);\n if (!stat || !stat.isFile()) throw this._errorNoResourceFork(path);\n // Create resource fork path.\n const pathRsrc = (0, $cDIKB.pathResourceFork)(path);\n // Write the resource fork.\n const stream = await readRsrc();\n if (stream) await $814f6735d4a2c72f$var$pipe(stream, (0, $glY73$nodefs.createWriteStream)(pathRsrc));\n else await (0, $6vN83.writeFile)(pathRsrc, Buffer.alloc(0));\n // Set attributes.\n await this.setAttributes(path, null, options);\n }\n /**\n * Extract as a directory.\n *\n * @param path Extract path.\n * @param options Extract options.\n */ async _extractDirectory(path, options) {\n const { replace: replace } = options;\n // Check if something exists at path, else create.\n const stat = await (0, $cDIKB.fsLstatExists)(path);\n if (stat) // If not directory, then remove and replace it, else throw.\n {\n if (!stat.isDirectory()) {\n if (replace) {\n await (0, $6vN83.rm)(path, {\n recursive: true,\n force: true\n });\n await (0, $6vN83.mkdir)(path, {\n recursive: true\n });\n } else throw this._errorExtractPathExists(path);\n }\n } else await (0, $6vN83.mkdir)(path, {\n recursive: true\n });\n // Set directory attributes after any children are added.\n this.archive.afterReadSetAttributes(path, this, {\n ...options\n });\n }\n /**\n * Extract as a symlink.\n *\n * @param path Extract path.\n * @param options Extract options.\n */ async _extractSymlink(path, options) {\n const readSymlink = this._readSymlink;\n if (!readSymlink) throw new Error('Internal error');\n const { replace: replace, symlinkAsFile: symlinkAsFile } = options;\n // Check if something exists at path, optionally removing.\n const stat = await (0, $cDIKB.fsLstatExists)(path);\n if (stat) {\n // If replacing, then remove, else throw.\n if (replace) await (0, $6vN83.rm)(path, {\n recursive: true,\n force: true\n });\n else throw this._errorExtractPathExists(path);\n } else // Ensure base directory exists.\n await (0, $6vN83.mkdir)((0, $glY73$nodepath.dirname)(path), {\n recursive: true\n });\n // Read target.\n const target = await readSymlink();\n // Create link, optionally as a file.\n if (symlinkAsFile) await (0, $6vN83.writeFile)(path, target);\n else await (0, $cDIKB.fsSymlink)(path, target);\n // Set attributes.\n await this.setAttributes(path, null, options);\n }\n /**\n * Read as stream.\n *\n * @returns Readable stream.\n */ async _stream() {\n const { type: type } = this;\n switch(type){\n case (0, $3COFC.PathType).FILE:\n return this._streamFile();\n case (0, $3COFC.PathType).RESOURCE_FORK:\n return this._streamResourceFork();\n case (0, $3COFC.PathType).DIRECTORY:\n return this._streamDirectory();\n case (0, $3COFC.PathType).SYMLINK:\n return this._streamSymlink();\n default:\n throw new Error(`Unsupported path type: ${type}`);\n }\n }\n /**\n * Read file as stream.\n *\n * @returns Readable stream.\n */ async _streamFile() {\n const readData = this._readData;\n if (!readData) throw new Error('Internal error');\n return readData();\n }\n /**\n * Read resource fork as stream.\n *\n * @returns Readable stream.\n */ async _streamResourceFork() {\n const readRsrc = this._readRsrc;\n if (!readRsrc) throw new Error('Internal error');\n return readRsrc();\n }\n /**\n * Read directory null stream.\n *\n * @returns Null stream.\n */ // eslint-disable-next-line @typescript-eslint/require-await\n async _streamDirectory() {\n return null;\n }\n /**\n * Read symlink as stream.\n *\n * @returns Readable stream.\n */ // eslint-disable-next-line @typescript-eslint/require-await\n async _streamSymlink() {\n const readSymlink = this._readSymlink;\n if (!readSymlink) throw new Error('Internal error');\n const r = new (0, $glY73$nodestream.Readable)({\n // eslint-disable-next-line jsdoc/require-jsdoc\n read: ()=>{\n readSymlink().then((d)=>{\n r.push(d);\n r.push(null);\n }, (err)=>{\n r.emit('error', err);\n });\n }\n });\n return r;\n }\n}\nclass $814f6735d4a2c72f$export$767c3cfd836ab901 {\n /**\n * List of file extensions, or null.\n */ static FILE_EXTENSIONS = null;\n /**\n * Archive has named volumes that each entry will be under.\n */ static HAS_NAMED_VOLUMES = false;\n /**\n * Entry constructor.\n */ Entry = $814f6735d4a2c72f$export$3bb977b3ba9d3b59;\n /**\n * File path.\n */ /**\n * Flag for currently reading.\n */ _reading = false;\n /**\n * Map of entries to set attributes on after reading.\n */ _afterReadSetAttributes = null;\n /**\n * Archive constructor.\n *\n * @param path File path.\n */ constructor(path){\n this.path = path;\n }\n /**\n * List of file extensions used by this format.\n *\n * @returns List of file extensions.\n */ get fileExtensions() {\n return this.constructor.FILE_EXTENSIONS || null;\n }\n /**\n * Archive has named volumes that each entry will be under.\n *\n * @returns Archive has named volumns.\n */ get hasNamedVolumes() {\n return this.constructor.HAS_NAMED_VOLUMES;\n }\n /**\n * Add an instance to set attributes after the read finishes.\n *\n * @param path Path string.\n * @param entry Entry instance.\n * @param options Extract options.\n */ afterReadSetAttributes(path, entry, options = {}) {\n const afters = this._afterReadSetAttributes;\n if (!afters) throw new Error('Archive after read callbacks can only be added while reading');\n afters.set((0, $glY73$nodepath.resolve)(path), {\n path: path,\n entry: entry,\n options: options\n });\n }\n /**\n * Remove an instance to set attributes after the read finishes.\n *\n * @param path Path string.\n */ afterReadSetAttributesRemove(path) {\n const afters = this._afterReadSetAttributes;\n if (!afters) throw new Error('Archive after read callbacks can only be removed while reading');\n afters.delete((0, $glY73$nodepath.resolve)(path));\n }\n /**\n * Read archive.\n * If the itter callback returns false, reading ends.\n * If the itter callback returns null, skip descent where available.\n *\n * @param itter Async callback for each archive entry.\n */ async read(itter) {\n if (this._reading) throw new Error('Archive already being read');\n this._reading = true;\n // Reset the after entries.\n this._afterReadSetAttributes = new Map();\n // Read and handle all the afters, reset after.\n try {\n await this._read(itter);\n await this._afterReadSetAttributesTrigger();\n } finally{\n this._afterReadSetAttributes = null;\n this._reading = false;\n }\n }\n /**\n * Run all after read set attributes.\n */ async _afterReadSetAttributesTrigger() {\n const afters = this._afterReadSetAttributes;\n if (!afters) return;\n // Prioritize by path length.\n const resolves = [];\n for (const [resolved] of afters)resolves.push(resolved);\n resolves.sort((a, b)=>b.length - a.length);\n for (const resolved of resolves){\n const ent = afters.get(resolved);\n if (!ent) throw new Error('Internal error');\n const { entry: entry, path: path, options: options } = ent;\n // eslint-disable-next-line no-await-in-loop\n await entry.setAttributes(path, resolved, options);\n }\n }\n}\n\n});\nparcelRegister(\"3COFC\", function(module, exports) {\n\n$parcel$export(module.exports, \"PathType\", () => $4c470128e58da8e9$export$1ede5f4f7cadbc19);\nlet $4c470128e58da8e9$export$1ede5f4f7cadbc19 = /*#__PURE__*/ function(PathType) {\n PathType[\"DIRECTORY\"] = \"directory\";\n PathType[\"FILE\"] = \"file\";\n PathType[\"SYMLINK\"] = \"symlink\";\n PathType[\"RESOURCE_FORK\"] = \"resource-fork\";\n return PathType;\n}({});\n\n});\n\nparcelRegister(\"cDIKB\", function(module, exports) {\n\n$parcel$export(module.exports, \"pathNormalize\", () => $22af51167560aa25$export$68cdc037c5be95b7);\n$parcel$export(module.exports, \"pathResourceFork\", () => $22af51167560aa25$export$213610777f3cbb95);\n$parcel$export(module.exports, \"statToPathType\", () => $22af51167560aa25$export$2e57a8497aead096);\n$parcel$export(module.exports, \"modePermissionBits\", () => $22af51167560aa25$export$ca46d8333b51aa81);\n$parcel$export(module.exports, \"streamToBuffer\", () => $22af51167560aa25$export$f207b56f03ffaaa2);\n$parcel$export(module.exports, \"fsLchmod\", () => $22af51167560aa25$export$723e24d2d3d59491);\n$parcel$export(module.exports, \"fsUtimes\", () => $22af51167560aa25$export$e60cbb801cdc66af);\n$parcel$export(module.exports, \"fsLutimes\", () => $22af51167560aa25$export$64e420d57313a055);\n$parcel$export(module.exports, \"fsReadlinkRaw\", () => $22af51167560aa25$export$b8fdb3c5f4cc1051);\n$parcel$export(module.exports, \"fsSymlink\", () => $22af51167560aa25$export$59d9fa9158086022);\n$parcel$export(module.exports, \"fsChmod\", () => $22af51167560aa25$export$af454a5fce713aea);\n$parcel$export(module.exports, \"fsLstatExists\", () => $22af51167560aa25$export$aed0caf4b29264f6);\n$parcel$export(module.exports, \"fsWalk\", () => $22af51167560aa25$export$ae01bfa74017ee13);\n\n\nvar $6vN83 = parcelRequire(\"6vN83\");\n\n\n\nvar $2UWHT = parcelRequire(\"2UWHT\");\n\nvar $3COFC = parcelRequire(\"3COFC\");\nconst { O_WRONLY: $22af51167560aa25$var$O_WRONLY, O_SYMLINK: $22af51167560aa25$var$O_SYMLINK } = (0, $glY73$nodefs.constants);\nconst $22af51167560aa25$export$5249736f3cc47f82 = !!$22af51167560aa25$var$O_SYMLINK;\nconst $22af51167560aa25$export$356fc6a6fe321aa3 = !!$22af51167560aa25$var$O_SYMLINK;\nfunction $22af51167560aa25$export$68cdc037c5be95b7(path) {\n return path.replace(/\\\\/g, '/').replace(/([^/])\\/+$/, '$1');\n}\nfunction $22af51167560aa25$export$213610777f3cbb95(path) {\n return (0, $glY73$nodepath.join)(path, '..namedfork', 'rsrc');\n}\nfunction $22af51167560aa25$export$2e57a8497aead096(stat) {\n if (stat.isSymbolicLink()) return (0, $3COFC.PathType).SYMLINK;\n if (stat.isDirectory()) return (0, $3COFC.PathType).DIRECTORY;\n if (stat.isFile()) return (0, $3COFC.PathType).FILE;\n return null;\n}\nfunction $22af51167560aa25$export$984bbd77f303e817(mode) {\n if ($22af51167560aa25$export$5ce23a1192b35f8f(mode, 40960)) return (0, $3COFC.PathType).SYMLINK;\n if ($22af51167560aa25$export$5ce23a1192b35f8f(mode, 16384)) return (0, $3COFC.PathType).DIRECTORY;\n if ($22af51167560aa25$export$5ce23a1192b35f8f(mode, 32768)) return (0, $3COFC.PathType).FILE;\n return null;\n}\nfunction $22af51167560aa25$export$ca46d8333b51aa81(mode) {\n // eslint-disable-next-line no-bitwise\n return mode & 511;\n}\nfunction $22af51167560aa25$export$5ce23a1192b35f8f(value, mask) {\n // eslint-disable-next-line no-bitwise\n return (value & mask) === mask;\n}\nasync function $22af51167560aa25$export$f207b56f03ffaaa2(stream) {\n const datas = [];\n let size = 0;\n await (0, $2UWHT.pipeline)(stream, new (0, $glY73$nodestream.Writable)({\n // eslint-disable-next-line jsdoc/require-jsdoc\n write: (data, _encoding, cb)=>{\n datas.push(data);\n size += data.length;\n cb();\n }\n }));\n return Buffer.concat(datas, size);\n}\nasync function $22af51167560aa25$export$723e24d2d3d59491(path, mode) {\n // Skip if not supported.\n if (!$22af51167560aa25$export$5249736f3cc47f82) return;\n // eslint-disable-next-line no-bitwise\n const fd = await (0, $6vN83.open)(path, $22af51167560aa25$var$O_WRONLY | $22af51167560aa25$var$O_SYMLINK);\n try {\n await fd.chmod(mode);\n } finally{\n await fd.close();\n }\n}\nasync function $22af51167560aa25$export$e60cbb801cdc66af(path, atime, mtime) {\n await (0, $6vN83.utimes)(path, atime, mtime);\n}\nasync function $22af51167560aa25$export$64e420d57313a055(path, atime, mtime) {\n // Skip if not supported.\n if (!$22af51167560aa25$export$356fc6a6fe321aa3) return;\n // eslint-disable-next-line no-bitwise\n const fd = await (0, $6vN83.open)(path, $22af51167560aa25$var$O_WRONLY | $22af51167560aa25$var$O_SYMLINK);\n try {\n await fd.utimes(atime, mtime);\n } finally{\n await fd.close();\n }\n}\nasync function $22af51167560aa25$export$b8fdb3c5f4cc1051(path) {\n return (0, $6vN83.readlink)(path, 'buffer');\n}\nasync function $22af51167560aa25$export$59d9fa9158086022(path, target) {\n await (0, $6vN83.symlink)(target, path);\n}\nasync function $22af51167560aa25$export$af454a5fce713aea(path, mode) {\n await (0, $6vN83.chmod)(path, mode);\n}\nasync function $22af51167560aa25$export$d0e0ec41151e4b6a(path) {\n return (await (0, $6vN83.readdir)(path)).sort();\n}\nasync function $22af51167560aa25$export$8b5a7be0b507a2b7(path) {\n return (0, $6vN83.lstat)(path);\n}\nasync function $22af51167560aa25$export$aed0caf4b29264f6(path) {\n try {\n return await $22af51167560aa25$export$8b5a7be0b507a2b7(path);\n } catch (err) {\n const { code: code } = err;\n if (code === 'ENOENT' || code === 'ENOTDIR') return null;\n throw err;\n }\n}\nasync function $22af51167560aa25$export$ae01bfa74017ee13(base, itter, options = {}) {\n const { ignoreUnreadableDirectories: ignoreUnreadableDirectories } = options;\n const stack = (await $22af51167560aa25$export$d0e0ec41151e4b6a(base)).reverse();\n while(stack.length){\n const entry = stack.pop();\n const fullPath = (0, $glY73$nodepath.join)(base, entry);\n // eslint-disable-next-line no-await-in-loop\n const stat = await $22af51167560aa25$export$8b5a7be0b507a2b7(fullPath);\n // Callback, possibly stop recursion on directory.\n // eslint-disable-next-line no-await-in-loop\n const recurse = await itter(entry, stat);\n if (recurse === null) break;\n if (recurse === false || !stat.isDirectory()) continue;\n // Recurse down.\n let subs = [];\n try {\n // eslint-disable-next-line no-await-in-loop\n subs = await $22af51167560aa25$export$d0e0ec41151e4b6a(fullPath);\n } catch (err) {\n if (!(err && ignoreUnreadableDirectories && err.code === 'EACCES')) throw err;\n }\n for(let i = subs.length; i--;)stack.push((0, $glY73$nodepath.join)(entry, subs[i]));\n }\n}\n\n});\nparcelRegister(\"2UWHT\", function(module, exports) {\n\n$parcel$export(module.exports, \"pipeline\", () => $efef48a4431810d1$export$43f28b24e1eb8181);\n/* eslint-disable @typescript-eslint/ban-types */ /* eslint-disable @typescript-eslint/no-explicit-any */ \n\nconst $efef48a4431810d1$export$43f28b24e1eb8181 = \"promises\" in $glY73$stream && \"pipeline\" in $glY73$stream.promises ? $glY73$stream.promises.pipeline : (0, $glY73$util.promisify)($glY73$stream.pipeline);\nconst $efef48a4431810d1$export$90407f30cb0073b9 = \"promises\" in $glY73$stream && \"finished\" in $glY73$stream.promises ? $glY73$stream.promises.finished : (0, $glY73$util.promisify)($glY73$stream.finished);\n\n});\n\n\n\n\n\n//# sourceMappingURL=hdi.dcf7929b.js.map\n",null,"/* eslint-disable max-classes-per-file */\n\nimport {Stats, createReadStream} from 'node:fs';\nimport {basename, join as pathJoin} from 'node:path';\n\nimport {Mounter} from '@shockpkg/hdi-mac';\n\nimport {Archive, Entry, IEntryInfo} from '../archive';\nimport {PathType} from '../types';\nimport {\n\tfsLstatExists,\n\tfsReadlinkRaw,\n\tfsWalk,\n\tpathNormalize,\n\tpathResourceFork,\n\tstatToPathType\n} from '../util';\n\nconst walkOpts = {\n\tignoreUnreadableDirectories: true\n};\n\nconst ejectOptions = {\n\tforce: true\n};\n\nexport interface IEntryInfoHdi extends IEntryInfo {\n\t/**\n\t * @inheritdoc\n\t */\n\tarchive: ArchiveHdi;\n\n\t/**\n\t * @inheritdoc\n\t */\n\tsize: number;\n\n\t/**\n\t * @inheritdoc\n\t */\n\tsizeComp?: null;\n\n\t/**\n\t * @inheritdoc\n\t */\n\tmode: number;\n\n\t/**\n\t * @inheritdoc\n\t */\n\tuid: number;\n\n\t/**\n\t * @inheritdoc\n\t */\n\tgid: number;\n\n\t/**\n\t * @inheritdoc\n\t */\n\tuname?: null;\n\n\t/**\n\t * @inheritdoc\n\t */\n\tgname?: null;\n\n\t/**\n\t * @inheritdoc\n\t */\n\tatime: Date;\n\n\t/**\n\t * @inheritdoc\n\t */\n\tmtime: Date;\n}\n\n/**\n * EntryHdi object.\n */\nexport class EntryHdi extends Entry {\n\t/**\n\t * @inheritdoc\n\t */\n\tpublic readonly archive: ArchiveHdi;\n\n\t/**\n\t * @inheritdoc\n\t */\n\tpublic readonly size: number;\n\n\t/**\n\t * @inheritdoc\n\t */\n\tpublic readonly sizeComp: null = null;\n\n\t/**\n\t * @inheritdoc\n\t */\n\tpublic readonly mode: number;\n\n\t/**\n\t * @inheritdoc\n\t */\n\tpublic readonly uid: number;\n\n\t/**\n\t * @inheritdoc\n\t */\n\tpublic readonly gid: number;\n\n\t/**\n\t * @inheritdoc\n\t */\n\tpublic readonly uname: null = null;\n\n\t/**\n\t * @inheritdoc\n\t */\n\tpublic readonly gname: null = null;\n\n\t/**\n\t * @inheritdoc\n\t */\n\tpublic readonly atime: Date;\n\n\t/**\n\t * @inheritdoc\n\t */\n\tpublic readonly mtime: Date;\n\n\t/**\n\t * EntryHdi constructor.\n\t *\n\t * @param info Info object.\n\t */\n\tconstructor(info: Readonly<IEntryInfoHdi>) {\n\t\tsuper(info);\n\n\t\tthis.archive = info.archive;\n\t\tthis.size = info.size;\n\t\tthis.mode = info.mode;\n\t\tthis.uid = info.uid;\n\t\tthis.gid = info.gid;\n\t\tthis.atime = info.atime;\n\t\tthis.mtime = info.mtime;\n\t}\n\n\t/**\n\t * Get the path of resource psuedo-file, raw.\n\t *\n\t * @returns Path string.\n\t */\n\tpublic get rsrcPathRaw() {\n\t\treturn pathResourceFork(this.pathRaw);\n\t}\n\n\t/**\n\t * Get the path of resource psuedo-file, normalized.\n\t *\n\t * @returns Path string.\n\t */\n\tpublic get rsrcPath() {\n\t\treturn pathNormalize(pathResourceFork(this.path));\n\t}\n}\n\n/**\n * ArchiveHdi object.\n */\nexport class ArchiveHdi extends Archive {\n\t/**\n\t * @inheritdoc\n\t */\n\tpublic static readonly FILE_EXTENSIONS: Readonly<string[]> | null = [\n\t\t'.dmg',\n\t\t'.iso',\n\t\t'.cdr'\n\t];\n\n\t/**\n\t * @inheritdoc\n\t */\n\tpublic static readonly HAS_NAMED_VOLUMES: boolean = true;\n\n\t/**\n\t * @inheritdoc\n\t */\n\tpublic readonly Entry = EntryHdi;\n\n\t/**\n\t * Mounter, Mac.\n\t */\n\tpublic mounterMac = new Mounter();\n\n\t/**\n\t * Hide mounted disk image from the file explorers.\n\t */\n\tpublic nobrowse = false;\n\n\t/**\n\t * ArchiveHdi constructor.\n\t *\n\t * @param path File path.\n\t */\n\tconstructor(path: string) {\n\t\tsuper(path);\n\t}\n\n\t/**\n\t * @inheritdoc\n\t */\n\tpublic async read(itter: (entry: EntryHdi) => Promise<unknown>) {\n\t\tawait super.read(itter as (entry: Entry) => Promise<unknown>);\n\t}\n\n\t/**\n\t * @inheritdoc\n\t */\n\tprotected async _read(itter: (entry: EntryHdi) => Promise<unknown>) {\n\t\tconst {mounterMac, nobrowse} = this;\n\n\t\t/**\n\t\t * Each itterator.\n\t\t *\n\t\t * @param pathFull Full path.\n\t\t * @param pathRaw Raw path.\n\t\t * @param stat Stat object.\n\t\t * @returns Recursion hint.\n\t\t */\n\t\tconst each = async (pathFull: string, pathRaw: string, stat: Stats) => {\n\t\t\tconst type = statToPathType(stat);\n\t\t\tif (type === null) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tconst {size, mode, uid, gid, atime, mtime} = stat;\n\n\t\t\tconst readData =\n\t\t\t\ttype === PathType.FILE\n\t\t\t\t\t? // eslint-disable-next-line max-len\n\t\t\t\t\t // eslint-disable-next-line @typescript-eslint/require-await\n\t\t\t\t\t async () => createReadStream(pathFull)\n\t\t\t\t\t: null;\n\n\t\t\tconst readSymlink =\n\t\t\t\ttype === PathType.SYMLINK\n\t\t\t\t\t? async () => fsReadlinkRaw(pathFull)\n\t\t\t\t\t: null;\n\n\t\t\tconst entry = new this.Entry({\n\t\t\t\tarchive: this,\n\t\t\t\ttype,\n\t\t\t\tpathRaw,\n\t\t\t\tsize,\n\t\t\t\tmode,\n\t\t\t\tuid,\n\t\t\t\tgid,\n\t\t\t\tatime,\n\t\t\t\tmtime,\n\t\t\t\treadData,\n\t\t\t\treadSymlink\n\t\t\t});\n\n\t\t\tconst ret = await entry.trigger(itter);\n\t\t\tif (ret === false) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tif (ret === null) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (type === PathType.FILE) {\n\t\t\t\tconst rsrcPathFull = pathResourceFork(pathFull);\n\t\t\t\tconst rsrcStat = await fsLstatExists(rsrcPathFull);\n\n\t\t\t\tif (rsrcStat) {\n\t\t\t\t\tconst sizeRsrc = rsrcStat.size;\n\n\t\t\t\t\t/**\n\t\t\t\t\t * Read RSRC.\n\t\t\t\t\t *\n\t\t\t\t\t * @returns Read stream.\n\t\t\t\t\t */\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/require-await\n\t\t\t\t\tconst readRsrc = async () => createReadStream(rsrcPathFull);\n\n\t\t\t\t\tconst entryRsrc = new this.Entry({\n\t\t\t\t\t\tarchive: this,\n\t\t\t\t\t\ttype: PathType.RESOURCE_FORK,\n\t\t\t\t\t\tpathRaw,\n\t\t\t\t\t\tsize: sizeRsrc,\n\t\t\t\t\t\tmode,\n\t\t\t\t\t\tuid,\n\t\t\t\t\t\tgid,\n\t\t\t\t\t\tatime,\n\t\t\t\t\t\tmtime,\n\t\t\t\t\t\treadRsrc\n\t\t\t\t\t});\n\n\t\t\t\t\tconst ret = await entryRsrc.trigger(itter);\n\t\t\t\t\tif (ret === false) {\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t\tif (ret === null) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn true;\n\t\t};\n\n\t\t// Using auto-eject on normal exit option.\n\t\tconst info = await mounterMac.attach(\n\t\t\tthis.path,\n\t\t\t{\n\t\t\t\tnobrowse,\n\t\t\t\treadonly: true\n\t\t\t},\n\t\t\tejectOptions\n\t\t);\n\n\t\t// Eject device when done.\n\t\ttry {\n\t\t\tfor (const device of info.devices) {\n\t\t\t\tconst {mountPoint} = device;\n\t\t\t\tif (!mountPoint) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tconst volumeName = basename(mountPoint);\n\t\t\t\t// eslint-disable-next-line no-await-in-loop\n\t\t\t\tawait fsWalk(\n\t\t\t\t\tmountPoint,\n\t\t\t\t\tasync (pathRel, stat) => {\n\t\t\t\t\t\tconst pathFull = pathJoin(mountPoint, pathRel);\n\t\t\t\t\t\tconst pathRaw = pathJoin(volumeName, pathRel);\n\t\t\t\t\t\treturn each(pathFull, pathRaw, stat);\n\t\t\t\t\t},\n\t\t\t\t\twalkOpts\n\t\t\t\t);\n\t\t\t}\n\t\t} finally {\n\t\t\tawait info.eject(ejectOptions);\n\t\t}\n\t}\n}\n",null,"import {spawn, spawnSync} from 'node:child_process';\n\nimport {\n\tPlist,\n\tValueDict,\n\tValueArray,\n\tValueString,\n\tValueBoolean\n} from '@shockpkg/plist-dom';\n\nexport interface IMounterOptions {\n\t/**\n\t * The path for hdiutil.\n\t *\n\t * @default 'hdiutil'\n\t */\n\thdiutil?: string | null;\n}\n\nexport interface IMounterAttachOptions {\n\t/**\n\t * Force the devices to be read-only.\n\t */\n\treadonly?: boolean;\n\n\t/**\n\t * Hide any mounted volumes from applications like Finder.\n\t */\n\tnobrowse?: boolean;\n}\n\nexport interface IMounterEjectOptions {\n\t/**\n\t * Forcibly detach.\n\t */\n\tforce?: boolean;\n}\n\nexport interface IMounterDevice {\n\t/**\n\t * The dev-entry hdiutil info.\n\t */\n\tdevEntry: string;\n\n\t/**\n\t * The potentially-mountable hdiutil info.\n\t */\n\tpotentiallyMountable: boolean;\n\n\t/**\n\t * The content-hint hdiutil info.\n\t */\n\tcontentHint?: string;\n\n\t/**\n\t * The unmapped-content-hint hdiutil info.\n\t */\n\tunmappedContentHint?: string;\n\n\t/**\n\t * The volume-kind hdiutil info, if present.\n\t */\n\tvolumeKind?: string;\n\n\t/**\n\t * The mount-point hdiutil info, if present.\n\t */\n\tmountPoint?: string;\n}\n\nexport interface IMounterAttachInfo {\n\t/**\n\t * Device list.\n\t */\n\tdevices: IMounterDevice[];\n\n\t/**\n\t * Eject disk.\n\t */\n\teject(options?: Readonly<IMounterEjectOptions> | null): Promise<void>;\n\n\t/**\n\t * Eject disk.\n\t */\n\tejectSync(options?: Readonly<IMounterEjectOptions> | null): void;\n}\n\n/**\n * Mounter object.\n */\nexport class Mounter {\n\t/**\n\t * The path to hdiutil.\n\t */\n\tpublic hdiutil: string;\n\n\t/**\n\t * Mounter constructor.\n\t *\n\t * @param options Options object.\n\t */\n\tconstructor(options: Readonly<IMounterOptions> | null = null) {\n\t\tthis.hdiutil = (options ? options.hdiutil : null) || 'hdiutil';\n\t}\n\n\t/**\n\t * Attach a disk image.\n\t *\n\t * @param file Path to disk image.\n\t * @param options Options object.\n\t * @param ejectOnExit Eject on exit options, or null.\n\t * @returns Info object.\n\t */\n\tpublic async attach(\n\t\tfile: string,\n\t\toptions: Readonly<IMounterAttachOptions> | null = null,\n\t\tejectOnExit: Readonly<IMounterEjectOptions> | null = null\n\t): Promise<IMounterAttachInfo> {\n\t\tconst devices = await this._runAttach(this._argsAttach(file, options));\n\t\tconst {eject, ejectSync} = this._createEjects(devices);\n\t\treturn {\n\t\t\tdevices,\n\t\t\teject,\n\t\t\tejectSync\n\t\t};\n\t}\n\n\t/**\n\t * Attach a disk image.\n\t *\n\t * @param file Path to disk image.\n\t * @param options Options object.\n\t * @param ejectOnExit Eject on exit options, or null.\n\t * @returns Info object.\n\t */\n\tpublic attachSync(\n\t\tfile: string,\n\t\toptions: Readonly<IMounterAttachOptions> | null = null,\n\t\tejectOnExit: Readonly<IMounterEjectOptions> | null = null\n\t): IMounterAttachInfo {\n\t\t// eslint-disable-next-line no-sync\n\t\tconst devices = this._runAttachSync(this._argsAttach(file, options));\n\t\tconst {eject, ejectSync} = this._createEjects(devices);\n\t\treturn {\n\t\t\tdevices,\n\t\t\teject,\n\t\t\tejectSync\n\t\t};\n\t}\n\n\t/**\n\t * Eject a disk image.\n\t *\n\t * @param file Path to device file or volume mount point.\n\t * @param options Options object.\n\t */\n\tpublic async eject(\n\t\tfile: string,\n\t\toptions: Readonly<IMounterEjectOptions> | null = null\n\t) {\n\t\tawait this._runEject(this._argsEject(file, options));\n\t}\n\n\t/**\n\t * Eject a disk image.\n\t *\n\t * @param file Path to device file or volume mount point.\n\t * @param options Options object.\n\t */\n\tpublic ejectSync(\n\t\tfile: string,\n\t\toptions: Readonly<IMounterEjectOptions> | null = null\n\t) {\n\t\t// eslint-disable-next-line no-sync\n\t\tthis._runEjectSync(this._argsEject(file, options));\n\t}\n\n\t/**\n\t * Create args for attach.\n\t *\n\t * @param file Path to disk image.\n\t * @param options Options object.\n\t * @returns Argument list.\n\t */\n\tprotected _argsAttach(\n\t\tfile: string,\n\t\toptions: Readonly<IMounterAttachOptions> | null = null\n\t) {\n\t\tconst args = ['attach', '-plist'];\n\t\tif (options) {\n\t\t\tif (options.readonly) {\n\t\t\t\targs.push('-readonly');\n\t\t\t}\n\t\t\tif (options.nobrowse) {\n\t\t\t\targs.push('-nobrowse');\n\t\t\t}\n\t\t}\n\t\targs.push(this._fileArg(file));\n\t\treturn args;\n\t}\n\n\t/**\n\t * Create args for eject.\n\t *\n\t * @param file Path to device file or volume mount point.\n\t * @param options Options object.\n\t * @returns Argument list.\n\t */\n\tprotected _argsEject(\n\t\tfile: string,\n\t\toptions: Readonly<IMounterEjectOptions> | null = null\n\t) {\n\t\tconst args = ['eject'];\n\t\tif (options && options.force) {\n\t\t\targs.push('-force');\n\t\t}\n\t\targs.push(this._fileArg(file));\n\t\treturn args;\n\t}\n\n\t/**\n\t * Run hdiutil attach command, returning the devices list on success.\n\t *\n\t * @param args CLI args.\n\t * @returns Devices list.\n\t */\n\tprotected async _runAttach(args: readonly string[]) {\n\t\tconst stdouts: Buffer[] = [];\n\t\tconst proc = spawn(this.hdiutil, args);\n\t\tproc.stdout.on('data', (data: Buffer) => {\n\t\t\tstdouts.push(data);\n\t\t});\n\t\tconst code = await new Promise<number | null>((resolve, reject) => {\n\t\t\tproc.once('exit', resolve);\n\t\t\tproc.once('error', reject);\n\t\t});\n\t\tif (code) {\n\t\t\tthrow new Error(`Attach failed: hdiutil exit code: ${code}`);\n\t\t}\n\t\treturn this._parseDevices(Buffer.concat(stdouts).toString());\n\t}\n\n\t/**\n\t * Run hdiutil attach command, returning the devices list on success.\n\t *\n\t * @param args CLI args.\n\t * @returns Devices list.\n\t */\n\tprotected _runAttachSync(args: readonly string[]) {\n\t\tconst {status, error, stdout} = spawnSync(this.hdiutil, args);\n\t\tif (error) {\n\t\t\tthrow error;\n\t\t}\n\t\tif (status) {\n\t\t\tthrow new Error(`Attach failed: hdiutil exit code: ${status}`);\n\t\t}\n\t\treturn this._parseDevices(stdout.toString());\n\t}\n\n\t/**\n\t * Run hdiutil eject command.\n\t *\n\t * @param args CLI args.\n\t */\n\tprotected async _runEject(args: readonly string[]) {\n\t\tconst proc = spawn(this.hdiutil, args);\n\t\tconst status = await new Promise<number | null>((resolve, reject) => {\n\t\t\tproc.once('exit', resolve);\n\t\t\tproc.once('error', reject);\n\t\t});\n\t\tif (status) {\n\t\t\tthrow new Error(`Eject failed: hdiutil exit code: ${status}`);\n\t\t}\n\t}\n\n\t/**\n\t * Run hdiutil eject command.\n\t *\n\t * @param args CLI args.\n\t */\n\tprotected _runEjectSync(args: readonly string[]) {\n\t\tconst {status, error} = spawnSync(this.hdiutil, args);\n\t\tif (error) {\n\t\t\tthrow error;\n\t\t}\n\t\tif (status) {\n\t\t\tthrow new Error(`Eject failed: hdiutil exit code: ${status}`);\n\t\t}\n\t}\n\n\t/**\n\t * Create file argument from file path.\n\t *\n\t * @param file File path.\n\t * @returns A path for use as argument.\n\t */\n\tprotected _fileArg(file: string) {\n\t\t// Make sure it will not be recognized as option argument.\n\t\treturn file.startsWith('-') ? `./${file}` : file;\n\t}\n\n\t/**\n\t * Parse devices plist into devices list.\n\t *\n\t * @param xml XML plist.\n\t * @returns Devices list.\n\t */\n\tprotected _parseDevices(xml: string) {\n\t\tconst plist = new Plist();\n\t\tplist.fromXml(xml);\n\t\tconst systemEntities = plist\n\t\t\t.valueCastAs(ValueDict)\n\t\t\t.getValue('system-entities')\n\t\t\t.castAs(ValueArray);\n\n\t\tconst r: IMounterDevice[] = [];\n\t\tfor (const value of systemEntities.value) {\n\t\t\tconst dict = value.castAs(ValueDict);\n\t\t\tconst devEntry = dict\n\t\t\t\t.getValue('dev-entry')\n\t\t\t\t.castAs(ValueString).value;\n\t\t\tconst potentiallyMountable = dict\n\t\t\t\t.getValue('potentially-mountable')\n\t\t\t\t.castAs(ValueBoolean).value;\n\t\t\tconst contentHint = dict.get('content-hint');\n\t\t\tconst unmappedContentHint = dict.get('unmapped-content-hint');\n\t\t\tconst volumeKind = dict.get('volume-kind');\n\t\t\tconst mountPoint = dict.get('mount-point');\n\n\t\t\tconst device: IMounterDevice = {\n\t\t\t\tdevEntry,\n\t\t\t\tpotentiallyMountable\n\t\t\t};\n\t\t\tif (contentHint) {\n\t\t\t\tdevice.contentHint = contentHint.castAs(ValueString).value;\n\t\t\t}\n\t\t\tif (unmappedContentHint) {\n\t\t\t\tdevice.unmappedContentHint =\n\t\t\t\t\tunmappedContentHint.castAs(ValueString).value;\n\t\t\t}\n\t\t\tif (volumeKind) {\n\t\t\t\tdevice.volumeKind = volumeKind.castAs(ValueString).value;\n\t\t\t}\n\t\t\tif (mountPoint) {\n\t\t\t\tdevice.mountPoint = mountPoint.castAs(ValueString).value;\n\t\t\t}\n\t\t\tr.push(device);\n\t\t}\n\t\treturn r;\n\t}\n\n\t/**\n\t * Find the root device, null on empty list.\n\t *\n\t * @param devices Device list.\n\t * @returns Root device or null if an empty list.\n\t */\n\tprotected _findRootDevice(devices: readonly Readonly<IMounterDevice>[]) {\n\t\tlet r: IMounterDevice | null = null;\n\t\tfor (const device of devices) {\n\t\t\tif (r === null || r.devEntry.length > device.devEntry.length) {\n\t\t\t\tr = device;\n\t\t\t}\n\t\t}\n\t\treturn r;\n\t}\n\n\t/**\n\t * Create ejects callback from a list of devices.\n\t *\n\t * @param devices Device list.\n\t * @param ejectOnExit Eject on exit options, or null.\n\t * @returns Callback function.\n\t */\n\tprotected _createEjects(\n\t\tdevices: readonly Readonly<IMounterDevice>[],\n\t\tejectOnExit = null\n\t) {\n\t\t// Find the root device, to use to eject (none possible in theory).\n\t\tlet devEntry = this._findRootDevice(devices)?.devEntry;\n\n\t\tlet shutdown: (() => void) | null = null;\n\t\tconst info = {\n\t\t\t/**\n\t\t\t * The eject callback function.\n\t\t\t *\n\t\t\t * @param options Eject options.\n\t\t\t */\n\t\t\teject: async (options: IMounterEjectOptions | null = null) => {\n\t\t\t\tif (devEntry) {\n\t\t\t\t\tawait this.eject(devEntry, options);\n\t\t\t\t\tdevEntry = '';\n\t\t\t\t\tif (shutdown) {\n\t\t\t\t\t\tprocess.off('exit', shutdown);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * The eject callback function.\n\t\t\t *\n\t\t\t * @param options Eject options.\n\t\t\t */\n\t\t\tejectSync: (options: IMounterEjectOptions | null = null) => {\n\t\t\t\tif (devEntry) {\n\t\t\t\t\t// eslint-disable-next-line no-sync\n\t\t\t\t\tthis.ejectSync(devEntry, options);\n\t\t\t\t\tdevEntry = '';\n\t\t\t\t\tif (shutdown) {\n\t\t\t\t\t\tprocess.off('exit', shutdown);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tif (ejectOnExit) {\n\t\t\t/**\n\t\t\t * Attempt to auto-eject on normal shutdown.\n\t\t\t * Does not catch signals (no clean way in a library).\n\t\t\t * Users can explicitly call process.exit() on signals to use this.\n\t\t\t */\n\t\t\tshutdown = () => {\n\t\t\t\t// eslint-disable-next-line no-sync\n\t\t\t\tinfo.ejectSync(ejectOnExit);\n\t\t\t};\n\t\t\tprocess.once('exit', shutdown);\n\t\t}\n\n\t\treturn info;\n\t}\n}\n",null,"import {INDENT_ROOT, IToXmlOptions, NEWLINE_STRING} from './options.ts';\nimport {IElement, xmlDecode, xmlElementChildElements} from './util.ts';\nimport {Value} from './value.ts';\nimport {ValueDict} from './value/dict.ts';\n\nconst xmlDeclaration = '<?xml version=\"1.0\" encoding=\"UTF-8\"?>';\nconst xmlDoctype =\n\t'<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">';\n\n/**\n * Plist object.\n */\nexport class Plist {\n\t/**\n\t * Default XML declaration.\n\t */\n\tpublic static readonly XML_DECLARATION = xmlDeclaration;\n\n\t/**\n\t * Default XML doctype.\n\t */\n\tpublic static readonly XML_DOCTYPE = xmlDoctype;\n\n\t/**\n\t * XML declaration.\n\t */\n\tpublic xmlDeclaration = xmlDeclaration;\n\n\t/**\n\t * XML doctype.\n\t */\n\tpublic xmlDoctype = xmlDoctype;\n\n\t/**\n\t * Value element.\n\t */\n\tpublic value: Value | null = null;\n\n\t/**\n\t * Plist constructor.\n\t *\n\t * @param value The value.\n\t */\n\tconstructor(value: Value | null = null) {\n\t\tthis.value = value;\n\t}\n\n\t/**\n\t * Get value or throw if null.\n\t *\n\t * @returns The value.\n\t */\n\tpublic getValue() {\n\t\tconst {value} = this;\n\t\tif (!value) {\n\t\t\tthrow new Error('Value is null');\n\t\t}\n\t\treturn value;\n\t}\n\n\t/**\n\t * Cast to specific type or null.\n\t *\n\t * @param Type Type constructor.\n\t * @returns The object or null.\n\t */\n\tpublic valueCastTo<T extends typeof Value>(Type: T): T['prototype'] | null {\n\t\tconst {value} = this;\n\t\treturn value ? value.castTo(Type) : null;\n\t}\n\n\t/**\n\t * Cast to specific type or throw.\n\t *\n\t * @param Type Type constructor.\n\t * @returns The object.\n\t */\n\tpublic valueCastAs<T extends typeof Value>(Type: T): T['prototype'] {\n\t\tconst casted = this.valueCastTo(Type);\n\t\tif (!casted) {\n\t\t\tthrow new Error(`Cannot cast value to type '${Type.TYPE}'`);\n\t\t}\n\t\treturn casted;\n\t}\n\n\t/**\n\t * Decode document from string.\n\t *\n\t * @param xml XML string.\n\t */\n\tpublic fromXml(xml: string) {\n\t\tconst {declaration, doctype, documentElement} = xmlDecode(xml);\n\t\tthis.fromXmlElement(documentElement, declaration, doctype);\n\t}\n\n\t/**\n\t * Decode document from element.\n\t *\n\t * @param element XML element.\n\t * @param declaration XML declaration.\n\t * @param doctype XML doctype.\n\t */\n\tpublic fromXmlElement(\n\t\telement: Readonly<IElement>,\n\t\tdeclaration: string | null = null,\n\t\tdoctype: string | null = null\n\t) {\n\t\tconst {tagName} = element;\n\t\tif (tagName !== 'plist') {\n\t\t\tthrow new Error(`Unexpected root plist tag name: ${tagName}`);\n\t\t}\n\n\t\tconst childElements = xmlElementChildElements(element);\n\t\tconst childElementsL = childElements.length;\n\t\tif (childElementsL > 1) {\n\t\t\tthrow new Error(`Multiple root plist child tag: ${childElementsL}`);\n\t\t}\n\n\t\tthis.value = childElementsL\n\t\t\t? this.childFromXmlElement(childElements[0])\n\t\t\t: null;\n\t\tthis.xmlDeclaration = declaration || '';\n\t\tthis.xmlDoctype = doctype || '';\n\t}\n\n\t/**\n\t * Decode child element from XML element.\n\t *\n\t * @param element XML element.\n\t * @returns Value element.\n\t */\n\tpublic childFromXmlElement(element: IElement) {\n\t\tconst a = new ValueDict();\n\t\treturn a.childFromXmlElement(element);\n\t}\n\n\t/**\n\t * Encode documents to string.\n\t *\n\t * @param options Options object.\n\t * @returns XML string.\n\t */\n\tpublic toXml(options: Readonly<IToXmlOptions> | null = null) {\n\t\tconst ir = options?.indentRoot ?? INDENT_ROOT;\n\t\tconst n = options?.newlineString ?? NEWLINE_STRING;\n\n\t\tconst v = this.value;\n\t\treturn [\n\t\t\t...[this.xmlDeclaration, this.xmlDoctype].filter(Boolean),\n\t\t\t'<plist version=\"1.0\">',\n\t\t\t...(v ? [v.toXml(options, ir ? 1 : 0)] : []),\n\t\t\t'</plist>',\n\t\t\t''\n\t\t].join(n);\n\t}\n}\n",null,"export const INDENT_STRING = '\\t';\nexport const NEWLINE_STRING = '\\n';\nexport const DATA_COLUMNS = 68;\nexport const INDENT_ROOT = false;\n\nexport interface IToXmlOptions {\n\t/**\n\t * Indent string.\n\t *\n\t * @default '\\t'\n\t */\n\tindentString?: string | null;\n\n\t/**\n\t * Newline string.\n\t *\n\t * @default '\\n'\n\t */\n\tnewlineString?: string | null;\n\n\t/**\n\t * Data columns, zero of negative for one row.\n\t *\n\t * @default 68\n\t */\n\tdataColumns?: number | null;\n\n\t/**\n\t * Indent root element content.\n\t *\n\t * @default false\n\t */\n\tindentRoot?: boolean | null;\n}\n",null,"import {DOMParser} from '@xmldom/xmldom';\n\nconst B6 = 0x3f;\nconst B8 = 0xff;\nconst C64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\nconst C64M = [\n\t-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n\t-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n\t-1, -1, -1, -1, -1, 62, -1, -1, -1, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60,\n\t61, -1, -1, -1, 64, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,\n\t13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, -1,\n\t26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,\n\t45, 46, 47, 48, 49, 50, 51\n];\n\nexport interface IText {\n\tnodeValue: string | null;\n}\n\nexport interface IElement {\n\treadonly tagName: string;\n\tchildNodes: {\n\t\tlength: number;\n\t\t[index: number]: IElement | IText;\n\t};\n\ttoString: () => string;\n}\n\n/**\n * Decode an XML string.\n *\n * @param xml XML string.\n * @returns Decoded declaration, doctype, and document element.\n */\nexport function xmlDecode(xml: string) {\n\tlet declaration: string | null = null;\n\tlet doctype: string | null = null;\n\n\tconst errors: string[] = [];\n\tconst parser = new DOMParser({\n\t\tlocator: {},\n\t\terrorHandler: {\n\t\t\t/**\n\t\t\t * Warning callback.\n\t\t\t *\n\t\t\t * @param e Error string.\n\t\t\t */\n\t\t\twarning: (e: string) => {\n\t\t\t\t// Ignore warnings.\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Error callback.\n\t\t\t *\n\t\t\t * @param e Error string.\n\t\t\t */\n\t\t\terror: (e: string) => {\n\t\t\t\terrors.push(e);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Fatal error callback.\n\t\t\t *\n\t\t\t * @param e Error string.\n\t\t\t */\n\t\t\tfatalError: (e: string) => {\n\t\t\t\terrors.push(e);\n\t\t\t}\n\t\t}\n\t});\n\tconst doc = parser.parseFromString(xml, 'text/xml') as unknown as {\n\t\tdocumentElement: Readonly<IElement>;\n\t\tchildNodes: {toString: () => string}[];\n\t};\n\tif (errors.length) {\n\t\tthrow new Error(`XML decode error: ${errors[0]}`);\n\t}\n\n\tconst {childNodes} = doc;\n\tconst documentElement = doc.documentElement || null;\n\n\tfor (let i = 0, l = childNodes.length; i < l; i++) {\n\t\tconst childNode = childNodes[i];\n\t\tif (childNode === documentElement) {\n\t\t\tbreak;\n\t\t}\n\t\tconst str = childNode.toString();\n\t\tif (/^<\\?xml[^>]*\\?>$/.test(str)) {\n\t\t\tdeclaration = str;\n\t\t}\n\t\tif (/^<!DOCTYPE[^>]*>$/.test(str)) {\n\t\t\tdoctype = str;\n\t\t}\n\t}\n\n\tif (!documentElement) {\n\t\tthrow new Error('XML decode error: No document element');\n\t}\n\n\treturn {\n\t\tdeclaration,\n\t\tdoctype,\n\t\tdocumentElement\n\t};\n}\n\n/**\n * List XML element child elements.\n * Throws if non-whitespace nodes are found.\n *\n * @param element XML element.\n * @returns XML element list.\n */\nexport function xmlElementChildElements<T extends Readonly<IElement>>(\n\telement: T\n): T[] {\n\tconst {childNodes} = element;\n\tconst r = [];\n\tfor (let i = 0, l = childNodes.length; i < l; i++) {\n\t\tconst childNode = childNodes[i];\n\t\tif ('tagName' in childNode) {\n\t\t\tr.push(childNode as T);\n\t\t\tcontinue;\n\t\t}\n\t\tconst {nodeValue} = childNode;\n\t\tif (nodeValue && !/^\\s*$/.test(nodeValue)) {\n\t\t\tthrow new Error(`Found text children of: ${element.tagName}`);\n\t\t}\n\t}\n\treturn r;\n}\n\n/**\n * Get the XML element text node.\n * Returns null if none, throws if multiple elements.\n *\n * @param element XML element.\n * @returns XML text node list.\n */\nexport function xmlElementText(element: Readonly<IElement>) {\n\tconst {childNodes} = element;\n\tlet r: IText | null = null;\n\tfor (let i = 0, l = childNodes.length; i < l; i++) {\n\t\tif (i) {\n\t\t\tthrow new Error(`Multiple child elements in: ${element.tagName}`);\n\t\t}\n\n\t\tconst childNode = childNodes[i];\n\t\tif (\n\t\t\t!('tagName' in childNode) &&\n\t\t\t'data' in childNode &&\n\t\t\t'nodeValue' in childNode\n\t\t) {\n\t\t\tr = childNode as IText;\n\t\t} else {\n\t\t\tthrow new Error(`Unexpected child element in: ${element.tagName}`);\n\t\t}\n\t}\n\treturn r;\n}\n\n/**\n * Assert XML element has no children.\n *\n * @param element XML element.\n * @param tagName XML element tag name.\n */\nexport function assertXmlTagName(element: Readonly<IElement>, tagName: string) {\n\tconst tn = element.tagName;\n\tif (tn !== tagName) {\n\t\tthrow new Error(`Unexpected tagName: ${tagName}`);\n\t}\n}\n\n/**\n * Assert XML element has no children.\n *\n * @param element XML element.\n */\nexport function assertNoXmlElementChildNodes(element: Readonly<IElement>) {\n\tconst {childNodes} = element;\n\tif (childNodes.length) {\n\t\tthrow new Error(`Unexpected child nodes: ${element.tagName}`);\n\t}\n}\n\n/**\n * Base64 encode function mirroring decode function.\n *\n * @param data Byte array.\n * @returns Base64 string.\n */\nexport function base64Encode(data: Uint8Array) {\n\tconst l = data.length;\n\tlet r = '';\n\tfor (let i = 0; i < l; ) {\n\t\tconst a = data[i++];\n\t\tconst b = i < l ? data[i++] : null;\n\t\tconst c = i < l ? data[i++] : null;\n\t\t// eslint-disable-next-line no-bitwise\n\t\tconst o = (a << 16) | ((b || 0) << 8) | (c || 0);\n\t\tr +=\n\t\t\t// eslint-disable-next-line no-bitwise\n\t\t\tC64[o >> 18] +\n\t\t\t// eslint-disable-next-line no-bitwise\n\t\t\tC64[(o >> 12) & B6] +\n\t\t\t// eslint-disable-next-line no-bitwise\n\t\t\tC64[b === null ? 64 : (o >> 6) & B6] +\n\t\t\t// eslint-disable-next-line no-bitwise\n\t\t\tC64[c === null ? 64 : o & B6];\n\t}\n\treturn r;\n}\n\n/**\n * Base64 decode function that matches plist parsing behavior.\n *\n * @param base64 Base64 string.\n * @returns Byte array.\n */\nexport function base64Decode(base64: string) {\n\tconst l = base64.length;\n\tconst r = [];\n\tOUTER: for (let a, b, c, d, m, z, i = 0; i < l; ) {\n\t\tfor (;;) {\n\t\t\t// eslint-disable-next-line unicorn/prefer-code-point\n\t\t\tif ((m = C64M[base64.charCodeAt(i++)]) >= 0) {\n\t\t\t\ta = m;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (i >= l) {\n\t\t\t\tbreak OUTER;\n\t\t\t}\n\t\t}\n\t\tfor (;;) {\n\t\t\t// eslint-disable-next-line unicorn/prefer-code-point\n\t\t\tif ((m = C64M[base64.charCodeAt(i++)]) >= 0) {\n\t\t\t\tb = m;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (i >= l) {\n\t\t\t\tbreak OUTER;\n\t\t\t}\n\t\t}\n\t\tfor (;;) {\n\t\t\t// eslint-disable-next-line unicorn/prefer-code-point\n\t\t\tif ((m = C64M[base64.charCodeAt(i++)]) >= 0) {\n\t\t\t\tc = m;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (i >= l) {\n\t\t\t\tbreak OUTER;\n\t\t\t}\n\t\t}\n\t\tfor (;;) {\n\t\t\t// eslint-disable-next-line unicorn/prefer-code-point\n\t\t\tif ((m = C64M[base64.charCodeAt(i++)]) >= 0) {\n\t\t\t\td = m;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (i >= l) {\n\t\t\t\tbreak OUTER;\n\t\t\t}\n\t\t}\n\t\t// eslint-disable-next-line no-bitwise\n\t\tz = ((a & B6) << 18) | ((b & B6) << 12) | ((c & B6) << 6) | (d & B6);\n\t\t// eslint-disable-next-line default-case, no-nested-ternary\n\t\tswitch (c > B6 ? (d > B6 ? 2 : 0) : d > B6 ? 1 : 0) {\n\t\t\tcase 0: {\n\t\t\t\t// eslint-disable-next-line no-bitwise\n\t\t\t\tr.push((z >> 16) & B8, (z >> 8) & B8, z & B8);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase 1: {\n\t\t\t\t// eslint-disable-next-line no-bitwise\n\t\t\t\tr.push((z >> 16) & B8, (z >> 8) & B8);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase 2: {\n\t\t\t\t// eslint-disable-next-line no-bitwise\n\t\t\t\tr.push((z >> 16) & B8);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\treturn new Uint8Array(r);\n}\n","var dom = require('./dom')\nexports.DOMImplementation = dom.DOMImplementation\nexports.XMLSerializer = dom.XMLSerializer\nexports.DOMParser = require('./dom-parser').DOMParser\n","var conventions = require(\"./conventions\");\n\nvar find = conventions.find;\nvar NAMESPACE = conventions.NAMESPACE;\n\n/**\n * A prerequisite for `[].filter`, to drop elements that are empty\n * @param {string} input\n * @returns {boolean}\n */\nfunction notEmptyString (input) {\n\treturn input !== ''\n}\n/**\n * @see https://infra.spec.whatwg.org/#split-on-ascii-whitespace\n * @see https://infra.spec.whatwg.org/#ascii-whitespace\n *\n * @param {string} input\n * @returns {string[]} (can be empty)\n */\nfunction splitOnASCIIWhitespace(input) {\n\t// U+0009 TAB, U+000A LF, U+000C FF, U+000D CR, U+0020 SPACE\n\treturn input ? input.split(/[\\t\\n\\f\\r ]+/).filter(notEmptyString) : []\n}\n\n/**\n * Adds element as a key to current if it is not already present.\n *\n * @param {Record<string, boolean | undefined>} current\n * @param {string} element\n * @returns {Record<string, boolean | undefined>}\n */\nfunction orderedSetReducer (current, element) {\n\tif (!current.hasOwnProperty(element)) {\n\t\tcurrent[element] = true;\n\t}\n\treturn current;\n}\n\n/**\n * @see https://infra.spec.whatwg.org/#ordered-set\n * @param {string} input\n * @returns {string[]}\n */\nfunction toOrderedSet(input) {\n\tif (!input) return [];\n\tvar list = splitOnASCIIWhitespace(input);\n\treturn Object.keys(list.reduce(orderedSetReducer, {}))\n}\n\n/**\n * Uses `list.indexOf` to implement something like `Array.prototype.includes`,\n * which we can not rely on being available.\n *\n * @param {any[]} list\n * @returns {function(any): boolean}\n */\nfunction arrayIncludes (list) {\n\treturn function(element) {\n\t\treturn list && list.indexOf(element) !== -1;\n\t}\n}\n\nfunction copy(src,dest){\n\tfor(var p in src){\n\t\tif (Object.prototype.hasOwnProperty.call(src, p)) {\n\t\t\tdest[p] = src[p];\n\t\t}\n\t}\n}\n\n/**\n^\\w+\\.prototype\\.([_\\w]+)\\s*=\\s*((?:.*\\{\\s*?[\\r\\n][\\s\\S]*?^})|\\S.*?(?=[;\\r\\n]));?\n^\\w+\\.prototype\\.([_\\w]+)\\s*=\\s*(\\S.*?(?=[;\\r\\n]));?\n */\nfunction _extends(Class,Super){\n\tvar pt = Class.prototype;\n\tif(!(pt instanceof Super)){\n\t\tfunction t(){};\n\t\tt.prototype = Super.prototype;\n\t\tt = new t();\n\t\tcopy(pt,t);\n\t\tClass.prototype = pt = t;\n\t}\n\tif(pt.constructor != Class){\n\t\tif(typeof Class != 'function'){\n\t\t\tconsole.error(\"unknown Class:\"+Class)\n\t\t}\n\t\tpt.constructor = Class\n\t}\n}\n\n// Node Types\nvar NodeType = {}\nvar ELEMENT_NODE = NodeType.ELEMENT_NODE = 1;\nvar ATTRIBUTE_NODE = NodeType.ATTRIBUTE_NODE = 2;\nvar TEXT_NODE = NodeType.TEXT_NODE = 3;\nvar CDATA_SECTION_NODE = NodeType.CDATA_SECTION_NODE = 4;\nvar ENTITY_REFERENCE_NODE = NodeType.ENTITY_REFERENCE_NODE = 5;\nvar ENTITY_NODE = NodeType.ENTITY_NODE = 6;\nvar PROCESSING_INSTRUCTION_NODE = NodeType.PROCESSING_INSTRUCTION_NODE = 7;\nvar COMMENT_NODE = NodeType.COMMENT_NODE = 8;\nvar DOCUMENT_NODE = NodeType.DOCUMENT_NODE = 9;\nvar DOCUMENT_TYPE_NODE = NodeType.DOCUMENT_TYPE_NODE = 10;\nvar DOCUMENT_FRAGMENT_NODE = NodeType.DOCUMENT_FRAGMENT_NODE = 11;\nvar NOTATION_NODE = NodeType.NOTATION_NODE = 12;\n\n// ExceptionCode\nvar ExceptionCode = {}\nvar ExceptionMessage = {};\nvar INDEX_SIZE_ERR = ExceptionCode.INDEX_SIZE_ERR = ((ExceptionMessage[1]=\"Index size error\"),1);\nvar DOMSTRING_SIZE_ERR = ExceptionCode.DOMSTRING_SIZE_ERR = ((ExceptionMessage[2]=\"DOMString size error\"),2);\nvar HIERARCHY_REQUEST_ERR = ExceptionCode.HIERARCHY_REQUEST_ERR = ((ExceptionMessage[3]=\"Hierarchy request error\"),3);\nvar WRONG_DOCUMENT_ERR = ExceptionCode.WRONG_DOCUMENT_ERR = ((ExceptionMessage[4]=\"Wrong document\"),4);\nvar INVALID_CHARACTER_ERR = ExceptionCode.INVALID_CHARACTER_ERR = ((ExceptionMessage[5]=\"Invalid character\"),5);\nvar NO_DATA_ALLOWED_ERR = ExceptionCode.NO_DATA_ALLOWED_ERR = ((ExceptionMessage[6]=\"No data allowed\"),6);\nvar NO_MODIFICATION_ALLOWED_ERR = ExceptionCode.NO_MODIFICATION_ALLOWED_ERR = ((ExceptionMessage[7]=\"No modification allowed\"),7);\nvar NOT_FOUND_ERR = ExceptionCode.NOT_FOUND_ERR = ((ExceptionMessage[8]=\"Not found\"),8);\nvar NOT_SUPPORTED_ERR = ExceptionCode.NOT_SUPPORTED_ERR = ((ExceptionMessage[9]=\"Not supported\"),9);\nvar INUSE_ATTRIBUTE_ERR = ExceptionCode.INUSE_ATTRIBUTE_ERR = ((ExceptionMessage[10]=\"Attribute in use\"),10);\n//level2\nvar INVALID_STATE_ERR \t= ExceptionCode.INVALID_STATE_ERR \t= ((ExceptionMessage[11]=\"Invalid state\"),11);\nvar SYNTAX_ERR \t= ExceptionCode.SYNTAX_ERR \t= ((ExceptionMessage[12]=\"Syntax error\"),12);\nvar INVALID_MODIFICATION_ERR \t= ExceptionCode.INVALID_MODIFICATION_ERR \t= ((ExceptionMessage[13]=\"Invalid modification\"),13);\nvar NAMESPACE_ERR \t= ExceptionCode.NAMESPACE_ERR \t= ((ExceptionMessage[14]=\"Invalid namespace\"),14);\nvar INVALID_ACCESS_ERR \t= ExceptionCode.INVALID_ACCESS_ERR \t= ((ExceptionMessage[15]=\"Invalid access\"),15);\n\n/**\n * DOM Level 2\n * Object DOMException\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/ecma-script-binding.html\n * @see http://www.w3.org/TR/REC-DOM-Level-1/ecma-script-language-binding.html\n */\nfunction DOMException(code, message) {\n\tif(message instanceof Error){\n\t\tvar error = message;\n\t}else{\n\t\terror = this;\n\t\tError.call(this, ExceptionMessage[code]);\n\t\tthis.message = ExceptionMessage[code];\n\t\tif(Error.captureStackTrace) Error.captureStackTrace(this, DOMException);\n\t}\n\terror.code = code;\n\tif(message) this.message = this.message + \": \" + message;\n\treturn error;\n};\nDOMException.prototype = Error.prototype;\ncopy(ExceptionCode,DOMException)\n\n/**\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-536297177\n * The NodeList interface provides the abstraction of an ordered collection of nodes, without defining or constraining how this collection is implemented. NodeList objects in the DOM are live.\n * The items in the NodeList are accessible via an integral index, starting from 0.\n */\nfunction NodeList() {\n};\nNodeList.prototype = {\n\t/**\n\t * The number of nodes in the list. The range of valid child node indices is 0 to length-1 inclusive.\n\t * @standard level1\n\t */\n\tlength:0,\n\t/**\n\t * Returns the indexth item in the collection. If index is greater than or equal to the number of nodes in the list, this returns null.\n\t * @standard level1\n\t * @param index unsigned long\n\t * Index into the collection.\n\t * @return Node\n\t * \tThe node at the indexth position in the NodeList, or null if that is not a valid index.\n\t */\n\titem: function(index) {\n\t\treturn index >= 0 && index < this.length ? this[index] : null;\n\t},\n\ttoString:function(isHTML,nodeFilter){\n\t\tfor(var buf = [], i = 0;i<this.length;i++){\n\t\t\tserializeToString(this[i],buf,isHTML,nodeFilter);\n\t\t}\n\t\treturn buf.join('');\n\t},\n\t/**\n\t * @private\n\t * @param {function (Node):boolean} predicate\n\t * @returns {Node[]}\n\t */\n\tfilter: function (predicate) {\n\t\treturn Array.prototype.filter.call(this, predicate);\n\t},\n\t/**\n\t * @private\n\t * @param {Node} item\n\t * @returns {number}\n\t */\n\tindexOf: function (item) {\n\t\treturn Array.prototype.indexOf.call(this, item);\n\t},\n};\n\nfunction LiveNodeList(node,refresh){\n\tthis._node = node;\n\tthis._refresh = refresh\n\t_updateLiveList(this);\n}\nfunction _updateLiveList(list){\n\tvar inc = list._node._inc || list._node.ownerDocument._inc;\n\tif (list._inc !== inc) {\n\t\tvar ls = list._refresh(list._node);\n\t\t__set__(list,'length',ls.length);\n\t\tif (!list.$$length || ls.length < list.$$length) {\n\t\t\tfor (var i = ls.length; i in list; i++) {\n\t\t\t\tif (Object.prototype.hasOwnProperty.call(list, i)) {\n\t\t\t\t\tdelete list[i];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tcopy(ls,list);\n\t\tlist._inc = inc;\n\t}\n}\nLiveNodeList.prototype.item = function(i){\n\t_updateLiveList(this);\n\treturn this[i] || null;\n}\n\n_extends(LiveNodeList,NodeList);\n\n/**\n * Objects implementing the NamedNodeMap interface are used\n * to represent collections of nodes that can be accessed by name.\n * Note that NamedNodeMap does not inherit from NodeList;\n * NamedNodeMaps are not maintained in any particular order.\n * Objects contained in an object implementing NamedNodeMap may also be accessed by an ordinal index,\n * but this is simply to allow convenient enumeration of the contents of a NamedNodeMap,\n * and does not imply that the DOM specifies an order to these Nodes.\n * NamedNodeMap objects in the DOM are live.\n * used for attributes or DocumentType entities\n */\nfunction NamedNodeMap() {\n};\n\nfunction _findNodeIndex(list,node){\n\tvar i = list.length;\n\twhile(i--){\n\t\tif(list[i] === node){return i}\n\t}\n}\n\nfunction _addNamedNode(el,list,newAttr,oldAttr){\n\tif(oldAttr){\n\t\tlist[_findNodeIndex(list,oldAttr)] = newAttr;\n\t}else{\n\t\tlist[list.length++] = newAttr;\n\t}\n\tif(el){\n\t\tnewAttr.ownerElement = el;\n\t\tvar doc = el.ownerDocument;\n\t\tif(doc){\n\t\t\toldAttr && _onRemoveAttribute(doc,el,oldAttr);\n\t\t\t_onAddAttribute(doc,el,newAttr);\n\t\t}\n\t}\n}\nfunction _removeNamedNode(el,list,attr){\n\t//console.log('remove attr:'+attr)\n\tvar i = _findNodeIndex(list,attr);\n\tif(i>=0){\n\t\tvar lastIndex = list.length-1\n\t\twhile(i<lastIndex){\n\t\t\tlist[i] = list[++i]\n\t\t}\n\t\tlist.length = lastIndex;\n\t\tif(el){\n\t\t\tvar doc = el.ownerDocument;\n\t\t\tif(doc){\n\t\t\t\t_onRemoveAttribute(doc,el,attr);\n\t\t\t\tattr.ownerElement = null;\n\t\t\t}\n\t\t}\n\t}else{\n\t\tthrow new DOMException(NOT_FOUND_ERR,new Error(el.tagName+'@'+attr))\n\t}\n}\nNamedNodeMap.prototype = {\n\tlength:0,\n\titem:NodeList.prototype.item,\n\tgetNamedItem: function(key) {\n//\t\tif(key.indexOf(':')>0 || key == 'xmlns'){\n//\t\t\treturn null;\n//\t\t}\n\t\t//console.log()\n\t\tvar i = this.length;\n\t\twhile(i--){\n\t\t\tvar attr = this[i];\n\t\t\t//console.log(attr.nodeName,key)\n\t\t\tif(attr.nodeName == key){\n\t\t\t\treturn attr;\n\t\t\t}\n\t\t}\n\t},\n\tsetNamedItem: function(attr) {\n\t\tvar el = attr.ownerElement;\n\t\tif(el && el!=this._ownerElement){\n\t\t\tthrow new DOMException(INUSE_ATTRIBUTE_ERR);\n\t\t}\n\t\tvar oldAttr = this.getNamedItem(attr.nodeName);\n\t\t_addNamedNode(this._ownerElement,this,attr,oldAttr);\n\t\treturn oldAttr;\n\t},\n\t/* returns Node */\n\tsetNamedItemNS: function(attr) {// raises: WRONG_DOCUMENT_ERR,NO_MODIFICATION_ALLOWED_ERR,INUSE_ATTRIBUTE_ERR\n\t\tvar el = attr.ownerElement, oldAttr;\n\t\tif(el && el!=this._ownerElement){\n\t\t\tthrow new DOMException(INUSE_ATTRIBUTE_ERR);\n\t\t}\n\t\toldAttr = this.getNamedItemNS(attr.namespaceURI,attr.localName);\n\t\t_addNamedNode(this._ownerElement,this,attr,oldAttr);\n\t\treturn oldAttr;\n\t},\n\n\t/* returns Node */\n\tremoveNamedItem: function(key) {\n\t\tvar attr = this.getNamedItem(key);\n\t\t_removeNamedNode(this._ownerElement,this,attr);\n\t\treturn attr;\n\n\n\t},// raises: NOT_FOUND_ERR,NO_MODIFICATION_ALLOWED_ERR\n\n\t//for level2\n\tremoveNamedItemNS:function(namespaceURI,localName){\n\t\tvar attr = this.getNamedItemNS(namespaceURI,localName);\n\t\t_removeNamedNode(this._ownerElement,this,attr);\n\t\treturn attr;\n\t},\n\tgetNamedItemNS: function(namespaceURI, localName) {\n\t\tvar i = this.length;\n\t\twhile(i--){\n\t\t\tvar node = this[i];\n\t\t\tif(node.localName == localName && node.namespaceURI == namespaceURI){\n\t\t\t\treturn node;\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n};\n\n/**\n * The DOMImplementation interface represents an object providing methods\n * which are not dependent on any particular document.\n * Such an object is returned by the `Document.implementation` property.\n *\n * __The individual methods describe the differences compared to the specs.__\n *\n * @constructor\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation MDN\n * @see https://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-102161490 DOM Level 1 Core (Initial)\n * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-102161490 DOM Level 2 Core\n * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-102161490 DOM Level 3 Core\n * @see https://dom.spec.whatwg.org/#domimplementation DOM Living Standard\n */\nfunction DOMImplementation() {\n}\n\nDOMImplementation.prototype = {\n\t/**\n\t * The DOMImplementation.hasFeature() method returns a Boolean flag indicating if a given feature is supported.\n\t * The different implementations fairly diverged in what kind of features were reported.\n\t * The latest version of the spec settled to force this method to always return true, where the functionality was accurate and in use.\n\t *\n\t * @deprecated It is deprecated and modern browsers return true in all cases.\n\t *\n\t * @param {string} feature\n\t * @param {string} [version]\n\t * @returns {boolean} always true\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/hasFeature MDN\n\t * @see https://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-5CED94D7 DOM Level 1 Core\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-hasfeature DOM Living Standard\n\t */\n\thasFeature: function(feature, version) {\n\t\t\treturn true;\n\t},\n\t/**\n\t * Creates an XML Document object of the specified type with its document element.\n\t *\n\t * __It behaves slightly different from the description in the living standard__:\n\t * - There is no interface/class `XMLDocument`, it returns a `Document` instance.\n\t * - `contentType`, `encoding`, `mode`, `origin`, `url` fields are currently not declared.\n\t * - this implementation is not validating names or qualified names\n\t * (when parsing XML strings, the SAX parser takes care of that)\n\t *\n\t * @param {string|null} namespaceURI\n\t * @param {string} qualifiedName\n\t * @param {DocumentType=null} doctype\n\t * @returns {Document}\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createDocument MDN\n\t * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#Level-2-Core-DOM-createDocument DOM Level 2 Core (initial)\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocument DOM Level 2 Core\n\t *\n\t * @see https://dom.spec.whatwg.org/#validate-and-extract DOM: Validate and extract\n\t * @see https://www.w3.org/TR/xml/#NT-NameStartChar XML Spec: Names\n\t * @see https://www.w3.org/TR/xml-names/#ns-qualnames XML Namespaces: Qualified names\n\t */\n\tcreateDocument: function(namespaceURI, qualifiedName, doctype){\n\t\tvar doc = new Document();\n\t\tdoc.implementation = this;\n\t\tdoc.childNodes = new NodeList();\n\t\tdoc.doctype = doctype || null;\n\t\tif (doctype){\n\t\t\tdoc.appendChild(doctype);\n\t\t}\n\t\tif (qualifiedName){\n\t\t\tvar root = doc.createElementNS(namespaceURI, qualifiedName);\n\t\t\tdoc.appendChild(root);\n\t\t}\n\t\treturn doc;\n\t},\n\t/**\n\t * Returns a doctype, with the given `qualifiedName`, `publicId`, and `systemId`.\n\t *\n\t * __This behavior is slightly different from the in the specs__:\n\t * - this implementation is not validating names or qualified names\n\t * (when parsing XML strings, the SAX parser takes care of that)\n\t *\n\t * @param {string} qualifiedName\n\t * @param {string} [publicId]\n\t * @param {string} [systemId]\n\t * @returns {DocumentType} which can either be used with `DOMImplementation.createDocument` upon document creation\n\t * \t\t\t\t or can be put into the document via methods like `Node.insertBefore()` or `Node.replaceChild()`\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMImplementation/createDocumentType MDN\n\t * @see https://www.w3.org/TR/DOM-Level-2-Core/core.html#Level-2-Core-DOM-createDocType DOM Level 2 Core\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocumenttype DOM Living Standard\n\t *\n\t * @see https://dom.spec.whatwg.org/#validate-and-extract DOM: Validate and extract\n\t * @see https://www.w3.org/TR/xml/#NT-NameStartChar XML Spec: Names\n\t * @see https://www.w3.org/TR/xml-names/#ns-qualnames XML Namespaces: Qualified names\n\t */\n\tcreateDocumentType: function(qualifiedName, publicId, systemId){\n\t\tvar node = new DocumentType();\n\t\tnode.name = qualifiedName;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.publicId = publicId || '';\n\t\tnode.systemId = systemId || '';\n\n\t\treturn node;\n\t}\n};\n\n\n/**\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247\n */\n\nfunction Node() {\n};\n\nNode.prototype = {\n\tfirstChild : null,\n\tlastChild : null,\n\tpreviousSibling : null,\n\tnextSibling : null,\n\tattributes : null,\n\tparentNode : null,\n\tchildNodes : null,\n\townerDocument : null,\n\tnodeValue : null,\n\tnamespaceURI : null,\n\tprefix : null,\n\tlocalName : null,\n\t// Modified in DOM Level 2:\n\tinsertBefore:function(newChild, refChild){//raises\n\t\treturn _insertBefore(this,newChild,refChild);\n\t},\n\treplaceChild:function(newChild, oldChild){//raises\n\t\t_insertBefore(this, newChild,oldChild, assertPreReplacementValidityInDocument);\n\t\tif(oldChild){\n\t\t\tthis.removeChild(oldChild);\n\t\t}\n\t},\n\tremoveChild:function(oldChild){\n\t\treturn _removeChild(this,oldChild);\n\t},\n\tappendChild:function(newChild){\n\t\treturn this.insertBefore(newChild,null);\n\t},\n\thasChildNodes:function(){\n\t\treturn this.firstChild != null;\n\t},\n\tcloneNode:function(deep){\n\t\treturn cloneNode(this.ownerDocument||this,this,deep);\n\t},\n\t// Modified in DOM Level 2:\n\tnormalize:function(){\n\t\tvar child = this.firstChild;\n\t\twhile(child){\n\t\t\tvar next = child.nextSibling;\n\t\t\tif(next && next.nodeType == TEXT_NODE && child.nodeType == TEXT_NODE){\n\t\t\t\tthis.removeChild(next);\n\t\t\t\tchild.appendData(next.data);\n\t\t\t}else{\n\t\t\t\tchild.normalize();\n\t\t\t\tchild = next;\n\t\t\t}\n\t\t}\n\t},\n \t// Introduced in DOM Level 2:\n\tisSupported:function(feature, version){\n\t\treturn this.ownerDocument.implementation.hasFeature(feature,version);\n\t},\n // Introduced in DOM Level 2:\n hasAttributes:function(){\n \treturn this.attributes.length>0;\n },\n\t/**\n\t * Look up the prefix associated to the given namespace URI, starting from this node.\n\t * **The default namespace declarations are ignored by this method.**\n\t * See Namespace Prefix Lookup for details on the algorithm used by this method.\n\t *\n\t * _Note: The implementation seems to be incomplete when compared to the algorithm described in the specs._\n\t *\n\t * @param {string | null} namespaceURI\n\t * @returns {string | null}\n\t * @see https://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-lookupNamespacePrefix\n\t * @see https://www.w3.org/TR/DOM-Level-3-Core/namespaces-algorithms.html#lookupNamespacePrefixAlgo\n\t * @see https://dom.spec.whatwg.org/#dom-node-lookupprefix\n\t * @see https://github.com/xmldom/xmldom/issues/322\n\t */\n lookupPrefix:function(namespaceURI){\n \tvar el = this;\n \twhile(el){\n \t\tvar map = el._nsMap;\n \t\t//console.dir(map)\n \t\tif(map){\n \t\t\tfor(var n in map){\n\t\t\t\t\t\tif (Object.prototype.hasOwnProperty.call(map, n) && map[n] === namespaceURI) {\n\t\t\t\t\t\t\treturn n;\n\t\t\t\t\t\t}\n \t\t\t}\n \t\t}\n \t\tel = el.nodeType == ATTRIBUTE_NODE?el.ownerDocument : el.parentNode;\n \t}\n \treturn null;\n },\n // Introduced in DOM Level 3:\n lookupNamespaceURI:function(prefix){\n \tvar el = this;\n \twhile(el){\n \t\tvar map = el._nsMap;\n \t\t//console.dir(map)\n \t\tif(map){\n \t\t\tif(Object.prototype.hasOwnProperty.call(map, prefix)){\n \t\t\t\treturn map[prefix] ;\n \t\t\t}\n \t\t}\n \t\tel = el.nodeType == ATTRIBUTE_NODE?el.ownerDocument : el.parentNode;\n \t}\n \treturn null;\n },\n // Introduced in DOM Level 3:\n isDefaultNamespace:function(namespaceURI){\n \tvar prefix = this.lookupPrefix(namespaceURI);\n \treturn prefix == null;\n }\n};\n\n\nfunction _xmlEncoder(c){\n\treturn c == '<' && '<' ||\n c == '>' && '>' ||\n c == '&' && '&' ||\n c == '\"' && '"' ||\n '&#'+c.charCodeAt()+';'\n}\n\n\ncopy(NodeType,Node);\ncopy(NodeType,Node.prototype);\n\n/**\n * @param callback return true for continue,false for break\n * @return boolean true: break visit;\n */\nfunction _visitNode(node,callback){\n\tif(callback(node)){\n\t\treturn true;\n\t}\n\tif(node = node.firstChild){\n\t\tdo{\n\t\t\tif(_visitNode(node,callback)){return true}\n }while(node=node.nextSibling)\n }\n}\n\n\n\nfunction Document(){\n\tthis.ownerDocument = this;\n}\n\nfunction _onAddAttribute(doc,el,newAttr){\n\tdoc && doc._inc++;\n\tvar ns = newAttr.namespaceURI ;\n\tif(ns === NAMESPACE.XMLNS){\n\t\t//update namespace\n\t\tel._nsMap[newAttr.prefix?newAttr.localName:''] = newAttr.value\n\t}\n}\n\nfunction _onRemoveAttribute(doc,el,newAttr,remove){\n\tdoc && doc._inc++;\n\tvar ns = newAttr.namespaceURI ;\n\tif(ns === NAMESPACE.XMLNS){\n\t\t//update namespace\n\t\tdelete el._nsMap[newAttr.prefix?newAttr.localName:'']\n\t}\n}\n\n/**\n * Updates `el.childNodes`, updating the indexed items and it's `length`.\n * Passing `newChild` means it will be appended.\n * Otherwise it's assumed that an item has been removed,\n * and `el.firstNode` and it's `.nextSibling` are used\n * to walk the current list of child nodes.\n *\n * @param {Document} doc\n * @param {Node} el\n * @param {Node} [newChild]\n * @private\n */\nfunction _onUpdateChild (doc, el, newChild) {\n\tif(doc && doc._inc){\n\t\tdoc._inc++;\n\t\t//update childNodes\n\t\tvar cs = el.childNodes;\n\t\tif (newChild) {\n\t\t\tcs[cs.length++] = newChild;\n\t\t} else {\n\t\t\tvar child = el.firstChild;\n\t\t\tvar i = 0;\n\t\t\twhile (child) {\n\t\t\t\tcs[i++] = child;\n\t\t\t\tchild = child.nextSibling;\n\t\t\t}\n\t\t\tcs.length = i;\n\t\t\tdelete cs[cs.length];\n\t\t}\n\t}\n}\n\n/**\n * Removes the connections between `parentNode` and `child`\n * and any existing `child.previousSibling` or `child.nextSibling`.\n *\n * @see https://github.com/xmldom/xmldom/issues/135\n * @see https://github.com/xmldom/xmldom/issues/145\n *\n * @param {Node} parentNode\n * @param {Node} child\n * @returns {Node} the child that was removed.\n * @private\n */\nfunction _removeChild (parentNode, child) {\n\tvar previous = child.previousSibling;\n\tvar next = child.nextSibling;\n\tif (previous) {\n\t\tprevious.nextSibling = next;\n\t} else {\n\t\tparentNode.firstChild = next;\n\t}\n\tif (next) {\n\t\tnext.previousSibling = previous;\n\t} else {\n\t\tparentNode.lastChild = previous;\n\t}\n\tchild.parentNode = null;\n\tchild.previousSibling = null;\n\tchild.nextSibling = null;\n\t_onUpdateChild(parentNode.ownerDocument, parentNode);\n\treturn child;\n}\n\n/**\n * Returns `true` if `node` can be a parent for insertion.\n * @param {Node} node\n * @returns {boolean}\n */\nfunction hasValidParentNodeType(node) {\n\treturn (\n\t\tnode &&\n\t\t(node.nodeType === Node.DOCUMENT_NODE || node.nodeType === Node.DOCUMENT_FRAGMENT_NODE || node.nodeType === Node.ELEMENT_NODE)\n\t);\n}\n\n/**\n * Returns `true` if `node` can be inserted according to it's `nodeType`.\n * @param {Node} node\n * @returns {boolean}\n */\nfunction hasInsertableNodeType(node) {\n\treturn (\n\t\tnode &&\n\t\t(isElementNode(node) ||\n\t\t\tisTextNode(node) ||\n\t\t\tisDocTypeNode(node) ||\n\t\t\tnode.nodeType === Node.DOCUMENT_FRAGMENT_NODE ||\n\t\t\tnode.nodeType === Node.COMMENT_NODE ||\n\t\t\tnode.nodeType === Node.PROCESSING_INSTRUCTION_NODE)\n\t);\n}\n\n/**\n * Returns true if `node` is a DOCTYPE node\n * @param {Node} node\n * @returns {boolean}\n */\nfunction isDocTypeNode(node) {\n\treturn node && node.nodeType === Node.DOCUMENT_TYPE_NODE;\n}\n\n/**\n * Returns true if the node is an element\n * @param {Node} node\n * @returns {boolean}\n */\nfunction isElementNode(node) {\n\treturn node && node.nodeType === Node.ELEMENT_NODE;\n}\n/**\n * Returns true if `node` is a text node\n * @param {Node} node\n * @returns {boolean}\n */\nfunction isTextNode(node) {\n\treturn node && node.nodeType === Node.TEXT_NODE;\n}\n\n/**\n * Check if en element node can be inserted before `child`, or at the end if child is falsy,\n * according to the presence and position of a doctype node on the same level.\n *\n * @param {Document} doc The document node\n * @param {Node} child the node that would become the nextSibling if the element would be inserted\n * @returns {boolean} `true` if an element can be inserted before child\n * @private\n * https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */\nfunction isElementInsertionPossible(doc, child) {\n\tvar parentChildNodes = doc.childNodes || [];\n\tif (find(parentChildNodes, isElementNode) || isDocTypeNode(child)) {\n\t\treturn false;\n\t}\n\tvar docTypeNode = find(parentChildNodes, isDocTypeNode);\n\treturn !(child && docTypeNode && parentChildNodes.indexOf(docTypeNode) > parentChildNodes.indexOf(child));\n}\n\n/**\n * Check if en element node can be inserted before `child`, or at the end if child is falsy,\n * according to the presence and position of a doctype node on the same level.\n *\n * @param {Node} doc The document node\n * @param {Node} child the node that would become the nextSibling if the element would be inserted\n * @returns {boolean} `true` if an element can be inserted before child\n * @private\n * https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */\nfunction isElementReplacementPossible(doc, child) {\n\tvar parentChildNodes = doc.childNodes || [];\n\n\tfunction hasElementChildThatIsNotChild(node) {\n\t\treturn isElementNode(node) && node !== child;\n\t}\n\n\tif (find(parentChildNodes, hasElementChildThatIsNotChild)) {\n\t\treturn false;\n\t}\n\tvar docTypeNode = find(parentChildNodes, isDocTypeNode);\n\treturn !(child && docTypeNode && parentChildNodes.indexOf(docTypeNode) > parentChildNodes.indexOf(child));\n}\n\n/**\n * @private\n * Steps 1-5 of the checks before inserting and before replacing a child are the same.\n *\n * @param {Node} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node=} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */\nfunction assertPreInsertionValidity1to5(parent, node, child) {\n\t// 1. If `parent` is not a Document, DocumentFragment, or Element node, then throw a \"HierarchyRequestError\" DOMException.\n\tif (!hasValidParentNodeType(parent)) {\n\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Unexpected parent node type ' + parent.nodeType);\n\t}\n\t// 2. If `node` is a host-including inclusive ancestor of `parent`, then throw a \"HierarchyRequestError\" DOMException.\n\t// not implemented!\n\t// 3. If `child` is non-null and its parent is not `parent`, then throw a \"NotFoundError\" DOMException.\n\tif (child && child.parentNode !== parent) {\n\t\tthrow new DOMException(NOT_FOUND_ERR, 'child not in parent');\n\t}\n\tif (\n\t\t// 4. If `node` is not a DocumentFragment, DocumentType, Element, or CharacterData node, then throw a \"HierarchyRequestError\" DOMException.\n\t\t!hasInsertableNodeType(node) ||\n\t\t// 5. If either `node` is a Text node and `parent` is a document,\n\t\t// the sax parser currently adds top level text nodes, this will be fixed in 0.9.0\n\t\t// || (node.nodeType === Node.TEXT_NODE && parent.nodeType === Node.DOCUMENT_NODE)\n\t\t// or `node` is a doctype and `parent` is not a document, then throw a \"HierarchyRequestError\" DOMException.\n\t\t(isDocTypeNode(node) && parent.nodeType !== Node.DOCUMENT_NODE)\n\t) {\n\t\tthrow new DOMException(\n\t\t\tHIERARCHY_REQUEST_ERR,\n\t\t\t'Unexpected node type ' + node.nodeType + ' for parent node type ' + parent.nodeType\n\t\t);\n\t}\n}\n\n/**\n * @private\n * Step 6 of the checks before inserting and before replacing a child are different.\n *\n * @param {Document} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node | undefined} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */\nfunction assertPreInsertionValidityInDocument(parent, node, child) {\n\tvar parentChildNodes = parent.childNodes || [];\n\tvar nodeChildNodes = node.childNodes || [];\n\n\t// DocumentFragment\n\tif (node.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n\t\tvar nodeChildElements = nodeChildNodes.filter(isElementNode);\n\t\t// If node has more than one element child or has a Text node child.\n\t\tif (nodeChildElements.length > 1 || find(nodeChildNodes, isTextNode)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'More than one element or text in fragment');\n\t\t}\n\t\t// Otherwise, if `node` has one element child and either `parent` has an element child,\n\t\t// `child` is a doctype, or `child` is non-null and a doctype is following `child`.\n\t\tif (nodeChildElements.length === 1 && !isElementInsertionPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Element in fragment can not be inserted before doctype');\n\t\t}\n\t}\n\t// Element\n\tif (isElementNode(node)) {\n\t\t// `parent` has an element child, `child` is a doctype,\n\t\t// or `child` is non-null and a doctype is following `child`.\n\t\tif (!isElementInsertionPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one element can be added and only after doctype');\n\t\t}\n\t}\n\t// DocumentType\n\tif (isDocTypeNode(node)) {\n\t\t// `parent` has a doctype child,\n\t\tif (find(parentChildNodes, isDocTypeNode)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one doctype is allowed');\n\t\t}\n\t\tvar parentElementChild = find(parentChildNodes, isElementNode);\n\t\t// `child` is non-null and an element is preceding `child`,\n\t\tif (child && parentChildNodes.indexOf(parentElementChild) < parentChildNodes.indexOf(child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Doctype can only be inserted before an element');\n\t\t}\n\t\t// or `child` is null and `parent` has an element child.\n\t\tif (!child && parentElementChild) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Doctype can not be appended since element is present');\n\t\t}\n\t}\n}\n\n/**\n * @private\n * Step 6 of the checks before inserting and before replacing a child are different.\n *\n * @param {Document} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node | undefined} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n * @see https://dom.spec.whatwg.org/#concept-node-replace\n */\nfunction assertPreReplacementValidityInDocument(parent, node, child) {\n\tvar parentChildNodes = parent.childNodes || [];\n\tvar nodeChildNodes = node.childNodes || [];\n\n\t// DocumentFragment\n\tif (node.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n\t\tvar nodeChildElements = nodeChildNodes.filter(isElementNode);\n\t\t// If `node` has more than one element child or has a Text node child.\n\t\tif (nodeChildElements.length > 1 || find(nodeChildNodes, isTextNode)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'More than one element or text in fragment');\n\t\t}\n\t\t// Otherwise, if `node` has one element child and either `parent` has an element child that is not `child` or a doctype is following `child`.\n\t\tif (nodeChildElements.length === 1 && !isElementReplacementPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Element in fragment can not be inserted before doctype');\n\t\t}\n\t}\n\t// Element\n\tif (isElementNode(node)) {\n\t\t// `parent` has an element child that is not `child` or a doctype is following `child`.\n\t\tif (!isElementReplacementPossible(parent, child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one element can be added and only after doctype');\n\t\t}\n\t}\n\t// DocumentType\n\tif (isDocTypeNode(node)) {\n\t\tfunction hasDoctypeChildThatIsNotChild(node) {\n\t\t\treturn isDocTypeNode(node) && node !== child;\n\t\t}\n\n\t\t// `parent` has a doctype child that is not `child`,\n\t\tif (find(parentChildNodes, hasDoctypeChildThatIsNotChild)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Only one doctype is allowed');\n\t\t}\n\t\tvar parentElementChild = find(parentChildNodes, isElementNode);\n\t\t// or an element is preceding `child`.\n\t\tif (child && parentChildNodes.indexOf(parentElementChild) < parentChildNodes.indexOf(child)) {\n\t\t\tthrow new DOMException(HIERARCHY_REQUEST_ERR, 'Doctype can only be inserted before an element');\n\t\t}\n\t}\n}\n\n/**\n * @private\n * @param {Node} parent the parent node to insert `node` into\n * @param {Node} node the node to insert\n * @param {Node=} child the node that should become the `nextSibling` of `node`\n * @returns {Node}\n * @throws DOMException for several node combinations that would create a DOM that is not well-formed.\n * @throws DOMException if `child` is provided but is not a child of `parent`.\n * @see https://dom.spec.whatwg.org/#concept-node-ensure-pre-insertion-validity\n */\nfunction _insertBefore(parent, node, child, _inDocumentAssertion) {\n\t// To ensure pre-insertion validity of a node into a parent before a child, run these steps:\n\tassertPreInsertionValidity1to5(parent, node, child);\n\n\t// If parent is a document, and any of the statements below, switched on the interface node implements,\n\t// are true, then throw a \"HierarchyRequestError\" DOMException.\n\tif (parent.nodeType === Node.DOCUMENT_NODE) {\n\t\t(_inDocumentAssertion || assertPreInsertionValidityInDocument)(parent, node, child);\n\t}\n\n\tvar cp = node.parentNode;\n\tif(cp){\n\t\tcp.removeChild(node);//remove and update\n\t}\n\tif(node.nodeType === DOCUMENT_FRAGMENT_NODE){\n\t\tvar newFirst = node.firstChild;\n\t\tif (newFirst == null) {\n\t\t\treturn node;\n\t\t}\n\t\tvar newLast = node.lastChild;\n\t}else{\n\t\tnewFirst = newLast = node;\n\t}\n\tvar pre = child ? child.previousSibling : parent.lastChild;\n\n\tnewFirst.previousSibling = pre;\n\tnewLast.nextSibling = child;\n\n\n\tif(pre){\n\t\tpre.nextSibling = newFirst;\n\t}else{\n\t\tparent.firstChild = newFirst;\n\t}\n\tif(child == null){\n\t\tparent.lastChild = newLast;\n\t}else{\n\t\tchild.previousSibling = newLast;\n\t}\n\tdo{\n\t\tnewFirst.parentNode = parent;\n\t}while(newFirst !== newLast && (newFirst= newFirst.nextSibling))\n\t_onUpdateChild(parent.ownerDocument||parent, parent);\n\t//console.log(parent.lastChild.nextSibling == null)\n\tif (node.nodeType == DOCUMENT_FRAGMENT_NODE) {\n\t\tnode.firstChild = node.lastChild = null;\n\t}\n\treturn node;\n}\n\n/**\n * Appends `newChild` to `parentNode`.\n * If `newChild` is already connected to a `parentNode` it is first removed from it.\n *\n * @see https://github.com/xmldom/xmldom/issues/135\n * @see https://github.com/xmldom/xmldom/issues/145\n * @param {Node} parentNode\n * @param {Node} newChild\n * @returns {Node}\n * @private\n */\nfunction _appendSingleChild (parentNode, newChild) {\n\tif (newChild.parentNode) {\n\t\tnewChild.parentNode.removeChild(newChild);\n\t}\n\tnewChild.parentNode = parentNode;\n\tnewChild.previousSibling = parentNode.lastChild;\n\tnewChild.nextSibling = null;\n\tif (newChild.previousSibling) {\n\t\tnewChild.previousSibling.nextSibling = newChild;\n\t} else {\n\t\tparentNode.firstChild = newChild;\n\t}\n\tparentNode.lastChild = newChild;\n\t_onUpdateChild(parentNode.ownerDocument, parentNode, newChild);\n\treturn newChild;\n}\n\nDocument.prototype = {\n\t//implementation : null,\n\tnodeName : '#document',\n\tnodeType : DOCUMENT_NODE,\n\t/**\n\t * The DocumentType node of the document.\n\t *\n\t * @readonly\n\t * @type DocumentType\n\t */\n\tdoctype : null,\n\tdocumentElement : null,\n\t_inc : 1,\n\n\tinsertBefore : function(newChild, refChild){//raises\n\t\tif(newChild.nodeType == DOCUMENT_FRAGMENT_NODE){\n\t\t\tvar child = newChild.firstChild;\n\t\t\twhile(child){\n\t\t\t\tvar next = child.nextSibling;\n\t\t\t\tthis.insertBefore(child,refChild);\n\t\t\t\tchild = next;\n\t\t\t}\n\t\t\treturn newChild;\n\t\t}\n\t\t_insertBefore(this, newChild, refChild);\n\t\tnewChild.ownerDocument = this;\n\t\tif (this.documentElement === null && newChild.nodeType === ELEMENT_NODE) {\n\t\t\tthis.documentElement = newChild;\n\t\t}\n\n\t\treturn newChild;\n\t},\n\tremoveChild : function(oldChild){\n\t\tif(this.documentElement == oldChild){\n\t\t\tthis.documentElement = null;\n\t\t}\n\t\treturn _removeChild(this,oldChild);\n\t},\n\treplaceChild: function (newChild, oldChild) {\n\t\t//raises\n\t\t_insertBefore(this, newChild, oldChild, assertPreReplacementValidityInDocument);\n\t\tnewChild.ownerDocument = this;\n\t\tif (oldChild) {\n\t\t\tthis.removeChild(oldChild);\n\t\t}\n\t\tif (isElementNode(newChild)) {\n\t\t\tthis.documentElement = newChild;\n\t\t}\n\t},\n\t// Introduced in DOM Level 2:\n\timportNode : function(importedNode,deep){\n\t\treturn importNode(this,importedNode,deep);\n\t},\n\t// Introduced in DOM Level 2:\n\tgetElementById :\tfunction(id){\n\t\tvar rtv = null;\n\t\t_visitNode(this.documentElement,function(node){\n\t\t\tif(node.nodeType == ELEMENT_NODE){\n\t\t\t\tif(node.getAttribute('id') == id){\n\t\t\t\t\trtv = node;\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t\treturn rtv;\n\t},\n\n\t/**\n\t * The `getElementsByClassName` method of `Document` interface returns an array-like object\n\t * of all child elements which have **all** of the given class name(s).\n\t *\n\t * Returns an empty list if `classeNames` is an empty string or only contains HTML white space characters.\n\t *\n\t *\n\t * Warning: This is a live LiveNodeList.\n\t * Changes in the DOM will reflect in the array as the changes occur.\n\t * If an element selected by this array no longer qualifies for the selector,\n\t * it will automatically be removed. Be aware of this for iteration purposes.\n\t *\n\t * @param {string} classNames is a string representing the class name(s) to match; multiple class names are separated by (ASCII-)whitespace\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementsByClassName\n\t * @see https://dom.spec.whatwg.org/#concept-getelementsbyclassname\n\t */\n\tgetElementsByClassName: function(classNames) {\n\t\tvar classNamesSet = toOrderedSet(classNames)\n\t\treturn new LiveNodeList(this, function(base) {\n\t\t\tvar ls = [];\n\t\t\tif (classNamesSet.length > 0) {\n\t\t\t\t_visitNode(base.documentElement, function(node) {\n\t\t\t\t\tif(node !== base && node.nodeType === ELEMENT_NODE) {\n\t\t\t\t\t\tvar nodeClassNames = node.getAttribute('class')\n\t\t\t\t\t\t// can be null if the attribute does not exist\n\t\t\t\t\t\tif (nodeClassNames) {\n\t\t\t\t\t\t\t// before splitting and iterating just compare them for the most common case\n\t\t\t\t\t\t\tvar matches = classNames === nodeClassNames;\n\t\t\t\t\t\t\tif (!matches) {\n\t\t\t\t\t\t\t\tvar nodeClassNamesSet = toOrderedSet(nodeClassNames)\n\t\t\t\t\t\t\t\tmatches = classNamesSet.every(arrayIncludes(nodeClassNamesSet))\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(matches) {\n\t\t\t\t\t\t\t\tls.push(node);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn ls;\n\t\t});\n\t},\n\n\t//document factory method:\n\tcreateElement :\tfunction(tagName){\n\t\tvar node = new Element();\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = tagName;\n\t\tnode.tagName = tagName;\n\t\tnode.localName = tagName;\n\t\tnode.childNodes = new NodeList();\n\t\tvar attrs\t= node.attributes = new NamedNodeMap();\n\t\tattrs._ownerElement = node;\n\t\treturn node;\n\t},\n\tcreateDocumentFragment :\tfunction(){\n\t\tvar node = new DocumentFragment();\n\t\tnode.ownerDocument = this;\n\t\tnode.childNodes = new NodeList();\n\t\treturn node;\n\t},\n\tcreateTextNode :\tfunction(data){\n\t\tvar node = new Text();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\tcreateComment :\tfunction(data){\n\t\tvar node = new Comment();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\tcreateCDATASection :\tfunction(data){\n\t\tvar node = new CDATASection();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\tcreateProcessingInstruction :\tfunction(target,data){\n\t\tvar node = new ProcessingInstruction();\n\t\tnode.ownerDocument = this;\n\t\tnode.tagName = node.nodeName = node.target = target;\n\t\tnode.nodeValue = node.data = data;\n\t\treturn node;\n\t},\n\tcreateAttribute :\tfunction(name){\n\t\tvar node = new Attr();\n\t\tnode.ownerDocument\t= this;\n\t\tnode.name = name;\n\t\tnode.nodeName\t= name;\n\t\tnode.localName = name;\n\t\tnode.specified = true;\n\t\treturn node;\n\t},\n\tcreateEntityReference :\tfunction(name){\n\t\tvar node = new EntityReference();\n\t\tnode.ownerDocument\t= this;\n\t\tnode.nodeName\t= name;\n\t\treturn node;\n\t},\n\t// Introduced in DOM Level 2:\n\tcreateElementNS :\tfunction(namespaceURI,qualifiedName){\n\t\tvar node = new Element();\n\t\tvar pl = qualifiedName.split(':');\n\t\tvar attrs\t= node.attributes = new NamedNodeMap();\n\t\tnode.childNodes = new NodeList();\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.tagName = qualifiedName;\n\t\tnode.namespaceURI = namespaceURI;\n\t\tif(pl.length == 2){\n\t\t\tnode.prefix = pl[0];\n\t\t\tnode.localName = pl[1];\n\t\t}else{\n\t\t\t//el.prefix = null;\n\t\t\tnode.localName = qualifiedName;\n\t\t}\n\t\tattrs._ownerElement = node;\n\t\treturn node;\n\t},\n\t// Introduced in DOM Level 2:\n\tcreateAttributeNS :\tfunction(namespaceURI,qualifiedName){\n\t\tvar node = new Attr();\n\t\tvar pl = qualifiedName.split(':');\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.name = qualifiedName;\n\t\tnode.namespaceURI = namespaceURI;\n\t\tnode.specified = true;\n\t\tif(pl.length == 2){\n\t\t\tnode.prefix = pl[0];\n\t\t\tnode.localName = pl[1];\n\t\t}else{\n\t\t\t//el.prefix = null;\n\t\t\tnode.localName = qualifiedName;\n\t\t}\n\t\treturn node;\n\t}\n};\n_extends(Document,Node);\n\n\nfunction Element() {\n\tthis._nsMap = {};\n};\nElement.prototype = {\n\tnodeType : ELEMENT_NODE,\n\thasAttribute : function(name){\n\t\treturn this.getAttributeNode(name)!=null;\n\t},\n\tgetAttribute : function(name){\n\t\tvar attr = this.getAttributeNode(name);\n\t\treturn attr && attr.value || '';\n\t},\n\tgetAttributeNode : function(name){\n\t\treturn this.attributes.getNamedItem(name);\n\t},\n\tsetAttribute : function(name, value){\n\t\tvar attr = this.ownerDocument.createAttribute(name);\n\t\tattr.value = attr.nodeValue = \"\" + value;\n\t\tthis.setAttributeNode(attr)\n\t},\n\tremoveAttribute : function(name){\n\t\tvar attr = this.getAttributeNode(name)\n\t\tattr && this.removeAttributeNode(attr);\n\t},\n\n\t//four real opeartion method\n\tappendChild:function(newChild){\n\t\tif(newChild.nodeType === DOCUMENT_FRAGMENT_NODE){\n\t\t\treturn this.insertBefore(newChild,null);\n\t\t}else{\n\t\t\treturn _appendSingleChild(this,newChild);\n\t\t}\n\t},\n\tsetAttributeNode : function(newAttr){\n\t\treturn this.attributes.setNamedItem(newAttr);\n\t},\n\tsetAttributeNodeNS : function(newAttr){\n\t\treturn this.attributes.setNamedItemNS(newAttr);\n\t},\n\tremoveAttributeNode : function(oldAttr){\n\t\t//console.log(this == oldAttr.ownerElement)\n\t\treturn this.attributes.removeNamedItem(oldAttr.nodeName);\n\t},\n\t//get real attribute name,and remove it by removeAttributeNode\n\tremoveAttributeNS : function(namespaceURI, localName){\n\t\tvar old = this.getAttributeNodeNS(namespaceURI, localName);\n\t\told && this.removeAttributeNode(old);\n\t},\n\n\thasAttributeNS : function(namespaceURI, localName){\n\t\treturn this.getAttributeNodeNS(namespaceURI, localName)!=null;\n\t},\n\tgetAttributeNS : function(namespaceURI, localName){\n\t\tvar attr = this.getAttributeNodeNS(namespaceURI, localName);\n\t\treturn attr && attr.value || '';\n\t},\n\tsetAttributeNS : function(namespaceURI, qualifiedName, value){\n\t\tvar attr = this.ownerDocument.createAttributeNS(namespaceURI, qualifiedName);\n\t\tattr.value = attr.nodeValue = \"\" + value;\n\t\tthis.setAttributeNode(attr)\n\t},\n\tgetAttributeNodeNS : function(namespaceURI, localName){\n\t\treturn this.attributes.getNamedItemNS(namespaceURI, localName);\n\t},\n\n\tgetElementsByTagName : function(tagName){\n\t\treturn new LiveNodeList(this,function(base){\n\t\t\tvar ls = [];\n\t\t\t_visitNode(base,function(node){\n\t\t\t\tif(node !== base && node.nodeType == ELEMENT_NODE && (tagName === '*' || node.tagName == tagName)){\n\t\t\t\t\tls.push(node);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn ls;\n\t\t});\n\t},\n\tgetElementsByTagNameNS : function(namespaceURI, localName){\n\t\treturn new LiveNodeList(this,function(base){\n\t\t\tvar ls = [];\n\t\t\t_visitNode(base,function(node){\n\t\t\t\tif(node !== base && node.nodeType === ELEMENT_NODE && (namespaceURI === '*' || node.namespaceURI === namespaceURI) && (localName === '*' || node.localName == localName)){\n\t\t\t\t\tls.push(node);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn ls;\n\n\t\t});\n\t}\n};\nDocument.prototype.getElementsByTagName = Element.prototype.getElementsByTagName;\nDocument.prototype.getElementsByTagNameNS = Element.prototype.getElementsByTagNameNS;\n\n\n_extends(Element,Node);\nfunction Attr() {\n};\nAttr.prototype.nodeType = ATTRIBUTE_NODE;\n_extends(Attr,Node);\n\n\nfunction CharacterData() {\n};\nCharacterData.prototype = {\n\tdata : '',\n\tsubstringData : function(offset, count) {\n\t\treturn this.data.substring(offset, offset+count);\n\t},\n\tappendData: function(text) {\n\t\ttext = this.data+text;\n\t\tthis.nodeValue = this.data = text;\n\t\tthis.length = text.length;\n\t},\n\tinsertData: function(offset,text) {\n\t\tthis.replaceData(offset,0,text);\n\n\t},\n\tappendChild:function(newChild){\n\t\tthrow new Error(ExceptionMessage[HIERARCHY_REQUEST_ERR])\n\t},\n\tdeleteData: function(offset, count) {\n\t\tthis.replaceData(offset,count,\"\");\n\t},\n\treplaceData: function(offset, count, text) {\n\t\tvar start = this.data.substring(0,offset);\n\t\tvar end = this.data.substring(offset+count);\n\t\ttext = start + text + end;\n\t\tthis.nodeValue = this.data = text;\n\t\tthis.length = text.length;\n\t}\n}\n_extends(CharacterData,Node);\nfunction Text() {\n};\nText.prototype = {\n\tnodeName : \"#text\",\n\tnodeType : TEXT_NODE,\n\tsplitText : function(offset) {\n\t\tvar text = this.data;\n\t\tvar newText = text.substring(offset);\n\t\ttext = text.substring(0, offset);\n\t\tthis.data = this.nodeValue = text;\n\t\tthis.length = text.length;\n\t\tvar newNode = this.ownerDocument.createTextNode(newText);\n\t\tif(this.parentNode){\n\t\t\tthis.parentNode.insertBefore(newNode, this.nextSibling);\n\t\t}\n\t\treturn newNode;\n\t}\n}\n_extends(Text,CharacterData);\nfunction Comment() {\n};\nComment.prototype = {\n\tnodeName : \"#comment\",\n\tnodeType : COMMENT_NODE\n}\n_extends(Comment,CharacterData);\n\nfunction CDATASection() {\n};\nCDATASection.prototype = {\n\tnodeName : \"#cdata-section\",\n\tnodeType : CDATA_SECTION_NODE\n}\n_extends(CDATASection,CharacterData);\n\n\nfunction DocumentType() {\n};\nDocumentType.prototype.nodeType = DOCUMENT_TYPE_NODE;\n_extends(DocumentType,Node);\n\nfunction Notation() {\n};\nNotation.prototype.nodeType = NOTATION_NODE;\n_extends(Notation,Node);\n\nfunction Entity() {\n};\nEntity.prototype.nodeType = ENTITY_NODE;\n_extends(Entity,Node);\n\nfunction EntityReference() {\n};\nEntityReference.prototype.nodeType = ENTITY_REFERENCE_NODE;\n_extends(EntityReference,Node);\n\nfunction DocumentFragment() {\n};\nDocumentFragment.prototype.nodeName =\t\"#document-fragment\";\nDocumentFragment.prototype.nodeType =\tDOCUMENT_FRAGMENT_NODE;\n_extends(DocumentFragment,Node);\n\n\nfunction ProcessingInstruction() {\n}\nProcessingInstruction.prototype.nodeType = PROCESSING_INSTRUCTION_NODE;\n_extends(ProcessingInstruction,Node);\nfunction XMLSerializer(){}\nXMLSerializer.prototype.serializeToString = function(node,isHtml,nodeFilter){\n\treturn nodeSerializeToString.call(node,isHtml,nodeFilter);\n}\nNode.prototype.toString = nodeSerializeToString;\nfunction nodeSerializeToString(isHtml,nodeFilter){\n\tvar buf = [];\n\tvar refNode = this.nodeType == 9 && this.documentElement || this;\n\tvar prefix = refNode.prefix;\n\tvar uri = refNode.namespaceURI;\n\n\tif(uri && prefix == null){\n\t\t//console.log(prefix)\n\t\tvar prefix = refNode.lookupPrefix(uri);\n\t\tif(prefix == null){\n\t\t\t//isHTML = true;\n\t\t\tvar visibleNamespaces=[\n\t\t\t{namespace:uri,prefix:null}\n\t\t\t//{namespace:uri,prefix:''}\n\t\t\t]\n\t\t}\n\t}\n\tserializeToString(this,buf,isHtml,nodeFilter,visibleNamespaces);\n\t//console.log('###',this.nodeType,uri,prefix,buf.join(''))\n\treturn buf.join('');\n}\n\nfunction needNamespaceDefine(node, isHTML, visibleNamespaces) {\n\tvar prefix = node.prefix || '';\n\tvar uri = node.namespaceURI;\n\t// According to [Namespaces in XML 1.0](https://www.w3.org/TR/REC-xml-names/#ns-using) ,\n\t// and more specifically https://www.w3.org/TR/REC-xml-names/#nsc-NoPrefixUndecl :\n\t// > In a namespace declaration for a prefix [...], the attribute value MUST NOT be empty.\n\t// in a similar manner [Namespaces in XML 1.1](https://www.w3.org/TR/xml-names11/#ns-using)\n\t// and more specifically https://www.w3.org/TR/xml-names11/#nsc-NSDeclared :\n\t// > [...] Furthermore, the attribute value [...] must not be an empty string.\n\t// so serializing empty namespace value like xmlns:ds=\"\" would produce an invalid XML document.\n\tif (!uri) {\n\t\treturn false;\n\t}\n\tif (prefix === \"xml\" && uri === NAMESPACE.XML || uri === NAMESPACE.XMLNS) {\n\t\treturn false;\n\t}\n\n\tvar i = visibleNamespaces.length\n\twhile (i--) {\n\t\tvar ns = visibleNamespaces[i];\n\t\t// get namespace prefix\n\t\tif (ns.prefix === prefix) {\n\t\t\treturn ns.namespace !== uri;\n\t\t}\n\t}\n\treturn true;\n}\n/**\n * Well-formed constraint: No < in Attribute Values\n * > The replacement text of any entity referred to directly or indirectly\n * > in an attribute value must not contain a <.\n * @see https://www.w3.org/TR/xml11/#CleanAttrVals\n * @see https://www.w3.org/TR/xml11/#NT-AttValue\n *\n * Literal whitespace other than space that appear in attribute values\n * are serialized as their entity references, so they will be preserved.\n * (In contrast to whitespace literals in the input which are normalized to spaces)\n * @see https://www.w3.org/TR/xml11/#AVNormalize\n * @see https://w3c.github.io/DOM-Parsing/#serializing-an-element-s-attributes\n */\nfunction addSerializedAttribute(buf, qualifiedName, value) {\n\tbuf.push(' ', qualifiedName, '=\"', value.replace(/[<>&\"\\t\\n\\r]/g, _xmlEncoder), '\"')\n}\n\nfunction serializeToString(node,buf,isHTML,nodeFilter,visibleNamespaces){\n\tif (!visibleNamespaces) {\n\t\tvisibleNamespaces = [];\n\t}\n\n\tif(nodeFilter){\n\t\tnode = nodeFilter(node);\n\t\tif(node){\n\t\t\tif(typeof node == 'string'){\n\t\t\t\tbuf.push(node);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}else{\n\t\t\treturn;\n\t\t}\n\t\t//buf.sort.apply(attrs, attributeSorter);\n\t}\n\n\tswitch(node.nodeType){\n\tcase ELEMENT_NODE:\n\t\tvar attrs = node.attributes;\n\t\tvar len = attrs.length;\n\t\tvar child = node.firstChild;\n\t\tvar nodeName = node.tagName;\n\n\t\tisHTML = NAMESPACE.isHTML(node.namespaceURI) || isHTML\n\n\t\tvar prefixedNodeName = nodeName\n\t\tif (!isHTML && !node.prefix && node.namespaceURI) {\n\t\t\tvar defaultNS\n\t\t\t// lookup current default ns from `xmlns` attribute\n\t\t\tfor (var ai = 0; ai < attrs.length; ai++) {\n\t\t\t\tif (attrs.item(ai).name === 'xmlns') {\n\t\t\t\t\tdefaultNS = attrs.item(ai).value\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!defaultNS) {\n\t\t\t\t// lookup current default ns in visibleNamespaces\n\t\t\t\tfor (var nsi = visibleNamespaces.length - 1; nsi >= 0; nsi--) {\n\t\t\t\t\tvar namespace = visibleNamespaces[nsi]\n\t\t\t\t\tif (namespace.prefix === '' && namespace.namespace === node.namespaceURI) {\n\t\t\t\t\t\tdefaultNS = namespace.namespace\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (defaultNS !== node.namespaceURI) {\n\t\t\t\tfor (var nsi = visibleNamespaces.length - 1; nsi >= 0; nsi--) {\n\t\t\t\t\tvar namespace = visibleNamespaces[nsi]\n\t\t\t\t\tif (namespace.namespace === node.namespaceURI) {\n\t\t\t\t\t\tif (namespace.prefix) {\n\t\t\t\t\t\t\tprefixedNodeName = namespace.prefix + ':' + nodeName\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tbuf.push('<', prefixedNodeName);\n\n\t\tfor(var i=0;i<len;i++){\n\t\t\t// add namespaces for attributes\n\t\t\tvar attr = attrs.item(i);\n\t\t\tif (attr.prefix == 'xmlns') {\n\t\t\t\tvisibleNamespaces.push({ prefix: attr.localName, namespace: attr.value });\n\t\t\t}else if(attr.nodeName == 'xmlns'){\n\t\t\t\tvisibleNamespaces.push({ prefix: '', namespace: attr.value });\n\t\t\t}\n\t\t}\n\n\t\tfor(var i=0;i<len;i++){\n\t\t\tvar attr = attrs.item(i);\n\t\t\tif (needNamespaceDefine(attr,isHTML, visibleNamespaces)) {\n\t\t\t\tvar prefix = attr.prefix||'';\n\t\t\t\tvar uri = attr.namespaceURI;\n\t\t\t\taddSerializedAttribute(buf, prefix ? 'xmlns:' + prefix : \"xmlns\", uri);\n\t\t\t\tvisibleNamespaces.push({ prefix: prefix, namespace:uri });\n\t\t\t}\n\t\t\tserializeToString(attr,buf,isHTML,nodeFilter,visibleNamespaces);\n\t\t}\n\n\t\t// add namespace for current node\n\t\tif (nodeName === prefixedNodeName && needNamespaceDefine(node, isHTML, visibleNamespaces)) {\n\t\t\tvar prefix = node.prefix||'';\n\t\t\tvar uri = node.namespaceURI;\n\t\t\taddSerializedAttribute(buf, prefix ? 'xmlns:' + prefix : \"xmlns\", uri);\n\t\t\tvisibleNamespaces.push({ prefix: prefix, namespace:uri });\n\t\t}\n\n\t\tif(child || isHTML && !/^(?:meta|link|img|br|hr|input)$/i.test(nodeName)){\n\t\t\tbuf.push('>');\n\t\t\t//if is cdata child node\n\t\t\tif(isHTML && /^script$/i.test(nodeName)){\n\t\t\t\twhile(child){\n\t\t\t\t\tif(child.data){\n\t\t\t\t\t\tbuf.push(child.data);\n\t\t\t\t\t}else{\n\t\t\t\t\t\tserializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n\t\t\t\t\t}\n\t\t\t\t\tchild = child.nextSibling;\n\t\t\t\t}\n\t\t\t}else\n\t\t\t{\n\t\t\t\twhile(child){\n\t\t\t\t\tserializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n\t\t\t\t\tchild = child.nextSibling;\n\t\t\t\t}\n\t\t\t}\n\t\t\tbuf.push('</',prefixedNodeName,'>');\n\t\t}else{\n\t\t\tbuf.push('/>');\n\t\t}\n\t\t// remove added visible namespaces\n\t\t//visibleNamespaces.length = startVisibleNamespaces;\n\t\treturn;\n\tcase DOCUMENT_NODE:\n\tcase DOCUMENT_FRAGMENT_NODE:\n\t\tvar child = node.firstChild;\n\t\twhile(child){\n\t\t\tserializeToString(child, buf, isHTML, nodeFilter, visibleNamespaces.slice());\n\t\t\tchild = child.nextSibling;\n\t\t}\n\t\treturn;\n\tcase ATTRIBUTE_NODE:\n\t\treturn addSerializedAttribute(buf, node.name, node.value);\n\tcase TEXT_NODE:\n\t\t/**\n\t\t * The ampersand character (&) and the left angle bracket (<) must not appear in their literal form,\n\t\t * except when used as markup delimiters, or within a comment, a processing instruction, or a CDATA section.\n\t\t * If they are needed elsewhere, they must be escaped using either numeric character references or the strings\n\t\t * `&` and `<` respectively.\n\t\t * The right angle bracket (>) may be represented using the string \" > \", and must, for compatibility,\n\t\t * be escaped using either `>` or a character reference when it appears in the string `]]>` in content,\n\t\t * when that string is not marking the end of a CDATA section.\n\t\t *\n\t\t * In the content of elements, character data is any string of characters\n\t\t * which does not contain the start-delimiter of any markup\n\t\t * and does not include the CDATA-section-close delimiter, `]]>`.\n\t\t *\n\t\t * @see https://www.w3.org/TR/xml/#NT-CharData\n\t\t * @see https://w3c.github.io/DOM-Parsing/#xml-serializing-a-text-node\n\t\t */\n\t\treturn buf.push(node.data\n\t\t\t.replace(/[<&>]/g,_xmlEncoder)\n\t\t);\n\tcase CDATA_SECTION_NODE:\n\t\treturn buf.push( '<![CDATA[',node.data,']]>');\n\tcase COMMENT_NODE:\n\t\treturn buf.push( \"<!--\",node.data,\"-->\");\n\tcase DOCUMENT_TYPE_NODE:\n\t\tvar pubid = node.publicId;\n\t\tvar sysid = node.systemId;\n\t\tbuf.push('<!DOCTYPE ',node.name);\n\t\tif(pubid){\n\t\t\tbuf.push(' PUBLIC ', pubid);\n\t\t\tif (sysid && sysid!='.') {\n\t\t\t\tbuf.push(' ', sysid);\n\t\t\t}\n\t\t\tbuf.push('>');\n\t\t}else if(sysid && sysid!='.'){\n\t\t\tbuf.push(' SYSTEM ', sysid, '>');\n\t\t}else{\n\t\t\tvar sub = node.internalSubset;\n\t\t\tif(sub){\n\t\t\t\tbuf.push(\" [\",sub,\"]\");\n\t\t\t}\n\t\t\tbuf.push(\">\");\n\t\t}\n\t\treturn;\n\tcase PROCESSING_INSTRUCTION_NODE:\n\t\treturn buf.push( \"<?\",node.target,\" \",node.data,\"?>\");\n\tcase ENTITY_REFERENCE_NODE:\n\t\treturn buf.push( '&',node.nodeName,';');\n\t//case ENTITY_NODE:\n\t//case NOTATION_NODE:\n\tdefault:\n\t\tbuf.push('??',node.nodeName);\n\t}\n}\nfunction importNode(doc,node,deep){\n\tvar node2;\n\tswitch (node.nodeType) {\n\tcase ELEMENT_NODE:\n\t\tnode2 = node.cloneNode(false);\n\t\tnode2.ownerDocument = doc;\n\t\t//var attrs = node2.attributes;\n\t\t//var len = attrs.length;\n\t\t//for(var i=0;i<len;i++){\n\t\t\t//node2.setAttributeNodeNS(importNode(doc,attrs.item(i),deep));\n\t\t//}\n\tcase DOCUMENT_FRAGMENT_NODE:\n\t\tbreak;\n\tcase ATTRIBUTE_NODE:\n\t\tdeep = true;\n\t\tbreak;\n\t//case ENTITY_REFERENCE_NODE:\n\t//case PROCESSING_INSTRUCTION_NODE:\n\t////case TEXT_NODE:\n\t//case CDATA_SECTION_NODE:\n\t//case COMMENT_NODE:\n\t//\tdeep = false;\n\t//\tbreak;\n\t//case DOCUMENT_NODE:\n\t//case DOCUMENT_TYPE_NODE:\n\t//cannot be imported.\n\t//case ENTITY_NODE:\n\t//case NOTATION_NODE:\n\t//can not hit in level3\n\t//default:throw e;\n\t}\n\tif(!node2){\n\t\tnode2 = node.cloneNode(false);//false\n\t}\n\tnode2.ownerDocument = doc;\n\tnode2.parentNode = null;\n\tif(deep){\n\t\tvar child = node.firstChild;\n\t\twhile(child){\n\t\t\tnode2.appendChild(importNode(doc,child,deep));\n\t\t\tchild = child.nextSibling;\n\t\t}\n\t}\n\treturn node2;\n}\n//\n//var _relationMap = {firstChild:1,lastChild:1,previousSibling:1,nextSibling:1,\n//\t\t\t\t\tattributes:1,childNodes:1,parentNode:1,documentElement:1,doctype,};\nfunction cloneNode(doc,node,deep){\n\tvar node2 = new node.constructor();\n\tfor (var n in node) {\n\t\tif (Object.prototype.hasOwnProperty.call(node, n)) {\n\t\t\tvar v = node[n];\n\t\t\tif (typeof v != \"object\") {\n\t\t\t\tif (v != node2[n]) {\n\t\t\t\t\tnode2[n] = v;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tif(node.childNodes){\n\t\tnode2.childNodes = new NodeList();\n\t}\n\tnode2.ownerDocument = doc;\n\tswitch (node2.nodeType) {\n\tcase ELEMENT_NODE:\n\t\tvar attrs\t= node.attributes;\n\t\tvar attrs2\t= node2.attributes = new NamedNodeMap();\n\t\tvar len = attrs.length\n\t\tattrs2._ownerElement = node2;\n\t\tfor(var i=0;i<len;i++){\n\t\t\tnode2.setAttributeNode(cloneNode(doc,attrs.item(i),true));\n\t\t}\n\t\tbreak;;\n\tcase ATTRIBUTE_NODE:\n\t\tdeep = true;\n\t}\n\tif(deep){\n\t\tvar child = node.firstChild;\n\t\twhile(child){\n\t\t\tnode2.appendChild(cloneNode(doc,child,deep));\n\t\t\tchild = child.nextSibling;\n\t\t}\n\t}\n\treturn node2;\n}\n\nfunction __set__(object,key,value){\n\tobject[key] = value\n}\n//do dynamic\ntry{\n\tif(Object.defineProperty){\n\t\tObject.defineProperty(LiveNodeList.prototype,'length',{\n\t\t\tget:function(){\n\t\t\t\t_updateLiveList(this);\n\t\t\t\treturn this.$$length;\n\t\t\t}\n\t\t});\n\n\t\tObject.defineProperty(Node.prototype,'textContent',{\n\t\t\tget:function(){\n\t\t\t\treturn getTextContent(this);\n\t\t\t},\n\n\t\t\tset:function(data){\n\t\t\t\tswitch(this.nodeType){\n\t\t\t\tcase ELEMENT_NODE:\n\t\t\t\tcase DOCUMENT_FRAGMENT_NODE:\n\t\t\t\t\twhile(this.firstChild){\n\t\t\t\t\t\tthis.removeChild(this.firstChild);\n\t\t\t\t\t}\n\t\t\t\t\tif(data || String(data)){\n\t\t\t\t\t\tthis.appendChild(this.ownerDocument.createTextNode(data));\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\t\t\t\t\tthis.data = data;\n\t\t\t\t\tthis.value = data;\n\t\t\t\t\tthis.nodeValue = data;\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\n\t\tfunction getTextContent(node){\n\t\t\tswitch(node.nodeType){\n\t\t\tcase ELEMENT_NODE:\n\t\t\tcase DOCUMENT_FRAGMENT_NODE:\n\t\t\t\tvar buf = [];\n\t\t\t\tnode = node.firstChild;\n\t\t\t\twhile(node){\n\t\t\t\t\tif(node.nodeType!==7 && node.nodeType !==8){\n\t\t\t\t\t\tbuf.push(getTextContent(node));\n\t\t\t\t\t}\n\t\t\t\t\tnode = node.nextSibling;\n\t\t\t\t}\n\t\t\t\treturn buf.join('');\n\t\t\tdefault:\n\t\t\t\treturn node.nodeValue;\n\t\t\t}\n\t\t}\n\n\t\t__set__ = function(object,key,value){\n\t\t\t//console.log(value)\n\t\t\tobject['$$'+key] = value\n\t\t}\n\t}\n}catch(e){//ie8\n}\n\n//if(typeof require == 'function'){\n\texports.DocumentType = DocumentType;\n\texports.DOMException = DOMException;\n\texports.DOMImplementation = DOMImplementation;\n\texports.Element = Element;\n\texports.Node = Node;\n\texports.NodeList = NodeList;\n\texports.XMLSerializer = XMLSerializer;\n//}\n","'use strict'\n\n/**\n * Ponyfill for `Array.prototype.find` which is only available in ES6 runtimes.\n *\n * Works with anything that has a `length` property and index access properties, including NodeList.\n *\n * @template {unknown} T\n * @param {Array<T> | ({length:number, [number]: T})} list\n * @param {function (item: T, index: number, list:Array<T> | ({length:number, [number]: T})):boolean} predicate\n * @param {Partial<Pick<ArrayConstructor['prototype'], 'find'>>?} ac `Array.prototype` by default,\n * \t\t\t\tallows injecting a custom implementation in tests\n * @returns {T | undefined}\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find\n * @see https://tc39.es/ecma262/multipage/indexed-collections.html#sec-array.prototype.find\n */\nfunction find(list, predicate, ac) {\n\tif (ac === undefined) {\n\t\tac = Array.prototype;\n\t}\n\tif (list && typeof ac.find === 'function') {\n\t\treturn ac.find.call(list, predicate);\n\t}\n\tfor (var i = 0; i < list.length; i++) {\n\t\tif (Object.prototype.hasOwnProperty.call(list, i)) {\n\t\t\tvar item = list[i];\n\t\t\tif (predicate.call(undefined, item, i, list)) {\n\t\t\t\treturn item;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * \"Shallow freezes\" an object to render it immutable.\n * Uses `Object.freeze` if available,\n * otherwise the immutability is only in the type.\n *\n * Is used to create \"enum like\" objects.\n *\n * @template T\n * @param {T} object the object to freeze\n * @param {Pick<ObjectConstructor, 'freeze'> = Object} oc `Object` by default,\n * \t\t\t\tallows to inject custom object constructor for tests\n * @returns {Readonly<T>}\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze\n */\nfunction freeze(object, oc) {\n\tif (oc === undefined) {\n\t\toc = Object\n\t}\n\treturn oc && typeof oc.freeze === 'function' ? oc.freeze(object) : object\n}\n\n/**\n * Since we can not rely on `Object.assign` we provide a simplified version\n * that is sufficient for our needs.\n *\n * @param {Object} target\n * @param {Object | null | undefined} source\n *\n * @returns {Object} target\n * @throws TypeError if target is not an object\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\n * @see https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-object.assign\n */\nfunction assign(target, source) {\n\tif (target === null || typeof target !== 'object') {\n\t\tthrow new TypeError('target is not an object')\n\t}\n\tfor (var key in source) {\n\t\tif (Object.prototype.hasOwnProperty.call(source, key)) {\n\t\t\ttarget[key] = source[key]\n\t\t}\n\t}\n\treturn target\n}\n\n/**\n * All mime types that are allowed as input to `DOMParser.parseFromString`\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString#Argument02 MDN\n * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#domparsersupportedtype WHATWG HTML Spec\n * @see DOMParser.prototype.parseFromString\n */\nvar MIME_TYPE = freeze({\n\t/**\n\t * `text/html`, the only mime type that triggers treating an XML document as HTML.\n\t *\n\t * @see DOMParser.SupportedType.isHTML\n\t * @see https://www.iana.org/assignments/media-types/text/html IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/HTML Wikipedia\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString MDN\n\t * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-domparser-parsefromstring WHATWG HTML Spec\n\t */\n\tHTML: 'text/html',\n\n\t/**\n\t * Helper method to check a mime type if it indicates an HTML document\n\t *\n\t * @param {string} [value]\n\t * @returns {boolean}\n\t *\n\t * @see https://www.iana.org/assignments/media-types/text/html IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/HTML Wikipedia\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString MDN\n\t * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-domparser-parsefromstring \t */\n\tisHTML: function (value) {\n\t\treturn value === MIME_TYPE.HTML\n\t},\n\n\t/**\n\t * `application/xml`, the standard mime type for XML documents.\n\t *\n\t * @see https://www.iana.org/assignments/media-types/application/xml IANA MimeType registration\n\t * @see https://tools.ietf.org/html/rfc7303#section-9.1 RFC 7303\n\t * @see https://en.wikipedia.org/wiki/XML_and_MIME Wikipedia\n\t */\n\tXML_APPLICATION: 'application/xml',\n\n\t/**\n\t * `text/html`, an alias for `application/xml`.\n\t *\n\t * @see https://tools.ietf.org/html/rfc7303#section-9.2 RFC 7303\n\t * @see https://www.iana.org/assignments/media-types/text/xml IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/XML_and_MIME Wikipedia\n\t */\n\tXML_TEXT: 'text/xml',\n\n\t/**\n\t * `application/xhtml+xml`, indicates an XML document that has the default HTML namespace,\n\t * but is parsed as an XML document.\n\t *\n\t * @see https://www.iana.org/assignments/media-types/application/xhtml+xml IANA MimeType registration\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocument WHATWG DOM Spec\n\t * @see https://en.wikipedia.org/wiki/XHTML Wikipedia\n\t */\n\tXML_XHTML_APPLICATION: 'application/xhtml+xml',\n\n\t/**\n\t * `image/svg+xml`,\n\t *\n\t * @see https://www.iana.org/assignments/media-types/image/svg+xml IANA MimeType registration\n\t * @see https://www.w3.org/TR/SVG11/ W3C SVG 1.1\n\t * @see https://en.wikipedia.org/wiki/Scalable_Vector_Graphics Wikipedia\n\t */\n\tXML_SVG_IMAGE: 'image/svg+xml',\n})\n\n/**\n * Namespaces that are used in this code base.\n *\n * @see http://www.w3.org/TR/REC-xml-names\n */\nvar NAMESPACE = freeze({\n\t/**\n\t * The XHTML namespace.\n\t *\n\t * @see http://www.w3.org/1999/xhtml\n\t */\n\tHTML: 'http://www.w3.org/1999/xhtml',\n\n\t/**\n\t * Checks if `uri` equals `NAMESPACE.HTML`.\n\t *\n\t * @param {string} [uri]\n\t *\n\t * @see NAMESPACE.HTML\n\t */\n\tisHTML: function (uri) {\n\t\treturn uri === NAMESPACE.HTML\n\t},\n\n\t/**\n\t * The SVG namespace.\n\t *\n\t * @see http://www.w3.org/2000/svg\n\t */\n\tSVG: 'http://www.w3.org/2000/svg',\n\n\t/**\n\t * The `xml:` namespace.\n\t *\n\t * @see http://www.w3.org/XML/1998/namespace\n\t */\n\tXML: 'http://www.w3.org/XML/1998/namespace',\n\n\t/**\n\t * The `xmlns:` namespace\n\t *\n\t * @see https://www.w3.org/2000/xmlns/\n\t */\n\tXMLNS: 'http://www.w3.org/2000/xmlns/',\n})\n\nexports.assign = assign;\nexports.find = find;\nexports.freeze = freeze;\nexports.MIME_TYPE = MIME_TYPE;\nexports.NAMESPACE = NAMESPACE;\n","var conventions = require(\"./conventions\");\nvar dom = require('./dom')\nvar entities = require('./entities');\nvar sax = require('./sax');\n\nvar DOMImplementation = dom.DOMImplementation;\n\nvar NAMESPACE = conventions.NAMESPACE;\n\nvar ParseError = sax.ParseError;\nvar XMLReader = sax.XMLReader;\n\n/**\n * Normalizes line ending according to https://www.w3.org/TR/xml11/#sec-line-ends:\n *\n * > XML parsed entities are often stored in computer files which,\n * > for editing convenience, are organized into lines.\n * > These lines are typically separated by some combination\n * > of the characters CARRIAGE RETURN (#xD) and LINE FEED (#xA).\n * >\n * > To simplify the tasks of applications, the XML processor must behave\n * > as if it normalized all line breaks in external parsed entities (including the document entity)\n * > on input, before parsing, by translating all of the following to a single #xA character:\n * >\n * > 1. the two-character sequence #xD #xA\n * > 2. the two-character sequence #xD #x85\n * > 3. the single character #x85\n * > 4. the single character #x2028\n * > 5. any #xD character that is not immediately followed by #xA or #x85.\n *\n * @param {string} input\n * @returns {string}\n */\nfunction normalizeLineEndings(input) {\n\treturn input\n\t\t.replace(/\\r[\\n\\u0085]/g, '\\n')\n\t\t.replace(/[\\r\\u0085\\u2028]/g, '\\n')\n}\n\n/**\n * @typedef Locator\n * @property {number} [columnNumber]\n * @property {number} [lineNumber]\n */\n\n/**\n * @typedef DOMParserOptions\n * @property {DOMHandler} [domBuilder]\n * @property {Function} [errorHandler]\n * @property {(string) => string} [normalizeLineEndings] used to replace line endings before parsing\n * \t\t\t\t\t\tdefaults to `normalizeLineEndings`\n * @property {Locator} [locator]\n * @property {Record<string, string>} [xmlns]\n *\n * @see normalizeLineEndings\n */\n\n/**\n * The DOMParser interface provides the ability to parse XML or HTML source code\n * from a string into a DOM `Document`.\n *\n * _xmldom is different from the spec in that it allows an `options` parameter,\n * to override the default behavior._\n *\n * @param {DOMParserOptions} [options]\n * @constructor\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser\n * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-parsing-and-serialization\n */\nfunction DOMParser(options){\n\tthis.options = options ||{locator:{}};\n}\n\nDOMParser.prototype.parseFromString = function(source,mimeType){\n\tvar options = this.options;\n\tvar sax = new XMLReader();\n\tvar domBuilder = options.domBuilder || new DOMHandler();//contentHandler and LexicalHandler\n\tvar errorHandler = options.errorHandler;\n\tvar locator = options.locator;\n\tvar defaultNSMap = options.xmlns||{};\n\tvar isHTML = /\\/x?html?$/.test(mimeType);//mimeType.toLowerCase().indexOf('html') > -1;\n \tvar entityMap = isHTML ? entities.HTML_ENTITIES : entities.XML_ENTITIES;\n\tif(locator){\n\t\tdomBuilder.setDocumentLocator(locator)\n\t}\n\n\tsax.errorHandler = buildErrorHandler(errorHandler,domBuilder,locator);\n\tsax.domBuilder = options.domBuilder || domBuilder;\n\tif(isHTML){\n\t\tdefaultNSMap[''] = NAMESPACE.HTML;\n\t}\n\tdefaultNSMap.xml = defaultNSMap.xml || NAMESPACE.XML;\n\tvar normalize = options.normalizeLineEndings || normalizeLineEndings;\n\tif (source && typeof source === 'string') {\n\t\tsax.parse(\n\t\t\tnormalize(source),\n\t\t\tdefaultNSMap,\n\t\t\tentityMap\n\t\t)\n\t} else {\n\t\tsax.errorHandler.error('invalid doc source')\n\t}\n\treturn domBuilder.doc;\n}\nfunction buildErrorHandler(errorImpl,domBuilder,locator){\n\tif(!errorImpl){\n\t\tif(domBuilder instanceof DOMHandler){\n\t\t\treturn domBuilder;\n\t\t}\n\t\terrorImpl = domBuilder ;\n\t}\n\tvar errorHandler = {}\n\tvar isCallback = errorImpl instanceof Function;\n\tlocator = locator||{}\n\tfunction build(key){\n\t\tvar fn = errorImpl[key];\n\t\tif(!fn && isCallback){\n\t\t\tfn = errorImpl.length == 2?function(msg){errorImpl(key,msg)}:errorImpl;\n\t\t}\n\t\terrorHandler[key] = fn && function(msg){\n\t\t\tfn('[xmldom '+key+']\\t'+msg+_locator(locator));\n\t\t}||function(){};\n\t}\n\tbuild('warning');\n\tbuild('error');\n\tbuild('fatalError');\n\treturn errorHandler;\n}\n\n//console.log('#\\n\\n\\n\\n\\n\\n\\n####')\n/**\n * +ContentHandler+ErrorHandler\n * +LexicalHandler+EntityResolver2\n * -DeclHandler-DTDHandler\n *\n * DefaultHandler:EntityResolver, DTDHandler, ContentHandler, ErrorHandler\n * DefaultHandler2:DefaultHandler,LexicalHandler, DeclHandler, EntityResolver2\n * @link http://www.saxproject.org/apidoc/org/xml/sax/helpers/DefaultHandler.html\n */\nfunction DOMHandler() {\n this.cdata = false;\n}\nfunction position(locator,node){\n\tnode.lineNumber = locator.lineNumber;\n\tnode.columnNumber = locator.columnNumber;\n}\n/**\n * @see org.xml.sax.ContentHandler#startDocument\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ContentHandler.html\n */\nDOMHandler.prototype = {\n\tstartDocument : function() {\n \tthis.doc = new DOMImplementation().createDocument(null, null, null);\n \tif (this.locator) {\n \tthis.doc.documentURI = this.locator.systemId;\n \t}\n\t},\n\tstartElement:function(namespaceURI, localName, qName, attrs) {\n\t\tvar doc = this.doc;\n\t var el = doc.createElementNS(namespaceURI, qName||localName);\n\t var len = attrs.length;\n\t appendElement(this, el);\n\t this.currentElement = el;\n\n\t\tthis.locator && position(this.locator,el)\n\t for (var i = 0 ; i < len; i++) {\n\t var namespaceURI = attrs.getURI(i);\n\t var value = attrs.getValue(i);\n\t var qName = attrs.getQName(i);\n\t\t\tvar attr = doc.createAttributeNS(namespaceURI, qName);\n\t\t\tthis.locator &&position(attrs.getLocator(i),attr);\n\t\t\tattr.value = attr.nodeValue = value;\n\t\t\tel.setAttributeNode(attr)\n\t }\n\t},\n\tendElement:function(namespaceURI, localName, qName) {\n\t\tvar current = this.currentElement\n\t\tvar tagName = current.tagName;\n\t\tthis.currentElement = current.parentNode;\n\t},\n\tstartPrefixMapping:function(prefix, uri) {\n\t},\n\tendPrefixMapping:function(prefix) {\n\t},\n\tprocessingInstruction:function(target, data) {\n\t var ins = this.doc.createProcessingInstruction(target, data);\n\t this.locator && position(this.locator,ins)\n\t appendElement(this, ins);\n\t},\n\tignorableWhitespace:function(ch, start, length) {\n\t},\n\tcharacters:function(chars, start, length) {\n\t\tchars = _toString.apply(this,arguments)\n\t\t//console.log(chars)\n\t\tif(chars){\n\t\t\tif (this.cdata) {\n\t\t\t\tvar charNode = this.doc.createCDATASection(chars);\n\t\t\t} else {\n\t\t\t\tvar charNode = this.doc.createTextNode(chars);\n\t\t\t}\n\t\t\tif(this.currentElement){\n\t\t\t\tthis.currentElement.appendChild(charNode);\n\t\t\t}else if(/^\\s*$/.test(chars)){\n\t\t\t\tthis.doc.appendChild(charNode);\n\t\t\t\t//process xml\n\t\t\t}\n\t\t\tthis.locator && position(this.locator,charNode)\n\t\t}\n\t},\n\tskippedEntity:function(name) {\n\t},\n\tendDocument:function() {\n\t\tthis.doc.normalize();\n\t},\n\tsetDocumentLocator:function (locator) {\n\t if(this.locator = locator){// && !('lineNumber' in locator)){\n\t \tlocator.lineNumber = 0;\n\t }\n\t},\n\t//LexicalHandler\n\tcomment:function(chars, start, length) {\n\t\tchars = _toString.apply(this,arguments)\n\t var comm = this.doc.createComment(chars);\n\t this.locator && position(this.locator,comm)\n\t appendElement(this, comm);\n\t},\n\n\tstartCDATA:function() {\n\t //used in characters() methods\n\t this.cdata = true;\n\t},\n\tendCDATA:function() {\n\t this.cdata = false;\n\t},\n\n\tstartDTD:function(name, publicId, systemId) {\n\t\tvar impl = this.doc.implementation;\n\t if (impl && impl.createDocumentType) {\n\t var dt = impl.createDocumentType(name, publicId, systemId);\n\t this.locator && position(this.locator,dt)\n\t appendElement(this, dt);\n\t\t\t\t\tthis.doc.doctype = dt;\n\t }\n\t},\n\t/**\n\t * @see org.xml.sax.ErrorHandler\n\t * @link http://www.saxproject.org/apidoc/org/xml/sax/ErrorHandler.html\n\t */\n\twarning:function(error) {\n\t\tconsole.warn('[xmldom warning]\\t'+error,_locator(this.locator));\n\t},\n\terror:function(error) {\n\t\tconsole.error('[xmldom error]\\t'+error,_locator(this.locator));\n\t},\n\tfatalError:function(error) {\n\t\tthrow new ParseError(error, this.locator);\n\t}\n}\nfunction _locator(l){\n\tif(l){\n\t\treturn '\\n@'+(l.systemId ||'')+'#[line:'+l.lineNumber+',col:'+l.columnNumber+']'\n\t}\n}\nfunction _toString(chars,start,length){\n\tif(typeof chars == 'string'){\n\t\treturn chars.substr(start,length)\n\t}else{//java sax connect width xmldom on rhino(what about: \"? && !(chars instanceof String)\")\n\t\tif(chars.length >= start+length || start){\n\t\t\treturn new java.lang.String(chars,start,length)+'';\n\t\t}\n\t\treturn chars;\n\t}\n}\n\n/*\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/LexicalHandler.html\n * used method of org.xml.sax.ext.LexicalHandler:\n * #comment(chars, start, length)\n * #startCDATA()\n * #endCDATA()\n * #startDTD(name, publicId, systemId)\n *\n *\n * IGNORED method of org.xml.sax.ext.LexicalHandler:\n * #endDTD()\n * #startEntity(name)\n * #endEntity(name)\n *\n *\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/DeclHandler.html\n * IGNORED method of org.xml.sax.ext.DeclHandler\n * \t#attributeDecl(eName, aName, type, mode, value)\n * #elementDecl(name, model)\n * #externalEntityDecl(name, publicId, systemId)\n * #internalEntityDecl(name, value)\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/EntityResolver2.html\n * IGNORED method of org.xml.sax.EntityResolver2\n * #resolveEntity(String name,String publicId,String baseURI,String systemId)\n * #resolveEntity(publicId, systemId)\n * #getExternalSubset(name, baseURI)\n * @link http://www.saxproject.org/apidoc/org/xml/sax/DTDHandler.html\n * IGNORED method of org.xml.sax.DTDHandler\n * #notationDecl(name, publicId, systemId) {};\n * #unparsedEntityDecl(name, publicId, systemId, notationName) {};\n */\n\"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl\".replace(/\\w+/g,function(key){\n\tDOMHandler.prototype[key] = function(){return null}\n})\n\n/* Private static helpers treated below as private instance methods, so don't need to add these to the public API; we might use a Relator to also get rid of non-standard public properties */\nfunction appendElement (hander,node) {\n if (!hander.currentElement) {\n hander.doc.appendChild(node);\n } else {\n hander.currentElement.appendChild(node);\n }\n}//appendChild and setAttributeNS are preformance key\n\nexports.__DOMHandler = DOMHandler;\nexports.normalizeLineEndings = normalizeLineEndings;\nexports.DOMParser = DOMParser;\n","'use strict';\n\nvar freeze = require('./conventions').freeze;\n\n/**\n * The entities that are predefined in every XML document.\n *\n * @see https://www.w3.org/TR/2006/REC-xml11-20060816/#sec-predefined-ent W3C XML 1.1\n * @see https://www.w3.org/TR/2008/REC-xml-20081126/#sec-predefined-ent W3C XML 1.0\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Predefined_entities_in_XML Wikipedia\n */\nexports.XML_ENTITIES = freeze({\n\tamp: '&',\n\tapos: \"'\",\n\tgt: '>',\n\tlt: '<',\n\tquot: '\"',\n});\n\n/**\n * A map of all entities that are detected in an HTML document.\n * They contain all entries from `XML_ENTITIES`.\n *\n * @see XML_ENTITIES\n * @see DOMParser.parseFromString\n * @see DOMImplementation.prototype.createHTMLDocument\n * @see https://html.spec.whatwg.org/#named-character-references WHATWG HTML(5) Spec\n * @see https://html.spec.whatwg.org/entities.json JSON\n * @see https://www.w3.org/TR/xml-entity-names/ W3C XML Entity Names\n * @see https://www.w3.org/TR/html4/sgml/entities.html W3C HTML4/SGML\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Character_entity_references_in_HTML Wikipedia (HTML)\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Entities_representing_special_characters_in_XHTML Wikpedia (XHTML)\n */\nexports.HTML_ENTITIES = freeze({\n\tAacute: '\\u00C1',\n\taacute: '\\u00E1',\n\tAbreve: '\\u0102',\n\tabreve: '\\u0103',\n\tac: '\\u223E',\n\tacd: '\\u223F',\n\tacE: '\\u223E\\u0333',\n\tAcirc: '\\u00C2',\n\tacirc: '\\u00E2',\n\tacute: '\\u00B4',\n\tAcy: '\\u0410',\n\tacy: '\\u0430',\n\tAElig: '\\u00C6',\n\taelig: '\\u00E6',\n\taf: '\\u2061',\n\tAfr: '\\uD835\\uDD04',\n\tafr: '\\uD835\\uDD1E',\n\tAgrave: '\\u00C0',\n\tagrave: '\\u00E0',\n\talefsym: '\\u2135',\n\taleph: '\\u2135',\n\tAlpha: '\\u0391',\n\talpha: '\\u03B1',\n\tAmacr: '\\u0100',\n\tamacr: '\\u0101',\n\tamalg: '\\u2A3F',\n\tAMP: '\\u0026',\n\tamp: '\\u0026',\n\tAnd: '\\u2A53',\n\tand: '\\u2227',\n\tandand: '\\u2A55',\n\tandd: '\\u2A5C',\n\tandslope: '\\u2A58',\n\tandv: '\\u2A5A',\n\tang: '\\u2220',\n\tange: '\\u29A4',\n\tangle: '\\u2220',\n\tangmsd: '\\u2221',\n\tangmsdaa: '\\u29A8',\n\tangmsdab: '\\u29A9',\n\tangmsdac: '\\u29AA',\n\tangmsdad: '\\u29AB',\n\tangmsdae: '\\u29AC',\n\tangmsdaf: '\\u29AD',\n\tangmsdag: '\\u29AE',\n\tangmsdah: '\\u29AF',\n\tangrt: '\\u221F',\n\tangrtvb: '\\u22BE',\n\tangrtvbd: '\\u299D',\n\tangsph: '\\u2222',\n\tangst: '\\u00C5',\n\tangzarr: '\\u237C',\n\tAogon: '\\u0104',\n\taogon: '\\u0105',\n\tAopf: '\\uD835\\uDD38',\n\taopf: '\\uD835\\uDD52',\n\tap: '\\u2248',\n\tapacir: '\\u2A6F',\n\tapE: '\\u2A70',\n\tape: '\\u224A',\n\tapid: '\\u224B',\n\tapos: '\\u0027',\n\tApplyFunction: '\\u2061',\n\tapprox: '\\u2248',\n\tapproxeq: '\\u224A',\n\tAring: '\\u00C5',\n\taring: '\\u00E5',\n\tAscr: '\\uD835\\uDC9C',\n\tascr: '\\uD835\\uDCB6',\n\tAssign: '\\u2254',\n\tast: '\\u002A',\n\tasymp: '\\u2248',\n\tasympeq: '\\u224D',\n\tAtilde: '\\u00C3',\n\tatilde: '\\u00E3',\n\tAuml: '\\u00C4',\n\tauml: '\\u00E4',\n\tawconint: '\\u2233',\n\tawint: '\\u2A11',\n\tbackcong: '\\u224C',\n\tbackepsilon: '\\u03F6',\n\tbackprime: '\\u2035',\n\tbacksim: '\\u223D',\n\tbacksimeq: '\\u22CD',\n\tBackslash: '\\u2216',\n\tBarv: '\\u2AE7',\n\tbarvee: '\\u22BD',\n\tBarwed: '\\u2306',\n\tbarwed: '\\u2305',\n\tbarwedge: '\\u2305',\n\tbbrk: '\\u23B5',\n\tbbrktbrk: '\\u23B6',\n\tbcong: '\\u224C',\n\tBcy: '\\u0411',\n\tbcy: '\\u0431',\n\tbdquo: '\\u201E',\n\tbecaus: '\\u2235',\n\tBecause: '\\u2235',\n\tbecause: '\\u2235',\n\tbemptyv: '\\u29B0',\n\tbepsi: '\\u03F6',\n\tbernou: '\\u212C',\n\tBernoullis: '\\u212C',\n\tBeta: '\\u0392',\n\tbeta: '\\u03B2',\n\tbeth: '\\u2136',\n\tbetween: '\\u226C',\n\tBfr: '\\uD835\\uDD05',\n\tbfr: '\\uD835\\uDD1F',\n\tbigcap: '\\u22C2',\n\tbigcirc: '\\u25EF',\n\tbigcup: '\\u22C3',\n\tbigodot: '\\u2A00',\n\tbigoplus: '\\u2A01',\n\tbigotimes: '\\u2A02',\n\tbigsqcup: '\\u2A06',\n\tbigstar: '\\u2605',\n\tbigtriangledown: '\\u25BD',\n\tbigtriangleup: '\\u25B3',\n\tbiguplus: '\\u2A04',\n\tbigvee: '\\u22C1',\n\tbigwedge: '\\u22C0',\n\tbkarow: '\\u290D',\n\tblacklozenge: '\\u29EB',\n\tblacksquare: '\\u25AA',\n\tblacktriangle: '\\u25B4',\n\tblacktriangledown: '\\u25BE',\n\tblacktriangleleft: '\\u25C2',\n\tblacktriangleright: '\\u25B8',\n\tblank: '\\u2423',\n\tblk12: '\\u2592',\n\tblk14: '\\u2591',\n\tblk34: '\\u2593',\n\tblock: '\\u2588',\n\tbne: '\\u003D\\u20E5',\n\tbnequiv: '\\u2261\\u20E5',\n\tbNot: '\\u2AED',\n\tbnot: '\\u2310',\n\tBopf: '\\uD835\\uDD39',\n\tbopf: '\\uD835\\uDD53',\n\tbot: '\\u22A5',\n\tbottom: '\\u22A5',\n\tbowtie: '\\u22C8',\n\tboxbox: '\\u29C9',\n\tboxDL: '\\u2557',\n\tboxDl: '\\u2556',\n\tboxdL: '\\u2555',\n\tboxdl: '\\u2510',\n\tboxDR: '\\u2554',\n\tboxDr: '\\u2553',\n\tboxdR: '\\u2552',\n\tboxdr: '\\u250C',\n\tboxH: '\\u2550',\n\tboxh: '\\u2500',\n\tboxHD: '\\u2566',\n\tboxHd: '\\u2564',\n\tboxhD: '\\u2565',\n\tboxhd: '\\u252C',\n\tboxHU: '\\u2569',\n\tboxHu: '\\u2567',\n\tboxhU: '\\u2568',\n\tboxhu: '\\u2534',\n\tboxminus: '\\u229F',\n\tboxplus: '\\u229E',\n\tboxtimes: '\\u22A0',\n\tboxUL: '\\u255D',\n\tboxUl: '\\u255C',\n\tboxuL: '\\u255B',\n\tboxul: '\\u2518',\n\tboxUR: '\\u255A',\n\tboxUr: '\\u2559',\n\tboxuR: '\\u2558',\n\tboxur: '\\u2514',\n\tboxV: '\\u2551',\n\tboxv: '\\u2502',\n\tboxVH: '\\u256C',\n\tboxVh: '\\u256B',\n\tboxvH: '\\u256A',\n\tboxvh: '\\u253C',\n\tboxVL: '\\u2563',\n\tboxVl: '\\u2562',\n\tboxvL: '\\u2561',\n\tboxvl: '\\u2524',\n\tboxVR: '\\u2560',\n\tboxVr: '\\u255F',\n\tboxvR: '\\u255E',\n\tboxvr: '\\u251C',\n\tbprime: '\\u2035',\n\tBreve: '\\u02D8',\n\tbreve: '\\u02D8',\n\tbrvbar: '\\u00A6',\n\tBscr: '\\u212C',\n\tbscr: '\\uD835\\uDCB7',\n\tbsemi: '\\u204F',\n\tbsim: '\\u223D',\n\tbsime: '\\u22CD',\n\tbsol: '\\u005C',\n\tbsolb: '\\u29C5',\n\tbsolhsub: '\\u27C8',\n\tbull: '\\u2022',\n\tbullet: '\\u2022',\n\tbump: '\\u224E',\n\tbumpE: '\\u2AAE',\n\tbumpe: '\\u224F',\n\tBumpeq: '\\u224E',\n\tbumpeq: '\\u224F',\n\tCacute: '\\u0106',\n\tcacute: '\\u0107',\n\tCap: '\\u22D2',\n\tcap: '\\u2229',\n\tcapand: '\\u2A44',\n\tcapbrcup: '\\u2A49',\n\tcapcap: '\\u2A4B',\n\tcapcup: '\\u2A47',\n\tcapdot: '\\u2A40',\n\tCapitalDifferentialD: '\\u2145',\n\tcaps: '\\u2229\\uFE00',\n\tcaret: '\\u2041',\n\tcaron: '\\u02C7',\n\tCayleys: '\\u212D',\n\tccaps: '\\u2A4D',\n\tCcaron: '\\u010C',\n\tccaron: '\\u010D',\n\tCcedil: '\\u00C7',\n\tccedil: '\\u00E7',\n\tCcirc: '\\u0108',\n\tccirc: '\\u0109',\n\tCconint: '\\u2230',\n\tccups: '\\u2A4C',\n\tccupssm: '\\u2A50',\n\tCdot: '\\u010A',\n\tcdot: '\\u010B',\n\tcedil: '\\u00B8',\n\tCedilla: '\\u00B8',\n\tcemptyv: '\\u29B2',\n\tcent: '\\u00A2',\n\tCenterDot: '\\u00B7',\n\tcenterdot: '\\u00B7',\n\tCfr: '\\u212D',\n\tcfr: '\\uD835\\uDD20',\n\tCHcy: '\\u0427',\n\tchcy: '\\u0447',\n\tcheck: '\\u2713',\n\tcheckmark: '\\u2713',\n\tChi: '\\u03A7',\n\tchi: '\\u03C7',\n\tcir: '\\u25CB',\n\tcirc: '\\u02C6',\n\tcirceq: '\\u2257',\n\tcirclearrowleft: '\\u21BA',\n\tcirclearrowright: '\\u21BB',\n\tcircledast: '\\u229B',\n\tcircledcirc: '\\u229A',\n\tcircleddash: '\\u229D',\n\tCircleDot: '\\u2299',\n\tcircledR: '\\u00AE',\n\tcircledS: '\\u24C8',\n\tCircleMinus: '\\u2296',\n\tCirclePlus: '\\u2295',\n\tCircleTimes: '\\u2297',\n\tcirE: '\\u29C3',\n\tcire: '\\u2257',\n\tcirfnint: '\\u2A10',\n\tcirmid: '\\u2AEF',\n\tcirscir: '\\u29C2',\n\tClockwiseContourIntegral: '\\u2232',\n\tCloseCurlyDoubleQuote: '\\u201D',\n\tCloseCurlyQuote: '\\u2019',\n\tclubs: '\\u2663',\n\tclubsuit: '\\u2663',\n\tColon: '\\u2237',\n\tcolon: '\\u003A',\n\tColone: '\\u2A74',\n\tcolone: '\\u2254',\n\tcoloneq: '\\u2254',\n\tcomma: '\\u002C',\n\tcommat: '\\u0040',\n\tcomp: '\\u2201',\n\tcompfn: '\\u2218',\n\tcomplement: '\\u2201',\n\tcomplexes: '\\u2102',\n\tcong: '\\u2245',\n\tcongdot: '\\u2A6D',\n\tCongruent: '\\u2261',\n\tConint: '\\u222F',\n\tconint: '\\u222E',\n\tContourIntegral: '\\u222E',\n\tCopf: '\\u2102',\n\tcopf: '\\uD835\\uDD54',\n\tcoprod: '\\u2210',\n\tCoproduct: '\\u2210',\n\tCOPY: '\\u00A9',\n\tcopy: '\\u00A9',\n\tcopysr: '\\u2117',\n\tCounterClockwiseContourIntegral: '\\u2233',\n\tcrarr: '\\u21B5',\n\tCross: '\\u2A2F',\n\tcross: '\\u2717',\n\tCscr: '\\uD835\\uDC9E',\n\tcscr: '\\uD835\\uDCB8',\n\tcsub: '\\u2ACF',\n\tcsube: '\\u2AD1',\n\tcsup: '\\u2AD0',\n\tcsupe: '\\u2AD2',\n\tctdot: '\\u22EF',\n\tcudarrl: '\\u2938',\n\tcudarrr: '\\u2935',\n\tcuepr: '\\u22DE',\n\tcuesc: '\\u22DF',\n\tcularr: '\\u21B6',\n\tcularrp: '\\u293D',\n\tCup: '\\u22D3',\n\tcup: '\\u222A',\n\tcupbrcap: '\\u2A48',\n\tCupCap: '\\u224D',\n\tcupcap: '\\u2A46',\n\tcupcup: '\\u2A4A',\n\tcupdot: '\\u228D',\n\tcupor: '\\u2A45',\n\tcups: '\\u222A\\uFE00',\n\tcurarr: '\\u21B7',\n\tcurarrm: '\\u293C',\n\tcurlyeqprec: '\\u22DE',\n\tcurlyeqsucc: '\\u22DF',\n\tcurlyvee: '\\u22CE',\n\tcurlywedge: '\\u22CF',\n\tcurren: '\\u00A4',\n\tcurvearrowleft: '\\u21B6',\n\tcurvearrowright: '\\u21B7',\n\tcuvee: '\\u22CE',\n\tcuwed: '\\u22CF',\n\tcwconint: '\\u2232',\n\tcwint: '\\u2231',\n\tcylcty: '\\u232D',\n\tDagger: '\\u2021',\n\tdagger: '\\u2020',\n\tdaleth: '\\u2138',\n\tDarr: '\\u21A1',\n\tdArr: '\\u21D3',\n\tdarr: '\\u2193',\n\tdash: '\\u2010',\n\tDashv: '\\u2AE4',\n\tdashv: '\\u22A3',\n\tdbkarow: '\\u290F',\n\tdblac: '\\u02DD',\n\tDcaron: '\\u010E',\n\tdcaron: '\\u010F',\n\tDcy: '\\u0414',\n\tdcy: '\\u0434',\n\tDD: '\\u2145',\n\tdd: '\\u2146',\n\tddagger: '\\u2021',\n\tddarr: '\\u21CA',\n\tDDotrahd: '\\u2911',\n\tddotseq: '\\u2A77',\n\tdeg: '\\u00B0',\n\tDel: '\\u2207',\n\tDelta: '\\u0394',\n\tdelta: '\\u03B4',\n\tdemptyv: '\\u29B1',\n\tdfisht: '\\u297F',\n\tDfr: '\\uD835\\uDD07',\n\tdfr: '\\uD835\\uDD21',\n\tdHar: '\\u2965',\n\tdharl: '\\u21C3',\n\tdharr: '\\u21C2',\n\tDiacriticalAcute: '\\u00B4',\n\tDiacriticalDot: '\\u02D9',\n\tDiacriticalDoubleAcute: '\\u02DD',\n\tDiacriticalGrave: '\\u0060',\n\tDiacriticalTilde: '\\u02DC',\n\tdiam: '\\u22C4',\n\tDiamond: '\\u22C4',\n\tdiamond: '\\u22C4',\n\tdiamondsuit: '\\u2666',\n\tdiams: '\\u2666',\n\tdie: '\\u00A8',\n\tDifferentialD: '\\u2146',\n\tdigamma: '\\u03DD',\n\tdisin: '\\u22F2',\n\tdiv: '\\u00F7',\n\tdivide: '\\u00F7',\n\tdivideontimes: '\\u22C7',\n\tdivonx: '\\u22C7',\n\tDJcy: '\\u0402',\n\tdjcy: '\\u0452',\n\tdlcorn: '\\u231E',\n\tdlcrop: '\\u230D',\n\tdollar: '\\u0024',\n\tDopf: '\\uD835\\uDD3B',\n\tdopf: '\\uD835\\uDD55',\n\tDot: '\\u00A8',\n\tdot: '\\u02D9',\n\tDotDot: '\\u20DC',\n\tdoteq: '\\u2250',\n\tdoteqdot: '\\u2251',\n\tDotEqual: '\\u2250',\n\tdotminus: '\\u2238',\n\tdotplus: '\\u2214',\n\tdotsquare: '\\u22A1',\n\tdoublebarwedge: '\\u2306',\n\tDoubleContourIntegral: '\\u222F',\n\tDoubleDot: '\\u00A8',\n\tDoubleDownArrow: '\\u21D3',\n\tDoubleLeftArrow: '\\u21D0',\n\tDoubleLeftRightArrow: '\\u21D4',\n\tDoubleLeftTee: '\\u2AE4',\n\tDoubleLongLeftArrow: '\\u27F8',\n\tDoubleLongLeftRightArrow: '\\u27FA',\n\tDoubleLongRightArrow: '\\u27F9',\n\tDoubleRightArrow: '\\u21D2',\n\tDoubleRightTee: '\\u22A8',\n\tDoubleUpArrow: '\\u21D1',\n\tDoubleUpDownArrow: '\\u21D5',\n\tDoubleVerticalBar: '\\u2225',\n\tDownArrow: '\\u2193',\n\tDownarrow: '\\u21D3',\n\tdownarrow: '\\u2193',\n\tDownArrowBar: '\\u2913',\n\tDownArrowUpArrow: '\\u21F5',\n\tDownBreve: '\\u0311',\n\tdowndownarrows: '\\u21CA',\n\tdownharpoonleft: '\\u21C3',\n\tdownharpoonright: '\\u21C2',\n\tDownLeftRightVector: '\\u2950',\n\tDownLeftTeeVector: '\\u295E',\n\tDownLeftVector: '\\u21BD',\n\tDownLeftVectorBar: '\\u2956',\n\tDownRightTeeVector: '\\u295F',\n\tDownRightVector: '\\u21C1',\n\tDownRightVectorBar: '\\u2957',\n\tDownTee: '\\u22A4',\n\tDownTeeArrow: '\\u21A7',\n\tdrbkarow: '\\u2910',\n\tdrcorn: '\\u231F',\n\tdrcrop: '\\u230C',\n\tDscr: '\\uD835\\uDC9F',\n\tdscr: '\\uD835\\uDCB9',\n\tDScy: '\\u0405',\n\tdscy: '\\u0455',\n\tdsol: '\\u29F6',\n\tDstrok: '\\u0110',\n\tdstrok: '\\u0111',\n\tdtdot: '\\u22F1',\n\tdtri: '\\u25BF',\n\tdtrif: '\\u25BE',\n\tduarr: '\\u21F5',\n\tduhar: '\\u296F',\n\tdwangle: '\\u29A6',\n\tDZcy: '\\u040F',\n\tdzcy: '\\u045F',\n\tdzigrarr: '\\u27FF',\n\tEacute: '\\u00C9',\n\teacute: '\\u00E9',\n\teaster: '\\u2A6E',\n\tEcaron: '\\u011A',\n\tecaron: '\\u011B',\n\tecir: '\\u2256',\n\tEcirc: '\\u00CA',\n\tecirc: '\\u00EA',\n\tecolon: '\\u2255',\n\tEcy: '\\u042D',\n\tecy: '\\u044D',\n\teDDot: '\\u2A77',\n\tEdot: '\\u0116',\n\teDot: '\\u2251',\n\tedot: '\\u0117',\n\tee: '\\u2147',\n\tefDot: '\\u2252',\n\tEfr: '\\uD835\\uDD08',\n\tefr: '\\uD835\\uDD22',\n\teg: '\\u2A9A',\n\tEgrave: '\\u00C8',\n\tegrave: '\\u00E8',\n\tegs: '\\u2A96',\n\tegsdot: '\\u2A98',\n\tel: '\\u2A99',\n\tElement: '\\u2208',\n\telinters: '\\u23E7',\n\tell: '\\u2113',\n\tels: '\\u2A95',\n\telsdot: '\\u2A97',\n\tEmacr: '\\u0112',\n\temacr: '\\u0113',\n\tempty: '\\u2205',\n\temptyset: '\\u2205',\n\tEmptySmallSquare: '\\u25FB',\n\temptyv: '\\u2205',\n\tEmptyVerySmallSquare: '\\u25AB',\n\temsp: '\\u2003',\n\temsp13: '\\u2004',\n\temsp14: '\\u2005',\n\tENG: '\\u014A',\n\teng: '\\u014B',\n\tensp: '\\u2002',\n\tEogon: '\\u0118',\n\teogon: '\\u0119',\n\tEopf: '\\uD835\\uDD3C',\n\teopf: '\\uD835\\uDD56',\n\tepar: '\\u22D5',\n\teparsl: '\\u29E3',\n\teplus: '\\u2A71',\n\tepsi: '\\u03B5',\n\tEpsilon: '\\u0395',\n\tepsilon: '\\u03B5',\n\tepsiv: '\\u03F5',\n\teqcirc: '\\u2256',\n\teqcolon: '\\u2255',\n\teqsim: '\\u2242',\n\teqslantgtr: '\\u2A96',\n\teqslantless: '\\u2A95',\n\tEqual: '\\u2A75',\n\tequals: '\\u003D',\n\tEqualTilde: '\\u2242',\n\tequest: '\\u225F',\n\tEquilibrium: '\\u21CC',\n\tequiv: '\\u2261',\n\tequivDD: '\\u2A78',\n\teqvparsl: '\\u29E5',\n\terarr: '\\u2971',\n\terDot: '\\u2253',\n\tEscr: '\\u2130',\n\tescr: '\\u212F',\n\tesdot: '\\u2250',\n\tEsim: '\\u2A73',\n\tesim: '\\u2242',\n\tEta: '\\u0397',\n\teta: '\\u03B7',\n\tETH: '\\u00D0',\n\teth: '\\u00F0',\n\tEuml: '\\u00CB',\n\teuml: '\\u00EB',\n\teuro: '\\u20AC',\n\texcl: '\\u0021',\n\texist: '\\u2203',\n\tExists: '\\u2203',\n\texpectation: '\\u2130',\n\tExponentialE: '\\u2147',\n\texponentiale: '\\u2147',\n\tfallingdotseq: '\\u2252',\n\tFcy: '\\u0424',\n\tfcy: '\\u0444',\n\tfemale: '\\u2640',\n\tffilig: '\\uFB03',\n\tfflig: '\\uFB00',\n\tffllig: '\\uFB04',\n\tFfr: '\\uD835\\uDD09',\n\tffr: '\\uD835\\uDD23',\n\tfilig: '\\uFB01',\n\tFilledSmallSquare: '\\u25FC',\n\tFilledVerySmallSquare: '\\u25AA',\n\tfjlig: '\\u0066\\u006A',\n\tflat: '\\u266D',\n\tfllig: '\\uFB02',\n\tfltns: '\\u25B1',\n\tfnof: '\\u0192',\n\tFopf: '\\uD835\\uDD3D',\n\tfopf: '\\uD835\\uDD57',\n\tForAll: '\\u2200',\n\tforall: '\\u2200',\n\tfork: '\\u22D4',\n\tforkv: '\\u2AD9',\n\tFouriertrf: '\\u2131',\n\tfpartint: '\\u2A0D',\n\tfrac12: '\\u00BD',\n\tfrac13: '\\u2153',\n\tfrac14: '\\u00BC',\n\tfrac15: '\\u2155',\n\tfrac16: '\\u2159',\n\tfrac18: '\\u215B',\n\tfrac23: '\\u2154',\n\tfrac25: '\\u2156',\n\tfrac34: '\\u00BE',\n\tfrac35: '\\u2157',\n\tfrac38: '\\u215C',\n\tfrac45: '\\u2158',\n\tfrac56: '\\u215A',\n\tfrac58: '\\u215D',\n\tfrac78: '\\u215E',\n\tfrasl: '\\u2044',\n\tfrown: '\\u2322',\n\tFscr: '\\u2131',\n\tfscr: '\\uD835\\uDCBB',\n\tgacute: '\\u01F5',\n\tGamma: '\\u0393',\n\tgamma: '\\u03B3',\n\tGammad: '\\u03DC',\n\tgammad: '\\u03DD',\n\tgap: '\\u2A86',\n\tGbreve: '\\u011E',\n\tgbreve: '\\u011F',\n\tGcedil: '\\u0122',\n\tGcirc: '\\u011C',\n\tgcirc: '\\u011D',\n\tGcy: '\\u0413',\n\tgcy: '\\u0433',\n\tGdot: '\\u0120',\n\tgdot: '\\u0121',\n\tgE: '\\u2267',\n\tge: '\\u2265',\n\tgEl: '\\u2A8C',\n\tgel: '\\u22DB',\n\tgeq: '\\u2265',\n\tgeqq: '\\u2267',\n\tgeqslant: '\\u2A7E',\n\tges: '\\u2A7E',\n\tgescc: '\\u2AA9',\n\tgesdot: '\\u2A80',\n\tgesdoto: '\\u2A82',\n\tgesdotol: '\\u2A84',\n\tgesl: '\\u22DB\\uFE00',\n\tgesles: '\\u2A94',\n\tGfr: '\\uD835\\uDD0A',\n\tgfr: '\\uD835\\uDD24',\n\tGg: '\\u22D9',\n\tgg: '\\u226B',\n\tggg: '\\u22D9',\n\tgimel: '\\u2137',\n\tGJcy: '\\u0403',\n\tgjcy: '\\u0453',\n\tgl: '\\u2277',\n\tgla: '\\u2AA5',\n\tglE: '\\u2A92',\n\tglj: '\\u2AA4',\n\tgnap: '\\u2A8A',\n\tgnapprox: '\\u2A8A',\n\tgnE: '\\u2269',\n\tgne: '\\u2A88',\n\tgneq: '\\u2A88',\n\tgneqq: '\\u2269',\n\tgnsim: '\\u22E7',\n\tGopf: '\\uD835\\uDD3E',\n\tgopf: '\\uD835\\uDD58',\n\tgrave: '\\u0060',\n\tGreaterEqual: '\\u2265',\n\tGreaterEqualLess: '\\u22DB',\n\tGreaterFullEqual: '\\u2267',\n\tGreaterGreater: '\\u2AA2',\n\tGreaterLess: '\\u2277',\n\tGreaterSlantEqual: '\\u2A7E',\n\tGreaterTilde: '\\u2273',\n\tGscr: '\\uD835\\uDCA2',\n\tgscr: '\\u210A',\n\tgsim: '\\u2273',\n\tgsime: '\\u2A8E',\n\tgsiml: '\\u2A90',\n\tGt: '\\u226B',\n\tGT: '\\u003E',\n\tgt: '\\u003E',\n\tgtcc: '\\u2AA7',\n\tgtcir: '\\u2A7A',\n\tgtdot: '\\u22D7',\n\tgtlPar: '\\u2995',\n\tgtquest: '\\u2A7C',\n\tgtrapprox: '\\u2A86',\n\tgtrarr: '\\u2978',\n\tgtrdot: '\\u22D7',\n\tgtreqless: '\\u22DB',\n\tgtreqqless: '\\u2A8C',\n\tgtrless: '\\u2277',\n\tgtrsim: '\\u2273',\n\tgvertneqq: '\\u2269\\uFE00',\n\tgvnE: '\\u2269\\uFE00',\n\tHacek: '\\u02C7',\n\thairsp: '\\u200A',\n\thalf: '\\u00BD',\n\thamilt: '\\u210B',\n\tHARDcy: '\\u042A',\n\thardcy: '\\u044A',\n\thArr: '\\u21D4',\n\tharr: '\\u2194',\n\tharrcir: '\\u2948',\n\tharrw: '\\u21AD',\n\tHat: '\\u005E',\n\thbar: '\\u210F',\n\tHcirc: '\\u0124',\n\thcirc: '\\u0125',\n\thearts: '\\u2665',\n\theartsuit: '\\u2665',\n\thellip: '\\u2026',\n\thercon: '\\u22B9',\n\tHfr: '\\u210C',\n\thfr: '\\uD835\\uDD25',\n\tHilbertSpace: '\\u210B',\n\thksearow: '\\u2925',\n\thkswarow: '\\u2926',\n\thoarr: '\\u21FF',\n\thomtht: '\\u223B',\n\thookleftarrow: '\\u21A9',\n\thookrightarrow: '\\u21AA',\n\tHopf: '\\u210D',\n\thopf: '\\uD835\\uDD59',\n\thorbar: '\\u2015',\n\tHorizontalLine: '\\u2500',\n\tHscr: '\\u210B',\n\thscr: '\\uD835\\uDCBD',\n\thslash: '\\u210F',\n\tHstrok: '\\u0126',\n\thstrok: '\\u0127',\n\tHumpDownHump: '\\u224E',\n\tHumpEqual: '\\u224F',\n\thybull: '\\u2043',\n\thyphen: '\\u2010',\n\tIacute: '\\u00CD',\n\tiacute: '\\u00ED',\n\tic: '\\u2063',\n\tIcirc: '\\u00CE',\n\ticirc: '\\u00EE',\n\tIcy: '\\u0418',\n\ticy: '\\u0438',\n\tIdot: '\\u0130',\n\tIEcy: '\\u0415',\n\tiecy: '\\u0435',\n\tiexcl: '\\u00A1',\n\tiff: '\\u21D4',\n\tIfr: '\\u2111',\n\tifr: '\\uD835\\uDD26',\n\tIgrave: '\\u00CC',\n\tigrave: '\\u00EC',\n\tii: '\\u2148',\n\tiiiint: '\\u2A0C',\n\tiiint: '\\u222D',\n\tiinfin: '\\u29DC',\n\tiiota: '\\u2129',\n\tIJlig: '\\u0132',\n\tijlig: '\\u0133',\n\tIm: '\\u2111',\n\tImacr: '\\u012A',\n\timacr: '\\u012B',\n\timage: '\\u2111',\n\tImaginaryI: '\\u2148',\n\timagline: '\\u2110',\n\timagpart: '\\u2111',\n\timath: '\\u0131',\n\timof: '\\u22B7',\n\timped: '\\u01B5',\n\tImplies: '\\u21D2',\n\tin: '\\u2208',\n\tincare: '\\u2105',\n\tinfin: '\\u221E',\n\tinfintie: '\\u29DD',\n\tinodot: '\\u0131',\n\tInt: '\\u222C',\n\tint: '\\u222B',\n\tintcal: '\\u22BA',\n\tintegers: '\\u2124',\n\tIntegral: '\\u222B',\n\tintercal: '\\u22BA',\n\tIntersection: '\\u22C2',\n\tintlarhk: '\\u2A17',\n\tintprod: '\\u2A3C',\n\tInvisibleComma: '\\u2063',\n\tInvisibleTimes: '\\u2062',\n\tIOcy: '\\u0401',\n\tiocy: '\\u0451',\n\tIogon: '\\u012E',\n\tiogon: '\\u012F',\n\tIopf: '\\uD835\\uDD40',\n\tiopf: '\\uD835\\uDD5A',\n\tIota: '\\u0399',\n\tiota: '\\u03B9',\n\tiprod: '\\u2A3C',\n\tiquest: '\\u00BF',\n\tIscr: '\\u2110',\n\tiscr: '\\uD835\\uDCBE',\n\tisin: '\\u2208',\n\tisindot: '\\u22F5',\n\tisinE: '\\u22F9',\n\tisins: '\\u22F4',\n\tisinsv: '\\u22F3',\n\tisinv: '\\u2208',\n\tit: '\\u2062',\n\tItilde: '\\u0128',\n\titilde: '\\u0129',\n\tIukcy: '\\u0406',\n\tiukcy: '\\u0456',\n\tIuml: '\\u00CF',\n\tiuml: '\\u00EF',\n\tJcirc: '\\u0134',\n\tjcirc: '\\u0135',\n\tJcy: '\\u0419',\n\tjcy: '\\u0439',\n\tJfr: '\\uD835\\uDD0D',\n\tjfr: '\\uD835\\uDD27',\n\tjmath: '\\u0237',\n\tJopf: '\\uD835\\uDD41',\n\tjopf: '\\uD835\\uDD5B',\n\tJscr: '\\uD835\\uDCA5',\n\tjscr: '\\uD835\\uDCBF',\n\tJsercy: '\\u0408',\n\tjsercy: '\\u0458',\n\tJukcy: '\\u0404',\n\tjukcy: '\\u0454',\n\tKappa: '\\u039A',\n\tkappa: '\\u03BA',\n\tkappav: '\\u03F0',\n\tKcedil: '\\u0136',\n\tkcedil: '\\u0137',\n\tKcy: '\\u041A',\n\tkcy: '\\u043A',\n\tKfr: '\\uD835\\uDD0E',\n\tkfr: '\\uD835\\uDD28',\n\tkgreen: '\\u0138',\n\tKHcy: '\\u0425',\n\tkhcy: '\\u0445',\n\tKJcy: '\\u040C',\n\tkjcy: '\\u045C',\n\tKopf: '\\uD835\\uDD42',\n\tkopf: '\\uD835\\uDD5C',\n\tKscr: '\\uD835\\uDCA6',\n\tkscr: '\\uD835\\uDCC0',\n\tlAarr: '\\u21DA',\n\tLacute: '\\u0139',\n\tlacute: '\\u013A',\n\tlaemptyv: '\\u29B4',\n\tlagran: '\\u2112',\n\tLambda: '\\u039B',\n\tlambda: '\\u03BB',\n\tLang: '\\u27EA',\n\tlang: '\\u27E8',\n\tlangd: '\\u2991',\n\tlangle: '\\u27E8',\n\tlap: '\\u2A85',\n\tLaplacetrf: '\\u2112',\n\tlaquo: '\\u00AB',\n\tLarr: '\\u219E',\n\tlArr: '\\u21D0',\n\tlarr: '\\u2190',\n\tlarrb: '\\u21E4',\n\tlarrbfs: '\\u291F',\n\tlarrfs: '\\u291D',\n\tlarrhk: '\\u21A9',\n\tlarrlp: '\\u21AB',\n\tlarrpl: '\\u2939',\n\tlarrsim: '\\u2973',\n\tlarrtl: '\\u21A2',\n\tlat: '\\u2AAB',\n\tlAtail: '\\u291B',\n\tlatail: '\\u2919',\n\tlate: '\\u2AAD',\n\tlates: '\\u2AAD\\uFE00',\n\tlBarr: '\\u290E',\n\tlbarr: '\\u290C',\n\tlbbrk: '\\u2772',\n\tlbrace: '\\u007B',\n\tlbrack: '\\u005B',\n\tlbrke: '\\u298B',\n\tlbrksld: '\\u298F',\n\tlbrkslu: '\\u298D',\n\tLcaron: '\\u013D',\n\tlcaron: '\\u013E',\n\tLcedil: '\\u013B',\n\tlcedil: '\\u013C',\n\tlceil: '\\u2308',\n\tlcub: '\\u007B',\n\tLcy: '\\u041B',\n\tlcy: '\\u043B',\n\tldca: '\\u2936',\n\tldquo: '\\u201C',\n\tldquor: '\\u201E',\n\tldrdhar: '\\u2967',\n\tldrushar: '\\u294B',\n\tldsh: '\\u21B2',\n\tlE: '\\u2266',\n\tle: '\\u2264',\n\tLeftAngleBracket: '\\u27E8',\n\tLeftArrow: '\\u2190',\n\tLeftarrow: '\\u21D0',\n\tleftarrow: '\\u2190',\n\tLeftArrowBar: '\\u21E4',\n\tLeftArrowRightArrow: '\\u21C6',\n\tleftarrowtail: '\\u21A2',\n\tLeftCeiling: '\\u2308',\n\tLeftDoubleBracket: '\\u27E6',\n\tLeftDownTeeVector: '\\u2961',\n\tLeftDownVector: '\\u21C3',\n\tLeftDownVectorBar: '\\u2959',\n\tLeftFloor: '\\u230A',\n\tleftharpoondown: '\\u21BD',\n\tleftharpoonup: '\\u21BC',\n\tleftleftarrows: '\\u21C7',\n\tLeftRightArrow: '\\u2194',\n\tLeftrightarrow: '\\u21D4',\n\tleftrightarrow: '\\u2194',\n\tleftrightarrows: '\\u21C6',\n\tleftrightharpoons: '\\u21CB',\n\tleftrightsquigarrow: '\\u21AD',\n\tLeftRightVector: '\\u294E',\n\tLeftTee: '\\u22A3',\n\tLeftTeeArrow: '\\u21A4',\n\tLeftTeeVector: '\\u295A',\n\tleftthreetimes: '\\u22CB',\n\tLeftTriangle: '\\u22B2',\n\tLeftTriangleBar: '\\u29CF',\n\tLeftTriangleEqual: '\\u22B4',\n\tLeftUpDownVector: '\\u2951',\n\tLeftUpTeeVector: '\\u2960',\n\tLeftUpVector: '\\u21BF',\n\tLeftUpVectorBar: '\\u2958',\n\tLeftVector: '\\u21BC',\n\tLeftVectorBar: '\\u2952',\n\tlEg: '\\u2A8B',\n\tleg: '\\u22DA',\n\tleq: '\\u2264',\n\tleqq: '\\u2266',\n\tleqslant: '\\u2A7D',\n\tles: '\\u2A7D',\n\tlescc: '\\u2AA8',\n\tlesdot: '\\u2A7F',\n\tlesdoto: '\\u2A81',\n\tlesdotor: '\\u2A83',\n\tlesg: '\\u22DA\\uFE00',\n\tlesges: '\\u2A93',\n\tlessapprox: '\\u2A85',\n\tlessdot: '\\u22D6',\n\tlesseqgtr: '\\u22DA',\n\tlesseqqgtr: '\\u2A8B',\n\tLessEqualGreater: '\\u22DA',\n\tLessFullEqual: '\\u2266',\n\tLessGreater: '\\u2276',\n\tlessgtr: '\\u2276',\n\tLessLess: '\\u2AA1',\n\tlesssim: '\\u2272',\n\tLessSlantEqual: '\\u2A7D',\n\tLessTilde: '\\u2272',\n\tlfisht: '\\u297C',\n\tlfloor: '\\u230A',\n\tLfr: '\\uD835\\uDD0F',\n\tlfr: '\\uD835\\uDD29',\n\tlg: '\\u2276',\n\tlgE: '\\u2A91',\n\tlHar: '\\u2962',\n\tlhard: '\\u21BD',\n\tlharu: '\\u21BC',\n\tlharul: '\\u296A',\n\tlhblk: '\\u2584',\n\tLJcy: '\\u0409',\n\tljcy: '\\u0459',\n\tLl: '\\u22D8',\n\tll: '\\u226A',\n\tllarr: '\\u21C7',\n\tllcorner: '\\u231E',\n\tLleftarrow: '\\u21DA',\n\tllhard: '\\u296B',\n\tlltri: '\\u25FA',\n\tLmidot: '\\u013F',\n\tlmidot: '\\u0140',\n\tlmoust: '\\u23B0',\n\tlmoustache: '\\u23B0',\n\tlnap: '\\u2A89',\n\tlnapprox: '\\u2A89',\n\tlnE: '\\u2268',\n\tlne: '\\u2A87',\n\tlneq: '\\u2A87',\n\tlneqq: '\\u2268',\n\tlnsim: '\\u22E6',\n\tloang: '\\u27EC',\n\tloarr: '\\u21FD',\n\tlobrk: '\\u27E6',\n\tLongLeftArrow: '\\u27F5',\n\tLongleftarrow: '\\u27F8',\n\tlongleftarrow: '\\u27F5',\n\tLongLeftRightArrow: '\\u27F7',\n\tLongleftrightarrow: '\\u27FA',\n\tlongleftrightarrow: '\\u27F7',\n\tlongmapsto: '\\u27FC',\n\tLongRightArrow: '\\u27F6',\n\tLongrightarrow: '\\u27F9',\n\tlongrightarrow: '\\u27F6',\n\tlooparrowleft: '\\u21AB',\n\tlooparrowright: '\\u21AC',\n\tlopar: '\\u2985',\n\tLopf: '\\uD835\\uDD43',\n\tlopf: '\\uD835\\uDD5D',\n\tloplus: '\\u2A2D',\n\tlotimes: '\\u2A34',\n\tlowast: '\\u2217',\n\tlowbar: '\\u005F',\n\tLowerLeftArrow: '\\u2199',\n\tLowerRightArrow: '\\u2198',\n\tloz: '\\u25CA',\n\tlozenge: '\\u25CA',\n\tlozf: '\\u29EB',\n\tlpar: '\\u0028',\n\tlparlt: '\\u2993',\n\tlrarr: '\\u21C6',\n\tlrcorner: '\\u231F',\n\tlrhar: '\\u21CB',\n\tlrhard: '\\u296D',\n\tlrm: '\\u200E',\n\tlrtri: '\\u22BF',\n\tlsaquo: '\\u2039',\n\tLscr: '\\u2112',\n\tlscr: '\\uD835\\uDCC1',\n\tLsh: '\\u21B0',\n\tlsh: '\\u21B0',\n\tlsim: '\\u2272',\n\tlsime: '\\u2A8D',\n\tlsimg: '\\u2A8F',\n\tlsqb: '\\u005B',\n\tlsquo: '\\u2018',\n\tlsquor: '\\u201A',\n\tLstrok: '\\u0141',\n\tlstrok: '\\u0142',\n\tLt: '\\u226A',\n\tLT: '\\u003C',\n\tlt: '\\u003C',\n\tltcc: '\\u2AA6',\n\tltcir: '\\u2A79',\n\tltdot: '\\u22D6',\n\tlthree: '\\u22CB',\n\tltimes: '\\u22C9',\n\tltlarr: '\\u2976',\n\tltquest: '\\u2A7B',\n\tltri: '\\u25C3',\n\tltrie: '\\u22B4',\n\tltrif: '\\u25C2',\n\tltrPar: '\\u2996',\n\tlurdshar: '\\u294A',\n\tluruhar: '\\u2966',\n\tlvertneqq: '\\u2268\\uFE00',\n\tlvnE: '\\u2268\\uFE00',\n\tmacr: '\\u00AF',\n\tmale: '\\u2642',\n\tmalt: '\\u2720',\n\tmaltese: '\\u2720',\n\tMap: '\\u2905',\n\tmap: '\\u21A6',\n\tmapsto: '\\u21A6',\n\tmapstodown: '\\u21A7',\n\tmapstoleft: '\\u21A4',\n\tmapstoup: '\\u21A5',\n\tmarker: '\\u25AE',\n\tmcomma: '\\u2A29',\n\tMcy: '\\u041C',\n\tmcy: '\\u043C',\n\tmdash: '\\u2014',\n\tmDDot: '\\u223A',\n\tmeasuredangle: '\\u2221',\n\tMediumSpace: '\\u205F',\n\tMellintrf: '\\u2133',\n\tMfr: '\\uD835\\uDD10',\n\tmfr: '\\uD835\\uDD2A',\n\tmho: '\\u2127',\n\tmicro: '\\u00B5',\n\tmid: '\\u2223',\n\tmidast: '\\u002A',\n\tmidcir: '\\u2AF0',\n\tmiddot: '\\u00B7',\n\tminus: '\\u2212',\n\tminusb: '\\u229F',\n\tminusd: '\\u2238',\n\tminusdu: '\\u2A2A',\n\tMinusPlus: '\\u2213',\n\tmlcp: '\\u2ADB',\n\tmldr: '\\u2026',\n\tmnplus: '\\u2213',\n\tmodels: '\\u22A7',\n\tMopf: '\\uD835\\uDD44',\n\tmopf: '\\uD835\\uDD5E',\n\tmp: '\\u2213',\n\tMscr: '\\u2133',\n\tmscr: '\\uD835\\uDCC2',\n\tmstpos: '\\u223E',\n\tMu: '\\u039C',\n\tmu: '\\u03BC',\n\tmultimap: '\\u22B8',\n\tmumap: '\\u22B8',\n\tnabla: '\\u2207',\n\tNacute: '\\u0143',\n\tnacute: '\\u0144',\n\tnang: '\\u2220\\u20D2',\n\tnap: '\\u2249',\n\tnapE: '\\u2A70\\u0338',\n\tnapid: '\\u224B\\u0338',\n\tnapos: '\\u0149',\n\tnapprox: '\\u2249',\n\tnatur: '\\u266E',\n\tnatural: '\\u266E',\n\tnaturals: '\\u2115',\n\tnbsp: '\\u00A0',\n\tnbump: '\\u224E\\u0338',\n\tnbumpe: '\\u224F\\u0338',\n\tncap: '\\u2A43',\n\tNcaron: '\\u0147',\n\tncaron: '\\u0148',\n\tNcedil: '\\u0145',\n\tncedil: '\\u0146',\n\tncong: '\\u2247',\n\tncongdot: '\\u2A6D\\u0338',\n\tncup: '\\u2A42',\n\tNcy: '\\u041D',\n\tncy: '\\u043D',\n\tndash: '\\u2013',\n\tne: '\\u2260',\n\tnearhk: '\\u2924',\n\tneArr: '\\u21D7',\n\tnearr: '\\u2197',\n\tnearrow: '\\u2197',\n\tnedot: '\\u2250\\u0338',\n\tNegativeMediumSpace: '\\u200B',\n\tNegativeThickSpace: '\\u200B',\n\tNegativeThinSpace: '\\u200B',\n\tNegativeVeryThinSpace: '\\u200B',\n\tnequiv: '\\u2262',\n\tnesear: '\\u2928',\n\tnesim: '\\u2242\\u0338',\n\tNestedGreaterGreater: '\\u226B',\n\tNestedLessLess: '\\u226A',\n\tNewLine: '\\u000A',\n\tnexist: '\\u2204',\n\tnexists: '\\u2204',\n\tNfr: '\\uD835\\uDD11',\n\tnfr: '\\uD835\\uDD2B',\n\tngE: '\\u2267\\u0338',\n\tnge: '\\u2271',\n\tngeq: '\\u2271',\n\tngeqq: '\\u2267\\u0338',\n\tngeqslant: '\\u2A7E\\u0338',\n\tnges: '\\u2A7E\\u0338',\n\tnGg: '\\u22D9\\u0338',\n\tngsim: '\\u2275',\n\tnGt: '\\u226B\\u20D2',\n\tngt: '\\u226F',\n\tngtr: '\\u226F',\n\tnGtv: '\\u226B\\u0338',\n\tnhArr: '\\u21CE',\n\tnharr: '\\u21AE',\n\tnhpar: '\\u2AF2',\n\tni: '\\u220B',\n\tnis: '\\u22FC',\n\tnisd: '\\u22FA',\n\tniv: '\\u220B',\n\tNJcy: '\\u040A',\n\tnjcy: '\\u045A',\n\tnlArr: '\\u21CD',\n\tnlarr: '\\u219A',\n\tnldr: '\\u2025',\n\tnlE: '\\u2266\\u0338',\n\tnle: '\\u2270',\n\tnLeftarrow: '\\u21CD',\n\tnleftarrow: '\\u219A',\n\tnLeftrightarrow: '\\u21CE',\n\tnleftrightarrow: '\\u21AE',\n\tnleq: '\\u2270',\n\tnleqq: '\\u2266\\u0338',\n\tnleqslant: '\\u2A7D\\u0338',\n\tnles: '\\u2A7D\\u0338',\n\tnless: '\\u226E',\n\tnLl: '\\u22D8\\u0338',\n\tnlsim: '\\u2274',\n\tnLt: '\\u226A\\u20D2',\n\tnlt: '\\u226E',\n\tnltri: '\\u22EA',\n\tnltrie: '\\u22EC',\n\tnLtv: '\\u226A\\u0338',\n\tnmid: '\\u2224',\n\tNoBreak: '\\u2060',\n\tNonBreakingSpace: '\\u00A0',\n\tNopf: '\\u2115',\n\tnopf: '\\uD835\\uDD5F',\n\tNot: '\\u2AEC',\n\tnot: '\\u00AC',\n\tNotCongruent: '\\u2262',\n\tNotCupCap: '\\u226D',\n\tNotDoubleVerticalBar: '\\u2226',\n\tNotElement: '\\u2209',\n\tNotEqual: '\\u2260',\n\tNotEqualTilde: '\\u2242\\u0338',\n\tNotExists: '\\u2204',\n\tNotGreater: '\\u226F',\n\tNotGreaterEqual: '\\u2271',\n\tNotGreaterFullEqual: '\\u2267\\u0338',\n\tNotGreaterGreater: '\\u226B\\u0338',\n\tNotGreaterLess: '\\u2279',\n\tNotGreaterSlantEqual: '\\u2A7E\\u0338',\n\tNotGreaterTilde: '\\u2275',\n\tNotHumpDownHump: '\\u224E\\u0338',\n\tNotHumpEqual: '\\u224F\\u0338',\n\tnotin: '\\u2209',\n\tnotindot: '\\u22F5\\u0338',\n\tnotinE: '\\u22F9\\u0338',\n\tnotinva: '\\u2209',\n\tnotinvb: '\\u22F7',\n\tnotinvc: '\\u22F6',\n\tNotLeftTriangle: '\\u22EA',\n\tNotLeftTriangleBar: '\\u29CF\\u0338',\n\tNotLeftTriangleEqual: '\\u22EC',\n\tNotLess: '\\u226E',\n\tNotLessEqual: '\\u2270',\n\tNotLessGreater: '\\u2278',\n\tNotLessLess: '\\u226A\\u0338',\n\tNotLessSlantEqual: '\\u2A7D\\u0338',\n\tNotLessTilde: '\\u2274',\n\tNotNestedGreaterGreater: '\\u2AA2\\u0338',\n\tNotNestedLessLess: '\\u2AA1\\u0338',\n\tnotni: '\\u220C',\n\tnotniva: '\\u220C',\n\tnotnivb: '\\u22FE',\n\tnotnivc: '\\u22FD',\n\tNotPrecedes: '\\u2280',\n\tNotPrecedesEqual: '\\u2AAF\\u0338',\n\tNotPrecedesSlantEqual: '\\u22E0',\n\tNotReverseElement: '\\u220C',\n\tNotRightTriangle: '\\u22EB',\n\tNotRightTriangleBar: '\\u29D0\\u0338',\n\tNotRightTriangleEqual: '\\u22ED',\n\tNotSquareSubset: '\\u228F\\u0338',\n\tNotSquareSubsetEqual: '\\u22E2',\n\tNotSquareSuperset: '\\u2290\\u0338',\n\tNotSquareSupersetEqual: '\\u22E3',\n\tNotSubset: '\\u2282\\u20D2',\n\tNotSubsetEqual: '\\u2288',\n\tNotSucceeds: '\\u2281',\n\tNotSucceedsEqual: '\\u2AB0\\u0338',\n\tNotSucceedsSlantEqual: '\\u22E1',\n\tNotSucceedsTilde: '\\u227F\\u0338',\n\tNotSuperset: '\\u2283\\u20D2',\n\tNotSupersetEqual: '\\u2289',\n\tNotTilde: '\\u2241',\n\tNotTildeEqual: '\\u2244',\n\tNotTildeFullEqual: '\\u2247',\n\tNotTildeTilde: '\\u2249',\n\tNotVerticalBar: '\\u2224',\n\tnpar: '\\u2226',\n\tnparallel: '\\u2226',\n\tnparsl: '\\u2AFD\\u20E5',\n\tnpart: '\\u2202\\u0338',\n\tnpolint: '\\u2A14',\n\tnpr: '\\u2280',\n\tnprcue: '\\u22E0',\n\tnpre: '\\u2AAF\\u0338',\n\tnprec: '\\u2280',\n\tnpreceq: '\\u2AAF\\u0338',\n\tnrArr: '\\u21CF',\n\tnrarr: '\\u219B',\n\tnrarrc: '\\u2933\\u0338',\n\tnrarrw: '\\u219D\\u0338',\n\tnRightarrow: '\\u21CF',\n\tnrightarrow: '\\u219B',\n\tnrtri: '\\u22EB',\n\tnrtrie: '\\u22ED',\n\tnsc: '\\u2281',\n\tnsccue: '\\u22E1',\n\tnsce: '\\u2AB0\\u0338',\n\tNscr: '\\uD835\\uDCA9',\n\tnscr: '\\uD835\\uDCC3',\n\tnshortmid: '\\u2224',\n\tnshortparallel: '\\u2226',\n\tnsim: '\\u2241',\n\tnsime: '\\u2244',\n\tnsimeq: '\\u2244',\n\tnsmid: '\\u2224',\n\tnspar: '\\u2226',\n\tnsqsube: '\\u22E2',\n\tnsqsupe: '\\u22E3',\n\tnsub: '\\u2284',\n\tnsubE: '\\u2AC5\\u0338',\n\tnsube: '\\u2288',\n\tnsubset: '\\u2282\\u20D2',\n\tnsubseteq: '\\u2288',\n\tnsubseteqq: '\\u2AC5\\u0338',\n\tnsucc: '\\u2281',\n\tnsucceq: '\\u2AB0\\u0338',\n\tnsup: '\\u2285',\n\tnsupE: '\\u2AC6\\u0338',\n\tnsupe: '\\u2289',\n\tnsupset: '\\u2283\\u20D2',\n\tnsupseteq: '\\u2289',\n\tnsupseteqq: '\\u2AC6\\u0338',\n\tntgl: '\\u2279',\n\tNtilde: '\\u00D1',\n\tntilde: '\\u00F1',\n\tntlg: '\\u2278',\n\tntriangleleft: '\\u22EA',\n\tntrianglelefteq: '\\u22EC',\n\tntriangleright: '\\u22EB',\n\tntrianglerighteq: '\\u22ED',\n\tNu: '\\u039D',\n\tnu: '\\u03BD',\n\tnum: '\\u0023',\n\tnumero: '\\u2116',\n\tnumsp: '\\u2007',\n\tnvap: '\\u224D\\u20D2',\n\tnVDash: '\\u22AF',\n\tnVdash: '\\u22AE',\n\tnvDash: '\\u22AD',\n\tnvdash: '\\u22AC',\n\tnvge: '\\u2265\\u20D2',\n\tnvgt: '\\u003E\\u20D2',\n\tnvHarr: '\\u2904',\n\tnvinfin: '\\u29DE',\n\tnvlArr: '\\u2902',\n\tnvle: '\\u2264\\u20D2',\n\tnvlt: '\\u003C\\u20D2',\n\tnvltrie: '\\u22B4\\u20D2',\n\tnvrArr: '\\u2903',\n\tnvrtrie: '\\u22B5\\u20D2',\n\tnvsim: '\\u223C\\u20D2',\n\tnwarhk: '\\u2923',\n\tnwArr: '\\u21D6',\n\tnwarr: '\\u2196',\n\tnwarrow: '\\u2196',\n\tnwnear: '\\u2927',\n\tOacute: '\\u00D3',\n\toacute: '\\u00F3',\n\toast: '\\u229B',\n\tocir: '\\u229A',\n\tOcirc: '\\u00D4',\n\tocirc: '\\u00F4',\n\tOcy: '\\u041E',\n\tocy: '\\u043E',\n\todash: '\\u229D',\n\tOdblac: '\\u0150',\n\todblac: '\\u0151',\n\todiv: '\\u2A38',\n\todot: '\\u2299',\n\todsold: '\\u29BC',\n\tOElig: '\\u0152',\n\toelig: '\\u0153',\n\tofcir: '\\u29BF',\n\tOfr: '\\uD835\\uDD12',\n\tofr: '\\uD835\\uDD2C',\n\togon: '\\u02DB',\n\tOgrave: '\\u00D2',\n\tograve: '\\u00F2',\n\togt: '\\u29C1',\n\tohbar: '\\u29B5',\n\tohm: '\\u03A9',\n\toint: '\\u222E',\n\tolarr: '\\u21BA',\n\tolcir: '\\u29BE',\n\tolcross: '\\u29BB',\n\toline: '\\u203E',\n\tolt: '\\u29C0',\n\tOmacr: '\\u014C',\n\tomacr: '\\u014D',\n\tOmega: '\\u03A9',\n\tomega: '\\u03C9',\n\tOmicron: '\\u039F',\n\tomicron: '\\u03BF',\n\tomid: '\\u29B6',\n\tominus: '\\u2296',\n\tOopf: '\\uD835\\uDD46',\n\toopf: '\\uD835\\uDD60',\n\topar: '\\u29B7',\n\tOpenCurlyDoubleQuote: '\\u201C',\n\tOpenCurlyQuote: '\\u2018',\n\toperp: '\\u29B9',\n\toplus: '\\u2295',\n\tOr: '\\u2A54',\n\tor: '\\u2228',\n\torarr: '\\u21BB',\n\tord: '\\u2A5D',\n\torder: '\\u2134',\n\torderof: '\\u2134',\n\tordf: '\\u00AA',\n\tordm: '\\u00BA',\n\torigof: '\\u22B6',\n\toror: '\\u2A56',\n\torslope: '\\u2A57',\n\torv: '\\u2A5B',\n\toS: '\\u24C8',\n\tOscr: '\\uD835\\uDCAA',\n\toscr: '\\u2134',\n\tOslash: '\\u00D8',\n\toslash: '\\u00F8',\n\tosol: '\\u2298',\n\tOtilde: '\\u00D5',\n\totilde: '\\u00F5',\n\tOtimes: '\\u2A37',\n\totimes: '\\u2297',\n\totimesas: '\\u2A36',\n\tOuml: '\\u00D6',\n\touml: '\\u00F6',\n\tovbar: '\\u233D',\n\tOverBar: '\\u203E',\n\tOverBrace: '\\u23DE',\n\tOverBracket: '\\u23B4',\n\tOverParenthesis: '\\u23DC',\n\tpar: '\\u2225',\n\tpara: '\\u00B6',\n\tparallel: '\\u2225',\n\tparsim: '\\u2AF3',\n\tparsl: '\\u2AFD',\n\tpart: '\\u2202',\n\tPartialD: '\\u2202',\n\tPcy: '\\u041F',\n\tpcy: '\\u043F',\n\tpercnt: '\\u0025',\n\tperiod: '\\u002E',\n\tpermil: '\\u2030',\n\tperp: '\\u22A5',\n\tpertenk: '\\u2031',\n\tPfr: '\\uD835\\uDD13',\n\tpfr: '\\uD835\\uDD2D',\n\tPhi: '\\u03A6',\n\tphi: '\\u03C6',\n\tphiv: '\\u03D5',\n\tphmmat: '\\u2133',\n\tphone: '\\u260E',\n\tPi: '\\u03A0',\n\tpi: '\\u03C0',\n\tpitchfork: '\\u22D4',\n\tpiv: '\\u03D6',\n\tplanck: '\\u210F',\n\tplanckh: '\\u210E',\n\tplankv: '\\u210F',\n\tplus: '\\u002B',\n\tplusacir: '\\u2A23',\n\tplusb: '\\u229E',\n\tpluscir: '\\u2A22',\n\tplusdo: '\\u2214',\n\tplusdu: '\\u2A25',\n\tpluse: '\\u2A72',\n\tPlusMinus: '\\u00B1',\n\tplusmn: '\\u00B1',\n\tplussim: '\\u2A26',\n\tplustwo: '\\u2A27',\n\tpm: '\\u00B1',\n\tPoincareplane: '\\u210C',\n\tpointint: '\\u2A15',\n\tPopf: '\\u2119',\n\tpopf: '\\uD835\\uDD61',\n\tpound: '\\u00A3',\n\tPr: '\\u2ABB',\n\tpr: '\\u227A',\n\tprap: '\\u2AB7',\n\tprcue: '\\u227C',\n\tprE: '\\u2AB3',\n\tpre: '\\u2AAF',\n\tprec: '\\u227A',\n\tprecapprox: '\\u2AB7',\n\tpreccurlyeq: '\\u227C',\n\tPrecedes: '\\u227A',\n\tPrecedesEqual: '\\u2AAF',\n\tPrecedesSlantEqual: '\\u227C',\n\tPrecedesTilde: '\\u227E',\n\tpreceq: '\\u2AAF',\n\tprecnapprox: '\\u2AB9',\n\tprecneqq: '\\u2AB5',\n\tprecnsim: '\\u22E8',\n\tprecsim: '\\u227E',\n\tPrime: '\\u2033',\n\tprime: '\\u2032',\n\tprimes: '\\u2119',\n\tprnap: '\\u2AB9',\n\tprnE: '\\u2AB5',\n\tprnsim: '\\u22E8',\n\tprod: '\\u220F',\n\tProduct: '\\u220F',\n\tprofalar: '\\u232E',\n\tprofline: '\\u2312',\n\tprofsurf: '\\u2313',\n\tprop: '\\u221D',\n\tProportion: '\\u2237',\n\tProportional: '\\u221D',\n\tpropto: '\\u221D',\n\tprsim: '\\u227E',\n\tprurel: '\\u22B0',\n\tPscr: '\\uD835\\uDCAB',\n\tpscr: '\\uD835\\uDCC5',\n\tPsi: '\\u03A8',\n\tpsi: '\\u03C8',\n\tpuncsp: '\\u2008',\n\tQfr: '\\uD835\\uDD14',\n\tqfr: '\\uD835\\uDD2E',\n\tqint: '\\u2A0C',\n\tQopf: '\\u211A',\n\tqopf: '\\uD835\\uDD62',\n\tqprime: '\\u2057',\n\tQscr: '\\uD835\\uDCAC',\n\tqscr: '\\uD835\\uDCC6',\n\tquaternions: '\\u210D',\n\tquatint: '\\u2A16',\n\tquest: '\\u003F',\n\tquesteq: '\\u225F',\n\tQUOT: '\\u0022',\n\tquot: '\\u0022',\n\trAarr: '\\u21DB',\n\trace: '\\u223D\\u0331',\n\tRacute: '\\u0154',\n\tracute: '\\u0155',\n\tradic: '\\u221A',\n\traemptyv: '\\u29B3',\n\tRang: '\\u27EB',\n\trang: '\\u27E9',\n\trangd: '\\u2992',\n\trange: '\\u29A5',\n\trangle: '\\u27E9',\n\traquo: '\\u00BB',\n\tRarr: '\\u21A0',\n\trArr: '\\u21D2',\n\trarr: '\\u2192',\n\trarrap: '\\u2975',\n\trarrb: '\\u21E5',\n\trarrbfs: '\\u2920',\n\trarrc: '\\u2933',\n\trarrfs: '\\u291E',\n\trarrhk: '\\u21AA',\n\trarrlp: '\\u21AC',\n\trarrpl: '\\u2945',\n\trarrsim: '\\u2974',\n\tRarrtl: '\\u2916',\n\trarrtl: '\\u21A3',\n\trarrw: '\\u219D',\n\trAtail: '\\u291C',\n\tratail: '\\u291A',\n\tratio: '\\u2236',\n\trationals: '\\u211A',\n\tRBarr: '\\u2910',\n\trBarr: '\\u290F',\n\trbarr: '\\u290D',\n\trbbrk: '\\u2773',\n\trbrace: '\\u007D',\n\trbrack: '\\u005D',\n\trbrke: '\\u298C',\n\trbrksld: '\\u298E',\n\trbrkslu: '\\u2990',\n\tRcaron: '\\u0158',\n\trcaron: '\\u0159',\n\tRcedil: '\\u0156',\n\trcedil: '\\u0157',\n\trceil: '\\u2309',\n\trcub: '\\u007D',\n\tRcy: '\\u0420',\n\trcy: '\\u0440',\n\trdca: '\\u2937',\n\trdldhar: '\\u2969',\n\trdquo: '\\u201D',\n\trdquor: '\\u201D',\n\trdsh: '\\u21B3',\n\tRe: '\\u211C',\n\treal: '\\u211C',\n\trealine: '\\u211B',\n\trealpart: '\\u211C',\n\treals: '\\u211D',\n\trect: '\\u25AD',\n\tREG: '\\u00AE',\n\treg: '\\u00AE',\n\tReverseElement: '\\u220B',\n\tReverseEquilibrium: '\\u21CB',\n\tReverseUpEquilibrium: '\\u296F',\n\trfisht: '\\u297D',\n\trfloor: '\\u230B',\n\tRfr: '\\u211C',\n\trfr: '\\uD835\\uDD2F',\n\trHar: '\\u2964',\n\trhard: '\\u21C1',\n\trharu: '\\u21C0',\n\trharul: '\\u296C',\n\tRho: '\\u03A1',\n\trho: '\\u03C1',\n\trhov: '\\u03F1',\n\tRightAngleBracket: '\\u27E9',\n\tRightArrow: '\\u2192',\n\tRightarrow: '\\u21D2',\n\trightarrow: '\\u2192',\n\tRightArrowBar: '\\u21E5',\n\tRightArrowLeftArrow: '\\u21C4',\n\trightarrowtail: '\\u21A3',\n\tRightCeiling: '\\u2309',\n\tRightDoubleBracket: '\\u27E7',\n\tRightDownTeeVector: '\\u295D',\n\tRightDownVector: '\\u21C2',\n\tRightDownVectorBar: '\\u2955',\n\tRightFloor: '\\u230B',\n\trightharpoondown: '\\u21C1',\n\trightharpoonup: '\\u21C0',\n\trightleftarrows: '\\u21C4',\n\trightleftharpoons: '\\u21CC',\n\trightrightarrows: '\\u21C9',\n\trightsquigarrow: '\\u219D',\n\tRightTee: '\\u22A2',\n\tRightTeeArrow: '\\u21A6',\n\tRightTeeVector: '\\u295B',\n\trightthreetimes: '\\u22CC',\n\tRightTriangle: '\\u22B3',\n\tRightTriangleBar: '\\u29D0',\n\tRightTriangleEqual: '\\u22B5',\n\tRightUpDownVector: '\\u294F',\n\tRightUpTeeVector: '\\u295C',\n\tRightUpVector: '\\u21BE',\n\tRightUpVectorBar: '\\u2954',\n\tRightVector: '\\u21C0',\n\tRightVectorBar: '\\u2953',\n\tring: '\\u02DA',\n\trisingdotseq: '\\u2253',\n\trlarr: '\\u21C4',\n\trlhar: '\\u21CC',\n\trlm: '\\u200F',\n\trmoust: '\\u23B1',\n\trmoustache: '\\u23B1',\n\trnmid: '\\u2AEE',\n\troang: '\\u27ED',\n\troarr: '\\u21FE',\n\trobrk: '\\u27E7',\n\tropar: '\\u2986',\n\tRopf: '\\u211D',\n\tropf: '\\uD835\\uDD63',\n\troplus: '\\u2A2E',\n\trotimes: '\\u2A35',\n\tRoundImplies: '\\u2970',\n\trpar: '\\u0029',\n\trpargt: '\\u2994',\n\trppolint: '\\u2A12',\n\trrarr: '\\u21C9',\n\tRrightarrow: '\\u21DB',\n\trsaquo: '\\u203A',\n\tRscr: '\\u211B',\n\trscr: '\\uD835\\uDCC7',\n\tRsh: '\\u21B1',\n\trsh: '\\u21B1',\n\trsqb: '\\u005D',\n\trsquo: '\\u2019',\n\trsquor: '\\u2019',\n\trthree: '\\u22CC',\n\trtimes: '\\u22CA',\n\trtri: '\\u25B9',\n\trtrie: '\\u22B5',\n\trtrif: '\\u25B8',\n\trtriltri: '\\u29CE',\n\tRuleDelayed: '\\u29F4',\n\truluhar: '\\u2968',\n\trx: '\\u211E',\n\tSacute: '\\u015A',\n\tsacute: '\\u015B',\n\tsbquo: '\\u201A',\n\tSc: '\\u2ABC',\n\tsc: '\\u227B',\n\tscap: '\\u2AB8',\n\tScaron: '\\u0160',\n\tscaron: '\\u0161',\n\tsccue: '\\u227D',\n\tscE: '\\u2AB4',\n\tsce: '\\u2AB0',\n\tScedil: '\\u015E',\n\tscedil: '\\u015F',\n\tScirc: '\\u015C',\n\tscirc: '\\u015D',\n\tscnap: '\\u2ABA',\n\tscnE: '\\u2AB6',\n\tscnsim: '\\u22E9',\n\tscpolint: '\\u2A13',\n\tscsim: '\\u227F',\n\tScy: '\\u0421',\n\tscy: '\\u0441',\n\tsdot: '\\u22C5',\n\tsdotb: '\\u22A1',\n\tsdote: '\\u2A66',\n\tsearhk: '\\u2925',\n\tseArr: '\\u21D8',\n\tsearr: '\\u2198',\n\tsearrow: '\\u2198',\n\tsect: '\\u00A7',\n\tsemi: '\\u003B',\n\tseswar: '\\u2929',\n\tsetminus: '\\u2216',\n\tsetmn: '\\u2216',\n\tsext: '\\u2736',\n\tSfr: '\\uD835\\uDD16',\n\tsfr: '\\uD835\\uDD30',\n\tsfrown: '\\u2322',\n\tsharp: '\\u266F',\n\tSHCHcy: '\\u0429',\n\tshchcy: '\\u0449',\n\tSHcy: '\\u0428',\n\tshcy: '\\u0448',\n\tShortDownArrow: '\\u2193',\n\tShortLeftArrow: '\\u2190',\n\tshortmid: '\\u2223',\n\tshortparallel: '\\u2225',\n\tShortRightArrow: '\\u2192',\n\tShortUpArrow: '\\u2191',\n\tshy: '\\u00AD',\n\tSigma: '\\u03A3',\n\tsigma: '\\u03C3',\n\tsigmaf: '\\u03C2',\n\tsigmav: '\\u03C2',\n\tsim: '\\u223C',\n\tsimdot: '\\u2A6A',\n\tsime: '\\u2243',\n\tsimeq: '\\u2243',\n\tsimg: '\\u2A9E',\n\tsimgE: '\\u2AA0',\n\tsiml: '\\u2A9D',\n\tsimlE: '\\u2A9F',\n\tsimne: '\\u2246',\n\tsimplus: '\\u2A24',\n\tsimrarr: '\\u2972',\n\tslarr: '\\u2190',\n\tSmallCircle: '\\u2218',\n\tsmallsetminus: '\\u2216',\n\tsmashp: '\\u2A33',\n\tsmeparsl: '\\u29E4',\n\tsmid: '\\u2223',\n\tsmile: '\\u2323',\n\tsmt: '\\u2AAA',\n\tsmte: '\\u2AAC',\n\tsmtes: '\\u2AAC\\uFE00',\n\tSOFTcy: '\\u042C',\n\tsoftcy: '\\u044C',\n\tsol: '\\u002F',\n\tsolb: '\\u29C4',\n\tsolbar: '\\u233F',\n\tSopf: '\\uD835\\uDD4A',\n\tsopf: '\\uD835\\uDD64',\n\tspades: '\\u2660',\n\tspadesuit: '\\u2660',\n\tspar: '\\u2225',\n\tsqcap: '\\u2293',\n\tsqcaps: '\\u2293\\uFE00',\n\tsqcup: '\\u2294',\n\tsqcups: '\\u2294\\uFE00',\n\tSqrt: '\\u221A',\n\tsqsub: '\\u228F',\n\tsqsube: '\\u2291',\n\tsqsubset: '\\u228F',\n\tsqsubseteq: '\\u2291',\n\tsqsup: '\\u2290',\n\tsqsupe: '\\u2292',\n\tsqsupset: '\\u2290',\n\tsqsupseteq: '\\u2292',\n\tsqu: '\\u25A1',\n\tSquare: '\\u25A1',\n\tsquare: '\\u25A1',\n\tSquareIntersection: '\\u2293',\n\tSquareSubset: '\\u228F',\n\tSquareSubsetEqual: '\\u2291',\n\tSquareSuperset: '\\u2290',\n\tSquareSupersetEqual: '\\u2292',\n\tSquareUnion: '\\u2294',\n\tsquarf: '\\u25AA',\n\tsquf: '\\u25AA',\n\tsrarr: '\\u2192',\n\tSscr: '\\uD835\\uDCAE',\n\tsscr: '\\uD835\\uDCC8',\n\tssetmn: '\\u2216',\n\tssmile: '\\u2323',\n\tsstarf: '\\u22C6',\n\tStar: '\\u22C6',\n\tstar: '\\u2606',\n\tstarf: '\\u2605',\n\tstraightepsilon: '\\u03F5',\n\tstraightphi: '\\u03D5',\n\tstrns: '\\u00AF',\n\tSub: '\\u22D0',\n\tsub: '\\u2282',\n\tsubdot: '\\u2ABD',\n\tsubE: '\\u2AC5',\n\tsube: '\\u2286',\n\tsubedot: '\\u2AC3',\n\tsubmult: '\\u2AC1',\n\tsubnE: '\\u2ACB',\n\tsubne: '\\u228A',\n\tsubplus: '\\u2ABF',\n\tsubrarr: '\\u2979',\n\tSubset: '\\u22D0',\n\tsubset: '\\u2282',\n\tsubseteq: '\\u2286',\n\tsubseteqq: '\\u2AC5',\n\tSubsetEqual: '\\u2286',\n\tsubsetneq: '\\u228A',\n\tsubsetneqq: '\\u2ACB',\n\tsubsim: '\\u2AC7',\n\tsubsub: '\\u2AD5',\n\tsubsup: '\\u2AD3',\n\tsucc: '\\u227B',\n\tsuccapprox: '\\u2AB8',\n\tsucccurlyeq: '\\u227D',\n\tSucceeds: '\\u227B',\n\tSucceedsEqual: '\\u2AB0',\n\tSucceedsSlantEqual: '\\u227D',\n\tSucceedsTilde: '\\u227F',\n\tsucceq: '\\u2AB0',\n\tsuccnapprox: '\\u2ABA',\n\tsuccneqq: '\\u2AB6',\n\tsuccnsim: '\\u22E9',\n\tsuccsim: '\\u227F',\n\tSuchThat: '\\u220B',\n\tSum: '\\u2211',\n\tsum: '\\u2211',\n\tsung: '\\u266A',\n\tSup: '\\u22D1',\n\tsup: '\\u2283',\n\tsup1: '\\u00B9',\n\tsup2: '\\u00B2',\n\tsup3: '\\u00B3',\n\tsupdot: '\\u2ABE',\n\tsupdsub: '\\u2AD8',\n\tsupE: '\\u2AC6',\n\tsupe: '\\u2287',\n\tsupedot: '\\u2AC4',\n\tSuperset: '\\u2283',\n\tSupersetEqual: '\\u2287',\n\tsuphsol: '\\u27C9',\n\tsuphsub: '\\u2AD7',\n\tsuplarr: '\\u297B',\n\tsupmult: '\\u2AC2',\n\tsupnE: '\\u2ACC',\n\tsupne: '\\u228B',\n\tsupplus: '\\u2AC0',\n\tSupset: '\\u22D1',\n\tsupset: '\\u2283',\n\tsupseteq: '\\u2287',\n\tsupseteqq: '\\u2AC6',\n\tsupsetneq: '\\u228B',\n\tsupsetneqq: '\\u2ACC',\n\tsupsim: '\\u2AC8',\n\tsupsub: '\\u2AD4',\n\tsupsup: '\\u2AD6',\n\tswarhk: '\\u2926',\n\tswArr: '\\u21D9',\n\tswarr: '\\u2199',\n\tswarrow: '\\u2199',\n\tswnwar: '\\u292A',\n\tszlig: '\\u00DF',\n\tTab: '\\u0009',\n\ttarget: '\\u2316',\n\tTau: '\\u03A4',\n\ttau: '\\u03C4',\n\ttbrk: '\\u23B4',\n\tTcaron: '\\u0164',\n\ttcaron: '\\u0165',\n\tTcedil: '\\u0162',\n\ttcedil: '\\u0163',\n\tTcy: '\\u0422',\n\ttcy: '\\u0442',\n\ttdot: '\\u20DB',\n\ttelrec: '\\u2315',\n\tTfr: '\\uD835\\uDD17',\n\ttfr: '\\uD835\\uDD31',\n\tthere4: '\\u2234',\n\tTherefore: '\\u2234',\n\ttherefore: '\\u2234',\n\tTheta: '\\u0398',\n\ttheta: '\\u03B8',\n\tthetasym: '\\u03D1',\n\tthetav: '\\u03D1',\n\tthickapprox: '\\u2248',\n\tthicksim: '\\u223C',\n\tThickSpace: '\\u205F\\u200A',\n\tthinsp: '\\u2009',\n\tThinSpace: '\\u2009',\n\tthkap: '\\u2248',\n\tthksim: '\\u223C',\n\tTHORN: '\\u00DE',\n\tthorn: '\\u00FE',\n\tTilde: '\\u223C',\n\ttilde: '\\u02DC',\n\tTildeEqual: '\\u2243',\n\tTildeFullEqual: '\\u2245',\n\tTildeTilde: '\\u2248',\n\ttimes: '\\u00D7',\n\ttimesb: '\\u22A0',\n\ttimesbar: '\\u2A31',\n\ttimesd: '\\u2A30',\n\ttint: '\\u222D',\n\ttoea: '\\u2928',\n\ttop: '\\u22A4',\n\ttopbot: '\\u2336',\n\ttopcir: '\\u2AF1',\n\tTopf: '\\uD835\\uDD4B',\n\ttopf: '\\uD835\\uDD65',\n\ttopfork: '\\u2ADA',\n\ttosa: '\\u2929',\n\ttprime: '\\u2034',\n\tTRADE: '\\u2122',\n\ttrade: '\\u2122',\n\ttriangle: '\\u25B5',\n\ttriangledown: '\\u25BF',\n\ttriangleleft: '\\u25C3',\n\ttrianglelefteq: '\\u22B4',\n\ttriangleq: '\\u225C',\n\ttriangleright: '\\u25B9',\n\ttrianglerighteq: '\\u22B5',\n\ttridot: '\\u25EC',\n\ttrie: '\\u225C',\n\ttriminus: '\\u2A3A',\n\tTripleDot: '\\u20DB',\n\ttriplus: '\\u2A39',\n\ttrisb: '\\u29CD',\n\ttritime: '\\u2A3B',\n\ttrpezium: '\\u23E2',\n\tTscr: '\\uD835\\uDCAF',\n\ttscr: '\\uD835\\uDCC9',\n\tTScy: '\\u0426',\n\ttscy: '\\u0446',\n\tTSHcy: '\\u040B',\n\ttshcy: '\\u045B',\n\tTstrok: '\\u0166',\n\ttstrok: '\\u0167',\n\ttwixt: '\\u226C',\n\ttwoheadleftarrow: '\\u219E',\n\ttwoheadrightarrow: '\\u21A0',\n\tUacute: '\\u00DA',\n\tuacute: '\\u00FA',\n\tUarr: '\\u219F',\n\tuArr: '\\u21D1',\n\tuarr: '\\u2191',\n\tUarrocir: '\\u2949',\n\tUbrcy: '\\u040E',\n\tubrcy: '\\u045E',\n\tUbreve: '\\u016C',\n\tubreve: '\\u016D',\n\tUcirc: '\\u00DB',\n\tucirc: '\\u00FB',\n\tUcy: '\\u0423',\n\tucy: '\\u0443',\n\tudarr: '\\u21C5',\n\tUdblac: '\\u0170',\n\tudblac: '\\u0171',\n\tudhar: '\\u296E',\n\tufisht: '\\u297E',\n\tUfr: '\\uD835\\uDD18',\n\tufr: '\\uD835\\uDD32',\n\tUgrave: '\\u00D9',\n\tugrave: '\\u00F9',\n\tuHar: '\\u2963',\n\tuharl: '\\u21BF',\n\tuharr: '\\u21BE',\n\tuhblk: '\\u2580',\n\tulcorn: '\\u231C',\n\tulcorner: '\\u231C',\n\tulcrop: '\\u230F',\n\tultri: '\\u25F8',\n\tUmacr: '\\u016A',\n\tumacr: '\\u016B',\n\tuml: '\\u00A8',\n\tUnderBar: '\\u005F',\n\tUnderBrace: '\\u23DF',\n\tUnderBracket: '\\u23B5',\n\tUnderParenthesis: '\\u23DD',\n\tUnion: '\\u22C3',\n\tUnionPlus: '\\u228E',\n\tUogon: '\\u0172',\n\tuogon: '\\u0173',\n\tUopf: '\\uD835\\uDD4C',\n\tuopf: '\\uD835\\uDD66',\n\tUpArrow: '\\u2191',\n\tUparrow: '\\u21D1',\n\tuparrow: '\\u2191',\n\tUpArrowBar: '\\u2912',\n\tUpArrowDownArrow: '\\u21C5',\n\tUpDownArrow: '\\u2195',\n\tUpdownarrow: '\\u21D5',\n\tupdownarrow: '\\u2195',\n\tUpEquilibrium: '\\u296E',\n\tupharpoonleft: '\\u21BF',\n\tupharpoonright: '\\u21BE',\n\tuplus: '\\u228E',\n\tUpperLeftArrow: '\\u2196',\n\tUpperRightArrow: '\\u2197',\n\tUpsi: '\\u03D2',\n\tupsi: '\\u03C5',\n\tupsih: '\\u03D2',\n\tUpsilon: '\\u03A5',\n\tupsilon: '\\u03C5',\n\tUpTee: '\\u22A5',\n\tUpTeeArrow: '\\u21A5',\n\tupuparrows: '\\u21C8',\n\turcorn: '\\u231D',\n\turcorner: '\\u231D',\n\turcrop: '\\u230E',\n\tUring: '\\u016E',\n\turing: '\\u016F',\n\turtri: '\\u25F9',\n\tUscr: '\\uD835\\uDCB0',\n\tuscr: '\\uD835\\uDCCA',\n\tutdot: '\\u22F0',\n\tUtilde: '\\u0168',\n\tutilde: '\\u0169',\n\tutri: '\\u25B5',\n\tutrif: '\\u25B4',\n\tuuarr: '\\u21C8',\n\tUuml: '\\u00DC',\n\tuuml: '\\u00FC',\n\tuwangle: '\\u29A7',\n\tvangrt: '\\u299C',\n\tvarepsilon: '\\u03F5',\n\tvarkappa: '\\u03F0',\n\tvarnothing: '\\u2205',\n\tvarphi: '\\u03D5',\n\tvarpi: '\\u03D6',\n\tvarpropto: '\\u221D',\n\tvArr: '\\u21D5',\n\tvarr: '\\u2195',\n\tvarrho: '\\u03F1',\n\tvarsigma: '\\u03C2',\n\tvarsubsetneq: '\\u228A\\uFE00',\n\tvarsubsetneqq: '\\u2ACB\\uFE00',\n\tvarsupsetneq: '\\u228B\\uFE00',\n\tvarsupsetneqq: '\\u2ACC\\uFE00',\n\tvartheta: '\\u03D1',\n\tvartriangleleft: '\\u22B2',\n\tvartriangleright: '\\u22B3',\n\tVbar: '\\u2AEB',\n\tvBar: '\\u2AE8',\n\tvBarv: '\\u2AE9',\n\tVcy: '\\u0412',\n\tvcy: '\\u0432',\n\tVDash: '\\u22AB',\n\tVdash: '\\u22A9',\n\tvDash: '\\u22A8',\n\tvdash: '\\u22A2',\n\tVdashl: '\\u2AE6',\n\tVee: '\\u22C1',\n\tvee: '\\u2228',\n\tveebar: '\\u22BB',\n\tveeeq: '\\u225A',\n\tvellip: '\\u22EE',\n\tVerbar: '\\u2016',\n\tverbar: '\\u007C',\n\tVert: '\\u2016',\n\tvert: '\\u007C',\n\tVerticalBar: '\\u2223',\n\tVerticalLine: '\\u007C',\n\tVerticalSeparator: '\\u2758',\n\tVerticalTilde: '\\u2240',\n\tVeryThinSpace: '\\u200A',\n\tVfr: '\\uD835\\uDD19',\n\tvfr: '\\uD835\\uDD33',\n\tvltri: '\\u22B2',\n\tvnsub: '\\u2282\\u20D2',\n\tvnsup: '\\u2283\\u20D2',\n\tVopf: '\\uD835\\uDD4D',\n\tvopf: '\\uD835\\uDD67',\n\tvprop: '\\u221D',\n\tvrtri: '\\u22B3',\n\tVscr: '\\uD835\\uDCB1',\n\tvscr: '\\uD835\\uDCCB',\n\tvsubnE: '\\u2ACB\\uFE00',\n\tvsubne: '\\u228A\\uFE00',\n\tvsupnE: '\\u2ACC\\uFE00',\n\tvsupne: '\\u228B\\uFE00',\n\tVvdash: '\\u22AA',\n\tvzigzag: '\\u299A',\n\tWcirc: '\\u0174',\n\twcirc: '\\u0175',\n\twedbar: '\\u2A5F',\n\tWedge: '\\u22C0',\n\twedge: '\\u2227',\n\twedgeq: '\\u2259',\n\tweierp: '\\u2118',\n\tWfr: '\\uD835\\uDD1A',\n\twfr: '\\uD835\\uDD34',\n\tWopf: '\\uD835\\uDD4E',\n\twopf: '\\uD835\\uDD68',\n\twp: '\\u2118',\n\twr: '\\u2240',\n\twreath: '\\u2240',\n\tWscr: '\\uD835\\uDCB2',\n\twscr: '\\uD835\\uDCCC',\n\txcap: '\\u22C2',\n\txcirc: '\\u25EF',\n\txcup: '\\u22C3',\n\txdtri: '\\u25BD',\n\tXfr: '\\uD835\\uDD1B',\n\txfr: '\\uD835\\uDD35',\n\txhArr: '\\u27FA',\n\txharr: '\\u27F7',\n\tXi: '\\u039E',\n\txi: '\\u03BE',\n\txlArr: '\\u27F8',\n\txlarr: '\\u27F5',\n\txmap: '\\u27FC',\n\txnis: '\\u22FB',\n\txodot: '\\u2A00',\n\tXopf: '\\uD835\\uDD4F',\n\txopf: '\\uD835\\uDD69',\n\txoplus: '\\u2A01',\n\txotime: '\\u2A02',\n\txrArr: '\\u27F9',\n\txrarr: '\\u27F6',\n\tXscr: '\\uD835\\uDCB3',\n\txscr: '\\uD835\\uDCCD',\n\txsqcup: '\\u2A06',\n\txuplus: '\\u2A04',\n\txutri: '\\u25B3',\n\txvee: '\\u22C1',\n\txwedge: '\\u22C0',\n\tYacute: '\\u00DD',\n\tyacute: '\\u00FD',\n\tYAcy: '\\u042F',\n\tyacy: '\\u044F',\n\tYcirc: '\\u0176',\n\tycirc: '\\u0177',\n\tYcy: '\\u042B',\n\tycy: '\\u044B',\n\tyen: '\\u00A5',\n\tYfr: '\\uD835\\uDD1C',\n\tyfr: '\\uD835\\uDD36',\n\tYIcy: '\\u0407',\n\tyicy: '\\u0457',\n\tYopf: '\\uD835\\uDD50',\n\tyopf: '\\uD835\\uDD6A',\n\tYscr: '\\uD835\\uDCB4',\n\tyscr: '\\uD835\\uDCCE',\n\tYUcy: '\\u042E',\n\tyucy: '\\u044E',\n\tYuml: '\\u0178',\n\tyuml: '\\u00FF',\n\tZacute: '\\u0179',\n\tzacute: '\\u017A',\n\tZcaron: '\\u017D',\n\tzcaron: '\\u017E',\n\tZcy: '\\u0417',\n\tzcy: '\\u0437',\n\tZdot: '\\u017B',\n\tzdot: '\\u017C',\n\tzeetrf: '\\u2128',\n\tZeroWidthSpace: '\\u200B',\n\tZeta: '\\u0396',\n\tzeta: '\\u03B6',\n\tZfr: '\\u2128',\n\tzfr: '\\uD835\\uDD37',\n\tZHcy: '\\u0416',\n\tzhcy: '\\u0436',\n\tzigrarr: '\\u21DD',\n\tZopf: '\\u2124',\n\tzopf: '\\uD835\\uDD6B',\n\tZscr: '\\uD835\\uDCB5',\n\tzscr: '\\uD835\\uDCCF',\n\tzwj: '\\u200D',\n\tzwnj: '\\u200C',\n});\n\n/**\n * @deprecated use `HTML_ENTITIES` instead\n * @see HTML_ENTITIES\n */\nexports.entityMap = exports.HTML_ENTITIES;\n","var NAMESPACE = require(\"./conventions\").NAMESPACE;\n\n//[4] \tNameStartChar\t ::= \t\":\" | [A-Z] | \"_\" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\n//[4a] \tNameChar\t ::= \tNameStartChar | \"-\" | \".\" | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]\n//[5] \tName\t ::= \tNameStartChar (NameChar)*\nvar nameStartChar = /[A-Z_a-z\\xC0-\\xD6\\xD8-\\xF6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]///\\u10000-\\uEFFFF\nvar nameChar = new RegExp(\"[\\\\-\\\\.0-9\"+nameStartChar.source.slice(1,-1)+\"\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]\");\nvar tagNamePattern = new RegExp('^'+nameStartChar.source+nameChar.source+'*(?:\\:'+nameStartChar.source+nameChar.source+'*)?$');\n//var tagNamePattern = /^[a-zA-Z_][\\w\\-\\.]*(?:\\:[a-zA-Z_][\\w\\-\\.]*)?$/\n//var handlers = 'resolveEntity,getExternalSubset,characters,endDocument,endElement,endPrefixMapping,ignorableWhitespace,processingInstruction,setDocumentLocator,skippedEntity,startDocument,startElement,startPrefixMapping,notationDecl,unparsedEntityDecl,error,fatalError,warning,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,comment,endCDATA,endDTD,endEntity,startCDATA,startDTD,startEntity'.split(',')\n\n//S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\n//S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\nvar S_TAG = 0;//tag name offerring\nvar S_ATTR = 1;//attr name offerring\nvar S_ATTR_SPACE=2;//attr name end and space offer\nvar S_EQ = 3;//=space?\nvar S_ATTR_NOQUOT_VALUE = 4;//attr value(no quot value only)\nvar S_ATTR_END = 5;//attr value end and no space(quot end)\nvar S_TAG_SPACE = 6;//(attr value end || tag end ) && (space offer)\nvar S_TAG_CLOSE = 7;//closed el<el />\n\n/**\n * Creates an error that will not be caught by XMLReader aka the SAX parser.\n *\n * @param {string} message\n * @param {any?} locator Optional, can provide details about the location in the source\n * @constructor\n */\nfunction ParseError(message, locator) {\n\tthis.message = message\n\tthis.locator = locator\n\tif(Error.captureStackTrace) Error.captureStackTrace(this, ParseError);\n}\nParseError.prototype = new Error();\nParseError.prototype.name = ParseError.name\n\nfunction XMLReader(){\n\n}\n\nXMLReader.prototype = {\n\tparse:function(source,defaultNSMap,entityMap){\n\t\tvar domBuilder = this.domBuilder;\n\t\tdomBuilder.startDocument();\n\t\t_copy(defaultNSMap ,defaultNSMap = {})\n\t\tparse(source,defaultNSMap,entityMap,\n\t\t\t\tdomBuilder,this.errorHandler);\n\t\tdomBuilder.endDocument();\n\t}\n}\nfunction parse(source,defaultNSMapCopy,entityMap,domBuilder,errorHandler){\n\tfunction fixedFromCharCode(code) {\n\t\t// String.prototype.fromCharCode does not supports\n\t\t// > 2 bytes unicode chars directly\n\t\tif (code > 0xffff) {\n\t\t\tcode -= 0x10000;\n\t\t\tvar surrogate1 = 0xd800 + (code >> 10)\n\t\t\t\t, surrogate2 = 0xdc00 + (code & 0x3ff);\n\n\t\t\treturn String.fromCharCode(surrogate1, surrogate2);\n\t\t} else {\n\t\t\treturn String.fromCharCode(code);\n\t\t}\n\t}\n\tfunction entityReplacer(a){\n\t\tvar k = a.slice(1,-1);\n\t\tif (Object.hasOwnProperty.call(entityMap, k)) {\n\t\t\treturn entityMap[k];\n\t\t}else if(k.charAt(0) === '#'){\n\t\t\treturn fixedFromCharCode(parseInt(k.substr(1).replace('x','0x')))\n\t\t}else{\n\t\t\terrorHandler.error('entity not found:'+a);\n\t\t\treturn a;\n\t\t}\n\t}\n\tfunction appendText(end){//has some bugs\n\t\tif(end>start){\n\t\t\tvar xt = source.substring(start,end).replace(/&#?\\w+;/g,entityReplacer);\n\t\t\tlocator&&position(start);\n\t\t\tdomBuilder.characters(xt,0,end-start);\n\t\t\tstart = end\n\t\t}\n\t}\n\tfunction position(p,m){\n\t\twhile(p>=lineEnd && (m = linePattern.exec(source))){\n\t\t\tlineStart = m.index;\n\t\t\tlineEnd = lineStart + m[0].length;\n\t\t\tlocator.lineNumber++;\n\t\t\t//console.log('line++:',locator,startPos,endPos)\n\t\t}\n\t\tlocator.columnNumber = p-lineStart+1;\n\t}\n\tvar lineStart = 0;\n\tvar lineEnd = 0;\n\tvar linePattern = /.*(?:\\r\\n?|\\n)|.*$/g\n\tvar locator = domBuilder.locator;\n\n\tvar parseStack = [{currentNSMap:defaultNSMapCopy}]\n\tvar closeMap = {};\n\tvar start = 0;\n\twhile(true){\n\t\ttry{\n\t\t\tvar tagStart = source.indexOf('<',start);\n\t\t\tif(tagStart<0){\n\t\t\t\tif(!source.substr(start).match(/^\\s*$/)){\n\t\t\t\t\tvar doc = domBuilder.doc;\n\t \t\t\tvar text = doc.createTextNode(source.substr(start));\n\t \t\t\tdoc.appendChild(text);\n\t \t\t\tdomBuilder.currentElement = text;\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif(tagStart>start){\n\t\t\t\tappendText(tagStart);\n\t\t\t}\n\t\t\tswitch(source.charAt(tagStart+1)){\n\t\t\tcase '/':\n\t\t\t\tvar end = source.indexOf('>',tagStart+3);\n\t\t\t\tvar tagName = source.substring(tagStart + 2, end).replace(/[ \\t\\n\\r]+$/g, '');\n\t\t\t\tvar config = parseStack.pop();\n\t\t\t\tif(end<0){\n\n\t \t\ttagName = source.substring(tagStart+2).replace(/[\\s<].*/,'');\n\t \t\terrorHandler.error(\"end tag name: \"+tagName+' is not complete:'+config.tagName);\n\t \t\tend = tagStart+1+tagName.length;\n\t \t}else if(tagName.match(/\\s</)){\n\t \t\ttagName = tagName.replace(/[\\s<].*/,'');\n\t \t\terrorHandler.error(\"end tag name: \"+tagName+' maybe not complete');\n\t \t\tend = tagStart+1+tagName.length;\n\t\t\t\t}\n\t\t\t\tvar localNSMap = config.localNSMap;\n\t\t\t\tvar endMatch = config.tagName == tagName;\n\t\t\t\tvar endIgnoreCaseMach = endMatch || config.tagName&&config.tagName.toLowerCase() == tagName.toLowerCase()\n\t\t if(endIgnoreCaseMach){\n\t\t \tdomBuilder.endElement(config.uri,config.localName,tagName);\n\t\t\t\t\tif(localNSMap){\n\t\t\t\t\t\tfor (var prefix in localNSMap) {\n\t\t\t\t\t\t\tif (Object.prototype.hasOwnProperty.call(localNSMap, prefix)) {\n\t\t\t\t\t\t\t\tdomBuilder.endPrefixMapping(prefix);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(!endMatch){\n\t\t \terrorHandler.fatalError(\"end tag name: \"+tagName+' is not match the current start tagName:'+config.tagName ); // No known test case\n\t\t\t\t\t}\n\t\t }else{\n\t\t \tparseStack.push(config)\n\t\t }\n\n\t\t\t\tend++;\n\t\t\t\tbreak;\n\t\t\t\t// end elment\n\t\t\tcase '?':// <?...?>\n\t\t\t\tlocator&&position(tagStart);\n\t\t\t\tend = parseInstruction(source,tagStart,domBuilder);\n\t\t\t\tbreak;\n\t\t\tcase '!':// <!doctype,<![CDATA,<!--\n\t\t\t\tlocator&&position(tagStart);\n\t\t\t\tend = parseDCC(source,tagStart,domBuilder,errorHandler);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tlocator&&position(tagStart);\n\t\t\t\tvar el = new ElementAttributes();\n\t\t\t\tvar currentNSMap = parseStack[parseStack.length-1].currentNSMap;\n\t\t\t\t//elStartEnd\n\t\t\t\tvar end = parseElementStartPart(source,tagStart,el,currentNSMap,entityReplacer,errorHandler);\n\t\t\t\tvar len = el.length;\n\n\n\t\t\t\tif(!el.closed && fixSelfClosed(source,end,el.tagName,closeMap)){\n\t\t\t\t\tel.closed = true;\n\t\t\t\t\tif(!entityMap.nbsp){\n\t\t\t\t\t\terrorHandler.warning('unclosed xml attribute');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(locator && len){\n\t\t\t\t\tvar locator2 = copyLocator(locator,{});\n\t\t\t\t\t//try{//attribute position fixed\n\t\t\t\t\tfor(var i = 0;i<len;i++){\n\t\t\t\t\t\tvar a = el[i];\n\t\t\t\t\t\tposition(a.offset);\n\t\t\t\t\t\ta.locator = copyLocator(locator,{});\n\t\t\t\t\t}\n\t\t\t\t\tdomBuilder.locator = locator2\n\t\t\t\t\tif(appendElement(el,domBuilder,currentNSMap)){\n\t\t\t\t\t\tparseStack.push(el)\n\t\t\t\t\t}\n\t\t\t\t\tdomBuilder.locator = locator;\n\t\t\t\t}else{\n\t\t\t\t\tif(appendElement(el,domBuilder,currentNSMap)){\n\t\t\t\t\t\tparseStack.push(el)\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (NAMESPACE.isHTML(el.uri) && !el.closed) {\n\t\t\t\t\tend = parseHtmlSpecialContent(source,end,el.tagName,entityReplacer,domBuilder)\n\t\t\t\t} else {\n\t\t\t\t\tend++;\n\t\t\t\t}\n\t\t\t}\n\t\t}catch(e){\n\t\t\tif (e instanceof ParseError) {\n\t\t\t\tthrow e;\n\t\t\t}\n\t\t\terrorHandler.error('element parse error: '+e)\n\t\t\tend = -1;\n\t\t}\n\t\tif(end>start){\n\t\t\tstart = end;\n\t\t}else{\n\t\t\t//TODO: 这里有可能sax回退,有位置错误风险\n\t\t\tappendText(Math.max(tagStart,start)+1);\n\t\t}\n\t}\n}\nfunction copyLocator(f,t){\n\tt.lineNumber = f.lineNumber;\n\tt.columnNumber = f.columnNumber;\n\treturn t;\n}\n\n/**\n * @see #appendElement(source,elStartEnd,el,selfClosed,entityReplacer,domBuilder,parseStack);\n * @return end of the elementStartPart(end of elementEndPart for selfClosed el)\n */\nfunction parseElementStartPart(source,start,el,currentNSMap,entityReplacer,errorHandler){\n\n\t/**\n\t * @param {string} qname\n\t * @param {string} value\n\t * @param {number} startIndex\n\t */\n\tfunction addAttribute(qname, value, startIndex) {\n\t\tif (el.attributeNames.hasOwnProperty(qname)) {\n\t\t\terrorHandler.fatalError('Attribute ' + qname + ' redefined')\n\t\t}\n\t\tel.addValue(\n\t\t\tqname,\n\t\t\t// @see https://www.w3.org/TR/xml/#AVNormalize\n\t\t\t// since the xmldom sax parser does not \"interpret\" DTD the following is not implemented:\n\t\t\t// - recursive replacement of (DTD) entity references\n\t\t\t// - trimming and collapsing multiple spaces into a single one for attributes that are not of type CDATA\n\t\t\tvalue.replace(/[\\t\\n\\r]/g, ' ').replace(/&#?\\w+;/g, entityReplacer),\n\t\t\tstartIndex\n\t\t)\n\t}\n\tvar attrName;\n\tvar value;\n\tvar p = ++start;\n\tvar s = S_TAG;//status\n\twhile(true){\n\t\tvar c = source.charAt(p);\n\t\tswitch(c){\n\t\tcase '=':\n\t\t\tif(s === S_ATTR){//attrName\n\t\t\t\tattrName = source.slice(start,p);\n\t\t\t\ts = S_EQ;\n\t\t\t}else if(s === S_ATTR_SPACE){\n\t\t\t\ts = S_EQ;\n\t\t\t}else{\n\t\t\t\t//fatalError: equal must after attrName or space after attrName\n\t\t\t\tthrow new Error('attribute equal must after attrName'); // No known test case\n\t\t\t}\n\t\t\tbreak;\n\t\tcase '\\'':\n\t\tcase '\"':\n\t\t\tif(s === S_EQ || s === S_ATTR //|| s == S_ATTR_SPACE\n\t\t\t\t){//equal\n\t\t\t\tif(s === S_ATTR){\n\t\t\t\t\terrorHandler.warning('attribute value must after \"=\"')\n\t\t\t\t\tattrName = source.slice(start,p)\n\t\t\t\t}\n\t\t\t\tstart = p+1;\n\t\t\t\tp = source.indexOf(c,start)\n\t\t\t\tif(p>0){\n\t\t\t\t\tvalue = source.slice(start, p);\n\t\t\t\t\taddAttribute(attrName, value, start-1);\n\t\t\t\t\ts = S_ATTR_END;\n\t\t\t\t}else{\n\t\t\t\t\t//fatalError: no end quot match\n\t\t\t\t\tthrow new Error('attribute value no end \\''+c+'\\' match');\n\t\t\t\t}\n\t\t\t}else if(s == S_ATTR_NOQUOT_VALUE){\n\t\t\t\tvalue = source.slice(start, p);\n\t\t\t\taddAttribute(attrName, value, start);\n\t\t\t\terrorHandler.warning('attribute \"'+attrName+'\" missed start quot('+c+')!!');\n\t\t\t\tstart = p+1;\n\t\t\t\ts = S_ATTR_END\n\t\t\t}else{\n\t\t\t\t//fatalError: no equal before\n\t\t\t\tthrow new Error('attribute value must after \"=\"'); // No known test case\n\t\t\t}\n\t\t\tbreak;\n\t\tcase '/':\n\t\t\tswitch(s){\n\t\t\tcase S_TAG:\n\t\t\t\tel.setTagName(source.slice(start,p));\n\t\t\tcase S_ATTR_END:\n\t\t\tcase S_TAG_SPACE:\n\t\t\tcase S_TAG_CLOSE:\n\t\t\t\ts =S_TAG_CLOSE;\n\t\t\t\tel.closed = true;\n\t\t\tcase S_ATTR_NOQUOT_VALUE:\n\t\t\tcase S_ATTR:\n\t\t\t\tbreak;\n\t\t\t\tcase S_ATTR_SPACE:\n\t\t\t\t\tel.closed = true;\n\t\t\t\tbreak;\n\t\t\t//case S_EQ:\n\t\t\tdefault:\n\t\t\t\tthrow new Error(\"attribute invalid close char('/')\") // No known test case\n\t\t\t}\n\t\t\tbreak;\n\t\tcase ''://end document\n\t\t\terrorHandler.error('unexpected end of input');\n\t\t\tif(s == S_TAG){\n\t\t\t\tel.setTagName(source.slice(start,p));\n\t\t\t}\n\t\t\treturn p;\n\t\tcase '>':\n\t\t\tswitch(s){\n\t\t\tcase S_TAG:\n\t\t\t\tel.setTagName(source.slice(start,p));\n\t\t\tcase S_ATTR_END:\n\t\t\tcase S_TAG_SPACE:\n\t\t\tcase S_TAG_CLOSE:\n\t\t\t\tbreak;//normal\n\t\t\tcase S_ATTR_NOQUOT_VALUE://Compatible state\n\t\t\tcase S_ATTR:\n\t\t\t\tvalue = source.slice(start,p);\n\t\t\t\tif(value.slice(-1) === '/'){\n\t\t\t\t\tel.closed = true;\n\t\t\t\t\tvalue = value.slice(0,-1)\n\t\t\t\t}\n\t\t\tcase S_ATTR_SPACE:\n\t\t\t\tif(s === S_ATTR_SPACE){\n\t\t\t\t\tvalue = attrName;\n\t\t\t\t}\n\t\t\t\tif(s == S_ATTR_NOQUOT_VALUE){\n\t\t\t\t\terrorHandler.warning('attribute \"'+value+'\" missed quot(\")!');\n\t\t\t\t\taddAttribute(attrName, value, start)\n\t\t\t\t}else{\n\t\t\t\t\tif(!NAMESPACE.isHTML(currentNSMap['']) || !value.match(/^(?:disabled|checked|selected)$/i)){\n\t\t\t\t\t\terrorHandler.warning('attribute \"'+value+'\" missed value!! \"'+value+'\" instead!!')\n\t\t\t\t\t}\n\t\t\t\t\taddAttribute(value, value, start)\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase S_EQ:\n\t\t\t\tthrow new Error('attribute value missed!!');\n\t\t\t}\n//\t\t\tconsole.log(tagName,tagNamePattern,tagNamePattern.test(tagName))\n\t\t\treturn p;\n\t\t/*xml space '\\x20' | #x9 | #xD | #xA; */\n\t\tcase '\\u0080':\n\t\t\tc = ' ';\n\t\tdefault:\n\t\t\tif(c<= ' '){//space\n\t\t\t\tswitch(s){\n\t\t\t\tcase S_TAG:\n\t\t\t\t\tel.setTagName(source.slice(start,p));//tagName\n\t\t\t\t\ts = S_TAG_SPACE;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_ATTR:\n\t\t\t\t\tattrName = source.slice(start,p)\n\t\t\t\t\ts = S_ATTR_SPACE;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_ATTR_NOQUOT_VALUE:\n\t\t\t\t\tvar value = source.slice(start, p);\n\t\t\t\t\terrorHandler.warning('attribute \"'+value+'\" missed quot(\")!!');\n\t\t\t\t\taddAttribute(attrName, value, start)\n\t\t\t\tcase S_ATTR_END:\n\t\t\t\t\ts = S_TAG_SPACE;\n\t\t\t\t\tbreak;\n\t\t\t\t//case S_TAG_SPACE:\n\t\t\t\t//case S_EQ:\n\t\t\t\t//case S_ATTR_SPACE:\n\t\t\t\t//\tvoid();break;\n\t\t\t\t//case S_TAG_CLOSE:\n\t\t\t\t\t//ignore warning\n\t\t\t\t}\n\t\t\t}else{//not space\n//S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\n//S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\n\t\t\t\tswitch(s){\n\t\t\t\t//case S_TAG:void();break;\n\t\t\t\t//case S_ATTR:void();break;\n\t\t\t\t//case S_ATTR_NOQUOT_VALUE:void();break;\n\t\t\t\tcase S_ATTR_SPACE:\n\t\t\t\t\tvar tagName = el.tagName;\n\t\t\t\t\tif (!NAMESPACE.isHTML(currentNSMap['']) || !attrName.match(/^(?:disabled|checked|selected)$/i)) {\n\t\t\t\t\t\terrorHandler.warning('attribute \"'+attrName+'\" missed value!! \"'+attrName+'\" instead2!!')\n\t\t\t\t\t}\n\t\t\t\t\taddAttribute(attrName, attrName, start);\n\t\t\t\t\tstart = p;\n\t\t\t\t\ts = S_ATTR;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_ATTR_END:\n\t\t\t\t\terrorHandler.warning('attribute space is required\"'+attrName+'\"!!')\n\t\t\t\tcase S_TAG_SPACE:\n\t\t\t\t\ts = S_ATTR;\n\t\t\t\t\tstart = p;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_EQ:\n\t\t\t\t\ts = S_ATTR_NOQUOT_VALUE;\n\t\t\t\t\tstart = p;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_TAG_CLOSE:\n\t\t\t\t\tthrow new Error(\"elements closed character '/' and '>' must be connected to\");\n\t\t\t\t}\n\t\t\t}\n\t\t}//end outer switch\n\t\t//console.log('p++',p)\n\t\tp++;\n\t}\n}\n/**\n * @return true if has new namespace define\n */\nfunction appendElement(el,domBuilder,currentNSMap){\n\tvar tagName = el.tagName;\n\tvar localNSMap = null;\n\t//var currentNSMap = parseStack[parseStack.length-1].currentNSMap;\n\tvar i = el.length;\n\twhile(i--){\n\t\tvar a = el[i];\n\t\tvar qName = a.qName;\n\t\tvar value = a.value;\n\t\tvar nsp = qName.indexOf(':');\n\t\tif(nsp>0){\n\t\t\tvar prefix = a.prefix = qName.slice(0,nsp);\n\t\t\tvar localName = qName.slice(nsp+1);\n\t\t\tvar nsPrefix = prefix === 'xmlns' && localName\n\t\t}else{\n\t\t\tlocalName = qName;\n\t\t\tprefix = null\n\t\t\tnsPrefix = qName === 'xmlns' && ''\n\t\t}\n\t\t//can not set prefix,because prefix !== ''\n\t\ta.localName = localName ;\n\t\t//prefix == null for no ns prefix attribute\n\t\tif(nsPrefix !== false){//hack!!\n\t\t\tif(localNSMap == null){\n\t\t\t\tlocalNSMap = {}\n\t\t\t\t//console.log(currentNSMap,0)\n\t\t\t\t_copy(currentNSMap,currentNSMap={})\n\t\t\t\t//console.log(currentNSMap,1)\n\t\t\t}\n\t\t\tcurrentNSMap[nsPrefix] = localNSMap[nsPrefix] = value;\n\t\t\ta.uri = NAMESPACE.XMLNS\n\t\t\tdomBuilder.startPrefixMapping(nsPrefix, value)\n\t\t}\n\t}\n\tvar i = el.length;\n\twhile(i--){\n\t\ta = el[i];\n\t\tvar prefix = a.prefix;\n\t\tif(prefix){//no prefix attribute has no namespace\n\t\t\tif(prefix === 'xml'){\n\t\t\t\ta.uri = NAMESPACE.XML;\n\t\t\t}if(prefix !== 'xmlns'){\n\t\t\t\ta.uri = currentNSMap[prefix || '']\n\n\t\t\t\t//{console.log('###'+a.qName,domBuilder.locator.systemId+'',currentNSMap,a.uri)}\n\t\t\t}\n\t\t}\n\t}\n\tvar nsp = tagName.indexOf(':');\n\tif(nsp>0){\n\t\tprefix = el.prefix = tagName.slice(0,nsp);\n\t\tlocalName = el.localName = tagName.slice(nsp+1);\n\t}else{\n\t\tprefix = null;//important!!\n\t\tlocalName = el.localName = tagName;\n\t}\n\t//no prefix element has default namespace\n\tvar ns = el.uri = currentNSMap[prefix || ''];\n\tdomBuilder.startElement(ns,localName,tagName,el);\n\t//endPrefixMapping and startPrefixMapping have not any help for dom builder\n\t//localNSMap = null\n\tif(el.closed){\n\t\tdomBuilder.endElement(ns,localName,tagName);\n\t\tif(localNSMap){\n\t\t\tfor (prefix in localNSMap) {\n\t\t\t\tif (Object.prototype.hasOwnProperty.call(localNSMap, prefix)) {\n\t\t\t\t\tdomBuilder.endPrefixMapping(prefix);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}else{\n\t\tel.currentNSMap = currentNSMap;\n\t\tel.localNSMap = localNSMap;\n\t\t//parseStack.push(el);\n\t\treturn true;\n\t}\n}\nfunction parseHtmlSpecialContent(source,elStartEnd,tagName,entityReplacer,domBuilder){\n\tif(/^(?:script|textarea)$/i.test(tagName)){\n\t\tvar elEndStart = source.indexOf('</'+tagName+'>',elStartEnd);\n\t\tvar text = source.substring(elStartEnd+1,elEndStart);\n\t\tif(/[&<]/.test(text)){\n\t\t\tif(/^script$/i.test(tagName)){\n\t\t\t\t//if(!/\\]\\]>/.test(text)){\n\t\t\t\t\t//lexHandler.startCDATA();\n\t\t\t\t\tdomBuilder.characters(text,0,text.length);\n\t\t\t\t\t//lexHandler.endCDATA();\n\t\t\t\t\treturn elEndStart;\n\t\t\t\t//}\n\t\t\t}//}else{//text area\n\t\t\t\ttext = text.replace(/&#?\\w+;/g,entityReplacer);\n\t\t\t\tdomBuilder.characters(text,0,text.length);\n\t\t\t\treturn elEndStart;\n\t\t\t//}\n\n\t\t}\n\t}\n\treturn elStartEnd+1;\n}\nfunction fixSelfClosed(source,elStartEnd,tagName,closeMap){\n\t//if(tagName in closeMap){\n\tvar pos = closeMap[tagName];\n\tif(pos == null){\n\t\t//console.log(tagName)\n\t\tpos = source.lastIndexOf('</'+tagName+'>')\n\t\tif(pos<elStartEnd){//忘记闭合\n\t\t\tpos = source.lastIndexOf('</'+tagName)\n\t\t}\n\t\tcloseMap[tagName] =pos\n\t}\n\treturn pos<elStartEnd;\n\t//}\n}\n\nfunction _copy (source, target) {\n\tfor (var n in source) {\n\t\tif (Object.prototype.hasOwnProperty.call(source, n)) {\n\t\t\ttarget[n] = source[n];\n\t\t}\n\t}\n}\n\nfunction parseDCC(source,start,domBuilder,errorHandler){//sure start with '<!'\n\tvar next= source.charAt(start+2)\n\tswitch(next){\n\tcase '-':\n\t\tif(source.charAt(start + 3) === '-'){\n\t\t\tvar end = source.indexOf('-->',start+4);\n\t\t\t//append comment source.substring(4,end)//<!--\n\t\t\tif(end>start){\n\t\t\t\tdomBuilder.comment(source,start+4,end-start-4);\n\t\t\t\treturn end+3;\n\t\t\t}else{\n\t\t\t\terrorHandler.error(\"Unclosed comment\");\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}else{\n\t\t\t//error\n\t\t\treturn -1;\n\t\t}\n\tdefault:\n\t\tif(source.substr(start+3,6) == 'CDATA['){\n\t\t\tvar end = source.indexOf(']]>',start+9);\n\t\t\tdomBuilder.startCDATA();\n\t\t\tdomBuilder.characters(source,start+9,end-start-9);\n\t\t\tdomBuilder.endCDATA()\n\t\t\treturn end+3;\n\t\t}\n\t\t//<!DOCTYPE\n\t\t//startDTD(java.lang.String name, java.lang.String publicId, java.lang.String systemId)\n\t\tvar matchs = split(source,start);\n\t\tvar len = matchs.length;\n\t\tif(len>1 && /!doctype/i.test(matchs[0][0])){\n\t\t\tvar name = matchs[1][0];\n\t\t\tvar pubid = false;\n\t\t\tvar sysid = false;\n\t\t\tif(len>3){\n\t\t\t\tif(/^public$/i.test(matchs[2][0])){\n\t\t\t\t\tpubid = matchs[3][0];\n\t\t\t\t\tsysid = len>4 && matchs[4][0];\n\t\t\t\t}else if(/^system$/i.test(matchs[2][0])){\n\t\t\t\t\tsysid = matchs[3][0];\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar lastMatch = matchs[len-1]\n\t\t\tdomBuilder.startDTD(name, pubid, sysid);\n\t\t\tdomBuilder.endDTD();\n\n\t\t\treturn lastMatch.index+lastMatch[0].length\n\t\t}\n\t}\n\treturn -1;\n}\n\n\n\nfunction parseInstruction(source,start,domBuilder){\n\tvar end = source.indexOf('?>',start);\n\tif(end){\n\t\tvar match = source.substring(start,end).match(/^<\\?(\\S*)\\s*([\\s\\S]*?)\\s*$/);\n\t\tif(match){\n\t\t\tvar len = match[0].length;\n\t\t\tdomBuilder.processingInstruction(match[1], match[2]) ;\n\t\t\treturn end+2;\n\t\t}else{//error\n\t\t\treturn -1;\n\t\t}\n\t}\n\treturn -1;\n}\n\nfunction ElementAttributes(){\n\tthis.attributeNames = {}\n}\nElementAttributes.prototype = {\n\tsetTagName:function(tagName){\n\t\tif(!tagNamePattern.test(tagName)){\n\t\t\tthrow new Error('invalid tagName:'+tagName)\n\t\t}\n\t\tthis.tagName = tagName\n\t},\n\taddValue:function(qName, value, offset) {\n\t\tif(!tagNamePattern.test(qName)){\n\t\t\tthrow new Error('invalid attribute:'+qName)\n\t\t}\n\t\tthis.attributeNames[qName] = this.length;\n\t\tthis[this.length++] = {qName:qName,value:value,offset:offset}\n\t},\n\tlength:0,\n\tgetLocalName:function(i){return this[i].localName},\n\tgetLocator:function(i){return this[i].locator},\n\tgetQName:function(i){return this[i].qName},\n\tgetURI:function(i){return this[i].uri},\n\tgetValue:function(i){return this[i].value}\n//\t,getIndex:function(uri, localName)){\n//\t\tif(localName){\n//\n//\t\t}else{\n//\t\t\tvar qName = uri\n//\t\t}\n//\t},\n//\tgetValue:function(){return this.getValue(this.getIndex.apply(this,arguments))},\n//\tgetType:function(uri,localName){}\n//\tgetType:function(i){},\n}\n\n\n\nfunction split(source,start){\n\tvar match;\n\tvar buf = [];\n\tvar reg = /'[^']+'|\"[^\"]+\"|[^\\s<>\\/=]+=?|(\\/?\\s*>|<)/g;\n\treg.lastIndex = start;\n\treg.exec(source);//skip <\n\twhile(match = reg.exec(source)){\n\t\tbuf.push(match);\n\t\tif(match[1])return buf;\n\t}\n}\n\nexports.XMLReader = XMLReader;\nexports.ParseError = ParseError;\n",null,"import {INDENT_STRING, NEWLINE_STRING, IToXmlOptions} from '../options.ts';\nimport {\n\tIElement,\n\tassertXmlTagName,\n\txmlElementChildElements,\n\txmlElementText\n} from '../util.ts';\nimport {Value} from '../value.ts';\n\nimport {ValueArray} from './array.ts';\nimport {ValueBoolean} from './boolean.ts';\nimport {ValueData} from './data.ts';\nimport {ValueInteger} from './integer.ts';\nimport {ValueReal} from './real.ts';\nimport {ValueString} from './string.ts';\n\nlet childTagNames: Readonly<Map<string, new () => Value>>;\n\n/**\n * ValueDict object.\n */\nexport class ValueDict extends Value {\n\t/**\n\t * Value type.\n\t */\n\tpublic static readonly TYPE = 'dict';\n\n\t/**\n\t * Tag names.\n\t */\n\tpublic static readonly TAG_NAMES = ['dict'];\n\n\t/**\n\t * Child tag names.\n\t *\n\t * @returns Child tag names map.\n\t */\n\t// eslint-disable-next-line @typescript-eslint/naming-convention\n\tpublic static get CHILD_TAG_NAMES() {\n\t\tif (!childTagNames) {\n\t\t\tchildTagNames = new Map();\n\t\t\tfor (const ValueType of [\n\t\t\t\tValueArray,\n\t\t\t\tValueBoolean,\n\t\t\t\tValueData,\n\t\t\t\tValueDict,\n\t\t\t\tValueInteger,\n\t\t\t\tValueReal,\n\t\t\t\tValueString\n\t\t\t]) {\n\t\t\t\tfor (const t of ValueType.TAG_NAMES) {\n\t\t\t\t\tchildTagNames.set(t, ValueType);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn childTagNames;\n\t}\n\n\t/**\n\t * Value value.\n\t */\n\tpublic value = new Map<string, Value>();\n\n\t/**\n\t * ValueDict constructor.\n\t *\n\t * @param value The value.\n\t */\n\tconstructor(value = new Map<string, Value>()) {\n\t\tsuper();\n\n\t\tthis.value = value;\n\t}\n\n\t/**\n\t * Dictionary size.\n\t *\n\t * @returns The size.\n\t */\n\tpublic get size() {\n\t\treturn this.value.size;\n\t}\n\n\t/**\n\t * Check if key exists.\n\t *\n\t * @param key Dictionary key.\n\t * @returns The value or null.\n\t */\n\tpublic has(key: string) {\n\t\treturn this.value.has(key);\n\t}\n\n\t/**\n\t * Get value for key or null if does not exist.\n\t *\n\t * @param key Dictionary key.\n\t * @returns The value or null.\n\t */\n\tpublic get(key: string) {\n\t\treturn this.value.get(key) || null;\n\t}\n\n\t/**\n\t * Get value for key or throw.\n\t *\n\t * @param key Dictionary key.\n\t * @returns The value.\n\t */\n\tpublic getValue(key: string) {\n\t\tconst r = this.get(key);\n\t\tif (!r) {\n\t\t\tthrow new Error(`Key is null: ${key}`);\n\t\t}\n\t\treturn r;\n\t}\n\n\t/**\n\t * Set value for key.\n\t *\n\t * @param key Dictionary key.\n\t * @param value Value object.\n\t */\n\tpublic set(key: string, value: Value) {\n\t\tthis.value.set(key, value);\n\t}\n\n\t/**\n\t * Delete value for key.\n\t *\n\t * @param key Dictionary key.\n\t */\n\tpublic delete(key: string) {\n\t\tthis.value.delete(key);\n\t}\n\n\t/**\n\t * Clear dictionary.\n\t */\n\tpublic clear() {\n\t\tthis.value.clear();\n\t}\n\n\t/**\n\t * @inheritdoc\n\t */\n\tpublic fromXmlElement(element: Readonly<IElement>) {\n\t\tassertXmlTagName(element, 'dict');\n\t\tconst children = xmlElementChildElements(element);\n\t\tconst l = children.length;\n\t\tif (l % 2) {\n\t\t\tthrow new Error(`Uneven number of child elements: ${l}`);\n\t\t}\n\t\tconst v: Map<string, Value> = new Map();\n\t\tfor (let i = 0; i < l; i += 2) {\n\t\t\tconst eK = children[i];\n\t\t\tconst eV = children[i + 1];\n\t\t\tassertXmlTagName(eK, 'key');\n\t\t\tconst key = xmlElementText(eK)?.nodeValue || '';\n\t\t\tconst value = this.childFromXmlElement(eV);\n\t\t\tv.set(key, value);\n\t\t}\n\t\tthis.value = v;\n\t}\n\n\t/**\n\t * Decode child element from XML element.\n\t *\n\t * @param element XML element.\n\t * @returns Value element.\n\t */\n\tpublic childFromXmlElement(element: Readonly<IElement>) {\n\t\tconst {tagName} = element;\n\t\tconst {CHILD_TAG_NAMES} = this.constructor as typeof ValueDict;\n\t\tconst Value = CHILD_TAG_NAMES.get(tagName) || null;\n\t\tif (!Value) {\n\t\t\tthrow new Error(`Unknown element type: ${tagName}`);\n\t\t}\n\t\tconst r = new Value();\n\t\tr.fromXmlElement(element);\n\t\treturn r;\n\t}\n\n\t/**\n\t * @inheritdoc\n\t */\n\tpublic toXml(options: Readonly<IToXmlOptions> | null = null, depth = 0) {\n\t\tconst i = options?.indentString ?? INDENT_STRING;\n\t\tconst n = options?.newlineString ?? NEWLINE_STRING;\n\t\tconst p = i.repeat(depth);\n\t\tconst v = this.value;\n\t\tif (!v.size) {\n\t\t\treturn `${p}<dict/>`;\n\t\t}\n\t\tconst p2 = i.repeat(depth + 1);\n\t\tlet r = `${p}<dict>`;\n\t\tfor (const [key, val] of v) {\n\t\t\tconst e = key\n\t\t\t\t.replaceAll('&', '&')\n\t\t\t\t.replaceAll('<', '<')\n\t\t\t\t.replaceAll('>', '>');\n\t\t\tr += `${n}${p2}<key>${e}</key>${n}${val.toXml(options, depth + 1)}`;\n\t\t}\n\t\tr += `${n}${p}</dict>`;\n\t\treturn r;\n\t}\n}\n",null,"import {IToXmlOptions} from './options.ts';\nimport {IElement, xmlDecode} from './util.ts';\n\n/**\n * Value object.\n */\nexport abstract class Value {\n\t/**\n\t * Value type.\n\t */\n\tpublic static readonly TYPE: string;\n\n\t/**\n\t * Tag names.\n\t */\n\tpublic static readonly TAG_NAMES: string[];\n\n\t/**\n\t * Value constructor.\n\t */\n\tconstructor() {}\n\n\t/**\n\t * Value type.\n\t *\n\t * @returns Type string.\n\t */\n\tpublic get type() {\n\t\treturn (this.constructor as typeof Value).TYPE;\n\t}\n\n\t/**\n\t * Cast to specific type or null.\n\t *\n\t * @param Type Type constructor.\n\t * @returns This object or null.\n\t */\n\tpublic castTo<T extends typeof Value>(Type: T): T['prototype'] | null {\n\t\treturn this.type === Type.TYPE ? this : null;\n\t}\n\n\t/**\n\t * Cast to specific type or throw.\n\t *\n\t * @param Type Type constructor.\n\t * @returns This object.\n\t */\n\tpublic castAs<T extends typeof Value>(Type: T): T['prototype'] {\n\t\tconst casted = this.castTo(Type);\n\t\tif (!casted) {\n\t\t\tthrow new Error(\n\t\t\t\t`Cannot cast type '${this.type}' to '${Type.TYPE}'`\n\t\t\t);\n\t\t}\n\t\treturn casted;\n\t}\n\n\t/**\n\t * Decode document from string.\n\t *\n\t * @param xml XML string.\n\t */\n\tpublic fromXml(xml: string) {\n\t\tconst {documentElement} = xmlDecode(xml);\n\t\tthis.fromXmlElement(documentElement);\n\t}\n\n\t/**\n\t * Decode value from element.\n\t *\n\t * @param element XML element.\n\t */\n\tpublic abstract fromXmlElement(element: Readonly<IElement>): void;\n\n\t/**\n\t * Encode Value to string.\n\t *\n\t * @param options Options object.\n\t * @param depth Indent depth.\n\t * @returns Xml string.\n\t */\n\tpublic abstract toXml(\n\t\toptions?: Readonly<IToXmlOptions> | null,\n\t\tdepth?: number\n\t): string;\n}\n",null,"import {INDENT_STRING, NEWLINE_STRING, IToXmlOptions} from '../options.ts';\nimport {IElement, assertXmlTagName, xmlElementChildElements} from '../util.ts';\nimport {Value} from '../value.ts';\n\nimport {ValueBoolean} from './boolean.ts';\nimport {ValueData} from './data.ts';\nimport {ValueDict} from './dict.ts';\nimport {ValueInteger} from './integer.ts';\nimport {ValueReal} from './real.ts';\nimport {ValueString} from './string.ts';\n\nlet childTagNames: Readonly<Map<string, new () => Value>>;\n\n/**\n * ValueArray object.\n */\nexport class ValueArray extends Value {\n\t/**\n\t * Value type.\n\t */\n\tpublic static readonly TYPE = 'array';\n\n\t/**\n\t * Tag names.\n\t */\n\tpublic static readonly TAG_NAMES = ['array'];\n\n\t/**\n\t * Child tag names.\n\t *\n\t * @returns Child tag names map.\n\t */\n\t// eslint-disable-next-line @typescript-eslint/naming-convention\n\tpublic static get CHILD_TAG_NAMES() {\n\t\tif (!childTagNames) {\n\t\t\tchildTagNames = new Map();\n\t\t\tfor (const ValueType of [\n\t\t\t\tValueArray,\n\t\t\t\tValueBoolean,\n\t\t\t\tValueData,\n\t\t\t\tValueDict,\n\t\t\t\tValueInteger,\n\t\t\t\tValueReal,\n\t\t\t\tValueString\n\t\t\t]) {\n\t\t\t\tfor (const t of ValueType.TAG_NAMES) {\n\t\t\t\t\tchildTagNames.set(t, ValueType);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn childTagNames;\n\t}\n\n\t/**\n\t * Value value.\n\t */\n\tpublic value: Value[] = [];\n\n\t/**\n\t * ValueArray constructor.\n\t *\n\t * @param value The value.\n\t */\n\tconstructor(value: Value[] = []) {\n\t\tsuper();\n\n\t\tthis.value = value;\n\t}\n\n\t/**\n\t * Array length.\n\t *\n\t * @returns The length.\n\t */\n\tpublic get length() {\n\t\treturn this.value.length;\n\t}\n\n\t/**\n\t * Get value at index or null if out of bounds.\n\t *\n\t * @param index Array index.\n\t * @returns The value or null.\n\t */\n\tpublic get(index: number) {\n\t\tconst {value} = this;\n\t\treturn index < this.length ? value[index] : null;\n\t}\n\n\t/**\n\t * Get value at index or throw.\n\t *\n\t * @param index Array index.\n\t * @returns The value.\n\t */\n\tpublic getValue(index: number) {\n\t\tconst r = this.get(index);\n\t\tif (!r) {\n\t\t\tthrow new Error(`Index out of bounds: ${index}`);\n\t\t}\n\t\treturn r;\n\t}\n\n\t/**\n\t * Set value at index.\n\t *\n\t * @param index Array index.\n\t * @param value Value object.\n\t */\n\tpublic set(index: number, value: Value) {\n\t\tthis.value[index] = value;\n\t}\n\n\t/**\n\t * Push values onto array.\n\t *\n\t * @param values Value objects.\n\t */\n\tpublic push(...values: Value[]) {\n\t\tthis.value.push(...values);\n\t}\n\n\t/**\n\t * Pop value off array or null.\n\t *\n\t * @returns Value object or null.\n\t */\n\tpublic pop() {\n\t\treturn this.value.pop() || null;\n\t}\n\n\t/**\n\t * Pop value off array or throw.\n\t *\n\t * @returns Value object or null.\n\t */\n\tpublic popValue() {\n\t\tconst r = this.pop();\n\t\tif (!r) {\n\t\t\tthrow new Error('Cannot pop empty array');\n\t\t}\n\t\treturn r;\n\t}\n\n\t/**\n\t * Shift value off array or null.\n\t *\n\t * @returns Value object or null.\n\t */\n\tpublic shift() {\n\t\treturn this.value.shift() || null;\n\t}\n\n\t/**\n\t * Pop value off array or throw.\n\t *\n\t * @returns Value object or null.\n\t */\n\tpublic shiftValue() {\n\t\tconst r = this.shift();\n\t\tif (!r) {\n\t\t\tthrow new Error('Cannot shift empty array');\n\t\t}\n\t\treturn r;\n\t}\n\n\t/**\n\t * @inheritdoc\n\t */\n\tpublic fromXmlElement(element: Readonly<IElement>) {\n\t\tassertXmlTagName(element, 'array');\n\t\tconst children = xmlElementChildElements(element);\n\t\tthis.value = children.map(el => this.childFromXmlElement(el));\n\t}\n\n\t/**\n\t * Decode child element from XML element.\n\t *\n\t * @param element XML element.\n\t * @returns Value element.\n\t */\n\tpublic childFromXmlElement(element: Readonly<IElement>) {\n\t\tconst {tagName} = element;\n\t\tconst {CHILD_TAG_NAMES} = this.constructor as typeof ValueArray;\n\t\tconst Value = CHILD_TAG_NAMES.get(tagName) || null;\n\t\tif (!Value) {\n\t\t\tthrow new Error(`Unknown element type: ${tagName}`);\n\t\t}\n\t\tconst r = new Value();\n\t\tr.fromXmlElement(element);\n\t\treturn r;\n\t}\n\n\t/**\n\t * @inheritdoc\n\t */\n\tpublic toXml(options: Readonly<IToXmlOptions> | null = null, depth = 0) {\n\t\tconst n = options?.newlineString ?? NEWLINE_STRING;\n\t\tconst p = (options?.indentString ?? INDENT_STRING).repeat(depth);\n\t\tconst v = this.value;\n\t\tif (!v.length) {\n\t\t\treturn `${p}<array/>`;\n\t\t}\n\t\tlet r = `${p}<array>`;\n\t\tfor (const el of v) {\n\t\t\tr += `${n}${el.toXml(options, depth + 1)}`;\n\t\t}\n\t\tr += `${n}${p}</array>`;\n\t\treturn r;\n\t}\n}\n",null,"import {INDENT_STRING, IToXmlOptions} from '../options.ts';\nimport {\n\tIElement,\n\tassertNoXmlElementChildNodes,\n\tassertXmlTagName\n} from '../util.ts';\nimport {Value} from '../value.ts';\n\n/**\n * ValueBoolean object.\n */\nexport class ValueBoolean extends Value {\n\t/**\n\t * Value type.\n\t */\n\tpublic static readonly TYPE = 'boolean';\n\n\t/**\n\t * Tag names.\n\t */\n\tpublic static readonly TAG_NAMES = ['true', 'false'];\n\n\t/**\n\t * Value value.\n\t */\n\tpublic value = false;\n\n\t/**\n\t * ValueBoolean constructor.\n\t *\n\t * @param value The value.\n\t */\n\tconstructor(value = false) {\n\t\tsuper();\n\n\t\tthis.value = value;\n\t}\n\n\t/**\n\t * @inheritdoc\n\t */\n\tpublic fromXmlElement(element: Readonly<IElement>) {\n\t\tassertNoXmlElementChildNodes(element);\n\t\tswitch (element.tagName) {\n\t\t\tcase 'true': {\n\t\t\t\tthis.value = true;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tcase 'false': {\n\t\t\t\tthis.value = false;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tdefault: {\n\t\t\t\tthrow assertXmlTagName(element, '');\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * @inheritdoc\n\t */\n\tpublic toXml(options: Readonly<IToXmlOptions> | null = null, depth = 0) {\n\t\tconst p = (options?.indentString ?? INDENT_STRING).repeat(depth);\n\t\treturn this.value ? `${p}<true/>` : `${p}<false/>`;\n\t}\n}\n",null,"import {\n\tDATA_COLUMNS,\n\tINDENT_STRING,\n\tIToXmlOptions,\n\tNEWLINE_STRING\n} from '../options.ts';\nimport {\n\tIElement,\n\tassertXmlTagName,\n\tbase64Decode,\n\tbase64Encode,\n\txmlElementText\n} from '../util.ts';\nimport {Value} from '../value.ts';\n\n/**\n * ValueData object.\n */\nexport class ValueData extends Value {\n\t/**\n\t * Value type.\n\t */\n\tpublic static readonly TYPE = 'data';\n\n\t/**\n\t * Tag names.\n\t */\n\tpublic static readonly TAG_NAMES = ['data'];\n\n\t/**\n\t * Value value.\n\t */\n\tpublic value: Uint8Array;\n\n\t/**\n\t * ValueData constructor.\n\t *\n\t * @param value The value.\n\t */\n\tconstructor(value = new Uint8Array(0)) {\n\t\tsuper();\n\n\t\tthis.value = value;\n\t}\n\n\t/**\n\t * @inheritdoc\n\t */\n\tpublic fromXmlElement(element: Readonly<IElement>) {\n\t\tassertXmlTagName(element, 'data');\n\t\tconst text = xmlElementText(element)?.nodeValue || '';\n\t\tthis.value = base64Decode(text);\n\t}\n\n\t/**\n\t * @inheritdoc\n\t */\n\tpublic toXml(options: Readonly<IToXmlOptions> | null = null, depth = 0) {\n\t\tconst n = options?.newlineString ?? NEWLINE_STRING;\n\t\tconst c = options?.dataColumns ?? DATA_COLUMNS;\n\t\tconst p = (options?.indentString ?? INDENT_STRING).repeat(depth);\n\t\tlet r = `${p}<data>`;\n\t\tif (c > 0) {\n\t\t\tfor (let s = base64Encode(this.value); s; s = s.slice(c)) {\n\t\t\t\tr += `${n}${p}${s.slice(0, c)}`;\n\t\t\t}\n\t\t} else {\n\t\t\tr += `${n}${p}${base64Encode(this.value)}`;\n\t\t}\n\t\tr += `${n}${p}</data>`;\n\t\treturn r;\n\t}\n}\n",null,"import {INDENT_STRING, IToXmlOptions} from '../options.ts';\nimport {IElement, assertXmlTagName, xmlElementText} from '../util.ts';\nimport {Value} from '../value.ts';\n\nconst MAX_NUM = 0x1fffffffffffff;\n\n/**\n * Assert number is integer.\n *\n * @param value Number value.\n */\nfunction assertInteger(value: number | bigint) {\n\tif (typeof value === 'number' && !Number.isInteger(value)) {\n\t\t// eslint-disable-next-line unicorn/prefer-type-error\n\t\tthrow new Error(`Value not an integer: ${value}`);\n\t}\n}\n\n/**\n * ValueInteger object.\n */\nexport class ValueInteger extends Value {\n\t/**\n\t * Value type.\n\t */\n\tpublic static readonly TYPE = 'integer';\n\n\t/**\n\t * Tag names.\n\t */\n\tpublic static readonly TAG_NAMES = ['integer'];\n\n\t/**\n\t * Value value.\n\t */\n\tpublic value: number | bigint = 0;\n\n\t/**\n\t * ValueInteger constructor.\n\t *\n\t * @param value The value.\n\t */\n\tconstructor(value: number | bigint = 0) {\n\t\tsuper();\n\n\t\tassertInteger(value);\n\t\tthis.value = value;\n\t}\n\n\t/**\n\t * Get value as BigInt.\n\t *\n\t * @returns Value as a BigInt.\n\t */\n\tpublic asBigInt() {\n\t\treturn BigInt(this.value);\n\t}\n\n\t/**\n\t * Get value as Number, possibly losing some precision.\n\t *\n\t * @returns Value as a Number.\n\t */\n\tpublic asNumber() {\n\t\treturn Number(this.value);\n\t}\n\n\t/**\n\t * @inheritdoc\n\t */\n\tpublic fromXmlElement(element: Readonly<IElement>) {\n\t\tassertXmlTagName(element, 'integer');\n\t\tconst text = xmlElementText(element)?.nodeValue || '';\n\t\tif (!/^[+-]?\\d+$/.test(text)) {\n\t\t\tthrow new Error(`Invalid integer data: ${text}`);\n\t\t}\n\t\tconst num = +text;\n\t\tthis.value = num > MAX_NUM || num < -MAX_NUM ? BigInt(text) : num;\n\t}\n\n\t/**\n\t * @inheritdoc\n\t */\n\tpublic toXml(options: Readonly<IToXmlOptions> | null = null, depth = 0) {\n\t\tconst p = (options?.indentString ?? INDENT_STRING).repeat(depth);\n\t\tconst v = this.value;\n\t\tassertInteger(v);\n\t\treturn `${p}<integer>${v}</integer>`;\n\t}\n}\n",null,"import {INDENT_STRING, IToXmlOptions} from '../options.ts';\nimport {IElement, assertXmlTagName, xmlElementText} from '../util.ts';\nimport {Value} from '../value.ts';\n\n/**\n * ValueReal object.\n */\nexport class ValueReal extends Value {\n\t/**\n\t * Value type.\n\t */\n\tpublic static readonly TYPE = 'real';\n\n\t/**\n\t * Tag names.\n\t */\n\tpublic static readonly TAG_NAMES = ['real'];\n\n\t/**\n\t * Value value.\n\t */\n\tpublic value = 0;\n\n\t/**\n\t * ValueReal constructor.\n\t *\n\t * @param value The value.\n\t */\n\tconstructor(value = 0) {\n\t\tsuper();\n\n\t\tthis.value = value;\n\t}\n\n\t/**\n\t * @inheritdoc\n\t */\n\tpublic fromXmlElement(element: Readonly<IElement>) {\n\t\tassertXmlTagName(element, 'real');\n\t\tconst text = xmlElementText(element)?.nodeValue || '';\n\t\tif (!/^[+-]?(\\d+|\\d*\\.\\d+)$/.test(text)) {\n\t\t\tthrow new Error(`Invalid real data: ${text}`);\n\t\t}\n\t\tthis.value = +text;\n\t}\n\n\t/**\n\t * @inheritdoc\n\t */\n\tpublic toXml(options: Readonly<IToXmlOptions> | null = null, depth = 0) {\n\t\tconst p = (options?.indentString ?? INDENT_STRING).repeat(depth);\n\t\tconst v = this.value;\n\t\treturn `${p}<real>${v}</real>`;\n\t}\n}\n",null,"import {INDENT_STRING, IToXmlOptions} from '../options.ts';\nimport {IElement, assertXmlTagName, xmlElementText} from '../util.ts';\nimport {Value} from '../value.ts';\n\n/**\n * ValueString object.\n */\nexport class ValueString extends Value {\n\t/**\n\t * Value type.\n\t */\n\tpublic static readonly TYPE = 'string';\n\n\t/**\n\t * Tag names.\n\t */\n\tpublic static readonly TAG_NAMES = ['string'];\n\n\t/**\n\t * Value value.\n\t */\n\tpublic value = '';\n\n\t/**\n\t * ValueString constructor.\n\t *\n\t * @param value The value.\n\t */\n\tconstructor(value = '') {\n\t\tsuper();\n\n\t\tthis.value = value;\n\t}\n\n\t/**\n\t * @inheritdoc\n\t */\n\tpublic fromXmlElement(element: Readonly<IElement>) {\n\t\tassertXmlTagName(element, 'string');\n\t\tthis.value = xmlElementText(element)?.nodeValue || '';\n\t}\n\n\t/**\n\t * @inheritdoc\n\t */\n\tpublic toXml(options: Readonly<IToXmlOptions> | null = null, depth = 0) {\n\t\tconst p = (options?.indentString ?? INDENT_STRING).repeat(depth);\n\t\tconst e = this.value\n\t\t\t.replaceAll('&', '&')\n\t\t\t.replaceAll('<', '<')\n\t\t\t.replaceAll('>', '>');\n\t\treturn `${p}<string>${e}</string>`;\n\t}\n}\n",null,"/* eslint-disable max-classes-per-file */\n\nimport {createWriteStream} from 'node:fs';\nimport {mkdir, rm, writeFile} from 'node:fs/promises';\nimport {dirname, resolve} from 'node:path';\nimport {Readable, pipeline} from 'node:stream';\nimport {promisify} from 'node:util';\n\nconst pipe = promisify(pipeline);\n\nimport {PathType} from './types';\nimport {\n\tfsChmod,\n\tfsLchmod,\n\tfsLstatExists,\n\tfsLutimes,\n\tfsSymlink,\n\tfsUtimes,\n\tmodePermissionBits,\n\tpathNormalize,\n\tpathResourceFork,\n\tstreamToBuffer\n} from './util';\n\nexport interface IArchiveAfterReadSetAttributesEntry {\n\t/**\n\t * Extract path, relative.\n\t */\n\tpath: string;\n\n\t/**\n\t * Entry.\n\t */\n\tentry: Entry;\n\n\t/**\n\t * Extract options.\n\t */\n\toptions: IExtractOptions;\n}\n\nexport interface IExtractOptions {\n\t/**\n\t * Replace whatever may be at the path.\n\t * A directory will not replace another directory.\n\t *\n\t * @default false\n\t */\n\treplace?: boolean;\n\n\t/**\n\t * Ignore permissions when extracting.\n\t *\n\t * @default false\n\t */\n\tignorePermissions?: boolean;\n\n\t/**\n\t * Ignore file modification and access times when extracting.\n\t *\n\t * @default false\n\t */\n\tignoreTimes?: boolean;\n\n\t/**\n\t * Extract resource fork as a file.\n\t *\n\t * @default false\n\t */\n\tresourceForkAsFile?: boolean;\n\n\t/**\n\t * Extract symlink as a file.\n\t *\n\t * @default false\n\t */\n\tsymlinkAsFile?: boolean;\n}\n\nexport interface IEntryInfo {\n\t/**\n\t * Entry archive.\n\t */\n\tarchive: Archive;\n\n\t/**\n\t * Entry type.\n\t */\n\ttype: PathType;\n\n\t/**\n\t * Entry path, raw.\n\t */\n\tpathRaw: string;\n\n\t/**\n\t * Entry size.\n\t */\n\tsize?: number | null;\n\n\t/**\n\t * Entry size, compressed.\n\t */\n\tsizeComp?: number | null;\n\n\t/**\n\t * Entry mode.\n\t */\n\tmode?: number | null;\n\n\t/**\n\t * Entry uid.\n\t */\n\tuid?: number | null;\n\n\t/**\n\t * Entry gid.\n\t */\n\tgid?: number | null;\n\n\t/**\n\t * Entry uname.\n\t */\n\tuname?: string | null;\n\n\t/**\n\t * Entry gname.\n\t */\n\tgname?: string | null;\n\n\t/**\n\t * Entry atime.\n\t */\n\tatime?: Date | null;\n\n\t/**\n\t * Entry mtime.\n\t */\n\tmtime?: Date | null;\n\n\t/**\n\t * Read data.\n\t */\n\treadData?: (() => Promise<Readable | null>) | null;\n\n\t/**\n\t * Read rsrc.\n\t */\n\treadRsrc?: (() => Promise<Readable | null>) | null;\n\n\t/**\n\t * Read symlink.\n\t */\n\treadSymlink?: (() => Promise<Buffer>) | null;\n}\n\n/**\n * Entry object.\n */\nexport abstract class Entry {\n\t/**\n\t * Entry archive.\n\t */\n\tpublic readonly archive: Archive;\n\n\t/**\n\t * Entry type.\n\t */\n\tpublic readonly type: PathType;\n\n\t/**\n\t * Entry path.\n\t */\n\tpublic readonly path: string;\n\n\t/**\n\t * Entry path, raw.\n\t */\n\tpublic readonly pathRaw: string;\n\n\t/**\n\t * Entry size.\n\t */\n\tpublic readonly size: number | null;\n\n\t/**\n\t * Entry size, compressed.\n\t */\n\tpublic readonly sizeComp: number | null;\n\n\t/**\n\t * Entry mode.\n\t */\n\tpublic readonly mode: number | null;\n\n\t/**\n\t * Entry uid.\n\t */\n\tpublic readonly uid: number | null;\n\n\t/**\n\t * Entry gid.\n\t */\n\tpublic readonly gid: number | null;\n\n\t/**\n\t * Entry uname.\n\t */\n\tpublic readonly uname: string | null;\n\n\t/**\n\t * Entry gname.\n\t */\n\tpublic readonly gname: string | null;\n\n\t/**\n\t * Entry atime.\n\t */\n\tpublic readonly atime: Date | null;\n\n\t/**\n\t * Entry mtime.\n\t */\n\tpublic readonly mtime: Date | null;\n\n\t/**\n\t * Read data.\n\t */\n\tprotected readonly _readData: (() => Promise<Readable | null>) | null;\n\n\t/**\n\t * Read rsrc.\n\t */\n\tprotected readonly _readRsrc: (() => Promise<Readable | null>) | null;\n\n\t/**\n\t * Read symlink.\n\t */\n\tprotected readonly _readSymlink: (() => Promise<Buffer>) | null;\n\n\t/**\n\t * Entry triggering.\n\t */\n\tprotected _triggering = false;\n\n\t/**\n\t * Entry triggered.\n\t */\n\tprotected _triggered = false;\n\n\t/**\n\t * Entry extracted.\n\t */\n\tprotected _extracted = false;\n\n\t/**\n\t * Entry constructor.\n\t *\n\t * @param info Info object.\n\t */\n\tconstructor(info: Readonly<IEntryInfo>) {\n\t\tthis.archive = info.archive;\n\t\tthis.type = info.type;\n\t\tthis.pathRaw = info.pathRaw;\n\t\tthis.path = pathNormalize(info.pathRaw);\n\t\tthis.size = info.size ?? null;\n\t\tthis.sizeComp = info.sizeComp ?? null;\n\t\tthis.mode = info.mode ?? null;\n\t\tthis.uid = info.uid ?? null;\n\t\tthis.gid = info.gid ?? null;\n\t\tthis.uname = info.uname ?? null;\n\t\tthis.gname = info.gname ?? null;\n\t\tthis.atime = info.atime ?? null;\n\t\tthis.mtime = info.mtime ?? null;\n\t\tthis._readData = info.readData ?? null;\n\t\tthis._readRsrc = info.readRsrc ?? null;\n\t\tthis._readSymlink = info.readSymlink ?? null;\n\t}\n\n\t/**\n\t * This entry path includes named volume.\n\t *\n\t * @returns Entry has volume name in path.\n\t */\n\tpublic get hasNamedVolume() {\n\t\treturn this.archive.hasNamedVolumes;\n\t}\n\n\t/**\n\t * This entry volume name, or null.\n\t *\n\t * @returns Entry path volume name.\n\t */\n\tpublic get volumeName() {\n\t\tif (this.hasNamedVolume) {\n\t\t\tconst {path} = this;\n\t\t\treturn path.substring(0, path.indexOf('/'));\n\t\t}\n\t\treturn null;\n\t}\n\n\t/**\n\t * This entry path without any possible volume name.\n\t *\n\t * @returns Entry path without the volume name.\n\t */\n\tpublic get volumePath() {\n\t\tconst {path} = this;\n\t\tif (this.hasNamedVolume) {\n\t\t\treturn path.substring(path.indexOf('/') + 1);\n\t\t}\n\t\treturn path;\n\t}\n\n\t/**\n\t * Read entry as stream, or null if nothing to read.\n\t * Consuming function will need to wait for stream to close.\n\t *\n\t * @returns Readable stream or null if nothing to read.\n\t */\n\tpublic async stream() {\n\t\tthis._beginExtract();\n\t\treturn this._stream();\n\t}\n\n\t/**\n\t * Read entire entry into a Buffer.\n\t *\n\t * @returns Buffer or null if nothing to be read.\n\t */\n\tpublic async read() {\n\t\tthis._beginExtract();\n\t\tconst stream = await this._stream();\n\t\treturn stream ? streamToBuffer(stream) : null;\n\t}\n\n\t/**\n\t * Extract entry.\n\t *\n\t * @param path Extract path.\n\t * @param options Extract options.\n\t */\n\tpublic async extract(\n\t\tpath: string,\n\t\toptions: Readonly<IExtractOptions> = {}\n\t) {\n\t\tthis._beginExtract();\n\t\tawait this._extract(path, options);\n\t}\n\n\t/**\n\t * Trigger on itterator function.\n\t *\n\t * @param itter Itterator function.\n\t * @returns Return value.\n\t */\n\tpublic async trigger<T, U extends (entry: this) => Promise<T>>(itter: U) {\n\t\tlet r: T;\n\t\tif (this._triggered) {\n\t\t\tthrow new Error('Archive entry already triggered');\n\t\t}\n\t\tthis._triggered = this._triggering = true;\n\t\ttry {\n\t\t\tr = await itter(this);\n\t\t} finally {\n\t\t\tthis._triggering = false;\n\t\t}\n\t\treturn r;\n\t}\n\n\t/**\n\t * Run again after reading.\n\t *\n\t * @param path Extract path, relative.\n\t * @param pathFull An optional full path to be used.\n\t * @param options Extract options.\n\t */\n\tpublic async setAttributes(\n\t\tpath: string,\n\t\tpathFull: string | null = null,\n\t\toptions: Readonly<IExtractOptions> = {}\n\t) {\n\t\tconst pathSet = pathFull === null ? path : pathFull;\n\n\t\tconst {ignorePermissions, ignoreTimes} = options;\n\n\t\tconst {type, mode, atime, mtime} = this;\n\n\t\tlet link = false;\n\t\tswitch (type) {\n\t\t\tcase PathType.FILE: {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase PathType.RESOURCE_FORK: {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase PathType.DIRECTORY: {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase PathType.SYMLINK: {\n\t\t\t\tlink = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdefault: {\n\t\t\t\tthrow new Error(`Unsupported path type: ${type as string}`);\n\t\t\t}\n\t\t}\n\n\t\tconst atimeSet = atime || mtime || null;\n\t\tconst mtimeSet = mtime || atime || null;\n\n\t\tif (!ignorePermissions && mode !== null) {\n\t\t\tconst chmod = link ? fsLchmod : fsChmod;\n\t\t\tconst modeSet = modePermissionBits(mode);\n\t\t\tawait chmod(pathSet, modeSet);\n\t\t}\n\n\t\tif (!ignoreTimes && atimeSet && mtimeSet) {\n\t\t\tconst utimes = link ? fsLutimes : fsUtimes;\n\t\t\tawait utimes(pathSet, atimeSet, mtimeSet);\n\t\t}\n\t}\n\n\t/**\n\t * Method to call before begining extraction.\n\t * Throws error if extraction already started or entry not active.\n\t */\n\tprotected _beginExtract() {\n\t\tif (!this._triggering) {\n\t\t\tthrow new Error('Archive entry is not active');\n\t\t}\n\t\tif (this._extracted) {\n\t\t\tthrow new Error('Archive entry can only be extracted once');\n\t\t}\n\t\tthis._extracted = true;\n\t}\n\n\t/**\n\t * Create an extract error for path that exists.\n\t *\n\t * @param path Extract path.\n\t * @returns Error object.\n\t */\n\tprotected _errorExtractPathExists(path: string) {\n\t\treturn new Error(`Extract path already exists: ${path}`);\n\t}\n\n\t/**\n\t * Create an extract error for a resource fork not going to a file.\n\t *\n\t * @param path Extract path.\n\t * @returns Error object.\n\t */\n\tprotected _errorNoResourceFork(path: string) {\n\t\treturn new Error(`Extract path for resource fork not a file: ${path}`);\n\t}\n\n\t/**\n\t * Extract entry.\n\t *\n\t * @param path Extract path.\n\t * @param options Extract options.\n\t */\n\tprotected async _extract(path: string, options: Readonly<IExtractOptions>) {\n\t\tthis.archive.afterReadSetAttributesRemove(path);\n\n\t\tconst {type} = this;\n\t\tswitch (type) {\n\t\t\tcase PathType.FILE: {\n\t\t\t\tawait this._extractFile(path, options);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase PathType.RESOURCE_FORK: {\n\t\t\t\tawait this._extractResourceFork(path, options);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase PathType.DIRECTORY: {\n\t\t\t\tawait this._extractDirectory(path, options);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase PathType.SYMLINK: {\n\t\t\t\tawait this._extractSymlink(path, options);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdefault: {\n\t\t\t\tthrow new Error(`Unsupported path type: ${type as string}`);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Base function for extracting stream to a file.\n\t *\n\t * @param path Extract path.\n\t * @param reader Reader function.\n\t * @param options Extract options.\n\t */\n\tprotected async _extractStreamToFile(\n\t\tpath: string,\n\t\treader: () => Promise<Readable | null>,\n\t\toptions: Readonly<IExtractOptions>\n\t) {\n\t\tconst {replace} = options;\n\n\t\t// Check if something exists at path, optionally removing.\n\t\tconst stat = await fsLstatExists(path);\n\t\tif (stat) {\n\t\t\t// If replacing, then remove, else throw.\n\t\t\tif (replace) {\n\t\t\t\tawait rm(path, {recursive: true, force: true});\n\t\t\t} else {\n\t\t\t\tthrow this._errorExtractPathExists(path);\n\t\t\t}\n\t\t} else {\n\t\t\tawait mkdir(dirname(path), {recursive: true});\n\t\t}\n\n\t\t// Write file.\n\t\tawait writeFile(path, Buffer.alloc(0));\n\t\tconst stream = await reader();\n\t\tif (stream) {\n\t\t\tawait pipe(stream, createWriteStream(path));\n\t\t}\n\n\t\t// Set attributes.\n\t\tawait this.setAttributes(path, null, options);\n\t}\n\n\t/**\n\t * Extract as a file.\n\t *\n\t * @param path Extract path.\n\t * @param options Extract options.\n\t */\n\tprotected async _extractFile(\n\t\tpath: string,\n\t\toptions: Readonly<IExtractOptions>\n\t) {\n\t\tconst readData = this._readData;\n\t\tif (!readData) {\n\t\t\tthrow new Error('Internal error');\n\t\t}\n\n\t\tawait this._extractStreamToFile(path, readData, options);\n\t}\n\n\t/**\n\t * Extract as resource fork to an existing file.\n\t *\n\t * @param path Extract path.\n\t * @param options Extract options.\n\t */\n\tprotected async _extractResourceFork(\n\t\tpath: string,\n\t\toptions: Readonly<IExtractOptions>\n\t) {\n\t\tconst readRsrc = this._readRsrc;\n\t\tif (!readRsrc) {\n\t\t\tthrow new Error('Internal error');\n\t\t}\n\n\t\t// Optionally extract as a data file.\n\t\tif (options.resourceForkAsFile) {\n\t\t\tawait this._extractStreamToFile(path, readRsrc, options);\n\t\t\treturn;\n\t\t}\n\n\t\t// Check if file exists at path, else throw.\n\t\tconst stat = await fsLstatExists(path);\n\t\tif (!stat || !stat.isFile()) {\n\t\t\tthrow this._errorNoResourceFork(path);\n\t\t}\n\n\t\t// Create resource fork path.\n\t\tconst pathRsrc = pathResourceFork(path);\n\n\t\t// Write the resource fork.\n\t\tconst stream = await readRsrc();\n\t\tif (stream) {\n\t\t\tawait pipe(stream, createWriteStream(pathRsrc));\n\t\t} else {\n\t\t\tawait writeFile(pathRsrc, Buffer.alloc(0));\n\t\t}\n\n\t\t// Set attributes.\n\t\tawait this.setAttributes(path, null, options);\n\t}\n\n\t/**\n\t * Extract as a directory.\n\t *\n\t * @param path Extract path.\n\t * @param options Extract options.\n\t */\n\tprotected async _extractDirectory(\n\t\tpath: string,\n\t\toptions: Readonly<IExtractOptions>\n\t) {\n\t\tconst {replace} = options;\n\n\t\t// Check if something exists at path, else create.\n\t\tconst stat = await fsLstatExists(path);\n\t\tif (stat) {\n\t\t\t// If not directory, then remove and replace it, else throw.\n\t\t\tif (!stat.isDirectory()) {\n\t\t\t\tif (replace) {\n\t\t\t\t\tawait rm(path, {recursive: true, force: true});\n\t\t\t\t\tawait mkdir(path, {recursive: true});\n\t\t\t\t} else {\n\t\t\t\t\tthrow this._errorExtractPathExists(path);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tawait mkdir(path, {recursive: true});\n\t\t}\n\n\t\t// Set directory attributes after any children are added.\n\t\tthis.archive.afterReadSetAttributes(path, this, {...options});\n\t}\n\n\t/**\n\t * Extract as a symlink.\n\t *\n\t * @param path Extract path.\n\t * @param options Extract options.\n\t */\n\tprotected async _extractSymlink(\n\t\tpath: string,\n\t\toptions: Readonly<IExtractOptions>\n\t) {\n\t\tconst readSymlink = this._readSymlink;\n\t\tif (!readSymlink) {\n\t\t\tthrow new Error('Internal error');\n\t\t}\n\n\t\tconst {replace, symlinkAsFile} = options;\n\n\t\t// Check if something exists at path, optionally removing.\n\t\tconst stat = await fsLstatExists(path);\n\t\tif (stat) {\n\t\t\t// If replacing, then remove, else throw.\n\t\t\tif (replace) {\n\t\t\t\tawait rm(path, {recursive: true, force: true});\n\t\t\t} else {\n\t\t\t\tthrow this._errorExtractPathExists(path);\n\t\t\t}\n\t\t} else {\n\t\t\t// Ensure base directory exists.\n\t\t\tawait mkdir(dirname(path), {recursive: true});\n\t\t}\n\n\t\t// Read target.\n\t\tconst target = await readSymlink();\n\n\t\t// Create link, optionally as a file.\n\t\tif (symlinkAsFile) {\n\t\t\tawait writeFile(path, target);\n\t\t} else {\n\t\t\tawait fsSymlink(path, target);\n\t\t}\n\n\t\t// Set attributes.\n\t\tawait this.setAttributes(path, null, options);\n\t}\n\n\t/**\n\t * Read as stream.\n\t *\n\t * @returns Readable stream.\n\t */\n\tprotected async _stream() {\n\t\tconst {type} = this;\n\t\tswitch (type) {\n\t\t\tcase PathType.FILE: {\n\t\t\t\treturn this._streamFile();\n\t\t\t}\n\t\t\tcase PathType.RESOURCE_FORK: {\n\t\t\t\treturn this._streamResourceFork();\n\t\t\t}\n\t\t\tcase PathType.DIRECTORY: {\n\t\t\t\treturn this._streamDirectory();\n\t\t\t}\n\t\t\tcase PathType.SYMLINK: {\n\t\t\t\treturn this._streamSymlink();\n\t\t\t}\n\t\t\tdefault: {\n\t\t\t\tthrow new Error(`Unsupported path type: ${type as string}`);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Read file as stream.\n\t *\n\t * @returns Readable stream.\n\t */\n\tprotected async _streamFile() {\n\t\tconst readData = this._readData;\n\t\tif (!readData) {\n\t\t\tthrow new Error('Internal error');\n\t\t}\n\t\treturn readData();\n\t}\n\n\t/**\n\t * Read resource fork as stream.\n\t *\n\t * @returns Readable stream.\n\t */\n\tprotected async _streamResourceFork() {\n\t\tconst readRsrc = this._readRsrc;\n\t\tif (!readRsrc) {\n\t\t\tthrow new Error('Internal error');\n\t\t}\n\t\treturn readRsrc();\n\t}\n\n\t/**\n\t * Read directory null stream.\n\t *\n\t * @returns Null stream.\n\t */\n\t// eslint-disable-next-line @typescript-eslint/require-await\n\tprotected async _streamDirectory() {\n\t\treturn null;\n\t}\n\n\t/**\n\t * Read symlink as stream.\n\t *\n\t * @returns Readable stream.\n\t */\n\t// eslint-disable-next-line @typescript-eslint/require-await\n\tprotected async _streamSymlink() {\n\t\tconst readSymlink = this._readSymlink;\n\t\tif (!readSymlink) {\n\t\t\tthrow new Error('Internal error');\n\t\t}\n\t\tconst r = new Readable({\n\t\t\t// eslint-disable-next-line jsdoc/require-jsdoc\n\t\t\tread: () => {\n\t\t\t\treadSymlink().then(\n\t\t\t\t\td => {\n\t\t\t\t\t\tr.push(d);\n\t\t\t\t\t\tr.push(null);\n\t\t\t\t\t},\n\t\t\t\t\terr => {\n\t\t\t\t\t\tr.emit('error', err);\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t});\n\t\treturn r;\n\t}\n}\n\n/**\n * Archive object.\n */\nexport abstract class Archive {\n\t/**\n\t * List of file extensions, or null.\n\t */\n\tpublic static readonly FILE_EXTENSIONS: Readonly<string[]> | null = null;\n\n\t/**\n\t * Archive has named volumes that each entry will be under.\n\t */\n\tpublic static readonly HAS_NAMED_VOLUMES: boolean = false;\n\n\t/**\n\t * Entry constructor.\n\t */\n\tpublic readonly Entry = Entry;\n\n\t/**\n\t * File path.\n\t */\n\tpublic readonly path: string;\n\n\t/**\n\t * Flag for currently reading.\n\t */\n\tprotected _reading = false;\n\n\t/**\n\t * Map of entries to set attributes on after reading.\n\t */\n\tprotected _afterReadSetAttributes: Map<\n\t\tstring,\n\t\tReadonly<IArchiveAfterReadSetAttributesEntry>\n\t> | null = null;\n\n\t/**\n\t * Archive constructor.\n\t *\n\t * @param path File path.\n\t */\n\tconstructor(path: string) {\n\t\tthis.path = path;\n\t}\n\n\t/**\n\t * List of file extensions used by this format.\n\t *\n\t * @returns List of file extensions.\n\t */\n\tpublic get fileExtensions() {\n\t\treturn (this.constructor as typeof Archive).FILE_EXTENSIONS || null;\n\t}\n\n\t/**\n\t * Archive has named volumes that each entry will be under.\n\t *\n\t * @returns Archive has named volumns.\n\t */\n\tpublic get hasNamedVolumes() {\n\t\treturn (this.constructor as typeof Archive).HAS_NAMED_VOLUMES;\n\t}\n\n\t/**\n\t * Add an instance to set attributes after the read finishes.\n\t *\n\t * @param path Path string.\n\t * @param entry Entry instance.\n\t * @param options Extract options.\n\t */\n\tpublic afterReadSetAttributes(\n\t\tpath: string,\n\t\tentry: Entry,\n\t\toptions: Readonly<IExtractOptions> = {}\n\t) {\n\t\tconst afters = this._afterReadSetAttributes;\n\t\tif (!afters) {\n\t\t\tthrow new Error(\n\t\t\t\t'Archive after read callbacks can only be added while reading'\n\t\t\t);\n\t\t}\n\t\tafters.set(resolve(path), {\n\t\t\tpath,\n\t\t\tentry,\n\t\t\toptions\n\t\t});\n\t}\n\n\t/**\n\t * Remove an instance to set attributes after the read finishes.\n\t *\n\t * @param path Path string.\n\t */\n\tpublic afterReadSetAttributesRemove(path: string) {\n\t\tconst afters = this._afterReadSetAttributes;\n\t\tif (!afters) {\n\t\t\tthrow new Error(\n\t\t\t\t'Archive after read callbacks can only be removed while reading'\n\t\t\t);\n\t\t}\n\t\tafters.delete(resolve(path));\n\t}\n\n\t/**\n\t * Read archive.\n\t * If the itter callback returns false, reading ends.\n\t * If the itter callback returns null, skip descent where available.\n\t *\n\t * @param itter Async callback for each archive entry.\n\t */\n\tpublic async read(itter: (entry: Entry) => Promise<unknown>) {\n\t\tif (this._reading) {\n\t\t\tthrow new Error('Archive already being read');\n\t\t}\n\t\tthis._reading = true;\n\n\t\t// Reset the after entries.\n\t\tthis._afterReadSetAttributes = new Map();\n\n\t\t// Read and handle all the afters, reset after.\n\t\ttry {\n\t\t\tawait this._read(itter);\n\t\t\tawait this._afterReadSetAttributesTrigger();\n\t\t} finally {\n\t\t\tthis._afterReadSetAttributes = null;\n\t\t\tthis._reading = false;\n\t\t}\n\t}\n\n\t/**\n\t * Run all after read set attributes.\n\t */\n\tprotected async _afterReadSetAttributesTrigger() {\n\t\tconst afters = this._afterReadSetAttributes;\n\t\tif (!afters) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Prioritize by path length.\n\t\tconst resolves: string[] = [];\n\t\tfor (const [resolved] of afters) {\n\t\t\tresolves.push(resolved);\n\t\t}\n\t\tresolves.sort((a, b) => b.length - a.length);\n\n\t\tfor (const resolved of resolves) {\n\t\t\tconst ent = afters.get(resolved);\n\t\t\tif (!ent) {\n\t\t\t\tthrow new Error('Internal error');\n\t\t\t}\n\t\t\tconst {entry, path, options} = ent;\n\t\t\t// eslint-disable-next-line no-await-in-loop\n\t\t\tawait entry.setAttributes(path, resolved, options);\n\t\t}\n\t}\n\n\t/**\n\t * Read archive, class implementation.\n\t * If the itter callback returns false, reading ends.\n\t * If the itter callback returns null, skip descent where available.\n\t *\n\t * @param itter Async callback for each archive entry.\n\t */\n\tprotected abstract _read(\n\t\titter: (entry: Entry) => Promise<unknown>\n\t): Promise<void>;\n}\n",null,"export enum PathType {\n\t// eslint-disable-next-line @typescript-eslint/naming-convention\n\tDIRECTORY = 'directory',\n\n\t// eslint-disable-next-line @typescript-eslint/naming-convention\n\tFILE = 'file',\n\n\t// eslint-disable-next-line @typescript-eslint/naming-convention\n\tSYMLINK = 'symlink',\n\n\t// eslint-disable-next-line @typescript-eslint/naming-convention\n\tRESOURCE_FORK = 'resource-fork'\n}\n",null,"import {Stats, constants as fsConstants} from 'node:fs';\nimport {\n\tchmod,\n\tlstat,\n\topen,\n\treaddir,\n\treadlink,\n\tsymlink,\n\tutimes\n} from 'node:fs/promises';\nimport {join as pathJoin} from 'node:path';\nimport {Readable, Writable} from 'node:stream';\nimport {pipeline} from 'node:stream/promises';\n\nimport {PathType} from './types';\n\nexport interface IFsWalkOptions {\n\t/**\n\t * Ignore unreadable directores when walking directory.\n\t *\n\t * @default false\n\t */\n\tignoreUnreadableDirectories?: boolean;\n}\n\nconst {O_WRONLY, O_SYMLINK} = fsConstants;\nexport const fsLchmodSupported = !!O_SYMLINK;\nexport const fsLutimesSupported = !!O_SYMLINK;\n\n/**\n * Normalize an entry path.\n *\n * @param path Path string.\n * @returns Normalized path.\n */\nexport function pathNormalize(path: string) {\n\treturn path.replace(/\\\\/g, '/').replace(/([^/])\\/+$/, '$1');\n}\n\n/**\n * Get path to the resource fork pseudo-file.\n *\n * @param path Path string.\n * @returns Resource fork pseudo-file path.\n */\nexport function pathResourceFork(path: string) {\n\treturn pathJoin(path, '..namedfork', 'rsrc');\n}\n\n/**\n * Get path type from stat object, or null if unsupported.\n *\n * @param stat Stats object.\n * @returns Path type.\n */\nexport function statToPathType(stat: Readonly<Stats>) {\n\tif (stat.isSymbolicLink()) {\n\t\treturn PathType.SYMLINK;\n\t}\n\tif (stat.isDirectory()) {\n\t\treturn PathType.DIRECTORY;\n\t}\n\tif (stat.isFile()) {\n\t\treturn PathType.FILE;\n\t}\n\treturn null;\n}\n\n/**\n * Get path type from stat mode, or null if unsupported.\n *\n * @param mode Stat mode.\n * @returns Path type.\n */\nexport function modeToPathType(mode: number) {\n\tif (bitwiseAndEqual(mode, 0o0120000)) {\n\t\treturn PathType.SYMLINK;\n\t}\n\tif (bitwiseAndEqual(mode, 0o0040000)) {\n\t\treturn PathType.DIRECTORY;\n\t}\n\tif (bitwiseAndEqual(mode, 0o0100000)) {\n\t\treturn PathType.FILE;\n\t}\n\treturn null;\n}\n\n/**\n * Get permission bits from mode value.\n *\n * @param mode Stat mode.\n * @returns Permission bits.\n */\nexport function modePermissionBits(mode: number) {\n\t// eslint-disable-next-line no-bitwise\n\treturn mode & 0b111111111;\n}\n\n/**\n * Check if all the bits set.\n *\n * @param value Bits value.\n * @param mask Mask value.\n * @returns True of all the bits set.\n */\nexport function bitwiseAndEqual(value: number, mask: number) {\n\t// eslint-disable-next-line no-bitwise\n\treturn (value & mask) === mask;\n}\n\n/**\n * Read a stream into a buffer.\n * Reading a stream into a buffer should be avoided where possible.\n * This is however useful for some small streams.\n *\n * @param stream Readable stream.\n * @returns Full buffer.\n */\nexport async function streamToBuffer(stream: Readable) {\n\tconst datas: Buffer[] = [];\n\tlet size = 0;\n\tawait pipeline(\n\t\tstream,\n\t\tnew Writable({\n\t\t\t// eslint-disable-next-line jsdoc/require-jsdoc\n\t\t\twrite: (data: Buffer, _encoding: unknown, cb) => {\n\t\t\t\tdatas.push(data);\n\t\t\t\tsize += data.length;\n\t\t\t\tcb();\n\t\t\t}\n\t\t})\n\t);\n\treturn Buffer.concat(datas, size);\n}\n\n/**\n * Wrapper for lchmod, does nothing on unsupported platforms.\n *\n * @param path File path.\n * @param mode File mode.\n */\nexport async function fsLchmod(path: string, mode: number) {\n\t// Skip if not supported.\n\tif (!fsLchmodSupported) {\n\t\treturn;\n\t}\n\n\t// eslint-disable-next-line no-bitwise\n\tconst fd = await open(path, O_WRONLY | O_SYMLINK);\n\ttry {\n\t\tawait fd.chmod(mode);\n\t} finally {\n\t\tawait fd.close();\n\t}\n}\n\n/**\n * Wrapper for utimes.\n *\n * @param path File path.\n * @param atime Access time.\n * @param mtime Modification time.\n */\nexport async function fsUtimes(\n\tpath: string,\n\tatime: Readonly<Date>,\n\tmtime: Readonly<Date>\n) {\n\tawait utimes(path, atime, mtime);\n}\n\n/**\n * Implementation of lutimes, does nothing on unsupported platforms.\n *\n * @param path File path.\n * @param atime Access time.\n * @param mtime Modification time.\n */\nexport async function fsLutimes(\n\tpath: string,\n\tatime: Readonly<Date>,\n\tmtime: Readonly<Date>\n) {\n\t// Skip if not supported.\n\tif (!fsLutimesSupported) {\n\t\treturn;\n\t}\n\n\t// eslint-disable-next-line no-bitwise\n\tconst fd = await open(path, O_WRONLY | O_SYMLINK);\n\ttry {\n\t\tawait fd.utimes(atime, mtime);\n\t} finally {\n\t\tawait fd.close();\n\t}\n}\n\n/**\n * A readlink wrapper that returns raw link buffer.\n *\n * @param path Link path.\n * @returns Raw link.\n */\nexport async function fsReadlinkRaw(path: string) {\n\treturn readlink(path, 'buffer');\n}\n\n/**\n * Wrapper for symlink.\n *\n * @param path Path of symbolic link.\n * @param target Target of symbolic link.\n */\nexport async function fsSymlink(\n\tpath: string | Readonly<Buffer>,\n\ttarget: string | Readonly<Buffer>\n) {\n\tawait symlink(target, path);\n}\n\n/**\n * Wrapper for chmod.\n *\n * @param path File path.\n * @param mode File mode.\n */\nexport async function fsChmod(path: string, mode: number) {\n\tawait chmod(path, mode);\n}\n\n/**\n * A readdir wrapper with consistent output.\n *\n * @param path Directory path.\n * @returns Directory listing.\n */\nexport async function fsReaddir(path: string) {\n\treturn (await readdir(path)).sort();\n}\n\n/**\n * An lstat wrapper.\n *\n * @param path Path string.\n * @returns Stat object.\n */\nexport async function fsLstat(path: string) {\n\treturn lstat(path);\n}\n\n/**\n * An lstat wrapper returning null if not exist.\n *\n * @param path Path string.\n * @returns Stat object.\n */\nexport async function fsLstatExists(path: string) {\n\ttry {\n\t\treturn await fsLstat(path);\n\t} catch (err) {\n\t\tconst {code} = err as {code: string};\n\t\tif (code === 'ENOENT' || code === 'ENOTDIR') {\n\t\t\treturn null;\n\t\t}\n\t\tthrow err;\n\t}\n}\n\n/**\n * Walk file system path.\n * If callback returns false skips recursing a directory.\n * If callback returns null aborts walking.\n *\n * @param base Directory path.\n * @param itter Callback for each entry.\n * @param options Walk options.\n */\nexport async function fsWalk(\n\tbase: string,\n\titter: (path: string, stat: Stats) => Promise<boolean | null | void>,\n\toptions: Readonly<IFsWalkOptions> = {}\n) {\n\tconst {ignoreUnreadableDirectories} = options;\n\tconst stack = (await fsReaddir(base)).reverse();\n\twhile (stack.length) {\n\t\tconst entry = stack.pop() as string;\n\t\tconst fullPath = pathJoin(base, entry);\n\t\t// eslint-disable-next-line no-await-in-loop\n\t\tconst stat = await fsLstat(fullPath);\n\n\t\t// Callback, possibly stop recursion on directory.\n\t\t// eslint-disable-next-line no-await-in-loop\n\t\tconst recurse = await itter(entry, stat);\n\t\tif (recurse === null) {\n\t\t\tbreak;\n\t\t}\n\t\tif (recurse === false || !stat.isDirectory()) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Recurse down.\n\t\tlet subs: string[] = [];\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-await-in-loop\n\t\t\tsubs = await fsReaddir(fullPath);\n\t\t} catch (err) {\n\t\t\tif (\n\t\t\t\t!(\n\t\t\t\t\terr &&\n\t\t\t\t\tignoreUnreadableDirectories &&\n\t\t\t\t\t(err as {code: string}).code === 'EACCES'\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tthrow err;\n\t\t\t}\n\t\t}\n\t\tfor (let i = subs.length; i--; ) {\n\t\t\tstack.push(pathJoin(entry, subs[i]));\n\t\t}\n\t}\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport * as stream from \"stream\"\nimport { promisify } from \"util\"\n\n// biome-ignore lint: lint/complexity/noBannedTypes\nexport const pipeline = \"promises\" in stream && \"pipeline\" in (stream as any).promises\n // biome-ignore lint: lint/complexity/noBannedTypes\n ? ((stream.promises as any).pipeline as Function)\n : promisify(stream.pipeline)\n\n// biome-ignore lint: lint/complexity/noBannedTypes\nexport const finished = \"promises\" in stream && \"finished\" in (stream as any).promises\n // biome-ignore lint: lint/complexity/noBannedTypes\n ? ((stream.promises as any).finished as Function)\n : promisify(stream.finished)\n"],"mappings":"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","ignoreList":[]} |