mirror of https://github.com/aminya/setup-cpp
1 line
371 KiB
XML
1 line
371 KiB
XML
{"version":3,"file":"hdi-Ca-ZsNp_.js","names":["e","t","Object","freeze","r","hasOwnProperty","n","split","filter","keys","reduce","a","call","i","prototype","constructor","console","error","o","Error","nt","message","captureStackTrace","code","s","l","_node","_refresh","c","_inc","ownerDocument","K","length","$$length","u","h","p","ownerElement","v","namespaceURI","He","XMLNS","_nsMap","prefix","localName","value","d","it","tagName","f","m","g","charCodeAt","w","firstChild","nextSibling","b","E","childNodes","y","previousSibling","lastChild","parentNode","N","nodeType","DOCUMENT_TYPE_NODE","T","ELEMENT_NODE","x","TEXT_NODE","S","Be","indexOf","D","A","DOCUMENT_FRAGMENT_NODE","at","_","q","DOCUMENT_NODE","COMMENT_NODE","PROCESSING_INSTRUCTION_NODE","removeChild","et","R","L","C","k","I","O","M","U","P","V","F","B","H","X","documentElement","lookupPrefix","namespace","$","join","j","XML","G","push","replace","je","attributes","isHTML","item","name","nodeName","test","data","slice","Je","Ge","$e","ze","Ze","Qe","publicId","systemId","internalSubset","We","target","Ye","z","cloneNode","appendChild","Y","_ownerElement","setAttributeNode","W","locator","Z","J","lineNumber","columnNumber","Q","attributeNames","fatalError","addValue","gt","charAt","wt","vt","bt","warning","yt","Et","setTagName","Nt","Tt","closed","pt","match","ee","qName","ne","uri","startPrefixMapping","startElement","currentNSMap","localNSMap","endElement","endPrefixMapping","te","substring","characters","re","lastIndexOf","ae","comment","substr","startCDATA","endCDATA","lastIndex","exec","startDTD","endDTD","index","ie","processingInstruction","oe","se","le","options","ce","cdata","ue","he","pe","java","lang","String","de","currentElement","doc","fe","qt","errorHandler","parseFromString","declaration","doctype","me","nodeValue","ge","we","be","Ct","Rt","ve","Number","isInteger","Ee","ye","Le","Ne","er","Ce","open","Jt","Qt","chmod","close","Te","utimes","xe","tr","Se","De","readdir","sort","Ae","lstat","_e","qe","ignoreUnreadableDirectories","reverse","pop","isDirectory","defineProperty","exports","Symbol","toStringTag","Re","require","ke","Ie","Oe","Me","Ue","Pe","Ve","HTML","XML_APPLICATION","XML_TEXT","XML_XHTML_APPLICATION","XML_SVG_IMAGE","Fe","SVG","assign","TypeError","find","Array","MIME_TYPE","NAMESPACE","Xe","ATTRIBUTE_NODE","CDATA_SECTION_NODE","ENTITY_REFERENCE_NODE","Ke","ENTITY_NODE","tt","NOTATION_NODE","rt","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","ot","INUSE_ATTRIBUTE_ERR","INVALID_STATE_ERR","SYNTAX_ERR","INVALID_MODIFICATION_ERR","NAMESPACE_ERR","INVALID_ACCESS_ERR","toString","getNamedItem","setNamedItem","setNamedItemNS","getNamedItemNS","removeNamedItem","removeNamedItemNS","hasFeature","createDocument","implementation","createElementNS","createDocumentType","insertBefore","replaceChild","hasChildNodes","normalize","appendData","isSupported","hasAttributes","lookupNamespaceURI","isDefaultNamespace","importNode","getElementById","getAttribute","getElementsByClassName","every","createElement","createDocumentFragment","createTextNode","createComment","createCDATASection","createProcessingInstruction","createAttribute","specified","createEntityReference","createAttributeNS","getElementsByTagName","hasAttribute","getAttributeNode","setAttribute","removeAttribute","removeAttributeNode","setAttributeNodeNS","removeAttributeNS","getAttributeNodeNS","hasAttributeNS","getAttributeNS","setAttributeNS","getElementsByTagNameNS","substringData","insertData","replaceData","deleteData","splitText","serializeToString","getTextContent","get","set","__set__","lr","DocumentType","DOMException","DOMImplementation","Element","Node","NodeList","XMLSerializer","st","lt","ct","ut","XML_ENTITIES","amp","apos","quot","HTML_ENTITIES","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","eg","Egrave","egrave","egs","egsdot","el","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","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","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","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","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","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","entityMap","ht","dt","ft","RegExp","source","mt","parse","domBuilder","startDocument","parseInt","fromCharCode","toLowerCase","offset","Math","max","endDocument","getLocalName","getLocator","getQName","getURI","getValue","XMLReader","ParseError","xt","St","Dt","At","_t","xmlns","setDocumentLocator","Function","xml","normalizeLineEndings","documentURI","ignorableWhitespace","apply","arguments","skippedEntity","warn","__DOMHandler","DOMParser","kt","It","Ot","Mt","type","TYPE","castTo","castAs","fromXml","fromXmlElement","Ut","TAG_NAMES","toXml","indentString","repeat","Pt","Uint8Array","newlineString","dataColumns","Vt","Ft","asBigInt","BigInt","asNumber","Bt","Ht","replaceAll","Xt","jt","CHILD_TAG_NAMES","$t","size","has","delete","clear","childFromXmlElement","popValue","shift","shiftValue","zt","Yt","Kt","XML_DECLARATION","XML_DOCTYPE","xmlDeclaration","xmlDoctype","valueCastTo","valueCastAs","indentRoot","Boolean","Wt","hdiutil","attach","_runAttach","_argsAttach","eject","ejectSync","_createEjects","devices","attachSync","_runAttachSync","_runEject","_argsEject","_runEjectSync","readonly","nobrowse","_fileArg","force","spawn","stdout","on","Promise","once","_parseDevices","Buffer","concat","status","spawnSync","startsWith","devEntry","potentiallyMountable","contentHint","unmappedContentHint","volumeKind","mountPoint","_findRootDevice","process","off","shutdown","Zt","DIRECTORY","FILE","SYMLINK","RESOURCE_FORK","O_WRONLY","O_SYMLINK","constants","rr","promisify","pipeline","nr","_triggering","_triggered","_extracted","archive","pathRaw","path","sizeComp","mode","uid","gid","uname","gname","atime","mtime","_readData","readData","_readRsrc","readRsrc","_readSymlink","readSymlink","hasNamedVolume","hasNamedVolumes","volumeName","volumePath","stream","_beginExtract","_stream","read","Writable","write","extract","_extract","trigger","setAttributes","ignorePermissions","ignoreTimes","_errorExtractPathExists","_errorNoResourceFork","afterReadSetAttributesRemove","_extractFile","_extractResourceFork","_extractDirectory","_extractSymlink","_extractStreamToFile","rm","recursive","mkdir","dirname","writeFile","alloc","createWriteStream","resourceForkAsFile","isFile","afterReadSetAttributes","symlinkAsFile","symlink","_streamFile","_streamResourceFork","_streamDirectory","_streamSymlink","Readable","then","emit","ar","FILE_EXTENSIONS","HAS_NAMED_VOLUMES","Entry","_reading","_afterReadSetAttributes","fileExtensions","resolve","entry","_read","_afterReadSetAttributesTrigger","ir","sr","rsrcPathRaw","rsrcPath","ArchiveHdi","mounterMac","isSymbolicLink","createReadStream","readlink","basename","EntryHdi"],"sources":["../../../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.js","../../../node_modules/.pnpm/@xmldom+xmldom@0.8.10/node_modules/@xmldom/xmldom/lib/sax.js","../../../node_modules/.pnpm/@xmldom+xmldom@0.8.10/node_modules/@xmldom/xmldom/lib/dom-parser.js","../../../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/esm/value/integer.mjs","../../../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/@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/index.js","../../../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/esm/value.mjs","../../../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/esm/value/data.mjs","../../../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/esm/value/string.mjs","../../../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/esm/value/array.mjs","../../../node_modules/.pnpm/@shockpkg+plist-dom@4.0.7/node_modules/@shockpkg/plist-dom/esm/plist.mjs","../../../node_modules/.pnpm/@shockpkg+hdi-mac@3.1.4/node_modules/@shockpkg/hdi-mac/esm/mounter.mjs","../../../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/esm/archive.mjs","../../../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"],"sourcesContent":["'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\");\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","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","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","import { DOMParser } from '@xmldom/xmldom';\nconst B6 = 0x3f;\nconst B8 = 0xff;\nconst C64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\nconst C64M = [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, 64, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51];\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) {\n let declaration = null;\n let doctype = null;\n const errors = [];\n const parser = new DOMParser({\n locator: {},\n errorHandler: {\n /**\n * Warning callback.\n *\n * @param e Error string.\n */\n warning: e => {\n // Ignore warnings.\n },\n /**\n * Error callback.\n *\n * @param e Error string.\n */\n error: e => {\n errors.push(e);\n },\n /**\n * Fatal error callback.\n *\n * @param e Error string.\n */\n fatalError: e => {\n errors.push(e);\n }\n }\n });\n const doc = parser.parseFromString(xml, 'text/xml');\n if (errors.length) {\n throw new Error(`XML decode error: ${errors[0]}`);\n }\n const {\n childNodes\n } = 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) {\n break;\n }\n const str = childNode.toString();\n if (/^<\\?xml[^>]*\\?>$/.test(str)) {\n declaration = str;\n }\n if (/^<!DOCTYPE[^>]*>$/.test(str)) {\n doctype = str;\n }\n }\n if (!documentElement) {\n throw new Error('XML decode error: No document element');\n }\n return {\n declaration,\n doctype,\n documentElement\n };\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(element) {\n const {\n childNodes\n } = 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 {\n nodeValue\n } = childNode;\n if (nodeValue && !/^\\s*$/.test(nodeValue)) {\n throw new Error(`Found text children of: ${element.tagName}`);\n }\n }\n return 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) {\n const {\n childNodes\n } = element;\n let r = null;\n for (let i = 0, l = childNodes.length; i < l; i++) {\n if (i) {\n throw new Error(`Multiple child elements in: ${element.tagName}`);\n }\n const childNode = childNodes[i];\n if (!('tagName' in childNode) && 'data' in childNode && 'nodeValue' in childNode) {\n r = childNode;\n } else {\n throw new Error(`Unexpected child element in: ${element.tagName}`);\n }\n }\n return 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, tagName) {\n const tn = element.tagName;\n if (tn !== tagName) {\n throw new Error(`Unexpected tagName: ${tagName}`);\n }\n}\n\n/**\n * Assert XML element has no children.\n *\n * @param element XML element.\n */\nexport function assertNoXmlElementChildNodes(element) {\n const {\n childNodes\n } = element;\n if (childNodes.length) {\n throw new Error(`Unexpected child nodes: ${element.tagName}`);\n }\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) {\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 +=\n // eslint-disable-next-line no-bitwise\n C64[o >> 18] +\n // eslint-disable-next-line no-bitwise\n C64[o >> 12 & B6] +\n // eslint-disable-next-line no-bitwise\n C64[b === null ? 64 : o >> 6 & B6] +\n // eslint-disable-next-line no-bitwise\n C64[c === null ? 64 : o & B6];\n }\n return 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) {\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 = C64M[base64.charCodeAt(i++)]) >= 0) {\n a = m;\n break;\n }\n if (i >= l) {\n break OUTER;\n }\n }\n for (;;) {\n // eslint-disable-next-line unicorn/prefer-code-point\n if ((m = C64M[base64.charCodeAt(i++)]) >= 0) {\n b = m;\n break;\n }\n if (i >= l) {\n break OUTER;\n }\n }\n for (;;) {\n // eslint-disable-next-line unicorn/prefer-code-point\n if ((m = C64M[base64.charCodeAt(i++)]) >= 0) {\n c = m;\n break;\n }\n if (i >= l) {\n break OUTER;\n }\n }\n for (;;) {\n // eslint-disable-next-line unicorn/prefer-code-point\n if ((m = C64M[base64.charCodeAt(i++)]) >= 0) {\n d = m;\n break;\n }\n if (i >= l) {\n break OUTER;\n }\n }\n // eslint-disable-next-line no-bitwise\n z = (a & B6) << 18 | (b & B6) << 12 | (c & B6) << 6 | d & B6;\n // eslint-disable-next-line default-case, no-nested-ternary\n switch (c > B6 ? d > B6 ? 2 : 0 : d > B6 ? 1 : 0) {\n case 0:\n {\n // eslint-disable-next-line no-bitwise\n r.push(z >> 16 & B8, z >> 8 & B8, z & B8);\n break;\n }\n case 1:\n {\n // eslint-disable-next-line no-bitwise\n r.push(z >> 16 & B8, z >> 8 & B8);\n break;\n }\n case 2:\n {\n // eslint-disable-next-line no-bitwise\n r.push(z >> 16 & B8);\n break;\n }\n }\n }\n return new Uint8Array(r);\n}\n//# sourceMappingURL=util.mjs.map","import { INDENT_STRING } from \"../options.mjs\";\nimport { assertXmlTagName, xmlElementText } from \"../util.mjs\";\nimport { Value } from \"../value.mjs\";\nconst MAX_NUM = 0x1fffffffffffff;\n\n/**\n * Assert number is integer.\n *\n * @param value Number value.\n */\nfunction assertInteger(value) {\n if (typeof value === 'number' && !Number.isInteger(value)) {\n // eslint-disable-next-line unicorn/prefer-type-error\n throw new Error(`Value not an integer: ${value}`);\n }\n}\n\n/**\n * ValueInteger object.\n */\nexport class ValueInteger extends Value {\n /**\n * Value type.\n */\n static TYPE = 'integer';\n\n /**\n * Tag names.\n */\n static TAG_NAMES = ['integer'];\n\n /**\n * Value value.\n */\n value = 0;\n\n /**\n * ValueInteger constructor.\n *\n * @param value The value.\n */\n constructor(value = 0) {\n super();\n assertInteger(value);\n this.value = value;\n }\n\n /**\n * Get value as BigInt.\n *\n * @returns Value as a BigInt.\n */\n asBigInt() {\n return BigInt(this.value);\n }\n\n /**\n * Get value as Number, possibly losing some precision.\n *\n * @returns Value as a Number.\n */\n asNumber() {\n return Number(this.value);\n }\n\n /**\n * @inheritdoc\n */\n fromXmlElement(element) {\n assertXmlTagName(element, 'integer');\n const text = xmlElementText(element)?.nodeValue || '';\n if (!/^[+-]?\\d+$/.test(text)) {\n throw new Error(`Invalid integer data: ${text}`);\n }\n const num = +text;\n this.value = num > MAX_NUM || num < -MAX_NUM ? BigInt(text) : num;\n }\n\n /**\n * @inheritdoc\n */\n toXml(options = null, depth = 0) {\n const p = (options?.indentString ?? INDENT_STRING).repeat(depth);\n const v = this.value;\n assertInteger(v);\n return `${p}<integer>${v}</integer>`;\n }\n}\n//# sourceMappingURL=integer.mjs.map","import { constants as fsConstants } from 'node:fs';\nimport { chmod, lstat, open, readdir, readlink, symlink, utimes } from 'node:fs/promises';\nimport { join as pathJoin } from 'node:path';\nimport { Writable } from 'node:stream';\nimport { pipeline } from 'node:stream/promises';\nimport { PathType } from \"./types.mjs\";\nconst {\n O_WRONLY,\n O_SYMLINK\n} = 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) {\n return 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) {\n return 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) {\n if (stat.isSymbolicLink()) {\n return PathType.SYMLINK;\n }\n if (stat.isDirectory()) {\n return PathType.DIRECTORY;\n }\n if (stat.isFile()) {\n return PathType.FILE;\n }\n return 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) {\n if (bitwiseAndEqual(mode, 0o0120000)) {\n return PathType.SYMLINK;\n }\n if (bitwiseAndEqual(mode, 0o0040000)) {\n return PathType.DIRECTORY;\n }\n if (bitwiseAndEqual(mode, 0o0100000)) {\n return PathType.FILE;\n }\n return 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) {\n // eslint-disable-next-line no-bitwise\n return 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, mask) {\n // eslint-disable-next-line no-bitwise\n return (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) {\n const datas = [];\n let size = 0;\n await pipeline(stream, new 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}\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, mode) {\n // Skip if not supported.\n if (!fsLchmodSupported) {\n return;\n }\n\n // eslint-disable-next-line no-bitwise\n const fd = await open(path, O_WRONLY | O_SYMLINK);\n try {\n await fd.chmod(mode);\n } finally {\n await fd.close();\n }\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(path, atime, mtime) {\n await 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(path, atime, mtime) {\n // Skip if not supported.\n if (!fsLutimesSupported) {\n return;\n }\n\n // eslint-disable-next-line no-bitwise\n const fd = await open(path, O_WRONLY | O_SYMLINK);\n try {\n await fd.utimes(atime, mtime);\n } finally {\n await fd.close();\n }\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) {\n return 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(path, target) {\n await 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, mode) {\n await 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) {\n return (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) {\n return 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) {\n try {\n return await fsLstat(path);\n } catch (err) {\n const {\n code\n } = err;\n if (code === 'ENOENT' || code === 'ENOTDIR') {\n return null;\n }\n throw err;\n }\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(base, itter, options = {}) {\n const {\n ignoreUnreadableDirectories\n } = options;\n const stack = (await fsReaddir(base)).reverse();\n while (stack.length) {\n const entry = stack.pop();\n const fullPath = pathJoin(base, entry);\n // eslint-disable-next-line no-await-in-loop\n const stat = await fsLstat(fullPath);\n\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) {\n break;\n }\n if (recurse === false || !stat.isDirectory()) {\n continue;\n }\n\n // Recurse down.\n let subs = [];\n try {\n // eslint-disable-next-line no-await-in-loop\n subs = await fsReaddir(fullPath);\n } catch (err) {\n if (!(err && ignoreUnreadableDirectories && err.code === 'EACCES')) {\n throw err;\n }\n }\n for (let i = subs.length; i--;) {\n stack.push(pathJoin(entry, subs[i]));\n }\n }\n}\n//# sourceMappingURL=util.mjs.map","'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 dom = require('./dom')\nexports.DOMImplementation = dom.DOMImplementation\nexports.XMLSerializer = dom.XMLSerializer\nexports.DOMParser = require('./dom-parser').DOMParser\n","export const INDENT_STRING = '\\t';\nexport const NEWLINE_STRING = '\\n';\nexport const DATA_COLUMNS = 68;\nexport const INDENT_ROOT = false;\n//# sourceMappingURL=options.mjs.map","import { xmlDecode } from \"./util.mjs\";\n\n/**\n * Value object.\n */\nexport class Value {\n /**\n * Value type.\n */\n\n /**\n * Tag names.\n */\n\n /**\n * Value constructor.\n */\n constructor() {}\n\n /**\n * Value type.\n *\n * @returns Type string.\n */\n get type() {\n return this.constructor.TYPE;\n }\n\n /**\n * Cast to specific type or null.\n *\n * @param Type Type constructor.\n * @returns This object or null.\n */\n castTo(Type) {\n return this.type === Type.TYPE ? this : null;\n }\n\n /**\n * Cast to specific type or throw.\n *\n * @param Type Type constructor.\n * @returns This object.\n */\n castAs(Type) {\n const casted = this.castTo(Type);\n if (!casted) {\n throw new Error(`Cannot cast type '${this.type}' to '${Type.TYPE}'`);\n }\n return casted;\n }\n\n /**\n * Decode document from string.\n *\n * @param xml XML string.\n */\n fromXml(xml) {\n const {\n documentElement\n } = xmlDecode(xml);\n this.fromXmlElement(documentElement);\n }\n\n /**\n * Decode value from element.\n *\n * @param element XML element.\n */\n\n /**\n * Encode Value to string.\n *\n * @param options Options object.\n * @param depth Indent depth.\n * @returns Xml string.\n */\n}\n//# sourceMappingURL=value.mjs.map","import { INDENT_STRING } from \"../options.mjs\";\nimport { assertNoXmlElementChildNodes, assertXmlTagName } from \"../util.mjs\";\nimport { Value } from \"../value.mjs\";\n\n/**\n * ValueBoolean object.\n */\nexport class ValueBoolean extends Value {\n /**\n * Value type.\n */\n static TYPE = 'boolean';\n\n /**\n * Tag names.\n */\n static TAG_NAMES = ['true', 'false'];\n\n /**\n * Value value.\n */\n value = false;\n\n /**\n * ValueBoolean constructor.\n *\n * @param value The value.\n */\n constructor(value = false) {\n super();\n this.value = value;\n }\n\n /**\n * @inheritdoc\n */\n fromXmlElement(element) {\n assertNoXmlElementChildNodes(element);\n switch (element.tagName) {\n case 'true':\n {\n this.value = true;\n return;\n }\n case 'false':\n {\n this.value = false;\n return;\n }\n default:\n {\n throw assertXmlTagName(element, '');\n }\n }\n }\n\n /**\n * @inheritdoc\n */\n toXml(options = null, depth = 0) {\n const p = (options?.indentString ?? INDENT_STRING).repeat(depth);\n return this.value ? `${p}<true/>` : `${p}<false/>`;\n }\n}\n//# sourceMappingURL=boolean.mjs.map","import { DATA_COLUMNS, INDENT_STRING, NEWLINE_STRING } from \"../options.mjs\";\nimport { assertXmlTagName, base64Decode, base64Encode, xmlElementText } from \"../util.mjs\";\nimport { Value } from \"../value.mjs\";\n\n/**\n * ValueData object.\n */\nexport class ValueData extends Value {\n /**\n * Value type.\n */\n static TYPE = 'data';\n\n /**\n * Tag names.\n */\n static TAG_NAMES = ['data'];\n\n /**\n * Value value.\n */\n\n /**\n * ValueData constructor.\n *\n * @param value The value.\n */\n constructor(value = new Uint8Array(0)) {\n super();\n this.value = value;\n }\n\n /**\n * @inheritdoc\n */\n fromXmlElement(element) {\n assertXmlTagName(element, 'data');\n const text = xmlElementText(element)?.nodeValue || '';\n this.value = base64Decode(text);\n }\n\n /**\n * @inheritdoc\n */\n toXml(options = null, depth = 0) {\n const n = options?.newlineString ?? NEWLINE_STRING;\n const c = options?.dataColumns ?? DATA_COLUMNS;\n const p = (options?.indentString ?? INDENT_STRING).repeat(depth);\n let r = `${p}<data>`;\n if (c > 0) {\n for (let s = base64Encode(this.value); s; s = s.slice(c)) {\n r += `${n}${p}${s.slice(0, c)}`;\n }\n } else {\n r += `${n}${p}${base64Encode(this.value)}`;\n }\n r += `${n}${p}</data>`;\n return r;\n }\n}\n//# sourceMappingURL=data.mjs.map","import { INDENT_STRING } from \"../options.mjs\";\nimport { assertXmlTagName, xmlElementText } from \"../util.mjs\";\nimport { Value } from \"../value.mjs\";\n\n/**\n * ValueReal object.\n */\nexport class ValueReal extends Value {\n /**\n * Value type.\n */\n static TYPE = 'real';\n\n /**\n * Tag names.\n */\n static TAG_NAMES = ['real'];\n\n /**\n * Value value.\n */\n value = 0;\n\n /**\n * ValueReal constructor.\n *\n * @param value The value.\n */\n constructor(value = 0) {\n super();\n this.value = value;\n }\n\n /**\n * @inheritdoc\n */\n fromXmlElement(element) {\n assertXmlTagName(element, 'real');\n const text = xmlElementText(element)?.nodeValue || '';\n if (!/^[+-]?(\\d+|\\d*\\.\\d+)$/.test(text)) {\n throw new Error(`Invalid real data: ${text}`);\n }\n this.value = +text;\n }\n\n /**\n * @inheritdoc\n */\n toXml(options = null, depth = 0) {\n const p = (options?.indentString ?? INDENT_STRING).repeat(depth);\n const v = this.value;\n return `${p}<real>${v}</real>`;\n }\n}\n//# sourceMappingURL=real.mjs.map","import { INDENT_STRING } from \"../options.mjs\";\nimport { assertXmlTagName, xmlElementText } from \"../util.mjs\";\nimport { Value } from \"../value.mjs\";\n\n/**\n * ValueString object.\n */\nexport class ValueString extends Value {\n /**\n * Value type.\n */\n static TYPE = 'string';\n\n /**\n * Tag names.\n */\n static TAG_NAMES = ['string'];\n\n /**\n * Value value.\n */\n value = '';\n\n /**\n * ValueString constructor.\n *\n * @param value The value.\n */\n constructor(value = '') {\n super();\n this.value = value;\n }\n\n /**\n * @inheritdoc\n */\n fromXmlElement(element) {\n assertXmlTagName(element, 'string');\n this.value = xmlElementText(element)?.nodeValue || '';\n }\n\n /**\n * @inheritdoc\n */\n toXml(options = null, depth = 0) {\n const p = (options?.indentString ?? INDENT_STRING).repeat(depth);\n const e = this.value.replaceAll('&', '&').replaceAll('<', '<').replaceAll('>', '>');\n return `${p}<string>${e}</string>`;\n }\n}\n//# sourceMappingURL=string.mjs.map","import { INDENT_STRING, NEWLINE_STRING } from \"../options.mjs\";\nimport { assertXmlTagName, xmlElementChildElements, xmlElementText } from \"../util.mjs\";\nimport { Value } from \"../value.mjs\";\nimport { ValueArray } from \"./array.mjs\";\nimport { ValueBoolean } from \"./boolean.mjs\";\nimport { ValueData } from \"./data.mjs\";\nimport { ValueInteger } from \"./integer.mjs\";\nimport { ValueReal } from \"./real.mjs\";\nimport { ValueString } from \"./string.mjs\";\nlet childTagNames;\n\n/**\n * ValueDict object.\n */\nexport class ValueDict extends Value {\n /**\n * Value type.\n */\n static TYPE = 'dict';\n\n /**\n * Tag names.\n */\n static TAG_NAMES = ['dict'];\n\n /**\n * Child tag names.\n *\n * @returns Child tag names map.\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n static get CHILD_TAG_NAMES() {\n if (!childTagNames) {\n childTagNames = new Map();\n for (const ValueType of [ValueArray, ValueBoolean, ValueData, ValueDict, ValueInteger, ValueReal, ValueString]) {\n for (const t of ValueType.TAG_NAMES) {\n childTagNames.set(t, ValueType);\n }\n }\n }\n return childTagNames;\n }\n\n /**\n * Value value.\n */\n value = new Map();\n\n /**\n * ValueDict constructor.\n *\n * @param value The value.\n */\n constructor(value = new Map()) {\n super();\n this.value = value;\n }\n\n /**\n * Dictionary size.\n *\n * @returns The size.\n */\n get size() {\n return this.value.size;\n }\n\n /**\n * Check if key exists.\n *\n * @param key Dictionary key.\n * @returns The value or null.\n */\n has(key) {\n return this.value.has(key);\n }\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 */\n get(key) {\n return this.value.get(key) || null;\n }\n\n /**\n * Get value for key or throw.\n *\n * @param key Dictionary key.\n * @returns The value.\n */\n getValue(key) {\n const r = this.get(key);\n if (!r) {\n throw new Error(`Key is null: ${key}`);\n }\n return r;\n }\n\n /**\n * Set value for key.\n *\n * @param key Dictionary key.\n * @param value Value object.\n */\n set(key, value) {\n this.value.set(key, value);\n }\n\n /**\n * Delete value for key.\n *\n * @param key Dictionary key.\n */\n delete(key) {\n this.value.delete(key);\n }\n\n /**\n * Clear dictionary.\n */\n clear() {\n this.value.clear();\n }\n\n /**\n * @inheritdoc\n */\n fromXmlElement(element) {\n assertXmlTagName(element, 'dict');\n const children = xmlElementChildElements(element);\n const l = children.length;\n if (l % 2) {\n throw new Error(`Uneven number of child elements: ${l}`);\n }\n const v = new Map();\n for (let i = 0; i < l; i += 2) {\n const eK = children[i];\n const eV = children[i + 1];\n assertXmlTagName(eK, 'key');\n const key = xmlElementText(eK)?.nodeValue || '';\n const value = this.childFromXmlElement(eV);\n v.set(key, value);\n }\n this.value = v;\n }\n\n /**\n * Decode child element from XML element.\n *\n * @param element XML element.\n * @returns Value element.\n */\n childFromXmlElement(element) {\n const {\n tagName\n } = element;\n const {\n CHILD_TAG_NAMES\n } = this.constructor;\n const Value = CHILD_TAG_NAMES.get(tagName) || null;\n if (!Value) {\n throw new Error(`Unknown element type: ${tagName}`);\n }\n const r = new Value();\n r.fromXmlElement(element);\n return r;\n }\n\n /**\n * @inheritdoc\n */\n toXml(options = null, depth = 0) {\n const i = options?.indentString ?? INDENT_STRING;\n const n = options?.newlineString ?? NEWLINE_STRING;\n const p = i.repeat(depth);\n const v = this.value;\n if (!v.size) {\n return `${p}<dict/>`;\n }\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//# sourceMappingURL=dict.mjs.map","import { INDENT_STRING, NEWLINE_STRING } from \"../options.mjs\";\nimport { assertXmlTagName, xmlElementChildElements } from \"../util.mjs\";\nimport { Value } from \"../value.mjs\";\nimport { ValueBoolean } from \"./boolean.mjs\";\nimport { ValueData } from \"./data.mjs\";\nimport { ValueDict } from \"./dict.mjs\";\nimport { ValueInteger } from \"./integer.mjs\";\nimport { ValueReal } from \"./real.mjs\";\nimport { ValueString } from \"./string.mjs\";\nlet childTagNames;\n\n/**\n * ValueArray object.\n */\nexport class ValueArray extends Value {\n /**\n * Value type.\n */\n static TYPE = 'array';\n\n /**\n * Tag names.\n */\n static TAG_NAMES = ['array'];\n\n /**\n * Child tag names.\n *\n * @returns Child tag names map.\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n static get CHILD_TAG_NAMES() {\n if (!childTagNames) {\n childTagNames = new Map();\n for (const ValueType of [ValueArray, ValueBoolean, ValueData, ValueDict, ValueInteger, ValueReal, ValueString]) {\n for (const t of ValueType.TAG_NAMES) {\n childTagNames.set(t, ValueType);\n }\n }\n }\n return childTagNames;\n }\n\n /**\n * Value value.\n */\n value = [];\n\n /**\n * ValueArray constructor.\n *\n * @param value The value.\n */\n constructor(value = []) {\n super();\n this.value = value;\n }\n\n /**\n * Array length.\n *\n * @returns The length.\n */\n get length() {\n return this.value.length;\n }\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 */\n get(index) {\n const {\n value\n } = this;\n return index < this.length ? value[index] : null;\n }\n\n /**\n * Get value at index or throw.\n *\n * @param index Array index.\n * @returns The value.\n */\n getValue(index) {\n const r = this.get(index);\n if (!r) {\n throw new Error(`Index out of bounds: ${index}`);\n }\n return r;\n }\n\n /**\n * Set value at index.\n *\n * @param index Array index.\n * @param value Value object.\n */\n set(index, value) {\n this.value[index] = value;\n }\n\n /**\n * Push values onto array.\n *\n * @param values Value objects.\n */\n push(...values) {\n this.value.push(...values);\n }\n\n /**\n * Pop value off array or null.\n *\n * @returns Value object or null.\n */\n pop() {\n return this.value.pop() || null;\n }\n\n /**\n * Pop value off array or throw.\n *\n * @returns Value object or null.\n */\n popValue() {\n const r = this.pop();\n if (!r) {\n throw new Error('Cannot pop empty array');\n }\n return r;\n }\n\n /**\n * Shift value off array or null.\n *\n * @returns Value object or null.\n */\n shift() {\n return this.value.shift() || null;\n }\n\n /**\n * Pop value off array or throw.\n *\n * @returns Value object or null.\n */\n shiftValue() {\n const r = this.shift();\n if (!r) {\n throw new Error('Cannot shift empty array');\n }\n return r;\n }\n\n /**\n * @inheritdoc\n */\n fromXmlElement(element) {\n assertXmlTagName(element, 'array');\n const children = xmlElementChildElements(element);\n this.value = children.map(el => this.childFromXmlElement(el));\n }\n\n /**\n * Decode child element from XML element.\n *\n * @param element XML element.\n * @returns Value element.\n */\n childFromXmlElement(element) {\n const {\n tagName\n } = element;\n const {\n CHILD_TAG_NAMES\n } = this.constructor;\n const Value = CHILD_TAG_NAMES.get(tagName) || null;\n if (!Value) {\n throw new Error(`Unknown element type: ${tagName}`);\n }\n const r = new Value();\n r.fromXmlElement(element);\n return r;\n }\n\n /**\n * @inheritdoc\n */\n toXml(options = null, depth = 0) {\n const n = options?.newlineString ?? NEWLINE_STRING;\n const p = (options?.indentString ?? INDENT_STRING).repeat(depth);\n const v = this.value;\n if (!v.length) {\n return `${p}<array/>`;\n }\n let r = `${p}<array>`;\n for (const el of v) {\n r += `${n}${el.toXml(options, depth + 1)}`;\n }\n r += `${n}${p}</array>`;\n return r;\n }\n}\n//# sourceMappingURL=array.mjs.map","import { INDENT_ROOT, NEWLINE_STRING } from \"./options.mjs\";\nimport { xmlDecode, xmlElementChildElements } from \"./util.mjs\";\nimport { ValueDict } from \"./value/dict.mjs\";\nconst xmlDeclaration = '<?xml version=\"1.0\" encoding=\"UTF-8\"?>';\nconst xmlDoctype = '<!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 /**\n * Default XML declaration.\n */\n static XML_DECLARATION = xmlDeclaration;\n\n /**\n * Default XML doctype.\n */\n static XML_DOCTYPE = xmlDoctype;\n\n /**\n * XML declaration.\n */\n xmlDeclaration = xmlDeclaration;\n\n /**\n * XML doctype.\n */\n xmlDoctype = xmlDoctype;\n\n /**\n * Value element.\n */\n value = null;\n\n /**\n * Plist constructor.\n *\n * @param value The value.\n */\n constructor(value = null) {\n this.value = value;\n }\n\n /**\n * Get value or throw if null.\n *\n * @returns The value.\n */\n getValue() {\n const {\n value\n } = this;\n if (!value) {\n throw new Error('Value is null');\n }\n return value;\n }\n\n /**\n * Cast to specific type or null.\n *\n * @param Type Type constructor.\n * @returns The object or null.\n */\n valueCastTo(Type) {\n const {\n value\n } = this;\n return value ? value.castTo(Type) : null;\n }\n\n /**\n * Cast to specific type or throw.\n *\n * @param Type Type constructor.\n * @returns The object.\n */\n valueCastAs(Type) {\n const casted = this.valueCastTo(Type);\n if (!casted) {\n throw new Error(`Cannot cast value to type '${Type.TYPE}'`);\n }\n return casted;\n }\n\n /**\n * Decode document from string.\n *\n * @param xml XML string.\n */\n fromXml(xml) {\n const {\n declaration,\n doctype,\n documentElement\n } = xmlDecode(xml);\n this.fromXmlElement(documentElement, declaration, doctype);\n }\n\n /**\n * Decode document from element.\n *\n * @param element XML element.\n * @param declaration XML declaration.\n * @param doctype XML doctype.\n */\n fromXmlElement(element, declaration = null, doctype = null) {\n const {\n tagName\n } = element;\n if (tagName !== 'plist') {\n throw new Error(`Unexpected root plist tag name: ${tagName}`);\n }\n const childElements = xmlElementChildElements(element);\n const childElementsL = childElements.length;\n if (childElementsL > 1) {\n throw new Error(`Multiple root plist child tag: ${childElementsL}`);\n }\n this.value = childElementsL ? this.childFromXmlElement(childElements[0]) : null;\n this.xmlDeclaration = declaration || '';\n this.xmlDoctype = doctype || '';\n }\n\n /**\n * Decode child element from XML element.\n *\n * @param element XML element.\n * @returns Value element.\n */\n childFromXmlElement(element) {\n const a = new ValueDict();\n return a.childFromXmlElement(element);\n }\n\n /**\n * Encode documents to string.\n *\n * @param options Options object.\n * @returns XML string.\n */\n toXml(options = null) {\n const ir = options?.indentRoot ?? INDENT_ROOT;\n const n = options?.newlineString ?? NEWLINE_STRING;\n const v = this.value;\n return [...[this.xmlDeclaration, this.xmlDoctype].filter(Boolean), '<plist version=\"1.0\">', ...(v ? [v.toXml(options, ir ? 1 : 0)] : []), '</plist>', ''].join(n);\n }\n}\n//# sourceMappingURL=plist.mjs.map","import { spawn, spawnSync } from 'node:child_process';\nimport { Plist, ValueDict, ValueArray, ValueString, ValueBoolean } from '@shockpkg/plist-dom';\n/**\n * Mounter object.\n */\nexport class Mounter {\n /**\n * The path to hdiutil.\n */\n\n /**\n * Mounter constructor.\n *\n * @param options Options object.\n */\n constructor(options = null) {\n this.hdiutil = (options ? options.hdiutil : null) || 'hdiutil';\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 */\n async attach(file, options = null, ejectOnExit = null) {\n const devices = await this._runAttach(this._argsAttach(file, options));\n const {\n eject,\n ejectSync\n } = this._createEjects(devices);\n return {\n devices,\n eject,\n ejectSync\n };\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 */\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 {\n eject,\n ejectSync\n } = this._createEjects(devices);\n return {\n devices,\n eject,\n ejectSync\n };\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 */\n async eject(file, options = null) {\n await this._runEject(this._argsEject(file, options));\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 */\n ejectSync(file, options = null) {\n // eslint-disable-next-line no-sync\n this._runEjectSync(this._argsEject(file, options));\n }\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 */\n _argsAttach(file, options = null) {\n const args = ['attach', '-plist'];\n if (options) {\n if (options.readonly) {\n args.push('-readonly');\n }\n if (options.nobrowse) {\n args.push('-nobrowse');\n }\n }\n args.push(this._fileArg(file));\n return args;\n }\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 */\n _argsEject(file, options = null) {\n const args = ['eject'];\n if (options && options.force) {\n args.push('-force');\n }\n args.push(this._fileArg(file));\n return args;\n }\n\n /**\n * Run hdiutil attach command, returning the devices list on success.\n *\n * @param args CLI args.\n * @returns Devices list.\n */\n async _runAttach(args) {\n const stdouts = [];\n const proc = 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) {\n throw new Error(`Attach failed: hdiutil exit code: ${code}`);\n }\n return this._parseDevices(Buffer.concat(stdouts).toString());\n }\n\n /**\n * Run hdiutil attach command, returning the devices list on success.\n *\n * @param args CLI args.\n * @returns Devices list.\n */\n _runAttachSync(args) {\n const {\n status,\n error,\n stdout\n } = spawnSync(this.hdiutil, args);\n if (error) {\n throw error;\n }\n if (status) {\n throw new Error(`Attach failed: hdiutil exit code: ${status}`);\n }\n return this._parseDevices(stdout.toString());\n }\n\n /**\n * Run hdiutil eject command.\n *\n * @param args CLI args.\n */\n async _runEject(args) {\n const proc = 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) {\n throw new Error(`Eject failed: hdiutil exit code: ${status}`);\n }\n }\n\n /**\n * Run hdiutil eject command.\n *\n * @param args CLI args.\n */\n _runEjectSync(args) {\n const {\n status,\n error\n } = spawnSync(this.hdiutil, args);\n if (error) {\n throw error;\n }\n if (status) {\n throw new Error(`Eject failed: hdiutil exit code: ${status}`);\n }\n }\n\n /**\n * Create file argument from file path.\n *\n * @param file File path.\n * @returns A path for use as argument.\n */\n _fileArg(file) {\n // Make sure it will not be recognized as option argument.\n return file.startsWith('-') ? `./${file}` : file;\n }\n\n /**\n * Parse devices plist into devices list.\n *\n * @param xml XML plist.\n * @returns Devices list.\n */\n _parseDevices(xml) {\n const plist = new Plist();\n plist.fromXml(xml);\n const systemEntities = plist.valueCastAs(ValueDict).getValue('system-entities').castAs(ValueArray);\n const r = [];\n for (const value of systemEntities.value) {\n const dict = value.castAs(ValueDict);\n const devEntry = dict.getValue('dev-entry').castAs(ValueString).value;\n const potentiallyMountable = dict.getValue('potentially-mountable').castAs(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,\n potentiallyMountable\n };\n if (contentHint) {\n device.contentHint = contentHint.castAs(ValueString).value;\n }\n if (unmappedContentHint) {\n device.unmappedContentHint = unmappedContentHint.castAs(ValueString).value;\n }\n if (volumeKind) {\n device.volumeKind = volumeKind.castAs(ValueString).value;\n }\n if (mountPoint) {\n device.mountPoint = mountPoint.castAs(ValueString).value;\n }\n r.push(device);\n }\n return r;\n }\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 */\n _findRootDevice(devices) {\n let r = null;\n for (const device of devices) {\n if (r === null || r.devEntry.length > device.devEntry.length) {\n r = device;\n }\n }\n return r;\n }\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 */\n _createEjects(devices, ejectOnExit = null) {\n // Find the root device, to use to eject (none possible in theory).\n let devEntry = this._findRootDevice(devices)?.devEntry;\n let shutdown = null;\n const info = {\n /**\n * The eject callback function.\n *\n * @param options Eject options.\n */\n eject: async (options = null) => {\n if (devEntry) {\n await this.eject(devEntry, options);\n devEntry = '';\n if (shutdown) {\n process.off('exit', shutdown);\n }\n }\n },\n /**\n * The eject callback function.\n *\n * @param options Eject options.\n */\n ejectSync: (options = null) => {\n if (devEntry) {\n // eslint-disable-next-line no-sync\n this.ejectSync(devEntry, options);\n devEntry = '';\n if (shutdown) {\n process.off('exit', shutdown);\n }\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 */\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//# sourceMappingURL=mounter.mjs.map","export let PathType = /*#__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//# sourceMappingURL=types.mjs.map","/* 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';\nconst pipe = promisify(pipeline);\nimport { PathType } from \"./types.mjs\";\nimport { fsChmod, fsLchmod, fsLstatExists, fsLutimes, fsSymlink, fsUtimes, modePermissionBits, pathNormalize, pathResourceFork, streamToBuffer } from \"./util.mjs\";\n/**\n * Entry object.\n */\nexport class Entry {\n /**\n * Entry archive.\n */\n\n /**\n * Entry type.\n */\n\n /**\n * Entry path.\n */\n\n /**\n * Entry path, raw.\n */\n\n /**\n * Entry size.\n */\n\n /**\n * Entry size, compressed.\n */\n\n /**\n * Entry mode.\n */\n\n /**\n * Entry uid.\n */\n\n /**\n * Entry gid.\n */\n\n /**\n * Entry uname.\n */\n\n /**\n * Entry gname.\n */\n\n /**\n * Entry atime.\n */\n\n /**\n * Entry mtime.\n */\n\n /**\n * Read data.\n */\n\n /**\n * Read rsrc.\n */\n\n /**\n * Read symlink.\n */\n\n /**\n * Entry triggering.\n */\n _triggering = false;\n\n /**\n * Entry triggered.\n */\n _triggered = false;\n\n /**\n * Entry extracted.\n */\n _extracted = false;\n\n /**\n * Entry constructor.\n *\n * @param info Info object.\n */\n constructor(info) {\n this.archive = info.archive;\n this.type = info.type;\n this.pathRaw = info.pathRaw;\n this.path = pathNormalize(info.pathRaw);\n this.size = info.size ?? null;\n this.sizeComp = info.sizeComp ?? null;\n this.mode = info.mode ?? null;\n this.uid = info.uid ?? null;\n this.gid = info.gid ?? null;\n this.uname = info.uname ?? null;\n this.gname = info.gname ?? null;\n this.atime = info.atime ?? null;\n this.mtime = info.mtime ?? null;\n this._readData = info.readData ?? null;\n this._readRsrc = info.readRsrc ?? null;\n this._readSymlink = info.readSymlink ?? null;\n }\n\n /**\n * This entry path includes named volume.\n *\n * @returns Entry has volume name in path.\n */\n get hasNamedVolume() {\n return this.archive.hasNamedVolumes;\n }\n\n /**\n * This entry volume name, or null.\n *\n * @returns Entry path volume name.\n */\n get volumeName() {\n if (this.hasNamedVolume) {\n const {\n path\n } = this;\n return path.substring(0, path.indexOf('/'));\n }\n return null;\n }\n\n /**\n * This entry path without any possible volume name.\n *\n * @returns Entry path without the volume name.\n */\n get volumePath() {\n const {\n path\n } = this;\n if (this.hasNamedVolume) {\n return path.substring(path.indexOf('/') + 1);\n }\n return path;\n }\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 */\n async stream() {\n this._beginExtract();\n return this._stream();\n }\n\n /**\n * Read entire entry into a Buffer.\n *\n * @returns Buffer or null if nothing to be read.\n */\n async read() {\n this._beginExtract();\n const stream = await this._stream();\n return stream ? streamToBuffer(stream) : null;\n }\n\n /**\n * Extract entry.\n *\n * @param path Extract path.\n * @param options Extract options.\n */\n async extract(path, options = {}) {\n this._beginExtract();\n await this._extract(path, options);\n }\n\n /**\n * Trigger on itterator function.\n *\n * @param itter Itterator function.\n * @returns Return value.\n */\n async trigger(itter) {\n let r;\n if (this._triggered) {\n throw new Error('Archive entry already triggered');\n }\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 /**\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 */\n async setAttributes(path, pathFull = null, options = {}) {\n const pathSet = pathFull === null ? path : pathFull;\n const {\n ignorePermissions,\n ignoreTimes\n } = options;\n const {\n type,\n mode,\n atime,\n mtime\n } = this;\n let link = false;\n switch (type) {\n case PathType.FILE:\n {\n break;\n }\n case PathType.RESOURCE_FORK:\n {\n break;\n }\n case PathType.DIRECTORY:\n {\n break;\n }\n case PathType.SYMLINK:\n {\n link = true;\n break;\n }\n default:\n {\n throw new Error(`Unsupported path type: ${type}`);\n }\n }\n const atimeSet = atime || mtime || null;\n const mtimeSet = mtime || atime || null;\n if (!ignorePermissions && mode !== null) {\n const chmod = link ? fsLchmod : fsChmod;\n const modeSet = modePermissionBits(mode);\n await chmod(pathSet, modeSet);\n }\n if (!ignoreTimes && atimeSet && mtimeSet) {\n const utimes = link ? fsLutimes : fsUtimes;\n await utimes(pathSet, atimeSet, mtimeSet);\n }\n }\n\n /**\n * Method to call before begining extraction.\n * Throws error if extraction already started or entry not active.\n */\n _beginExtract() {\n if (!this._triggering) {\n throw new Error('Archive entry is not active');\n }\n if (this._extracted) {\n throw new Error('Archive entry can only be extracted once');\n }\n this._extracted = true;\n }\n\n /**\n * Create an extract error for path that exists.\n *\n * @param path Extract path.\n * @returns Error object.\n */\n _errorExtractPathExists(path) {\n return new Error(`Extract path already exists: ${path}`);\n }\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 */\n _errorNoResourceFork(path) {\n return new Error(`Extract path for resource fork not a file: ${path}`);\n }\n\n /**\n * Extract entry.\n *\n * @param path Extract path.\n * @param options Extract options.\n */\n async _extract(path, options) {\n this.archive.afterReadSetAttributesRemove(path);\n const {\n type\n } = this;\n switch (type) {\n case PathType.FILE:\n {\n await this._extractFile(path, options);\n break;\n }\n case PathType.RESOURCE_FORK:\n {\n await this._extractResourceFork(path, options);\n break;\n }\n case PathType.DIRECTORY:\n {\n await this._extractDirectory(path, options);\n break;\n }\n case PathType.SYMLINK:\n {\n await this._extractSymlink(path, options);\n break;\n }\n default:\n {\n throw new Error(`Unsupported path type: ${type}`);\n }\n }\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 */\n async _extractStreamToFile(path, reader, options) {\n const {\n replace\n } = options;\n\n // Check if something exists at path, optionally removing.\n const stat = await fsLstatExists(path);\n if (stat) {\n // If replacing, then remove, else throw.\n if (replace) {\n await rm(path, {\n recursive: true,\n force: true\n });\n } else {\n throw this._errorExtractPathExists(path);\n }\n } else {\n await mkdir(dirname(path), {\n recursive: true\n });\n }\n\n // Write file.\n await writeFile(path, Buffer.alloc(0));\n const stream = await reader();\n if (stream) {\n await pipe(stream, createWriteStream(path));\n }\n\n // Set attributes.\n await this.setAttributes(path, null, options);\n }\n\n /**\n * Extract as a file.\n *\n * @param path Extract path.\n * @param options Extract options.\n */\n async _extractFile(path, options) {\n const readData = this._readData;\n if (!readData) {\n throw new Error('Internal error');\n }\n await this._extractStreamToFile(path, readData, options);\n }\n\n /**\n * Extract as resource fork to an existing file.\n *\n * @param path Extract path.\n * @param options Extract options.\n */\n async _extractResourceFork(path, options) {\n const readRsrc = this._readRsrc;\n if (!readRsrc) {\n throw new Error('Internal error');\n }\n\n // Optionally extract as a data file.\n if (options.resourceForkAsFile) {\n await this._extractStreamToFile(path, readRsrc, options);\n return;\n }\n\n // Check if file exists at path, else throw.\n const stat = await fsLstatExists(path);\n if (!stat || !stat.isFile()) {\n throw this._errorNoResourceFork(path);\n }\n\n // Create resource fork path.\n const pathRsrc = pathResourceFork(path);\n\n // Write the resource fork.\n const stream = await readRsrc();\n if (stream) {\n await pipe(stream, createWriteStream(pathRsrc));\n } else {\n await writeFile(pathRsrc, Buffer.alloc(0));\n }\n\n // Set attributes.\n await this.setAttributes(path, null, options);\n }\n\n /**\n * Extract as a directory.\n *\n * @param path Extract path.\n * @param options Extract options.\n */\n async _extractDirectory(path, options) {\n const {\n replace\n } = options;\n\n // Check if something exists at path, else create.\n const stat = await fsLstatExists(path);\n if (stat) {\n // If not directory, then remove and replace it, else throw.\n if (!stat.isDirectory()) {\n if (replace) {\n await rm(path, {\n recursive: true,\n force: true\n });\n await mkdir(path, {\n recursive: true\n });\n } else {\n throw this._errorExtractPathExists(path);\n }\n }\n } else {\n await mkdir(path, {\n recursive: true\n });\n }\n\n // Set directory attributes after any children are added.\n this.archive.afterReadSetAttributes(path, this, {\n ...options\n });\n }\n\n /**\n * Extract as a symlink.\n *\n * @param path Extract path.\n * @param options Extract options.\n */\n async _extractSymlink(path, options) {\n const readSymlink = this._readSymlink;\n if (!readSymlink) {\n throw new Error('Internal error');\n }\n const {\n replace,\n symlinkAsFile\n } = options;\n\n // Check if something exists at path, optionally removing.\n const stat = await fsLstatExists(path);\n if (stat) {\n // If replacing, then remove, else throw.\n if (replace) {\n await rm(path, {\n recursive: true,\n force: true\n });\n } else {\n throw this._errorExtractPathExists(path);\n }\n } else {\n // Ensure base directory exists.\n await mkdir(dirname(path), {\n recursive: true\n });\n }\n\n // Read target.\n const target = await readSymlink();\n\n // Create link, optionally as a file.\n if (symlinkAsFile) {\n await writeFile(path, target);\n } else {\n await fsSymlink(path, target);\n }\n\n // Set attributes.\n await this.setAttributes(path, null, options);\n }\n\n /**\n * Read as stream.\n *\n * @returns Readable stream.\n */\n async _stream() {\n const {\n type\n } = this;\n switch (type) {\n case PathType.FILE:\n {\n return this._streamFile();\n }\n case PathType.RESOURCE_FORK:\n {\n return this._streamResourceFork();\n }\n case PathType.DIRECTORY:\n {\n return this._streamDirectory();\n }\n case PathType.SYMLINK:\n {\n return this._streamSymlink();\n }\n default:\n {\n throw new Error(`Unsupported path type: ${type}`);\n }\n }\n }\n\n /**\n * Read file as stream.\n *\n * @returns Readable stream.\n */\n async _streamFile() {\n const readData = this._readData;\n if (!readData) {\n throw new Error('Internal error');\n }\n return readData();\n }\n\n /**\n * Read resource fork as stream.\n *\n * @returns Readable stream.\n */\n async _streamResourceFork() {\n const readRsrc = this._readRsrc;\n if (!readRsrc) {\n throw new Error('Internal error');\n }\n return readRsrc();\n }\n\n /**\n * Read directory null stream.\n *\n * @returns Null stream.\n */\n // eslint-disable-next-line @typescript-eslint/require-await\n async _streamDirectory() {\n return null;\n }\n\n /**\n * Read symlink as stream.\n *\n * @returns Readable stream.\n */\n // eslint-disable-next-line @typescript-eslint/require-await\n async _streamSymlink() {\n const readSymlink = this._readSymlink;\n if (!readSymlink) {\n throw new Error('Internal error');\n }\n const r = new 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}\n\n/**\n * Archive object.\n */\nexport class Archive {\n /**\n * List of file extensions, or null.\n */\n static FILE_EXTENSIONS = null;\n\n /**\n * Archive has named volumes that each entry will be under.\n */\n static HAS_NAMED_VOLUMES = false;\n\n /**\n * Entry constructor.\n */\n Entry = Entry;\n\n /**\n * File path.\n */\n\n /**\n * Flag for currently reading.\n */\n _reading = false;\n\n /**\n * Map of entries to set attributes on after reading.\n */\n _afterReadSetAttributes = null;\n\n /**\n * Archive constructor.\n *\n * @param path File path.\n */\n constructor(path) {\n this.path = path;\n }\n\n /**\n * List of file extensions used by this format.\n *\n * @returns List of file extensions.\n */\n get fileExtensions() {\n return this.constructor.FILE_EXTENSIONS || null;\n }\n\n /**\n * Archive has named volumes that each entry will be under.\n *\n * @returns Archive has named volumns.\n */\n get hasNamedVolumes() {\n return this.constructor.HAS_NAMED_VOLUMES;\n }\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 */\n afterReadSetAttributes(path, entry, options = {}) {\n const afters = this._afterReadSetAttributes;\n if (!afters) {\n throw new Error('Archive after read callbacks can only be added while reading');\n }\n afters.set(resolve(path), {\n path,\n entry,\n options\n });\n }\n\n /**\n * Remove an instance to set attributes after the read finishes.\n *\n * @param path Path string.\n */\n afterReadSetAttributesRemove(path) {\n const afters = this._afterReadSetAttributes;\n if (!afters) {\n throw new Error('Archive after read callbacks can only be removed while reading');\n }\n afters.delete(resolve(path));\n }\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 */\n async read(itter) {\n if (this._reading) {\n throw new Error('Archive already being read');\n }\n this._reading = true;\n\n // Reset the after entries.\n this._afterReadSetAttributes = new Map();\n\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 /**\n * Run all after read set attributes.\n */\n async _afterReadSetAttributesTrigger() {\n const afters = this._afterReadSetAttributes;\n if (!afters) {\n return;\n }\n\n // Prioritize by path length.\n const resolves = [];\n for (const [resolved] of afters) {\n resolves.push(resolved);\n }\n resolves.sort((a, b) => b.length - a.length);\n for (const resolved of resolves) {\n const ent = afters.get(resolved);\n if (!ent) {\n throw new Error('Internal error');\n }\n const {\n entry,\n path,\n options\n } = ent;\n // eslint-disable-next-line no-await-in-loop\n await entry.setAttributes(path, resolved, options);\n }\n }\n\n /**\n * Read archive, class implementation.\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 */\n}\n//# sourceMappingURL=archive.mjs.map","/* eslint-disable max-classes-per-file */\n\nimport { createReadStream } from 'node:fs';\nimport { basename, join as pathJoin } from 'node:path';\nimport { Mounter } from '@shockpkg/hdi-mac';\nimport { Archive, Entry } from \"../archive.mjs\";\nimport { PathType } from \"../types.mjs\";\nimport { fsLstatExists, fsReadlinkRaw, fsWalk, pathNormalize, pathResourceFork, statToPathType } from \"../util.mjs\";\nconst walkOpts = {\n ignoreUnreadableDirectories: true\n};\nconst ejectOptions = {\n force: true\n};\n/**\n * EntryHdi object.\n */\nexport class EntryHdi extends Entry {\n /**\n * @inheritdoc\n */\n\n /**\n * @inheritdoc\n */\n\n /**\n * @inheritdoc\n */\n sizeComp = null;\n\n /**\n * @inheritdoc\n */\n\n /**\n * @inheritdoc\n */\n\n /**\n * @inheritdoc\n */\n\n /**\n * @inheritdoc\n */\n uname = null;\n\n /**\n * @inheritdoc\n */\n gname = null;\n\n /**\n * @inheritdoc\n */\n\n /**\n * @inheritdoc\n */\n\n /**\n * EntryHdi constructor.\n *\n * @param info Info object.\n */\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 /**\n * Get the path of resource psuedo-file, raw.\n *\n * @returns Path string.\n */\n get rsrcPathRaw() {\n return pathResourceFork(this.pathRaw);\n }\n\n /**\n * Get the path of resource psuedo-file, normalized.\n *\n * @returns Path string.\n */\n get rsrcPath() {\n return pathNormalize(pathResourceFork(this.path));\n }\n}\n\n/**\n * ArchiveHdi object.\n */\nexport class ArchiveHdi extends Archive {\n /**\n * @inheritdoc\n */\n static FILE_EXTENSIONS = ['.dmg', '.iso', '.cdr'];\n\n /**\n * @inheritdoc\n */\n static HAS_NAMED_VOLUMES = true;\n\n /**\n * @inheritdoc\n */\n Entry = EntryHdi;\n\n /**\n * Mounter, Mac.\n */\n mounterMac = new Mounter();\n\n /**\n * Hide mounted disk image from the file explorers.\n */\n nobrowse = false;\n\n /**\n * ArchiveHdi constructor.\n *\n * @param path File path.\n */\n constructor(path) {\n super(path);\n }\n\n /**\n * @inheritdoc\n */\n async read(itter) {\n await super.read(itter);\n }\n\n /**\n * @inheritdoc\n */\n async _read(itter) {\n const {\n mounterMac,\n nobrowse\n } = this;\n\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 */\n const each = async (pathFull, pathRaw, stat) => {\n const type = statToPathType(stat);\n if (type === null) {\n return true;\n }\n const {\n size,\n mode,\n uid,\n gid,\n atime,\n mtime\n } = stat;\n const readData = type === PathType.FILE ?\n // eslint-disable-next-line max-len\n // eslint-disable-next-line @typescript-eslint/require-await\n async () => createReadStream(pathFull) : null;\n const readSymlink = type === PathType.SYMLINK ? async () => fsReadlinkRaw(pathFull) : null;\n const entry = new this.Entry({\n archive: this,\n type,\n pathRaw,\n size,\n mode,\n uid,\n gid,\n atime,\n mtime,\n readData,\n readSymlink\n });\n const ret = await entry.trigger(itter);\n if (ret === false) {\n return null;\n }\n if (ret === null) {\n return false;\n }\n if (type === PathType.FILE) {\n const rsrcPathFull = pathResourceFork(pathFull);\n const rsrcStat = await fsLstatExists(rsrcPathFull);\n if (rsrcStat) {\n const sizeRsrc = rsrcStat.size;\n\n /**\n * Read RSRC.\n *\n * @returns Read stream.\n */\n // eslint-disable-next-line @typescript-eslint/require-await\n const readRsrc = async () => createReadStream(rsrcPathFull);\n const entryRsrc = new this.Entry({\n archive: this,\n type: PathType.RESOURCE_FORK,\n pathRaw,\n size: sizeRsrc,\n mode,\n uid,\n gid,\n atime,\n mtime,\n readRsrc\n });\n const ret = await entryRsrc.trigger(itter);\n if (ret === false) {\n return null;\n }\n if (ret === null) {\n return false;\n }\n }\n }\n return true;\n };\n\n // Using auto-eject on normal exit option.\n const info = await mounterMac.attach(this.path, {\n nobrowse,\n readonly: true\n }, ejectOptions);\n\n // Eject device when done.\n try {\n for (const device of info.devices) {\n const {\n mountPoint\n } = device;\n if (!mountPoint) {\n continue;\n }\n const volumeName = basename(mountPoint);\n // eslint-disable-next-line no-await-in-loop\n await fsWalk(mountPoint, async (pathRel, stat) => {\n const pathFull = pathJoin(mountPoint, pathRel);\n const pathRaw = pathJoin(volumeName, pathRel);\n return each(pathFull, pathRaw, stat);\n }, walkOpts);\n }\n } finally {\n await info.eject(ejectOptions);\n }\n }\n}\n//# sourceMappingURL=hdi.mjs.map"],"mappings":"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","ignoreList":[]} |