{"version":3,"sources":["webpack:///./node_modules/@xmldom/xmldom/lib/index.js","webpack:///./node_modules/@xmldom/xmldom/lib/conventions.js","webpack:///./node_modules/@xmldom/xmldom/lib/dom-parser.js","webpack:///./node_modules/@xmldom/xmldom/lib/entities.js","webpack:///./node_modules/read-excel-file/modules/xml/xml.js","webpack:///./node_modules/fflate/esm/browser.js","webpack:///./node_modules/read-excel-file/modules/read/unpackXlsxFileBrowser.js","webpack:///./node_modules/read-excel-file/modules/xml/dom.js","webpack:///./node_modules/read-excel-file/modules/xml/xlsx.js","webpack:///./node_modules/read-excel-file/modules/read/parseProperties.js","webpack:///./node_modules/read-excel-file/modules/read/parseFilePaths.js","webpack:///./node_modules/read-excel-file/modules/read/parseStyles.js","webpack:///./node_modules/read-excel-file/modules/read/parseSharedStrings.js","webpack:///./node_modules/read-excel-file/modules/read/parseDate.js","webpack:///./node_modules/read-excel-file/modules/read/isDateTimestamp.js","webpack:///./node_modules/read-excel-file/modules/read/parseCellValue.js","webpack:///./node_modules/read-excel-file/modules/read/coordinates.js","webpack:///./node_modules/read-excel-file/modules/read/parseCell.js","webpack:///./node_modules/read-excel-file/modules/read/parseCells.js","webpack:///./node_modules/read-excel-file/modules/read/parseDimensions.js","webpack:///./node_modules/read-excel-file/modules/read/parseSheet.js","webpack:///./node_modules/read-excel-file/modules/read/dropEmptyRows.js","webpack:///./node_modules/read-excel-file/modules/read/dropEmptyColumns.js","webpack:///./node_modules/read-excel-file/modules/read/getData.js","webpack:///./node_modules/read-excel-file/modules/read/readXlsx.js","webpack:///./node_modules/read-excel-file/modules/types/InvalidError.js","webpack:///./node_modules/read-excel-file/modules/types/Number.js","webpack:///./node_modules/read-excel-file/modules/types/String.js","webpack:///./node_modules/read-excel-file/modules/types/Boolean.js","webpack:///./node_modules/read-excel-file/modules/types/Date.js","webpack:///./node_modules/read-excel-file/modules/read/schema/convertToJson.js","webpack:///./node_modules/read-excel-file/modules/read/schema/convertToJson.legacy.js","webpack:///./node_modules/read-excel-file/modules/read/schema/convertToJson.spreadsheet.js","webpack:///./node_modules/read-excel-file/modules/read/schema/convertMapToSchema.js","webpack:///./node_modules/read-excel-file/modules/read/readXlsxFileContents.js","webpack:///./node_modules/read-excel-file/modules/read/readXlsxFileWebWorker.js","webpack:///./node_modules/@xmldom/xmldom/lib/sax.js","webpack:///./node_modules/@xmldom/xmldom/lib/dom.js"],"names":["dom","exports","DOMImplementation","XMLSerializer","DOMParser","find","list","predicate","ac","undefined","Array","prototype","call","i","length","Object","hasOwnProperty","item","freeze","object","oc","assign","target","source","TypeError","key","MIME_TYPE","HTML","isHTML","value","XML_APPLICATION","XML_TEXT","XML_XHTML_APPLICATION","XML_SVG_IMAGE","NAMESPACE","uri","SVG","XML","XMLNS","conventions","entities","sax","ParseError","XMLReader","normalizeLineEndings","input","replace","options","this","locator","buildErrorHandler","errorImpl","domBuilder","DOMHandler","errorHandler","isCallback","Function","build","fn","msg","_locator","cdata","position","node","lineNumber","columnNumber","l","systemId","_toString","chars","start","substr","java","lang","String","appendElement","hander","currentElement","appendChild","doc","parseFromString","mimeType","defaultNSMap","xmlns","test","entityMap","HTML_ENTITIES","XML_ENTITIES","setDocumentLocator","xml","normalize","parse","error","startDocument","createDocument","documentURI","startElement","namespaceURI","localName","qName","attrs","el","createElementNS","len","getURI","getValue","attr","getQName","createAttributeNS","getLocator","nodeValue","setAttributeNode","endElement","current","tagName","parentNode","startPrefixMapping","prefix","endPrefixMapping","processingInstruction","data","ins","createProcessingInstruction","ignorableWhitespace","ch","characters","apply","arguments","charNode","createCDATASection","createTextNode","skippedEntity","name","endDocument","comment","comm","createComment","startCDATA","endCDATA","startDTD","publicId","impl","implementation","createDocumentType","dt","doctype","warning","console","warn","fatalError","__DOMHandler","amp","apos","gt","lt","quot","Aacute","aacute","Abreve","abreve","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","ee","efDot","Efr","efr","eg","Egrave","egrave","egs","egsdot","Element","elinters","ell","els","elsdot","Emacr","emacr","empty","emptyset","EmptySmallSquare","emptyv","EmptyVerySmallSquare","emsp","emsp13","emsp14","ENG","eng","ensp","Eogon","eogon","Eopf","eopf","epar","eparsl","eplus","epsi","Epsilon","epsilon","epsiv","eqcirc","eqcolon","eqsim","eqslantgtr","eqslantless","Equal","equals","EqualTilde","equest","Equilibrium","equiv","equivDD","eqvparsl","erarr","erDot","Escr","escr","esdot","Esim","esim","Eta","eta","ETH","eth","Euml","euml","euro","excl","exist","Exists","expectation","ExponentialE","exponentiale","fallingdotseq","Fcy","fcy","female","ffilig","fflig","ffllig","Ffr","ffr","filig","FilledSmallSquare","FilledVerySmallSquare","fjlig","flat","fllig","fltns","fnof","Fopf","fopf","ForAll","forall","fork","forkv","Fouriertrf","fpartint","frac12","frac13","frac14","frac15","frac16","frac18","frac23","frac25","frac34","frac35","frac38","frac45","frac56","frac58","frac78","frasl","frown","Fscr","fscr","gacute","Gamma","gamma","Gammad","gammad","gap","Gbreve","gbreve","Gcedil","Gcirc","gcirc","Gcy","gcy","Gdot","gdot","gE","ge","gEl","gel","geq","geqq","geqslant","ges","gescc","gesdot","gesdoto","gesdotol","gesl","gesles","Gfr","gfr","Gg","gg","ggg","gimel","GJcy","gjcy","gl","gla","glE","glj","gnap","gnapprox","gnE","gne","gneq","gneqq","gnsim","Gopf","gopf","grave","GreaterEqual","GreaterEqualLess","GreaterFullEqual","GreaterGreater","GreaterLess","GreaterSlantEqual","GreaterTilde","Gscr","gscr","gsim","gsime","gsiml","Gt","GT","gtcc","gtcir","gtdot","gtlPar","gtquest","gtrapprox","gtrarr","gtrdot","gtreqless","gtreqqless","gtrless","gtrsim","gvertneqq","gvnE","Hacek","hairsp","half","hamilt","HARDcy","hardcy","hArr","harr","harrcir","harrw","Hat","hbar","Hcirc","hcirc","hearts","heartsuit","hellip","hercon","Hfr","hfr","HilbertSpace","hksearow","hkswarow","hoarr","homtht","hookleftarrow","hookrightarrow","Hopf","hopf","horbar","HorizontalLine","Hscr","hscr","hslash","Hstrok","hstrok","HumpDownHump","HumpEqual","hybull","hyphen","Iacute","iacute","ic","Icirc","icirc","Icy","icy","Idot","IEcy","iecy","iexcl","iff","Ifr","ifr","Igrave","igrave","ii","iiiint","iiint","iinfin","iiota","IJlig","ijlig","Im","Imacr","imacr","image","ImaginaryI","imagline","imagpart","imath","imof","imped","Implies","in","incare","infin","infintie","inodot","Int","int","intcal","integers","Integral","intercal","Intersection","intlarhk","intprod","InvisibleComma","InvisibleTimes","IOcy","iocy","Iogon","iogon","Iopf","iopf","Iota","iota","iprod","iquest","Iscr","iscr","isin","isindot","isinE","isins","isinsv","isinv","it","Itilde","itilde","Iukcy","iukcy","Iuml","iuml","Jcirc","jcirc","Jcy","jcy","Jfr","jfr","jmath","Jopf","jopf","Jscr","jscr","Jsercy","jsercy","Jukcy","jukcy","Kappa","kappa","kappav","Kcedil","kcedil","Kcy","kcy","Kfr","kfr","kgreen","KHcy","khcy","KJcy","kjcy","Kopf","kopf","Kscr","kscr","lAarr","Lacute","lacute","laemptyv","lagran","Lambda","lambda","Lang","langd","langle","lap","Laplacetrf","laquo","Larr","lArr","larr","larrb","larrbfs","larrfs","larrhk","larrlp","larrpl","larrsim","larrtl","lat","lAtail","latail","late","lates","lBarr","lbarr","lbbrk","lbrace","lbrack","lbrke","lbrksld","lbrkslu","Lcaron","lcaron","Lcedil","lcedil","lceil","lcub","Lcy","lcy","ldca","ldquo","ldquor","ldrdhar","ldrushar","ldsh","lE","le","LeftAngleBracket","LeftArrow","Leftarrow","leftarrow","LeftArrowBar","LeftArrowRightArrow","leftarrowtail","LeftCeiling","LeftDoubleBracket","LeftDownTeeVector","LeftDownVector","LeftDownVectorBar","LeftFloor","leftharpoondown","leftharpoonup","leftleftarrows","LeftRightArrow","Leftrightarrow","leftrightarrow","leftrightarrows","leftrightharpoons","leftrightsquigarrow","LeftRightVector","LeftTee","LeftTeeArrow","LeftTeeVector","leftthreetimes","LeftTriangle","LeftTriangleBar","LeftTriangleEqual","LeftUpDownVector","LeftUpTeeVector","LeftUpVector","LeftUpVectorBar","LeftVector","LeftVectorBar","lEg","leg","leq","leqq","leqslant","les","lescc","lesdot","lesdoto","lesdotor","lesg","lesges","lessapprox","lessdot","lesseqgtr","lesseqqgtr","LessEqualGreater","LessFullEqual","LessGreater","lessgtr","LessLess","lesssim","LessSlantEqual","LessTilde","lfisht","lfloor","Lfr","lfr","lg","lgE","lHar","lhard","lharu","lharul","lhblk","LJcy","ljcy","Ll","ll","llarr","llcorner","Lleftarrow","llhard","lltri","Lmidot","lmidot","lmoust","lmoustache","lnap","lnapprox","lnE","lne","lneq","lneqq","lnsim","loang","loarr","lobrk","LongLeftArrow","Longleftarrow","longleftarrow","LongLeftRightArrow","Longleftrightarrow","longleftrightarrow","longmapsto","LongRightArrow","Longrightarrow","longrightarrow","looparrowleft","looparrowright","lopar","Lopf","lopf","loplus","lotimes","lowast","lowbar","LowerLeftArrow","LowerRightArrow","loz","lozenge","lozf","lpar","lparlt","lrarr","lrcorner","lrhar","lrhard","lrm","lrtri","lsaquo","Lscr","lscr","Lsh","lsh","lsim","lsime","lsimg","lsqb","lsquo","lsquor","Lstrok","lstrok","Lt","LT","ltcc","ltcir","ltdot","lthree","ltimes","ltlarr","ltquest","ltri","ltrie","ltrif","ltrPar","lurdshar","luruhar","lvertneqq","lvnE","macr","male","malt","maltese","Map","map","mapsto","mapstodown","mapstoleft","mapstoup","marker","mcomma","Mcy","mcy","mdash","mDDot","measuredangle","MediumSpace","Mellintrf","Mfr","mfr","mho","micro","mid","midast","midcir","middot","minus","minusb","minusd","minusdu","MinusPlus","mlcp","mldr","mnplus","models","Mopf","mopf","mp","Mscr","mscr","mstpos","Mu","mu","multimap","mumap","nabla","Nacute","nacute","nang","nap","napE","napid","napos","napprox","natur","natural","naturals","nbsp","nbump","nbumpe","ncap","Ncaron","ncaron","Ncedil","ncedil","ncong","ncongdot","ncup","Ncy","ncy","ndash","ne","nearhk","neArr","nearr","nearrow","nedot","NegativeMediumSpace","NegativeThickSpace","NegativeThinSpace","NegativeVeryThinSpace","nequiv","nesear","nesim","NestedGreaterGreater","NestedLessLess","NewLine","nexist","nexists","Nfr","nfr","ngE","nge","ngeq","ngeqq","ngeqslant","nges","nGg","ngsim","nGt","ngt","ngtr","nGtv","nhArr","nharr","nhpar","ni","nis","nisd","niv","NJcy","njcy","nlArr","nlarr","nldr","nlE","nle","nLeftarrow","nleftarrow","nLeftrightarrow","nleftrightarrow","nleq","nleqq","nleqslant","nles","nless","nLl","nlsim","nLt","nlt","nltri","nltrie","nLtv","nmid","NoBreak","NonBreakingSpace","Nopf","nopf","Not","not","NotCongruent","NotCupCap","NotDoubleVerticalBar","NotElement","NotEqual","NotEqualTilde","NotExists","NotGreater","NotGreaterEqual","NotGreaterFullEqual","NotGreaterGreater","NotGreaterLess","NotGreaterSlantEqual","NotGreaterTilde","NotHumpDownHump","NotHumpEqual","notin","notindot","notinE","notinva","notinvb","notinvc","NotLeftTriangle","NotLeftTriangleBar","NotLeftTriangleEqual","NotLess","NotLessEqual","NotLessGreater","NotLessLess","NotLessSlantEqual","NotLessTilde","NotNestedGreaterGreater","NotNestedLessLess","notni","notniva","notnivb","notnivc","NotPrecedes","NotPrecedesEqual","NotPrecedesSlantEqual","NotReverseElement","NotRightTriangle","NotRightTriangleBar","NotRightTriangleEqual","NotSquareSubset","NotSquareSubsetEqual","NotSquareSuperset","NotSquareSupersetEqual","NotSubset","NotSubsetEqual","NotSucceeds","NotSucceedsEqual","NotSucceedsSlantEqual","NotSucceedsTilde","NotSuperset","NotSupersetEqual","NotTilde","NotTildeEqual","NotTildeFullEqual","NotTildeTilde","NotVerticalBar","npar","nparallel","nparsl","npart","npolint","npr","nprcue","npre","nprec","npreceq","nrArr","nrarr","nrarrc","nrarrw","nRightarrow","nrightarrow","nrtri","nrtrie","nsc","nsccue","nsce","Nscr","nscr","nshortmid","nshortparallel","nsim","nsime","nsimeq","nsmid","nspar","nsqsube","nsqsupe","nsub","nsubE","nsube","nsubset","nsubseteq","nsubseteqq","nsucc","nsucceq","nsup","nsupE","nsupe","nsupset","nsupseteq","nsupseteqq","ntgl","Ntilde","ntilde","ntlg","ntriangleleft","ntrianglelefteq","ntriangleright","ntrianglerighteq","Nu","nu","num","numero","numsp","nvap","nVDash","nVdash","nvDash","nvdash","nvge","nvgt","nvHarr","nvinfin","nvlArr","nvle","nvlt","nvltrie","nvrArr","nvrtrie","nvsim","nwarhk","nwArr","nwarr","nwarrow","nwnear","Oacute","oacute","oast","ocir","Ocirc","ocirc","Ocy","ocy","odash","Odblac","odblac","odiv","odot","odsold","OElig","oelig","ofcir","Ofr","ofr","ogon","Ograve","ograve","ogt","ohbar","ohm","oint","olarr","olcir","olcross","oline","olt","Omacr","omacr","Omega","omega","Omicron","omicron","omid","ominus","Oopf","oopf","opar","OpenCurlyDoubleQuote","OpenCurlyQuote","operp","oplus","Or","or","orarr","ord","order","orderof","ordf","ordm","origof","oror","orslope","orv","oS","Oscr","oscr","Oslash","oslash","osol","Otilde","otilde","Otimes","otimes","otimesas","Ouml","ouml","ovbar","OverBar","OverBrace","OverBracket","OverParenthesis","par","para","parallel","parsim","parsl","part","PartialD","Pcy","pcy","percnt","period","permil","perp","pertenk","Pfr","pfr","Phi","phi","phiv","phmmat","phone","Pi","pi","pitchfork","piv","planck","planckh","plankv","plus","plusacir","plusb","pluscir","plusdo","plusdu","pluse","PlusMinus","plusmn","plussim","plustwo","pm","Poincareplane","pointint","Popf","popf","pound","Pr","pr","prap","prcue","prE","pre","prec","precapprox","preccurlyeq","Precedes","PrecedesEqual","PrecedesSlantEqual","PrecedesTilde","preceq","precnapprox","precneqq","precnsim","precsim","Prime","prime","primes","prnap","prnE","prnsim","prod","Product","profalar","profline","profsurf","prop","Proportion","Proportional","propto","prsim","prurel","Pscr","pscr","Psi","psi","puncsp","Qfr","qfr","qint","Qopf","qopf","qprime","Qscr","qscr","quaternions","quatint","quest","questeq","QUOT","rAarr","race","Racute","racute","radic","raemptyv","Rang","rang","rangd","range","rangle","raquo","Rarr","rArr","rarr","rarrap","rarrb","rarrbfs","rarrc","rarrfs","rarrhk","rarrlp","rarrpl","rarrsim","Rarrtl","rarrtl","rarrw","rAtail","ratail","ratio","rationals","RBarr","rBarr","rbarr","rbbrk","rbrace","rbrack","rbrke","rbrksld","rbrkslu","Rcaron","rcaron","Rcedil","rcedil","rceil","rcub","Rcy","rcy","rdca","rdldhar","rdquo","rdquor","rdsh","Re","real","realine","realpart","reals","rect","REG","reg","ReverseElement","ReverseEquilibrium","ReverseUpEquilibrium","rfisht","rfloor","Rfr","rfr","rHar","rhard","rharu","rharul","Rho","rho","rhov","RightAngleBracket","RightArrow","Rightarrow","rightarrow","RightArrowBar","RightArrowLeftArrow","rightarrowtail","RightCeiling","RightDoubleBracket","RightDownTeeVector","RightDownVector","RightDownVectorBar","RightFloor","rightharpoondown","rightharpoonup","rightleftarrows","rightleftharpoons","rightrightarrows","rightsquigarrow","RightTee","RightTeeArrow","RightTeeVector","rightthreetimes","RightTriangle","RightTriangleBar","RightTriangleEqual","RightUpDownVector","RightUpTeeVector","RightUpVector","RightUpVectorBar","RightVector","RightVectorBar","ring","risingdotseq","rlarr","rlhar","rlm","rmoust","rmoustache","rnmid","roang","roarr","robrk","ropar","Ropf","ropf","roplus","rotimes","RoundImplies","rpar","rpargt","rppolint","rrarr","Rrightarrow","rsaquo","Rscr","rscr","Rsh","rsh","rsqb","rsquo","rsquor","rthree","rtimes","rtri","rtrie","rtrif","rtriltri","RuleDelayed","ruluhar","rx","Sacute","sacute","sbquo","Sc","sc","scap","Scaron","scaron","sccue","scE","sce","Scedil","scedil","Scirc","scirc","scnap","scnE","scnsim","scpolint","scsim","Scy","scy","sdot","sdotb","sdote","searhk","seArr","searr","searrow","sect","semi","seswar","setminus","setmn","sext","Sfr","sfr","sfrown","sharp","SHCHcy","shchcy","SHcy","shcy","ShortDownArrow","ShortLeftArrow","shortmid","shortparallel","ShortRightArrow","ShortUpArrow","shy","Sigma","sigma","sigmaf","sigmav","sim","simdot","sime","simeq","simg","simgE","siml","simlE","simne","simplus","simrarr","slarr","SmallCircle","smallsetminus","smashp","smeparsl","smid","smile","smt","smte","smtes","SOFTcy","softcy","sol","solb","solbar","Sopf","sopf","spades","spadesuit","spar","sqcap","sqcaps","sqcup","sqcups","Sqrt","sqsub","sqsube","sqsubset","sqsubseteq","sqsup","sqsupe","sqsupset","sqsupseteq","squ","Square","square","SquareIntersection","SquareSubset","SquareSubsetEqual","SquareSuperset","SquareSupersetEqual","SquareUnion","squarf","squf","srarr","Sscr","sscr","ssetmn","ssmile","sstarf","Star","star","starf","straightepsilon","straightphi","strns","Sub","sub","subdot","subE","sube","subedot","submult","subnE","subne","subplus","subrarr","Subset","subset","subseteq","subseteqq","SubsetEqual","subsetneq","subsetneqq","subsim","subsub","subsup","succ","succapprox","succcurlyeq","Succeeds","SucceedsEqual","SucceedsSlantEqual","SucceedsTilde","succeq","succnapprox","succneqq","succnsim","succsim","SuchThat","Sum","sum","sung","Sup","sup","sup1","sup2","sup3","supdot","supdsub","supE","supe","supedot","Superset","SupersetEqual","suphsol","suphsub","suplarr","supmult","supnE","supne","supplus","Supset","supset","supseteq","supseteqq","supsetneq","supsetneqq","supsim","supsub","supsup","swarhk","swArr","swarr","swarrow","swnwar","szlig","Tab","Tau","tau","tbrk","Tcaron","tcaron","Tcedil","tcedil","Tcy","tcy","tdot","telrec","Tfr","tfr","there4","Therefore","therefore","Theta","theta","thetasym","thetav","thickapprox","thicksim","ThickSpace","thinsp","ThinSpace","thkap","thksim","THORN","thorn","Tilde","tilde","TildeEqual","TildeFullEqual","TildeTilde","times","timesb","timesbar","timesd","tint","toea","top","topbot","topcir","Topf","topf","topfork","tosa","tprime","TRADE","trade","triangle","triangledown","triangleleft","trianglelefteq","triangleq","triangleright","trianglerighteq","tridot","trie","triminus","TripleDot","triplus","trisb","tritime","trpezium","Tscr","tscr","TScy","tscy","TSHcy","tshcy","Tstrok","tstrok","twixt","twoheadleftarrow","twoheadrightarrow","Uacute","uacute","Uarr","uArr","uarr","Uarrocir","Ubrcy","ubrcy","Ubreve","ubreve","Ucirc","ucirc","Ucy","ucy","udarr","Udblac","udblac","udhar","ufisht","Ufr","ufr","Ugrave","ugrave","uHar","uharl","uharr","uhblk","ulcorn","ulcorner","ulcrop","ultri","Umacr","umacr","uml","UnderBar","UnderBrace","UnderBracket","UnderParenthesis","Union","UnionPlus","Uogon","uogon","Uopf","uopf","UpArrow","Uparrow","uparrow","UpArrowBar","UpArrowDownArrow","UpDownArrow","Updownarrow","updownarrow","UpEquilibrium","upharpoonleft","upharpoonright","uplus","UpperLeftArrow","UpperRightArrow","Upsi","upsi","upsih","Upsilon","upsilon","UpTee","UpTeeArrow","upuparrows","urcorn","urcorner","urcrop","Uring","uring","urtri","Uscr","uscr","utdot","Utilde","utilde","utri","utrif","uuarr","Uuml","uuml","uwangle","vangrt","varepsilon","varkappa","varnothing","varphi","varpi","varpropto","vArr","varr","varrho","varsigma","varsubsetneq","varsubsetneqq","varsupsetneq","varsupsetneqq","vartheta","vartriangleleft","vartriangleright","Vbar","vBar","vBarv","Vcy","vcy","VDash","Vdash","vDash","vdash","Vdashl","Vee","vee","veebar","veeeq","vellip","Verbar","verbar","Vert","vert","VerticalBar","VerticalLine","VerticalSeparator","VerticalTilde","VeryThinSpace","Vfr","vfr","vltri","vnsub","vnsup","Vopf","vopf","vprop","vrtri","Vscr","vscr","vsubnE","vsubne","vsupnE","vsupne","Vvdash","vzigzag","Wcirc","wcirc","wedbar","Wedge","wedge","wedgeq","weierp","Wfr","wfr","Wopf","wopf","wp","wr","wreath","Wscr","wscr","xcap","xcirc","xcup","xdtri","Xfr","xfr","xhArr","xharr","Xi","xi","xlArr","xlarr","xmap","xnis","xodot","Xopf","xopf","xoplus","xotime","xrArr","xrarr","Xscr","xscr","xsqcup","xuplus","xutri","xvee","xwedge","Yacute","yacute","YAcy","yacy","Ycirc","ycirc","Ycy","ycy","yen","Yfr","yfr","YIcy","yicy","Yopf","yopf","Yscr","yscr","YUcy","yucy","Yuml","yuml","Zacute","zacute","Zcaron","zcaron","Zcy","zcy","Zdot","zdot","zeetrf","ZeroWidthSpace","Zeta","zeta","Zfr","zfr","ZHcy","zhcy","zigrarr","Zopf","zopf","Zscr","zscr","zwj","zwnj","content","u8","Uint8Array","u16","Uint16Array","u32","Uint32Array","fleb","fdeb","clim","freb","eb","b","r","j","_a","fl","revfl","_b","fd","rev","x","hMap","cd","mb","s","co","rvb","sv","r_1","v","m","flt","fdt","flrm","fdrm","max","a","bits","d","p","o","bits16","shft","slc","e","n","BYTES_PER_ELEMENT","set","subarray","ec","err","ind","nt","Error","code","captureStackTrace","inflt","dat","buf","st","sl","f","noBuf","noSt","cbuf","bl","nbuf","Math","final","pos","bt","lm","dm","lbt","dbt","tbts","type","t","hLit","hcLen","tl","ldt","clt","clb","clbmsk","clm","c","lms","dms","lpos","sym","add","dsym","end","et","b2","b4","b8","inflateSync","out","td","TextDecoder","decode","stream","dutf8","fromCharCode","strFromU8","latin1","ext","slzh","zh","z","fnl","es","bs","z64e","su","off","queueMicrotask","setTimeout","unzipSync","opts","files","ze","fltr","filter","c_2","no","size","originalSize","compression","unpackXlsxFile","File","Blob","arrayBuffer","then","unpackXlsxArrayBuffer","archive","contents","Promise","resolve","getContents","unzippedFiles","_i","_Object$keys","keys","findChild","childNodes","childNode","nodeType","getTagName","findChildren","results","push","forEach","func","NAMESPACE_REG_EXP","element","getOuterXml","textContent","attributes","getCells","document","worksheet","documentElement","sheetData","cells","row","cell","getCellValue","getCellInlineStringValue","firstChild","getDimensions","dimensions","getAttribute","getBaseStyles","styleSheet","cellStyleXfs","getCellStyles","cellXfs","getNumberFormats","numFmts","getSharedStrings","sst","string","getWorkbookProperties","workbook","getRelationships","relationships","getSheets","sheets","parseProperties","book","properties","workbookProperties","epoch1904","addSheetInfo","sheet","id","relationId","parseFilePaths","filePaths","sharedStrings","styles","addFilePathInfo","relationship","filePath","fileType","getFilePath","path","slice","_typeof","Symbol","iterator","constructor","ownKeys","getOwnPropertySymbols","getOwnPropertyDescriptor","enumerable","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","_toPropertyKey","configurable","writable","arg","_toPrimitive","hint","prim","toPrimitive","res","Number","parseStyles","baseStyles","parseCellStyle","numberFormats","parseNumberFormatStyle","reduce","formats","format","getCellStyle","xf","hasAttribute","xfId","numFmt","template","style","numberFormatId","numberFormat","parseSharedStrings","parseExcelDate","excelSerialDate","daysBeforeUnixEpoch","hour","Date","round","_createForOfIteratorHelperLoose","allowArrayLike","next","bind","isArray","_unsupportedIterableToArray","done","minLen","_arrayLikeToArray","toString","from","arr","arr2","isDateTimestamp","styleId","concat","BUILT_IN_DATE_NUMBER_FORMAT_IDS","indexOf","dateFormat","smartDateParser","isDateTemplate","DATE_FORMAT_WEIRD_PREFIX","DATE_FORMAT_WEIRD_POSTFIX","toLowerCase","_step","tokens","split","_iterator","token","DATE_TEMPLATE_TOKENS","parseCellValue","_ref","getInlineStringValue","getInlineStringXml","getStyleId","values","parseString","sharedStringIndex","isNaN","decodeError","parsedDate","valueOf","isDateTimestampNumber","parseNumberDefault","parseNumber","errorCode","trim","stringifiedNumber","parsedNumber","LETTERS","calculateDimensions","comparator","allRows","sort","allCols","column","minRow","maxRow","minCol","maxCol","columnLettersToNumber","columnLetters","parseCellCoordinates","coords","parseInt","parseCell","valueElement","parseCells","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","u","parseDimensions","_ref2","parseSheet","dropEmptyRows","rowIndexMap","_ref$accessor","accessor","_","onlyTrimAtTheEnd","splice","dropEmptyColumns","getData","_dimensions","rightBottom","colsCount","rowsCount","rowIndex","columnIndex","rowMap","transformData","readXlsx","getXmlFileContent","sheetId","getSheetId","createSheetNotFoundError","_sheet","_sheet2","sheetsList","join","_defineProperties","props","descriptor","_createClass","Constructor","protoProps","staticProps","_classCallCheck","instance","_inherits","subClass","superClass","create","_setPrototypeOf","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","result","Super","_getPrototypeOf","NewTarget","Reflect","construct","_possibleConstructorReturn","self","_assertThisInitialized","ReferenceError","_wrapNativeSuper","Class","_cache","_isNativeFunction","has","get","Wrapper","_construct","Parent","args","sham","Proxy","Boolean","setPrototypeOf","__proto__","getPrototypeOf","InvalidError","_Error","_super","reason","_this","NumberType","stringifiedValue","isFinite","StringType","BooleanType","DateType","date","DEFAULT_OPTIONS","schemaPropertyValueForMissingColumn","schemaPropertyValueForUndefinedCellValue","schemaPropertyValueForNullCellValue","schemaPropertyShouldSkipRequiredValidationForMissingColumn","getEmptyObjectValue","getEmptyArrayValue","isColumnOriented","arrayValueSeparator","_options","validateSchema","schema","transpose","columns","errors","read","rows","isEmptyObject","createError","errorMessage","pendingRequiredChecks","_loop","cellValue","schemaEntry","isNestedSchema","propertyPath","isMissingColumn","array","parseArray","_value","parseValue","isEmpty","every","isEmptyValue","required","_i2","_pendingRequiredCheck","_pendingRequiredCheck2","skipRequiredValidation","isRequired","parseCustomValue","parseValueOfType","oneOf","validate","message","getBlock","endCharacter","startIndex","substring","_character","blocks","index","_getBlock","_getBlock2","_i3","_Object$keys2","entry","convertToJsonLegacyBehavior","includeNullValues","ignoreEmptyRows","defaultConversionOptions","_ref3","convertToJson","_excluded","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","sourceKeys","convertToJsonSpreadsheetBehavior","schemaPropertyValueForEmptyCell","restOptions","convertMapToSchema","readXlsxFileContents","entries","readXlsxFile","file","nameStartChar","nameChar","RegExp","tagNamePattern","S_TAG","S_ATTR","S_ATTR_SPACE","S_EQ","S_ATTR_NOQUOT_VALUE","S_ATTR_END","S_TAG_SPACE","S_TAG_CLOSE","defaultNSMapCopy","fixedFromCharCode","surrogate1","surrogate2","entityReplacer","k","charAt","appendText","xt","lineEnd","linePattern","exec","lineStart","parseStack","currentNSMap","closeMap","tagStart","match","text","config","pop","localNSMap","endMatch","endIgnoreCaseMach","parseInstruction","parseDCC","ElementAttributes","parseElementStartPart","closed","fixSelfClosed","locator2","copyLocator","offset","parseHtmlSpecialContent","addAttribute","qname","attributeNames","addValue","attrName","setTagName","nsp","nsPrefix","_copy","ns","elStartEnd","elEndStart","lastIndexOf","matchs","pubid","sysid","lastMatch","endDTD","lastIndex","getLocalName","notEmptyString","splitOnASCIIWhitespace","orderedSetReducer","toOrderedSet","arrayIncludes","src","dest","_extends","pt","NodeType","ELEMENT_NODE","ATTRIBUTE_NODE","TEXT_NODE","CDATA_SECTION_NODE","ENTITY_REFERENCE_NODE","ENTITY_NODE","PROCESSING_INSTRUCTION_NODE","COMMENT_NODE","DOCUMENT_NODE","DOCUMENT_TYPE_NODE","DOCUMENT_FRAGMENT_NODE","NOTATION_NODE","ExceptionCode","ExceptionMessage","HIERARCHY_REQUEST_ERR","INDEX_SIZE_ERR","DOMSTRING_SIZE_ERR","NOT_FOUND_ERR","WRONG_DOCUMENT_ERR","INVALID_CHARACTER_ERR","NO_DATA_ALLOWED_ERR","NO_MODIFICATION_ALLOWED_ERR","INUSE_ATTRIBUTE_ERR","NOT_SUPPORTED_ERR","INVALID_STATE_ERR","SYNTAX_ERR","INVALID_MODIFICATION_ERR","NAMESPACE_ERR","INVALID_ACCESS_ERR","DOMException","NodeList","LiveNodeList","refresh","_node","_refresh","_updateLiveList","inc","_inc","ownerDocument","ls","__set__","$$length","NamedNodeMap","_findNodeIndex","_addNamedNode","newAttr","oldAttr","ownerElement","_onRemoveAttribute","_onAddAttribute","_removeNamedNode","Node","_xmlEncoder","charCodeAt","_visitNode","callback","nextSibling","Document","_nsMap","remove","_onUpdateChild","newChild","cs","child","_removeChild","previous","previousSibling","lastChild","hasValidParentNodeType","hasInsertableNodeType","isElementNode","isTextNode","isDocTypeNode","isElementInsertionPossible","parentChildNodes","docTypeNode","isElementReplacementPossible","hasElementChildThatIsNotChild","assertPreInsertionValidity1to5","parent","assertPreInsertionValidityInDocument","nodeChildNodes","nodeChildElements","parentElementChild","assertPreReplacementValidityInDocument","hasDoctypeChildThatIsNotChild","_insertBefore","_inDocumentAssertion","cp","removeChild","newFirst","newLast","_appendSingleChild","Attr","CharacterData","Text","Comment","CDATASection","DocumentType","Notation","Entity","EntityReference","DocumentFragment","ProcessingInstruction","nodeSerializeToString","isHtml","nodeFilter","refNode","lookupPrefix","visibleNamespaces","namespace","serializeToString","needNamespaceDefine","addSerializedAttribute","qualifiedName","nodeName","prefixedNodeName","defaultNS","ai","nsi","internalSubset","importNode","deep","node2","cloneNode","attrs2","_ownerElement","getNamedItem","setNamedItem","setNamedItemNS","getNamedItemNS","removeNamedItem","removeNamedItemNS","hasFeature","feature","version","root","insertBefore","refChild","replaceChild","oldChild","hasChildNodes","appendData","isSupported","hasAttributes","lookupNamespaceURI","isDefaultNamespace","importedNode","getElementById","rtv","getElementsByClassName","classNames","classNamesSet","base","nodeClassNames","matches","nodeClassNamesSet","createElement","createDocumentFragment","createAttribute","specified","createEntityReference","pl","getAttributeNode","setAttribute","removeAttribute","removeAttributeNode","setAttributeNodeNS","removeAttributeNS","old","getAttributeNodeNS","hasAttributeNS","getAttributeNS","setAttributeNS","getElementsByTagName","getElementsByTagNameNS","substringData","count","insertData","replaceData","deleteData","splitText","newText","newNode","getTextContent"],"mappings":"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","file":"js/about~acuerdos_lineas~reporte_tarifa_embarcador.46d2446c.js","sourcesContent":["var dom = require('./dom')\nexports.DOMImplementation = dom.DOMImplementation\nexports.XMLSerializer = dom.XMLSerializer\nexports.DOMParser = require('./dom-parser').DOMParser\n","'use strict'\n\n/**\n * Ponyfill for `Array.prototype.find` which is only available in ES6 runtimes.\n *\n * Works with anything that has a `length` property and index access properties, including NodeList.\n *\n * @template {unknown} T\n * @param {Array | ({length:number, [number]: T})} list\n * @param {function (item: T, index: number, list:Array | ({length:number, [number]: T})):boolean} predicate\n * @param {Partial>?} 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 = Object} oc `Object` by default,\n * \t\t\t\tallows to inject custom object constructor for tests\n * @returns {Readonly}\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze\n */\nfunction freeze(object, oc) {\n\tif (oc === undefined) {\n\t\toc = Object\n\t}\n\treturn oc && typeof oc.freeze === 'function' ? oc.freeze(object) : object\n}\n\n/**\n * Since we can not rely on `Object.assign` we provide a simplified version\n * that is sufficient for our needs.\n *\n * @param {Object} target\n * @param {Object | null | undefined} source\n *\n * @returns {Object} target\n * @throws TypeError if target is not an object\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\n * @see https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-object.assign\n */\nfunction assign(target, source) {\n\tif (target === null || typeof target !== 'object') {\n\t\tthrow new TypeError('target is not an object')\n\t}\n\tfor (var key in source) {\n\t\tif (Object.prototype.hasOwnProperty.call(source, key)) {\n\t\t\ttarget[key] = source[key]\n\t\t}\n\t}\n\treturn target\n}\n\n/**\n * All mime types that are allowed as input to `DOMParser.parseFromString`\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString#Argument02 MDN\n * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#domparsersupportedtype WHATWG HTML Spec\n * @see DOMParser.prototype.parseFromString\n */\nvar MIME_TYPE = freeze({\n\t/**\n\t * `text/html`, the only mime type that triggers treating an XML document as HTML.\n\t *\n\t * @see DOMParser.SupportedType.isHTML\n\t * @see https://www.iana.org/assignments/media-types/text/html IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/HTML Wikipedia\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString MDN\n\t * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-domparser-parsefromstring WHATWG HTML Spec\n\t */\n\tHTML: 'text/html',\n\n\t/**\n\t * Helper method to check a mime type if it indicates an HTML document\n\t *\n\t * @param {string} [value]\n\t * @returns {boolean}\n\t *\n\t * @see https://www.iana.org/assignments/media-types/text/html IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/HTML Wikipedia\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString MDN\n\t * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-domparser-parsefromstring \t */\n\tisHTML: function (value) {\n\t\treturn value === MIME_TYPE.HTML\n\t},\n\n\t/**\n\t * `application/xml`, the standard mime type for XML documents.\n\t *\n\t * @see https://www.iana.org/assignments/media-types/application/xml IANA MimeType registration\n\t * @see https://tools.ietf.org/html/rfc7303#section-9.1 RFC 7303\n\t * @see https://en.wikipedia.org/wiki/XML_and_MIME Wikipedia\n\t */\n\tXML_APPLICATION: 'application/xml',\n\n\t/**\n\t * `text/html`, an alias for `application/xml`.\n\t *\n\t * @see https://tools.ietf.org/html/rfc7303#section-9.2 RFC 7303\n\t * @see https://www.iana.org/assignments/media-types/text/xml IANA MimeType registration\n\t * @see https://en.wikipedia.org/wiki/XML_and_MIME Wikipedia\n\t */\n\tXML_TEXT: 'text/xml',\n\n\t/**\n\t * `application/xhtml+xml`, indicates an XML document that has the default HTML namespace,\n\t * but is parsed as an XML document.\n\t *\n\t * @see https://www.iana.org/assignments/media-types/application/xhtml+xml IANA MimeType registration\n\t * @see https://dom.spec.whatwg.org/#dom-domimplementation-createdocument WHATWG DOM Spec\n\t * @see https://en.wikipedia.org/wiki/XHTML Wikipedia\n\t */\n\tXML_XHTML_APPLICATION: 'application/xhtml+xml',\n\n\t/**\n\t * `image/svg+xml`,\n\t *\n\t * @see https://www.iana.org/assignments/media-types/image/svg+xml IANA MimeType registration\n\t * @see https://www.w3.org/TR/SVG11/ W3C SVG 1.1\n\t * @see https://en.wikipedia.org/wiki/Scalable_Vector_Graphics Wikipedia\n\t */\n\tXML_SVG_IMAGE: 'image/svg+xml',\n})\n\n/**\n * Namespaces that are used in this code base.\n *\n * @see http://www.w3.org/TR/REC-xml-names\n */\nvar NAMESPACE = freeze({\n\t/**\n\t * The XHTML namespace.\n\t *\n\t * @see http://www.w3.org/1999/xhtml\n\t */\n\tHTML: 'http://www.w3.org/1999/xhtml',\n\n\t/**\n\t * Checks if `uri` equals `NAMESPACE.HTML`.\n\t *\n\t * @param {string} [uri]\n\t *\n\t * @see NAMESPACE.HTML\n\t */\n\tisHTML: function (uri) {\n\t\treturn uri === NAMESPACE.HTML\n\t},\n\n\t/**\n\t * The SVG namespace.\n\t *\n\t * @see http://www.w3.org/2000/svg\n\t */\n\tSVG: 'http://www.w3.org/2000/svg',\n\n\t/**\n\t * The `xml:` namespace.\n\t *\n\t * @see http://www.w3.org/XML/1998/namespace\n\t */\n\tXML: 'http://www.w3.org/XML/1998/namespace',\n\n\t/**\n\t * The `xmlns:` namespace\n\t *\n\t * @see https://www.w3.org/2000/xmlns/\n\t */\n\tXMLNS: 'http://www.w3.org/2000/xmlns/',\n})\n\nexports.assign = assign;\nexports.find = find;\nexports.freeze = freeze;\nexports.MIME_TYPE = MIME_TYPE;\nexports.NAMESPACE = NAMESPACE;\n","var conventions = require(\"./conventions\");\nvar dom = require('./dom')\nvar entities = require('./entities');\nvar sax = require('./sax');\n\nvar DOMImplementation = dom.DOMImplementation;\n\nvar NAMESPACE = conventions.NAMESPACE;\n\nvar ParseError = sax.ParseError;\nvar XMLReader = sax.XMLReader;\n\n/**\n * Normalizes line ending according to https://www.w3.org/TR/xml11/#sec-line-ends:\n *\n * > XML parsed entities are often stored in computer files which,\n * > for editing convenience, are organized into lines.\n * > These lines are typically separated by some combination\n * > of the characters CARRIAGE RETURN (#xD) and LINE FEED (#xA).\n * >\n * > To simplify the tasks of applications, the XML processor must behave\n * > as if it normalized all line breaks in external parsed entities (including the document entity)\n * > on input, before parsing, by translating all of the following to a single #xA character:\n * >\n * > 1. the two-character sequence #xD #xA\n * > 2. the two-character sequence #xD #x85\n * > 3. the single character #x85\n * > 4. the single character #x2028\n * > 5. any #xD character that is not immediately followed by #xA or #x85.\n *\n * @param {string} input\n * @returns {string}\n */\nfunction normalizeLineEndings(input) {\n\treturn input\n\t\t.replace(/\\r[\\n\\u0085]/g, '\\n')\n\t\t.replace(/[\\r\\u0085\\u2028]/g, '\\n')\n}\n\n/**\n * @typedef Locator\n * @property {number} [columnNumber]\n * @property {number} [lineNumber]\n */\n\n/**\n * @typedef DOMParserOptions\n * @property {DOMHandler} [domBuilder]\n * @property {Function} [errorHandler]\n * @property {(string) => string} [normalizeLineEndings] used to replace line endings before parsing\n * \t\t\t\t\t\tdefaults to `normalizeLineEndings`\n * @property {Locator} [locator]\n * @property {Record} [xmlns]\n *\n * @see normalizeLineEndings\n */\n\n/**\n * The DOMParser interface provides the ability to parse XML or HTML source code\n * from a string into a DOM `Document`.\n *\n * _xmldom is different from the spec in that it allows an `options` parameter,\n * to override the default behavior._\n *\n * @param {DOMParserOptions} [options]\n * @constructor\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/DOMParser\n * @see https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#dom-parsing-and-serialization\n */\nfunction DOMParser(options){\n\tthis.options = options ||{locator:{}};\n}\n\nDOMParser.prototype.parseFromString = function(source,mimeType){\n\tvar options = this.options;\n\tvar sax = new XMLReader();\n\tvar domBuilder = options.domBuilder || new DOMHandler();//contentHandler and LexicalHandler\n\tvar errorHandler = options.errorHandler;\n\tvar locator = options.locator;\n\tvar defaultNSMap = options.xmlns||{};\n\tvar isHTML = /\\/x?html?$/.test(mimeType);//mimeType.toLowerCase().indexOf('html') > -1;\n \tvar entityMap = isHTML ? entities.HTML_ENTITIES : entities.XML_ENTITIES;\n\tif(locator){\n\t\tdomBuilder.setDocumentLocator(locator)\n\t}\n\n\tsax.errorHandler = buildErrorHandler(errorHandler,domBuilder,locator);\n\tsax.domBuilder = options.domBuilder || domBuilder;\n\tif(isHTML){\n\t\tdefaultNSMap[''] = NAMESPACE.HTML;\n\t}\n\tdefaultNSMap.xml = defaultNSMap.xml || NAMESPACE.XML;\n\tvar normalize = options.normalizeLineEndings || normalizeLineEndings;\n\tif (source && typeof source === 'string') {\n\t\tsax.parse(\n\t\t\tnormalize(source),\n\t\t\tdefaultNSMap,\n\t\t\tentityMap\n\t\t)\n\t} else {\n\t\tsax.errorHandler.error('invalid doc source')\n\t}\n\treturn domBuilder.doc;\n}\nfunction buildErrorHandler(errorImpl,domBuilder,locator){\n\tif(!errorImpl){\n\t\tif(domBuilder instanceof DOMHandler){\n\t\t\treturn domBuilder;\n\t\t}\n\t\terrorImpl = domBuilder ;\n\t}\n\tvar errorHandler = {}\n\tvar isCallback = errorImpl instanceof Function;\n\tlocator = locator||{}\n\tfunction build(key){\n\t\tvar fn = errorImpl[key];\n\t\tif(!fn && isCallback){\n\t\t\tfn = errorImpl.length == 2?function(msg){errorImpl(key,msg)}:errorImpl;\n\t\t}\n\t\terrorHandler[key] = fn && function(msg){\n\t\t\tfn('[xmldom '+key+']\\t'+msg+_locator(locator));\n\t\t}||function(){};\n\t}\n\tbuild('warning');\n\tbuild('error');\n\tbuild('fatalError');\n\treturn errorHandler;\n}\n\n//console.log('#\\n\\n\\n\\n\\n\\n\\n####')\n/**\n * +ContentHandler+ErrorHandler\n * +LexicalHandler+EntityResolver2\n * -DeclHandler-DTDHandler\n *\n * DefaultHandler:EntityResolver, DTDHandler, ContentHandler, ErrorHandler\n * DefaultHandler2:DefaultHandler,LexicalHandler, DeclHandler, EntityResolver2\n * @link http://www.saxproject.org/apidoc/org/xml/sax/helpers/DefaultHandler.html\n */\nfunction DOMHandler() {\n this.cdata = false;\n}\nfunction position(locator,node){\n\tnode.lineNumber = locator.lineNumber;\n\tnode.columnNumber = locator.columnNumber;\n}\n/**\n * @see org.xml.sax.ContentHandler#startDocument\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ContentHandler.html\n */\nDOMHandler.prototype = {\n\tstartDocument : function() {\n \tthis.doc = new DOMImplementation().createDocument(null, null, null);\n \tif (this.locator) {\n \tthis.doc.documentURI = this.locator.systemId;\n \t}\n\t},\n\tstartElement:function(namespaceURI, localName, qName, attrs) {\n\t\tvar doc = this.doc;\n\t var el = doc.createElementNS(namespaceURI, qName||localName);\n\t var len = attrs.length;\n\t appendElement(this, el);\n\t this.currentElement = el;\n\n\t\tthis.locator && position(this.locator,el)\n\t for (var i = 0 ; i < len; i++) {\n\t var namespaceURI = attrs.getURI(i);\n\t var value = attrs.getValue(i);\n\t var qName = attrs.getQName(i);\n\t\t\tvar attr = doc.createAttributeNS(namespaceURI, qName);\n\t\t\tthis.locator &&position(attrs.getLocator(i),attr);\n\t\t\tattr.value = attr.nodeValue = value;\n\t\t\tel.setAttributeNode(attr)\n\t }\n\t},\n\tendElement:function(namespaceURI, localName, qName) {\n\t\tvar current = this.currentElement\n\t\tvar tagName = current.tagName;\n\t\tthis.currentElement = current.parentNode;\n\t},\n\tstartPrefixMapping:function(prefix, uri) {\n\t},\n\tendPrefixMapping:function(prefix) {\n\t},\n\tprocessingInstruction:function(target, data) {\n\t var ins = this.doc.createProcessingInstruction(target, data);\n\t this.locator && position(this.locator,ins)\n\t appendElement(this, ins);\n\t},\n\tignorableWhitespace:function(ch, start, length) {\n\t},\n\tcharacters:function(chars, start, length) {\n\t\tchars = _toString.apply(this,arguments)\n\t\t//console.log(chars)\n\t\tif(chars){\n\t\t\tif (this.cdata) {\n\t\t\t\tvar charNode = this.doc.createCDATASection(chars);\n\t\t\t} else {\n\t\t\t\tvar charNode = this.doc.createTextNode(chars);\n\t\t\t}\n\t\t\tif(this.currentElement){\n\t\t\t\tthis.currentElement.appendChild(charNode);\n\t\t\t}else if(/^\\s*$/.test(chars)){\n\t\t\t\tthis.doc.appendChild(charNode);\n\t\t\t\t//process xml\n\t\t\t}\n\t\t\tthis.locator && position(this.locator,charNode)\n\t\t}\n\t},\n\tskippedEntity:function(name) {\n\t},\n\tendDocument:function() {\n\t\tthis.doc.normalize();\n\t},\n\tsetDocumentLocator:function (locator) {\n\t if(this.locator = locator){// && !('lineNumber' in locator)){\n\t \tlocator.lineNumber = 0;\n\t }\n\t},\n\t//LexicalHandler\n\tcomment:function(chars, start, length) {\n\t\tchars = _toString.apply(this,arguments)\n\t var comm = this.doc.createComment(chars);\n\t this.locator && position(this.locator,comm)\n\t appendElement(this, comm);\n\t},\n\n\tstartCDATA:function() {\n\t //used in characters() methods\n\t this.cdata = true;\n\t},\n\tendCDATA:function() {\n\t this.cdata = false;\n\t},\n\n\tstartDTD:function(name, publicId, systemId) {\n\t\tvar impl = this.doc.implementation;\n\t if (impl && impl.createDocumentType) {\n\t var dt = impl.createDocumentType(name, publicId, systemId);\n\t this.locator && position(this.locator,dt)\n\t appendElement(this, dt);\n\t\t\t\t\tthis.doc.doctype = dt;\n\t }\n\t},\n\t/**\n\t * @see org.xml.sax.ErrorHandler\n\t * @link http://www.saxproject.org/apidoc/org/xml/sax/ErrorHandler.html\n\t */\n\twarning:function(error) {\n\t\tconsole.warn('[xmldom warning]\\t'+error,_locator(this.locator));\n\t},\n\terror:function(error) {\n\t\tconsole.error('[xmldom error]\\t'+error,_locator(this.locator));\n\t},\n\tfatalError:function(error) {\n\t\tthrow new ParseError(error, this.locator);\n\t}\n}\nfunction _locator(l){\n\tif(l){\n\t\treturn '\\n@'+(l.systemId ||'')+'#[line:'+l.lineNumber+',col:'+l.columnNumber+']'\n\t}\n}\nfunction _toString(chars,start,length){\n\tif(typeof chars == 'string'){\n\t\treturn chars.substr(start,length)\n\t}else{//java sax connect width xmldom on rhino(what about: \"? && !(chars instanceof String)\")\n\t\tif(chars.length >= start+length || start){\n\t\t\treturn new java.lang.String(chars,start,length)+'';\n\t\t}\n\t\treturn chars;\n\t}\n}\n\n/*\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/LexicalHandler.html\n * used method of org.xml.sax.ext.LexicalHandler:\n * #comment(chars, start, length)\n * #startCDATA()\n * #endCDATA()\n * #startDTD(name, publicId, systemId)\n *\n *\n * IGNORED method of org.xml.sax.ext.LexicalHandler:\n * #endDTD()\n * #startEntity(name)\n * #endEntity(name)\n *\n *\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/DeclHandler.html\n * IGNORED method of org.xml.sax.ext.DeclHandler\n * \t#attributeDecl(eName, aName, type, mode, value)\n * #elementDecl(name, model)\n * #externalEntityDecl(name, publicId, systemId)\n * #internalEntityDecl(name, value)\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/EntityResolver2.html\n * IGNORED method of org.xml.sax.EntityResolver2\n * #resolveEntity(String name,String publicId,String baseURI,String systemId)\n * #resolveEntity(publicId, systemId)\n * #getExternalSubset(name, baseURI)\n * @link http://www.saxproject.org/apidoc/org/xml/sax/DTDHandler.html\n * IGNORED method of org.xml.sax.DTDHandler\n * #notationDecl(name, publicId, systemId) {};\n * #unparsedEntityDecl(name, publicId, systemId, notationName) {};\n */\n\"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl\".replace(/\\w+/g,function(key){\n\tDOMHandler.prototype[key] = function(){return null}\n})\n\n/* Private static helpers treated below as private instance methods, so don't need to add these to the public API; we might use a Relator to also get rid of non-standard public properties */\nfunction appendElement (hander,node) {\n if (!hander.currentElement) {\n hander.doc.appendChild(node);\n } else {\n hander.currentElement.appendChild(node);\n }\n}//appendChild and setAttributeNS are preformance key\n\nexports.__DOMHandler = DOMHandler;\nexports.normalizeLineEndings = normalizeLineEndings;\nexports.DOMParser = DOMParser;\n","'use strict';\n\nvar freeze = require('./conventions').freeze;\n\n/**\n * The entities that are predefined in every XML document.\n *\n * @see https://www.w3.org/TR/2006/REC-xml11-20060816/#sec-predefined-ent W3C XML 1.1\n * @see https://www.w3.org/TR/2008/REC-xml-20081126/#sec-predefined-ent W3C XML 1.0\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Predefined_entities_in_XML Wikipedia\n */\nexports.XML_ENTITIES = freeze({\n\tamp: '&',\n\tapos: \"'\",\n\tgt: '>',\n\tlt: '<',\n\tquot: '\"',\n});\n\n/**\n * A map of all entities that are detected in an HTML document.\n * They contain all entries from `XML_ENTITIES`.\n *\n * @see XML_ENTITIES\n * @see DOMParser.parseFromString\n * @see DOMImplementation.prototype.createHTMLDocument\n * @see https://html.spec.whatwg.org/#named-character-references WHATWG HTML(5) Spec\n * @see https://html.spec.whatwg.org/entities.json JSON\n * @see https://www.w3.org/TR/xml-entity-names/ W3C XML Entity Names\n * @see https://www.w3.org/TR/html4/sgml/entities.html W3C HTML4/SGML\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Character_entity_references_in_HTML Wikipedia (HTML)\n * @see https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Entities_representing_special_characters_in_XHTML Wikpedia (XHTML)\n */\nexports.HTML_ENTITIES = freeze({\n\tAacute: '\\u00C1',\n\taacute: '\\u00E1',\n\tAbreve: '\\u0102',\n\tabreve: '\\u0103',\n\tac: '\\u223E',\n\tacd: '\\u223F',\n\tacE: '\\u223E\\u0333',\n\tAcirc: '\\u00C2',\n\tacirc: '\\u00E2',\n\tacute: '\\u00B4',\n\tAcy: '\\u0410',\n\tacy: '\\u0430',\n\tAElig: '\\u00C6',\n\taelig: '\\u00E6',\n\taf: '\\u2061',\n\tAfr: '\\uD835\\uDD04',\n\tafr: '\\uD835\\uDD1E',\n\tAgrave: '\\u00C0',\n\tagrave: '\\u00E0',\n\talefsym: '\\u2135',\n\taleph: '\\u2135',\n\tAlpha: '\\u0391',\n\talpha: '\\u03B1',\n\tAmacr: '\\u0100',\n\tamacr: '\\u0101',\n\tamalg: '\\u2A3F',\n\tAMP: '\\u0026',\n\tamp: '\\u0026',\n\tAnd: '\\u2A53',\n\tand: '\\u2227',\n\tandand: '\\u2A55',\n\tandd: '\\u2A5C',\n\tandslope: '\\u2A58',\n\tandv: '\\u2A5A',\n\tang: '\\u2220',\n\tange: '\\u29A4',\n\tangle: '\\u2220',\n\tangmsd: '\\u2221',\n\tangmsdaa: '\\u29A8',\n\tangmsdab: '\\u29A9',\n\tangmsdac: '\\u29AA',\n\tangmsdad: '\\u29AB',\n\tangmsdae: '\\u29AC',\n\tangmsdaf: '\\u29AD',\n\tangmsdag: '\\u29AE',\n\tangmsdah: '\\u29AF',\n\tangrt: '\\u221F',\n\tangrtvb: '\\u22BE',\n\tangrtvbd: '\\u299D',\n\tangsph: '\\u2222',\n\tangst: '\\u00C5',\n\tangzarr: '\\u237C',\n\tAogon: '\\u0104',\n\taogon: '\\u0105',\n\tAopf: '\\uD835\\uDD38',\n\taopf: '\\uD835\\uDD52',\n\tap: '\\u2248',\n\tapacir: '\\u2A6F',\n\tapE: '\\u2A70',\n\tape: '\\u224A',\n\tapid: '\\u224B',\n\tapos: '\\u0027',\n\tApplyFunction: '\\u2061',\n\tapprox: '\\u2248',\n\tapproxeq: '\\u224A',\n\tAring: '\\u00C5',\n\taring: '\\u00E5',\n\tAscr: '\\uD835\\uDC9C',\n\tascr: '\\uD835\\uDCB6',\n\tAssign: '\\u2254',\n\tast: '\\u002A',\n\tasymp: '\\u2248',\n\tasympeq: '\\u224D',\n\tAtilde: '\\u00C3',\n\tatilde: '\\u00E3',\n\tAuml: '\\u00C4',\n\tauml: '\\u00E4',\n\tawconint: '\\u2233',\n\tawint: '\\u2A11',\n\tbackcong: '\\u224C',\n\tbackepsilon: '\\u03F6',\n\tbackprime: '\\u2035',\n\tbacksim: '\\u223D',\n\tbacksimeq: '\\u22CD',\n\tBackslash: '\\u2216',\n\tBarv: '\\u2AE7',\n\tbarvee: '\\u22BD',\n\tBarwed: '\\u2306',\n\tbarwed: '\\u2305',\n\tbarwedge: '\\u2305',\n\tbbrk: '\\u23B5',\n\tbbrktbrk: '\\u23B6',\n\tbcong: '\\u224C',\n\tBcy: '\\u0411',\n\tbcy: '\\u0431',\n\tbdquo: '\\u201E',\n\tbecaus: '\\u2235',\n\tBecause: '\\u2235',\n\tbecause: '\\u2235',\n\tbemptyv: '\\u29B0',\n\tbepsi: '\\u03F6',\n\tbernou: '\\u212C',\n\tBernoullis: '\\u212C',\n\tBeta: '\\u0392',\n\tbeta: '\\u03B2',\n\tbeth: '\\u2136',\n\tbetween: '\\u226C',\n\tBfr: '\\uD835\\uDD05',\n\tbfr: '\\uD835\\uDD1F',\n\tbigcap: '\\u22C2',\n\tbigcirc: '\\u25EF',\n\tbigcup: '\\u22C3',\n\tbigodot: '\\u2A00',\n\tbigoplus: '\\u2A01',\n\tbigotimes: '\\u2A02',\n\tbigsqcup: '\\u2A06',\n\tbigstar: '\\u2605',\n\tbigtriangledown: '\\u25BD',\n\tbigtriangleup: '\\u25B3',\n\tbiguplus: '\\u2A04',\n\tbigvee: '\\u22C1',\n\tbigwedge: '\\u22C0',\n\tbkarow: '\\u290D',\n\tblacklozenge: '\\u29EB',\n\tblacksquare: '\\u25AA',\n\tblacktriangle: '\\u25B4',\n\tblacktriangledown: '\\u25BE',\n\tblacktriangleleft: '\\u25C2',\n\tblacktriangleright: '\\u25B8',\n\tblank: '\\u2423',\n\tblk12: '\\u2592',\n\tblk14: '\\u2591',\n\tblk34: '\\u2593',\n\tblock: '\\u2588',\n\tbne: '\\u003D\\u20E5',\n\tbnequiv: '\\u2261\\u20E5',\n\tbNot: '\\u2AED',\n\tbnot: '\\u2310',\n\tBopf: '\\uD835\\uDD39',\n\tbopf: '\\uD835\\uDD53',\n\tbot: '\\u22A5',\n\tbottom: '\\u22A5',\n\tbowtie: '\\u22C8',\n\tboxbox: '\\u29C9',\n\tboxDL: '\\u2557',\n\tboxDl: '\\u2556',\n\tboxdL: '\\u2555',\n\tboxdl: '\\u2510',\n\tboxDR: '\\u2554',\n\tboxDr: '\\u2553',\n\tboxdR: '\\u2552',\n\tboxdr: '\\u250C',\n\tboxH: '\\u2550',\n\tboxh: '\\u2500',\n\tboxHD: '\\u2566',\n\tboxHd: '\\u2564',\n\tboxhD: '\\u2565',\n\tboxhd: '\\u252C',\n\tboxHU: '\\u2569',\n\tboxHu: '\\u2567',\n\tboxhU: '\\u2568',\n\tboxhu: '\\u2534',\n\tboxminus: '\\u229F',\n\tboxplus: '\\u229E',\n\tboxtimes: '\\u22A0',\n\tboxUL: '\\u255D',\n\tboxUl: '\\u255C',\n\tboxuL: '\\u255B',\n\tboxul: '\\u2518',\n\tboxUR: '\\u255A',\n\tboxUr: '\\u2559',\n\tboxuR: '\\u2558',\n\tboxur: '\\u2514',\n\tboxV: '\\u2551',\n\tboxv: '\\u2502',\n\tboxVH: '\\u256C',\n\tboxVh: '\\u256B',\n\tboxvH: '\\u256A',\n\tboxvh: '\\u253C',\n\tboxVL: '\\u2563',\n\tboxVl: '\\u2562',\n\tboxvL: '\\u2561',\n\tboxvl: '\\u2524',\n\tboxVR: '\\u2560',\n\tboxVr: '\\u255F',\n\tboxvR: '\\u255E',\n\tboxvr: '\\u251C',\n\tbprime: '\\u2035',\n\tBreve: '\\u02D8',\n\tbreve: '\\u02D8',\n\tbrvbar: '\\u00A6',\n\tBscr: '\\u212C',\n\tbscr: '\\uD835\\uDCB7',\n\tbsemi: '\\u204F',\n\tbsim: '\\u223D',\n\tbsime: '\\u22CD',\n\tbsol: '\\u005C',\n\tbsolb: '\\u29C5',\n\tbsolhsub: '\\u27C8',\n\tbull: '\\u2022',\n\tbullet: '\\u2022',\n\tbump: '\\u224E',\n\tbumpE: '\\u2AAE',\n\tbumpe: '\\u224F',\n\tBumpeq: '\\u224E',\n\tbumpeq: '\\u224F',\n\tCacute: '\\u0106',\n\tcacute: '\\u0107',\n\tCap: '\\u22D2',\n\tcap: '\\u2229',\n\tcapand: '\\u2A44',\n\tcapbrcup: '\\u2A49',\n\tcapcap: '\\u2A4B',\n\tcapcup: '\\u2A47',\n\tcapdot: '\\u2A40',\n\tCapitalDifferentialD: '\\u2145',\n\tcaps: '\\u2229\\uFE00',\n\tcaret: '\\u2041',\n\tcaron: '\\u02C7',\n\tCayleys: '\\u212D',\n\tccaps: '\\u2A4D',\n\tCcaron: '\\u010C',\n\tccaron: '\\u010D',\n\tCcedil: '\\u00C7',\n\tccedil: '\\u00E7',\n\tCcirc: '\\u0108',\n\tccirc: '\\u0109',\n\tCconint: '\\u2230',\n\tccups: '\\u2A4C',\n\tccupssm: '\\u2A50',\n\tCdot: '\\u010A',\n\tcdot: '\\u010B',\n\tcedil: '\\u00B8',\n\tCedilla: '\\u00B8',\n\tcemptyv: '\\u29B2',\n\tcent: '\\u00A2',\n\tCenterDot: '\\u00B7',\n\tcenterdot: '\\u00B7',\n\tCfr: '\\u212D',\n\tcfr: '\\uD835\\uDD20',\n\tCHcy: '\\u0427',\n\tchcy: '\\u0447',\n\tcheck: '\\u2713',\n\tcheckmark: '\\u2713',\n\tChi: '\\u03A7',\n\tchi: '\\u03C7',\n\tcir: '\\u25CB',\n\tcirc: '\\u02C6',\n\tcirceq: '\\u2257',\n\tcirclearrowleft: '\\u21BA',\n\tcirclearrowright: '\\u21BB',\n\tcircledast: '\\u229B',\n\tcircledcirc: '\\u229A',\n\tcircleddash: '\\u229D',\n\tCircleDot: '\\u2299',\n\tcircledR: '\\u00AE',\n\tcircledS: '\\u24C8',\n\tCircleMinus: '\\u2296',\n\tCirclePlus: '\\u2295',\n\tCircleTimes: '\\u2297',\n\tcirE: '\\u29C3',\n\tcire: '\\u2257',\n\tcirfnint: '\\u2A10',\n\tcirmid: '\\u2AEF',\n\tcirscir: '\\u29C2',\n\tClockwiseContourIntegral: '\\u2232',\n\tCloseCurlyDoubleQuote: '\\u201D',\n\tCloseCurlyQuote: '\\u2019',\n\tclubs: '\\u2663',\n\tclubsuit: '\\u2663',\n\tColon: '\\u2237',\n\tcolon: '\\u003A',\n\tColone: '\\u2A74',\n\tcolone: '\\u2254',\n\tcoloneq: '\\u2254',\n\tcomma: '\\u002C',\n\tcommat: '\\u0040',\n\tcomp: '\\u2201',\n\tcompfn: '\\u2218',\n\tcomplement: '\\u2201',\n\tcomplexes: '\\u2102',\n\tcong: '\\u2245',\n\tcongdot: '\\u2A6D',\n\tCongruent: '\\u2261',\n\tConint: '\\u222F',\n\tconint: '\\u222E',\n\tContourIntegral: '\\u222E',\n\tCopf: '\\u2102',\n\tcopf: '\\uD835\\uDD54',\n\tcoprod: '\\u2210',\n\tCoproduct: '\\u2210',\n\tCOPY: '\\u00A9',\n\tcopy: '\\u00A9',\n\tcopysr: '\\u2117',\n\tCounterClockwiseContourIntegral: '\\u2233',\n\tcrarr: '\\u21B5',\n\tCross: '\\u2A2F',\n\tcross: '\\u2717',\n\tCscr: '\\uD835\\uDC9E',\n\tcscr: '\\uD835\\uDCB8',\n\tcsub: '\\u2ACF',\n\tcsube: '\\u2AD1',\n\tcsup: '\\u2AD0',\n\tcsupe: '\\u2AD2',\n\tctdot: '\\u22EF',\n\tcudarrl: '\\u2938',\n\tcudarrr: '\\u2935',\n\tcuepr: '\\u22DE',\n\tcuesc: '\\u22DF',\n\tcularr: '\\u21B6',\n\tcularrp: '\\u293D',\n\tCup: '\\u22D3',\n\tcup: '\\u222A',\n\tcupbrcap: '\\u2A48',\n\tCupCap: '\\u224D',\n\tcupcap: '\\u2A46',\n\tcupcup: '\\u2A4A',\n\tcupdot: '\\u228D',\n\tcupor: '\\u2A45',\n\tcups: '\\u222A\\uFE00',\n\tcurarr: '\\u21B7',\n\tcurarrm: '\\u293C',\n\tcurlyeqprec: '\\u22DE',\n\tcurlyeqsucc: '\\u22DF',\n\tcurlyvee: '\\u22CE',\n\tcurlywedge: '\\u22CF',\n\tcurren: '\\u00A4',\n\tcurvearrowleft: '\\u21B6',\n\tcurvearrowright: '\\u21B7',\n\tcuvee: '\\u22CE',\n\tcuwed: '\\u22CF',\n\tcwconint: '\\u2232',\n\tcwint: '\\u2231',\n\tcylcty: '\\u232D',\n\tDagger: '\\u2021',\n\tdagger: '\\u2020',\n\tdaleth: '\\u2138',\n\tDarr: '\\u21A1',\n\tdArr: '\\u21D3',\n\tdarr: '\\u2193',\n\tdash: '\\u2010',\n\tDashv: '\\u2AE4',\n\tdashv: '\\u22A3',\n\tdbkarow: '\\u290F',\n\tdblac: '\\u02DD',\n\tDcaron: '\\u010E',\n\tdcaron: '\\u010F',\n\tDcy: '\\u0414',\n\tdcy: '\\u0434',\n\tDD: '\\u2145',\n\tdd: '\\u2146',\n\tddagger: '\\u2021',\n\tddarr: '\\u21CA',\n\tDDotrahd: '\\u2911',\n\tddotseq: '\\u2A77',\n\tdeg: '\\u00B0',\n\tDel: '\\u2207',\n\tDelta: '\\u0394',\n\tdelta: '\\u03B4',\n\tdemptyv: '\\u29B1',\n\tdfisht: '\\u297F',\n\tDfr: '\\uD835\\uDD07',\n\tdfr: '\\uD835\\uDD21',\n\tdHar: '\\u2965',\n\tdharl: '\\u21C3',\n\tdharr: '\\u21C2',\n\tDiacriticalAcute: '\\u00B4',\n\tDiacriticalDot: '\\u02D9',\n\tDiacriticalDoubleAcute: '\\u02DD',\n\tDiacriticalGrave: '\\u0060',\n\tDiacriticalTilde: '\\u02DC',\n\tdiam: '\\u22C4',\n\tDiamond: '\\u22C4',\n\tdiamond: '\\u22C4',\n\tdiamondsuit: '\\u2666',\n\tdiams: '\\u2666',\n\tdie: '\\u00A8',\n\tDifferentialD: '\\u2146',\n\tdigamma: '\\u03DD',\n\tdisin: '\\u22F2',\n\tdiv: '\\u00F7',\n\tdivide: '\\u00F7',\n\tdivideontimes: '\\u22C7',\n\tdivonx: '\\u22C7',\n\tDJcy: '\\u0402',\n\tdjcy: '\\u0452',\n\tdlcorn: '\\u231E',\n\tdlcrop: '\\u230D',\n\tdollar: '\\u0024',\n\tDopf: '\\uD835\\uDD3B',\n\tdopf: '\\uD835\\uDD55',\n\tDot: '\\u00A8',\n\tdot: '\\u02D9',\n\tDotDot: '\\u20DC',\n\tdoteq: '\\u2250',\n\tdoteqdot: '\\u2251',\n\tDotEqual: '\\u2250',\n\tdotminus: '\\u2238',\n\tdotplus: '\\u2214',\n\tdotsquare: '\\u22A1',\n\tdoublebarwedge: '\\u2306',\n\tDoubleContourIntegral: '\\u222F',\n\tDoubleDot: '\\u00A8',\n\tDoubleDownArrow: '\\u21D3',\n\tDoubleLeftArrow: '\\u21D0',\n\tDoubleLeftRightArrow: '\\u21D4',\n\tDoubleLeftTee: '\\u2AE4',\n\tDoubleLongLeftArrow: '\\u27F8',\n\tDoubleLongLeftRightArrow: '\\u27FA',\n\tDoubleLongRightArrow: '\\u27F9',\n\tDoubleRightArrow: '\\u21D2',\n\tDoubleRightTee: '\\u22A8',\n\tDoubleUpArrow: '\\u21D1',\n\tDoubleUpDownArrow: '\\u21D5',\n\tDoubleVerticalBar: '\\u2225',\n\tDownArrow: '\\u2193',\n\tDownarrow: '\\u21D3',\n\tdownarrow: '\\u2193',\n\tDownArrowBar: '\\u2913',\n\tDownArrowUpArrow: '\\u21F5',\n\tDownBreve: '\\u0311',\n\tdowndownarrows: '\\u21CA',\n\tdownharpoonleft: '\\u21C3',\n\tdownharpoonright: '\\u21C2',\n\tDownLeftRightVector: '\\u2950',\n\tDownLeftTeeVector: '\\u295E',\n\tDownLeftVector: '\\u21BD',\n\tDownLeftVectorBar: '\\u2956',\n\tDownRightTeeVector: '\\u295F',\n\tDownRightVector: '\\u21C1',\n\tDownRightVectorBar: '\\u2957',\n\tDownTee: '\\u22A4',\n\tDownTeeArrow: '\\u21A7',\n\tdrbkarow: '\\u2910',\n\tdrcorn: '\\u231F',\n\tdrcrop: '\\u230C',\n\tDscr: '\\uD835\\uDC9F',\n\tdscr: '\\uD835\\uDCB9',\n\tDScy: '\\u0405',\n\tdscy: '\\u0455',\n\tdsol: '\\u29F6',\n\tDstrok: '\\u0110',\n\tdstrok: '\\u0111',\n\tdtdot: '\\u22F1',\n\tdtri: '\\u25BF',\n\tdtrif: '\\u25BE',\n\tduarr: '\\u21F5',\n\tduhar: '\\u296F',\n\tdwangle: '\\u29A6',\n\tDZcy: '\\u040F',\n\tdzcy: '\\u045F',\n\tdzigrarr: '\\u27FF',\n\tEacute: '\\u00C9',\n\teacute: '\\u00E9',\n\teaster: '\\u2A6E',\n\tEcaron: '\\u011A',\n\tecaron: '\\u011B',\n\tecir: '\\u2256',\n\tEcirc: '\\u00CA',\n\tecirc: '\\u00EA',\n\tecolon: '\\u2255',\n\tEcy: '\\u042D',\n\tecy: '\\u044D',\n\teDDot: '\\u2A77',\n\tEdot: '\\u0116',\n\teDot: '\\u2251',\n\tedot: '\\u0117',\n\tee: '\\u2147',\n\tefDot: '\\u2252',\n\tEfr: '\\uD835\\uDD08',\n\tefr: '\\uD835\\uDD22',\n\teg: '\\u2A9A',\n\tEgrave: '\\u00C8',\n\tegrave: '\\u00E8',\n\tegs: '\\u2A96',\n\tegsdot: '\\u2A98',\n\tel: '\\u2A99',\n\tElement: '\\u2208',\n\telinters: '\\u23E7',\n\tell: '\\u2113',\n\tels: '\\u2A95',\n\telsdot: '\\u2A97',\n\tEmacr: '\\u0112',\n\temacr: '\\u0113',\n\tempty: '\\u2205',\n\temptyset: '\\u2205',\n\tEmptySmallSquare: '\\u25FB',\n\temptyv: '\\u2205',\n\tEmptyVerySmallSquare: '\\u25AB',\n\temsp: '\\u2003',\n\temsp13: '\\u2004',\n\temsp14: '\\u2005',\n\tENG: '\\u014A',\n\teng: '\\u014B',\n\tensp: '\\u2002',\n\tEogon: '\\u0118',\n\teogon: '\\u0119',\n\tEopf: '\\uD835\\uDD3C',\n\teopf: '\\uD835\\uDD56',\n\tepar: '\\u22D5',\n\teparsl: '\\u29E3',\n\teplus: '\\u2A71',\n\tepsi: '\\u03B5',\n\tEpsilon: '\\u0395',\n\tepsilon: '\\u03B5',\n\tepsiv: '\\u03F5',\n\teqcirc: '\\u2256',\n\teqcolon: '\\u2255',\n\teqsim: '\\u2242',\n\teqslantgtr: '\\u2A96',\n\teqslantless: '\\u2A95',\n\tEqual: '\\u2A75',\n\tequals: '\\u003D',\n\tEqualTilde: '\\u2242',\n\tequest: '\\u225F',\n\tEquilibrium: '\\u21CC',\n\tequiv: '\\u2261',\n\tequivDD: '\\u2A78',\n\teqvparsl: '\\u29E5',\n\terarr: '\\u2971',\n\terDot: '\\u2253',\n\tEscr: '\\u2130',\n\tescr: '\\u212F',\n\tesdot: '\\u2250',\n\tEsim: '\\u2A73',\n\tesim: '\\u2242',\n\tEta: '\\u0397',\n\teta: '\\u03B7',\n\tETH: '\\u00D0',\n\teth: '\\u00F0',\n\tEuml: '\\u00CB',\n\teuml: '\\u00EB',\n\teuro: '\\u20AC',\n\texcl: '\\u0021',\n\texist: '\\u2203',\n\tExists: '\\u2203',\n\texpectation: '\\u2130',\n\tExponentialE: '\\u2147',\n\texponentiale: '\\u2147',\n\tfallingdotseq: '\\u2252',\n\tFcy: '\\u0424',\n\tfcy: '\\u0444',\n\tfemale: '\\u2640',\n\tffilig: '\\uFB03',\n\tfflig: '\\uFB00',\n\tffllig: '\\uFB04',\n\tFfr: '\\uD835\\uDD09',\n\tffr: '\\uD835\\uDD23',\n\tfilig: '\\uFB01',\n\tFilledSmallSquare: '\\u25FC',\n\tFilledVerySmallSquare: '\\u25AA',\n\tfjlig: '\\u0066\\u006A',\n\tflat: '\\u266D',\n\tfllig: '\\uFB02',\n\tfltns: '\\u25B1',\n\tfnof: '\\u0192',\n\tFopf: '\\uD835\\uDD3D',\n\tfopf: '\\uD835\\uDD57',\n\tForAll: '\\u2200',\n\tforall: '\\u2200',\n\tfork: '\\u22D4',\n\tforkv: '\\u2AD9',\n\tFouriertrf: '\\u2131',\n\tfpartint: '\\u2A0D',\n\tfrac12: '\\u00BD',\n\tfrac13: '\\u2153',\n\tfrac14: '\\u00BC',\n\tfrac15: '\\u2155',\n\tfrac16: '\\u2159',\n\tfrac18: '\\u215B',\n\tfrac23: '\\u2154',\n\tfrac25: '\\u2156',\n\tfrac34: '\\u00BE',\n\tfrac35: '\\u2157',\n\tfrac38: '\\u215C',\n\tfrac45: '\\u2158',\n\tfrac56: '\\u215A',\n\tfrac58: '\\u215D',\n\tfrac78: '\\u215E',\n\tfrasl: '\\u2044',\n\tfrown: '\\u2322',\n\tFscr: '\\u2131',\n\tfscr: '\\uD835\\uDCBB',\n\tgacute: '\\u01F5',\n\tGamma: '\\u0393',\n\tgamma: '\\u03B3',\n\tGammad: '\\u03DC',\n\tgammad: '\\u03DD',\n\tgap: '\\u2A86',\n\tGbreve: '\\u011E',\n\tgbreve: '\\u011F',\n\tGcedil: '\\u0122',\n\tGcirc: '\\u011C',\n\tgcirc: '\\u011D',\n\tGcy: '\\u0413',\n\tgcy: '\\u0433',\n\tGdot: '\\u0120',\n\tgdot: '\\u0121',\n\tgE: '\\u2267',\n\tge: '\\u2265',\n\tgEl: '\\u2A8C',\n\tgel: '\\u22DB',\n\tgeq: '\\u2265',\n\tgeqq: '\\u2267',\n\tgeqslant: '\\u2A7E',\n\tges: '\\u2A7E',\n\tgescc: '\\u2AA9',\n\tgesdot: '\\u2A80',\n\tgesdoto: '\\u2A82',\n\tgesdotol: '\\u2A84',\n\tgesl: '\\u22DB\\uFE00',\n\tgesles: '\\u2A94',\n\tGfr: '\\uD835\\uDD0A',\n\tgfr: '\\uD835\\uDD24',\n\tGg: '\\u22D9',\n\tgg: '\\u226B',\n\tggg: '\\u22D9',\n\tgimel: '\\u2137',\n\tGJcy: '\\u0403',\n\tgjcy: '\\u0453',\n\tgl: '\\u2277',\n\tgla: '\\u2AA5',\n\tglE: '\\u2A92',\n\tglj: '\\u2AA4',\n\tgnap: '\\u2A8A',\n\tgnapprox: '\\u2A8A',\n\tgnE: '\\u2269',\n\tgne: '\\u2A88',\n\tgneq: '\\u2A88',\n\tgneqq: '\\u2269',\n\tgnsim: '\\u22E7',\n\tGopf: '\\uD835\\uDD3E',\n\tgopf: '\\uD835\\uDD58',\n\tgrave: '\\u0060',\n\tGreaterEqual: '\\u2265',\n\tGreaterEqualLess: '\\u22DB',\n\tGreaterFullEqual: '\\u2267',\n\tGreaterGreater: '\\u2AA2',\n\tGreaterLess: '\\u2277',\n\tGreaterSlantEqual: '\\u2A7E',\n\tGreaterTilde: '\\u2273',\n\tGscr: '\\uD835\\uDCA2',\n\tgscr: '\\u210A',\n\tgsim: '\\u2273',\n\tgsime: '\\u2A8E',\n\tgsiml: '\\u2A90',\n\tGt: '\\u226B',\n\tGT: '\\u003E',\n\tgt: '\\u003E',\n\tgtcc: '\\u2AA7',\n\tgtcir: '\\u2A7A',\n\tgtdot: '\\u22D7',\n\tgtlPar: '\\u2995',\n\tgtquest: '\\u2A7C',\n\tgtrapprox: '\\u2A86',\n\tgtrarr: '\\u2978',\n\tgtrdot: '\\u22D7',\n\tgtreqless: '\\u22DB',\n\tgtreqqless: '\\u2A8C',\n\tgtrless: '\\u2277',\n\tgtrsim: '\\u2273',\n\tgvertneqq: '\\u2269\\uFE00',\n\tgvnE: '\\u2269\\uFE00',\n\tHacek: '\\u02C7',\n\thairsp: '\\u200A',\n\thalf: '\\u00BD',\n\thamilt: '\\u210B',\n\tHARDcy: '\\u042A',\n\thardcy: '\\u044A',\n\thArr: '\\u21D4',\n\tharr: '\\u2194',\n\tharrcir: '\\u2948',\n\tharrw: '\\u21AD',\n\tHat: '\\u005E',\n\thbar: '\\u210F',\n\tHcirc: '\\u0124',\n\thcirc: '\\u0125',\n\thearts: '\\u2665',\n\theartsuit: '\\u2665',\n\thellip: '\\u2026',\n\thercon: '\\u22B9',\n\tHfr: '\\u210C',\n\thfr: '\\uD835\\uDD25',\n\tHilbertSpace: '\\u210B',\n\thksearow: '\\u2925',\n\thkswarow: '\\u2926',\n\thoarr: '\\u21FF',\n\thomtht: '\\u223B',\n\thookleftarrow: '\\u21A9',\n\thookrightarrow: '\\u21AA',\n\tHopf: '\\u210D',\n\thopf: '\\uD835\\uDD59',\n\thorbar: '\\u2015',\n\tHorizontalLine: '\\u2500',\n\tHscr: '\\u210B',\n\thscr: '\\uD835\\uDCBD',\n\thslash: '\\u210F',\n\tHstrok: '\\u0126',\n\thstrok: '\\u0127',\n\tHumpDownHump: '\\u224E',\n\tHumpEqual: '\\u224F',\n\thybull: '\\u2043',\n\thyphen: '\\u2010',\n\tIacute: '\\u00CD',\n\tiacute: '\\u00ED',\n\tic: '\\u2063',\n\tIcirc: '\\u00CE',\n\ticirc: '\\u00EE',\n\tIcy: '\\u0418',\n\ticy: '\\u0438',\n\tIdot: '\\u0130',\n\tIEcy: '\\u0415',\n\tiecy: '\\u0435',\n\tiexcl: '\\u00A1',\n\tiff: '\\u21D4',\n\tIfr: '\\u2111',\n\tifr: '\\uD835\\uDD26',\n\tIgrave: '\\u00CC',\n\tigrave: '\\u00EC',\n\tii: '\\u2148',\n\tiiiint: '\\u2A0C',\n\tiiint: '\\u222D',\n\tiinfin: '\\u29DC',\n\tiiota: '\\u2129',\n\tIJlig: '\\u0132',\n\tijlig: '\\u0133',\n\tIm: '\\u2111',\n\tImacr: '\\u012A',\n\timacr: '\\u012B',\n\timage: '\\u2111',\n\tImaginaryI: '\\u2148',\n\timagline: '\\u2110',\n\timagpart: '\\u2111',\n\timath: '\\u0131',\n\timof: '\\u22B7',\n\timped: '\\u01B5',\n\tImplies: '\\u21D2',\n\tin: '\\u2208',\n\tincare: '\\u2105',\n\tinfin: '\\u221E',\n\tinfintie: '\\u29DD',\n\tinodot: '\\u0131',\n\tInt: '\\u222C',\n\tint: '\\u222B',\n\tintcal: '\\u22BA',\n\tintegers: '\\u2124',\n\tIntegral: '\\u222B',\n\tintercal: '\\u22BA',\n\tIntersection: '\\u22C2',\n\tintlarhk: '\\u2A17',\n\tintprod: '\\u2A3C',\n\tInvisibleComma: '\\u2063',\n\tInvisibleTimes: '\\u2062',\n\tIOcy: '\\u0401',\n\tiocy: '\\u0451',\n\tIogon: '\\u012E',\n\tiogon: '\\u012F',\n\tIopf: '\\uD835\\uDD40',\n\tiopf: '\\uD835\\uDD5A',\n\tIota: '\\u0399',\n\tiota: '\\u03B9',\n\tiprod: '\\u2A3C',\n\tiquest: '\\u00BF',\n\tIscr: '\\u2110',\n\tiscr: '\\uD835\\uDCBE',\n\tisin: '\\u2208',\n\tisindot: '\\u22F5',\n\tisinE: '\\u22F9',\n\tisins: '\\u22F4',\n\tisinsv: '\\u22F3',\n\tisinv: '\\u2208',\n\tit: '\\u2062',\n\tItilde: '\\u0128',\n\titilde: '\\u0129',\n\tIukcy: '\\u0406',\n\tiukcy: '\\u0456',\n\tIuml: '\\u00CF',\n\tiuml: '\\u00EF',\n\tJcirc: '\\u0134',\n\tjcirc: '\\u0135',\n\tJcy: '\\u0419',\n\tjcy: '\\u0439',\n\tJfr: '\\uD835\\uDD0D',\n\tjfr: '\\uD835\\uDD27',\n\tjmath: '\\u0237',\n\tJopf: '\\uD835\\uDD41',\n\tjopf: '\\uD835\\uDD5B',\n\tJscr: '\\uD835\\uDCA5',\n\tjscr: '\\uD835\\uDCBF',\n\tJsercy: '\\u0408',\n\tjsercy: '\\u0458',\n\tJukcy: '\\u0404',\n\tjukcy: '\\u0454',\n\tKappa: '\\u039A',\n\tkappa: '\\u03BA',\n\tkappav: '\\u03F0',\n\tKcedil: '\\u0136',\n\tkcedil: '\\u0137',\n\tKcy: '\\u041A',\n\tkcy: '\\u043A',\n\tKfr: '\\uD835\\uDD0E',\n\tkfr: '\\uD835\\uDD28',\n\tkgreen: '\\u0138',\n\tKHcy: '\\u0425',\n\tkhcy: '\\u0445',\n\tKJcy: '\\u040C',\n\tkjcy: '\\u045C',\n\tKopf: '\\uD835\\uDD42',\n\tkopf: '\\uD835\\uDD5C',\n\tKscr: '\\uD835\\uDCA6',\n\tkscr: '\\uD835\\uDCC0',\n\tlAarr: '\\u21DA',\n\tLacute: '\\u0139',\n\tlacute: '\\u013A',\n\tlaemptyv: '\\u29B4',\n\tlagran: '\\u2112',\n\tLambda: '\\u039B',\n\tlambda: '\\u03BB',\n\tLang: '\\u27EA',\n\tlang: '\\u27E8',\n\tlangd: '\\u2991',\n\tlangle: '\\u27E8',\n\tlap: '\\u2A85',\n\tLaplacetrf: '\\u2112',\n\tlaquo: '\\u00AB',\n\tLarr: '\\u219E',\n\tlArr: '\\u21D0',\n\tlarr: '\\u2190',\n\tlarrb: '\\u21E4',\n\tlarrbfs: '\\u291F',\n\tlarrfs: '\\u291D',\n\tlarrhk: '\\u21A9',\n\tlarrlp: '\\u21AB',\n\tlarrpl: '\\u2939',\n\tlarrsim: '\\u2973',\n\tlarrtl: '\\u21A2',\n\tlat: '\\u2AAB',\n\tlAtail: '\\u291B',\n\tlatail: '\\u2919',\n\tlate: '\\u2AAD',\n\tlates: '\\u2AAD\\uFE00',\n\tlBarr: '\\u290E',\n\tlbarr: '\\u290C',\n\tlbbrk: '\\u2772',\n\tlbrace: '\\u007B',\n\tlbrack: '\\u005B',\n\tlbrke: '\\u298B',\n\tlbrksld: '\\u298F',\n\tlbrkslu: '\\u298D',\n\tLcaron: '\\u013D',\n\tlcaron: '\\u013E',\n\tLcedil: '\\u013B',\n\tlcedil: '\\u013C',\n\tlceil: '\\u2308',\n\tlcub: '\\u007B',\n\tLcy: '\\u041B',\n\tlcy: '\\u043B',\n\tldca: '\\u2936',\n\tldquo: '\\u201C',\n\tldquor: '\\u201E',\n\tldrdhar: '\\u2967',\n\tldrushar: '\\u294B',\n\tldsh: '\\u21B2',\n\tlE: '\\u2266',\n\tle: '\\u2264',\n\tLeftAngleBracket: '\\u27E8',\n\tLeftArrow: '\\u2190',\n\tLeftarrow: '\\u21D0',\n\tleftarrow: '\\u2190',\n\tLeftArrowBar: '\\u21E4',\n\tLeftArrowRightArrow: '\\u21C6',\n\tleftarrowtail: '\\u21A2',\n\tLeftCeiling: '\\u2308',\n\tLeftDoubleBracket: '\\u27E6',\n\tLeftDownTeeVector: '\\u2961',\n\tLeftDownVector: '\\u21C3',\n\tLeftDownVectorBar: '\\u2959',\n\tLeftFloor: '\\u230A',\n\tleftharpoondown: '\\u21BD',\n\tleftharpoonup: '\\u21BC',\n\tleftleftarrows: '\\u21C7',\n\tLeftRightArrow: '\\u2194',\n\tLeftrightarrow: '\\u21D4',\n\tleftrightarrow: '\\u2194',\n\tleftrightarrows: '\\u21C6',\n\tleftrightharpoons: '\\u21CB',\n\tleftrightsquigarrow: '\\u21AD',\n\tLeftRightVector: '\\u294E',\n\tLeftTee: '\\u22A3',\n\tLeftTeeArrow: '\\u21A4',\n\tLeftTeeVector: '\\u295A',\n\tleftthreetimes: '\\u22CB',\n\tLeftTriangle: '\\u22B2',\n\tLeftTriangleBar: '\\u29CF',\n\tLeftTriangleEqual: '\\u22B4',\n\tLeftUpDownVector: '\\u2951',\n\tLeftUpTeeVector: '\\u2960',\n\tLeftUpVector: '\\u21BF',\n\tLeftUpVectorBar: '\\u2958',\n\tLeftVector: '\\u21BC',\n\tLeftVectorBar: '\\u2952',\n\tlEg: '\\u2A8B',\n\tleg: '\\u22DA',\n\tleq: '\\u2264',\n\tleqq: '\\u2266',\n\tleqslant: '\\u2A7D',\n\tles: '\\u2A7D',\n\tlescc: '\\u2AA8',\n\tlesdot: '\\u2A7F',\n\tlesdoto: '\\u2A81',\n\tlesdotor: '\\u2A83',\n\tlesg: '\\u22DA\\uFE00',\n\tlesges: '\\u2A93',\n\tlessapprox: '\\u2A85',\n\tlessdot: '\\u22D6',\n\tlesseqgtr: '\\u22DA',\n\tlesseqqgtr: '\\u2A8B',\n\tLessEqualGreater: '\\u22DA',\n\tLessFullEqual: '\\u2266',\n\tLessGreater: '\\u2276',\n\tlessgtr: '\\u2276',\n\tLessLess: '\\u2AA1',\n\tlesssim: '\\u2272',\n\tLessSlantEqual: '\\u2A7D',\n\tLessTilde: '\\u2272',\n\tlfisht: '\\u297C',\n\tlfloor: '\\u230A',\n\tLfr: '\\uD835\\uDD0F',\n\tlfr: '\\uD835\\uDD29',\n\tlg: '\\u2276',\n\tlgE: '\\u2A91',\n\tlHar: '\\u2962',\n\tlhard: '\\u21BD',\n\tlharu: '\\u21BC',\n\tlharul: '\\u296A',\n\tlhblk: '\\u2584',\n\tLJcy: '\\u0409',\n\tljcy: '\\u0459',\n\tLl: '\\u22D8',\n\tll: '\\u226A',\n\tllarr: '\\u21C7',\n\tllcorner: '\\u231E',\n\tLleftarrow: '\\u21DA',\n\tllhard: '\\u296B',\n\tlltri: '\\u25FA',\n\tLmidot: '\\u013F',\n\tlmidot: '\\u0140',\n\tlmoust: '\\u23B0',\n\tlmoustache: '\\u23B0',\n\tlnap: '\\u2A89',\n\tlnapprox: '\\u2A89',\n\tlnE: '\\u2268',\n\tlne: '\\u2A87',\n\tlneq: '\\u2A87',\n\tlneqq: '\\u2268',\n\tlnsim: '\\u22E6',\n\tloang: '\\u27EC',\n\tloarr: '\\u21FD',\n\tlobrk: '\\u27E6',\n\tLongLeftArrow: '\\u27F5',\n\tLongleftarrow: '\\u27F8',\n\tlongleftarrow: '\\u27F5',\n\tLongLeftRightArrow: '\\u27F7',\n\tLongleftrightarrow: '\\u27FA',\n\tlongleftrightarrow: '\\u27F7',\n\tlongmapsto: '\\u27FC',\n\tLongRightArrow: '\\u27F6',\n\tLongrightarrow: '\\u27F9',\n\tlongrightarrow: '\\u27F6',\n\tlooparrowleft: '\\u21AB',\n\tlooparrowright: '\\u21AC',\n\tlopar: '\\u2985',\n\tLopf: '\\uD835\\uDD43',\n\tlopf: '\\uD835\\uDD5D',\n\tloplus: '\\u2A2D',\n\tlotimes: '\\u2A34',\n\tlowast: '\\u2217',\n\tlowbar: '\\u005F',\n\tLowerLeftArrow: '\\u2199',\n\tLowerRightArrow: '\\u2198',\n\tloz: '\\u25CA',\n\tlozenge: '\\u25CA',\n\tlozf: '\\u29EB',\n\tlpar: '\\u0028',\n\tlparlt: '\\u2993',\n\tlrarr: '\\u21C6',\n\tlrcorner: '\\u231F',\n\tlrhar: '\\u21CB',\n\tlrhard: '\\u296D',\n\tlrm: '\\u200E',\n\tlrtri: '\\u22BF',\n\tlsaquo: '\\u2039',\n\tLscr: '\\u2112',\n\tlscr: '\\uD835\\uDCC1',\n\tLsh: '\\u21B0',\n\tlsh: '\\u21B0',\n\tlsim: '\\u2272',\n\tlsime: '\\u2A8D',\n\tlsimg: '\\u2A8F',\n\tlsqb: '\\u005B',\n\tlsquo: '\\u2018',\n\tlsquor: '\\u201A',\n\tLstrok: '\\u0141',\n\tlstrok: '\\u0142',\n\tLt: '\\u226A',\n\tLT: '\\u003C',\n\tlt: '\\u003C',\n\tltcc: '\\u2AA6',\n\tltcir: '\\u2A79',\n\tltdot: '\\u22D6',\n\tlthree: '\\u22CB',\n\tltimes: '\\u22C9',\n\tltlarr: '\\u2976',\n\tltquest: '\\u2A7B',\n\tltri: '\\u25C3',\n\tltrie: '\\u22B4',\n\tltrif: '\\u25C2',\n\tltrPar: '\\u2996',\n\tlurdshar: '\\u294A',\n\tluruhar: '\\u2966',\n\tlvertneqq: '\\u2268\\uFE00',\n\tlvnE: '\\u2268\\uFE00',\n\tmacr: '\\u00AF',\n\tmale: '\\u2642',\n\tmalt: '\\u2720',\n\tmaltese: '\\u2720',\n\tMap: '\\u2905',\n\tmap: '\\u21A6',\n\tmapsto: '\\u21A6',\n\tmapstodown: '\\u21A7',\n\tmapstoleft: '\\u21A4',\n\tmapstoup: '\\u21A5',\n\tmarker: '\\u25AE',\n\tmcomma: '\\u2A29',\n\tMcy: '\\u041C',\n\tmcy: '\\u043C',\n\tmdash: '\\u2014',\n\tmDDot: '\\u223A',\n\tmeasuredangle: '\\u2221',\n\tMediumSpace: '\\u205F',\n\tMellintrf: '\\u2133',\n\tMfr: '\\uD835\\uDD10',\n\tmfr: '\\uD835\\uDD2A',\n\tmho: '\\u2127',\n\tmicro: '\\u00B5',\n\tmid: '\\u2223',\n\tmidast: '\\u002A',\n\tmidcir: '\\u2AF0',\n\tmiddot: '\\u00B7',\n\tminus: '\\u2212',\n\tminusb: '\\u229F',\n\tminusd: '\\u2238',\n\tminusdu: '\\u2A2A',\n\tMinusPlus: '\\u2213',\n\tmlcp: '\\u2ADB',\n\tmldr: '\\u2026',\n\tmnplus: '\\u2213',\n\tmodels: '\\u22A7',\n\tMopf: '\\uD835\\uDD44',\n\tmopf: '\\uD835\\uDD5E',\n\tmp: '\\u2213',\n\tMscr: '\\u2133',\n\tmscr: '\\uD835\\uDCC2',\n\tmstpos: '\\u223E',\n\tMu: '\\u039C',\n\tmu: '\\u03BC',\n\tmultimap: '\\u22B8',\n\tmumap: '\\u22B8',\n\tnabla: '\\u2207',\n\tNacute: '\\u0143',\n\tnacute: '\\u0144',\n\tnang: '\\u2220\\u20D2',\n\tnap: '\\u2249',\n\tnapE: '\\u2A70\\u0338',\n\tnapid: '\\u224B\\u0338',\n\tnapos: '\\u0149',\n\tnapprox: '\\u2249',\n\tnatur: '\\u266E',\n\tnatural: '\\u266E',\n\tnaturals: '\\u2115',\n\tnbsp: '\\u00A0',\n\tnbump: '\\u224E\\u0338',\n\tnbumpe: '\\u224F\\u0338',\n\tncap: '\\u2A43',\n\tNcaron: '\\u0147',\n\tncaron: '\\u0148',\n\tNcedil: '\\u0145',\n\tncedil: '\\u0146',\n\tncong: '\\u2247',\n\tncongdot: '\\u2A6D\\u0338',\n\tncup: '\\u2A42',\n\tNcy: '\\u041D',\n\tncy: '\\u043D',\n\tndash: '\\u2013',\n\tne: '\\u2260',\n\tnearhk: '\\u2924',\n\tneArr: '\\u21D7',\n\tnearr: '\\u2197',\n\tnearrow: '\\u2197',\n\tnedot: '\\u2250\\u0338',\n\tNegativeMediumSpace: '\\u200B',\n\tNegativeThickSpace: '\\u200B',\n\tNegativeThinSpace: '\\u200B',\n\tNegativeVeryThinSpace: '\\u200B',\n\tnequiv: '\\u2262',\n\tnesear: '\\u2928',\n\tnesim: '\\u2242\\u0338',\n\tNestedGreaterGreater: '\\u226B',\n\tNestedLessLess: '\\u226A',\n\tNewLine: '\\u000A',\n\tnexist: '\\u2204',\n\tnexists: '\\u2204',\n\tNfr: '\\uD835\\uDD11',\n\tnfr: '\\uD835\\uDD2B',\n\tngE: '\\u2267\\u0338',\n\tnge: '\\u2271',\n\tngeq: '\\u2271',\n\tngeqq: '\\u2267\\u0338',\n\tngeqslant: '\\u2A7E\\u0338',\n\tnges: '\\u2A7E\\u0338',\n\tnGg: '\\u22D9\\u0338',\n\tngsim: '\\u2275',\n\tnGt: '\\u226B\\u20D2',\n\tngt: '\\u226F',\n\tngtr: '\\u226F',\n\tnGtv: '\\u226B\\u0338',\n\tnhArr: '\\u21CE',\n\tnharr: '\\u21AE',\n\tnhpar: '\\u2AF2',\n\tni: '\\u220B',\n\tnis: '\\u22FC',\n\tnisd: '\\u22FA',\n\tniv: '\\u220B',\n\tNJcy: '\\u040A',\n\tnjcy: '\\u045A',\n\tnlArr: '\\u21CD',\n\tnlarr: '\\u219A',\n\tnldr: '\\u2025',\n\tnlE: '\\u2266\\u0338',\n\tnle: '\\u2270',\n\tnLeftarrow: '\\u21CD',\n\tnleftarrow: '\\u219A',\n\tnLeftrightarrow: '\\u21CE',\n\tnleftrightarrow: '\\u21AE',\n\tnleq: '\\u2270',\n\tnleqq: '\\u2266\\u0338',\n\tnleqslant: '\\u2A7D\\u0338',\n\tnles: '\\u2A7D\\u0338',\n\tnless: '\\u226E',\n\tnLl: '\\u22D8\\u0338',\n\tnlsim: '\\u2274',\n\tnLt: '\\u226A\\u20D2',\n\tnlt: '\\u226E',\n\tnltri: '\\u22EA',\n\tnltrie: '\\u22EC',\n\tnLtv: '\\u226A\\u0338',\n\tnmid: '\\u2224',\n\tNoBreak: '\\u2060',\n\tNonBreakingSpace: '\\u00A0',\n\tNopf: '\\u2115',\n\tnopf: '\\uD835\\uDD5F',\n\tNot: '\\u2AEC',\n\tnot: '\\u00AC',\n\tNotCongruent: '\\u2262',\n\tNotCupCap: '\\u226D',\n\tNotDoubleVerticalBar: '\\u2226',\n\tNotElement: '\\u2209',\n\tNotEqual: '\\u2260',\n\tNotEqualTilde: '\\u2242\\u0338',\n\tNotExists: '\\u2204',\n\tNotGreater: '\\u226F',\n\tNotGreaterEqual: '\\u2271',\n\tNotGreaterFullEqual: '\\u2267\\u0338',\n\tNotGreaterGreater: '\\u226B\\u0338',\n\tNotGreaterLess: '\\u2279',\n\tNotGreaterSlantEqual: '\\u2A7E\\u0338',\n\tNotGreaterTilde: '\\u2275',\n\tNotHumpDownHump: '\\u224E\\u0338',\n\tNotHumpEqual: '\\u224F\\u0338',\n\tnotin: '\\u2209',\n\tnotindot: '\\u22F5\\u0338',\n\tnotinE: '\\u22F9\\u0338',\n\tnotinva: '\\u2209',\n\tnotinvb: '\\u22F7',\n\tnotinvc: '\\u22F6',\n\tNotLeftTriangle: '\\u22EA',\n\tNotLeftTriangleBar: '\\u29CF\\u0338',\n\tNotLeftTriangleEqual: '\\u22EC',\n\tNotLess: '\\u226E',\n\tNotLessEqual: '\\u2270',\n\tNotLessGreater: '\\u2278',\n\tNotLessLess: '\\u226A\\u0338',\n\tNotLessSlantEqual: '\\u2A7D\\u0338',\n\tNotLessTilde: '\\u2274',\n\tNotNestedGreaterGreater: '\\u2AA2\\u0338',\n\tNotNestedLessLess: '\\u2AA1\\u0338',\n\tnotni: '\\u220C',\n\tnotniva: '\\u220C',\n\tnotnivb: '\\u22FE',\n\tnotnivc: '\\u22FD',\n\tNotPrecedes: '\\u2280',\n\tNotPrecedesEqual: '\\u2AAF\\u0338',\n\tNotPrecedesSlantEqual: '\\u22E0',\n\tNotReverseElement: '\\u220C',\n\tNotRightTriangle: '\\u22EB',\n\tNotRightTriangleBar: '\\u29D0\\u0338',\n\tNotRightTriangleEqual: '\\u22ED',\n\tNotSquareSubset: '\\u228F\\u0338',\n\tNotSquareSubsetEqual: '\\u22E2',\n\tNotSquareSuperset: '\\u2290\\u0338',\n\tNotSquareSupersetEqual: '\\u22E3',\n\tNotSubset: '\\u2282\\u20D2',\n\tNotSubsetEqual: '\\u2288',\n\tNotSucceeds: '\\u2281',\n\tNotSucceedsEqual: '\\u2AB0\\u0338',\n\tNotSucceedsSlantEqual: '\\u22E1',\n\tNotSucceedsTilde: '\\u227F\\u0338',\n\tNotSuperset: '\\u2283\\u20D2',\n\tNotSupersetEqual: '\\u2289',\n\tNotTilde: '\\u2241',\n\tNotTildeEqual: '\\u2244',\n\tNotTildeFullEqual: '\\u2247',\n\tNotTildeTilde: '\\u2249',\n\tNotVerticalBar: '\\u2224',\n\tnpar: '\\u2226',\n\tnparallel: '\\u2226',\n\tnparsl: '\\u2AFD\\u20E5',\n\tnpart: '\\u2202\\u0338',\n\tnpolint: '\\u2A14',\n\tnpr: '\\u2280',\n\tnprcue: '\\u22E0',\n\tnpre: '\\u2AAF\\u0338',\n\tnprec: '\\u2280',\n\tnpreceq: '\\u2AAF\\u0338',\n\tnrArr: '\\u21CF',\n\tnrarr: '\\u219B',\n\tnrarrc: '\\u2933\\u0338',\n\tnrarrw: '\\u219D\\u0338',\n\tnRightarrow: '\\u21CF',\n\tnrightarrow: '\\u219B',\n\tnrtri: '\\u22EB',\n\tnrtrie: '\\u22ED',\n\tnsc: '\\u2281',\n\tnsccue: '\\u22E1',\n\tnsce: '\\u2AB0\\u0338',\n\tNscr: '\\uD835\\uDCA9',\n\tnscr: '\\uD835\\uDCC3',\n\tnshortmid: '\\u2224',\n\tnshortparallel: '\\u2226',\n\tnsim: '\\u2241',\n\tnsime: '\\u2244',\n\tnsimeq: '\\u2244',\n\tnsmid: '\\u2224',\n\tnspar: '\\u2226',\n\tnsqsube: '\\u22E2',\n\tnsqsupe: '\\u22E3',\n\tnsub: '\\u2284',\n\tnsubE: '\\u2AC5\\u0338',\n\tnsube: '\\u2288',\n\tnsubset: '\\u2282\\u20D2',\n\tnsubseteq: '\\u2288',\n\tnsubseteqq: '\\u2AC5\\u0338',\n\tnsucc: '\\u2281',\n\tnsucceq: '\\u2AB0\\u0338',\n\tnsup: '\\u2285',\n\tnsupE: '\\u2AC6\\u0338',\n\tnsupe: '\\u2289',\n\tnsupset: '\\u2283\\u20D2',\n\tnsupseteq: '\\u2289',\n\tnsupseteqq: '\\u2AC6\\u0338',\n\tntgl: '\\u2279',\n\tNtilde: '\\u00D1',\n\tntilde: '\\u00F1',\n\tntlg: '\\u2278',\n\tntriangleleft: '\\u22EA',\n\tntrianglelefteq: '\\u22EC',\n\tntriangleright: '\\u22EB',\n\tntrianglerighteq: '\\u22ED',\n\tNu: '\\u039D',\n\tnu: '\\u03BD',\n\tnum: '\\u0023',\n\tnumero: '\\u2116',\n\tnumsp: '\\u2007',\n\tnvap: '\\u224D\\u20D2',\n\tnVDash: '\\u22AF',\n\tnVdash: '\\u22AE',\n\tnvDash: '\\u22AD',\n\tnvdash: '\\u22AC',\n\tnvge: '\\u2265\\u20D2',\n\tnvgt: '\\u003E\\u20D2',\n\tnvHarr: '\\u2904',\n\tnvinfin: '\\u29DE',\n\tnvlArr: '\\u2902',\n\tnvle: '\\u2264\\u20D2',\n\tnvlt: '\\u003C\\u20D2',\n\tnvltrie: '\\u22B4\\u20D2',\n\tnvrArr: '\\u2903',\n\tnvrtrie: '\\u22B5\\u20D2',\n\tnvsim: '\\u223C\\u20D2',\n\tnwarhk: '\\u2923',\n\tnwArr: '\\u21D6',\n\tnwarr: '\\u2196',\n\tnwarrow: '\\u2196',\n\tnwnear: '\\u2927',\n\tOacute: '\\u00D3',\n\toacute: '\\u00F3',\n\toast: '\\u229B',\n\tocir: '\\u229A',\n\tOcirc: '\\u00D4',\n\tocirc: '\\u00F4',\n\tOcy: '\\u041E',\n\tocy: '\\u043E',\n\todash: '\\u229D',\n\tOdblac: '\\u0150',\n\todblac: '\\u0151',\n\todiv: '\\u2A38',\n\todot: '\\u2299',\n\todsold: '\\u29BC',\n\tOElig: '\\u0152',\n\toelig: '\\u0153',\n\tofcir: '\\u29BF',\n\tOfr: '\\uD835\\uDD12',\n\tofr: '\\uD835\\uDD2C',\n\togon: '\\u02DB',\n\tOgrave: '\\u00D2',\n\tograve: '\\u00F2',\n\togt: '\\u29C1',\n\tohbar: '\\u29B5',\n\tohm: '\\u03A9',\n\toint: '\\u222E',\n\tolarr: '\\u21BA',\n\tolcir: '\\u29BE',\n\tolcross: '\\u29BB',\n\toline: '\\u203E',\n\tolt: '\\u29C0',\n\tOmacr: '\\u014C',\n\tomacr: '\\u014D',\n\tOmega: '\\u03A9',\n\tomega: '\\u03C9',\n\tOmicron: '\\u039F',\n\tomicron: '\\u03BF',\n\tomid: '\\u29B6',\n\tominus: '\\u2296',\n\tOopf: '\\uD835\\uDD46',\n\toopf: '\\uD835\\uDD60',\n\topar: '\\u29B7',\n\tOpenCurlyDoubleQuote: '\\u201C',\n\tOpenCurlyQuote: '\\u2018',\n\toperp: '\\u29B9',\n\toplus: '\\u2295',\n\tOr: '\\u2A54',\n\tor: '\\u2228',\n\torarr: '\\u21BB',\n\tord: '\\u2A5D',\n\torder: '\\u2134',\n\torderof: '\\u2134',\n\tordf: '\\u00AA',\n\tordm: '\\u00BA',\n\torigof: '\\u22B6',\n\toror: '\\u2A56',\n\torslope: '\\u2A57',\n\torv: '\\u2A5B',\n\toS: '\\u24C8',\n\tOscr: '\\uD835\\uDCAA',\n\toscr: '\\u2134',\n\tOslash: '\\u00D8',\n\toslash: '\\u00F8',\n\tosol: '\\u2298',\n\tOtilde: '\\u00D5',\n\totilde: '\\u00F5',\n\tOtimes: '\\u2A37',\n\totimes: '\\u2297',\n\totimesas: '\\u2A36',\n\tOuml: '\\u00D6',\n\touml: '\\u00F6',\n\tovbar: '\\u233D',\n\tOverBar: '\\u203E',\n\tOverBrace: '\\u23DE',\n\tOverBracket: '\\u23B4',\n\tOverParenthesis: '\\u23DC',\n\tpar: '\\u2225',\n\tpara: '\\u00B6',\n\tparallel: '\\u2225',\n\tparsim: '\\u2AF3',\n\tparsl: '\\u2AFD',\n\tpart: '\\u2202',\n\tPartialD: '\\u2202',\n\tPcy: '\\u041F',\n\tpcy: '\\u043F',\n\tpercnt: '\\u0025',\n\tperiod: '\\u002E',\n\tpermil: '\\u2030',\n\tperp: '\\u22A5',\n\tpertenk: '\\u2031',\n\tPfr: '\\uD835\\uDD13',\n\tpfr: '\\uD835\\uDD2D',\n\tPhi: '\\u03A6',\n\tphi: '\\u03C6',\n\tphiv: '\\u03D5',\n\tphmmat: '\\u2133',\n\tphone: '\\u260E',\n\tPi: '\\u03A0',\n\tpi: '\\u03C0',\n\tpitchfork: '\\u22D4',\n\tpiv: '\\u03D6',\n\tplanck: '\\u210F',\n\tplanckh: '\\u210E',\n\tplankv: '\\u210F',\n\tplus: '\\u002B',\n\tplusacir: '\\u2A23',\n\tplusb: '\\u229E',\n\tpluscir: '\\u2A22',\n\tplusdo: '\\u2214',\n\tplusdu: '\\u2A25',\n\tpluse: '\\u2A72',\n\tPlusMinus: '\\u00B1',\n\tplusmn: '\\u00B1',\n\tplussim: '\\u2A26',\n\tplustwo: '\\u2A27',\n\tpm: '\\u00B1',\n\tPoincareplane: '\\u210C',\n\tpointint: '\\u2A15',\n\tPopf: '\\u2119',\n\tpopf: '\\uD835\\uDD61',\n\tpound: '\\u00A3',\n\tPr: '\\u2ABB',\n\tpr: '\\u227A',\n\tprap: '\\u2AB7',\n\tprcue: '\\u227C',\n\tprE: '\\u2AB3',\n\tpre: '\\u2AAF',\n\tprec: '\\u227A',\n\tprecapprox: '\\u2AB7',\n\tpreccurlyeq: '\\u227C',\n\tPrecedes: '\\u227A',\n\tPrecedesEqual: '\\u2AAF',\n\tPrecedesSlantEqual: '\\u227C',\n\tPrecedesTilde: '\\u227E',\n\tpreceq: '\\u2AAF',\n\tprecnapprox: '\\u2AB9',\n\tprecneqq: '\\u2AB5',\n\tprecnsim: '\\u22E8',\n\tprecsim: '\\u227E',\n\tPrime: '\\u2033',\n\tprime: '\\u2032',\n\tprimes: '\\u2119',\n\tprnap: '\\u2AB9',\n\tprnE: '\\u2AB5',\n\tprnsim: '\\u22E8',\n\tprod: '\\u220F',\n\tProduct: '\\u220F',\n\tprofalar: '\\u232E',\n\tprofline: '\\u2312',\n\tprofsurf: '\\u2313',\n\tprop: '\\u221D',\n\tProportion: '\\u2237',\n\tProportional: '\\u221D',\n\tpropto: '\\u221D',\n\tprsim: '\\u227E',\n\tprurel: '\\u22B0',\n\tPscr: '\\uD835\\uDCAB',\n\tpscr: '\\uD835\\uDCC5',\n\tPsi: '\\u03A8',\n\tpsi: '\\u03C8',\n\tpuncsp: '\\u2008',\n\tQfr: '\\uD835\\uDD14',\n\tqfr: '\\uD835\\uDD2E',\n\tqint: '\\u2A0C',\n\tQopf: '\\u211A',\n\tqopf: '\\uD835\\uDD62',\n\tqprime: '\\u2057',\n\tQscr: '\\uD835\\uDCAC',\n\tqscr: '\\uD835\\uDCC6',\n\tquaternions: '\\u210D',\n\tquatint: '\\u2A16',\n\tquest: '\\u003F',\n\tquesteq: '\\u225F',\n\tQUOT: '\\u0022',\n\tquot: '\\u0022',\n\trAarr: '\\u21DB',\n\trace: '\\u223D\\u0331',\n\tRacute: '\\u0154',\n\tracute: '\\u0155',\n\tradic: '\\u221A',\n\traemptyv: '\\u29B3',\n\tRang: '\\u27EB',\n\trang: '\\u27E9',\n\trangd: '\\u2992',\n\trange: '\\u29A5',\n\trangle: '\\u27E9',\n\traquo: '\\u00BB',\n\tRarr: '\\u21A0',\n\trArr: '\\u21D2',\n\trarr: '\\u2192',\n\trarrap: '\\u2975',\n\trarrb: '\\u21E5',\n\trarrbfs: '\\u2920',\n\trarrc: '\\u2933',\n\trarrfs: '\\u291E',\n\trarrhk: '\\u21AA',\n\trarrlp: '\\u21AC',\n\trarrpl: '\\u2945',\n\trarrsim: '\\u2974',\n\tRarrtl: '\\u2916',\n\trarrtl: '\\u21A3',\n\trarrw: '\\u219D',\n\trAtail: '\\u291C',\n\tratail: '\\u291A',\n\tratio: '\\u2236',\n\trationals: '\\u211A',\n\tRBarr: '\\u2910',\n\trBarr: '\\u290F',\n\trbarr: '\\u290D',\n\trbbrk: '\\u2773',\n\trbrace: '\\u007D',\n\trbrack: '\\u005D',\n\trbrke: '\\u298C',\n\trbrksld: '\\u298E',\n\trbrkslu: '\\u2990',\n\tRcaron: '\\u0158',\n\trcaron: '\\u0159',\n\tRcedil: '\\u0156',\n\trcedil: '\\u0157',\n\trceil: '\\u2309',\n\trcub: '\\u007D',\n\tRcy: '\\u0420',\n\trcy: '\\u0440',\n\trdca: '\\u2937',\n\trdldhar: '\\u2969',\n\trdquo: '\\u201D',\n\trdquor: '\\u201D',\n\trdsh: '\\u21B3',\n\tRe: '\\u211C',\n\treal: '\\u211C',\n\trealine: '\\u211B',\n\trealpart: '\\u211C',\n\treals: '\\u211D',\n\trect: '\\u25AD',\n\tREG: '\\u00AE',\n\treg: '\\u00AE',\n\tReverseElement: '\\u220B',\n\tReverseEquilibrium: '\\u21CB',\n\tReverseUpEquilibrium: '\\u296F',\n\trfisht: '\\u297D',\n\trfloor: '\\u230B',\n\tRfr: '\\u211C',\n\trfr: '\\uD835\\uDD2F',\n\trHar: '\\u2964',\n\trhard: '\\u21C1',\n\trharu: '\\u21C0',\n\trharul: '\\u296C',\n\tRho: '\\u03A1',\n\trho: '\\u03C1',\n\trhov: '\\u03F1',\n\tRightAngleBracket: '\\u27E9',\n\tRightArrow: '\\u2192',\n\tRightarrow: '\\u21D2',\n\trightarrow: '\\u2192',\n\tRightArrowBar: '\\u21E5',\n\tRightArrowLeftArrow: '\\u21C4',\n\trightarrowtail: '\\u21A3',\n\tRightCeiling: '\\u2309',\n\tRightDoubleBracket: '\\u27E7',\n\tRightDownTeeVector: '\\u295D',\n\tRightDownVector: '\\u21C2',\n\tRightDownVectorBar: '\\u2955',\n\tRightFloor: '\\u230B',\n\trightharpoondown: '\\u21C1',\n\trightharpoonup: '\\u21C0',\n\trightleftarrows: '\\u21C4',\n\trightleftharpoons: '\\u21CC',\n\trightrightarrows: '\\u21C9',\n\trightsquigarrow: '\\u219D',\n\tRightTee: '\\u22A2',\n\tRightTeeArrow: '\\u21A6',\n\tRightTeeVector: '\\u295B',\n\trightthreetimes: '\\u22CC',\n\tRightTriangle: '\\u22B3',\n\tRightTriangleBar: '\\u29D0',\n\tRightTriangleEqual: '\\u22B5',\n\tRightUpDownVector: '\\u294F',\n\tRightUpTeeVector: '\\u295C',\n\tRightUpVector: '\\u21BE',\n\tRightUpVectorBar: '\\u2954',\n\tRightVector: '\\u21C0',\n\tRightVectorBar: '\\u2953',\n\tring: '\\u02DA',\n\trisingdotseq: '\\u2253',\n\trlarr: '\\u21C4',\n\trlhar: '\\u21CC',\n\trlm: '\\u200F',\n\trmoust: '\\u23B1',\n\trmoustache: '\\u23B1',\n\trnmid: '\\u2AEE',\n\troang: '\\u27ED',\n\troarr: '\\u21FE',\n\trobrk: '\\u27E7',\n\tropar: '\\u2986',\n\tRopf: '\\u211D',\n\tropf: '\\uD835\\uDD63',\n\troplus: '\\u2A2E',\n\trotimes: '\\u2A35',\n\tRoundImplies: '\\u2970',\n\trpar: '\\u0029',\n\trpargt: '\\u2994',\n\trppolint: '\\u2A12',\n\trrarr: '\\u21C9',\n\tRrightarrow: '\\u21DB',\n\trsaquo: '\\u203A',\n\tRscr: '\\u211B',\n\trscr: '\\uD835\\uDCC7',\n\tRsh: '\\u21B1',\n\trsh: '\\u21B1',\n\trsqb: '\\u005D',\n\trsquo: '\\u2019',\n\trsquor: '\\u2019',\n\trthree: '\\u22CC',\n\trtimes: '\\u22CA',\n\trtri: '\\u25B9',\n\trtrie: '\\u22B5',\n\trtrif: '\\u25B8',\n\trtriltri: '\\u29CE',\n\tRuleDelayed: '\\u29F4',\n\truluhar: '\\u2968',\n\trx: '\\u211E',\n\tSacute: '\\u015A',\n\tsacute: '\\u015B',\n\tsbquo: '\\u201A',\n\tSc: '\\u2ABC',\n\tsc: '\\u227B',\n\tscap: '\\u2AB8',\n\tScaron: '\\u0160',\n\tscaron: '\\u0161',\n\tsccue: '\\u227D',\n\tscE: '\\u2AB4',\n\tsce: '\\u2AB0',\n\tScedil: '\\u015E',\n\tscedil: '\\u015F',\n\tScirc: '\\u015C',\n\tscirc: '\\u015D',\n\tscnap: '\\u2ABA',\n\tscnE: '\\u2AB6',\n\tscnsim: '\\u22E9',\n\tscpolint: '\\u2A13',\n\tscsim: '\\u227F',\n\tScy: '\\u0421',\n\tscy: '\\u0441',\n\tsdot: '\\u22C5',\n\tsdotb: '\\u22A1',\n\tsdote: '\\u2A66',\n\tsearhk: '\\u2925',\n\tseArr: '\\u21D8',\n\tsearr: '\\u2198',\n\tsearrow: '\\u2198',\n\tsect: '\\u00A7',\n\tsemi: '\\u003B',\n\tseswar: '\\u2929',\n\tsetminus: '\\u2216',\n\tsetmn: '\\u2216',\n\tsext: '\\u2736',\n\tSfr: '\\uD835\\uDD16',\n\tsfr: '\\uD835\\uDD30',\n\tsfrown: '\\u2322',\n\tsharp: '\\u266F',\n\tSHCHcy: '\\u0429',\n\tshchcy: '\\u0449',\n\tSHcy: '\\u0428',\n\tshcy: '\\u0448',\n\tShortDownArrow: '\\u2193',\n\tShortLeftArrow: '\\u2190',\n\tshortmid: '\\u2223',\n\tshortparallel: '\\u2225',\n\tShortRightArrow: '\\u2192',\n\tShortUpArrow: '\\u2191',\n\tshy: '\\u00AD',\n\tSigma: '\\u03A3',\n\tsigma: '\\u03C3',\n\tsigmaf: '\\u03C2',\n\tsigmav: '\\u03C2',\n\tsim: '\\u223C',\n\tsimdot: '\\u2A6A',\n\tsime: '\\u2243',\n\tsimeq: '\\u2243',\n\tsimg: '\\u2A9E',\n\tsimgE: '\\u2AA0',\n\tsiml: '\\u2A9D',\n\tsimlE: '\\u2A9F',\n\tsimne: '\\u2246',\n\tsimplus: '\\u2A24',\n\tsimrarr: '\\u2972',\n\tslarr: '\\u2190',\n\tSmallCircle: '\\u2218',\n\tsmallsetminus: '\\u2216',\n\tsmashp: '\\u2A33',\n\tsmeparsl: '\\u29E4',\n\tsmid: '\\u2223',\n\tsmile: '\\u2323',\n\tsmt: '\\u2AAA',\n\tsmte: '\\u2AAC',\n\tsmtes: '\\u2AAC\\uFE00',\n\tSOFTcy: '\\u042C',\n\tsoftcy: '\\u044C',\n\tsol: '\\u002F',\n\tsolb: '\\u29C4',\n\tsolbar: '\\u233F',\n\tSopf: '\\uD835\\uDD4A',\n\tsopf: '\\uD835\\uDD64',\n\tspades: '\\u2660',\n\tspadesuit: '\\u2660',\n\tspar: '\\u2225',\n\tsqcap: '\\u2293',\n\tsqcaps: '\\u2293\\uFE00',\n\tsqcup: '\\u2294',\n\tsqcups: '\\u2294\\uFE00',\n\tSqrt: '\\u221A',\n\tsqsub: '\\u228F',\n\tsqsube: '\\u2291',\n\tsqsubset: '\\u228F',\n\tsqsubseteq: '\\u2291',\n\tsqsup: '\\u2290',\n\tsqsupe: '\\u2292',\n\tsqsupset: '\\u2290',\n\tsqsupseteq: '\\u2292',\n\tsqu: '\\u25A1',\n\tSquare: '\\u25A1',\n\tsquare: '\\u25A1',\n\tSquareIntersection: '\\u2293',\n\tSquareSubset: '\\u228F',\n\tSquareSubsetEqual: '\\u2291',\n\tSquareSuperset: '\\u2290',\n\tSquareSupersetEqual: '\\u2292',\n\tSquareUnion: '\\u2294',\n\tsquarf: '\\u25AA',\n\tsquf: '\\u25AA',\n\tsrarr: '\\u2192',\n\tSscr: '\\uD835\\uDCAE',\n\tsscr: '\\uD835\\uDCC8',\n\tssetmn: '\\u2216',\n\tssmile: '\\u2323',\n\tsstarf: '\\u22C6',\n\tStar: '\\u22C6',\n\tstar: '\\u2606',\n\tstarf: '\\u2605',\n\tstraightepsilon: '\\u03F5',\n\tstraightphi: '\\u03D5',\n\tstrns: '\\u00AF',\n\tSub: '\\u22D0',\n\tsub: '\\u2282',\n\tsubdot: '\\u2ABD',\n\tsubE: '\\u2AC5',\n\tsube: '\\u2286',\n\tsubedot: '\\u2AC3',\n\tsubmult: '\\u2AC1',\n\tsubnE: '\\u2ACB',\n\tsubne: '\\u228A',\n\tsubplus: '\\u2ABF',\n\tsubrarr: '\\u2979',\n\tSubset: '\\u22D0',\n\tsubset: '\\u2282',\n\tsubseteq: '\\u2286',\n\tsubseteqq: '\\u2AC5',\n\tSubsetEqual: '\\u2286',\n\tsubsetneq: '\\u228A',\n\tsubsetneqq: '\\u2ACB',\n\tsubsim: '\\u2AC7',\n\tsubsub: '\\u2AD5',\n\tsubsup: '\\u2AD3',\n\tsucc: '\\u227B',\n\tsuccapprox: '\\u2AB8',\n\tsucccurlyeq: '\\u227D',\n\tSucceeds: '\\u227B',\n\tSucceedsEqual: '\\u2AB0',\n\tSucceedsSlantEqual: '\\u227D',\n\tSucceedsTilde: '\\u227F',\n\tsucceq: '\\u2AB0',\n\tsuccnapprox: '\\u2ABA',\n\tsuccneqq: '\\u2AB6',\n\tsuccnsim: '\\u22E9',\n\tsuccsim: '\\u227F',\n\tSuchThat: '\\u220B',\n\tSum: '\\u2211',\n\tsum: '\\u2211',\n\tsung: '\\u266A',\n\tSup: '\\u22D1',\n\tsup: '\\u2283',\n\tsup1: '\\u00B9',\n\tsup2: '\\u00B2',\n\tsup3: '\\u00B3',\n\tsupdot: '\\u2ABE',\n\tsupdsub: '\\u2AD8',\n\tsupE: '\\u2AC6',\n\tsupe: '\\u2287',\n\tsupedot: '\\u2AC4',\n\tSuperset: '\\u2283',\n\tSupersetEqual: '\\u2287',\n\tsuphsol: '\\u27C9',\n\tsuphsub: '\\u2AD7',\n\tsuplarr: '\\u297B',\n\tsupmult: '\\u2AC2',\n\tsupnE: '\\u2ACC',\n\tsupne: '\\u228B',\n\tsupplus: '\\u2AC0',\n\tSupset: '\\u22D1',\n\tsupset: '\\u2283',\n\tsupseteq: '\\u2287',\n\tsupseteqq: '\\u2AC6',\n\tsupsetneq: '\\u228B',\n\tsupsetneqq: '\\u2ACC',\n\tsupsim: '\\u2AC8',\n\tsupsub: '\\u2AD4',\n\tsupsup: '\\u2AD6',\n\tswarhk: '\\u2926',\n\tswArr: '\\u21D9',\n\tswarr: '\\u2199',\n\tswarrow: '\\u2199',\n\tswnwar: '\\u292A',\n\tszlig: '\\u00DF',\n\tTab: '\\u0009',\n\ttarget: '\\u2316',\n\tTau: '\\u03A4',\n\ttau: '\\u03C4',\n\ttbrk: '\\u23B4',\n\tTcaron: '\\u0164',\n\ttcaron: '\\u0165',\n\tTcedil: '\\u0162',\n\ttcedil: '\\u0163',\n\tTcy: '\\u0422',\n\ttcy: '\\u0442',\n\ttdot: '\\u20DB',\n\ttelrec: '\\u2315',\n\tTfr: '\\uD835\\uDD17',\n\ttfr: '\\uD835\\uDD31',\n\tthere4: '\\u2234',\n\tTherefore: '\\u2234',\n\ttherefore: '\\u2234',\n\tTheta: '\\u0398',\n\ttheta: '\\u03B8',\n\tthetasym: '\\u03D1',\n\tthetav: '\\u03D1',\n\tthickapprox: '\\u2248',\n\tthicksim: '\\u223C',\n\tThickSpace: '\\u205F\\u200A',\n\tthinsp: '\\u2009',\n\tThinSpace: '\\u2009',\n\tthkap: '\\u2248',\n\tthksim: '\\u223C',\n\tTHORN: '\\u00DE',\n\tthorn: '\\u00FE',\n\tTilde: '\\u223C',\n\ttilde: '\\u02DC',\n\tTildeEqual: '\\u2243',\n\tTildeFullEqual: '\\u2245',\n\tTildeTilde: '\\u2248',\n\ttimes: '\\u00D7',\n\ttimesb: '\\u22A0',\n\ttimesbar: '\\u2A31',\n\ttimesd: '\\u2A30',\n\ttint: '\\u222D',\n\ttoea: '\\u2928',\n\ttop: '\\u22A4',\n\ttopbot: '\\u2336',\n\ttopcir: '\\u2AF1',\n\tTopf: '\\uD835\\uDD4B',\n\ttopf: '\\uD835\\uDD65',\n\ttopfork: '\\u2ADA',\n\ttosa: '\\u2929',\n\ttprime: '\\u2034',\n\tTRADE: '\\u2122',\n\ttrade: '\\u2122',\n\ttriangle: '\\u25B5',\n\ttriangledown: '\\u25BF',\n\ttriangleleft: '\\u25C3',\n\ttrianglelefteq: '\\u22B4',\n\ttriangleq: '\\u225C',\n\ttriangleright: '\\u25B9',\n\ttrianglerighteq: '\\u22B5',\n\ttridot: '\\u25EC',\n\ttrie: '\\u225C',\n\ttriminus: '\\u2A3A',\n\tTripleDot: '\\u20DB',\n\ttriplus: '\\u2A39',\n\ttrisb: '\\u29CD',\n\ttritime: '\\u2A3B',\n\ttrpezium: '\\u23E2',\n\tTscr: '\\uD835\\uDCAF',\n\ttscr: '\\uD835\\uDCC9',\n\tTScy: '\\u0426',\n\ttscy: '\\u0446',\n\tTSHcy: '\\u040B',\n\ttshcy: '\\u045B',\n\tTstrok: '\\u0166',\n\ttstrok: '\\u0167',\n\ttwixt: '\\u226C',\n\ttwoheadleftarrow: '\\u219E',\n\ttwoheadrightarrow: '\\u21A0',\n\tUacute: '\\u00DA',\n\tuacute: '\\u00FA',\n\tUarr: '\\u219F',\n\tuArr: '\\u21D1',\n\tuarr: '\\u2191',\n\tUarrocir: '\\u2949',\n\tUbrcy: '\\u040E',\n\tubrcy: '\\u045E',\n\tUbreve: '\\u016C',\n\tubreve: '\\u016D',\n\tUcirc: '\\u00DB',\n\tucirc: '\\u00FB',\n\tUcy: '\\u0423',\n\tucy: '\\u0443',\n\tudarr: '\\u21C5',\n\tUdblac: '\\u0170',\n\tudblac: '\\u0171',\n\tudhar: '\\u296E',\n\tufisht: '\\u297E',\n\tUfr: '\\uD835\\uDD18',\n\tufr: '\\uD835\\uDD32',\n\tUgrave: '\\u00D9',\n\tugrave: '\\u00F9',\n\tuHar: '\\u2963',\n\tuharl: '\\u21BF',\n\tuharr: '\\u21BE',\n\tuhblk: '\\u2580',\n\tulcorn: '\\u231C',\n\tulcorner: '\\u231C',\n\tulcrop: '\\u230F',\n\tultri: '\\u25F8',\n\tUmacr: '\\u016A',\n\tumacr: '\\u016B',\n\tuml: '\\u00A8',\n\tUnderBar: '\\u005F',\n\tUnderBrace: '\\u23DF',\n\tUnderBracket: '\\u23B5',\n\tUnderParenthesis: '\\u23DD',\n\tUnion: '\\u22C3',\n\tUnionPlus: '\\u228E',\n\tUogon: '\\u0172',\n\tuogon: '\\u0173',\n\tUopf: '\\uD835\\uDD4C',\n\tuopf: '\\uD835\\uDD66',\n\tUpArrow: '\\u2191',\n\tUparrow: '\\u21D1',\n\tuparrow: '\\u2191',\n\tUpArrowBar: '\\u2912',\n\tUpArrowDownArrow: '\\u21C5',\n\tUpDownArrow: '\\u2195',\n\tUpdownarrow: '\\u21D5',\n\tupdownarrow: '\\u2195',\n\tUpEquilibrium: '\\u296E',\n\tupharpoonleft: '\\u21BF',\n\tupharpoonright: '\\u21BE',\n\tuplus: '\\u228E',\n\tUpperLeftArrow: '\\u2196',\n\tUpperRightArrow: '\\u2197',\n\tUpsi: '\\u03D2',\n\tupsi: '\\u03C5',\n\tupsih: '\\u03D2',\n\tUpsilon: '\\u03A5',\n\tupsilon: '\\u03C5',\n\tUpTee: '\\u22A5',\n\tUpTeeArrow: '\\u21A5',\n\tupuparrows: '\\u21C8',\n\turcorn: '\\u231D',\n\turcorner: '\\u231D',\n\turcrop: '\\u230E',\n\tUring: '\\u016E',\n\turing: '\\u016F',\n\turtri: '\\u25F9',\n\tUscr: '\\uD835\\uDCB0',\n\tuscr: '\\uD835\\uDCCA',\n\tutdot: '\\u22F0',\n\tUtilde: '\\u0168',\n\tutilde: '\\u0169',\n\tutri: '\\u25B5',\n\tutrif: '\\u25B4',\n\tuuarr: '\\u21C8',\n\tUuml: '\\u00DC',\n\tuuml: '\\u00FC',\n\tuwangle: '\\u29A7',\n\tvangrt: '\\u299C',\n\tvarepsilon: '\\u03F5',\n\tvarkappa: '\\u03F0',\n\tvarnothing: '\\u2205',\n\tvarphi: '\\u03D5',\n\tvarpi: '\\u03D6',\n\tvarpropto: '\\u221D',\n\tvArr: '\\u21D5',\n\tvarr: '\\u2195',\n\tvarrho: '\\u03F1',\n\tvarsigma: '\\u03C2',\n\tvarsubsetneq: '\\u228A\\uFE00',\n\tvarsubsetneqq: '\\u2ACB\\uFE00',\n\tvarsupsetneq: '\\u228B\\uFE00',\n\tvarsupsetneqq: '\\u2ACC\\uFE00',\n\tvartheta: '\\u03D1',\n\tvartriangleleft: '\\u22B2',\n\tvartriangleright: '\\u22B3',\n\tVbar: '\\u2AEB',\n\tvBar: '\\u2AE8',\n\tvBarv: '\\u2AE9',\n\tVcy: '\\u0412',\n\tvcy: '\\u0432',\n\tVDash: '\\u22AB',\n\tVdash: '\\u22A9',\n\tvDash: '\\u22A8',\n\tvdash: '\\u22A2',\n\tVdashl: '\\u2AE6',\n\tVee: '\\u22C1',\n\tvee: '\\u2228',\n\tveebar: '\\u22BB',\n\tveeeq: '\\u225A',\n\tvellip: '\\u22EE',\n\tVerbar: '\\u2016',\n\tverbar: '\\u007C',\n\tVert: '\\u2016',\n\tvert: '\\u007C',\n\tVerticalBar: '\\u2223',\n\tVerticalLine: '\\u007C',\n\tVerticalSeparator: '\\u2758',\n\tVerticalTilde: '\\u2240',\n\tVeryThinSpace: '\\u200A',\n\tVfr: '\\uD835\\uDD19',\n\tvfr: '\\uD835\\uDD33',\n\tvltri: '\\u22B2',\n\tvnsub: '\\u2282\\u20D2',\n\tvnsup: '\\u2283\\u20D2',\n\tVopf: '\\uD835\\uDD4D',\n\tvopf: '\\uD835\\uDD67',\n\tvprop: '\\u221D',\n\tvrtri: '\\u22B3',\n\tVscr: '\\uD835\\uDCB1',\n\tvscr: '\\uD835\\uDCCB',\n\tvsubnE: '\\u2ACB\\uFE00',\n\tvsubne: '\\u228A\\uFE00',\n\tvsupnE: '\\u2ACC\\uFE00',\n\tvsupne: '\\u228B\\uFE00',\n\tVvdash: '\\u22AA',\n\tvzigzag: '\\u299A',\n\tWcirc: '\\u0174',\n\twcirc: '\\u0175',\n\twedbar: '\\u2A5F',\n\tWedge: '\\u22C0',\n\twedge: '\\u2227',\n\twedgeq: '\\u2259',\n\tweierp: '\\u2118',\n\tWfr: '\\uD835\\uDD1A',\n\twfr: '\\uD835\\uDD34',\n\tWopf: '\\uD835\\uDD4E',\n\twopf: '\\uD835\\uDD68',\n\twp: '\\u2118',\n\twr: '\\u2240',\n\twreath: '\\u2240',\n\tWscr: '\\uD835\\uDCB2',\n\twscr: '\\uD835\\uDCCC',\n\txcap: '\\u22C2',\n\txcirc: '\\u25EF',\n\txcup: '\\u22C3',\n\txdtri: '\\u25BD',\n\tXfr: '\\uD835\\uDD1B',\n\txfr: '\\uD835\\uDD35',\n\txhArr: '\\u27FA',\n\txharr: '\\u27F7',\n\tXi: '\\u039E',\n\txi: '\\u03BE',\n\txlArr: '\\u27F8',\n\txlarr: '\\u27F5',\n\txmap: '\\u27FC',\n\txnis: '\\u22FB',\n\txodot: '\\u2A00',\n\tXopf: '\\uD835\\uDD4F',\n\txopf: '\\uD835\\uDD69',\n\txoplus: '\\u2A01',\n\txotime: '\\u2A02',\n\txrArr: '\\u27F9',\n\txrarr: '\\u27F6',\n\tXscr: '\\uD835\\uDCB3',\n\txscr: '\\uD835\\uDCCD',\n\txsqcup: '\\u2A06',\n\txuplus: '\\u2A04',\n\txutri: '\\u25B3',\n\txvee: '\\u22C1',\n\txwedge: '\\u22C0',\n\tYacute: '\\u00DD',\n\tyacute: '\\u00FD',\n\tYAcy: '\\u042F',\n\tyacy: '\\u044F',\n\tYcirc: '\\u0176',\n\tycirc: '\\u0177',\n\tYcy: '\\u042B',\n\tycy: '\\u044B',\n\tyen: '\\u00A5',\n\tYfr: '\\uD835\\uDD1C',\n\tyfr: '\\uD835\\uDD36',\n\tYIcy: '\\u0407',\n\tyicy: '\\u0457',\n\tYopf: '\\uD835\\uDD50',\n\tyopf: '\\uD835\\uDD6A',\n\tYscr: '\\uD835\\uDCB4',\n\tyscr: '\\uD835\\uDCCE',\n\tYUcy: '\\u042E',\n\tyucy: '\\u044E',\n\tYuml: '\\u0178',\n\tyuml: '\\u00FF',\n\tZacute: '\\u0179',\n\tzacute: '\\u017A',\n\tZcaron: '\\u017D',\n\tzcaron: '\\u017E',\n\tZcy: '\\u0417',\n\tzcy: '\\u0437',\n\tZdot: '\\u017B',\n\tzdot: '\\u017C',\n\tzeetrf: '\\u2128',\n\tZeroWidthSpace: '\\u200B',\n\tZeta: '\\u0396',\n\tzeta: '\\u03B6',\n\tZfr: '\\u2128',\n\tzfr: '\\uD835\\uDD37',\n\tZHcy: '\\u0416',\n\tzhcy: '\\u0436',\n\tzigrarr: '\\u21DD',\n\tZopf: '\\u2124',\n\tzopf: '\\uD835\\uDD6B',\n\tZscr: '\\uD835\\uDCB5',\n\tzscr: '\\uD835\\uDCCF',\n\tzwj: '\\u200D',\n\tzwnj: '\\u200C',\n});\n\n/**\n * @deprecated use `HTML_ENTITIES` instead\n * @see HTML_ENTITIES\n */\nexports.entityMap = exports.HTML_ENTITIES;\n","import { DOMParser } from '@xmldom/xmldom';\nexport default {\n createDocument: function createDocument(content) {\n return new DOMParser().parseFromString(content);\n }\n};\n//# sourceMappingURL=xml.js.map","// DEFLATE is a complex format; to read this code, you should probably check the RFC first:\n// https://tools.ietf.org/html/rfc1951\n// You may also wish to take a look at the guide I made about this program:\n// https://gist.github.com/101arrowz/253f31eb5abc3d9275ab943003ffecad\n// Some of the following code is similar to that of UZIP.js:\n// https://github.com/photopea/UZIP.js\n// However, the vast majority of the codebase has diverged from UZIP.js to increase performance and reduce bundle size.\n// Sometimes 0 will appear where -1 would be more appropriate. This is because using a uint\n// is better for memory in most engines (I *think*).\nvar ch2 = {};\nvar wk = (function (c, id, msg, transfer, cb) {\n var w = new Worker(ch2[id] || (ch2[id] = URL.createObjectURL(new Blob([\n c + ';addEventListener(\"error\",function(e){e=e.error;postMessage({$e$:[e.message,e.code,e.stack]})})'\n ], { type: 'text/javascript' }))));\n w.onmessage = function (e) {\n var d = e.data, ed = d.$e$;\n if (ed) {\n var err = new Error(ed[0]);\n err['code'] = ed[1];\n err.stack = ed[2];\n cb(err, null);\n }\n else\n cb(null, d);\n };\n w.postMessage(msg, transfer);\n return w;\n});\n\n// aliases for shorter compressed code (most minifers don't do this)\nvar u8 = Uint8Array, u16 = Uint16Array, u32 = Uint32Array;\n// fixed length extra bits\nvar fleb = new u8([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, /* unused */ 0, 0, /* impossible */ 0]);\n// fixed distance extra bits\n// see fleb note\nvar fdeb = new u8([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, /* unused */ 0, 0]);\n// code length index map\nvar clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);\n// get base, reverse index map from extra bits\nvar freb = function (eb, start) {\n var b = new u16(31);\n for (var i = 0; i < 31; ++i) {\n b[i] = start += 1 << eb[i - 1];\n }\n // numbers here are at max 18 bits\n var r = new u32(b[30]);\n for (var i = 1; i < 30; ++i) {\n for (var j = b[i]; j < b[i + 1]; ++j) {\n r[j] = ((j - b[i]) << 5) | i;\n }\n }\n return [b, r];\n};\nvar _a = freb(fleb, 2), fl = _a[0], revfl = _a[1];\n// we can ignore the fact that the other numbers are wrong; they never happen anyway\nfl[28] = 258, revfl[258] = 28;\nvar _b = freb(fdeb, 0), fd = _b[0], revfd = _b[1];\n// map of value to reverse (assuming 16 bits)\nvar rev = new u16(32768);\nfor (var i = 0; i < 32768; ++i) {\n // reverse table algorithm from SO\n var x = ((i & 0xAAAA) >>> 1) | ((i & 0x5555) << 1);\n x = ((x & 0xCCCC) >>> 2) | ((x & 0x3333) << 2);\n x = ((x & 0xF0F0) >>> 4) | ((x & 0x0F0F) << 4);\n rev[i] = (((x & 0xFF00) >>> 8) | ((x & 0x00FF) << 8)) >>> 1;\n}\n// create huffman tree from u8 \"map\": index -> code length for code index\n// mb (max bits) must be at most 15\n// TODO: optimize/split up?\nvar hMap = (function (cd, mb, r) {\n var s = cd.length;\n // index\n var i = 0;\n // u16 \"map\": index -> # of codes with bit length = index\n var l = new u16(mb);\n // length of cd must be 288 (total # of codes)\n for (; i < s; ++i) {\n if (cd[i])\n ++l[cd[i] - 1];\n }\n // u16 \"map\": index -> minimum code for bit length = index\n var le = new u16(mb);\n for (i = 0; i < mb; ++i) {\n le[i] = (le[i - 1] + l[i - 1]) << 1;\n }\n var co;\n if (r) {\n // u16 \"map\": index -> number of actual bits, symbol for code\n co = new u16(1 << mb);\n // bits to remove for reverser\n var rvb = 15 - mb;\n for (i = 0; i < s; ++i) {\n // ignore 0 lengths\n if (cd[i]) {\n // num encoding both symbol and bits read\n var sv = (i << 4) | cd[i];\n // free bits\n var r_1 = mb - cd[i];\n // start value\n var v = le[cd[i] - 1]++ << r_1;\n // m is end value\n for (var m = v | ((1 << r_1) - 1); v <= m; ++v) {\n // every 16 bit value starting with the code yields the same result\n co[rev[v] >>> rvb] = sv;\n }\n }\n }\n }\n else {\n co = new u16(s);\n for (i = 0; i < s; ++i) {\n if (cd[i]) {\n co[i] = rev[le[cd[i] - 1]++] >>> (15 - cd[i]);\n }\n }\n }\n return co;\n});\n// fixed length tree\nvar flt = new u8(288);\nfor (var i = 0; i < 144; ++i)\n flt[i] = 8;\nfor (var i = 144; i < 256; ++i)\n flt[i] = 9;\nfor (var i = 256; i < 280; ++i)\n flt[i] = 7;\nfor (var i = 280; i < 288; ++i)\n flt[i] = 8;\n// fixed distance tree\nvar fdt = new u8(32);\nfor (var i = 0; i < 32; ++i)\n fdt[i] = 5;\n// fixed length map\nvar flm = /*#__PURE__*/ hMap(flt, 9, 0), flrm = /*#__PURE__*/ hMap(flt, 9, 1);\n// fixed distance map\nvar fdm = /*#__PURE__*/ hMap(fdt, 5, 0), fdrm = /*#__PURE__*/ hMap(fdt, 5, 1);\n// find max of array\nvar max = function (a) {\n var m = a[0];\n for (var i = 1; i < a.length; ++i) {\n if (a[i] > m)\n m = a[i];\n }\n return m;\n};\n// read d, starting at bit p and mask with m\nvar bits = function (d, p, m) {\n var o = (p / 8) | 0;\n return ((d[o] | (d[o + 1] << 8)) >> (p & 7)) & m;\n};\n// read d, starting at bit p continuing for at least 16 bits\nvar bits16 = function (d, p) {\n var o = (p / 8) | 0;\n return ((d[o] | (d[o + 1] << 8) | (d[o + 2] << 16)) >> (p & 7));\n};\n// get end of byte\nvar shft = function (p) { return ((p + 7) / 8) | 0; };\n// typed array slice - allows garbage collector to free original reference,\n// while being more compatible than .slice\nvar slc = function (v, s, e) {\n if (s == null || s < 0)\n s = 0;\n if (e == null || e > v.length)\n e = v.length;\n // can't use .constructor in case user-supplied\n var n = new (v.BYTES_PER_ELEMENT == 2 ? u16 : v.BYTES_PER_ELEMENT == 4 ? u32 : u8)(e - s);\n n.set(v.subarray(s, e));\n return n;\n};\n/**\n * Codes for errors generated within this library\n */\nexport var FlateErrorCode = {\n UnexpectedEOF: 0,\n InvalidBlockType: 1,\n InvalidLengthLiteral: 2,\n InvalidDistance: 3,\n StreamFinished: 4,\n NoStreamHandler: 5,\n InvalidHeader: 6,\n NoCallback: 7,\n InvalidUTF8: 8,\n ExtraFieldTooLong: 9,\n InvalidDate: 10,\n FilenameTooLong: 11,\n StreamFinishing: 12,\n InvalidZipData: 13,\n UnknownCompressionMethod: 14\n};\n// error codes\nvar ec = [\n 'unexpected EOF',\n 'invalid block type',\n 'invalid length/literal',\n 'invalid distance',\n 'stream finished',\n 'no stream handler',\n ,\n 'no callback',\n 'invalid UTF-8 data',\n 'extra field too long',\n 'date not in range 1980-2099',\n 'filename too long',\n 'stream finishing',\n 'invalid zip data'\n // determined by unknown compression method\n];\n;\nvar err = function (ind, msg, nt) {\n var e = new Error(msg || ec[ind]);\n e.code = ind;\n if (Error.captureStackTrace)\n Error.captureStackTrace(e, err);\n if (!nt)\n throw e;\n return e;\n};\n// expands raw DEFLATE data\nvar inflt = function (dat, buf, st) {\n // source length\n var sl = dat.length;\n if (!sl || (st && st.f && !st.l))\n return buf || new u8(0);\n // have to estimate size\n var noBuf = !buf || st;\n // no state\n var noSt = !st || st.i;\n if (!st)\n st = {};\n // Assumes roughly 33% compression ratio average\n if (!buf)\n buf = new u8(sl * 3);\n // ensure buffer can fit at least l elements\n var cbuf = function (l) {\n var bl = buf.length;\n // need to increase size to fit\n if (l > bl) {\n // Double or set to necessary, whichever is greater\n var nbuf = new u8(Math.max(bl * 2, l));\n nbuf.set(buf);\n buf = nbuf;\n }\n };\n // last chunk bitpos bytes\n var final = st.f || 0, pos = st.p || 0, bt = st.b || 0, lm = st.l, dm = st.d, lbt = st.m, dbt = st.n;\n // total bits\n var tbts = sl * 8;\n do {\n if (!lm) {\n // BFINAL - this is only 1 when last chunk is next\n final = bits(dat, pos, 1);\n // type: 0 = no compression, 1 = fixed huffman, 2 = dynamic huffman\n var type = bits(dat, pos + 1, 3);\n pos += 3;\n if (!type) {\n // go to end of byte boundary\n var s = shft(pos) + 4, l = dat[s - 4] | (dat[s - 3] << 8), t = s + l;\n if (t > sl) {\n if (noSt)\n err(0);\n break;\n }\n // ensure size\n if (noBuf)\n cbuf(bt + l);\n // Copy over uncompressed data\n buf.set(dat.subarray(s, t), bt);\n // Get new bitpos, update byte count\n st.b = bt += l, st.p = pos = t * 8, st.f = final;\n continue;\n }\n else if (type == 1)\n lm = flrm, dm = fdrm, lbt = 9, dbt = 5;\n else if (type == 2) {\n // literal lengths\n var hLit = bits(dat, pos, 31) + 257, hcLen = bits(dat, pos + 10, 15) + 4;\n var tl = hLit + bits(dat, pos + 5, 31) + 1;\n pos += 14;\n // length+distance tree\n var ldt = new u8(tl);\n // code length tree\n var clt = new u8(19);\n for (var i = 0; i < hcLen; ++i) {\n // use index map to get real code\n clt[clim[i]] = bits(dat, pos + i * 3, 7);\n }\n pos += hcLen * 3;\n // code lengths bits\n var clb = max(clt), clbmsk = (1 << clb) - 1;\n // code lengths map\n var clm = hMap(clt, clb, 1);\n for (var i = 0; i < tl;) {\n var r = clm[bits(dat, pos, clbmsk)];\n // bits read\n pos += r & 15;\n // symbol\n var s = r >>> 4;\n // code length to copy\n if (s < 16) {\n ldt[i++] = s;\n }\n else {\n // copy count\n var c = 0, n = 0;\n if (s == 16)\n n = 3 + bits(dat, pos, 3), pos += 2, c = ldt[i - 1];\n else if (s == 17)\n n = 3 + bits(dat, pos, 7), pos += 3;\n else if (s == 18)\n n = 11 + bits(dat, pos, 127), pos += 7;\n while (n--)\n ldt[i++] = c;\n }\n }\n // length tree distance tree\n var lt = ldt.subarray(0, hLit), dt = ldt.subarray(hLit);\n // max length bits\n lbt = max(lt);\n // max dist bits\n dbt = max(dt);\n lm = hMap(lt, lbt, 1);\n dm = hMap(dt, dbt, 1);\n }\n else\n err(1);\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n }\n // Make sure the buffer can hold this + the largest possible addition\n // Maximum chunk size (practically, theoretically infinite) is 2^17;\n if (noBuf)\n cbuf(bt + 131072);\n var lms = (1 << lbt) - 1, dms = (1 << dbt) - 1;\n var lpos = pos;\n for (;; lpos = pos) {\n // bits read, code\n var c = lm[bits16(dat, pos) & lms], sym = c >>> 4;\n pos += c & 15;\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n if (!c)\n err(2);\n if (sym < 256)\n buf[bt++] = sym;\n else if (sym == 256) {\n lpos = pos, lm = null;\n break;\n }\n else {\n var add = sym - 254;\n // no extra bits needed if less\n if (sym > 264) {\n // index\n var i = sym - 257, b = fleb[i];\n add = bits(dat, pos, (1 << b) - 1) + fl[i];\n pos += b;\n }\n // dist\n var d = dm[bits16(dat, pos) & dms], dsym = d >>> 4;\n if (!d)\n err(3);\n pos += d & 15;\n var dt = fd[dsym];\n if (dsym > 3) {\n var b = fdeb[dsym];\n dt += bits16(dat, pos) & ((1 << b) - 1), pos += b;\n }\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n if (noBuf)\n cbuf(bt + 131072);\n var end = bt + add;\n for (; bt < end; bt += 4) {\n buf[bt] = buf[bt - dt];\n buf[bt + 1] = buf[bt + 1 - dt];\n buf[bt + 2] = buf[bt + 2 - dt];\n buf[bt + 3] = buf[bt + 3 - dt];\n }\n bt = end;\n }\n }\n st.l = lm, st.p = lpos, st.b = bt, st.f = final;\n if (lm)\n final = 1, st.m = lbt, st.d = dm, st.n = dbt;\n } while (!final);\n return bt == buf.length ? buf : slc(buf, 0, bt);\n};\n// starting at p, write the minimum number of bits that can hold v to d\nvar wbits = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) | 0;\n d[o] |= v;\n d[o + 1] |= v >>> 8;\n};\n// starting at p, write the minimum number of bits (>8) that can hold v to d\nvar wbits16 = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) | 0;\n d[o] |= v;\n d[o + 1] |= v >>> 8;\n d[o + 2] |= v >>> 16;\n};\n// creates code lengths from a frequency table\nvar hTree = function (d, mb) {\n // Need extra info to make a tree\n var t = [];\n for (var i = 0; i < d.length; ++i) {\n if (d[i])\n t.push({ s: i, f: d[i] });\n }\n var s = t.length;\n var t2 = t.slice();\n if (!s)\n return [et, 0];\n if (s == 1) {\n var v = new u8(t[0].s + 1);\n v[t[0].s] = 1;\n return [v, 1];\n }\n t.sort(function (a, b) { return a.f - b.f; });\n // after i2 reaches last ind, will be stopped\n // freq must be greater than largest possible number of symbols\n t.push({ s: -1, f: 25001 });\n var l = t[0], r = t[1], i0 = 0, i1 = 1, i2 = 2;\n t[0] = { s: -1, f: l.f + r.f, l: l, r: r };\n // efficient algorithm from UZIP.js\n // i0 is lookbehind, i2 is lookahead - after processing two low-freq\n // symbols that combined have high freq, will start processing i2 (high-freq,\n // non-composite) symbols instead\n // see https://reddit.com/r/photopea/comments/ikekht/uzipjs_questions/\n while (i1 != s - 1) {\n l = t[t[i0].f < t[i2].f ? i0++ : i2++];\n r = t[i0 != i1 && t[i0].f < t[i2].f ? i0++ : i2++];\n t[i1++] = { s: -1, f: l.f + r.f, l: l, r: r };\n }\n var maxSym = t2[0].s;\n for (var i = 1; i < s; ++i) {\n if (t2[i].s > maxSym)\n maxSym = t2[i].s;\n }\n // code lengths\n var tr = new u16(maxSym + 1);\n // max bits in tree\n var mbt = ln(t[i1 - 1], tr, 0);\n if (mbt > mb) {\n // more algorithms from UZIP.js\n // TODO: find out how this code works (debt)\n // ind debt\n var i = 0, dt = 0;\n // left cost\n var lft = mbt - mb, cst = 1 << lft;\n t2.sort(function (a, b) { return tr[b.s] - tr[a.s] || a.f - b.f; });\n for (; i < s; ++i) {\n var i2_1 = t2[i].s;\n if (tr[i2_1] > mb) {\n dt += cst - (1 << (mbt - tr[i2_1]));\n tr[i2_1] = mb;\n }\n else\n break;\n }\n dt >>>= lft;\n while (dt > 0) {\n var i2_2 = t2[i].s;\n if (tr[i2_2] < mb)\n dt -= 1 << (mb - tr[i2_2]++ - 1);\n else\n ++i;\n }\n for (; i >= 0 && dt; --i) {\n var i2_3 = t2[i].s;\n if (tr[i2_3] == mb) {\n --tr[i2_3];\n ++dt;\n }\n }\n mbt = mb;\n }\n return [new u8(tr), mbt];\n};\n// get the max length and assign length codes\nvar ln = function (n, l, d) {\n return n.s == -1\n ? Math.max(ln(n.l, l, d + 1), ln(n.r, l, d + 1))\n : (l[n.s] = d);\n};\n// length codes generation\nvar lc = function (c) {\n var s = c.length;\n // Note that the semicolon was intentional\n while (s && !c[--s])\n ;\n var cl = new u16(++s);\n // ind num streak\n var cli = 0, cln = c[0], cls = 1;\n var w = function (v) { cl[cli++] = v; };\n for (var i = 1; i <= s; ++i) {\n if (c[i] == cln && i != s)\n ++cls;\n else {\n if (!cln && cls > 2) {\n for (; cls > 138; cls -= 138)\n w(32754);\n if (cls > 2) {\n w(cls > 10 ? ((cls - 11) << 5) | 28690 : ((cls - 3) << 5) | 12305);\n cls = 0;\n }\n }\n else if (cls > 3) {\n w(cln), --cls;\n for (; cls > 6; cls -= 6)\n w(8304);\n if (cls > 2)\n w(((cls - 3) << 5) | 8208), cls = 0;\n }\n while (cls--)\n w(cln);\n cls = 1;\n cln = c[i];\n }\n }\n return [cl.subarray(0, cli), s];\n};\n// calculate the length of output from tree, code lengths\nvar clen = function (cf, cl) {\n var l = 0;\n for (var i = 0; i < cl.length; ++i)\n l += cf[i] * cl[i];\n return l;\n};\n// writes a fixed block\n// returns the new bit pos\nvar wfblk = function (out, pos, dat) {\n // no need to write 00 as type: TypedArray defaults to 0\n var s = dat.length;\n var o = shft(pos + 2);\n out[o] = s & 255;\n out[o + 1] = s >>> 8;\n out[o + 2] = out[o] ^ 255;\n out[o + 3] = out[o + 1] ^ 255;\n for (var i = 0; i < s; ++i)\n out[o + i + 4] = dat[i];\n return (o + 4 + s) * 8;\n};\n// writes a block\nvar wblk = function (dat, out, final, syms, lf, df, eb, li, bs, bl, p) {\n wbits(out, p++, final);\n ++lf[256];\n var _a = hTree(lf, 15), dlt = _a[0], mlb = _a[1];\n var _b = hTree(df, 15), ddt = _b[0], mdb = _b[1];\n var _c = lc(dlt), lclt = _c[0], nlc = _c[1];\n var _d = lc(ddt), lcdt = _d[0], ndc = _d[1];\n var lcfreq = new u16(19);\n for (var i = 0; i < lclt.length; ++i)\n lcfreq[lclt[i] & 31]++;\n for (var i = 0; i < lcdt.length; ++i)\n lcfreq[lcdt[i] & 31]++;\n var _e = hTree(lcfreq, 7), lct = _e[0], mlcb = _e[1];\n var nlcc = 19;\n for (; nlcc > 4 && !lct[clim[nlcc - 1]]; --nlcc)\n ;\n var flen = (bl + 5) << 3;\n var ftlen = clen(lf, flt) + clen(df, fdt) + eb;\n var dtlen = clen(lf, dlt) + clen(df, ddt) + eb + 14 + 3 * nlcc + clen(lcfreq, lct) + (2 * lcfreq[16] + 3 * lcfreq[17] + 7 * lcfreq[18]);\n if (flen <= ftlen && flen <= dtlen)\n return wfblk(out, p, dat.subarray(bs, bs + bl));\n var lm, ll, dm, dl;\n wbits(out, p, 1 + (dtlen < ftlen)), p += 2;\n if (dtlen < ftlen) {\n lm = hMap(dlt, mlb, 0), ll = dlt, dm = hMap(ddt, mdb, 0), dl = ddt;\n var llm = hMap(lct, mlcb, 0);\n wbits(out, p, nlc - 257);\n wbits(out, p + 5, ndc - 1);\n wbits(out, p + 10, nlcc - 4);\n p += 14;\n for (var i = 0; i < nlcc; ++i)\n wbits(out, p + 3 * i, lct[clim[i]]);\n p += 3 * nlcc;\n var lcts = [lclt, lcdt];\n for (var it = 0; it < 2; ++it) {\n var clct = lcts[it];\n for (var i = 0; i < clct.length; ++i) {\n var len = clct[i] & 31;\n wbits(out, p, llm[len]), p += lct[len];\n if (len > 15)\n wbits(out, p, (clct[i] >>> 5) & 127), p += clct[i] >>> 12;\n }\n }\n }\n else {\n lm = flm, ll = flt, dm = fdm, dl = fdt;\n }\n for (var i = 0; i < li; ++i) {\n if (syms[i] > 255) {\n var len = (syms[i] >>> 18) & 31;\n wbits16(out, p, lm[len + 257]), p += ll[len + 257];\n if (len > 7)\n wbits(out, p, (syms[i] >>> 23) & 31), p += fleb[len];\n var dst = syms[i] & 31;\n wbits16(out, p, dm[dst]), p += dl[dst];\n if (dst > 3)\n wbits16(out, p, (syms[i] >>> 5) & 8191), p += fdeb[dst];\n }\n else {\n wbits16(out, p, lm[syms[i]]), p += ll[syms[i]];\n }\n }\n wbits16(out, p, lm[256]);\n return p + ll[256];\n};\n// deflate options (nice << 13) | chain\nvar deo = /*#__PURE__*/ new u32([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]);\n// empty\nvar et = /*#__PURE__*/ new u8(0);\n// compresses data into a raw DEFLATE buffer\nvar dflt = function (dat, lvl, plvl, pre, post, lst) {\n var s = dat.length;\n var o = new u8(pre + s + 5 * (1 + Math.ceil(s / 7000)) + post);\n // writing to this writes to the output buffer\n var w = o.subarray(pre, o.length - post);\n var pos = 0;\n if (!lvl || s < 8) {\n for (var i = 0; i <= s; i += 65535) {\n // end\n var e = i + 65535;\n if (e >= s) {\n // write final block\n w[pos >> 3] = lst;\n }\n pos = wfblk(w, pos + 1, dat.subarray(i, e));\n }\n }\n else {\n var opt = deo[lvl - 1];\n var n = opt >>> 13, c = opt & 8191;\n var msk_1 = (1 << plvl) - 1;\n // prev 2-byte val map curr 2-byte val map\n var prev = new u16(32768), head = new u16(msk_1 + 1);\n var bs1_1 = Math.ceil(plvl / 3), bs2_1 = 2 * bs1_1;\n var hsh = function (i) { return (dat[i] ^ (dat[i + 1] << bs1_1) ^ (dat[i + 2] << bs2_1)) & msk_1; };\n // 24576 is an arbitrary number of maximum symbols per block\n // 424 buffer for last block\n var syms = new u32(25000);\n // length/literal freq distance freq\n var lf = new u16(288), df = new u16(32);\n // l/lcnt exbits index l/lind waitdx bitpos\n var lc_1 = 0, eb = 0, i = 0, li = 0, wi = 0, bs = 0;\n for (; i < s; ++i) {\n // hash value\n // deopt when i > s - 3 - at end, deopt acceptable\n var hv = hsh(i);\n // index mod 32768 previous index mod\n var imod = i & 32767, pimod = head[hv];\n prev[imod] = pimod;\n head[hv] = imod;\n // We always should modify head and prev, but only add symbols if\n // this data is not yet processed (\"wait\" for wait index)\n if (wi <= i) {\n // bytes remaining\n var rem = s - i;\n if ((lc_1 > 7000 || li > 24576) && rem > 423) {\n pos = wblk(dat, w, 0, syms, lf, df, eb, li, bs, i - bs, pos);\n li = lc_1 = eb = 0, bs = i;\n for (var j = 0; j < 286; ++j)\n lf[j] = 0;\n for (var j = 0; j < 30; ++j)\n df[j] = 0;\n }\n // len dist chain\n var l = 2, d = 0, ch_1 = c, dif = (imod - pimod) & 32767;\n if (rem > 2 && hv == hsh(i - dif)) {\n var maxn = Math.min(n, rem) - 1;\n var maxd = Math.min(32767, i);\n // max possible length\n // not capped at dif because decompressors implement \"rolling\" index population\n var ml = Math.min(258, rem);\n while (dif <= maxd && --ch_1 && imod != pimod) {\n if (dat[i + l] == dat[i + l - dif]) {\n var nl = 0;\n for (; nl < ml && dat[i + nl] == dat[i + nl - dif]; ++nl)\n ;\n if (nl > l) {\n l = nl, d = dif;\n // break out early when we reach \"nice\" (we are satisfied enough)\n if (nl > maxn)\n break;\n // now, find the rarest 2-byte sequence within this\n // length of literals and search for that instead.\n // Much faster than just using the start\n var mmd = Math.min(dif, nl - 2);\n var md = 0;\n for (var j = 0; j < mmd; ++j) {\n var ti = (i - dif + j + 32768) & 32767;\n var pti = prev[ti];\n var cd = (ti - pti + 32768) & 32767;\n if (cd > md)\n md = cd, pimod = ti;\n }\n }\n }\n // check the previous match\n imod = pimod, pimod = prev[imod];\n dif += (imod - pimod + 32768) & 32767;\n }\n }\n // d will be nonzero only when a match was found\n if (d) {\n // store both dist and len data in one Uint32\n // Make sure this is recognized as a len/dist with 28th bit (2^28)\n syms[li++] = 268435456 | (revfl[l] << 18) | revfd[d];\n var lin = revfl[l] & 31, din = revfd[d] & 31;\n eb += fleb[lin] + fdeb[din];\n ++lf[257 + lin];\n ++df[din];\n wi = i + l;\n ++lc_1;\n }\n else {\n syms[li++] = dat[i];\n ++lf[dat[i]];\n }\n }\n }\n pos = wblk(dat, w, lst, syms, lf, df, eb, li, bs, i - bs, pos);\n // this is the easiest way to avoid needing to maintain state\n if (!lst && pos & 7)\n pos = wfblk(w, pos + 1, et);\n }\n return slc(o, 0, pre + shft(pos) + post);\n};\n// CRC32 table\nvar crct = /*#__PURE__*/ (function () {\n var t = new Int32Array(256);\n for (var i = 0; i < 256; ++i) {\n var c = i, k = 9;\n while (--k)\n c = ((c & 1) && -306674912) ^ (c >>> 1);\n t[i] = c;\n }\n return t;\n})();\n// CRC32\nvar crc = function () {\n var c = -1;\n return {\n p: function (d) {\n // closures have awful performance\n var cr = c;\n for (var i = 0; i < d.length; ++i)\n cr = crct[(cr & 255) ^ d[i]] ^ (cr >>> 8);\n c = cr;\n },\n d: function () { return ~c; }\n };\n};\n// Alder32\nvar adler = function () {\n var a = 1, b = 0;\n return {\n p: function (d) {\n // closures have awful performance\n var n = a, m = b;\n var l = d.length | 0;\n for (var i = 0; i != l;) {\n var e = Math.min(i + 2655, l);\n for (; i < e; ++i)\n m += n += d[i];\n n = (n & 65535) + 15 * (n >> 16), m = (m & 65535) + 15 * (m >> 16);\n }\n a = n, b = m;\n },\n d: function () {\n a %= 65521, b %= 65521;\n return (a & 255) << 24 | (a >>> 8) << 16 | (b & 255) << 8 | (b >>> 8);\n }\n };\n};\n;\n// deflate with opts\nvar dopt = function (dat, opt, pre, post, st) {\n return dflt(dat, opt.level == null ? 6 : opt.level, opt.mem == null ? Math.ceil(Math.max(8, Math.min(13, Math.log(dat.length))) * 1.5) : (12 + opt.mem), pre, post, !st);\n};\n// Walmart object spread\nvar mrg = function (a, b) {\n var o = {};\n for (var k in a)\n o[k] = a[k];\n for (var k in b)\n o[k] = b[k];\n return o;\n};\n// worker clone\n// This is possibly the craziest part of the entire codebase, despite how simple it may seem.\n// The only parameter to this function is a closure that returns an array of variables outside of the function scope.\n// We're going to try to figure out the variable names used in the closure as strings because that is crucial for workerization.\n// We will return an object mapping of true variable name to value (basically, the current scope as a JS object).\n// The reason we can't just use the original variable names is minifiers mangling the toplevel scope.\n// This took me three weeks to figure out how to do.\nvar wcln = function (fn, fnStr, td) {\n var dt = fn();\n var st = fn.toString();\n var ks = st.slice(st.indexOf('[') + 1, st.lastIndexOf(']')).replace(/\\s+/g, '').split(',');\n for (var i = 0; i < dt.length; ++i) {\n var v = dt[i], k = ks[i];\n if (typeof v == 'function') {\n fnStr += ';' + k + '=';\n var st_1 = v.toString();\n if (v.prototype) {\n // for global objects\n if (st_1.indexOf('[native code]') != -1) {\n var spInd = st_1.indexOf(' ', 8) + 1;\n fnStr += st_1.slice(spInd, st_1.indexOf('(', spInd));\n }\n else {\n fnStr += st_1;\n for (var t in v.prototype)\n fnStr += ';' + k + '.prototype.' + t + '=' + v.prototype[t].toString();\n }\n }\n else\n fnStr += st_1;\n }\n else\n td[k] = v;\n }\n return [fnStr, td];\n};\nvar ch = [];\n// clone bufs\nvar cbfs = function (v) {\n var tl = [];\n for (var k in v) {\n if (v[k].buffer) {\n tl.push((v[k] = new v[k].constructor(v[k])).buffer);\n }\n }\n return tl;\n};\n// use a worker to execute code\nvar wrkr = function (fns, init, id, cb) {\n var _a;\n if (!ch[id]) {\n var fnStr = '', td_1 = {}, m = fns.length - 1;\n for (var i = 0; i < m; ++i)\n _a = wcln(fns[i], fnStr, td_1), fnStr = _a[0], td_1 = _a[1];\n ch[id] = wcln(fns[m], fnStr, td_1);\n }\n var td = mrg({}, ch[id][1]);\n return wk(ch[id][0] + ';onmessage=function(e){for(var k in e.data)self[k]=e.data[k];onmessage=' + init.toString() + '}', id, td, cbfs(td), cb);\n};\n// base async inflate fn\nvar bInflt = function () { return [u8, u16, u32, fleb, fdeb, clim, fl, fd, flrm, fdrm, rev, ec, hMap, max, bits, bits16, shft, slc, err, inflt, inflateSync, pbf, gu8]; };\nvar bDflt = function () { return [u8, u16, u32, fleb, fdeb, clim, revfl, revfd, flm, flt, fdm, fdt, rev, deo, et, hMap, wbits, wbits16, hTree, ln, lc, clen, wfblk, wblk, shft, slc, dflt, dopt, deflateSync, pbf]; };\n// gzip extra\nvar gze = function () { return [gzh, gzhl, wbytes, crc, crct]; };\n// gunzip extra\nvar guze = function () { return [gzs, gzl]; };\n// zlib extra\nvar zle = function () { return [zlh, wbytes, adler]; };\n// unzlib extra\nvar zule = function () { return [zlv]; };\n// post buf\nvar pbf = function (msg) { return postMessage(msg, [msg.buffer]); };\n// get u8\nvar gu8 = function (o) { return o && o.size && new u8(o.size); };\n// async helper\nvar cbify = function (dat, opts, fns, init, id, cb) {\n var w = wrkr(fns, init, id, function (err, dat) {\n w.terminate();\n cb(err, dat);\n });\n w.postMessage([dat, opts], opts.consume ? [dat.buffer] : []);\n return function () { w.terminate(); };\n};\n// auto stream\nvar astrm = function (strm) {\n strm.ondata = function (dat, final) { return postMessage([dat, final], [dat.buffer]); };\n return function (ev) { return strm.push(ev.data[0], ev.data[1]); };\n};\n// async stream attach\nvar astrmify = function (fns, strm, opts, init, id) {\n var t;\n var w = wrkr(fns, init, id, function (err, dat) {\n if (err)\n w.terminate(), strm.ondata.call(strm, err);\n else {\n if (dat[1])\n w.terminate();\n strm.ondata.call(strm, err, dat[0], dat[1]);\n }\n });\n w.postMessage(opts);\n strm.push = function (d, f) {\n if (!strm.ondata)\n err(5);\n if (t)\n strm.ondata(err(4, 0, 1), null, !!f);\n w.postMessage([d, t = f], [d.buffer]);\n };\n strm.terminate = function () { w.terminate(); };\n};\n// read 2 bytes\nvar b2 = function (d, b) { return d[b] | (d[b + 1] << 8); };\n// read 4 bytes\nvar b4 = function (d, b) { return (d[b] | (d[b + 1] << 8) | (d[b + 2] << 16) | (d[b + 3] << 24)) >>> 0; };\nvar b8 = function (d, b) { return b4(d, b) + (b4(d, b + 4) * 4294967296); };\n// write bytes\nvar wbytes = function (d, b, v) {\n for (; v; ++b)\n d[b] = v, v >>>= 8;\n};\n// gzip header\nvar gzh = function (c, o) {\n var fn = o.filename;\n c[0] = 31, c[1] = 139, c[2] = 8, c[8] = o.level < 2 ? 4 : o.level == 9 ? 2 : 0, c[9] = 3; // assume Unix\n if (o.mtime != 0)\n wbytes(c, 4, Math.floor(new Date(o.mtime || Date.now()) / 1000));\n if (fn) {\n c[3] = 8;\n for (var i = 0; i <= fn.length; ++i)\n c[i + 10] = fn.charCodeAt(i);\n }\n};\n// gzip footer: -8 to -4 = CRC, -4 to -0 is length\n// gzip start\nvar gzs = function (d) {\n if (d[0] != 31 || d[1] != 139 || d[2] != 8)\n err(6, 'invalid gzip data');\n var flg = d[3];\n var st = 10;\n if (flg & 4)\n st += d[10] | (d[11] << 8) + 2;\n for (var zs = (flg >> 3 & 1) + (flg >> 4 & 1); zs > 0; zs -= !d[st++])\n ;\n return st + (flg & 2);\n};\n// gzip length\nvar gzl = function (d) {\n var l = d.length;\n return ((d[l - 4] | d[l - 3] << 8 | d[l - 2] << 16) | (d[l - 1] << 24)) >>> 0;\n};\n// gzip header length\nvar gzhl = function (o) { return 10 + ((o.filename && (o.filename.length + 1)) || 0); };\n// zlib header\nvar zlh = function (c, o) {\n var lv = o.level, fl = lv == 0 ? 0 : lv < 6 ? 1 : lv == 9 ? 3 : 2;\n c[0] = 120, c[1] = (fl << 6) | (fl ? (32 - 2 * fl) : 1);\n};\n// zlib valid\nvar zlv = function (d) {\n if ((d[0] & 15) != 8 || (d[0] >>> 4) > 7 || ((d[0] << 8 | d[1]) % 31))\n err(6, 'invalid zlib data');\n if (d[1] & 32)\n err(6, 'invalid zlib data: preset dictionaries not supported');\n};\nfunction AsyncCmpStrm(opts, cb) {\n if (!cb && typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n return opts;\n}\n// zlib footer: -4 to -0 is Adler32\n/**\n * Streaming DEFLATE compression\n */\nvar Deflate = /*#__PURE__*/ (function () {\n function Deflate(opts, cb) {\n if (!cb && typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n this.o = opts || {};\n }\n Deflate.prototype.p = function (c, f) {\n this.ondata(dopt(c, this.o, 0, 0, !f), f);\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Deflate.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (this.d)\n err(4);\n this.d = final;\n this.p(chunk, final || false);\n };\n return Deflate;\n}());\nexport { Deflate };\n/**\n * Asynchronous streaming DEFLATE compression\n */\nvar AsyncDeflate = /*#__PURE__*/ (function () {\n function AsyncDeflate(opts, cb) {\n astrmify([\n bDflt,\n function () { return [astrm, Deflate]; }\n ], this, AsyncCmpStrm.call(this, opts, cb), function (ev) {\n var strm = new Deflate(ev.data);\n onmessage = astrm(strm);\n }, 6);\n }\n return AsyncDeflate;\n}());\nexport { AsyncDeflate };\nexport function deflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n ], function (ev) { return pbf(deflateSync(ev.data[0], ev.data[1])); }, 0, cb);\n}\n/**\n * Compresses data with DEFLATE without any wrapper\n * @param data The data to compress\n * @param opts The compression options\n * @returns The deflated version of the data\n */\nexport function deflateSync(data, opts) {\n return dopt(data, opts || {}, 0, 0);\n}\n/**\n * Streaming DEFLATE decompression\n */\nvar Inflate = /*#__PURE__*/ (function () {\n /**\n * Creates an inflation stream\n * @param cb The callback to call whenever data is inflated\n */\n function Inflate(cb) {\n this.s = {};\n this.p = new u8(0);\n this.ondata = cb;\n }\n Inflate.prototype.e = function (c) {\n if (!this.ondata)\n err(5);\n if (this.d)\n err(4);\n var l = this.p.length;\n var n = new u8(l + c.length);\n n.set(this.p), n.set(c, l), this.p = n;\n };\n Inflate.prototype.c = function (final) {\n this.d = this.s.i = final || false;\n var bts = this.s.b;\n var dt = inflt(this.p, this.o, this.s);\n this.ondata(slc(dt, bts, this.s.b), this.d);\n this.o = slc(dt, this.s.b - 32768), this.s.b = this.o.length;\n this.p = slc(this.p, (this.s.p / 8) | 0), this.s.p &= 7;\n };\n /**\n * Pushes a chunk to be inflated\n * @param chunk The chunk to push\n * @param final Whether this is the final chunk\n */\n Inflate.prototype.push = function (chunk, final) {\n this.e(chunk), this.c(final);\n };\n return Inflate;\n}());\nexport { Inflate };\n/**\n * Asynchronous streaming DEFLATE decompression\n */\nvar AsyncInflate = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous inflation stream\n * @param cb The callback to call whenever data is deflated\n */\n function AsyncInflate(cb) {\n this.ondata = cb;\n astrmify([\n bInflt,\n function () { return [astrm, Inflate]; }\n ], this, 0, function () {\n var strm = new Inflate();\n onmessage = astrm(strm);\n }, 7);\n }\n return AsyncInflate;\n}());\nexport { AsyncInflate };\nexport function inflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt\n ], function (ev) { return pbf(inflateSync(ev.data[0], gu8(ev.data[1]))); }, 1, cb);\n}\n/**\n * Expands DEFLATE data with no wrapper\n * @param data The data to decompress\n * @param out Where to write the data. Saves memory if you know the decompressed size and provide an output buffer of that length.\n * @returns The decompressed version of the data\n */\nexport function inflateSync(data, out) {\n return inflt(data, out);\n}\n// before you yell at me for not just using extends, my reason is that TS inheritance is hard to workerize.\n/**\n * Streaming GZIP compression\n */\nvar Gzip = /*#__PURE__*/ (function () {\n function Gzip(opts, cb) {\n this.c = crc();\n this.l = 0;\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be GZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gzip.prototype.push = function (chunk, final) {\n Deflate.prototype.push.call(this, chunk, final);\n };\n Gzip.prototype.p = function (c, f) {\n this.c.p(c);\n this.l += c.length;\n var raw = dopt(c, this.o, this.v && gzhl(this.o), f && 8, !f);\n if (this.v)\n gzh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 8, this.c.d()), wbytes(raw, raw.length - 4, this.l);\n this.ondata(raw, f);\n };\n return Gzip;\n}());\nexport { Gzip };\n/**\n * Asynchronous streaming GZIP compression\n */\nvar AsyncGzip = /*#__PURE__*/ (function () {\n function AsyncGzip(opts, cb) {\n astrmify([\n bDflt,\n gze,\n function () { return [astrm, Deflate, Gzip]; }\n ], this, AsyncCmpStrm.call(this, opts, cb), function (ev) {\n var strm = new Gzip(ev.data);\n onmessage = astrm(strm);\n }, 8);\n }\n return AsyncGzip;\n}());\nexport { AsyncGzip };\nexport function gzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n gze,\n function () { return [gzipSync]; }\n ], function (ev) { return pbf(gzipSync(ev.data[0], ev.data[1])); }, 2, cb);\n}\n/**\n * Compresses data with GZIP\n * @param data The data to compress\n * @param opts The compression options\n * @returns The gzipped version of the data\n */\nexport function gzipSync(data, opts) {\n if (!opts)\n opts = {};\n var c = crc(), l = data.length;\n c.p(data);\n var d = dopt(data, opts, gzhl(opts), 8), s = d.length;\n return gzh(d, opts), wbytes(d, s - 8, c.d()), wbytes(d, s - 4, l), d;\n}\n/**\n * Streaming GZIP decompression\n */\nvar Gunzip = /*#__PURE__*/ (function () {\n /**\n * Creates a GUNZIP stream\n * @param cb The callback to call whenever data is inflated\n */\n function Gunzip(cb) {\n this.v = 1;\n Inflate.call(this, cb);\n }\n /**\n * Pushes a chunk to be GUNZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gunzip.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n if (this.v) {\n var s = this.p.length > 3 ? gzs(this.p) : 4;\n if (s >= this.p.length && !final)\n return;\n this.p = this.p.subarray(s), this.v = 0;\n }\n if (final) {\n if (this.p.length < 8)\n err(6, 'invalid gzip data');\n this.p = this.p.subarray(0, -8);\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n };\n return Gunzip;\n}());\nexport { Gunzip };\n/**\n * Asynchronous streaming GZIP decompression\n */\nvar AsyncGunzip = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous GUNZIP stream\n * @param cb The callback to call whenever data is deflated\n */\n function AsyncGunzip(cb) {\n this.ondata = cb;\n astrmify([\n bInflt,\n guze,\n function () { return [astrm, Inflate, Gunzip]; }\n ], this, 0, function () {\n var strm = new Gunzip();\n onmessage = astrm(strm);\n }, 9);\n }\n return AsyncGunzip;\n}());\nexport { AsyncGunzip };\nexport function gunzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt,\n guze,\n function () { return [gunzipSync]; }\n ], function (ev) { return pbf(gunzipSync(ev.data[0])); }, 3, cb);\n}\n/**\n * Expands GZIP data\n * @param data The data to decompress\n * @param out Where to write the data. GZIP already encodes the output size, so providing this doesn't save memory.\n * @returns The decompressed version of the data\n */\nexport function gunzipSync(data, out) {\n return inflt(data.subarray(gzs(data), -8), out || new u8(gzl(data)));\n}\n/**\n * Streaming Zlib compression\n */\nvar Zlib = /*#__PURE__*/ (function () {\n function Zlib(opts, cb) {\n this.c = adler();\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be zlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Zlib.prototype.push = function (chunk, final) {\n Deflate.prototype.push.call(this, chunk, final);\n };\n Zlib.prototype.p = function (c, f) {\n this.c.p(c);\n var raw = dopt(c, this.o, this.v && 2, f && 4, !f);\n if (this.v)\n zlh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 4, this.c.d());\n this.ondata(raw, f);\n };\n return Zlib;\n}());\nexport { Zlib };\n/**\n * Asynchronous streaming Zlib compression\n */\nvar AsyncZlib = /*#__PURE__*/ (function () {\n function AsyncZlib(opts, cb) {\n astrmify([\n bDflt,\n zle,\n function () { return [astrm, Deflate, Zlib]; }\n ], this, AsyncCmpStrm.call(this, opts, cb), function (ev) {\n var strm = new Zlib(ev.data);\n onmessage = astrm(strm);\n }, 10);\n }\n return AsyncZlib;\n}());\nexport { AsyncZlib };\nexport function zlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n zle,\n function () { return [zlibSync]; }\n ], function (ev) { return pbf(zlibSync(ev.data[0], ev.data[1])); }, 4, cb);\n}\n/**\n * Compress data with Zlib\n * @param data The data to compress\n * @param opts The compression options\n * @returns The zlib-compressed version of the data\n */\nexport function zlibSync(data, opts) {\n if (!opts)\n opts = {};\n var a = adler();\n a.p(data);\n var d = dopt(data, opts, 2, 4);\n return zlh(d, opts), wbytes(d, d.length - 4, a.d()), d;\n}\n/**\n * Streaming Zlib decompression\n */\nvar Unzlib = /*#__PURE__*/ (function () {\n /**\n * Creates a Zlib decompression stream\n * @param cb The callback to call whenever data is inflated\n */\n function Unzlib(cb) {\n this.v = 1;\n Inflate.call(this, cb);\n }\n /**\n * Pushes a chunk to be unzlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Unzlib.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n if (this.v) {\n if (this.p.length < 2 && !final)\n return;\n this.p = this.p.subarray(2), this.v = 0;\n }\n if (final) {\n if (this.p.length < 4)\n err(6, 'invalid zlib data');\n this.p = this.p.subarray(0, -4);\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n };\n return Unzlib;\n}());\nexport { Unzlib };\n/**\n * Asynchronous streaming Zlib decompression\n */\nvar AsyncUnzlib = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous Zlib decompression stream\n * @param cb The callback to call whenever data is deflated\n */\n function AsyncUnzlib(cb) {\n this.ondata = cb;\n astrmify([\n bInflt,\n zule,\n function () { return [astrm, Inflate, Unzlib]; }\n ], this, 0, function () {\n var strm = new Unzlib();\n onmessage = astrm(strm);\n }, 11);\n }\n return AsyncUnzlib;\n}());\nexport { AsyncUnzlib };\nexport function unzlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt,\n zule,\n function () { return [unzlibSync]; }\n ], function (ev) { return pbf(unzlibSync(ev.data[0], gu8(ev.data[1]))); }, 5, cb);\n}\n/**\n * Expands Zlib data\n * @param data The data to decompress\n * @param out Where to write the data. Saves memory if you know the decompressed size and provide an output buffer of that length.\n * @returns The decompressed version of the data\n */\nexport function unzlibSync(data, out) {\n return inflt((zlv(data), data.subarray(2, -4)), out);\n}\n// Default algorithm for compression (used because having a known output size allows faster decompression)\nexport { gzip as compress, AsyncGzip as AsyncCompress };\n// Default algorithm for compression (used because having a known output size allows faster decompression)\nexport { gzipSync as compressSync, Gzip as Compress };\n/**\n * Streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar Decompress = /*#__PURE__*/ (function () {\n /**\n * Creates a decompression stream\n * @param cb The callback to call whenever data is decompressed\n */\n function Decompress(cb) {\n this.G = Gunzip;\n this.I = Inflate;\n this.Z = Unzlib;\n this.ondata = cb;\n }\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Decompress.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (!this.s) {\n if (this.p && this.p.length) {\n var n = new u8(this.p.length + chunk.length);\n n.set(this.p), n.set(chunk, this.p.length);\n }\n else\n this.p = chunk;\n if (this.p.length > 2) {\n var _this_1 = this;\n var cb = function () { _this_1.ondata.apply(_this_1, arguments); };\n this.s = (this.p[0] == 31 && this.p[1] == 139 && this.p[2] == 8)\n ? new this.G(cb)\n : ((this.p[0] & 15) != 8 || (this.p[0] >> 4) > 7 || ((this.p[0] << 8 | this.p[1]) % 31))\n ? new this.I(cb)\n : new this.Z(cb);\n this.s.push(this.p, final);\n this.p = null;\n }\n }\n else\n this.s.push(chunk, final);\n };\n return Decompress;\n}());\nexport { Decompress };\n/**\n * Asynchronous streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar AsyncDecompress = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous decompression stream\n * @param cb The callback to call whenever data is decompressed\n */\n function AsyncDecompress(cb) {\n this.G = AsyncGunzip;\n this.I = AsyncInflate;\n this.Z = AsyncUnzlib;\n this.ondata = cb;\n }\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n AsyncDecompress.prototype.push = function (chunk, final) {\n Decompress.prototype.push.call(this, chunk, final);\n };\n return AsyncDecompress;\n}());\nexport { AsyncDecompress };\nexport function decompress(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzip(data, opts, cb)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflate(data, opts, cb)\n : unzlib(data, opts, cb);\n}\n/**\n * Expands compressed GZIP, Zlib, or raw DEFLATE data, automatically detecting the format\n * @param data The data to decompress\n * @param out Where to write the data. Saves memory if you know the decompressed size and provide an output buffer of that length.\n * @returns The decompressed version of the data\n */\nexport function decompressSync(data, out) {\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzipSync(data, out)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflateSync(data, out)\n : unzlibSync(data, out);\n}\n// flatten a directory structure\nvar fltn = function (d, p, t, o) {\n for (var k in d) {\n var val = d[k], n = p + k, op = o;\n if (Array.isArray(val))\n op = mrg(o, val[1]), val = val[0];\n if (val instanceof u8)\n t[n] = [val, op];\n else {\n t[n += '/'] = [new u8(0), op];\n fltn(val, n, t, o);\n }\n }\n};\n// text encoder\nvar te = typeof TextEncoder != 'undefined' && /*#__PURE__*/ new TextEncoder();\n// text decoder\nvar td = typeof TextDecoder != 'undefined' && /*#__PURE__*/ new TextDecoder();\n// text decoder stream\nvar tds = 0;\ntry {\n td.decode(et, { stream: true });\n tds = 1;\n}\ncatch (e) { }\n// decode UTF8\nvar dutf8 = function (d) {\n for (var r = '', i = 0;;) {\n var c = d[i++];\n var eb = (c > 127) + (c > 223) + (c > 239);\n if (i + eb > d.length)\n return [r, slc(d, i - 1)];\n if (!eb)\n r += String.fromCharCode(c);\n else if (eb == 3) {\n c = ((c & 15) << 18 | (d[i++] & 63) << 12 | (d[i++] & 63) << 6 | (d[i++] & 63)) - 65536,\n r += String.fromCharCode(55296 | (c >> 10), 56320 | (c & 1023));\n }\n else if (eb & 1)\n r += String.fromCharCode((c & 31) << 6 | (d[i++] & 63));\n else\n r += String.fromCharCode((c & 15) << 12 | (d[i++] & 63) << 6 | (d[i++] & 63));\n }\n};\n/**\n * Streaming UTF-8 decoding\n */\nvar DecodeUTF8 = /*#__PURE__*/ (function () {\n /**\n * Creates a UTF-8 decoding stream\n * @param cb The callback to call whenever data is decoded\n */\n function DecodeUTF8(cb) {\n this.ondata = cb;\n if (tds)\n this.t = new TextDecoder();\n else\n this.p = et;\n }\n /**\n * Pushes a chunk to be decoded from UTF-8 binary\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n DecodeUTF8.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n final = !!final;\n if (this.t) {\n this.ondata(this.t.decode(chunk, { stream: true }), final);\n if (final) {\n if (this.t.decode().length)\n err(8);\n this.t = null;\n }\n return;\n }\n if (!this.p)\n err(4);\n var dat = new u8(this.p.length + chunk.length);\n dat.set(this.p);\n dat.set(chunk, this.p.length);\n var _a = dutf8(dat), ch = _a[0], np = _a[1];\n if (final) {\n if (np.length)\n err(8);\n this.p = null;\n }\n else\n this.p = np;\n this.ondata(ch, final);\n };\n return DecodeUTF8;\n}());\nexport { DecodeUTF8 };\n/**\n * Streaming UTF-8 encoding\n */\nvar EncodeUTF8 = /*#__PURE__*/ (function () {\n /**\n * Creates a UTF-8 decoding stream\n * @param cb The callback to call whenever data is encoded\n */\n function EncodeUTF8(cb) {\n this.ondata = cb;\n }\n /**\n * Pushes a chunk to be encoded to UTF-8\n * @param chunk The string data to push\n * @param final Whether this is the last chunk\n */\n EncodeUTF8.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (this.d)\n err(4);\n this.ondata(strToU8(chunk), this.d = final || false);\n };\n return EncodeUTF8;\n}());\nexport { EncodeUTF8 };\n/**\n * Converts a string into a Uint8Array for use with compression/decompression methods\n * @param str The string to encode\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless decoding a binary string.\n * @returns The string encoded in UTF-8/Latin-1 binary\n */\nexport function strToU8(str, latin1) {\n if (latin1) {\n var ar_1 = new u8(str.length);\n for (var i = 0; i < str.length; ++i)\n ar_1[i] = str.charCodeAt(i);\n return ar_1;\n }\n if (te)\n return te.encode(str);\n var l = str.length;\n var ar = new u8(str.length + (str.length >> 1));\n var ai = 0;\n var w = function (v) { ar[ai++] = v; };\n for (var i = 0; i < l; ++i) {\n if (ai + 5 > ar.length) {\n var n = new u8(ai + 8 + ((l - i) << 1));\n n.set(ar);\n ar = n;\n }\n var c = str.charCodeAt(i);\n if (c < 128 || latin1)\n w(c);\n else if (c < 2048)\n w(192 | (c >> 6)), w(128 | (c & 63));\n else if (c > 55295 && c < 57344)\n c = 65536 + (c & 1023 << 10) | (str.charCodeAt(++i) & 1023),\n w(240 | (c >> 18)), w(128 | ((c >> 12) & 63)), w(128 | ((c >> 6) & 63)), w(128 | (c & 63));\n else\n w(224 | (c >> 12)), w(128 | ((c >> 6) & 63)), w(128 | (c & 63));\n }\n return slc(ar, 0, ai);\n}\n/**\n * Converts a Uint8Array to a string\n * @param dat The data to decode to string\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless encoding to binary string.\n * @returns The original UTF-8/Latin-1 string\n */\nexport function strFromU8(dat, latin1) {\n if (latin1) {\n var r = '';\n for (var i = 0; i < dat.length; i += 16384)\n r += String.fromCharCode.apply(null, dat.subarray(i, i + 16384));\n return r;\n }\n else if (td)\n return td.decode(dat);\n else {\n var _a = dutf8(dat), out = _a[0], ext = _a[1];\n if (ext.length)\n err(8);\n return out;\n }\n}\n;\n// deflate bit flag\nvar dbf = function (l) { return l == 1 ? 3 : l < 6 ? 2 : l == 9 ? 1 : 0; };\n// skip local zip header\nvar slzh = function (d, b) { return b + 30 + b2(d, b + 26) + b2(d, b + 28); };\n// read zip header\nvar zh = function (d, b, z) {\n var fnl = b2(d, b + 28), fn = strFromU8(d.subarray(b + 46, b + 46 + fnl), !(b2(d, b + 8) & 2048)), es = b + 46 + fnl, bs = b4(d, b + 20);\n var _a = z && bs == 4294967295 ? z64e(d, es) : [bs, b4(d, b + 24), b4(d, b + 42)], sc = _a[0], su = _a[1], off = _a[2];\n return [b2(d, b + 10), sc, su, fn, es + b2(d, b + 30) + b2(d, b + 32), off];\n};\n// read zip64 extra field\nvar z64e = function (d, b) {\n for (; b2(d, b) != 1; b += 4 + b2(d, b + 2))\n ;\n return [b8(d, b + 12), b8(d, b + 4), b8(d, b + 20)];\n};\n// extra field length\nvar exfl = function (ex) {\n var le = 0;\n if (ex) {\n for (var k in ex) {\n var l = ex[k].length;\n if (l > 65535)\n err(9);\n le += l + 4;\n }\n }\n return le;\n};\n// write zip header\nvar wzh = function (d, b, f, fn, u, c, ce, co) {\n var fl = fn.length, ex = f.extra, col = co && co.length;\n var exl = exfl(ex);\n wbytes(d, b, ce != null ? 0x2014B50 : 0x4034B50), b += 4;\n if (ce != null)\n d[b++] = 20, d[b++] = f.os;\n d[b] = 20, b += 2; // spec compliance? what's that?\n d[b++] = (f.flag << 1) | (c < 0 && 8), d[b++] = u && 8;\n d[b++] = f.compression & 255, d[b++] = f.compression >> 8;\n var dt = new Date(f.mtime == null ? Date.now() : f.mtime), y = dt.getFullYear() - 1980;\n if (y < 0 || y > 119)\n err(10);\n wbytes(d, b, (y << 25) | ((dt.getMonth() + 1) << 21) | (dt.getDate() << 16) | (dt.getHours() << 11) | (dt.getMinutes() << 5) | (dt.getSeconds() >>> 1)), b += 4;\n if (c != -1) {\n wbytes(d, b, f.crc);\n wbytes(d, b + 4, c < 0 ? -c - 2 : c);\n wbytes(d, b + 8, f.size);\n }\n wbytes(d, b + 12, fl);\n wbytes(d, b + 14, exl), b += 16;\n if (ce != null) {\n wbytes(d, b, col);\n wbytes(d, b + 6, f.attrs);\n wbytes(d, b + 10, ce), b += 14;\n }\n d.set(fn, b);\n b += fl;\n if (exl) {\n for (var k in ex) {\n var exf = ex[k], l = exf.length;\n wbytes(d, b, +k);\n wbytes(d, b + 2, l);\n d.set(exf, b + 4), b += 4 + l;\n }\n }\n if (col)\n d.set(co, b), b += col;\n return b;\n};\n// write zip footer (end of central directory)\nvar wzf = function (o, b, c, d, e) {\n wbytes(o, b, 0x6054B50); // skip disk\n wbytes(o, b + 8, c);\n wbytes(o, b + 10, c);\n wbytes(o, b + 12, d);\n wbytes(o, b + 16, e);\n};\n/**\n * A pass-through stream to keep data uncompressed in a ZIP archive.\n */\nvar ZipPassThrough = /*#__PURE__*/ (function () {\n /**\n * Creates a pass-through stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n */\n function ZipPassThrough(filename) {\n this.filename = filename;\n this.c = crc();\n this.size = 0;\n this.compression = 0;\n }\n /**\n * Processes a chunk and pushes to the output stream. You can override this\n * method in a subclass for custom behavior, but by default this passes\n * the data through. You must call this.ondata(err, chunk, final) at some\n * point in this method.\n * @param chunk The chunk to process\n * @param final Whether this is the last chunk\n */\n ZipPassThrough.prototype.process = function (chunk, final) {\n this.ondata(null, chunk, final);\n };\n /**\n * Pushes a chunk to be added. If you are subclassing this with a custom\n * compression algorithm, note that you must push data from the source\n * file only, pre-compression.\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n ZipPassThrough.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n this.c.p(chunk);\n this.size += chunk.length;\n if (final)\n this.crc = this.c.d();\n this.process(chunk, final || false);\n };\n return ZipPassThrough;\n}());\nexport { ZipPassThrough };\n// I don't extend because TypeScript extension adds 1kB of runtime bloat\n/**\n * Streaming DEFLATE compression for ZIP archives. Prefer using AsyncZipDeflate\n * for better performance\n */\nvar ZipDeflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n * @param opts The compression options\n */\n function ZipDeflate(filename, opts) {\n var _this_1 = this;\n if (!opts)\n opts = {};\n ZipPassThrough.call(this, filename);\n this.d = new Deflate(opts, function (dat, final) {\n _this_1.ondata(null, dat, final);\n });\n this.compression = 8;\n this.flag = dbf(opts.level);\n }\n ZipDeflate.prototype.process = function (chunk, final) {\n try {\n this.d.push(chunk, final);\n }\n catch (e) {\n this.ondata(e, null, final);\n }\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n ZipDeflate.prototype.push = function (chunk, final) {\n ZipPassThrough.prototype.push.call(this, chunk, final);\n };\n return ZipDeflate;\n}());\nexport { ZipDeflate };\n/**\n * Asynchronous streaming DEFLATE compression for ZIP archives\n */\nvar AsyncZipDeflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n * @param opts The compression options\n */\n function AsyncZipDeflate(filename, opts) {\n var _this_1 = this;\n if (!opts)\n opts = {};\n ZipPassThrough.call(this, filename);\n this.d = new AsyncDeflate(opts, function (err, dat, final) {\n _this_1.ondata(err, dat, final);\n });\n this.compression = 8;\n this.flag = dbf(opts.level);\n this.terminate = this.d.terminate;\n }\n AsyncZipDeflate.prototype.process = function (chunk, final) {\n this.d.push(chunk, final);\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n AsyncZipDeflate.prototype.push = function (chunk, final) {\n ZipPassThrough.prototype.push.call(this, chunk, final);\n };\n return AsyncZipDeflate;\n}());\nexport { AsyncZipDeflate };\n// TODO: Better tree shaking\n/**\n * A zippable archive to which files can incrementally be added\n */\nvar Zip = /*#__PURE__*/ (function () {\n /**\n * Creates an empty ZIP archive to which files can be added\n * @param cb The callback to call whenever data for the generated ZIP archive\n * is available\n */\n function Zip(cb) {\n this.ondata = cb;\n this.u = [];\n this.d = 1;\n }\n /**\n * Adds a file to the ZIP archive\n * @param file The file stream to add\n */\n Zip.prototype.add = function (file) {\n var _this_1 = this;\n if (!this.ondata)\n err(5);\n // finishing or finished\n if (this.d & 2)\n this.ondata(err(4 + (this.d & 1) * 8, 0, 1), null, false);\n else {\n var f = strToU8(file.filename), fl_1 = f.length;\n var com = file.comment, o = com && strToU8(com);\n var u = fl_1 != file.filename.length || (o && (com.length != o.length));\n var hl_1 = fl_1 + exfl(file.extra) + 30;\n if (fl_1 > 65535)\n this.ondata(err(11, 0, 1), null, false);\n var header = new u8(hl_1);\n wzh(header, 0, file, f, u, -1);\n var chks_1 = [header];\n var pAll_1 = function () {\n for (var _i = 0, chks_2 = chks_1; _i < chks_2.length; _i++) {\n var chk = chks_2[_i];\n _this_1.ondata(null, chk, false);\n }\n chks_1 = [];\n };\n var tr_1 = this.d;\n this.d = 0;\n var ind_1 = this.u.length;\n var uf_1 = mrg(file, {\n f: f,\n u: u,\n o: o,\n t: function () {\n if (file.terminate)\n file.terminate();\n },\n r: function () {\n pAll_1();\n if (tr_1) {\n var nxt = _this_1.u[ind_1 + 1];\n if (nxt)\n nxt.r();\n else\n _this_1.d = 1;\n }\n tr_1 = 1;\n }\n });\n var cl_1 = 0;\n file.ondata = function (err, dat, final) {\n if (err) {\n _this_1.ondata(err, dat, final);\n _this_1.terminate();\n }\n else {\n cl_1 += dat.length;\n chks_1.push(dat);\n if (final) {\n var dd = new u8(16);\n wbytes(dd, 0, 0x8074B50);\n wbytes(dd, 4, file.crc);\n wbytes(dd, 8, cl_1);\n wbytes(dd, 12, file.size);\n chks_1.push(dd);\n uf_1.c = cl_1, uf_1.b = hl_1 + cl_1 + 16, uf_1.crc = file.crc, uf_1.size = file.size;\n if (tr_1)\n uf_1.r();\n tr_1 = 1;\n }\n else if (tr_1)\n pAll_1();\n }\n };\n this.u.push(uf_1);\n }\n };\n /**\n * Ends the process of adding files and prepares to emit the final chunks.\n * This *must* be called after adding all desired files for the resulting\n * ZIP file to work properly.\n */\n Zip.prototype.end = function () {\n var _this_1 = this;\n if (this.d & 2) {\n this.ondata(err(4 + (this.d & 1) * 8, 0, 1), null, true);\n return;\n }\n if (this.d)\n this.e();\n else\n this.u.push({\n r: function () {\n if (!(_this_1.d & 1))\n return;\n _this_1.u.splice(-1, 1);\n _this_1.e();\n },\n t: function () { }\n });\n this.d = 3;\n };\n Zip.prototype.e = function () {\n var bt = 0, l = 0, tl = 0;\n for (var _i = 0, _a = this.u; _i < _a.length; _i++) {\n var f = _a[_i];\n tl += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0);\n }\n var out = new u8(tl + 22);\n for (var _b = 0, _c = this.u; _b < _c.length; _b++) {\n var f = _c[_b];\n wzh(out, bt, f, f.f, f.u, -f.c - 2, l, f.o);\n bt += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0), l += f.b;\n }\n wzf(out, bt, this.u.length, tl, l);\n this.ondata(null, out, true);\n this.d = 2;\n };\n /**\n * A method to terminate any internal workers used by the stream. Subsequent\n * calls to add() will fail.\n */\n Zip.prototype.terminate = function () {\n for (var _i = 0, _a = this.u; _i < _a.length; _i++) {\n var f = _a[_i];\n f.t();\n }\n this.d = 2;\n };\n return Zip;\n}());\nexport { Zip };\nexport function zip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n var r = {};\n fltn(data, '', r, opts);\n var k = Object.keys(r);\n var lft = k.length, o = 0, tot = 0;\n var slft = lft, files = new Array(lft);\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var cbd = function (a, b) {\n mt(function () { cb(a, b); });\n };\n mt(function () { cbd = cb; });\n var cbf = function () {\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n tot = 0;\n for (var i = 0; i < slft; ++i) {\n var f = files[i];\n try {\n var l = f.c.length;\n wzh(out, tot, f, f.f, f.u, l);\n var badd = 30 + f.f.length + exfl(f.extra);\n var loc = tot + badd;\n out.set(f.c, loc);\n wzh(out, o, f, f.f, f.u, l, tot, f.m), o += 16 + badd + (f.m ? f.m.length : 0), tot = loc + l;\n }\n catch (e) {\n return cbd(e, null);\n }\n }\n wzf(out, o, files.length, cdl, oe);\n cbd(null, out);\n };\n if (!lft)\n cbf();\n var _loop_1 = function (i) {\n var fn = k[i];\n var _a = r[fn], file = _a[0], p = _a[1];\n var c = crc(), size = file.length;\n c.p(file);\n var f = strToU8(fn), s = f.length;\n var com = p.comment, m = com && strToU8(com), ms = m && m.length;\n var exl = exfl(p.extra);\n var compression = p.level == 0 ? 0 : 8;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cbd(e, null);\n }\n else {\n var l = d.length;\n files[i] = mrg(p, {\n size: size,\n crc: c.d(),\n c: d,\n f: f,\n m: m,\n u: s != fn.length || (m && (com.length != ms)),\n compression: compression\n });\n o += 30 + s + exl + l;\n tot += 76 + 2 * (s + exl) + (ms || 0) + l;\n if (!--lft)\n cbf();\n }\n };\n if (s > 65535)\n cbl(err(11, 0, 1), null);\n if (!compression)\n cbl(null, file);\n else if (size < 160000) {\n try {\n cbl(null, deflateSync(file, p));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(deflate(file, p, cbl));\n };\n // Cannot use lft because it can decrease\n for (var i = 0; i < slft; ++i) {\n _loop_1(i);\n }\n return tAll;\n}\n/**\n * Synchronously creates a ZIP file. Prefer using `zip` for better performance\n * with more than one file.\n * @param data The directory structure for the ZIP archive\n * @param opts The main options, merged with per-file options\n * @returns The generated ZIP archive\n */\nexport function zipSync(data, opts) {\n if (!opts)\n opts = {};\n var r = {};\n var files = [];\n fltn(data, '', r, opts);\n var o = 0;\n var tot = 0;\n for (var fn in r) {\n var _a = r[fn], file = _a[0], p = _a[1];\n var compression = p.level == 0 ? 0 : 8;\n var f = strToU8(fn), s = f.length;\n var com = p.comment, m = com && strToU8(com), ms = m && m.length;\n var exl = exfl(p.extra);\n if (s > 65535)\n err(11);\n var d = compression ? deflateSync(file, p) : file, l = d.length;\n var c = crc();\n c.p(file);\n files.push(mrg(p, {\n size: file.length,\n crc: c.d(),\n c: d,\n f: f,\n m: m,\n u: s != fn.length || (m && (com.length != ms)),\n o: o,\n compression: compression\n }));\n o += 30 + s + exl + l;\n tot += 76 + 2 * (s + exl) + (ms || 0) + l;\n }\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n for (var i = 0; i < files.length; ++i) {\n var f = files[i];\n wzh(out, f.o, f, f.f, f.u, f.c.length);\n var badd = 30 + f.f.length + exfl(f.extra);\n out.set(f.c, f.o + badd);\n wzh(out, o, f, f.f, f.u, f.c.length, f.o, f.m), o += 16 + badd + (f.m ? f.m.length : 0);\n }\n wzf(out, o, files.length, cdl, oe);\n return out;\n}\n/**\n * Streaming pass-through decompression for ZIP archives\n */\nvar UnzipPassThrough = /*#__PURE__*/ (function () {\n function UnzipPassThrough() {\n }\n UnzipPassThrough.prototype.push = function (data, final) {\n this.ondata(null, data, final);\n };\n UnzipPassThrough.compression = 0;\n return UnzipPassThrough;\n}());\nexport { UnzipPassThrough };\n/**\n * Streaming DEFLATE decompression for ZIP archives. Prefer AsyncZipInflate for\n * better performance.\n */\nvar UnzipInflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE decompression that can be used in ZIP archives\n */\n function UnzipInflate() {\n var _this_1 = this;\n this.i = new Inflate(function (dat, final) {\n _this_1.ondata(null, dat, final);\n });\n }\n UnzipInflate.prototype.push = function (data, final) {\n try {\n this.i.push(data, final);\n }\n catch (e) {\n this.ondata(e, null, final);\n }\n };\n UnzipInflate.compression = 8;\n return UnzipInflate;\n}());\nexport { UnzipInflate };\n/**\n * Asynchronous streaming DEFLATE decompression for ZIP archives\n */\nvar AsyncUnzipInflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE decompression that can be used in ZIP archives\n */\n function AsyncUnzipInflate(_, sz) {\n var _this_1 = this;\n if (sz < 320000) {\n this.i = new Inflate(function (dat, final) {\n _this_1.ondata(null, dat, final);\n });\n }\n else {\n this.i = new AsyncInflate(function (err, dat, final) {\n _this_1.ondata(err, dat, final);\n });\n this.terminate = this.i.terminate;\n }\n }\n AsyncUnzipInflate.prototype.push = function (data, final) {\n if (this.i.terminate)\n data = slc(data, 0);\n this.i.push(data, final);\n };\n AsyncUnzipInflate.compression = 8;\n return AsyncUnzipInflate;\n}());\nexport { AsyncUnzipInflate };\n/**\n * A ZIP archive decompression stream that emits files as they are discovered\n */\nvar Unzip = /*#__PURE__*/ (function () {\n /**\n * Creates a ZIP decompression stream\n * @param cb The callback to call whenever a file in the ZIP archive is found\n */\n function Unzip(cb) {\n this.onfile = cb;\n this.k = [];\n this.o = {\n 0: UnzipPassThrough\n };\n this.p = et;\n }\n /**\n * Pushes a chunk to be unzipped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Unzip.prototype.push = function (chunk, final) {\n var _this_1 = this;\n if (!this.onfile)\n err(5);\n if (!this.p)\n err(4);\n if (this.c > 0) {\n var len = Math.min(this.c, chunk.length);\n var toAdd = chunk.subarray(0, len);\n this.c -= len;\n if (this.d)\n this.d.push(toAdd, !this.c);\n else\n this.k[0].push(toAdd);\n chunk = chunk.subarray(len);\n if (chunk.length)\n return this.push(chunk, final);\n }\n else {\n var f = 0, i = 0, is = void 0, buf = void 0;\n if (!this.p.length)\n buf = chunk;\n else if (!chunk.length)\n buf = this.p;\n else {\n buf = new u8(this.p.length + chunk.length);\n buf.set(this.p), buf.set(chunk, this.p.length);\n }\n var l = buf.length, oc = this.c, add = oc && this.d;\n var _loop_2 = function () {\n var _a;\n var sig = b4(buf, i);\n if (sig == 0x4034B50) {\n f = 1, is = i;\n this_1.d = null;\n this_1.c = 0;\n var bf = b2(buf, i + 6), cmp_1 = b2(buf, i + 8), u = bf & 2048, dd = bf & 8, fnl = b2(buf, i + 26), es = b2(buf, i + 28);\n if (l > i + 30 + fnl + es) {\n var chks_3 = [];\n this_1.k.unshift(chks_3);\n f = 2;\n var sc_1 = b4(buf, i + 18), su_1 = b4(buf, i + 22);\n var fn_1 = strFromU8(buf.subarray(i + 30, i += 30 + fnl), !u);\n if (sc_1 == 4294967295) {\n _a = dd ? [-2] : z64e(buf, i), sc_1 = _a[0], su_1 = _a[1];\n }\n else if (dd)\n sc_1 = -1;\n i += es;\n this_1.c = sc_1;\n var d_1;\n var file_1 = {\n name: fn_1,\n compression: cmp_1,\n start: function () {\n if (!file_1.ondata)\n err(5);\n if (!sc_1)\n file_1.ondata(null, et, true);\n else {\n var ctr = _this_1.o[cmp_1];\n if (!ctr)\n file_1.ondata(err(14, 'unknown compression type ' + cmp_1, 1), null, false);\n d_1 = sc_1 < 0 ? new ctr(fn_1) : new ctr(fn_1, sc_1, su_1);\n d_1.ondata = function (err, dat, final) { file_1.ondata(err, dat, final); };\n for (var _i = 0, chks_4 = chks_3; _i < chks_4.length; _i++) {\n var dat = chks_4[_i];\n d_1.push(dat, false);\n }\n if (_this_1.k[0] == chks_3 && _this_1.c)\n _this_1.d = d_1;\n else\n d_1.push(et, true);\n }\n },\n terminate: function () {\n if (d_1 && d_1.terminate)\n d_1.terminate();\n }\n };\n if (sc_1 >= 0)\n file_1.size = sc_1, file_1.originalSize = su_1;\n this_1.onfile(file_1);\n }\n return \"break\";\n }\n else if (oc) {\n if (sig == 0x8074B50) {\n is = i += 12 + (oc == -2 && 8), f = 3, this_1.c = 0;\n return \"break\";\n }\n else if (sig == 0x2014B50) {\n is = i -= 4, f = 3, this_1.c = 0;\n return \"break\";\n }\n }\n };\n var this_1 = this;\n for (; i < l - 4; ++i) {\n var state_1 = _loop_2();\n if (state_1 === \"break\")\n break;\n }\n this.p = et;\n if (oc < 0) {\n var dat = f ? buf.subarray(0, is - 12 - (oc == -2 && 8) - (b4(buf, is - 16) == 0x8074B50 && 4)) : buf.subarray(0, i);\n if (add)\n add.push(dat, !!f);\n else\n this.k[+(f == 2)].push(dat);\n }\n if (f & 2)\n return this.push(buf.subarray(i), final);\n this.p = buf.subarray(i);\n }\n if (final) {\n if (this.c)\n err(13);\n this.p = null;\n }\n };\n /**\n * Registers a decoder with the stream, allowing for files compressed with\n * the compression type provided to be expanded correctly\n * @param decoder The decoder constructor\n */\n Unzip.prototype.register = function (decoder) {\n this.o[decoder.compression] = decoder;\n };\n return Unzip;\n}());\nexport { Unzip };\nvar mt = typeof queueMicrotask == 'function' ? queueMicrotask : typeof setTimeout == 'function' ? setTimeout : function (fn) { fn(); };\nexport function unzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var files = {};\n var cbd = function (a, b) {\n mt(function () { cb(a, b); });\n };\n mt(function () { cbd = cb; });\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558) {\n cbd(err(13, 0, 1), null);\n return tAll;\n }\n }\n ;\n var lft = b2(data, e + 8);\n if (lft) {\n var c = lft;\n var o = b4(data, e + 16);\n var z = o == 4294967295 || c == 65535;\n if (z) {\n var ze = b4(data, e - 12);\n z = b4(data, ze) == 0x6064B50;\n if (z) {\n c = lft = b4(data, ze + 32);\n o = b4(data, ze + 48);\n }\n }\n var fltr = opts && opts.filter;\n var _loop_3 = function (i) {\n var _a = zh(data, o, z), c_1 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cbd(e, null);\n }\n else {\n if (d)\n files[fn] = d;\n if (!--lft)\n cbd(null, files);\n }\n };\n if (!fltr || fltr({\n name: fn,\n size: sc,\n originalSize: su,\n compression: c_1\n })) {\n if (!c_1)\n cbl(null, slc(data, b, b + sc));\n else if (c_1 == 8) {\n var infl = data.subarray(b, b + sc);\n if (sc < 320000) {\n try {\n cbl(null, inflateSync(infl, new u8(su)));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(inflate(infl, { size: su }, cbl));\n }\n else\n cbl(err(14, 'unknown compression type ' + c_1, 1), null);\n }\n else\n cbl(null, null);\n };\n for (var i = 0; i < c; ++i) {\n _loop_3(i);\n }\n }\n else\n cbd(null, {});\n return tAll;\n}\n/**\n * Synchronously decompresses a ZIP archive. Prefer using `unzip` for better\n * performance with more than one file.\n * @param data The raw compressed ZIP file\n * @param opts The ZIP extraction options\n * @returns The decompressed files\n */\nexport function unzipSync(data, opts) {\n var files = {};\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558)\n err(13);\n }\n ;\n var c = b2(data, e + 8);\n if (!c)\n return {};\n var o = b4(data, e + 16);\n var z = o == 4294967295 || c == 65535;\n if (z) {\n var ze = b4(data, e - 12);\n z = b4(data, ze) == 0x6064B50;\n if (z) {\n c = b4(data, ze + 32);\n o = b4(data, ze + 48);\n }\n }\n var fltr = opts && opts.filter;\n for (var i = 0; i < c; ++i) {\n var _a = zh(data, o, z), c_2 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n if (!fltr || fltr({\n name: fn,\n size: sc,\n originalSize: su,\n compression: c_2\n })) {\n if (!c_2)\n files[fn] = slc(data, b, b + sc);\n else if (c_2 == 8)\n files[fn] = inflateSync(data.subarray(b, b + sc), new u8(su));\n else\n err(14, 'unknown compression type ' + c_2);\n }\n }\n return files;\n}\n","import { unzipSync, strFromU8 } from 'fflate';\n\n/**\r\n * Reads XLSX file in a browser.\r\n * @param {(File|Blob|ArrayBuffer)} input - A `File` or an `ArrayBuffer`.\r\n * @return {Promise} Resolves to an object holding XLSX file entries.\r\n */\nexport default function unpackXlsxFile(input) {\n if (input instanceof File) {\n return input.arrayBuffer().then(unpackXlsxArrayBuffer);\n }\n if (input instanceof Blob) {\n return input.arrayBuffer().then(unpackXlsxArrayBuffer);\n }\n return unpackXlsxArrayBuffer(input);\n}\n\n/**\r\n * Reads XLSX file in a browser from an `ArrayBuffer`.\r\n * @param {ArrayBuffer} input\r\n * @return {Promise} Resolves to an object holding XLSX file entries.\r\n */\nfunction unpackXlsxArrayBuffer(arrayBuffer) {\n var archive = new Uint8Array(arrayBuffer);\n var contents = unzipSync(archive);\n return Promise.resolve(getContents(contents));\n // return new Promise((resolve, reject) => {\n // \tunzip(archive, (error, contents) => {\n // \t\tif (error) {\n // \t\t\treturn reject(error)\n // \t\t}\n // \t\treturn resolve(getContents(contents))\n // \t})\n // })\n}\n\nfunction getContents(contents) {\n var unzippedFiles = [];\n for (var _i = 0, _Object$keys = Object.keys(contents); _i < _Object$keys.length; _i++) {\n var key = _Object$keys[_i];\n unzippedFiles[key] = strFromU8(contents[key]);\n }\n return unzippedFiles;\n}\n//# sourceMappingURL=unpackXlsxFileBrowser.js.map","export function findChild(node, tagName) {\n var i = 0;\n while (i < node.childNodes.length) {\n var childNode = node.childNodes[i];\n // `nodeType: 1` means \"Element\".\n // https://www.w3schools.com/xml/prop_element_nodetype.asp\n if (childNode.nodeType === 1 && getTagName(childNode) === tagName) {\n return childNode;\n }\n i++;\n }\n}\nexport function findChildren(node, tagName) {\n var results = [];\n var i = 0;\n while (i < node.childNodes.length) {\n var childNode = node.childNodes[i];\n // `nodeType: 1` means \"Element\".\n // https://www.w3schools.com/xml/prop_element_nodetype.asp\n if (childNode.nodeType === 1 && getTagName(childNode) === tagName) {\n results.push(childNode);\n }\n i++;\n }\n return results;\n}\nexport function forEach(node, tagName, func) {\n // if (typeof tagName === 'function') {\n // \tfunc = tagName\n // \ttagName = undefined\n // }\n var i = 0;\n while (i < node.childNodes.length) {\n var childNode = node.childNodes[i];\n if (tagName) {\n // `nodeType: 1` means \"Element\".\n // https://www.w3schools.com/xml/prop_element_nodetype.asp\n if (childNode.nodeType === 1 && getTagName(childNode) === tagName) {\n func(childNode, i);\n }\n } else {\n func(childNode, i);\n }\n i++;\n }\n}\nexport function map(node, tagName, func) {\n var results = [];\n forEach(node, tagName, function (node, i) {\n results.push(func(node, i));\n });\n return results;\n}\nvar NAMESPACE_REG_EXP = /.+\\:/;\nexport function getTagName(element) {\n // For some weird reason, if an element is declared as,\n // for example, ``, then its `.tagName` will be\n // \"x:sheets\" instead of just \"sheets\".\n // https://gitlab.com/catamphetamine/read-excel-file/-/issues/25\n // Its not clear how to tell it to ignore any namespaces\n // when getting `.tagName`, so just replacing anything\n // before a colon, if any.\n return element.tagName.replace(NAMESPACE_REG_EXP, '');\n}\n\n// This function is only used for occasional debug messages.\nexport function getOuterXml(node) {\n // `nodeType: 1` means \"Element\".\n // https://www.w3schools.com/xml/prop_element_nodetype.asp\n if (node.nodeType !== 1) {\n return node.textContent;\n }\n var xml = '<' + getTagName(node);\n var j = 0;\n while (j < node.attributes.length) {\n xml += ' ' + node.attributes[j].name + '=' + '\"' + node.attributes[j].value + '\"';\n j++;\n }\n xml += '>';\n var i = 0;\n while (i < node.childNodes.length) {\n xml += getOuterXml(node.childNodes[i]);\n i++;\n }\n xml += '';\n return xml;\n}\n//# sourceMappingURL=dom.js.map","import { findChild, findChildren, forEach, map, getTagName } from './dom.js';\n\n// Returns an array of cells,\n// each element being an XML DOM element representing a cell.\nexport function getCells(document) {\n var worksheet = document.documentElement;\n var sheetData = findChild(worksheet, 'sheetData');\n var cells = [];\n forEach(sheetData, 'row', function (row) {\n forEach(row, 'c', function (cell) {\n cells.push(cell);\n });\n });\n return cells;\n}\nexport function getMergedCells(document) {\n var worksheet = document.documentElement;\n var mergedCells = findChild(worksheet, 'mergeCells');\n var mergedCellsInfo = [];\n if (mergedCells) {\n forEach(mergedCells, 'mergeCell', function (mergedCell) {\n mergedCellsInfo.push(mergedCell.getAttribute('ref'));\n });\n }\n return mergedCellsInfo;\n}\nexport function getCellValue(document, node) {\n return findChild(node, 'v');\n}\nexport function getCellInlineStringValue(document, node) {\n if (node.firstChild && getTagName(node.firstChild) === 'is' && node.firstChild.firstChild && getTagName(node.firstChild.firstChild) === 't') {\n return node.firstChild.firstChild.textContent;\n }\n}\nexport function getDimensions(document) {\n var worksheet = document.documentElement;\n var dimensions = findChild(worksheet, 'dimension');\n if (dimensions) {\n return dimensions.getAttribute('ref');\n }\n}\nexport function getBaseStyles(document) {\n var styleSheet = document.documentElement;\n var cellStyleXfs = findChild(styleSheet, 'cellStyleXfs');\n if (cellStyleXfs) {\n return findChildren(cellStyleXfs, 'xf');\n }\n return [];\n}\nexport function getCellStyles(document) {\n var styleSheet = document.documentElement;\n var cellXfs = findChild(styleSheet, 'cellXfs');\n if (!cellXfs) {\n return [];\n }\n return findChildren(cellXfs, 'xf');\n}\nexport function getNumberFormats(document) {\n var styleSheet = document.documentElement;\n var numberFormats = [];\n var numFmts = findChild(styleSheet, 'numFmts');\n if (numFmts) {\n return findChildren(numFmts, 'numFmt');\n }\n return [];\n}\nexport function getSharedStrings(document) {\n // An `` element can contain a `` (simplest case) or a set of `` (\"rich formatting\") elements having ``.\n //Ā https://docs.microsoft.com/en-us/dotnet/api/documentformat.openxml.spreadsheet.sharedstringitem?redirectedfrom=MSDN&view=openxml-2.8.1\n //Ā http://www.datypic.com/sc/ooxml/e-ssml_si-1.html\n\n var sst = document.documentElement;\n return map(sst, 'si', function (string) {\n var t = findChild(string, 't');\n if (t) {\n return t.textContent;\n }\n var value = '';\n forEach(string, 'r', function (r) {\n value += findChild(r, 't').textContent;\n });\n return value;\n });\n}\nexport function getWorkbookProperties(document) {\n var workbook = document.documentElement;\n return findChild(workbook, 'workbookPr');\n}\nexport function getRelationships(document) {\n var relationships = document.documentElement;\n return findChildren(relationships, 'Relationship');\n}\nexport function getSheets(document) {\n var workbook = document.documentElement;\n var sheets = findChild(workbook, 'sheets');\n return findChildren(sheets, 'sheet');\n}\n//# sourceMappingURL=xlsx.js.map","import { getWorkbookProperties, getSheets } from '../xml/xlsx.js';\n\n// I guess `xl/workbook.xml` file should always be present inside the *.xlsx archive.\nexport default function parseProperties(content, xml) {\n var book = xml.createDocument(content);\n var properties = {};\n\n // Read `` element to detect whether dates are 1900-based or 1904-based.\n // https://support.microsoft.com/en-gb/help/214330/differences-between-the-1900-and-the-1904-date-system-in-excel\n // http://webapp.docx4java.org/OnlineDemo/ecma376/SpreadsheetML/workbookPr.html\n\n var workbookProperties = getWorkbookProperties(book);\n if (workbookProperties && workbookProperties.getAttribute('date1904') === '1') {\n properties.epoch1904 = true;\n }\n\n // Get sheets info (indexes, names, if they're available).\n // Example:\n // \n // \n // \n // http://www.datypic.com/sc/ooxml/e-ssml_sheet-1.html\n\n properties.sheets = [];\n var addSheetInfo = function addSheetInfo(sheet) {\n if (sheet.getAttribute('name')) {\n properties.sheets.push({\n id: sheet.getAttribute('sheetId'),\n name: sheet.getAttribute('name'),\n relationId: sheet.getAttribute('r:id')\n });\n }\n };\n getSheets(book).forEach(addSheetInfo);\n return properties;\n}\n//# sourceMappingURL=parseProperties.js.map","import { getRelationships } from '../xml/xlsx.js';\n\n/**\r\n * Returns sheet file paths.\r\n * Seems that the correct place to look for the `sheetId` -> `filename` mapping\r\n * is `xl/_rels/workbook.xml.rels` file.\r\n * https://github.com/tidyverse/readxl/issues/104\r\n * @param {string} content ā€” `xl/_rels/workbook.xml.rels` file contents.\r\n * @param {object} xml\r\n * @return {object}\r\n */\nexport default function parseFilePaths(content, xml) {\n // Example:\n // \n // ...\n // \n // \n var document = xml.createDocument(content);\n var filePaths = {\n sheets: {},\n sharedStrings: undefined,\n styles: undefined\n };\n var addFilePathInfo = function addFilePathInfo(relationship) {\n var filePath = relationship.getAttribute('Target');\n var fileType = relationship.getAttribute('Type');\n switch (fileType) {\n case 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles':\n filePaths.styles = getFilePath(filePath);\n break;\n case 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings':\n filePaths.sharedStrings = getFilePath(filePath);\n break;\n case 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet':\n filePaths.sheets[relationship.getAttribute('Id')] = getFilePath(filePath);\n break;\n }\n };\n getRelationships(document).forEach(addFilePathInfo);\n\n // Seems like \"sharedStrings.xml\" is not required to exist.\n // For example, when the spreadsheet doesn't contain any strings.\n // https://github.com/catamphetamine/read-excel-file/issues/85\n // if (!filePaths.sharedStrings) {\n // throw new Error('\"sharedStrings.xml\" file not found in the *.xlsx file')\n // }\n\n return filePaths;\n}\nfunction getFilePath(path) {\n // Normally, `path` is a relative path inside the ZIP archive,\n // like \"worksheets/sheet1.xml\", or \"sharedStrings.xml\", or \"styles.xml\".\n // There has been one weird case when file path was an absolute path,\n // like \"/xl/worksheets/sheet1.xml\" (specifically for sheets):\n // https://github.com/catamphetamine/read-excel-file/pull/95\n // Other libraries (like `xlsx`) and software (like Google Docs)\n // seem to support such absolute file paths, so this library does too.\n if (path[0] === '/') {\n return path.slice('/'.length);\n }\n // // Seems like a path could also be a URL.\n // // http://officeopenxml.com/anatomyofOOXML-xlsx.php\n // if (/^[a-z]+\\:\\/\\//.test(path)) {\n // return path\n // }\n return 'xl/' + path;\n}\n//# sourceMappingURL=parseFilePaths.js.map","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { getBaseStyles, getCellStyles, getNumberFormats } from '../xml/xlsx.js';\n\n// http://officeopenxml.com/SSstyles.php\n// Returns an array of cell styles.\n// A cell style index is its ID.\nexport default function parseStyles(content, xml) {\n if (!content) {\n return {};\n }\n\n // https://social.msdn.microsoft.com/Forums/sqlserver/en-US/708978af-b598-45c4-a598-d3518a5a09f0/howwhen-is-cellstylexfs-vs-cellxfs-applied-to-a-cell?forum=os_binaryfile\n // https://www.office-forums.com/threads/cellxfs-cellstylexfs.2163519/\n var doc = xml.createDocument(content);\n var baseStyles = getBaseStyles(doc).map(parseCellStyle);\n var numberFormats = getNumberFormats(doc).map(parseNumberFormatStyle).reduce(function (formats, format) {\n // Format ID is a numeric index.\n // There're some standard \"built-in\" formats (in Excel) up to about `100`.\n formats[format.id] = format;\n return formats;\n }, []);\n var getCellStyle = function getCellStyle(xf) {\n if (xf.hasAttribute('xfId')) {\n return _objectSpread(_objectSpread({}, baseStyles[xf.xfId]), parseCellStyle(xf, numberFormats));\n }\n return parseCellStyle(xf, numberFormats);\n };\n return getCellStyles(doc).map(getCellStyle);\n}\nfunction parseNumberFormatStyle(numFmt) {\n return {\n id: numFmt.getAttribute('numFmtId'),\n template: numFmt.getAttribute('formatCode')\n };\n}\n\n// http://www.datypic.com/sc/ooxml/e-ssml_xf-2.html\nfunction parseCellStyle(xf, numFmts) {\n var style = {};\n if (xf.hasAttribute('numFmtId')) {\n var numberFormatId = xf.getAttribute('numFmtId');\n // Built-in number formats don't have a `` element in `styles.xml`.\n // https://hexdocs.pm/xlsxir/number_styles.html\n if (numFmts[numberFormatId]) {\n style.numberFormat = numFmts[numberFormatId];\n } else {\n style.numberFormat = {\n id: numberFormatId\n };\n }\n }\n return style;\n}\n//# sourceMappingURL=parseStyles.js.map","import { getSharedStrings } from '../xml/xlsx.js';\nexport default function parseSharedStrings(content, xml) {\n if (!content) {\n return [];\n }\n return getSharedStrings(xml.createDocument(content));\n}\n//# sourceMappingURL=parseSharedStrings.js.map","// Parses an Excel Date (\"serial\") into a corresponding javascript Date in UTC+0 timezone.\n// (with time equal to 00:00)\n//\n// https://www.pcworld.com/article/3063622/software/mastering-excel-date-time-serial-numbers-networkdays-datevalue-and-more.html\n// \"If you need to calculate dates in your spreadsheets,\n// Excel uses its own unique system, which it calls Serial Numbers\".\n//\nexport default function parseExcelDate(excelSerialDate, options) {\n // https://support.microsoft.com/en-gb/help/214330/differences-between-the-1900-and-the-1904-date-system-in-excel\n if (options && options.epoch1904) {\n excelSerialDate += 1462;\n }\n\n // \"Excel serial date\" is just\n // the count of days since `01/01/1900`\n // (seems that it may be even fractional).\n //\n // The count of days elapsed\n // since `01/01/1900` (Excel epoch)\n // till `01/01/1970` (Unix epoch).\n // Accounts for leap years\n // (19 of them, yielding 19 extra days).\n var daysBeforeUnixEpoch = 70 * 365 + 19;\n\n // An hour, approximately, because a minute\n // may be longer than 60 seconds, due to \"leap seconds\".\n //\n // Still, Javascript `Date` (and UNIX time in general) intentionally\n // drops the concept of \"leap seconds\" in order to make things simpler.\n // So it's fine.\n // https://stackoverflow.com/questions/53019726/where-are-the-leap-seconds-in-javascript\n //\n // \"The JavaScript Date object specifically adheres to the concept of Unix Time\n // (albeit with higher precision). This is part of the POSIX specification,\n // and thus is sometimes called \"POSIX Time\". It does not count leap seconds,\n // but rather assumes every day had exactly 86,400 seconds. You can read about\n // this in section 20.3.1.1 of the current ECMAScript specification, which states:\n //\n // \"Time is measured in ECMAScript in milliseconds since 01 January, 1970 UTC.\n // In time values leap seconds are ignored. It is assumed that there are exactly\n // 86,400,000 milliseconds per day.\"\n //\n // The fact is, that the unpredictable nature of leap seconds makes them very\n // difficult to work with in APIs. One can't generally pass timestamps around\n // that need leap seconds tables to be interpreted correctly, and expect that\n // one system will interpret them the same as another. For example, while your\n // example timestamp 1483228826 is 2017-01-01T00:00:00Z on your system,\n // it would be interpreted as 2017-01-01T00:00:26Z on POSIX based systems,\n // or systems without leap second tables. So they aren't portable.\n // Even on systems that have full updated tables, there's no telling what those\n // tables will contain in the future (beyond the 6-month IERS announcement period),\n // so I can't produce a future timestamp without risk that it may eventually change.\n //\n // To be clear - to support leap seconds in a programming language, the implementation\n // must go out of its way to do so, and must make tradeoffs that are not always acceptable.\n // Though there are exceptions, the general position is to not support them - not because\n // of any subversion or active countermeasures, but because supporting them properly is much,\n // much harder.\"\n //\n // https://en.wikipedia.org/wiki/Unix_time#Leap_seconds\n // https://en.wikipedia.org/wiki/Leap_year\n // https://en.wikipedia.org/wiki/Leap_second\n //\n var hour = 60 * 60 * 1000;\n return new Date(Math.round((excelSerialDate - daysBeforeUnixEpoch) * 24 * hour));\n}\n//# sourceMappingURL=parseDate.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\n// XLSX does have \"d\" type for dates, but it's not commonly used.\n// Instead, it prefers using \"n\" type for storing dates as timestamps.\n//\n// Whether a numeric value is a number or a date timestamp, it sometimes could be\n// detected by looking at the value \"format\" and seeing if it's a date-specific one.\n// https://github.com/catamphetamine/read-excel-file/issues/3#issuecomment-395770777\n//\n// The list of generic numeric value \"formats\":\n// https://xlsxwriter.readthedocs.io/format.html#format-set-num-format\n//\nexport default function isDateTimestamp(styleId, styles, options) {\n if (styleId) {\n var style = styles[styleId];\n if (!style) {\n throw new Error(\"Cell style not found: \".concat(styleId));\n }\n if (!style.numberFormat) {\n return false;\n }\n if (\n // Whether it's a \"number format\" that's conventionally used for storing date timestamps.\n BUILT_IN_DATE_NUMBER_FORMAT_IDS.indexOf(Number(style.numberFormat.id)) >= 0 ||\n // Whether it's a \"number format\" that uses a \"formatting template\"\n // that the developer is certain is a date formatting template.\n options.dateFormat && style.numberFormat.template === options.dateFormat ||\n // Whether the \"smart formatting template\" feature is not disabled\n // and it has detected that it's a date formatting template by looking at it.\n options.smartDateParser !== false && style.numberFormat.template && isDateTemplate(style.numberFormat.template)) {\n return true;\n }\n }\n}\n\n// https://hexdocs.pm/xlsxir/number_styles.html\nvar BUILT_IN_DATE_NUMBER_FORMAT_IDS = [14, 15, 16, 17, 18, 19, 20, 21, 22, 27, 30, 36, 45, 46, 47, 50, 57];\n\n// On some date formats, there's an \"[$-414]\" prefix.\n// I don't have any idea what that is.\n//\n// https://stackoverflow.com/questions/4730152/what-indicates-an-office-open-xml-cell-contains-a-date-time-value\n//\n// Examples:\n//\n// * 27 (built-in format) \"[$-404]e/m/d\"\n// * 164 (custom format) \"[$-414]mmmm\\ yyyy;@\"\n//\nvar DATE_FORMAT_WEIRD_PREFIX = /^\\[\\$-414\\]/;\n\n// On some date formats, there's an \";@\" postfix.\n// I don't have any idea what that is.\n// Examples:\n//\n// * 164 (custom format) \"m/d/yyyy;@\"\n// * 164 (custom format) \"[$-414]mmmm\\ yyyy;@\"\n//\nvar DATE_FORMAT_WEIRD_POSTFIX = /;@$/;\nfunction isDateTemplate(template) {\n // Date format tokens could be in upper case or in lower case.\n // There seems to be no single standard.\n // So lowercase the template first.\n template = template.toLowerCase();\n\n // On some date formats, there's an \"[$-414]\" prefix.\n // I don't have any idea what that is. Trim it.\n template = template.replace(DATE_FORMAT_WEIRD_PREFIX, '');\n\n // On some date formats, there's an \";@\" postfix.\n // I don't have any idea what that is. Trim it.\n template = template.replace(DATE_FORMAT_WEIRD_POSTFIX, '');\n var tokens = template.split(/\\W+/);\n for (var _iterator = _createForOfIteratorHelperLoose(tokens), _step; !(_step = _iterator()).done;) {\n var token = _step.value;\n if (DATE_TEMPLATE_TOKENS.indexOf(token) < 0) {\n return false;\n }\n }\n return true;\n}\n\n// These tokens could be in upper case or in lower case.\n// There seems to be no single standard, so using lower case.\nvar DATE_TEMPLATE_TOKENS = [\n// Seconds (min two digits). Example: \"05\".\n'ss',\n// Minutes (min two digits). Example: \"05\". Could also be \"Months\". Weird.\n'mm',\n// Hours. Example: \"1\".\n'h',\n// Hours (min two digits). Example: \"01\".\n'hh',\n// \"AM\" part of \"AM/PM\". Lowercased just in case.\n'am',\n// \"PM\" part of \"AM/PM\". Lowercased just in case.\n'pm',\n// Day. Example: \"1\"\n'd',\n// Day (min two digits). Example: \"01\"\n'dd',\n// Month (numeric). Example: \"1\".\n'm',\n// Month (numeric, min two digits). Example: \"01\". Could also be \"Minutes\". Weird.\n'mm',\n// Month (shortened month name). Example: \"Jan\".\n'mmm',\n// Month (full month name). Example: \"January\".\n'mmmm',\n// Two-digit year. Example: \"20\".\n'yy',\n// Full year. Example: \"2020\".\n'yyyy',\n// I don't have any idea what \"e\" means.\n// It's used in \"built-in\" XLSX formats:\n// * 27 '[$-404]e/m/d';\n// * 36 '[$-404]e/m/d';\n// * 50 '[$-404]e/m/d';\n// * 57 '[$-404]e/m/d';\n'e'];\n//# sourceMappingURL=isDateTimestamp.js.map","import parseDate from './parseDate.js';\nimport isDateTimestamp from './isDateTimestamp.js';\n\n// Parses a string `value` of a cell.\nexport default function parseCellValue(value, type, _ref) {\n var getInlineStringValue = _ref.getInlineStringValue,\n getInlineStringXml = _ref.getInlineStringXml,\n getStyleId = _ref.getStyleId,\n styles = _ref.styles,\n values = _ref.values,\n properties = _ref.properties,\n options = _ref.options;\n if (!type) {\n // Default cell type is \"n\" (numeric).\n // http://www.datypic.com/sc/ooxml/t-ssml_CT_Cell.html\n type = 'n';\n }\n\n // Available Excel cell types:\n // https://github.com/SheetJS/sheetjs/blob/19620da30be2a7d7b9801938a0b9b1fd3c4c4b00/docbits/52_datatype.md\n //\n // Some other document (seems to be old):\n // http://webapp.docx4java.org/OnlineDemo/ecma376/SpreadsheetML/ST_CellType.html\n //\n switch (type) {\n // XLSX tends to store all strings as \"shared\" (indexed) ones\n // using \"s\" cell type (for saving on strage space).\n // \"str\" cell type is then generally only used for storing\n // formula-pre-calculated cell values.\n case 'str':\n value = parseString(value, options);\n break;\n\n // Sometimes, XLSX stores strings as \"inline\" strings rather than \"shared\" (indexed) ones.\n // Perhaps the specification doesn't force it to use one or another.\n // Example: `Test 123`.\n case 'inlineStr':\n value = getInlineStringValue();\n if (value === undefined) {\n throw new Error(\"Unsupported \\\"inline string\\\" cell value structure: \".concat(getInlineStringXml()));\n }\n value = parseString(value, options);\n break;\n\n // XLSX tends to store string values as \"shared\" (indexed) ones.\n // \"Shared\" strings is a way for an Excel editor to reduce\n // the file size by storing \"commonly used\" strings in a dictionary\n // and then referring to such strings by their index in that dictionary.\n // Example: `0`.\n case 's':\n // If a cell has no value then there's no `` element for it.\n // If a `` element exists then it's not empty.\n // The ``alue is a key in the \"shared strings\" dictionary of the\n // XLSX file, so look it up in the `values` dictionary by the numeric key.\n var sharedStringIndex = Number(value);\n if (isNaN(sharedStringIndex)) {\n throw new Error(\"Invalid \\\"shared\\\" string index: \".concat(value));\n }\n if (sharedStringIndex >= values.length) {\n throw new Error(\"An out-of-bounds \\\"shared\\\" string index: \".concat(value));\n }\n value = values[sharedStringIndex];\n value = parseString(value, options);\n break;\n\n // Boolean (TRUE/FALSE) values are stored as either \"1\" or \"0\"\n // in cells of type \"b\".\n case 'b':\n if (value === '1') {\n value = true;\n } else if (value === '0') {\n value = false;\n } else {\n throw new Error(\"Unsupported \\\"boolean\\\" cell value: \".concat(value));\n }\n break;\n\n // XLSX specification seems to support cells of type \"z\":\n // blank \"stub\" cells that should be ignored by data processing utilities.\n case 'z':\n value = undefined;\n break;\n\n // XLSX specification also defines cells of type \"e\" containing a numeric \"error\" code.\n // It's not clear what that means though.\n // They also wrote: \"and `w` property stores its common name\".\n // It's unclear what they meant by that.\n case 'e':\n value = decodeError(value);\n break;\n\n // XLSX supports date cells of type \"d\", though seems like it (almost?) never\n // uses it for storing dates, preferring \"n\" numeric timestamp cells instead.\n // The value of a \"d\" cell is supposedly a string in \"ISO 8601\" format.\n // I haven't seen an XLSX file having such cells.\n // Example: `2021-06-10T00:47:45.700Z`.\n case 'd':\n if (value === undefined) {\n break;\n }\n var parsedDate = new Date(value);\n if (isNaN(parsedDate.valueOf())) {\n throw new Error(\"Unsupported \\\"date\\\" cell value: \".concat(value));\n }\n value = parsedDate;\n break;\n\n // Numeric cells have type \"n\".\n case 'n':\n if (value === undefined) {\n break;\n }\n var isDateTimestampNumber = isDateTimestamp(getStyleId(), styles, options);\n // XLSX does have \"d\" type for dates, but it's not commonly used.\n // Instead, it prefers using \"n\" type for storing dates as timestamps.\n if (isDateTimestampNumber) {\n // Parse the number from string.\n value = parseNumberDefault(value);\n // Parse the number as a date timestamp.\n value = parseDate(value, properties);\n } else {\n // Parse the number from string.\n // Supports custom parsing function to work around javascript number encoding precision issues.\n // https://gitlab.com/catamphetamine/read-excel-file/-/issues/85\n value = (options.parseNumber || parseNumberDefault)(value);\n }\n break;\n default:\n throw new TypeError(\"Cell type not supported: \".concat(type));\n }\n\n // Convert empty values to `null`.\n if (value === undefined) {\n value = null;\n }\n return value;\n}\n\n// Decodes numeric error code to a string code.\n// https://github.com/SheetJS/sheetjs/blob/19620da30be2a7d7b9801938a0b9b1fd3c4c4b00/docbits/52_datatype.md\nfunction decodeError(errorCode) {\n // While the error values are determined by the application,\n // the following are some example error values that could be used:\n switch (errorCode) {\n case 0x00:\n return '#NULL!';\n case 0x07:\n return '#DIV/0!';\n case 0x0F:\n return '#VALUE!';\n case 0x17:\n return '#REF!';\n case 0x1D:\n return '#NAME?';\n case 0x24:\n return '#NUM!';\n case 0x2A:\n return '#N/A';\n case 0x2B:\n return '#GETTING_DATA';\n default:\n // Such error code doesn't exist. I made it up.\n return \"#ERROR_\".concat(errorCode);\n }\n}\nfunction parseString(value, options) {\n // In some weird cases, a developer might want to disable\n // the automatic trimming of all strings.\n // For example, leading spaces might express a tree-like hierarchy.\n // https://github.com/catamphetamine/read-excel-file/pull/106#issuecomment-1136062917\n if (options.trim !== false) {\n value = value.trim();\n }\n if (value === '') {\n value = undefined;\n }\n return value;\n}\n\n// Parses a number from string.\n// Throws an error if the number couldn't be parsed.\n// When parsing floating-point number, is affected by\n// the javascript number encoding precision issues:\n// https://www.youtube.com/watch?v=2gIxbTn7GSc\n// https://www.avioconsulting.com/blog/overcoming-javascript-numeric-precision-issues\nfunction parseNumberDefault(stringifiedNumber) {\n var parsedNumber = Number(stringifiedNumber);\n if (isNaN(parsedNumber)) {\n throw new Error(\"Invalid \\\"numeric\\\" cell value: \".concat(stringifiedNumber));\n }\n return parsedNumber;\n}\n//# sourceMappingURL=parseCellValue.js.map","// Maps \"A1\"-like coordinates to `{ row, column }` numeric coordinates.\nvar LETTERS = [\"\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\"];\nexport function calculateDimensions(cells) {\n var comparator = function comparator(a, b) {\n return a - b;\n };\n var allRows = cells.map(function (cell) {\n return cell.row;\n }).sort(comparator);\n var allCols = cells.map(function (cell) {\n return cell.column;\n }).sort(comparator);\n var minRow = allRows[0];\n var maxRow = allRows[allRows.length - 1];\n var minCol = allCols[0];\n var maxCol = allCols[allCols.length - 1];\n return [{\n row: minRow,\n column: minCol\n }, {\n row: maxRow,\n column: maxCol\n }];\n}\n\n// Converts a letter coordinate to a digit coordinate.\n// Examples: \"A\" -> 1, \"B\" -> 2, \"Z\" -> 26, \"AA\" -> 27, etc.\nfunction columnLettersToNumber(columnLetters) {\n // `for ... of ...` would require Babel polyfill for iterating a string.\n var n = 0;\n var i = 0;\n while (i < columnLetters.length) {\n n *= 26;\n n += LETTERS.indexOf(columnLetters[i]);\n i++;\n }\n return n;\n}\nexport function parseCellCoordinates(coords) {\n // Coordinate examples: \"AA2091\", \"R988\", \"B1\".\n coords = coords.split(/(\\d+)/);\n return [\n // Row.\n parseInt(coords[1]),\n // Column.\n columnLettersToNumber(coords[0].trim())];\n}\n//# sourceMappingURL=coordinates.js.map","import parseCellValue from './parseCellValue.js';\nimport { parseCellCoordinates } from './coordinates.js';\nimport { getCellValue, getCellInlineStringValue } from '../xml/xlsx.js';\nimport { getOuterXml } from '../xml/dom.js';\n\n// Example of a ``ell element:\n//\n// \n// string ā€” formula.\n// string ā€” formula pre-computed value.\n// \n// string ā€” an `inlineStr` string (rather than a \"common string\" from a dictionary).\n// \n// \n// ...\n// \n// string\n// \n// \n// string\n// \n// \n// \n// \n// \n// \n// \n// \n// \n//\nexport default function parseCell(node, sheet, xml, values, styles, properties, options) {\n var coords = parseCellCoordinates(node.getAttribute('r'));\n var valueElement = getCellValue(sheet, node);\n\n // For `xpath`, `value` can be `undefined` while for native `DOMParser` it's `null`.\n // So using `value && ...` instead of `if (value !== undefined) { ... }` here\n // for uniform compatibility with both `xpath` and native `DOMParser`.\n var value = valueElement && valueElement.textContent;\n var type;\n if (node.hasAttribute('t')) {\n type = node.getAttribute('t');\n }\n return {\n row: coords[0],\n column: coords[1],\n value: parseCellValue(value, type, {\n getInlineStringValue: function getInlineStringValue() {\n return getCellInlineStringValue(sheet, node);\n },\n getInlineStringXml: function getInlineStringXml() {\n return getOuterXml(node);\n },\n getStyleId: function getStyleId() {\n return node.getAttribute('s');\n },\n styles: styles,\n values: values,\n properties: properties,\n options: options\n })\n };\n}\n//# sourceMappingURL=parseCell.js.map","import parseCell from './parseCell.js';\nimport { getCells, getMergedCells } from '../xml/xlsx.js';\nexport default function parseCells(sheet, xml, values, styles, properties, options) {\n var cells = getCells(sheet);\n if (cells.length === 0) {\n return [];\n }\n\n // const mergedCells = getMergedCells(sheet)\n // for (const mergedCell of mergedCells) {\n // const [from, to] = mergedCell.split(':').map(parseCellCoordinates)\n // console.log('Merged Cell.', 'From:', from, 'To:', to)\n // }\n\n return cells.map(function (node) {\n return parseCell(node, sheet, xml, values, styles, properties, options);\n });\n}\n//# sourceMappingURL=parseCells.js.map","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nimport { parseCellCoordinates } from './coordinates.js';\nimport { getDimensions } from '../xml/xlsx.js';\n\n// `dimensions` defines the spreadsheet area containing all non-empty cells.\n// https://docs.microsoft.com/en-us/dotnet/api/documentformat.openxml.spreadsheet.sheetdimension?view=openxml-2.8.1\nexport default function parseDimensions(sheet) {\n var dimensions = getDimensions(sheet);\n if (dimensions) {\n dimensions = dimensions.split(':').map(parseCellCoordinates).map(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n row = _ref2[0],\n column = _ref2[1];\n return {\n row: row,\n column: column\n };\n });\n // Sometimes there can be just a single cell as a spreadsheet's \"dimensions\".\n // For example, the default \"dimensions\" in Apache POI library is \"A1\",\n // meaning that only the first cell in the spreadsheet is used.\n //\n // A quote from Apache POI library:\n // \"Single cell ranges are formatted like single cell references (e.g. 'A1' instead of 'A1:A1').\"\n //\n if (dimensions.length === 1) {\n dimensions = [dimensions[0], dimensions[0]];\n }\n return dimensions;\n }\n}\n//# sourceMappingURL=parseDimensions.js.map","import parseCells from './parseCells.js';\nimport parseDimensions from './parseDimensions.js';\nimport { calculateDimensions } from './coordinates.js';\nexport default function parseSheet(content, xml, values, styles, properties, options) {\n var sheet = xml.createDocument(content);\n var cells = parseCells(sheet, xml, values, styles, properties, options);\n\n // `dimensions` defines the spreadsheet area containing all non-empty cells.\n // https://docs.microsoft.com/en-us/dotnet/api/documentformat.openxml.spreadsheet.sheetdimension?view=openxml-2.8.1\n var dimensions = parseDimensions(sheet) || calculateDimensions(cells);\n return {\n cells: cells,\n dimensions: dimensions\n };\n}\n//# sourceMappingURL=parseSheet.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nexport default function dropEmptyRows(data) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n rowIndexMap = _ref.rowIndexMap,\n _ref$accessor = _ref.accessor,\n accessor = _ref$accessor === void 0 ? function (_) {\n return _;\n } : _ref$accessor,\n onlyTrimAtTheEnd = _ref.onlyTrimAtTheEnd;\n // Drop empty rows.\n var i = data.length - 1;\n while (i >= 0) {\n // Check if the row is empty.\n var empty = true;\n for (var _iterator = _createForOfIteratorHelperLoose(data[i]), _step; !(_step = _iterator()).done;) {\n var cell = _step.value;\n if (accessor(cell) !== null) {\n empty = false;\n break;\n }\n }\n // Remove the empty row.\n if (empty) {\n data.splice(i, 1);\n if (rowIndexMap) {\n rowIndexMap.splice(i, 1);\n }\n } else if (onlyTrimAtTheEnd) {\n break;\n }\n i--;\n }\n return data;\n}\n//# sourceMappingURL=dropEmptyRows.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nexport default function dropEmptyColumns(data) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$accessor = _ref.accessor,\n accessor = _ref$accessor === void 0 ? function (_) {\n return _;\n } : _ref$accessor,\n onlyTrimAtTheEnd = _ref.onlyTrimAtTheEnd;\n var i = data[0].length - 1;\n while (i >= 0) {\n var empty = true;\n for (var _iterator = _createForOfIteratorHelperLoose(data), _step; !(_step = _iterator()).done;) {\n var row = _step.value;\n if (accessor(row[i]) !== null) {\n empty = false;\n break;\n }\n }\n if (empty) {\n var j = 0;\n while (j < data.length) {\n data[j].splice(i, 1);\n j++;\n }\n } else if (onlyTrimAtTheEnd) {\n break;\n }\n i--;\n }\n return data;\n}\n//# sourceMappingURL=dropEmptyColumns.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nimport dropEmptyRows from './dropEmptyRows.js';\nimport dropEmptyColumns from './dropEmptyColumns.js';\nexport default function getData(sheet, options) {\n var dimensions = sheet.dimensions,\n cells = sheet.cells;\n\n // If the sheet is empty.\n if (cells.length === 0) {\n return [];\n }\n var _dimensions = _slicedToArray(dimensions, 2),\n leftTop = _dimensions[0],\n rightBottom = _dimensions[1];\n\n // Don't discard empty rows or columns at the start.\n // https://github.com/catamphetamine/read-excel-file/issues/102\n // const colsCount = (rightBottom.column - leftTop.column) + 1\n // const rowsCount = (rightBottom.row - leftTop.row) + 1\n\n var colsCount = rightBottom.column;\n var rowsCount = rightBottom.row;\n\n // Initialize spreadsheet data structure.\n var data = new Array(rowsCount);\n var i = 0;\n while (i < rowsCount) {\n data[i] = new Array(colsCount);\n var j = 0;\n while (j < colsCount) {\n data[i][j] = null;\n j++;\n }\n i++;\n }\n\n // Fill in spreadsheet `data`.\n // (this code implies that `cells` aren't necessarily sorted by row and column:\n // maybe that's not correct, this piece code was initially copy-pasted\n // from some other library that used `XPath`)\n for (var _iterator = _createForOfIteratorHelperLoose(cells), _step; !(_step = _iterator()).done;) {\n var cell = _step.value;\n // Don't discard empty rows or columns at the start.\n // https://github.com/catamphetamine/read-excel-file/issues/102\n // const rowIndex = cell.row - leftTop.row\n // const columnIndex = cell.column - leftTop.column\n var rowIndex = cell.row - 1;\n var columnIndex = cell.column - 1;\n // Ignore the data in the cell if it's outside of the spreadsheet's \"dimensions\".\n if (columnIndex < colsCount && rowIndex < rowsCount) {\n data[rowIndex][columnIndex] = cell.value;\n }\n }\n\n // Fill in the row map.\n var rowIndexMap = options.rowMap;\n if (rowIndexMap) {\n var _i = 0;\n while (_i < data.length) {\n rowIndexMap[_i] = _i;\n _i++;\n }\n }\n\n // Drop empty columns or rows.\n data = dropEmptyRows(dropEmptyColumns(data, {\n onlyTrimAtTheEnd: true\n }), {\n onlyTrimAtTheEnd: true,\n rowIndexMap: rowIndexMap\n });\n\n // Optionally transform data before applying `schema`.\n if (options.transformData) {\n data = options.transformData(data);\n // data = options.transformData(data, {\n // dropEmptyRowsAndColumns(data) {\n // return dropEmptyRows(dropEmptyColumns(data), { rowIndexMap })\n // }\n // })\n }\n\n return data;\n}\n//# sourceMappingURL=getData.js.map","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport parseProperties from './parseProperties.js';\nimport parseFilePaths from './parseFilePaths.js';\nimport parseStyles from './parseStyles.js';\nimport parseSharedStrings from './parseSharedStrings.js';\nimport parseSheet from './parseSheet.js';\nimport getData from './getData.js';\n\n// For an introduction in reading `*.xlsx` files see \"The minimum viable XLSX reader\":\n// https://www.brendanlong.com/the-minimum-viable-xlsx-reader.html\n\n/**\r\n * Reads an (unzipped) XLSX file structure into a 2D array of cells.\r\n * @param {object} contents - A list of XML files inside XLSX file (which is a zipped directory).\r\n * @param {number?} options.sheet - Workbook sheet id (`1` by default).\r\n * @param {string?} options.dateFormat - Date format, e.g. \"mm/dd/yyyy\". Values having this format template set will be parsed as dates.\r\n * @param {object} contents - A list of XML files inside XLSX file (which is a zipped directory).\r\n * @return {object} An object of shape `{ data, cells, properties }`. `data: string[][]` is an array of rows, each row being an array of cell values. `cells: string[][]` is an array of rows, each row being an array of cells. `properties: object` is the spreadsheet properties (e.g. whether date epoch is 1904 instead of 1900).\r\n */\nexport default function readXlsx(contents, xml) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n if (!options.sheet) {\n options = _objectSpread({\n sheet: 1\n }, options);\n }\n var getXmlFileContent = function getXmlFileContent(filePath) {\n if (!contents[filePath]) {\n throw new Error(\"\\\"\".concat(filePath, \"\\\" file not found inside the *.xlsx file zip archive\"));\n }\n return contents[filePath];\n };\n\n // Some Excel editors don't want to use standard naming scheme for sheet files.\n // https://github.com/tidyverse/readxl/issues/104\n var filePaths = parseFilePaths(getXmlFileContent('xl/_rels/workbook.xml.rels'), xml);\n\n // Default file path for \"shared strings\": \"xl/sharedStrings.xml\".\n var values = filePaths.sharedStrings ? parseSharedStrings(getXmlFileContent(filePaths.sharedStrings), xml) : [];\n\n // Default file path for \"styles\": \"xl/styles.xml\".\n var styles = filePaths.styles ? parseStyles(getXmlFileContent(filePaths.styles), xml) : {};\n var properties = parseProperties(getXmlFileContent('xl/workbook.xml'), xml);\n\n // A feature for getting the list of sheets in an Excel file.\n // https://github.com/catamphetamine/read-excel-file/issues/14\n if (options.getSheets) {\n return properties.sheets.map(function (_ref) {\n var name = _ref.name;\n return {\n name: name\n };\n });\n }\n\n // Find the sheet by name, or take the first one.\n var sheetId = getSheetId(options.sheet, properties.sheets);\n\n // If the sheet wasn't found then throw an error.\n // Example: \"xl/worksheets/sheet1.xml\".\n if (!sheetId || !filePaths.sheets[sheetId]) {\n throw createSheetNotFoundError(options.sheet, properties.sheets);\n }\n\n // Parse sheet data.\n var sheet = parseSheet(getXmlFileContent(filePaths.sheets[sheetId]), xml, values, styles, properties, options);\n options = _objectSpread({\n // Create a `rowIndexMap` for the original dataset, if not passed,\n // because \"empty\" rows will be dropped from the input data.\n rowMap: []\n }, options);\n\n // Get spreadsheet data.\n var data = getData(sheet, options);\n\n // Can return properties, if required.\n if (options.properties) {\n return {\n data: data,\n properties: properties\n };\n }\n\n // Return spreadsheet data.\n return data;\n}\nfunction getSheetId(sheet, sheets) {\n if (typeof sheet === 'number') {\n var _sheet = sheets[sheet - 1];\n return _sheet && _sheet.relationId;\n }\n for (var _iterator = _createForOfIteratorHelperLoose(sheets), _step; !(_step = _iterator()).done;) {\n var _sheet2 = _step.value;\n if (_sheet2.name === sheet) {\n return _sheet2.relationId;\n }\n }\n}\nfunction createSheetNotFoundError(sheet, sheets) {\n var sheetsList = sheets && sheets.map(function (sheet, i) {\n return \"\\\"\".concat(sheet.name, \"\\\" (#\").concat(i + 1, \")\");\n }).join(', ');\n return new Error(\"Sheet \".concat(typeof sheet === 'number' ? '#' + sheet : '\"' + sheet + '\"', \" not found in the *.xlsx file.\").concat(sheets ? ' Available sheets: ' + sheetsList + '.' : ''));\n}\n//# sourceMappingURL=readXlsx.js.map","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct.bind(); } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nvar InvalidError = /*#__PURE__*/function (_Error) {\n _inherits(InvalidError, _Error);\n var _super = _createSuper(InvalidError);\n function InvalidError(reason) {\n var _this;\n _classCallCheck(this, InvalidError);\n _this = _super.call(this, 'invalid');\n _this.reason = reason;\n return _this;\n }\n return _createClass(InvalidError);\n}( /*#__PURE__*/_wrapNativeSuper(Error));\nexport { InvalidError as default };\n//# sourceMappingURL=InvalidError.js.map","import InvalidError from './InvalidError.js';\nexport default function NumberType(value) {\n // An XLSX file editing software might not always correctly\n // detect numeric values in string-type cells. Users won't bother\n // manually selecting a cell type, so the editing software has to guess\n // based on the user's input. One can assume that such auto-detection\n // might not always work.\n //\n // So, if a cell is supposed to be a numeric one, convert a string value to a number.\n //\n if (typeof value === 'string') {\n var stringifiedValue = value;\n value = Number(value);\n if (String(value) !== stringifiedValue) {\n throw new InvalidError('not_a_number');\n }\n }\n if (typeof value !== 'number') {\n throw new InvalidError('not_a_number');\n }\n if (isNaN(value)) {\n throw new InvalidError('invalid_number');\n }\n // At this point, `value` can only be a number.\n //\n // The global `isFinite()` function filters out:\n // * NaN\n // * -Infinity\n // * Infinity\n //\n // All other values pass (including non-numbers).\n //\n if (!isFinite(value)) {\n throw new InvalidError('out_of_bounds');\n }\n return value;\n}\n//# sourceMappingURL=Number.js.map","import InvalidError from './InvalidError.js';\nexport default function StringType(value) {\n if (typeof value === 'string') {\n return value;\n }\n // Excel tends to perform a forced automatic convertion of string-type values\n // to number-type ones when the user has input them. Otherwise, users wouldn't\n // be able to perform formula calculations on those cell values because users\n // won't bother manually choosing a \"numeric\" cell type for each cell, and\n // even if they did, choosing a \"numeric\" cell type every time wouldn't be an\n // acceptable \"user experience\".\n //\n // So, if a cell value is supposed to be a string and Excel has automatically\n // converted it to a number, perform a backwards conversion.\n //\n if (typeof value === 'number') {\n if (isNaN(value)) {\n throw new InvalidError('invalid_number');\n }\n // The global `isFinite()` function filters out:\n // * NaN\n // * -Infinity\n // * Infinity\n //\n // All other values pass (including non-numbers).\n //\n if (!isFinite(value)) {\n throw new InvalidError('out_of_bounds');\n }\n return String(value);\n }\n throw new InvalidError('not_a_string');\n}\n//# sourceMappingURL=String.js.map","import InvalidError from './InvalidError.js';\nexport default function BooleanType(value) {\n if (typeof value === 'boolean') {\n return value;\n }\n throw new InvalidError('not_a_boolean');\n}\n//# sourceMappingURL=Boolean.js.map","import parseDate from '../read/parseDate.js';\nimport InvalidError from './InvalidError.js';\nexport default function DateType(value, _ref) {\n var properties = _ref.properties;\n // XLSX has no specific format for dates.\n // Sometimes a date can be heuristically detected.\n // https://github.com/catamphetamine/read-excel-file/issues/3#issuecomment-395770777\n if (value instanceof Date) {\n if (isNaN(value.valueOf())) {\n throw new InvalidError('out_of_bounds');\n }\n return value;\n }\n if (typeof value === 'number') {\n if (isNaN(value)) {\n throw new InvalidError('invalid_number');\n }\n if (!isFinite(value)) {\n throw new InvalidError('out_of_bounds');\n }\n var date = parseDate(value, properties);\n if (isNaN(date.valueOf())) {\n throw new InvalidError('out_of_bounds');\n }\n return date;\n }\n throw new InvalidError('not_a_date');\n}\n//# sourceMappingURL=Date.js.map","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport NumberType from '../../types/Number.js';\nimport StringType from '../../types/String.js';\nimport BooleanType from '../../types/Boolean.js';\nimport DateType from '../../types/Date.js';\nvar DEFAULT_OPTIONS = {\n schemaPropertyValueForMissingColumn: undefined,\n schemaPropertyValueForUndefinedCellValue: undefined,\n schemaPropertyValueForNullCellValue: null,\n schemaPropertyShouldSkipRequiredValidationForMissingColumn: function schemaPropertyShouldSkipRequiredValidationForMissingColumn() {\n return false;\n },\n // `getEmptyObjectValue(object, { path })` applies to both the top-level object\n // and any of its sub-objects.\n getEmptyObjectValue: function getEmptyObjectValue() {\n return null;\n },\n getEmptyArrayValue: function getEmptyArrayValue() {\n return null;\n },\n isColumnOriented: false,\n arrayValueSeparator: ','\n};\n\n/**\r\n * (this function is exported from `read-excel-file/map`)\r\n * Converts spreadsheet-alike data structure into an array of objects.\r\n * The first row should be the list of column headers.\r\n * @param {any[][]} data - An array of rows, each row being an array of cells.\r\n * @param {object} schema\r\n * @param {object} [options]\r\n * @param {null} [options.schemaPropertyValueForMissingColumn] ā€” By default, when some of the `schema` columns are missing in the input `data`, those properties are set to `undefined` in the output objects. Pass `schemaPropertyValueForMissingColumn: null` to set such \"missing column\" properties to `null` in the output objects.\r\n * @param {null} [options.schemaPropertyValueForNullCellValue] ā€” By default, when it encounters a `null` value in a cell in input `data`, it sets it to `undefined` in the output object. Pass `schemaPropertyValueForNullCellValue: null` to make it set such values as `null`s in output objects.\r\n * @param {null} [options.schemaPropertyValueForUndefinedCellValue] ā€” By default, when it encounters an `undefined` value in a cell in input `data`, it it sets it to `undefined` in the output object. Pass `schemaPropertyValueForUndefinedCellValue: null` to make it set such values as `null`s in output objects.\r\n * @param {boolean} [options.schemaPropertyShouldSkipRequiredValidationForMissingColumn(column: string, { object })] ā€” By default, it does apply `required` validation to `schema` properties for which columns are missing in the input `data`. One could pass a custom `schemaPropertyShouldSkipRequiredValidationForMissingColumn(column, { object })` to disable `required` validation for missing columns in some or all cases.\r\n * @param {function} [options.getEmptyObjectValue(object, { path })] ā€” By default, it returns `null` for an \"empty\" resulting object. One could override that value using `getEmptyObjectValue(object, { path })` parameter. The value applies to both top-level object and any nested sub-objects in case of a nested schema, hence the additional `path?: string` parameter.\r\n * @param {function} [getEmptyArrayValue(array, { path })] ā€” By default, it returns `null` for an \"empty\" array value. One could override that value using `getEmptyArrayValue(array, { path })` parameter.\r\n * @param {boolean} [options.isColumnOriented] ā€” By default, the headers are assumed to be the first row in the `data`. Pass `isColumnOriented: true` if the headers are the first column in the `data`. i.e. if `data` is \"transposed\".\r\n * @param {object} [options.rowIndexMap] ā€” Custom row index mapping `data` rows. If present, will overwrite the indexes of `data` rows with the indexes from this `rowIndexMap`.\r\n * @return {object[]}\r\n */\nexport default function (data, schema, options) {\n if (options) {\n options = _objectSpread(_objectSpread({}, DEFAULT_OPTIONS), options);\n } else {\n options = DEFAULT_OPTIONS;\n }\n var _options = options,\n isColumnOriented = _options.isColumnOriented,\n rowIndexMap = _options.rowIndexMap;\n validateSchema(schema);\n if (isColumnOriented) {\n data = transpose(data);\n }\n var columns = data[0];\n var results = [];\n var errors = [];\n for (var i = 1; i < data.length; i++) {\n var result = read(schema, data[i], i, undefined, columns, errors, options);\n results.push(result);\n }\n\n // Set the correct `row` number in `errors` if a custom `rowIndexMap` is supplied.\n if (rowIndexMap) {\n for (var _iterator = _createForOfIteratorHelperLoose(errors), _step; !(_step = _iterator()).done;) {\n var error = _step.value;\n // Convert the `row` index in `data` to the\n // actual `row` index in the spreadsheet.\n // `- 1` converts row number to row index.\n // `+ 1` converts row index to row number.\n error.row = rowIndexMap[error.row - 1] + 1;\n }\n }\n return {\n rows: results,\n errors: errors\n };\n}\nfunction read(schema, row, rowIndex, path, columns, errors, options) {\n var object = {};\n var isEmptyObject = true;\n var createError = function createError(_ref) {\n var column = _ref.column,\n value = _ref.value,\n errorMessage = _ref.error,\n reason = _ref.reason;\n var error = {\n error: errorMessage,\n row: rowIndex + 1,\n column: column,\n value: value\n };\n if (reason) {\n error.reason = reason;\n }\n if (schema[column].type) {\n error.type = schema[column].type;\n }\n return error;\n };\n var pendingRequiredChecks = [];\n\n // For each schema entry.\n var _loop = function _loop() {\n var key = _Object$keys[_i];\n var schemaEntry = schema[key];\n var isNestedSchema = _typeof(schemaEntry.type) === 'object' && !Array.isArray(schemaEntry.type);\n\n // The path of this property inside the resulting object.\n var propertyPath = \"\".concat(path || '', \".\").concat(schemaEntry.prop);\n\n // Read the cell value for the schema entry.\n var cellValue;\n var columnIndex = columns.indexOf(key);\n var isMissingColumn = columnIndex < 0;\n if (!isMissingColumn) {\n cellValue = row[columnIndex];\n }\n var value;\n var error;\n var reason;\n\n // Get property `value` from cell value.\n if (isNestedSchema) {\n value = read(schemaEntry.type, row, rowIndex, propertyPath, columns, errors, options);\n } else {\n if (isMissingColumn) {\n value = options.schemaPropertyValueForMissingColumn;\n } else if (cellValue === undefined) {\n value = options.schemaPropertyValueForUndefinedCellValue;\n } else if (cellValue === null) {\n value = options.schemaPropertyValueForNullCellValue;\n } else if (Array.isArray(schemaEntry.type)) {\n var array = parseArray(cellValue, options.arrayValueSeparator).map(function (_value) {\n if (error) {\n return;\n }\n var result = parseValue(_value, schemaEntry, options);\n if (result.error) {\n // In case of an error, `value` won't be returned and will just be reported\n // as part of an `error` object, so it's fine assigning just an element of the array.\n value = _value;\n error = result.error;\n reason = result.reason;\n }\n return result.value;\n });\n if (!error) {\n var isEmpty = array.every(isEmptyValue);\n value = isEmpty ? options.getEmptyArrayValue(array, {\n path: propertyPath\n }) : array;\n }\n } else {\n var result = parseValue(cellValue, schemaEntry, options);\n error = result.error;\n reason = result.reason;\n value = error ? cellValue : result.value;\n }\n }\n\n // Apply `required` validation if the value is \"empty\".\n if (!error && isEmptyValue(value)) {\n if (schemaEntry.required) {\n // Will perform this `required()` validation in the end,\n // when all properties of the mapped object have been mapped.\n pendingRequiredChecks.push({\n column: key,\n value: value,\n isMissingColumn: isMissingColumn\n });\n }\n }\n if (error) {\n // If there was an error then the property value in the `object` will be `undefined`,\n // i.e it won't add the property value to the mapped object.\n errors.push(createError({\n column: key,\n value: value,\n error: error,\n reason: reason\n }));\n } else {\n // Possibly unmark the mapped object as \"empty\".\n if (isEmptyObject && !isEmptyValue(value)) {\n isEmptyObject = false;\n }\n // Set the value in the mapped object.\n // Skip setting `undefined` values because they're already `undefined`.\n if (value !== undefined) {\n object[schemaEntry.prop] = value;\n }\n }\n };\n for (var _i = 0, _Object$keys = Object.keys(schema); _i < _Object$keys.length; _i++) {\n _loop();\n }\n\n // Return `null` for an \"empty\" mapped object.\n if (isEmptyObject) {\n return options.getEmptyObjectValue(object, {\n path: path\n });\n }\n\n // Perform any `required` validations.\n for (var _i2 = 0, _pendingRequiredCheck = pendingRequiredChecks; _i2 < _pendingRequiredCheck.length; _i2++) {\n var _pendingRequiredCheck2 = _pendingRequiredCheck[_i2],\n column = _pendingRequiredCheck2.column,\n value = _pendingRequiredCheck2.value,\n isMissingColumn = _pendingRequiredCheck2.isMissingColumn;\n // Can optionally skip `required` validation for missing columns.\n var skipRequiredValidation = isMissingColumn && options.schemaPropertyShouldSkipRequiredValidationForMissingColumn(column, {\n object: object\n });\n if (!skipRequiredValidation) {\n var required = schema[column].required;\n var isRequired = typeof required === 'boolean' ? required : required(object);\n if (isRequired) {\n errors.push(createError({\n column: column,\n value: value,\n error: 'required'\n }));\n }\n }\n }\n\n // Return the mapped object.\n return object;\n}\n\n/**\r\n * Converts textual value to a javascript typed value.\r\n * @param {any} value\r\n * @param {object} schemaEntry\r\n * @return {{ value: any, error: string }}\r\n */\nexport function parseValue(value, schemaEntry, options) {\n if (value === null) {\n return {\n value: null\n };\n }\n var result;\n if (schemaEntry.parse) {\n result = parseCustomValue(value, schemaEntry.parse);\n } else if (schemaEntry.type) {\n result = parseValueOfType(value,\n // Supports parsing array types.\n // See `parseArray()` function for more details.\n // Example `type`: String[]\n // Input: 'Barack Obama, \"String, with, colons\", Donald Trump'\n // Output: ['Barack Obama', 'String, with, colons', 'Donald Trump']\n Array.isArray(schemaEntry.type) ? schemaEntry.type[0] : schemaEntry.type, options);\n } else {\n result = {\n value: value\n };\n // throw new Error('Invalid schema entry: no .type and no .parse():\\n\\n' + JSON.stringify(schemaEntry, null, 2))\n }\n // If errored then return the error.\n if (result.error) {\n return result;\n }\n if (result.value !== null) {\n if (schemaEntry.oneOf && schemaEntry.oneOf.indexOf(result.value) < 0) {\n return {\n error: 'invalid',\n reason: 'unknown'\n };\n }\n if (schemaEntry.validate) {\n try {\n schemaEntry.validate(result.value);\n } catch (error) {\n return {\n error: error.message\n };\n }\n }\n }\n return result;\n}\n\n/**\r\n * Converts textual value to a custom value using supplied `.parse()`.\r\n * @param {any} value\r\n * @param {function} parse\r\n * @return {{ value: any, error: string }}\r\n */\nfunction parseCustomValue(value, parse) {\n try {\n value = parse(value);\n if (value === undefined) {\n return {\n value: null\n };\n }\n return {\n value: value\n };\n } catch (error) {\n var result = {\n error: error.message\n };\n if (error.reason) {\n result.reason = error.reason;\n }\n return result;\n }\n}\n\n/**\r\n * Converts textual value to a javascript typed value.\r\n * @param {any} value\r\n * @param {} type\r\n * @return {{ value: (string|number|Date|boolean), error: string, reason?: string }}\r\n */\nfunction parseValueOfType(value, type, options) {\n switch (type) {\n case String:\n return parseCustomValue(value, StringType);\n case Number:\n return parseCustomValue(value, NumberType);\n case Date:\n return parseCustomValue(value, function (value) {\n return DateType(value, {\n properties: options.properties\n });\n });\n case Boolean:\n return parseCustomValue(value, BooleanType);\n default:\n if (typeof type === 'function') {\n return parseCustomValue(value, type);\n }\n throw new Error(\"Unsupported schema type: \".concat(type && type.name || type));\n }\n}\nexport function getBlock(string, endCharacter, startIndex) {\n var i = 0;\n var substring = '';\n var character;\n while (startIndex + i < string.length) {\n var _character = string[startIndex + i];\n if (_character === endCharacter) {\n return [substring, i];\n } else if (_character === '\"') {\n var block = getBlock(string, '\"', startIndex + i + 1);\n substring += block[0];\n i += '\"'.length + block[1] + '\"'.length;\n } else {\n substring += _character;\n i++;\n }\n }\n return [substring, i];\n}\n\n/**\r\n * Parses a string of comma-separated substrings into an array of substrings.\r\n * (the `export` is just for tests)\r\n * @param {string} string ā€” A string of comma-separated substrings.\r\n * @return {string[]} An array of substrings.\r\n */\nexport function parseArray(string, arrayValueSeparator) {\n var blocks = [];\n var index = 0;\n while (index < string.length) {\n var _getBlock = getBlock(string, arrayValueSeparator, index),\n _getBlock2 = _slicedToArray(_getBlock, 2),\n substring = _getBlock2[0],\n length = _getBlock2[1];\n index += length + arrayValueSeparator.length;\n blocks.push(substring.trim());\n }\n return blocks;\n}\n\n// Transpose a 2D array.\n// https://stackoverflow.com/questions/17428587/transposing-a-2d-array-in-javascript\nvar transpose = function transpose(array) {\n return array[0].map(function (_, i) {\n return array.map(function (row) {\n return row[i];\n });\n });\n};\nfunction validateSchema(schema) {\n for (var _i3 = 0, _Object$keys2 = Object.keys(schema); _i3 < _Object$keys2.length; _i3++) {\n var key = _Object$keys2[_i3];\n var entry = schema[key];\n if (!entry.prop) {\n throw new Error(\"\\\"prop\\\" not defined for schema entry \\\"\".concat(key, \"\\\".\"));\n }\n }\n}\nfunction isEmptyValue(value) {\n return value === undefined || value === null;\n}\n//# sourceMappingURL=convertToJson.js.map","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport convertToJson from './convertToJson.js';\nexport default function convertToJsonLegacyBehavior(data, schema) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var includeNullValues = options.includeNullValues,\n ignoreEmptyRows = options.ignoreEmptyRows,\n isColumnOriented = options.isColumnOriented,\n rowMap = options.rowMap;\n var defaultConversionOptions = {\n schemaPropertyValueForMissingColumn: undefined,\n schemaPropertyValueForUndefinedCellValue: undefined,\n schemaPropertyValueForNullCellValue: undefined,\n schemaPropertyShouldSkipRequiredValidationForMissingColumn: function schemaPropertyShouldSkipRequiredValidationForMissingColumn(column, _ref) {\n var path = _ref.path;\n return false;\n },\n getEmptyObjectValue: function getEmptyObjectValue(object, _ref2) {\n var path = _ref2.path;\n return path ? undefined : null;\n },\n getEmptyArrayValue: function getEmptyArrayValue() {\n return null;\n },\n arrayValueSeparator: ','\n };\n if (includeNullValues) {\n defaultConversionOptions.schemaPropertyValueForMissingColumn = null;\n defaultConversionOptions.schemaPropertyValueForUndefinedCellValue = null;\n defaultConversionOptions.schemaPropertyValueForNullCellValue = null;\n defaultConversionOptions.getEmptyObjectValue = function (object, _ref3) {\n var path = _ref3.path;\n return null;\n };\n }\n var result = convertToJson(data, schema, _objectSpread(_objectSpread({}, defaultConversionOptions), {}, {\n rowIndexMap: rowMap,\n isColumnOriented: isColumnOriented\n }));\n if (ignoreEmptyRows !== false) {\n result.rows = result.rows.filter(function (_) {\n return _ !== defaultConversionOptions.getEmptyObjectValue(_, {\n path: undefined\n });\n });\n }\n return result;\n}\n//# sourceMappingURL=convertToJson.legacy.js.map","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _excluded = [\"schemaPropertyValueForEmptyCell\"];\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n// Renames some of the `react-excel-file` options to `convertToJson()` options.\nexport default function convertToJsonSpreadsheetBehavior(convertToJson, data, schema) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var schemaPropertyValueForEmptyCell = options.schemaPropertyValueForEmptyCell,\n restOptions = _objectWithoutProperties(options, _excluded);\n return convertToJson(data, schema, _objectSpread(_objectSpread({}, restOptions), {}, {\n schemaPropertyValueForNullCellValue: schemaPropertyValueForEmptyCell\n }));\n}\n//# sourceMappingURL=convertToJson.spreadsheet.js.map","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nexport default function convertMapToSchema(map) {\n var schema = {};\n for (var _i = 0, _Object$keys = Object.keys(map); _i < _Object$keys.length; _i++) {\n var key = _Object$keys[_i];\n var prop = map[key];\n var type = void 0;\n if (_typeof(prop) === 'object') {\n prop = Object.keys(map[key])[0];\n type = convertMapToSchema(map[key][prop]);\n }\n schema[key] = {\n prop: prop\n };\n if (type) {\n schema[key].type = type;\n }\n }\n return schema;\n}\n//# sourceMappingURL=convertMapToSchema.js.map","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _excluded = [\"schema\", \"map\"];\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport readXlsx from './readXlsx.js';\nimport convertToJsonLegacyBehavior from './schema/convertToJson.legacy.js';\nimport convertToJsonSpreadsheetBehavior from './schema/convertToJson.spreadsheet.js';\nimport convertMapToSchema from './schema/convertMapToSchema.js';\nexport default function readXlsxFileContents(entries, xml, _ref) {\n var schema = _ref.schema,\n map = _ref.map,\n options = _objectWithoutProperties(_ref, _excluded);\n if (!schema && map) {\n schema = convertMapToSchema(map);\n }\n // `readXlsx()` adds `options.rowMap`, if not passed.\n var result = readXlsx(entries, xml, _objectSpread(_objectSpread({}, options), {}, {\n properties: schema || options.properties\n }));\n if (schema) {\n return convertToJsonSpreadsheetBehavior(convertToJsonLegacyBehavior, result.data, schema, _objectSpread(_objectSpread({}, options), {}, {\n properties: result.properties\n }));\n }\n return result;\n}\n//# sourceMappingURL=readXlsxFileContents.js.map","import xml from '../xml/xml.js';\nimport unpackXlsxFile from './unpackXlsxFileBrowser.js';\nimport readXlsxFileContents from './readXlsxFileContents.js';\n\n/**\r\n * Reads XLSX file into a 2D array of cells in a web worker.\r\n * @param {file} file - The file.\r\n * @param {object?} options\r\n * @param {(number|string)?} options.sheet - Excel document sheet to read. Defaults to `1`. Will only read this sheet and skip others.\r\n * @return {Promise} Resolves to a 2D array of cells: an array of rows, each row being an array of cells.\r\n */\nexport default function readXlsxFile(file) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return unpackXlsxFile(file).then(function (entries) {\n return readXlsxFileContents(entries, xml, options);\n });\n}\n//# sourceMappingURL=readXlsxFileWebWorker.js.map","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\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\t\tlocator&&position(tagStart);\n\t\t\t\tend = parseInstruction(source,tagStart,domBuilder);\n\t\t\t\tbreak;\n\t\t\tcase '!':// 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('',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('')\n\t\tif(pos',start+4);\n\t\t\t//append comment source.substring(4,end)//\");\n\tcase DOCUMENT_TYPE_NODE:\n\t\tvar pubid = node.publicId;\n\t\tvar sysid = node.systemId;\n\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( \"\");\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